diff options
Diffstat (limited to 'offload/test/api/omp_dynamic_shared_memory_amdgpu.c')
| -rw-r--r-- | offload/test/api/omp_dynamic_shared_memory_amdgpu.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/offload/test/api/omp_dynamic_shared_memory_amdgpu.c b/offload/test/api/omp_dynamic_shared_memory_amdgpu.c new file mode 100644 index 000000000000..0b4d9d6ea9d4 --- /dev/null +++ b/offload/test/api/omp_dynamic_shared_memory_amdgpu.c @@ -0,0 +1,25 @@ +// RUN: %libomptarget-compile-amdgcn-amd-amdhsa -O1 -mllvm -openmp-opt-inline-device +// RUN: env LIBOMPTARGET_SHARED_MEMORY_SIZE=256 \ +// RUN: %libomptarget-run-amdgcn-amd-amdhsa | %fcheck-amdgcn-amd-amdhsa +// REQUIRES: amdgcn-amd-amdhsa + +#include <omp.h> +#include <stdio.h> + +int main() { + int x; +#pragma omp target parallel map(from : x) + { + int *buf = llvm_omp_target_dynamic_shared_alloc() + 252; +#pragma omp barrier + if (omp_get_thread_num() == 0) + *buf = 1; +#pragma omp barrier + if (omp_get_thread_num() == 1) + x = *buf; + } + + // CHECK: PASS + if (x == 1 && llvm_omp_target_dynamic_shared_alloc() == NULL) + printf("PASS\n"); +} |
