3 /* Test of worker-private variables declared on a loop directive. */
6 main (int argc
, char* argv
[])
8 int x
= 5, i
, arr
[32 * 32];
10 for (i
= 0; i
< 32 * 32; i
++)
13 #pragma acc kernels copy(arr)
17 #pragma acc loop gang(num:32)
18 for (i
= 0; i
< 32; i
++)
20 #pragma acc loop worker(num:32) private(x)
21 for (j
= 0; j
< 32; j
++)
24 /* Try to ensure 'x' accesses doesn't get optimized into a
26 __asm__
__volatile__ ("");
32 for (i
= 0; i
< 32 * 32; i
++)
33 assert (arr
[i
] == i
+ ((i
/ 32) ^ (i
% 32) * 3));