Same setup as with 26232, but with the patch applied. Another bug exposed with -fmove-loop-invariants. This time it's strict_low_part that isn't handled. Looks like gen_move_insn is insufficient. Or just punt on a dest that's strict_low_part just like on cc0 setters.
Running /home/hp/combined/combined/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ... FAIL: gcc.dg/tree-ssa/gen-vect-26.c (test for excess errors) WARNING: gcc.dg/tree-ssa/gen-vect-26.c compilation failed to produce executable FAIL: gcc.dg/tree-ssa/gen-vect-28.c (test for excess errors) WARNING: gcc.dg/tree-ssa/gen-vect-28.c compilation failed to produce executable FAIL: gcc.dg/tree-ssa/gen-vect-32.c (test for excess errors) WARNING: gcc.dg/tree-ssa/gen-vect-32.c compilation failed to produce executable (just 26 and 28 for cris-axis-linux-gnu) gcc.log says: Executing on host: /home/hp/combined/cris-sim/gcc/xgcc -B/home/hp/combined/cris-sim/gcc/ /home/hp/combined/combined/gcc/testsuite\ /gcc.dg/tree-ssa/gen-vect-26.c -O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats -fno-show-column -isys\ tem /home/hp/combined/cris-sim/cris-elf/./newlib/targ-include -isystem /home/hp/combined/combined/newlib/libc/include -B/home/hp/\ combined/cris-sim/cris-elf/./libgloss/cris/ -L/home/hp/combined/cris-sim/cris-elf/./libgloss/cris -L/home/hp/combined/combined/li\ bgloss/cris -L/home/hp/combined/cris-sim/ld -B/home/hp/combined/cris-sim/cris-elf/./newlib/ -L/home/hp/combined/cris-sim/cris-elf\ /./newlib -sim3 -lm -o ./gen-vect-26.exe (timeout = 300) /home/hp/combined/combined/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c: In function 'main':^M /home/hp/combined/combined/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c:28: internal compiler error: in int_mode_for_mode, at stor\ -layout.c:250^M (gdb) bt #0 fancy_abort (file=0x842c3f0 "/home/hp/combined/combined/gcc/stor-layout.c", line=250, function=0x842c206 "int_mode_for_mode") at /home/hp/combined/combined/gcc/diagnostic.c:642 #1 0x082abeae in int_mode_for_mode (mode=VOIDmode) at /home/hp/combined/combined/gcc/stor-layout.c:250 #2 0x081dfd72 in emit_move_via_integer (mode=VOIDmode, x=0x400b3b68, y=0x400c5b80, force=0 '\0') at /home/hp/combined/combined/gcc/expr.c:2829 #3 0x081e04ad in emit_move_insn_1 (x=0x400b3b68, y=0x400c5b80) at /home/hp/combined/combined/gcc/expr.c:3154 #4 0x0825d1a8 in gen_move_insn (x=0x400b3b68, y=0x400c5b80) at /home/hp/combined/combined/gcc/optabs.c:4398 #5 0x0819b5b5 in move_invariant_reg (loop=0x400d60c0, invno=1074382240) at /home/hp/combined/combined/gcc/loop-invariant.c:1105 #6 0x0819b63f in move_invariants (loop=0x84b4128) at /home/hp/combined/combined/gcc/loop-invariant.c:1152 #7 0x0819b76f in move_single_loop_invariants (loop=0x84b4128) at /home/hp/combined/combined/gcc/loop-invariant.c:1209 #8 0x0819b7e5 in move_loop_invariants (loops=0x848a5c8) at /home/hp/combined/combined/gcc/loop-invariant.c:1243 #9 0x08178ce9 in rtl_move_loop_invariants () at /home/hp/combined/combined/gcc/loop-init.c:252 #10 0x082df092 in execute_one_pass (pass=0x844e160) at /home/hp/combined/combined/gcc/passes.c:853 #11 0x082df171 in execute_pass_list (pass=0x844e160) at /home/hp/combined/combined/gcc/passes.c:897 #12 0x082df195 in execute_pass_list (pass=0x844e0a0) at /home/hp/combined/combined/gcc/passes.c:898 #13 0x082df195 in execute_pass_list (pass=0x844f2e0) at /home/hp/combined/combined/gcc/passes.c:898 #14 0x080c6106 in tree_rest_of_compilation (fndecl=0x400be400) at /home/hp/combined/combined/gcc/tree-optimize.c:412 #15 0x0805a9e8 in c_expand_body (fndecl=0x400be400) at /home/hp/combined/combined/gcc/c-decl.c:6689 #16 0x08312ce8 in cgraph_expand_function (node=0x400be480) at /home/hp/combined/combined/gcc/cgraphunit.c:1101 #17 0x08312e6c in cgraph_expand_all_functions () at /home/hp/combined/combined/gcc/cgraphunit.c:1166 #18 0x0831358e in cgraph_optimize () at /home/hp/combined/combined/gcc/cgraphunit.c:1434 #19 0x0805c3c2 in c_write_global_declarations () at /home/hp/combined/combined/gcc/c-decl.c:7804 #20 0x082b4f32 in compile_file () at /home/hp/combined/combined/gcc/toplev.c:1012 #21 0x082b63a3 in do_compile () at /home/hp/combined/combined/gcc/toplev.c:1944 #22 0x082b6405 in toplev_main (argc=17, argv=0xbffffbb4) at /home/hp/combined/combined/gcc/toplev.c:1976 #23 0x080a819f in main (argc=17, argv=0xbffffbb4) at /home/hp/combined/combined/gcc/main.c:35 #6 0x0819b63f in move_invariants (loop=0x84b4128) at /home/hp/combined/combined/gcc/loop-invariant.c:1152 #5 0x0819b5b5 in move_invariant_reg (loop=0x400d60c0, invno=1074382240) at /home/hp/combined/combined/gcc/loop-invariant.c:1105 #4 0x0825d1a8 in gen_move_insn (x=0x400b3b68, y=0x400c5b80) at /home/hp/combined/combined/gcc/optabs.c:4398 (gdb) p x $5 = 0x400b3b68 (gdb) pr (strict_low_part (subreg:QI (reg:SI 73) 0)) (gdb) p y $6 = 0x400c5b80 (gdb) pr (reg 74) (gdb) I presume you won't insist on preprocessed code, just cut out the #include <stdlib.h> and s/N/128/g from gen-vect-26.c. -- Summary: [4.2 regression] gcc.dg/tree-ssa/gen-vect-26.c, 28 and 32. int_mode_for_mode ICE strict_low_part loop-invariant Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hp at gcc dot gnu dot org GCC target triplet: cris-axis-elf, cris-axis-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26247