http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46610
Summary: gcc.target/mips/save-restore-?.c ICEs on IRIX 6.5: unrecognizable insn Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org CC: rdsandif...@googlemail.com Host: mips-sgi-irix6.5 Target: mips-sgi-irix6.5 Build: mips-sgi-irix6.5 The gcc.target/mips/save-restore-[1345].c tests ICE on IRIX 6.5 (both N32 and N64 ABIs): Executing on host: /var/gcc/regression/trunk/6.5-gcc/build/gcc/xgcc -B/var/gcc/regression/trunk/6.5-gcc/build/gcc/ /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/save-restore-1.c -DNOMIPS16=__attribute__((nomips16)) -mabi=32 -mips32 -mfp32 -mgp32 -mno-mips3d -O2 -mno-dsp -mno-dspr2 -mno-paired-single -DMIPS16=__attribute__((mips16)) -S -o save-restore-1.s (timeout = 300) /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/save-restore-1.c: In function 'foo': /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/save-restore-1.c:18:1: error: unrecognizable insn: (insn/f 34 7 35 2 (parallel [ (set/f (reg/f:SI 29 $sp) (plus:SI (reg/f:SI 29 $sp) (const_int -40 [0xffffffffffffffd8]))) (set/f (mem/c:SI (reg/f:SI 29 $sp) [3 S4 A32]) (reg:SI 4 $4)) (set/f (mem/c:SI (plus:SI (reg/f:SI 29 $sp) (const_int 4 [0x4])) [3 S4 A32]) (reg:SI 5 $5)) (set/f (mem/c:SI (plus:SI (reg/f:SI 29 $sp) (const_int 8 [0x8])) [3 S4 A32]) (reg:SI 6 $6)) (set/f (mem/c:SI (plus:SI (reg/f:SI 29 $sp) (const_int 12 [0xc])) [3 S4 A32]) (reg:SI 7 $7)) (set/f (mem/c:SI (plus:SI (reg/f:SI 29 $sp) (const_int -4 [0xfffffffffffffffc])) [3 S4 A32]) (reg:SI 64 hi)) ]) /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/save-restore-1.c:10 -1 (expr_list:REG_DEAD (reg:SI 64 hi) (expr_list:REG_DEAD (reg:SI 7 $7) (expr_list:REG_DEAD (reg:SI 6 $6) (expr_list:REG_DEAD (reg:SI 5 $5) (nil)))))) /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/mips/save-restore-1.c:18:1: internal compiler error: in extract_insn, at recog.c:2110 I could skip the tests on IRIX 6.5 where there's no O32 support, but the failures also occur on the 4.4 and 4.5 branches where it still exists, and the compiler shouldn't ICE nonetheless.