http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57564
ncahill_alt at yahoo dot com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #3 from ncahill_alt at yahoo dot com --- This appears fixed in 4.9.0, I can't reproduce it. Where in 4.8 one had: movl 8(%ebx), %eax leal -3(%esi), %ecx movl %eax, 40(%esp) shrl %cl, 40(%esp) andl $7, 40(%esp) movl 40(%esp), %eax testl %eax, %eax movl %eax, 44(%esp) Now one has: movl 8(%ebx), %edi leal -3(%edx), %ecx shrl %cl, %edi andl $7, %edi testl %edi, %edi movl %edi, %ecx movl %edi, 44(%esp) movl %edi, 40(%esp) So I'm pleased to report that this is now fixed in the release version of gcc 4.9.0. As the original reporter I'll mark this RESOLVED FIXED but if it crops up again I'll reopen it. Thank you very much.