File: target-map-allocatable-array-section-3d-bounds.f90

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.8-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,236,764 kB
  • sloc: cpp: 7,619,776; ansic: 1,433,958; asm: 1,058,748; python: 252,197; f90: 94,671; objc: 70,753; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,721; awk: 3,523; javascript: 2,272; xml: 892; fortran: 770
file content (37 lines) | stat: -rw-r--r-- 876 bytes parent folder | download | duplicates (7)
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
37
! Offloading test checking interaction of allocatables with multi-dimensional
! bounds (3-D in this case) and a target region
! REQUIRES: flang, amdgpu

! RUN: %libomptarget-compile-fortran-run-and-check-generic
program main
    integer, allocatable :: inArray(:,:,:)
    integer, allocatable :: outArray(:,:,:)

    allocate(inArray(3,3,3))
    allocate(outArray(3,3,3))

    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

deallocate(inArray)
deallocate(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