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