3 /* Test of reduction on both parallel and loop directives (workers and vectors
4 in gang-partitioned mode, int type with XOR). */
7 main (int argc
, char *argv
[])
9 int i
, j
, arr
[32768], res
= 0, hres
= 0;
11 for (i
= 0; i
< 32768; i
++)
14 #pragma acc parallel num_gangs(32) num_workers(32) vector_length(32) \
18 for (j
= 0; j
< 32; j
++)
20 #pragma acc loop worker vector reduction(^:res)
21 for (i
= 0; i
< 1024; i
++)
22 res
^= 3 * arr
[j
* 1024 + i
];
24 #pragma acc loop worker vector reduction(^:res)
25 for (i
= 0; i
< 1024; i
++)
26 res
^= arr
[j
* 1024 + (1023 - i
)];
30 for (j
= 0; j
< 32; j
++)
31 for (i
= 0; i
< 1024; i
++)
33 hres
^= 3 * arr
[j
* 1024 + i
];
34 hres
^= arr
[j
* 1024 + (1023 - i
)];