1program test
2  implicit none
3  integer :: i, j
4
5  !$acc parallel
6    !$acc loop tile ! { dg-error "Failed to match clause" }
7    DO i = 1,10
8    ENDDO
9    !$acc loop tile() ! { dg-error "Syntax error" }
10    DO i = 1,10
11    ENDDO
12    !$acc loop tile(1)
13    DO i = 1,10
14    ENDDO
15    !$acc loop tile(*)
16    DO i = 1,10
17    ENDDO
18    !$acc loop tile(2)
19    DO i = 1,10
20      DO j = 1,10
21      ENDDO
22    ENDDO
23    !$acc loop tile(-1) ! { dg-warning "must be positive" }
24    do i = 1,10
25    enddo
26    !$acc loop tile(i) ! { dg-error "constant expression" }
27    do i = 1,10
28    enddo
29    !$acc loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" }
30      do i = 1, 3
31          do j = 4, 6
32          end do
33      end do
34      !$acc loop tile(2, 2)
35      do i = 1, 5, 2
36          do j = i + 1, 7, i  ! { dg-error "tiled loops don.t form rectangular iteration space" }
37          end do
38      end do
39    !$acc loop vector tile(*)
40    DO i = 1,10
41    ENDDO
42    !$acc loop worker tile(*)
43    DO i = 1,10
44    ENDDO
45    !$acc loop gang tile(*)
46    DO i = 1,10
47    ENDDO
48    !$acc loop vector gang tile(*)
49    DO i = 1,10
50    ENDDO
51    !$acc loop vector worker tile(*)
52    DO i = 1,10
53    ENDDO
54    !$acc loop gang worker tile(*)
55    DO i = 1,10
56    ENDDO
57  !$acc end parallel
58
59  !$acc parallel loop tile ! { dg-error "Failed to match clause" }
60  DO i = 1,10
61  ENDDO
62  !$acc parallel loop tile() ! { dg-error "Syntax error" }
63  DO i = 1,10
64  ENDDO
65  !$acc parallel loop tile(1)
66  DO i = 1,10
67  ENDDO
68  !$acc parallel loop tile(*)
69  DO i = 1,10
70  ENDDO
71  !$acc parallel loop tile(*, 1)
72  DO i = 1,10
73    DO j = 1,10
74    ENDDO
75  ENDDO
76  !$acc parallel loop tile(-1) ! { dg-warning "must be positive" }
77  do i = 1,10
78  enddo
79  !$acc parallel loop tile(i) ! { dg-error "constant expression" }
80  do i = 1,10
81  enddo
82  !$acc parallel loop tile(2, 2, 1) ! { dg-error "not enough DO loops for tiled" }
83    do i = 1, 3
84        do j = 4, 6
85        end do
86    end do
87    !$acc parallel loop tile(2, 2)
88    do i = 1, 5, 2
89        do j = i + 1, 7, i  ! { dg-error "tiled loops don.t form rectangular iteration space" }
90        end do
91    end do
92  !$acc parallel loop vector tile(*)
93  DO i = 1,10
94  ENDDO
95  !$acc parallel loop worker tile(*)
96  DO i = 1,10
97  ENDDO
98  !$acc parallel loop gang tile(*)
99  DO i = 1,10
100  ENDDO
101  !$acc parallel loop vector gang tile(*)
102  DO i = 1,10
103  ENDDO
104  !$acc parallel loop vector worker tile(*)
105  DO i = 1,10
106  ENDDO
107  !$acc parallel loop gang worker tile(*)
108  DO i = 1,10
109  ENDDO
110end
111