| #define N (32 * 32) | |
| #define TYPE float | |
| #define VAR v | |
| #define INIT 0.0 | |
| #define UPDATE + 1.0 | |
| #define EXPECTED N | |
| int | |
| main (void) | |
| { | |
| TYPE VAR = INIT; | |
| #pragma omp target map(tofrom: VAR) | |
| #pragma omp parallel for simd | |
| for (int i = 0 ; i < N; i++) | |
| { | |
| #pragma omp atomic update | |
| VAR = VAR UPDATE; | |
| } | |
| if (VAR != EXPECTED) | |
| __builtin_abort (); | |
| return 0; | |
| } |