re PR fortran/78741 (ICE in gfc_get_symbol_decl, at fortran/trans-decl.c:1534)
[official-gcc.git] / gcc / testsuite / gfortran.dg / goacc / gang-static.f95
blobcc83c7dd65b9b877034024c47837cc946d441d14
1 ! { dg-do compile }
2 ! { dg-additional-options "-fdump-tree-omplower" }
4 program main
5 integer, parameter :: n = 100
6 integer i, a(n), b(n)
8 do i = 1, n
9 b(i) = i
10 end do
12 !$acc parallel loop gang (static:*) num_gangs (10)
13 do i = 1, n
14 a(i) = b(i) + 0
15 end do
16 !$acc end parallel loop
18 call test (a, b, 0, n)
20 !$acc parallel loop gang (static:1) num_gangs (10)
21 do i = 1, n
22 a(i) = b(i) + 1
23 end do
24 !$acc end parallel loop
26 call test (a, b, 1, n)
28 !$acc parallel loop gang (static:2) num_gangs (10)
29 do i = 1, n
30 a(i) = b(i) + 2
31 end do
32 !$acc end parallel loop
34 call test (a, b, 2, n)
36 !$acc parallel loop gang (static:5) num_gangs (10)
37 do i = 1, n
38 a(i) = b(i) + 5
39 end do
40 !$acc end parallel loop
42 call test (a, b, 5, n)
44 !$acc parallel loop gang (static:20) num_gangs (10)
45 do i = 1, n
46 a(i) = b(i) + 20
47 end do
48 !$acc end parallel loop
50 !$acc kernels loop gang (num:5, static:*)
51 do i = 1, n
52 a(i) = b(i) + 20
53 end do
54 !$acc end kernels loop
56 !$acc kernels loop gang (static:20, num:30)
57 do i = 1, n
58 a(i) = b(i) + 20
59 end do
60 !$acc end kernels loop
62 call test (a, b, 20, n)
64 end program main
66 subroutine test (a, b, sarg, n)
67 integer n
68 integer a (n), b(n), sarg
69 integer i
71 do i = 1, n
72 if (a(i) .ne. b(i) + sarg) STOP 1
73 end do
74 end subroutine test
76 ! { dg-final { scan-tree-dump-times "gang\\(static:\\\*\\)" 1 "omplower" } }
77 ! { dg-final { scan-tree-dump-times "gang\\(static:1\\)" 1 "omplower" } }
78 ! { dg-final { scan-tree-dump-times "gang\\(static:2\\)" 1 "omplower" } }
79 ! { dg-final { scan-tree-dump-times "gang\\(static:5\\)" 1 "omplower" } }
80 ! { dg-final { scan-tree-dump-times "gang\\(static:20\\)" 1 "omplower" } }
81 ! { dg-final { scan-tree-dump-times "gang\\(num: 5 static:\\\*\\)" 1 "omplower" } }
82 ! { dg-final { scan-tree-dump-times "gang\\(num: 30 static:20\\)" 1 "omplower" } }