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

Reply via email to