Multiple tests in SPEC CPU2000 ICE when compiled with -O2 -fmodulo-sched on powerpc64-linux with either -m32 or -m64; there are more failures with -m64. Here's a cut-down testcase, which I'm sure someone will be able to minimize even more:
extern long *x1, *x2, *x3; int foo () { /* Switching the following two lines prevents the ICE. */ long *p1, *p2; long m, n, i; p1 = x1; p2 = x2; n = 0; for (i = *x3; 0 < i; i--) { m = (*p1++) ^ (*p2++); m = (m & 0x55555555) + ((m >> 1) & 0x55555555); m = (m & 0x33333333) + ((m >> 2) & 0x33333333); m = (m + (m >> 4)) & 0x0f0f0f0f; m = (m + (m >> 8)); n += m; } return n; } Output when compiled with trunk revision 125693 (default is -m32): elm3b145% /opt/gcc-nightly/trunk-20070614/bin/gcc -O2 -fmodulo-sched -c bug0614-1.c bug0614-1.c: In function foo: bug0614-1.c:23: internal compiler error: in df_refs_verify, at df-scan.c:4066 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE in df_refs_verify with -O2 -fmodulo-sched for spec tests Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis at gcc dot gnu dot org GCC target triplet: powerpc-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32349