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.

Reply via email to