K(void)1 void K(void)
2 {
3   int i, j;
4 
5 #pragma acc kernels
6   {
7 #pragma acc loop auto
8     for (i = 0; i < 10; i++)
9       { }
10 #pragma acc loop gang
11     for (i = 0; i < 10; i++)
12       { }
13 #pragma acc loop gang(5)
14     for (i = 0; i < 10; i++)
15       { }
16 #pragma acc loop gang(num:5)
17     for (i = 0; i < 10; i++)
18       { }
19 #pragma acc loop gang(static:5)
20     for (i = 0; i < 10; i++)
21       { }
22 #pragma acc loop gang(static:*)
23     for (i = 0; i < 10; i++)
24       { }
25 #pragma acc loop gang
26     for (i = 0; i < 10; i++)
27       {
28 #pragma acc loop vector
29 	for (j = 0; j < 10; j++)
30 	  { }
31 #pragma acc loop worker
32 	for (j = 0; j < 10; j++)
33 	  { }
34 #pragma acc loop gang // { dg-error "inner loop uses same" }
35 	for (j = 0; j < 10; j++)
36 	  { }
37       }
38 #pragma acc loop seq gang // { dg-error "'seq' overrides" }
39     for (i = 0; i < 10; i++)
40       { }
41 
42 #pragma acc loop worker
43     for (i = 0; i < 10; i++)
44       { }
45 #pragma acc loop worker(5)
46     for (i = 0; i < 10; i++)
47       { }
48 #pragma acc loop worker(num:5)
49     for (i = 0; i < 10; i++)
50       { }
51 #pragma acc loop worker
52     for (i = 0; i < 10; i++)
53       {
54 #pragma acc loop vector
55 	for (j = 0; j < 10; j++)
56 	  { }
57 #pragma acc loop worker // { dg-error "inner loop uses same" }
58 	for (j = 0; j < 10; j++)
59 	  { }
60 #pragma acc loop gang
61 	for (j = 0; j < 10; j++)
62 	  { }
63       }
64 #pragma acc loop seq worker // { dg-error "'seq' overrides" }
65     for (i = 0; i < 10; i++)
66       { }
67 #pragma acc loop gang worker
68     for (i = 0; i < 10; i++)
69       { }
70 
71 #pragma acc loop vector
72     for (i = 0; i < 10; i++)
73       { }
74 #pragma acc loop vector(5)
75     for (i = 0; i < 10; i++)
76       { }
77 #pragma acc loop vector(length:5)
78     for (i = 0; i < 10; i++)
79       { }
80 #pragma acc loop vector
81     for (i = 0; i < 10; i++)
82       {
83 #pragma acc loop vector // { dg-error "inner loop uses same" }
84 	for (j = 1; j < 10; j++)
85 	  { }
86 #pragma acc loop worker
87 	for (j = 1; j < 10; j++)
88 	  { }
89 #pragma acc loop gang
90 	for (j = 1; j < 10; j++)
91 	  { }
92       }
93 #pragma acc loop seq vector // { dg-error "'seq' overrides" }
94     for (i = 0; i < 10; i++)
95       { }
96 #pragma acc loop gang vector
97     for (i = 0; i < 10; i++)
98       { }
99 #pragma acc loop worker vector
100     for (i = 0; i < 10; i++)
101       { }
102 
103 #pragma acc loop auto
104     for (i = 0; i < 10; i++)
105       { }
106 #pragma acc loop seq auto // { dg-error "'seq' overrides" }
107     for (i = 0; i < 10; i++)
108       { }
109 #pragma acc loop gang auto // { dg-error "'auto' conflicts" }
110     for (i = 0; i < 10; i++)
111       { }
112 #pragma acc loop worker auto // { dg-error "'auto' conflicts" }
113     for (i = 0; i < 10; i++)
114       { }
115 #pragma acc loop vector auto // { dg-error "'auto' conflicts" }
116     for (i = 0; i < 10; i++)
117       { }
118   }
119 
120 #pragma acc kernels loop auto
121   for (i = 0; i < 10; i++)
122     { }
123 #pragma acc kernels loop gang
124   for (i = 0; i < 10; i++)
125     { }
126 #pragma acc kernels loop gang(5)
127   for (i = 0; i < 10; i++)
128     { }
129 #pragma acc kernels loop gang(num:5)
130   for (i = 0; i < 10; i++)
131     { }
132 #pragma acc kernels loop gang(static:5)
133   for (i = 0; i < 10; i++)
134     { }
135 #pragma acc kernels loop gang(static:*)
136   for (i = 0; i < 10; i++)
137     { }
138 
139 #pragma acc kernels loop worker
140   for (i = 0; i < 10; i++)
141     { }
142 #pragma acc kernels loop worker(5)
143   for (i = 0; i < 10; i++)
144     { }
145 #pragma acc kernels loop worker(num:5)
146   for (i = 0; i < 10; i++)
147     { }
148 #pragma acc kernels loop seq worker // { dg-error "'seq' overrides" "" { target c } }
149   for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } }
150     { }
151 #pragma acc kernels loop gang worker
152   for (i = 0; i < 10; i++)
153     { }
154 
155 #pragma acc kernels loop vector
156   for (i = 0; i < 10; i++)
157     { }
158 #pragma acc kernels loop vector(5)
159   for (i = 0; i < 10; i++)
160     { }
161 #pragma acc kernels loop vector(length:5)
162   for (i = 0; i < 10; i++)
163     { }
164 #pragma acc kernels loop seq vector // { dg-error "'seq' overrides" "" { target c } }
165   for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } }
166     { }
167 #pragma acc kernels loop gang vector
168   for (i = 0; i < 10; i++)
169     { }
170 #pragma acc kernels loop worker vector
171   for (i = 0; i < 10; i++)
172     { }
173 
174 #pragma acc kernels loop auto
175   for (i = 0; i < 10; i++)
176     { }
177 #pragma acc kernels loop seq auto // { dg-error "'seq' overrides" "" { target c } }
178   for (i = 0; i < 10; i++) // { dg-error "'seq' overrides" "" { target c++ } }
179     { }
180 #pragma acc kernels loop gang auto // { dg-error "'auto' conflicts" "" { target c } }
181   for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } }
182     { }
183 #pragma acc kernels loop worker auto // { dg-error "'auto' conflicts" "" { target c } }
184   for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } }
185     { }
186 #pragma acc kernels loop vector auto // { dg-error "'auto' conflicts" "" { target c } }
187   for (i = 0; i < 10; i++) // { dg-error "'auto' conflicts" "" { target c++ } }
188     { }
189 }
190