Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/c-c++-common/gomp/loop-3.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 #ifdef __cplusplus | |
2 extern "C" { | |
3 #endif | |
4 int omp_get_thread_num (void); | |
5 #ifdef __cplusplus | |
6 } | |
7 #endif | |
8 | |
9 void | |
10 f1 (int *a) | |
11 { | |
12 int i; | |
13 #pragma omp loop /* { dg-error "'bind' clause not specified on a 'loop' construct not nested inside another OpenMP construct" } */ | |
14 for (i = 0; i < 64; i++) | |
15 a[i] = i; | |
16 } | |
17 | |
18 void | |
19 f2 (int *a) | |
20 { | |
21 int i, j; | |
22 #pragma omp parallel num_threads (4) | |
23 { | |
24 int j = omp_get_thread_num (); | |
25 #pragma omp loop private (i) bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
26 for (i = 0; i < 64; i++) | |
27 a[j * 64 + i] = i; | |
28 } | |
29 #pragma omp critical | |
30 { | |
31 #pragma omp loop lastprivate (i) bind(teams)/* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
32 for (i = 0; i < 64; i++) | |
33 a[i] = i; | |
34 } | |
35 #pragma omp master | |
36 { | |
37 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
38 for (i = 0; i < 64; i++) | |
39 a[i] = i; | |
40 } | |
41 #pragma omp sections | |
42 { | |
43 #pragma omp loop bind(teams) lastprivate(i) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
44 for (i = 0; i < 64; i++) | |
45 a[i] = i; | |
46 } | |
47 #pragma omp single | |
48 { | |
49 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
50 for (i = 0; i < 64; i++) | |
51 a[i] = i; | |
52 } | |
53 #pragma omp task | |
54 { | |
55 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
56 for (i = 0; i < 64; i++) | |
57 a[i] = i; | |
58 } | |
59 #pragma omp taskgroup | |
60 { | |
61 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
62 for (i = 0; i < 64; i++) | |
63 a[i] = i; | |
64 } | |
65 #pragma omp teams | |
66 { | |
67 #pragma omp distribute | |
68 for (j = 0; j < 64; ++j) | |
69 { | |
70 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
71 for (i = 0; i < 64; i++) | |
72 a[64 * j + i] = i; | |
73 } | |
74 } | |
75 #pragma omp for | |
76 for (j = 0; j < 64; ++j) | |
77 { | |
78 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
79 for (i = 0; i < 64; i++) | |
80 a[64 * j + i] = i; | |
81 } | |
82 #pragma omp parallel | |
83 #pragma omp loop | |
84 for (j = 0; j < 64; ++j) | |
85 { | |
86 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
87 for (i = 0; i < 64; i++) | |
88 a[64 * j + i] = i; | |
89 } | |
90 #pragma omp loop bind(thread) | |
91 for (j = 0; j < 64; ++j) | |
92 { | |
93 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
94 for (i = 0; i < 64; i++) | |
95 a[64 * j + i] = i; | |
96 } | |
97 #pragma omp loop bind(parallel) | |
98 for (j = 0; j < 64; ++j) | |
99 { | |
100 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
101 for (i = 0; i < 64; i++) | |
102 a[64 * j + i] = i; | |
103 } | |
104 #pragma omp for ordered | |
105 for (j = 0; j < 64; ++j) | |
106 { | |
107 #pragma omp ordered threads | |
108 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
109 for (i = 0; i < 64; i++) | |
110 a[64 * j + i] = i; | |
111 } | |
112 #pragma omp simd | |
113 for (j = 0; j < 64; ++j) | |
114 { | |
115 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
116 for (i = 0; i < 64; i++) | |
117 a[64 * j + i] = i; | |
118 } | |
119 #pragma omp taskloop | |
120 for (j = 0; j < 64; ++j) | |
121 { | |
122 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
123 for (i = 0; i < 64; i++) | |
124 a[64 * j + i] = i; | |
125 } | |
126 #pragma omp target | |
127 { | |
128 #pragma omp loop bind(teams) /* { dg-error "'bind\\(teams\\)' on a 'loop' region not strictly nested inside of a 'teams' region" } */ | |
129 for (i = 0; i < 64; i++) | |
130 a[i] = i; | |
131 } | |
132 } | |
133 | |
134 void | |
135 f3 (int *a) | |
136 { | |
137 int i, j; | |
138 #pragma omp simd | |
139 for (j = 0; j < 64; j++) | |
140 { | |
141 #pragma omp loop bind(parallel) /* { dg-error "'bind\\(parallel\\)' on a 'loop' construct nested inside 'simd' construct" } */ | |
142 for (i = 0; i < 64; i++) | |
143 a[64 * j + i] = i; | |
144 } | |
145 } |