http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21617
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-12-08
03:34:57 UTC ---
-O1:
.L2:
movl %eax, %edx
sarl $31, %edx
shrl $24, %edx
leal (%eax,%edx), %ecx
andl $255, %ecx
subl %edx, %ecx
movb %cl, (%ebx,%eax)
addl $1, %eax
cmpl $8192, %eax
jne .L2
-O2:
.L4:
movl 76(%esp), %ecx
movl %edi, %ebx
shrl $24, %ebx
movzbl (%ecx), %edx
addl $1, %ecx
movl %ecx, 76(%esp)
movl %esi, %ecx
sall $8, %ecx
xorl %ebx, %edx
movl %edi, %ebx
shldl $8, %esi, %ebx
movl crc_table+4(,%edx,8), %edi
movl crc_table(,%edx,8), %esi
xorl %ebx, %edi
xorl %ecx, %esi
cmpl %eax, 76(%esp)
jne .L4