c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / pr79916.c
blobb94f9930320112209a9a01c4d1ce44484ca6ac79
1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-require-effective-target dfp } */
3 /* { dg-options "-fno-expensive-optimizations --param ira-max-conflict-table-size=0 -mno-popcntd -O3" } */
5 #define PASTE2(A,B) A ## B
6 #define PASTE(A,B) PASTE2(A,B)
8 #define TESTVAL_NEG(VAL,SUF,SIZE) \
9 x = PASTE(PASTE(VAL,.),SUF); \
10 si = VAL; \
11 sll = PASTE(VAL,LL); \
12 a = si; \
13 b = sll; \
14 c = VAL; \
15 d = PASTE(VAL,LL); \
16 if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \
17 || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0) \
18 || (__builtin_memcmp ((void *)&x, (void *)&c,SIZE) != 0) \
19 || (__builtin_memcmp ((void *)&x, (void *)&d,SIZE) != 0)) \
20 __builtin_abort ();
22 #define TESTVAL_NEG_BIG(VAL,SUF,SIZE) \
23 x = PASTE(PASTE(VAL,.),SUF); \
24 sll = PASTE(VAL,LL); \
25 a = sll; \
26 b = PASTE(VAL,LL); \
27 if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \
28 || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0)) \
29 __builtin_abort ();
31 #define TESTVAL_NONNEG(VAL,SUF,SIZE) \
32 x = PASTE(PASTE(VAL,.),SUF); \
33 si = VAL; \
34 ui = VAL; \
35 sll = PASTE(VAL,LL); \
36 ull = PASTE(VAL,ULL); \
37 a = si; \
38 b = sll; \
39 c = ui; \
40 d = ull; \
41 e = VAL; \
42 f = VAL; \
43 g = PASTE(VAL,LL); \
44 h = PASTE(VAL,ULL); \
45 if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \
46 || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0) \
47 || (__builtin_memcmp ((void *)&x, (void *)&c,SIZE) != 0) \
48 || (__builtin_memcmp ((void *)&x, (void *)&d,SIZE) != 0) \
49 || (__builtin_memcmp ((void *)&x, (void *)&e,SIZE) != 0) \
50 || (__builtin_memcmp ((void *)&x, (void *)&f,SIZE) != 0) \
51 || (__builtin_memcmp ((void *)&x, (void *)&g,SIZE) != 0) \
52 || (__builtin_memcmp ((void *)&x, (void *)&h,SIZE) != 0)) \
53 __builtin_abort ();
55 #define TESTVAL_NONNEG_BIG(VAL,SUF,SIZE) \
56 x = PASTE(PASTE(VAL,.),SUF); \
57 sll = PASTE(VAL,LL); \
58 ull = PASTE(VAL,ULL); \
59 b = sll; \
60 d = ull; \
61 f = PASTE(VAL,LL); \
62 g = PASTE(VAL,ULL); \
63 if ((__builtin_memcmp ((void *)&x, (void *)&b, SIZE) != 0) \
64 || (__builtin_memcmp ((void *)&d, (void *)&d,SIZE) != 0) \
65 || (__builtin_memcmp ((void *)&f, (void *)&d,SIZE) != 0) \
66 || (__builtin_memcmp ((void *)&g, (void *)&d,SIZE) != 0)) \
67 __builtin_abort ();
69 #undef SUFFIX
70 #define SUFFIX DF
71 #undef TYPE
72 #define TYPE _Decimal32
74 void
75 zeroes_32 (void)
77 volatile TYPE x, a, b, c, d, e, f, g, h;
78 volatile int si;
79 volatile unsigned int ui;
80 volatile long long sll;
81 volatile unsigned long long ull;
83 TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE));
84 TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE));
85 TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE));
86 TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE));
87 TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE));
88 TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE));
89 TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE));
90 TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE));
91 TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE));
92 TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE));
93 TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE));
94 TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE));
95 TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE));
96 TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE));
97 TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE));
98 TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE));
99 TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE));
100 TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE));
101 TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE));
102 TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE));
103 TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE));
104 TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE));
105 TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE));
106 TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE));
107 TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE));
108 TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE));
109 TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE));
110 TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE));
111 TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE));
112 TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE));
113 TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE));
114 TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE));
115 TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE));
116 TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE));
117 TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE));
118 TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE));
119 TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE));
120 TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE));
121 TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE));
122 TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE));
123 TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE));
124 TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE));
125 TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE));
126 TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE));
127 TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE));
128 TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE));
129 TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE));
130 TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE));
131 TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE));
132 TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE));
133 TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE));
134 TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE));
135 TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE));
136 TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE));
137 TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE));
138 TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE));
139 TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE));
140 TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE));
142 TESTVAL_NEG (0, SUFFIX, sizeof (TYPE));
143 TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE));
144 TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE));
145 TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE));
146 TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE));
147 TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE));
148 TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE));
149 TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE));
150 TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE));
151 TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE));
152 TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE));
153 TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE));
154 TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE));
155 TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE));
156 TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE));
157 TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE));
158 TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE));
159 TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE));
160 TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE));
161 TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE));
162 TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE));
163 TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE));
164 TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE));
165 TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE));
166 TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE));
167 TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE));
168 TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE));
169 TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE));
170 TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE));
171 TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE));
172 TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE));
173 TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE));
174 TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE));
175 TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE));
176 TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE));
177 TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE));
178 TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE));
179 TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE));
180 TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE));
181 TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE));
182 TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE));
183 TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE));
184 TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE));
185 TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE));
186 TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE));
187 TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE));
188 TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE));
189 TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE));
190 TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE));
191 TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE));
192 TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE));
193 TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE));
194 TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE));
195 TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE));
196 TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE));
197 TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE));
198 TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE));
199 TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE));
202 void
203 round_32 (void)
205 volatile TYPE x, a, b, c, d, e, f, g, h;
206 volatile int si;
207 volatile unsigned int ui;
208 volatile long long sll;
209 volatile unsigned long long ull;
211 TESTVAL_NONNEG (10000049, SUFFIX, sizeof (TYPE));
212 TESTVAL_NONNEG (10000050, SUFFIX, sizeof (TYPE));
213 TESTVAL_NONNEG (10000051, SUFFIX, sizeof (TYPE));
214 TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE));
215 TESTVAL_NONNEG (10000001, SUFFIX, sizeof (TYPE));
216 TESTVAL_NONNEG (10000002, SUFFIX, sizeof (TYPE));
217 TESTVAL_NONNEG (10000003, SUFFIX, sizeof (TYPE));
218 TESTVAL_NONNEG (10000004, SUFFIX, sizeof (TYPE));
219 TESTVAL_NONNEG (100000049, SUFFIX, sizeof (TYPE));
220 TESTVAL_NONNEG (100000051, SUFFIX, sizeof (TYPE));
221 TESTVAL_NONNEG (10000006, SUFFIX, sizeof (TYPE));
222 TESTVAL_NONNEG (10000007, SUFFIX, sizeof (TYPE));
223 TESTVAL_NONNEG (10000008, SUFFIX, sizeof (TYPE));
224 TESTVAL_NONNEG (10000009, SUFFIX, sizeof (TYPE));
225 TESTVAL_NONNEG (10000010, SUFFIX, sizeof (TYPE));
227 TESTVAL_NEG (-10000049, SUFFIX, sizeof (TYPE));
228 TESTVAL_NEG (-10000050, SUFFIX, sizeof (TYPE));
229 TESTVAL_NEG (-10000051, SUFFIX, sizeof (TYPE));
230 TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE));
231 TESTVAL_NEG (-10000001, SUFFIX, sizeof (TYPE));
232 TESTVAL_NEG (-10000002, SUFFIX, sizeof (TYPE));
233 TESTVAL_NEG (-10000003, SUFFIX, sizeof (TYPE));
234 TESTVAL_NEG (-10000004, SUFFIX, sizeof (TYPE));
235 TESTVAL_NEG (-100000049, SUFFIX, sizeof (TYPE));
236 TESTVAL_NEG (-100000051, SUFFIX, sizeof (TYPE));
237 TESTVAL_NEG (-10000006, SUFFIX, sizeof (TYPE));
238 TESTVAL_NEG (-10000007, SUFFIX, sizeof (TYPE));
239 TESTVAL_NEG (-10000008, SUFFIX, sizeof (TYPE));
240 TESTVAL_NEG (-10000009, SUFFIX, sizeof (TYPE));
241 TESTVAL_NEG (-10000010, SUFFIX, sizeof (TYPE));
244 #undef SUFFIX
245 #define SUFFIX DD
246 #undef TYPE
247 #define TYPE _Decimal64
249 void
250 zeroes_64 (void)
252 volatile TYPE x, a, b, c, d, e, f, g, h;
253 volatile int si;
254 volatile unsigned int ui;
255 volatile long long sll;
256 volatile unsigned long long ull;
258 TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE));
259 TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE));
260 TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE));
261 TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE));
262 TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE));
263 TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE));
264 TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE));
265 TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE));
266 TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE));
267 TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE));
268 TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE));
269 TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE));
270 TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE));
271 TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE));
272 TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE));
273 TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE));
274 TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE));
275 TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE));
276 TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE));
277 TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE));
278 TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE));
279 TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE));
280 TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE));
281 TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE));
282 TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE));
283 TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE));
284 TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE));
285 TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE));
286 TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE));
287 TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE));
288 TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE));
289 TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE));
290 TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE));
291 TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE));
292 TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE));
293 TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE));
294 TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE));
295 TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE));
296 TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE));
297 TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE));
298 TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE));
299 TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE));
300 TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE));
301 TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE));
302 TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE));
303 TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE));
304 TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE));
305 TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE));
306 TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE));
307 TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE));
308 TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE));
309 TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE));
310 TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE));
311 TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE));
312 TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE));
313 TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE));
314 TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE));
315 TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE));
317 TESTVAL_NEG (0, SUFFIX, sizeof (TYPE));
318 TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE));
319 TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE));
320 TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE));
321 TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE));
322 TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE));
323 TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE));
324 TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE));
325 TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE));
326 TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE));
327 TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE));
328 TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE));
329 TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE));
330 TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE));
331 TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE));
332 TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE));
333 TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE));
334 TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE));
335 TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE));
336 TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE));
337 TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE));
338 TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE));
339 TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE));
340 TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE));
341 TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE));
342 TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE));
343 TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE));
344 TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE));
345 TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE));
346 TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE));
347 TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE));
348 TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE));
349 TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE));
350 TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE));
351 TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE));
352 TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE));
353 TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE));
354 TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE));
355 TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE));
356 TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE));
357 TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE));
358 TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE));
359 TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE));
360 TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE));
361 TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE));
362 TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE));
363 TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE));
364 TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE));
365 TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE));
366 TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE));
367 TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE));
368 TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE));
369 TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE));
370 TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE));
371 TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE));
372 TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE));
373 TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE));
374 TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE));
377 void
378 round_64 (void)
380 volatile TYPE x, a, b, c, d, e, f, g, h;
381 volatile int si;
382 volatile unsigned int ui;
383 volatile long long sll;
384 volatile unsigned long long ull;
386 TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE));
387 TESTVAL_NONNEG_BIG (10000000000000001, SUFFIX, sizeof (TYPE));
388 TESTVAL_NONNEG_BIG (10000000000000002, SUFFIX, sizeof (TYPE));
389 TESTVAL_NONNEG_BIG (10000000000000003, SUFFIX, sizeof (TYPE));
390 TESTVAL_NONNEG_BIG (10000000000000004, SUFFIX, sizeof (TYPE));
391 TESTVAL_NONNEG_BIG (100000000000000049, SUFFIX, sizeof (TYPE));
392 TESTVAL_NONNEG_BIG (100000000000000051, SUFFIX, sizeof (TYPE));
393 TESTVAL_NONNEG_BIG (10000000000000006, SUFFIX, sizeof (TYPE));
394 TESTVAL_NONNEG_BIG (10000000000000007, SUFFIX, sizeof (TYPE));
395 TESTVAL_NONNEG_BIG (10000000000000008, SUFFIX, sizeof (TYPE));
396 TESTVAL_NONNEG_BIG (10000000000000009, SUFFIX, sizeof (TYPE));
397 TESTVAL_NONNEG_BIG (10000000000000010, SUFFIX, sizeof (TYPE));
399 TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE));
400 TESTVAL_NEG_BIG (-10000000000000001, SUFFIX, sizeof (TYPE));
401 TESTVAL_NEG_BIG (-10000000000000002, SUFFIX, sizeof (TYPE));
402 TESTVAL_NEG_BIG (-10000000000000003, SUFFIX, sizeof (TYPE));
403 TESTVAL_NEG_BIG (-10000000000000004, SUFFIX, sizeof (TYPE));
404 TESTVAL_NEG_BIG (-100000000000000049, SUFFIX, sizeof (TYPE));
405 TESTVAL_NEG_BIG (-100000000000000051, SUFFIX, sizeof (TYPE));
406 TESTVAL_NEG_BIG (-10000000000000006, SUFFIX, sizeof (TYPE));
407 TESTVAL_NEG_BIG (-10000000000000007, SUFFIX, sizeof (TYPE));
408 TESTVAL_NEG_BIG (-10000000000000008, SUFFIX, sizeof (TYPE));
409 TESTVAL_NEG_BIG (-10000000000000009, SUFFIX, sizeof (TYPE));
410 TESTVAL_NEG_BIG (-10000000000000010, SUFFIX, sizeof (TYPE));
413 #undef SUFFIX
414 #define SUFFIX DL
415 #undef TYPE
416 #define TYPE _Decimal128
418 void
419 zeroes_128 (void)
421 volatile TYPE x, a, b, c, d, e, f, g, h;
422 volatile int si;
423 volatile unsigned int ui;
424 volatile long long sll;
425 volatile unsigned long long ull;
427 TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE));
428 TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE));
429 TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE));
430 TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE));
431 TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE));
432 TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE));
433 TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE));
434 TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE));
435 TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE));
436 TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE));
437 TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE));
438 TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE));
439 TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE));
440 TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE));
441 TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE));
442 TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE));
443 TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE));
444 TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE));
445 TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE));
446 TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE));
447 TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE));
448 TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE));
449 TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE));
450 TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE));
451 TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE));
452 TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE));
453 TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE));
454 TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE));
455 TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE));
456 TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE));
457 TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE));
458 TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE));
459 TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE));
460 TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE));
461 TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE));
462 TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE));
463 TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE));
464 TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE));
465 TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE));
466 TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE));
467 TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE));
468 TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE));
469 TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE));
470 TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE));
471 TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE));
472 TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE));
473 TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE));
474 TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE));
475 TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE));
476 TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE));
477 TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE));
478 TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE));
479 TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE));
480 TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE));
481 TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE));
482 TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE));
483 TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE));
484 TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE));
486 TESTVAL_NEG (0, SUFFIX, sizeof (TYPE));
487 TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE));
488 TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE));
489 TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE));
490 TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE));
491 TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE));
492 TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE));
493 TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE));
494 TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE));
495 TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE));
496 TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE));
497 TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE));
498 TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE));
499 TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE));
500 TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE));
501 TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE));
502 TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE));
503 TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE));
504 TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE));
505 TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE));
506 TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE));
507 TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE));
508 TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE));
509 TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE));
510 TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE));
511 TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE));
512 TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE));
513 TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE));
514 TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE));
515 TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE));
516 TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE));
517 TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE));
518 TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE));
519 TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE));
520 TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE));
521 TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE));
522 TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE));
523 TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE));
524 TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE));
525 TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE));
526 TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE));
527 TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE));
528 TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE));
529 TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE));
530 TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE));
531 TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE));
532 TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE));
533 TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE));
534 TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE));
535 TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE));
536 TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE));
537 TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE));
538 TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE));
539 TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE));
540 TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE));
541 TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE));
542 TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE));
543 TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE));
548 main ()
550 zeroes_32 ();
551 zeroes_64 ();
552 zeroes_128 ();
553 round_32 ();
554 round_64 ();
556 return 0;