Skip gnat.dg/prot7.adb on hppa.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / parallel-loop-1.f90
blob676417cfecfd569de36229c76593feabe88e0a25
1 ! Exercise the auto, independent, seq and tile loop clauses inside
2 ! parallel regions.
4 ! { dg-do run }
6 program loops
7 integer, parameter :: n = 20, c = 10
8 integer :: i, a(n), b(n)
10 a(:) = 0
11 b(:) = 0
13 ! COPY
15 !$acc parallel copy (a)
16 !$acc loop auto
17 do i = 1, n
18 a(i) = i
19 end do
20 !$acc end parallel
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 parallel copyout (a)
33 !$acc loop independent
34 do i = 1, n
35 a(i) = i
36 end do
37 !$acc end parallel
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 parallel copyout (a) copyin (b)
49 !$acc loop seq
50 do i = 1, n
51 a(i) = i
52 end do
53 !$acc end parallel
55 call check (a, b, n)
57 ! PRESENT_OR_COPY
59 !$acc parallel pcopy (a)
60 !$acc loop tile (*)
61 do i = 1, n
62 a(i) = i
63 end do
64 !$acc end parallel
66 call check (a, b, n)
68 end program loops
70 subroutine check (a, b, n)
71 integer :: n, a(n), b(n)
72 integer :: i
74 do i = 1, n
75 if (a(i) .ne. b(i)) stop 2
76 end do
77 end subroutine check