2 /* { dg-options "-O2 -std=c99" } */
3 /* { dg-additional-options "-msse2" { target sse2_runtime } } */
4 /* { dg-additional-options "-mavx" { target avx_runtime } } */
6 int u
[1024], v
[1024], w
[1024], m
;
8 __attribute__((noinline
, noclone
)) void
11 #pragma omp taskloop simd default(none) shared(u, v, w) nogroup
12 for (long d
= a
; d
< b
; d
++)
16 __attribute__((noinline
, noclone
)) int
17 f2 (long a
, long b
, long c
)
20 #pragma omp taskloop simd default(none) shared(u, v, w) linear(d:1) linear(c:5) lastprivate(e)
21 for (d
= a
; d
< b
; d
++)
30 __attribute__((noinline
, noclone
)) int
34 #pragma omp taskloop simd default(none) shared(u, v, w)
35 for (d
= a
; d
< b
; d
++)
43 __attribute__((noinline
, noclone
)) int
44 f4 (long a
, long b
, long c
, long d
)
47 #pragma omp taskloop simd default(none) shared(u, v, w) collapse(2) lastprivate(g)
48 for (e
= a
; e
< b
; e
++)
49 for (f
= c
; f
< d
; f
++)
60 __attribute__((noinline
, noclone
)) int
61 f5 (long a
, long b
, long c
, long d
)
64 #pragma omp taskloop simd default(none) shared(u, v, w) collapse(2)
65 for (e
= a
; e
< b
; e
++)
66 for (f
= c
; f
< d
; f
++)
78 for (i
= 0; i
< 1024; i
++)
86 for (i
= 0; i
< 1024; i
++)
87 if (u
[i
] != 2 * i
+ 1)
97 for (i
= 0; i
< 1024; i
++)
98 if ((i
< 2 || i
>= 1022) ? u
[i
] != 2 * i
+ 1 : u
[i
] != 1536 - 2 * i
)
105 if (m
!= 1022 + 2 * (1020 * 5 + 17) + 9)
110 for (i
= 0; i
< 1024; i
++)
111 if (u
[i
] != 2 * i
+ 1)
122 m
= f4 (0, 32, 0, 32);
123 for (i
= 0; i
< 1024; i
++)
124 if (u
[i
] != 1536 - 2 * i
)
131 if (m
!= 32 + 32 + 1023)
135 m
= f5 (0, 32, 0, 32);
136 for (i
= 0; i
< 1024; i
++)
137 if (u
[i
] != 2 * i
+ 1)