/* { dg-do run } */ /* { dg-options "-O3 -fcilkplus" } */ /* FIXME: This test has been xfailed until reductions are fixed. */ int argc = 1; /* This is a simple vectorization test. It tests if reduction works and if it can vectorize the loop in func correctly. */ #define N 1000 int func (int *p, int *q) { int x = 0; #pragma simd reduction (+:x) for (int ii = 0; ii < N; ii++) { x += (q[ii] + p[ii]); } return x; } int main () { int ii = 0, x; int Array[N], Array2[N]; for (ii = 0; ii < N; ii++) { Array[ii] = 5 + argc; Array2[ii] = argc; } x = func (Array, Array2); if (x != N * 7) return 1; return 0; }