annotate libgomp/testsuite/libgomp.c/linear-1.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 int a[256];
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
4 f1 (int i)
kono
parents:
diff changeset
5 {
kono
parents:
diff changeset
6 #pragma omp parallel for linear (i: 4)
kono
parents:
diff changeset
7 for (int j = 16; j < 64; j++)
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 a[i] = j;
kono
parents:
diff changeset
10 i += 4;
kono
parents:
diff changeset
11 }
kono
parents:
diff changeset
12 return i;
kono
parents:
diff changeset
13 }
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
16 f2 (short int i, char k)
kono
parents:
diff changeset
17 {
kono
parents:
diff changeset
18 #pragma omp parallel for linear (i: k + 1)
kono
parents:
diff changeset
19 for (long j = 16; j < 64; j++)
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 a[i] = j;
kono
parents:
diff changeset
22 i += 4;
kono
parents:
diff changeset
23 }
kono
parents:
diff changeset
24 return i;
kono
parents:
diff changeset
25 }
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
28 f3 (long long int i, long long int k)
kono
parents:
diff changeset
29 {
kono
parents:
diff changeset
30 #pragma omp parallel for linear (i: k)
kono
parents:
diff changeset
31 for (short j = 16; j < 64; j++)
kono
parents:
diff changeset
32 {
kono
parents:
diff changeset
33 a[i] = j;
kono
parents:
diff changeset
34 i += 4;
kono
parents:
diff changeset
35 }
kono
parents:
diff changeset
36 return i;
kono
parents:
diff changeset
37 }
kono
parents:
diff changeset
38
kono
parents:
diff changeset
39 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
40 f4 (int i)
kono
parents:
diff changeset
41 {
kono
parents:
diff changeset
42 #pragma omp parallel for linear (i: 4) schedule(static, 3)
kono
parents:
diff changeset
43 for (int j = 16; j < 64; j++)
kono
parents:
diff changeset
44 {
kono
parents:
diff changeset
45 a[i] = j;
kono
parents:
diff changeset
46 i += 4;
kono
parents:
diff changeset
47 }
kono
parents:
diff changeset
48 return i;
kono
parents:
diff changeset
49 }
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
52 f5 (short int i, char k)
kono
parents:
diff changeset
53 {
kono
parents:
diff changeset
54 #pragma omp parallel for linear (i: k + 1) schedule(static, 5)
kono
parents:
diff changeset
55 for (long j = 16; j < 64; j++)
kono
parents:
diff changeset
56 {
kono
parents:
diff changeset
57 a[i] = j;
kono
parents:
diff changeset
58 i += 4;
kono
parents:
diff changeset
59 }
kono
parents:
diff changeset
60 return i;
kono
parents:
diff changeset
61 }
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
64 f6 (long long int i, long long int k)
kono
parents:
diff changeset
65 {
kono
parents:
diff changeset
66 #pragma omp parallel for linear (i: k) schedule(static, 7)
kono
parents:
diff changeset
67 for (short j = 16; j < 64; j++)
kono
parents:
diff changeset
68 {
kono
parents:
diff changeset
69 a[i] = j;
kono
parents:
diff changeset
70 i += 4;
kono
parents:
diff changeset
71 }
kono
parents:
diff changeset
72 return i;
kono
parents:
diff changeset
73 }
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
76 f7 (int i)
kono
parents:
diff changeset
77 {
kono
parents:
diff changeset
78 #pragma omp parallel for linear (i: 4) schedule(dynamic, 3)
kono
parents:
diff changeset
79 for (int j = 16; j < 64; j++)
kono
parents:
diff changeset
80 {
kono
parents:
diff changeset
81 a[i] = j;
kono
parents:
diff changeset
82 i += 4;
kono
parents:
diff changeset
83 }
kono
parents:
diff changeset
84 return i;
kono
parents:
diff changeset
85 }
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
88 f8 (short int i, char k)
kono
parents:
diff changeset
89 {
kono
parents:
diff changeset
90 #pragma omp parallel for linear (i: k + 1) schedule(dynamic, 5)
kono
parents:
diff changeset
91 for (long j = 16; j < 64; j++)
kono
parents:
diff changeset
92 {
kono
parents:
diff changeset
93 a[i] = j;
kono
parents:
diff changeset
94 i += 4;
kono
parents:
diff changeset
95 }
kono
parents:
diff changeset
96 return i;
kono
parents:
diff changeset
97 }
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
100 f9 (long long int i, long long int k)
kono
parents:
diff changeset
101 {
kono
parents:
diff changeset
102 #pragma omp parallel for linear (i: k) schedule(dynamic, 7)
kono
parents:
diff changeset
103 for (short j = 16; j < 64; j++)
kono
parents:
diff changeset
104 {
kono
parents:
diff changeset
105 a[i] = j;
kono
parents:
diff changeset
106 i += 4;
kono
parents:
diff changeset
107 }
kono
parents:
diff changeset
108 return i;
kono
parents:
diff changeset
109 }
kono
parents:
diff changeset
110
kono
parents:
diff changeset
111 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
112 f10 (int i, long step)
kono
parents:
diff changeset
113 {
kono
parents:
diff changeset
114 #pragma omp parallel for linear (i: 4)
kono
parents:
diff changeset
115 for (int j = 16; j < 112; j += step)
kono
parents:
diff changeset
116 {
kono
parents:
diff changeset
117 a[i] = j / 2 + 8;
kono
parents:
diff changeset
118 i += 4;
kono
parents:
diff changeset
119 }
kono
parents:
diff changeset
120 return i;
kono
parents:
diff changeset
121 }
kono
parents:
diff changeset
122
kono
parents:
diff changeset
123 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
124 f11 (short int i, char k, char step)
kono
parents:
diff changeset
125 {
kono
parents:
diff changeset
126 #pragma omp parallel for linear (i: k + 1)
kono
parents:
diff changeset
127 for (long j = 16; j < 112; j += step)
kono
parents:
diff changeset
128 {
kono
parents:
diff changeset
129 a[i] = j / 2 + 8;
kono
parents:
diff changeset
130 i += 4;
kono
parents:
diff changeset
131 }
kono
parents:
diff changeset
132 return i;
kono
parents:
diff changeset
133 }
kono
parents:
diff changeset
134
kono
parents:
diff changeset
135 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
136 f12 (long long int i, long long int k, int step)
kono
parents:
diff changeset
137 {
kono
parents:
diff changeset
138 #pragma omp parallel for linear (i: k)
kono
parents:
diff changeset
139 for (short j = 16; j < 112; j += step)
kono
parents:
diff changeset
140 {
kono
parents:
diff changeset
141 a[i] = j / 2 + 8;
kono
parents:
diff changeset
142 i += 4;
kono
parents:
diff changeset
143 }
kono
parents:
diff changeset
144 return i;
kono
parents:
diff changeset
145 }
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
148 f13 (int i, long long int step)
kono
parents:
diff changeset
149 {
kono
parents:
diff changeset
150 #pragma omp parallel for linear (i: 4) schedule(static, 3)
kono
parents:
diff changeset
151 for (int j = 16; j < 112; j += step)
kono
parents:
diff changeset
152 {
kono
parents:
diff changeset
153 a[i] = j / 2 + 8;
kono
parents:
diff changeset
154 i += 4;
kono
parents:
diff changeset
155 }
kono
parents:
diff changeset
156 return i;
kono
parents:
diff changeset
157 }
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
160 f14 (short int i, char k, int step)
kono
parents:
diff changeset
161 {
kono
parents:
diff changeset
162 #pragma omp parallel for linear (i: k + 1) schedule(static, 5)
kono
parents:
diff changeset
163 for (long j = 16; j < 112; j += step)
kono
parents:
diff changeset
164 {
kono
parents:
diff changeset
165 a[i] = j / 2 + 8;
kono
parents:
diff changeset
166 i += 4;
kono
parents:
diff changeset
167 }
kono
parents:
diff changeset
168 return i;
kono
parents:
diff changeset
169 }
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
172 f15 (long long int i, long long int k, long int step)
kono
parents:
diff changeset
173 {
kono
parents:
diff changeset
174 #pragma omp parallel for linear (i: k) schedule(static, 7)
kono
parents:
diff changeset
175 for (short j = 16; j < 112; j += step)
kono
parents:
diff changeset
176 {
kono
parents:
diff changeset
177 a[i] = j / 2 + 8;
kono
parents:
diff changeset
178 i += 4;
kono
parents:
diff changeset
179 }
kono
parents:
diff changeset
180 return i;
kono
parents:
diff changeset
181 }
kono
parents:
diff changeset
182
kono
parents:
diff changeset
183 __attribute__((noinline, noclone)) int
kono
parents:
diff changeset
184 f16 (int i, long long int step)
kono
parents:
diff changeset
185 {
kono
parents:
diff changeset
186 #pragma omp parallel for linear (i: 4) schedule(dynamic, 3)
kono
parents:
diff changeset
187 for (int j = 16; j < 112; j += step)
kono
parents:
diff changeset
188 {
kono
parents:
diff changeset
189 a[i] = j / 2 + 8;
kono
parents:
diff changeset
190 i += 4;
kono
parents:
diff changeset
191 }
kono
parents:
diff changeset
192 return i;
kono
parents:
diff changeset
193 }
kono
parents:
diff changeset
194
kono
parents:
diff changeset
195 __attribute__((noinline, noclone)) short int
kono
parents:
diff changeset
196 f17 (short int i, char k, int step)
kono
parents:
diff changeset
197 {
kono
parents:
diff changeset
198 #pragma omp parallel for linear (i: k + 1) schedule(dynamic, 5)
kono
parents:
diff changeset
199 for (long j = 16; j < 112; j += step)
kono
parents:
diff changeset
200 {
kono
parents:
diff changeset
201 a[i] = j / 2 + 8;
kono
parents:
diff changeset
202 i += 4;
kono
parents:
diff changeset
203 }
kono
parents:
diff changeset
204 return i;
kono
parents:
diff changeset
205 }
kono
parents:
diff changeset
206
kono
parents:
diff changeset
207 __attribute__((noinline, noclone)) long long int
kono
parents:
diff changeset
208 f18 (long long int i, long long int k, long int step)
kono
parents:
diff changeset
209 {
kono
parents:
diff changeset
210 #pragma omp parallel for linear (i: k) schedule(dynamic, 7)
kono
parents:
diff changeset
211 for (short j = 16; j < 112; j += step)
kono
parents:
diff changeset
212 {
kono
parents:
diff changeset
213 a[i] = j / 2 + 8;
kono
parents:
diff changeset
214 i += 4;
kono
parents:
diff changeset
215 }
kono
parents:
diff changeset
216 return i;
kono
parents:
diff changeset
217 }
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 int
kono
parents:
diff changeset
220 main ()
kono
parents:
diff changeset
221 {
kono
parents:
diff changeset
222 #define TEST(x) \
kono
parents:
diff changeset
223 if (x != 8 + 48 * 4) \
kono
parents:
diff changeset
224 __builtin_abort (); \
kono
parents:
diff changeset
225 for (int i = 0; i < 256; i++) \
kono
parents:
diff changeset
226 if (a[i] != (((i & 3) == 0 && i >= 8 \
kono
parents:
diff changeset
227 && i < 8 + 48 * 4) \
kono
parents:
diff changeset
228 ? ((i - 8) / 4) + 16 : 0)) \
kono
parents:
diff changeset
229 __builtin_abort (); \
kono
parents:
diff changeset
230 __builtin_memset (a, 0, sizeof (a))
kono
parents:
diff changeset
231 TEST (f1 (8));
kono
parents:
diff changeset
232 TEST (f2 (8, 3));
kono
parents:
diff changeset
233 TEST (f3 (8LL, 4LL));
kono
parents:
diff changeset
234 TEST (f4 (8));
kono
parents:
diff changeset
235 TEST (f5 (8, 3));
kono
parents:
diff changeset
236 TEST (f6 (8LL, 4LL));
kono
parents:
diff changeset
237 TEST (f7 (8));
kono
parents:
diff changeset
238 TEST (f8 (8, 3));
kono
parents:
diff changeset
239 TEST (f9 (8LL, 4LL));
kono
parents:
diff changeset
240 TEST (f10 (8, 2));
kono
parents:
diff changeset
241 TEST (f11 (8, 3, 2));
kono
parents:
diff changeset
242 TEST (f12 (8LL, 4LL, 2));
kono
parents:
diff changeset
243 TEST (f13 (8, 2));
kono
parents:
diff changeset
244 TEST (f14 (8, 3, 2));
kono
parents:
diff changeset
245 TEST (f15 (8LL, 4LL, 2));
kono
parents:
diff changeset
246 TEST (f16 (8, 2));
kono
parents:
diff changeset
247 TEST (f17 (8, 3, 2));
kono
parents:
diff changeset
248 TEST (f18 (8LL, 4LL, 2));
kono
parents:
diff changeset
249 return 0;
kono
parents:
diff changeset
250 }