Current trunk and 4.1 branch ICE on powerpc-linux compiling facerec from SPEC CPU2000 with an admittedly odd set of options:
elm3b11% /opt/gcc-nightly/4.1/bin/gfortran -c -O2 -funroll-loops -ftree-vectorize -maltivec -fno-ivopts -fpic fr1201.f fr1201.f: In function foo: fr1201.f:38: error: unrecognizable insn: (insn 2616 288 289 28 (set (reg:SI 4 4) (and:SI (plus:SI (reg:SI 26 26) (reg:SI 0 0 [orig:141 base_off.93 ] [141])) (const_int -16 [0xfffffffffffffff0]))) -1 (nil) (nil)) fr1201.f:38: internal compiler error: in extract_insn, at recog.c:2084 The testcase compiles with GCC 4.0.2 and with the 4.0 branch. A regression hunt identified the following patch: http://gcc.gnu.org/viewcvs?view=rev&rev=103001 r103001 | dje | 2005-08-11 21:18:11 +0000 (Thu, 11 Aug 2005) | 6 lines * config/rs6000/altivec.md: Change constraint "m" to "Z". * config/rs6000/predicates.md (indexed_or_indirect_operand): Accept address wrapped in AND for Altivec. * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Strip AND wrapping offset address for Altivec. I'll attach a minimized testcase. -- Summary: unrecognizable insn for facerec with odd optimization set Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis at gcc dot gnu dot org GCC target triplet: powerpc-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25212