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