1! Basic offloading test of a regular array explicitly passed within a target 2! region 3! REQUIRES: flang 4! REQUIRES: gpu 5! UNSUPPORTED: nvptx64-nvidia-cuda-LTO 6 7! RUN: %libomptarget-compile-fortran-run-and-check-generic 8program main 9 integer :: x(2,2,2) 10 integer :: i, j, k 11 integer :: i2 = 2, j2 = 2, k2 = 2 12 integer :: counter = 1 13 do i = 1, 2 14 do j = 1, 2 15 do k = 1, 2 16 x(i, j, k) = 0 17 end do 18 end do 19 end do 20 21i = 1 22j = 1 23k = 1 24 25!$omp target map(tofrom:x, counter) map(to: i, j, k, i2, j2, k2) 26 do while (i <= i2) 27 j = 1 28 do while (j <= j2) 29 k = 1 30 do while (k <= k2) 31 x(i, j, k) = counter 32 counter = counter + 1 33 k = k + 1 34 end do 35 j = j + 1 36 end do 37 i = i + 1 38 end do 39!$omp end target 40 41 do i = 1, 2 42 do j = 1, 2 43 do k = 1, 2 44 print *, x(i, j, k) 45 end do 46 end do 47 end do 48end program main 49 50! CHECK: 1 51! CHECK: 2 52! CHECK: 3 53! CHECK: 4 54! CHECK: 5 55! CHECK: 6 56! CHECK: 7 57! CHECK: 8 58