aboutsummaryrefslogtreecommitdiff
path: root/offload/test/offloading/fortran/target-map-pointer-target-array-section-3d-bounds.f90
blob: 6d9c497134ffb59963c6baf0e42f0e52dd8cc210 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
! Offloading test checking interaction of pointer and target with target where
! 3-D bounds have been specified
! REQUIRES: flang, amdgpu

! RUN: %libomptarget-compile-fortran-run-and-check-generic
program main
    integer, pointer :: inArray(:,:,:)
    integer, pointer :: outArray(:,:,:)
    integer, target :: in(3,3,3)
    integer, target :: out(3,3,3)

    inArray => in
    outArray => out

    do i = 1, 3
      do j = 1, 3
        do k = 1, 3
            inArray(i, j, k) = 42
            outArray(i, j, k) = 0
        end do
       end do
    end do

!$omp target map(tofrom:inArray(1:3, 1:3, 2:2), outArray(1:3, 1:3, 1:3))
    do j = 1, 3
      do k = 1, 3
        outArray(k, j, 2) = inArray(k, j, 2)
      end do
    end do
!$omp end target

 print *, outArray

end program

! 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