1 // RUN: %libomptarget-compilexx-run-and-check-generic
2 
3 // amdgcn does not have printf definition
4 // UNSUPPORTED: amdgcn-amd-amdhsa
5 // UNSUPPORTED: amdgcn-amd-amdhsa-newRTL
6 
7 #include <stdio.h>
8 
9 void sum(int* input, int size, int* output)
10 {
11 #pragma omp target teams distribute parallel for reduction(+:output[0]) \
12                                                  map(to:input[0:size])
13   for (int i = 0; i < size; i++)
14     output[0] += input[i];
15 }
16 int main()
17 {
18   const int size = 100;
19   int *array = new int[size];
20   int result = 0;
21   for (int i = 0; i < size; i++)
22     array[i] = i + 1;
23   sum(array, size, &result);
24   // CHECK: Result=5050
25   printf("Result=%d\n", result);
26   delete[] array;
27   return 0;
28 }
29 
30