Skip gnat.dg/prot7.adb on hppa.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / kernels-loop-1.f90
blob37aa0ac4f63277eea602a739505c969c0b906ff2
1 ! Exercise the auto, independent, seq and tile loop clauses inside
2 ! kernels regions.
4 ! { dg-do run }
6 program loops
7 integer, parameter :: n = 20
8 integer :: i, a(n), b(n)
10 a(:) = 0
11 b(:) = 0
13 ! COPY
15 !$acc kernels copy (a)
16 !$acc loop auto
17 do i = 1, n
18 a(i) = i
19 end do
20 !$acc end kernels
22 do i = 1, n
23 b(i) = i
24 end do
26 call check (a, b, n)
28 ! COPYOUT
30 a(:) = 0
32 !$acc kernels copyout (a)
33 !$acc loop independent
34 do i = 1, n
35 a(i) = i
36 end do
37 !$acc end kernels
39 do i = 1, n
40 if (a(i) .ne. b(i)) stop 1
41 end do
42 call check (a, b, n)
44 ! COPYIN
46 a(:) = 0
48 !$acc kernels copyout (a) copyin (b)
49 !$acc loop seq
50 do i = 1, n
51 a(i) = b(i)
52 end do
53 !$acc end kernels
55 call check (a, b, n)
57 end program loops
59 subroutine check (a, b, n)
60 integer :: n, a(n), b(n)
61 integer :: i
63 do i = 1, n
64 if (a(i) .ne. b(i)) stop 2
65 end do
66 end subroutine check