http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52883
--- Comment #5 from Uros Bizjak <ubizjak at gmail dot com> 2012-04-06 12:00:56 UTC --- (In reply to comment #4) > It is allowed in *zero_extendsidi2_rex64, and "0" propagates into the pattern > for some corner case. For the affected part, 4.7 generates: Oops, this is the correct sequence: .L3: movl $0, %edx # 66 *movsi_internal/1 movl %edx, %eax # 42 *zero_extendsidi2_rex64/1 movl g(,%rax,4), %ebx # 44 *movsi_internal/1 jmp .L8 # 62 jump [length = 2]