https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97466
Bug ID: 97466 Summary: ICE in vect_get_and_check_slp_defs, at tree-vect-slp.c:538 (at -O3) Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu Target Milestone: --- [503] % gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --disable-bootstrap --prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib --with-system-zlib Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.0.0 20201016 (experimental) [master revision 3e8d8f3b883:93f23a96b87:02629b116eed7c6911ef0eb2ef97e1883e9fb1de] (GCC) [504] % [504] % gcctk -O2 small.c [505] % [505] % gcctk -O3 small.c during GIMPLE pass: vect small.c: In function ‘main’: small.c:59:5: internal compiler error: in vect_get_and_check_slp_defs, at tree-vect-slp.c:538 59 | int main () { | ^~~~ 0xfdf1ee vect_get_and_check_slp_defs ../../gcc-trunk/gcc/tree-vect-slp.c:536 0xfe4c11 vect_build_slp_tree_2 ../../gcc-trunk/gcc/tree-vect-slp.c:1443 0xfe36e9 vect_build_slp_tree ../../gcc-trunk/gcc/tree-vect-slp.c:1266 0xfe4d2c vect_build_slp_tree_2 ../../gcc-trunk/gcc/tree-vect-slp.c:1486 0xfe36e9 vect_build_slp_tree ../../gcc-trunk/gcc/tree-vect-slp.c:1266 0xfe4d2c vect_build_slp_tree_2 ../../gcc-trunk/gcc/tree-vect-slp.c:1486 0xfe36e9 vect_build_slp_tree ../../gcc-trunk/gcc/tree-vect-slp.c:1266 0xfeae71 vect_analyze_slp_instance ../../gcc-trunk/gcc/tree-vect-slp.c:2135 0xfee1da vect_analyze_slp(vec_info*, unsigned int) ../../gcc-trunk/gcc/tree-vect-slp.c:2441 0xfcde42 vect_analyze_loop_2 ../../gcc-trunk/gcc/tree-vect-loop.c:2262 0xfcde42 vect_analyze_loop(loop*, vec_info_shared*) ../../gcc-trunk/gcc/tree-vect-loop.c:2799 0xff679c try_vectorize_loop_1 ../../gcc-trunk/gcc/tree-vectorizer.c:994 0xff7269 vectorize_loops() ../../gcc-trunk/gcc/tree-vectorizer.c:1226 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. [506] % [506] % cat small.c struct b { int c; char e; char f; unsigned g; }; struct h { int i : 2; }; static short j = 5; static int k, l, m, ah; static char n; static struct b o, p; int *q; static int **r = &q; char s; static struct h t; short u; unsigned char a (unsigned char v, unsigned char w) { return w ? v % w : 0; } void ac () { ah = 0 >= t.i; while (n) ; } short d (short v) { return v; } static int x () { int y; char aa; int *ab = &k; o.f = 0; while (!j) ; ac(); while (s) { char ad; int ae; p.e = ad = 7; for (; ad; ad--) { unsigned af = 4; ae = 1; for (; ae >= 0; ae--) { aa = a ((p.g == (l >= af) || y), *ab); **r ^= (d ((m < o.c) ^ aa) == 0) ^ u; } } *ab = 0; } return 0; } int main () { x(); return 0; }