1! Offloading test checking interaction of pointer and target with target where
2! 3-D bounds have been specified
3! REQUIRES: flang, amdgpu
4
5! RUN: %libomptarget-compile-fortran-run-and-check-generic
6program main
7    integer, pointer :: inArray(:,:,:)
8    integer, pointer :: outArray(:,:,:)
9    integer, target :: in(3,3,3)
10    integer, target :: out(3,3,3)
11
12    inArray => in
13    outArray => out
14
15    do i = 1, 3
16      do j = 1, 3
17        do k = 1, 3
18            inArray(i, j, k) = 42
19            outArray(i, j, k) = 0
20        end do
21       end do
22    end do
23
24!$omp target map(tofrom:inArray(1:3, 1:3, 2:2), outArray(1:3, 1:3, 1:3))
25    do j = 1, 3
26      do k = 1, 3
27        outArray(k, j, 2) = inArray(k, j, 2)
28      end do
29    end do
30!$omp end target
31
32 print *, outArray
33
34end program
35
36! CHECK: 0 0 0 0 0 0 0 0 0 42 42 42 42 42 42 42 42 42 0 0 0 0 0 0 0 0 0
37