58 lines · plain
1! Basic offloading test of a regular array explicitly passed within a target2! region3! REQUIRES: flang4! REQUIRES: gpu5! UNSUPPORTED: nvptx64-nvidia-cuda-LTO6 7! RUN: %libomptarget-compile-fortran-run-and-check-generic8program main9 integer :: x(2,2,2)10 integer :: i, j, k11 integer :: i2 = 2, j2 = 2, k2 = 212 integer :: counter = 113 do i = 1, 214 do j = 1, 215 do k = 1, 216 x(i, j, k) = 017 end do18 end do19 end do20 21i = 122j = 123k = 124 25!$omp target map(tofrom:x, counter) map(to: i, j, k, i2, j2, k2)26 do while (i <= i2)27 j = 128 do while (j <= j2)29 k = 130 do while (k <= k2)31 x(i, j, k) = counter32 counter = counter + 133 k = k + 134 end do35 j = j + 136 end do37 i = i + 138 end do39!$omp end target40 41 do i = 1, 242 do j = 1, 243 do k = 1, 244 print *, x(i, j, k)45 end do46 end do47 end do48end program main49 50! CHECK: 151! CHECK: 252! CHECK: 353! CHECK: 454! CHECK: 555! CHECK: 656! CHECK: 757! CHECK: 858