https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83272
Andrew Pinski changed:
What|Removed |Added
Severity|normal |enhancement
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83272
--- Comment #3 from Mason ---
I think Jakub is right about an interaction between movzbl and shrb.
unsigned long long foo1(unsigned char *p) { return *p; }
foo1:
movzbl (%rdi), %eax
ret
I.e. gcc "knows" that movzbl clears the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83272
--- Comment #2 from Mason ---
(In reply to Jakub Jelinek from comment #1)
> I don't believe the andl is not needed after shrb, as that is an 8-bit
> operand size, it should leave the upper 56 bits of the register unmodified.
> And unsigned char
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83272
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org
--- Comment #1