http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48866
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-05-04 12:07:42 UTC --- cselib actually. Shorter testcase: struct S { struct S *d[2]; }; struct S * foo (struct S *x) { struct S *y, *z; y = x->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]; z = y->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]->d[1]; return z; }