https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97079
--- Comment #4 from Alex Coplan <acoplan at gcc dot gnu.org> --- Related testcase that gives a similar ICE: int c, d; int e[1]; void a(int *); void f(void) { while (d); int g[5]; for (; d < 2; d++) e[d] = c; for (; d; d++) g[d] = (long)e; a(g); } $ aarch64-elf-gcc -c test.c -O1 -ftree-vectorize -march=armv8.2-a+sve during GIMPLE pass: slp test.c: In function 'f': test.c:4:6: internal compiler error: Segmentation fault 4 | void f(void) { | ^ 0xd89397 crash_signal /home/alecop01/toolchain/src/gcc/gcc/toplev.c:330 0x1a408b7 contains_struct_check(tree_node*, tree_node_structure_enum, char const*, int, char const*) /home/alecop01/toolchain/src/gcc/gcc/tree.h:3416 0x1a408b7 vect_convert_input /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:728 0x1a411f6 vect_convert_inputs /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:818 0x1a418bb vect_recog_over_widening_pattern /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:1718 0x1a3ba60 vect_pattern_recog_1 /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5344 0x1a44001 vect_pattern_recog(vec_info*) /home/alecop01/toolchain/src/gcc/gcc/tree-vect-patterns.c:5502 0x10c994e vect_slp_analyze_bb_1 /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3564 0x10c994e vect_slp_region /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3663 0x10c994e vect_slp_bbs /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3819 0x10cb0d1 vect_slp_function(function*) /home/alecop01/toolchain/src/gcc/gcc/tree-vect-slp.c:3870 0x10ce3d9 execute /home/alecop01/toolchain/src/gcc/gcc/tree-vectorizer.c:1432 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. We don't ICE at -O2 and above here.