On sh64-elf, the program void foo (float *dest_y, const float *abase_n, float bbase_yn, int count, int xcount, int ycount) { int x, y, n;
for (y = 0; y < ycount; y++) for (n = 0; n < count; n++) for (x = 0; x < xcount; x++) dest_y[x] += abase_n[x] * bbase_yn; } causes the ICE foo.c:11: error: unrecognizable insn: (insn 117 116 118 5 (set (reg:V2SF 300) (vec_select:V2SF (vec_concat:V2SF (vec_select:SF (reg:V2SF 232) (parallel [ (const_int 1 [0x1]) ])) (mult:SF (vec_select:SF (reg:V2SF 209 [ vect_cst_.50 ]) (parallel [ (const_int 0 [0x0]) ])) (vec_select:SF (reg:V2SF 233) (parallel [ (const_int 0 [0x0]) ])))) (parallel [ (const_int 1 [0x1]) (const_int 0 [0x0]) ]))) -1 (insn_list:REG_DEP_TRUE 116 (nil)) (expr_list:REG_DEAD (reg:V2SF 232) (nil))) foo.c:11: internal compiler error: in extract_insn, at recog.c:2084 on 4.2 compiler with -O -ftree-vectorize -funroll-loops. -- Summary: ICE with -O -ftree-vectorize -funroll-loops Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kkojima at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: sh64-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25833