http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56999
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-18 16:42:34 UTC --- BTW, of course much lower priority, this also shows another spot where I think reload code is better. In the same ebb as the wrong-code, reload has code like: movl %eax, %ecx shrb $3, %cl andl $1, %ecx ... movb %cl, 23(%esp) while LRA generates: movl %eax, %ecx shrb $3, %cl movb %cl, 31(%esp) ... andb $1, 31(%esp) I'd think anding the value while we still have it in a register ought to be better, though I admit I haven't benchmarked it.