2 /* { dg-options "-O2" } */
3 /* { dg-additional-options "-std=c99" { target c } } */
8 __attribute__((noinline
, noclone
)) int
11 #pragma omp taskloop firstprivate (x) lastprivate (x)
12 for (int i
= 0; i
< 64; i
++)
22 __attribute__((noinline
, noclone
)) void
25 #pragma omp taskloop firstprivate (g) lastprivate (g) nogroup
26 for (int i
= 0; i
< 64; i
++)
35 __attribute__((noinline
, noclone
)) long long
36 f3 (long long a
, long long b
, long long c
)
40 #pragma omp taskloop default (none) lastprivate (i, l)
41 for (i
= a
; i
< b
; i
+= c
)
46 __attribute__((noinline
, noclone
)) long long
47 f4 (long long a
, long long b
, long long c
, long long d
,
48 long long e
, long long f
, int k
)
52 #pragma omp taskloop default (none) collapse(2) \
53 firstprivate (k) lastprivate (i, j, k, l)
54 for (i
= a
; i
< b
; i
+= e
)
55 for (j
= c
; j
< d
; j
+= f
)
59 if (i
== 31 && j
== 46)
63 return i
+ 5 * j
+ 11 * k
+ 17 * l
;
72 if (f1 (74) != 63 + 4)
79 if (f3 (7, 12, 2) != 11 * 7 + 13)
81 if (f4 (0, 32, 16, 48, 1, 2, 73) != 32 + 5 * 48 + 11 * 31 + 17 * 46)