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 }