https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91181
Bug ID: 91181 Summary: Failing as_as type conversion in vect_build_slp_tree_1 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: jamborm at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux Target: x86_64-linux When compiling C snippet: enum { a, b, c }; float *d, *e; f, g, h, i; j() { float a; for (; h; h++) { i = h * 4; a = d[i + b]; if (a) { e[i + b] = g < d[i + b] * f * a ? g : d[i + b] * f * a; e[i + c] = g < d[i + c] * f * a ? g : d[i + c] * f * a; } e[i + b] = e[i + c]; } } with -Ofast -march=sandybridge test.c (march can be also znver1, for example) and trunk revision 273492, I get: $ ~/gcc/trunk/inst/bin/gcc -Ofast -w -march=sandybridge test.c during GIMPLE pass: vect test.c: In function ājā: test.c:4:1: internal compiler error: in as_a, at is-a.h:197 4 | j() { | ^ 0x110afb6 gcall* as_a<gcall*, gimple>(gimple*) /home/mjambor/gcc/trunk/src/gcc/is-a.h:197 0x110afb6 vect_build_slp_tree_1 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:862 0x110d96c vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1161 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x110dc47 vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1219 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x110dc47 vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1219 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x110dc47 vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1219 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x110dc47 vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1219 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x110dc47 vect_build_slp_tree_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1219 0x110d4e8 vect_build_slp_tree /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1073 0x1111fd7 vect_analyze_slp_instance /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:1986 0x1112dc8 vect_analyze_slp(vec_info*, unsigned int) /home/mjambor/gcc/trunk/src/gcc/tree-vect-slp.c:2187 0x10f7b44 vect_analyze_loop_2 /home/mjambor/gcc/trunk/src/gcc/tree-vect-loop.c:1985 0x10f8ff7 vect_analyze_loop(loop*, _loop_vec_info*, vec_info_shared*) /home/mjambor/gcc/trunk/src/gcc/tree-vect-loop.c:2379 0x111a12a try_vectorize_loop_1 /home/mjambor/gcc/trunk/src/gcc/tree-vectorizer.c:887 0x111a71b try_vectorize_loop /home/mjambor/gcc/trunk/src/gcc/tree-vectorizer.c:1033 The testcase was creduced from 526.blender_r from SPEC 2017.