brintos

brintos / llvm-project-archived public Read only

0
0
Text · 947 B · b97e5a9 Raw
46 lines · plain
1!REQUIRES: flang, amdgpu2 3!Test derived from the sollve test for has-device-addr.4 5!RUN: %libomptarget-compile-fortran-run-and-check-generic6 7module m8  use iso_c_binding9 10contains11  subroutine target_has_device_addr()12    integer, target :: x13    integer, pointer :: first_scalar_device_addr14    type(c_ptr) :: cptr_scalar115 16    integer :: res1, res217 18    nullify (first_scalar_device_addr)19    x = 1020 21    !$omp target enter data map(to: x)22    !$omp target data use_device_addr(x)23      x = 1124      cptr_scalar1 = c_loc(x)25    !$omp end target data26 27    call c_f_pointer (cptr_scalar1, first_scalar_device_addr)28 29    !$omp target map(to: x) map(from: res1, res2) &30    !$omp & has_device_addr(first_scalar_device_addr)31      res1 = first_scalar_device_addr32      res2 = x33    !$omp end target34    print *, "res1", res1, "res2", res235  end subroutine36end module37 38 39program p40  use m41 42  call target_has_device_addr()43end44 45!CHECK: res1 11 res2 1146