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