1 // RUN: %libomptarget-compile-amdgcn-amd-amdhsa -O1 -mllvm -openmp-opt-inline-device 2 // RUN: env LIBOMPTARGET_SHARED_MEMORY_SIZE=256 \ 3 // RUN: %libomptarget-run-amdgcn-amd-amdhsa | %fcheck-amdgcn-amd-amdhsa 4 // REQUIRES: amdgcn-amd-amdhsa 5 6 #include <omp.h> 7 #include <stdio.h> 8 main()9int main() { 10 int x; 11 #pragma omp target parallel map(from : x) 12 { 13 int *buf = llvm_omp_target_dynamic_shared_alloc() + 252; 14 #pragma omp barrier 15 if (omp_get_thread_num() == 0) 16 *buf = 1; 17 #pragma omp barrier 18 if (omp_get_thread_num() == 1) 19 x = *buf; 20 } 21 22 // CHECK: PASS 23 if (x == 1 && llvm_omp_target_dynamic_shared_alloc() == NULL) 24 printf("PASS\n"); 25 } 26