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
movq 8(%rax), %rax
movzwq (%rax,%rbx), %rax
movslq %eax, %rax
ret
The movslq is a noop after the movzwq, because there is no point in sign-extending the bottom 32 bits of %rax if the bottom 16 were populated with a zero-extending load.
It is possible to write this simplification at the cmm level, though doing so requires confidence that load_mut at a small size always becomes a zero-extending load.
The text was updated successfully, but these errors were encountered:
Example program:
cmm (post #3336):
asm (post #3336):
The
movslq
is a noop after themovzwq
, because there is no point in sign-extending the bottom 32 bits of%rax
if the bottom 16 were populated with a zero-extending load.It is possible to write this simplification at the cmm level, though doing so requires confidence that
load_mut
at a small size always becomes a zero-extending load.The text was updated successfully, but these errors were encountered: