2 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
3 /* { dg-additional-options "-mavx" { target avx_runtime } } */
4 /* { dg-additional-options "-std=c99" } */
7 foo (int *b
, int *i
, int *j
, int x
)
9 *b
= *b
+ x
+ (*i
- *i
) + (*j
- *j
);
17 #pragma omp simd linear(b:2) reduction(+:c)
18 for (int i
= 0; i
< 64; i
++)
20 c
= c
+ (b
!= 7 + 2 * i
);
23 if (c
|| b
!= 7 + 64 * 2)
26 #pragma omp simd linear(b:3) reduction(+:c)
27 for (int i
= 0; i
< 64; i
+= 4)
29 c
= c
+ (b
!= 7 + i
/ 4 * 3);
32 if (c
|| b
!= 7 + 16 * 3)
35 #pragma omp simd collapse (2) linear(b:2) reduction(+:c)
36 for (int i
= 0; i
< 8; i
++)
37 for (int j
= 0; j
< 8; j
++)
39 c
= c
+ (b
!= 7 + 2 * j
+ 2 * 8 * i
);
42 if (c
|| b
!= 7 + 64 * 2)
45 #pragma omp parallel for simd schedule (static, 4) linear(b:2) reduction(+:c)
46 for (int i
= 0; i
< 64; i
++)
48 c
= c
+ (b
!= 7 + 2 * i
);
51 if (c
|| b
!= 7 + 64 * 2)
54 #pragma omp parallel for simd schedule (static, 4) linear(b:3) reduction(+:c)
55 for (int i
= 0; i
< 64; i
+= 4)
57 c
= c
+ (b
!= 7 + i
/ 4 * 3);
60 if (c
|| b
!= 7 + 16 * 3)
63 #pragma omp parallel for simd collapse (2) schedule (static, 4) linear(b:2) reduction(+:c)
64 for (int i
= 0; i
< 8; i
++)
65 for (int j
= 0; j
< 8; j
++)
67 c
= c
+ (b
!= 7 + 2 * j
+ 2 * 8 * i
);
70 if (c
|| b
!= 7 + 64 * 2)