OSDN Git Service

PR/51443
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / dfp / pr41049.c
1 /* { dg-options "-std=gnu99" } */
2
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.  */
7
8 #include "dfp-dbg.h"
9
10 #define PASTE2(A,B) A ## B
11 #define PASTE(A,B) PASTE2(A,B)
12
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
26
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
35
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
59
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
73
74 #undef SUFFIX
75 #define SUFFIX DF
76 #undef TYPE
77 #define TYPE _Decimal32
78   
79 void
80 zeroes_32 (void)
81 {
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;
87
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));
146
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));
205 }
206   
207 void
208 round_32 (void)
209 {
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;
215
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));
231
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));
247 }
248
249 #undef SUFFIX
250 #define SUFFIX DD
251 #undef TYPE
252 #define TYPE _Decimal64
253   
254 void
255 zeroes_64 (void)
256 {
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;
262
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));
321
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));
380 }
381   
382 void
383 round_64 (void)
384 {
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;
390
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));
403
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));
416 }
417
418 #undef SUFFIX
419 #define SUFFIX DL
420 #undef TYPE
421 #define TYPE _Decimal128
422   
423 void
424 zeroes_128 (void)
425 {
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;
431
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));
490
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));
549 }
550
551
552 int
553 main ()
554 {
555   zeroes_32 ();
556   zeroes_64 ();
557   zeroes_128 ();
558   round_32 ();
559   round_64 ();
560
561   FINISH
562 }