tripcount.c 467 Bytes
// 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;
}