1 /* { dg-additional-options "-fopenmp-simd -fno-tree-vectorize" } */
2 /* { dg-additional-options "-mavx" { target avx_runtime } } */
3 /* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { target i?86-*-* x86_64-*-* } } } */
7 __attribute__((noipa
)) int
8 foo (int s
, int m
, int n
, int *p
)
10 int r
= 0, l
= 0, i
, j
;
11 #pragma omp simd reduction (+:r) linear(l) collapse(2)
12 for (j
= 0; j
< 7; j
++)
13 for (i
= m
; i
< n
; i
+= s
)
21 int p
[((10000 / 78) + 1) * 7];
28 r
= foo (78, 0, 10000, p
);
29 for (j
= 0; j
< 7; j
++)
31 for (i
= 0; i
< 10000 / 78; i
++)
32 if (p
[j
* (10000 / 78 + 1) + i
] != 78 * i
)
34 if (r
!= (10000 / 78) * (10000 / 78 + 1) / 2 * 78 * 3 * 7)
36 r
= foo (87, 0, 10000, p
);
37 for (j
= 0; j
< 7; j
++)
39 for (i
= 0; i
< 10000 / 87; i
++)
40 if (p
[j
* (10000 / 87 + 1) + i
] != 87 * i
)
42 if (r
!= (10000 / 87) * (10000 / 87 + 1) / 2 * 87 * 3 * 7)