xref: /llvm-project/offload/test/offloading/fortran/target-parallel-do-collapse.f90 (revision 8823448807f3b1a1362d1417e062d763734e02f5)
1! Basic offloading test with a target region
2! REQUIRES: flang, amdgpu
3
4! RUN: %libomptarget-compile-fortran-generic
5! RUN: env LIBOMPTARGET_INFO=16 %libomptarget-run-generic 2>&1 | %fcheck-generic
6program main
7   use omp_lib
8   implicit none
9   integer :: i,j
10   integer :: array(10,10), errors = 0
11   do i = 1, 10
12      do j = 1, 10
13         array(j, i) = 0
14      end do
15   end do
16
17   !$omp target parallel do map(from:array) collapse(2)
18   do i = 1, 10
19      do j = 1, 10
20         array( j, i) = i + j
21      end do
22    end do
23    !$omp end target parallel do
24
25    do i = 1, 10
26       do j = 1, 10
27          if ( array( j, i) .ne. (i + j) ) then
28             errors = errors + 1
29          end if
30       end do
31   end do
32
33   print *,"number of errors: ", errors
34
35end program main
36
37! CHECK:  "PluginInterface" device {{[0-9]+}} info: Launching kernel {{.*}}
38! CHECK:  number of errors: 0
39
40