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

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of offload/test/api/omp_dynamic_shared_memory_amdgpu.c