https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78669

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-12-04
          Component|target                      |rtl-optimization
   Target Milestone|---                         |7.0
            Summary|ICE: in                     |[7 Regression]: ICE: in
                   |combine_and_move_insns, at  |combine_and_move_insns, at
                   |ira.c:3665 with -Os         |ira.c:3665 with -Os
                   |-fno-tree-ter -mavx512bw    |-fno-tree-ter -mavx512bw
     Ever confirmed|0                           |1

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
Confirmed, the compilation breaks at:

(gdb) up
#2  0x0000000000c0fc8a in combine_and_move_insns () at
/home/uros/gcc-svn/trunk/gcc/ira.c:3665
3665          gcc_assert (use_insn);
(gdb)
3651          if (!reg_equiv[regno].replace)
3652            continue;
3653
3654          rtx_insn *use_insn = 0;
3655          for (df_ref use = DF_REG_USE_CHAIN (regno);
3656               use;
3657               use = DF_REF_NEXT_REG (use))
3658            if (DF_REF_INSN_INFO (use))
3659              {
3660                if (DEBUG_INSN_P (DF_REF_INSN (use))) 
3661                  continue;
3662                gcc_assert (!use_insn);
3663                use_insn = DF_REF_INSN (use);
3664              }
3665          gcc_assert (use_insn);
3666
3667          /* Don't substitute into jumps.  indirect_jump_optimize does
3668             this for anything we are prepared to handle.  */
3669          if (JUMP_P (use_insn))
3670            continue;

(gdb) p regno
$2 = 125

Suggesting, that there are no uses of r125.

But, we have in _.267r.asmcons:

(insn 24 23 25 2 (set (reg:V4DI 125)
        (const_vector:V4DI [
                (const_int -1 [0xffffffffffffffff])
                (const_int -1 [0xffffffffffffffff])
                (const_int -1 [0xffffffffffffffff])
                (const_int -1 [0xffffffffffffffff])
            ])) 1217 {movv4di_internal}
     (nil))
(insn 25 24 152 2 (set (reg:V8DI 119)
        (vec_concat:V8DI (reg:V4DI 124)
            (reg:V4DI 125))) 4519 {avx_vec_concatv8di}
     (expr_list:REG_DEAD (reg:V4DI 125)
        (expr_list:REG_DEAD (reg:V4DI 124)
            (expr_list:REG_EQUAL (const_vector:V8DI [
                        (const_int 0 [0])
                        (const_int 1 [0x1])
                        (const_int 3 [0x3])
                        (const_int 0 [0])
                        (const_int -1 [0xffffffffffffffff])
                        (const_int -1 [0xffffffffffffffff])
                        (const_int -1 [0xffffffffffffffff])
                        (const_int -1 [0xffffffffffffffff])
                    ])
                (nil)))))

Looks like rtl-optimization problem, either dataflow or RA.

Reply via email to