aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.fortran/target10.f90
blob: 31452554d6795b3cc3b22139b97bb6c46d8ff2ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
! { dg-do run }
! { dg-xfail-run-if TODO { offload_device_any_intel_mic } }

program main
  use omp_lib
  implicit none
  integer :: device_num, host_device_num, i
  logical :: initial_device

  host_device_num = omp_get_device_num ()
  if (host_device_num .ne. omp_get_initial_device ()) stop 1

  do i = 0, omp_get_num_devices ()
    !$omp target map(from: device_num, initial_device) device(i)
      initial_device = omp_is_initial_device ()
      device_num = omp_get_device_num ()
    !$omp end target
    if (i /= device_num) stop 2
    if (initial_device .and. (host_device_num .ne. device_num)) stop 3
    if ((.not. initial_device) .and. (host_device_num .eq. device_num)) stop 4
  end do

end program main