https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70110
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |i?86-*-* Status|UNCONFIRMED |NEW Last reconfirmed| |2016-03-06 Component|rtl-optimization |target CC| |ienkovich at gcc dot gnu.org Ever confirmed|0 |1 Summary|ICE at -O3 in the 32-bit |[6 Regression] ICE at -O3 |mode in set_last_insn, at |in the 32-bit mode in |emit-rtl.h:420 |set_last_insn, at | |emit-rtl.h:420 Target Milestone|--- |6.0 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- Confirmed, a TARGET_STV problem. -O3 -msse2 flags are needed. (gdb) bt #0 internal_error (gmsgid=0x1f308b7 "in %s, at %s:%d") at /home/uros/gcc-svn/trunk/gcc/diagnostic.c:1256 #1 0x00000000018241b0 in fancy_abort (file=0x1913f78 "/home/uros/gcc-svn/trunk/gcc/emit-rtl.h", line=420, function=0x1915290 <_ZZL13set_last_insnP8rtx_insnE12__FUNCTION__> "set_last_insn") at /home/uros/gcc-svn/trunk/gcc/diagnostic.c:1329 #2 0x00000000009a18d0 in set_last_insn (insn=0x7fffef9d2a00) at /home/uros/gcc-svn/trunk/gcc/emit-rtl.h:420 #3 0x00000000009ac4b1 in end_sequence () at /home/uros/gcc-svn/trunk/gcc/emit-rtl.c:5442 #4 0x000000000119806a in scalar_chain::make_vector_copies (this=0x7fffffffd8f0, regno=96) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:3276 #5 0x0000000001198c96 in scalar_chain::convert (this=0x7fffffffd8f0) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:3512 #6 0x0000000001198f47 in convert_scalars_to_vector () at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:3577 #7 0x0000000001199159 in (anonymous namespace)::pass_stv::execute (this=0x2570ff0) at /home/uros/gcc-svn/trunk/gcc/config/i386/i386.c:3669 #8 0x0000000000ce0362 in execute_one_pass (pass=0x2570ff0) at /home/uros/gcc-svn/trunk/gcc/passes.c:2336 #9 0x0000000000ce066a in execute_pass_list_1 (pass=0x2570ff0) at /home/uros/gcc-svn/trunk/gcc/passes.c:2410 #10 0x0000000000ce069b in execute_pass_list_1 (pass=0x2560740) at /home/uros/gcc-svn/trunk/gcc/passes.c:2411 #11 0x0000000000ce06f3 in execute_pass_list (fn=0x7fffef970930, pass=0x255d1a0) at /home/uros/gcc-svn/trunk/gcc/passes.c:2421 #12 0x00000000008f06be in cgraph_node::expand (this=0x7fffef9962e0) at /home/uros/gcc-svn/trunk/gcc/cgraphunit.c:1980 #13 0x00000000008f0cf4 in expand_all_functions () at /home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2116 #14 0x00000000008f180d in symbol_table::compile (this=0x7fffef8730a8) at /home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2472 #15 0x00000000008f1a3e in symbol_table::finalize_compilation_unit (this=0x7fffef8730a8) at /home/uros/gcc-svn/trunk/gcc/cgraphunit.c:2562 #16 0x0000000000df3bc3 in compile_file () at /home/uros/gcc-svn/trunk/gcc/toplev.c:490 #17 0x0000000000df60e3 in do_compile () at /home/uros/gcc-svn/trunk/gcc/toplev.c:1988 #18 0x0000000000df6368 in toplev::main (this=0x7fffffffdba0, argc=5, argv=0x7fffffffdca8) at /home/uros/gcc-svn/trunk/gcc/toplev.c:2096 #19 0x000000000180b0e8 in main (argc=5, argv=0x7fffffffdca8) at /home/uros/gcc-svn/trunk/gcc/main.c:39 (gdb) f 2 #2 0x00000000009a18d0 in set_last_insn (insn=0x7fffef9d2a00) at /home/uros/gcc-svn/trunk/gcc/emit-rtl.h:420 420 gcc_checking_assert (!insn || !NEXT_INSN (insn)); (gdb) list 415 /* Specify a new insn as the last in the chain. */ 416 417 static inline void 418 set_last_insn (rtx_insn *insn) 419 { 420 gcc_checking_assert (!insn || !NEXT_INSN (insn)); 421 get_current_sequence ()->last = insn; 422 } 423 424 /* Return a number larger than any instruction's uid in this function. */ (gdb) p debug_rtx (insn) (insn 69 68 145 11 (parallel [ (set (reg:DI 96 [ prephitmp_27 ]) (sign_extend:DI (reg:SI 104 [ c ]))) (clobber (reg:CC 17 flags)) (clobber (scratch:SI)) ]) 146 {extendsidi2_1} (expr_list:REG_DEAD (reg:SI 104 [ c ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) $1 = void (gdb) p debug_rtx (NEXT_INSN(insn)) (insn 145 69 146 11 (set (mem/c:SI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffffffffffff8])) [0 S4 A64]) (subreg:SI (reg:DI 96 [ prephitmp_27 ]) 0)) -1 (nil)) $2 = void CC'd author.