https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93428
Bug ID: 93428
Summary: [10 Regression] ICE in vect_transform_slp_perm_load
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: asolokha at gmx dot com
Target Milestone: ---
Target: x86_64-unknown-linux-gnu
gcc-10.0.0-alpha20200119 snapshot (g:3684bbb022cd75da55e1457673f269980aa12cdf)
ICEs when compiling the following testcase w/ -O1 -ftree-slp-vectorize:
void
br (void)
{
int qp[8];
int (*ai)[8];
ai[0][0] = qp;
ai = qp[17] + 1;
ai[0][0] = qp[0] + qp[1] + 1 >> 1;
ai[0][1] = qp[1] + qp[2] + 1 >> 1;
ai[0][2] = qp[2] + qp[3] + 1 >> 1;
ai[0][3] = qp[3] + qp[4] + 1 >> 1;
ai[0][4] = qp[4] + qp[5] + 1 >> 1;
ai[0][5] = qp[5] + qp[6] + 1 >> 1;
ai[0][6] = qp[6] + qp[7] + 1 >> 1;
ai[0][7] = qp[7] + qp[8] + 1 >> 1;
ai[1][0] = qp[0] + qp[1] + 2 * qp[0] + 1 >> 2;
ai[1][1] = qp[0] + qp[2] + 2 * qp[1] + 1 >> 2;
ai[1][2] = qp[1] + qp[3] + 2 * qp[2] + 1 >> 2;
ai[1][3] = qp[2] + qp[4] + 2 * qp[3] + 1 >> 2;
ai[1][4] = qp[3] + qp[5] + 2 * qp[4] + 1 >> 2;
ai[1][5] = qp[4] + qp[6] + 2 * qp[5] + 1 >> 2;
ai[1][6] = qp[5] + qp[7] + 2 * qp[6] + 1 >> 2;
ai[1][7] = qp[6] + qp[8] + 2 * qp[7] + 1 >> 2;
}
% x86_64-unknown-linux-gnu-gcc-10.0.0-alpha20200119 -O1 -ftree-slp-vectorize -w
-c tyjjlqhg.c
during GIMPLE pass: slp
tyjjlqhg.c: In function 'br':
tyjjlqhg.c:2:1: internal compiler error: in vect_transform_slp_perm_load, at
tree-vect-slp.c:4045
2 | br (void)
| ^~
0x6f3919 vect_transform_slp_perm_load(_slp_tree*, vec<tree_node*, va_heap,
vl_ptr>, gimple_stmt_iterator*, poly_int<1u, unsigned long>, _slp_instance*,
bool, unsigned int*)
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4045
0xfc7ad9 vectorizable_load
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-stmts.c:9767
0xfdcc90 vect_transform_stmt(_stmt_vec_info*, gimple_stmt_iterator*,
_slp_tree*, _slp_instance*)
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-stmts.c:10989
0x100ca59 vect_schedule_slp_instance
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4235
0x100cb03 vect_schedule_slp_instance
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4127
0x100cb03 vect_schedule_slp_instance
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4127
0x100cb03 vect_schedule_slp_instance
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4127
0x100cb03 vect_schedule_slp_instance
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4127
0x100d9cf vect_schedule_slp(vec_info*)
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:4358
0x100e6da vect_slp_bb_region
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:3323
0x100e6da vect_slp_bb(basic_block_def*)
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vect-slp.c:3446
0x101037f execute
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree-vectorizer.c:1320