70 lines · plain
1! Offloading test checking interaction of mapping a declare target link common2! block with device_type any to a target region3! REQUIRES: flang, amdgcn-amd-amdhsa4! UNSUPPORTED: nvptx64-nvidia-cuda5! UNSUPPORTED: nvptx64-nvidia-cuda-LTO6! UNSUPPORTED: aarch64-unknown-linux-gnu7! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO8! UNSUPPORTED: x86_64-unknown-linux-gnu9! UNSUPPORTED: x86_64-unknown-linux-gnu-LTO10 11! RUN: %libomptarget-compile-fortran-run-and-check-generic12program main13 implicit none14 common /var_common/ var1, var2, var315 integer :: var1, var2, var316 !$omp declare target link(/var_common/)17 18 call modify_119 20 !$omp target map(tofrom: var2)21 var2 = var2 + var322 !$omp end target23 24 call modify_225 call modify_326 27 print *, var128 print *, var229 print *, var330end program31 32subroutine modify_133 common /var_common/ var1, var2, var334 integer :: var1, var2, var335 36!$omp target map(tofrom: /var_common/)37 var1 = 1038 var2 = 2039 var3 = 3040!$omp end target41 42end43 44subroutine modify_245 common /var_common/ var1, var2, var346 integer :: var1, var2, var347 integer :: copy48 49!$omp target map(tofrom: copy)50 copy = var2 + var351!$omp end target52 53 print *, copy54end55 56subroutine modify_357 common /var_common/ var1, var2, var358 integer :: var1, var2, var359 60!$omp target map(tofrom: /var_common/)61 var1 = var1 + var162 var2 = var2 + var263 var3 = var3 + var364!$omp end target65end66 67!CHECK: 8068!CHECK: 2069!CHECK: 10070!CHECK: 60