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