// RUN: %compile-run-and-check | |
#include <omp.h> | |
#include <stdio.h> | |
int main() { | |
int res = 0; | |
#pragma omp parallel num_threads(2) reduction(+:res) | |
{ | |
int tid = omp_get_thread_num(); | |
#pragma omp target teams distribute reduction(+:res) | |
for (int i = tid; i < 2; i++) | |
++res; | |
} | |
// The first thread makes 2 iterations, the second - 1. Expected result of the | |
// reduction res is 3. | |
// CHECK: res = 3. | |
printf("res = %d.\n", res); | |
return 0; | |
} |