xref: /llvm-project/offload/test/offloading/fortran/basic-target-region-1D-array-section.f90 (revision 372344995568cae076477a8b0e98fcdec7c49379)
1! Basic offloading test of arrays with provided lower and upper bounds as
2! specified by OpenMP's sectioning
3! REQUIRES: flang, amdgpu
4
5! RUN: %libomptarget-compile-fortran-run-and-check-generic
6program main
7    implicit none
8    integer :: write_arr(10) =  (/0,0,0,0,0,0,0,0,0,0/)
9    integer :: read_arr(10) = (/1,2,3,4,5,6,7,8,9,10/)
10    integer :: i = 2
11    integer :: j = 5
12    !$omp target map(to:read_arr(2:5)) map(from:write_arr(2:5)) map(to:i,j)
13        do while (i <= j)
14            write_arr(i) = read_arr(i)
15            i = i + 1
16        end do
17    !$omp end target
18
19    print *, write_arr(:)
20end program
21
22! CHECK: 0 2 3 4 5 0 0 0 0 0
23