https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100872

            Bug ID: 100872
           Summary: [OpenMP] internal compiler error: tree check: expected
                    integer_cst, have mult_expr in
                    simd_clone_clauses_extract, at omp-simd-clone.c:253
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, openmp
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Found when compiling clang's OpenMP testsuite for for

* declare_simd_ast_print.cpp:
 
https://github.com/llvm/llvm-project/blob/main/clang/test/OpenMP/declare_simd_ast_print.cpp
* declare_simd_codegen.cpp:
 
https://github.com/llvm/llvm-project/blob/main/clang/test/OpenMP/declare_simd_codegen.cpp


template <int X, typename T>
class TVV {
public:
  #pragma omp declare simd aligned(a : X * 2) aligned(b) linear(ref(b): X)
  float taddpf(float *a, T *&b) { return *a + *b; }
};

TVV<16, float> t16;

void f() {
  float a = 1.0f, b = 2.0f;
  float *p = &b;
  float r = t16.taddpf(&a, p);
}


foo.C:14:1: internal compiler error: tree check: expected integer_cst, have
mult_expr in simd_clone_clauses_extract, at omp-simd-clone.c:253
   14 | }
      | ^
0x8828a4 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../repos/gcc/gcc/tree.c:8684
0x97210e tree_int_cst_elt_check(tree_node*, int, char const*, int, char const*)
        ../../repos/gcc/gcc/tree.h:3571
0x97210e simd_clone_clauses_extract
        ../../repos/gcc/gcc/omp-simd-clone.c:253
0x97210e expand_simd_clones(cgraph_node*)
        ../../repos/gcc/gcc/omp-simd-clone.c:1695
0x1cf40a7 ipa_omp_simd_clone
        ../../repos/gcc/gcc/omp-simd-clone.c:1798

Reply via email to