| /* Verify that reduction variables can appear in data clause. */ | |
| #include <assert.h> | |
| const int n = 100; | |
| int | |
| main () | |
| { | |
| int s = 0; | |
| int array[n]; | |
| for (int i = 0; i < n; i++) | |
| array[i] = i+1; | |
| #pragma acc parallel loop num_gangs (10) copy (s) reduction (+:s) | |
| for (int i = 0; i < n; i++) | |
| s += array[i]; | |
| #pragma acc parallel loop num_gangs (10) reduction (+:s) copy (s) | |
| for (int i = 0; i < n; i++) | |
| s += array[i]; | |
| assert (s == n * (n + 1)); | |
| return 0; | |
| } |