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