55 lines · plain
1! Offloading test checking interaction of mapping all the members of a common2! block 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 17 call modify_118 19 !$omp target map(tofrom: var1, var2, var3)20 var3 = var3 * 1021 var2 = var2 * 1022 var1 = var1 * 1023 !$omp end target24 25 call modify_226 27 print *, var128 print *, var229 print *, var330end program31 32subroutine modify_133 common /var_common/ var1, var2, var334 integer :: var1, var2, var335!$omp target map(tofrom: var2, var1, var3)36 var3 = var3 + 4037 var2 = var2 + 2038 var1 = var1 + 3039!$omp end target40end41 42subroutine modify_243 common /var_common/ var1, var2, var344 integer :: var1, var2, var345!$omp target map(tofrom: var2, var3, var1)46 var3 = var3 + 2047 var1 = var1 + 1048 var2 = var2 + 1549!$omp end target50end51 52!CHECK: 31053!CHECK: 21554!CHECK: 42055