xref: /llvm-project/offload/test/offloading/fortran/basic-target-region-1D-array-section.f90 (revision 372344995568cae076477a8b0e98fcdec7c49379)
1*37234499Sagozillon! Basic offloading test of arrays with provided lower and upper bounds as
2*37234499Sagozillon! specified by OpenMP's sectioning
388234488SEthan Luis McDonough! REQUIRES: flang, amdgpu
4330d8983SJohannes Doerfert
5330d8983SJohannes Doerfert! RUN: %libomptarget-compile-fortran-run-and-check-generic
6330d8983SJohannes Doerfertprogram main
7330d8983SJohannes Doerfert    implicit none
8330d8983SJohannes Doerfert    integer :: write_arr(10) =  (/0,0,0,0,0,0,0,0,0,0/)
9330d8983SJohannes Doerfert    integer :: read_arr(10) = (/1,2,3,4,5,6,7,8,9,10/)
10330d8983SJohannes Doerfert    integer :: i = 2
11330d8983SJohannes Doerfert    integer :: j = 5
12330d8983SJohannes Doerfert    !$omp target map(to:read_arr(2:5)) map(from:write_arr(2:5)) map(to:i,j)
13330d8983SJohannes Doerfert        do while (i <= j)
14330d8983SJohannes Doerfert            write_arr(i) = read_arr(i)
15330d8983SJohannes Doerfert            i = i + 1
16330d8983SJohannes Doerfert        end do
17330d8983SJohannes Doerfert    !$omp end target
18330d8983SJohannes Doerfert
19330d8983SJohannes Doerfert    print *, write_arr(:)
20330d8983SJohannes Doerfertend program
21330d8983SJohannes Doerfert
22330d8983SJohannes Doerfert! CHECK: 0 2 3 4 5 0 0 0 0 0
23