PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-fortran / asyncwait-2.f90
blob7f5080a21b6dfc07923a528efdb93a3c80b1109b
1 ! { dg-do run }
3 program asyncwait
4 integer, parameter :: N = 64
5 real, allocatable :: a(:), b(:), c(:)
6 integer i
8 allocate (a(N))
9 allocate (b(N))
10 allocate (c(N))
12 !$acc parallel async (0)
13 !$acc loop
14 do i = 1, N
15 a(i) = 1
16 end do
17 !$acc end parallel
19 !$acc parallel async (1)
20 !$acc loop
21 do i = 1, N
22 b(i) = 1
23 end do
24 !$acc end parallel
26 !$acc parallel wait (0, 1)
27 !$acc loop
28 do i = 1, N
29 c(i) = a(i) + b(i)
30 end do
31 !$acc end parallel
33 do i = 1, N
34 if (c(i) .ne. 2.0) STOP 1
35 end do
37 !$acc kernels async (0)
38 !$acc loop
39 do i = 1, N
40 a(i) = 1
41 end do
42 !$acc end kernels
44 !$acc kernels async (1)
45 !$acc loop
46 do i = 1, N
47 b(i) = 1
48 end do
49 !$acc end kernels
51 !$acc kernels wait (0, 1)
52 !$acc loop
53 do i = 1, N
54 c(i) = a(i) + b(i)
55 end do
56 !$acc end kernels
58 do i = 1, N
59 if (c(i) .ne. 2.0) STOP 2
60 end do
62 deallocate (a)
63 deallocate (b)
64 deallocate (c)
65 end program asyncwait