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

--- Comment #13 from H.J. Lu <hjl.tools at gmail dot com> ---
A simple testcase:

[hjl@gnu-tgl-3 pr107304]$ cat y1.c
typedef struct {
    unsigned char v __attribute__((aligned(256))) __attribute__
((vector_size(64 * sizeof(unsigned char))));
} stress_vec_u8_64_t;

void __attribute__ ((target ("arch=core2")))
stress_vecshuf_u8_64(stress_vec_u8_64_t *data)
{
  data->v += data->v;
}
[hjl@gnu-tgl-3 pr107304]$ make y1.s
/export/build/gnu/tools-build/gcc-gitlab-debug/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-build/gcc-gitlab-debug/build-x86_64-linux/gcc/
-march=tigerlake -S y1.c
during RTL pass: expand
y1.c: In function ‘stress_vecshuf_u8_64’:
y1.c:8:11: internal compiler error: in convert_move, at expr.cc:219
    8 |   data->v += data->v;
      |   ~~~~~~~~^~~~~~~~~~
0xe7c94c convert_move(rtx_def*, rtx_def*, int)
        /export/gnu/import/git/gitlab/x86-gcc/gcc/expr.cc:219
0xe8105c convert_modes(machine_mode, machine_mode, rtx_def*, int)
        /export/gnu/import/git/gitlab/x86-gcc/gcc/expr.cc:924
0xe9b586 store_field
        /export/gnu/import/git/gitlab/x86-gcc/gcc/expr.cc:7780
0xe92c98 expand_assignment(tree_node*, tree_node*, bool)
        /export/gnu/import/git/gitlab/x86-gcc/gcc/expr.cc:5904
0xcfb349 expand_gimple_stmt_1
        /export/gnu/import/git/gitlab/x86-gcc/gcc/cfgexpand.cc:3946
0xcfb73e expand_gimple_stmt
        /export/gnu/import/git/gitlab/x86-gcc/gcc/cfgexpand.cc:4044
0xd03a0c expand_gimple_basic_block
        /export/gnu/import/git/gitlab/x86-gcc/gcc/cfgexpand.cc:6096
0xd05f21 execute
        /export/gnu/import/git/gitlab/x86-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.
make: *** [Makefile:54: y1.s] Error 1
[hjl@gnu-tgl-3 pr107304]$

Reply via email to