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.

Reply via email to