[Bug target/106748] New: ICE in ix86_avx256_split_vector_move_misalign, at config/i386/i386-expand.cc:743 since r13-2111-g6910cad55ffc330d

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Aug 26 07:31:28 GMT 2022


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

            Bug ID: 106748
           Summary: ICE in ix86_avx256_split_vector_move_misalign, at
                    config/i386/i386-expand.cc:743 since
                    r13-2111-g6910cad55ffc330d
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: lingling.kong7 at gmail dot com
  Target Milestone: ---
              Host: x86_64-linux-gnu

The following crashes:

$ cat test_passing_unions.i
typedef __bf16 __m256bf16 __attribute__((__vector_size__(32)));
typedef struct {
  __m256bf16 _m256bf16[1];
} YMM_T;

struct {
  YMM_T ymm0;
} fregs;

__m256bf16 do_test_u3b_0_0;
int do_test_i;

void
do_test() { (&fregs.ymm0)[do_test_i]._m256bf16[0] = do_test_u3b_0_0; }

$ gcc test_passing_unions.i -fpack-struct -mavx256-split-unaligned-store
-mavx512vp2intersect
during RTL pass: expand
test_passing_unions.i: In function ‘do_test’:
test_passing_unions.i:14:51: internal compiler error: in
ix86_avx256_split_vector_move_misalign, at config/i386/i386-expand.cc:743
   14 | do_test() { (&fregs.ymm0)[do_test_i]._m256bf16[0] = do_test_u3b_0_0; }
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
0x82f27b ix86_avx256_split_vector_move_misalign
        /home/marxin/Programming/gcc/gcc/config/i386/i386-expand.cc:743
0x82f27b ix86_expand_vector_move_misalign(machine_mode, rtx_def**)
        /home/marxin/Programming/gcc/gcc/config/i386/i386-expand.cc:855
0x13e1a91 ix86_expand_vector_move(machine_mode, rtx_def**)
        /home/marxin/Programming/gcc/gcc/config/i386/i386-expand.cc:654
0x19002ea gen_movv16bf(rtx_def*, rtx_def*)
        /home/marxin/Programming/gcc/gcc/config/i386/sse.md:1314
0xb95ee2 rtx_insn* insn_gen_fn::operator()<rtx_def*, rtx_def*>(rtx_def*,
rtx_def*) const
        /home/marxin/Programming/gcc/gcc/recog.h:407
0xb95ee2 emit_move_ccmode
        /home/marxin/Programming/gcc/gcc/expr.cc:3871
0xb95ee2 emit_move_insn_1(rtx_def*, rtx_def*)
        /home/marxin/Programming/gcc/gcc/expr.cc:4016
0xb9630f emit_move_insn(rtx_def*, rtx_def*)
        /home/marxin/Programming/gcc/gcc/expr.cc:4167
0xb9f206 store_expr(tree_node*, rtx_def*, int, bool, bool)
        /home/marxin/Programming/gcc/gcc/expr.cc:6342
0xba1177 expand_assignment(tree_node*, tree_node*, bool)
        /home/marxin/Programming/gcc/gcc/expr.cc:5736
0xa60c80 expand_gimple_stmt_1
        /home/marxin/Programming/gcc/gcc/cfgexpand.cc:3946
0xa60c80 expand_gimple_stmt
        /home/marxin/Programming/gcc/gcc/cfgexpand.cc:4044
0xa67944 expand_gimple_basic_block
        /home/marxin/Programming/gcc/gcc/cfgexpand.cc:6096
0xa695c7 execute
        /home/marxin/Programming/gcc/gcc/cfgexpand.cc:6822
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


More information about the Gcc-bugs mailing list