brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 8e52e2f Raw
122 lines · plain
1! Basic offloading test with a target region2! REQUIRES: flang, amdgpu3! RUN: %libomptarget-compile-fortran-run-and-check-generic4 5! Testing simple variables in common block.6program main7  call check_device8  call commonblock_simple_with_implicit_type_var9  call commonblock_simple_with_integer10  call commonblock_simple_with_real11  call commonblock_simple_to_from12  call set_commonblock_named13  call use_commonblock_named14end program main15 16!-----17 18subroutine check_device19  use omp_lib20  integer :: devices(2)21  devices(1) = omp_get_device_num()22  !$omp target map(tofrom:devices)23    devices(2) = omp_get_device_num()24  !$omp end target25  print *, omp_get_num_devices()26  !CHECK: [[ND:[0-9]+]]27  print *, omp_get_default_device()28  !CHECK: [[DD:[0-9]+]]29  !CHECK: devices: [[ND]] [[DD]]30  print *, "devices: ", devices31end subroutine check_device32 33!-----34 35subroutine commonblock_simple_with_implicit_type_var36  use omp_lib37  common var138  var1 = 1039  print *, "var1 before target = ", var140  !$omp target map(tofrom:var1)41    var1 = 2042  !$omp end target43  print *, "var1 after target = ", var144end subroutine45 46! CHECK: var1 before target = 1047! CHECK: var1 after target = 2048 49! -----50 51subroutine commonblock_simple_with_integer52  use omp_lib53  integer :: var254  common var255  var2 = 1056  print *, "var2 before target = ", var257  !$omp target map(tofrom:var2)58    var2 = 2059  !$omp end target60  print *, "var2 after target = ", var261end subroutine62 63! CHECK: var2 before target = 1064! CHECK: var2 after target = 2065 66! -----67 68subroutine commonblock_simple_with_real69  use omp_lib70  real :: var371  common var372  var3 = 12.573  print *, "var3 before target = ", var374  !$omp target map(tofrom:var3)75    var3 = 14.576  !$omp end target77  print *, "var3 after target = ", var378end subroutine79 80! CHECK: var3 before target = 12.581! CHECK: var3 after target = 14.582 83! -----84 85subroutine commonblock_simple_to_from86  use omp_lib87  integer :: var4, tmp88  common var489  var4 = 1090  tmp = 2091  !$omp target map(to:var4) map(from:tmp)92    tmp = var493    var4 = 2094  !$omp end target95  print *, "var4 after target = ", var496  print *, "tmp after target = ", tmp97end subroutine98 99! CHECK: var4 after target = 10100! CHECK: tmp after target = 10101 102! -----103 104subroutine set_commonblock_named105  integer :: var6106  common /my_common_block/ var6107  var6 = 20108end subroutine109 110subroutine use_commonblock_named111  integer :: var6112  common /my_common_block/ var6113  print *, "var6 before target = ", var6114  !$omp target map(tofrom: var6)115    var6 = 30116  !$omp end target117  print *, "var6 after target = ", var6118end subroutine119 120! CHECK: var6 before target = 20121! CHECK: var6 after target = 30122