You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The second movzwq is a noop, because the bottom 16 bits of %rax were populated with a zero-extending load and then byte-swapped, so there is no reason to sign extend again.
Simplifying the code here needs to happen very late in the compiler: bswap remains an opaque operation that conceals the zero-extension from cmm onward, all the way until asm is emitted.
The text was updated successfully, but these errors were encountered:
Example program:
cmm (post #3336):
asm (post #3336):
The second
movzwq
is a noop, because the bottom 16 bits of%rax
were populated with a zero-extending load and then byte-swapped, so there is no reason to sign extend again.Simplifying the code here needs to happen very late in the compiler:
bswap
remains an opaque operation that conceals the zero-extension from cmm onward, all the way until asm is emitted.The text was updated successfully, but these errors were encountered: