/* PR tree-optimization/88107 */ /* { dg-do compile { target fgraphite } } */ /* { dg-require-effective-target vect_simd_clones } */ /* { dg-options "-O2 -fexceptions -floop-nest-optimize -fnon-call-exceptions -fopenmp-simd -ftree-parallelize-loops=2" } */ #define N 1024 int a[N], b[N]; long int c[N]; unsigned char d[N]; #pragma omp declare simd notinbranch __attribute__((noinline)) static int foo (long int a, int b, int c) { return a + b + c; } #pragma omp declare simd notinbranch __attribute__((noinline)) static long int bar (int a, int b, long int c) { return a + b + c; } void baz (void) { int i; #pragma omp simd for (i = 0; i < N; i++) a[i] = foo (c[i], a[i], b[i]) + 6; #pragma omp simd for (i = 0; i < N; i++) c[i] = bar (a[i], b[i], c[i]) * 2; }