1 /* Exercise nested function decomposition, gcc/tree-nested.c. */
2 /* See gcc/testsuite/gfortran.dg/goacc/nested-function-1.f90 for the Fortran
13 for (int i
= 0; i
< N
; ++i
)
24 for (int i
= 0; i
< N
; ++i
)
28 #pragma acc kernels loop \
29 gang(num:local_arg) worker(local_arg) vector(local_arg) \
31 for (local_i
= 0; local_i
< N
; ++local_i
)
33 #pragma acc cache (local_a[local_i:5])
34 local_a
[local_i
] = 100;
35 #pragma acc loop seq tile(*)
36 for (local_j
= 0; local_j
< N
; ++local_j
)
38 #pragma acc loop auto independent tile(1)
39 for (local_j
= 0; local_j
< N
; ++local_j
)
43 #pragma acc kernels loop \
44 gang(static:local_arg) worker(local_arg) vector(local_arg) \
45 wait(local_arg, local_arg + 1, local_arg + 2) async
46 for (local_i
= 0; local_i
< N
; ++local_i
)
48 #pragma acc cache (local_a[local_i:4])
49 local_a
[local_i
] = 100;
50 #pragma acc loop seq tile(1)
51 for (local_j
= 0; local_j
< N
; ++local_j
)
53 #pragma acc loop auto independent tile(*)
54 for (local_j
= 0; local_j
< N
; ++local_j
)
61 for (int i
= 0; i
< N
; ++i
)
65 #pragma acc kernels loop \
66 gang(num:nonlocal_arg) worker(nonlocal_arg) vector(nonlocal_arg) \
67 wait async(nonlocal_arg)
68 for (nonlocal_i
= 0; nonlocal_i
< N
; ++nonlocal_i
)
70 #pragma acc cache (nonlocal_a[nonlocal_i:3])
71 nonlocal_a
[nonlocal_i
] = 100;
72 #pragma acc loop seq tile(2)
73 for (nonlocal_j
= 0; nonlocal_j
< N
; ++nonlocal_j
)
75 #pragma acc loop auto independent tile(3)
76 for (nonlocal_j
= 0; nonlocal_j
< N
; ++nonlocal_j
)
80 #pragma acc kernels loop \
81 gang(static:nonlocal_arg) worker(nonlocal_arg) vector(nonlocal_arg) \
82 wait(nonlocal_arg, nonlocal_arg + 1, nonlocal_arg + 2) async
83 for (nonlocal_i
= 0; nonlocal_i
< N
; ++nonlocal_i
)
85 #pragma acc cache (nonlocal_a[nonlocal_i:2])
86 nonlocal_a
[nonlocal_i
] = 100;
87 #pragma acc loop seq tile(*)
88 for (nonlocal_j
= 0; nonlocal_j
< N
; ++nonlocal_j
)
90 #pragma acc loop auto independent tile(*)
91 for (nonlocal_j
= 0; nonlocal_j
< N
; ++nonlocal_j
)