https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97079
Bug ID: 97079
Summary: [11 Regression] aarch64, SVE: ICE in SLP recognizer
since
r11-3148-g8d3767c30240c901a493d82d9d20f306b2f0152d
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: acoplan at gcc dot gnu.org
Target Milestone: ---
Since r11-3148-g8d3767c30240c901a493d82d9d20f306b2f0152d, AArch64 GCC ICEs with
-O2 -ftree-vectorize -march=armv8.2-a+sve on the following input:
void g(void);
int a[8][3];
int b;
void c(void) {
int d[] = {7, 3};
int *e = a[0];
int f;
b = 0;
for (; b < 8; b++) {
f = 0;
for (; f < 3; f++)
a[b][f] = 0;
}
g();
*e = (long)d;
}
To reproduce:
$ aarch64-none-elf-gcc -c -march=armv8.2-a+sve -O2 -ftree-vectorize test.c
during GIMPLE pass: slp
test.c: In function 'c':
test.c:5:6: internal compiler error: Segmentation fault
5 | void c(void) {
| ^
0xd628ff crash_signal
/home/alecop01/toolchain/src/gcc/gcc/toplev.c:327
0x1a012ad contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
/home/alecop01/toolchain/src/gcc/gcc/tree.h:3408
0x1a012ad vect_recog_mask_conversion_pattern
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:4262
0x19faf66 vect_pattern_recog_1
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5339
0x1a0351f vect_pattern_recog(vec_info*)
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5495
0x10a010e vect_slp_analyze_bb_1
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3545
0x10a010e vect_slp_region
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3648
0x10a010e vect_slp_bb(basic_block_def*)
/home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3804
0x10a4888 execute
/home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1433
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.