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 Yuvoid 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 Yuint 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