! Basic offloading test of a regular array explicitly ! passed within a target region ! REQUIRES: flang ! UNSUPPORTED: nvptx64-nvidia-cuda-LTO ! UNSUPPORTED: aarch64-unknown-linux-gnu ! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO ! UNSUPPORTED: x86_64-pc-linux-gnu ! UNSUPPORTED: x86_64-pc-linux-gnu-LTO ! RUN: %libomptarget-compile-fortran-run-and-check-generic program main integer :: x(2,2,2) integer :: i, j, k integer :: i2 = 2, j2 = 2, k2 = 2 integer :: counter = 1 do i = 1, 2 do j = 1, 2 do k = 1, 2 x(i, j, k) = 0 end do end do end do i = 1 j = 1 k = 1 !$omp target map(tofrom:x, counter) map(to: i, j, k, i2, j2, k2) do while (i <= i2) j = 1 do while (j <= j2) k = 1 do while (k <= k2) x(i, j, k) = counter counter = counter + 1 k = k + 1 end do j = j + 1 end do i = i + 1 end do !$omp end target do i = 1, 2 do j = 1, 2 do k = 1, 2 print *, x(i, j, k) end do end do end do end program main ! CHECK: 1 ! CHECK: 2 ! CHECK: 3 ! CHECK: 4 ! CHECK: 5 ! CHECK: 6 ! CHECK: 7 ! CHECK: 8