This bug is very similar to http://gcc.gnu.org/PR21616 but is not fixed with the patch associated with that bug. Using the latest 3_4 branch code, I'm seeing the following ICE (compiles fine using GCC 3.3.3 and 4.1):
[EMAIL PROTECTED]> ./install-3_4/bin/gcc -v -Os -m64 -c -msoft-float -mminimal-toc raid6int8.i Reading specs from /home/bergner/install-3_4/lib/gcc/powerpc64-linux/3.4.6/specs Configured with: /home/bergner/gcc-20060308-3_4/configure --target=powerpc64-linux --host=powerpc64-linux --build=powerpc64-linux --with-cpu=default32 --enable-threads=posix --enable-shared --enable-languages=c --disable-checking --prefix=/home/bergner/install-3_4 Thread model: posix gcc version 3.4.6 /home/bergner/install-3_4/libexec/gcc/powerpc64-linux/3.4.6/cc1 -fpreprocessed raid6int8.i -quiet -dumpbase raid6int8.i -m64 -msoft-float -mminimal-toc -auxbase raid6int8 -Os -version -o /tmp/cc83eiKe.s GNU C version 3.4.6 (powerpc64-linux) compiled by GNU C version 3.3.3 (SuSE Linux). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 raid6int8.i: In function `raid6_int8_gen_syndrome': raid6int8.i:134: error: unable to find a register to spill in class `FLOAT_REGS' raid6int8.i:134: error: this is the insn: (insn:HI 622 624 643 5 (set (mem:DI (plus:DI (reg/v/f:DI 122 [ p ]) (reg/v:DI 66 ctr [orig:124 d ] [124])) [9 S8 A64]) (reg/v:DI 129 [ wp0 ])) 320 {*movdi_internal64} (nil) (expr_list:REG_DEAD (reg/v:DI 129 [ wp0 ]) (nil))) raid6int8.i:134: confused by earlier errors, bailing out -- Summary: [3.4 only] ICE: unable to find a register to spill in class `FLOAT_REGS' Product: gcc Version: 3.4.6 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bergner at vnet dot ibm dot com GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26610