2 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
4 /* { dg-additional-options "-std=c99" } */
11 #pragma omp simd linear(b:2) reduction(+:c)
12 for (int i
= 0; i
< 64; i
++)
14 c
= c
+ (b
!= 7 + 2 * i
);
17 if (c
|| b
!= 7 + 64 * 2)
20 #pragma omp simd linear(b:3) reduction(+:c)
21 for (int i
= 0; i
< 64; i
+= 4)
23 c
= c
+ (b
!= 7 + i
/ 4 * 3);
26 if (c
|| b
!= 7 + 16 * 3)
29 #pragma omp simd collapse (2) linear(b:2) reduction(+:c)
30 for (int i
= 0; i
< 8; i
++)
31 for (int j
= 0; j
< 8; j
++)
33 c
= c
+ (b
!= 7 + 2 * j
+ 2 * 8 * i
);
36 if (c
|| b
!= 7 + 64 * 2)
39 #pragma omp parallel for simd schedule (static, 4) linear(b:2) reduction(+:c)
40 for (int i
= 0; i
< 64; i
++)
42 c
= c
+ (b
!= 7 + 2 * i
);
45 if (c
|| b
!= 7 + 64 * 2)
48 #pragma omp parallel for simd schedule (static, 4) linear(b:3) reduction(+:c)
49 for (int i
= 0; i
< 64; i
+= 4)
51 c
= c
+ (b
!= 7 + i
/ 4 * 3);
54 if (c
|| b
!= 7 + 16 * 3)
57 #pragma omp parallel for simd collapse (2) schedule (static, 4) linear(b:2) reduction(+:c)
58 for (int i
= 0; i
< 8; i
++)
59 for (int j
= 0; j
< 8; j
++)
61 c
= c
+ (b
!= 7 + 2 * j
+ 2 * 8 * i
);
64 if (c
|| b
!= 7 + 64 * 2)