[Bug tree-optimization/48316] missed CSE / reassoc with array offsets
xinliangli at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Mar 12 23:53:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48316
davidxl <xinliangli at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |xinliangli at gmail dot com
--- Comment #1 from davidxl <xinliangli at gmail dot com> ---
int a[8][8];
int foo(int i)
{
return a[i][3] + a[i+1][3] + a[i+2][3];
}
ICC generates:
movslq %edi, %rdi #5.1
shlq $5, %rdi #6.10
movl 12+a(%rdi), %eax #6.10
addl 44+a(%rdi), %eax #6.20
addl 76+a(%rdi), %eax
GCC can not CSE the common code for address arithmetic:
leal 1(%rdi), %eax
movslq %edi, %rdx
addl $2, %edi
cltq
movslq %edi, %rdi
salq $5, %rdx
salq $5, %rax
salq $5, %rdi
movl a+12(%rax), %eax
addl a+12(%rdx), %eax
addl a+12(%rdi), %eax
ret
More information about the Gcc-bugs
mailing list