testsuite: Fix tail_call and musttail effective targets [PR116080]
[official-gcc.git] / gcc / testsuite / gcc.dg / bitint-28.c
blobf4cb413f42822dba10413c9b7a3944a0e2aadc55
1 /* PR c/102989 */
2 /* { dg-do run } */
3 /* { dg-require-effective-target fenv_exceptions } */
4 /* { dg-options "-std=c23" } */
5 /* { dg-add-options ieee } */
7 #include <fenv.h>
9 #if __FLT_MANT_DIG__ == 24
10 #if __BITINT_MAXWIDTH__ >= 135
11 __attribute__((noipa)) _BitInt(135)
12 testflt_135 (float d)
14 return d;
17 __attribute__((noipa)) unsigned _BitInt(135)
18 testfltu_135 (float d)
20 return d;
22 #endif
24 #if __BITINT_MAXWIDTH__ >= 192
25 __attribute__((noipa)) _BitInt(192)
26 testflt_192 (float d)
28 return d;
31 __attribute__((noipa)) unsigned _BitInt(192)
32 testfltu_192 (float d)
34 return d;
36 #endif
38 #if __BITINT_MAXWIDTH__ >= 575
39 __attribute__((noipa)) _BitInt(575)
40 testflt_575 (float d)
42 return d;
45 __attribute__((noipa)) unsigned _BitInt(575)
46 testfltu_575 (float d)
48 return d;
50 #endif
51 #endif
53 #if __DBL_MANT_DIG__ == 53
54 #if __BITINT_MAXWIDTH__ >= 135
55 __attribute__((noipa)) _BitInt(135)
56 testdbl_135 (double d)
58 return d;
61 __attribute__((noipa)) unsigned _BitInt(135)
62 testdblu_135 (double d)
64 return d;
66 #endif
68 #if __BITINT_MAXWIDTH__ >= 192
69 __attribute__((noipa)) _BitInt(192)
70 testdbl_192 (double d)
72 return d;
75 __attribute__((noipa)) unsigned _BitInt(192)
76 testdblu_192 (double d)
78 return d;
80 #endif
82 #if __BITINT_MAXWIDTH__ >= 575
83 __attribute__((noipa)) _BitInt(575)
84 testdbl_575 (double d)
86 return d;
89 __attribute__((noipa)) unsigned _BitInt(575)
90 testdblu_575 (double d)
92 return d;
94 #endif
95 #endif
97 #if __LDBL_MANT_DIG__ == 64
98 #if __BITINT_MAXWIDTH__ >= 135
99 __attribute__((noipa)) _BitInt(135)
100 testldbl_135 (long double d)
102 return d;
105 __attribute__((noipa)) unsigned _BitInt(135)
106 testldblu_135 (long double d)
108 return d;
110 #endif
112 #if __BITINT_MAXWIDTH__ >= 192
113 __attribute__((noipa)) _BitInt(192)
114 testldbl_192 (long double d)
116 return d;
119 __attribute__((noipa)) unsigned _BitInt(192)
120 testldblu_192 (long double d)
122 return d;
124 #endif
126 #if __BITINT_MAXWIDTH__ >= 575
127 __attribute__((noipa)) _BitInt(575)
128 testldbl_575 (long double d)
130 return d;
133 __attribute__((noipa)) unsigned _BitInt(575)
134 testldblu_575 (long double d)
136 return d;
138 #endif
139 #endif
141 #if __FLT128_MANT_DIG__ == 113
142 #if __BITINT_MAXWIDTH__ >= 135
143 __attribute__((noipa)) _BitInt(135)
144 testflt128_135 (_Float128 d)
146 return d;
149 __attribute__((noipa)) unsigned _BitInt(135)
150 testflt128u_135 (_Float128 d)
152 return d;
154 #endif
156 #if __BITINT_MAXWIDTH__ >= 192
157 __attribute__((noipa)) _BitInt(192)
158 testflt128_192 (_Float128 d)
160 return d;
163 __attribute__((noipa)) unsigned _BitInt(192)
164 testflt128u_192 (_Float128 d)
166 return d;
168 #endif
170 #if __BITINT_MAXWIDTH__ >= 575
171 __attribute__((noipa)) _BitInt(575)
172 testflt128_575 (_Float128 d)
174 return d;
177 __attribute__((noipa)) unsigned _BitInt(575)
178 testflt128u_575 (_Float128 d)
180 return d;
182 #endif
183 #endif
185 __attribute__((noipa)) void
186 check_invalid (int test, int inv)
188 if (!test)
189 __builtin_abort ();
190 if ((!fetestexcept (FE_INVALID)) != (!inv))
191 __builtin_abort ();
192 feclearexcept (FE_INVALID);
196 main ()
198 #if __FLT_MANT_DIG__ == 24
199 #if __BITINT_MAXWIDTH__ >= 135
200 check_invalid (testflt_135 (-85070591730234615865843651857942052864.0f) == -85070591730234615865843651857942052864wb, 0);
201 check_invalid (testflt_135 (__builtin_inff ()) == 21778071482940061661655974875633165533183wb, 1);
202 check_invalid (testflt_135 (-__builtin_inff ()) == -21778071482940061661655974875633165533183wb - 1wb, 1);
203 check_invalid (testflt_135 (__builtin_nanf ("")) == 21778071482940061661655974875633165533183wb, 1);
204 check_invalid (testflt_135 (0xffffffp+104f) == 340282346638528859811704183484516925440wb, 0);
205 check_invalid (testflt_135 (-0xffffffp+104f) == -340282346638528859811704183484516925440wb, 0);
206 check_invalid (testfltu_135 (-0.9990234375f) == 0uwb, 0);
207 check_invalid (testfltu_135 (-1.f) == 0uwb, 1);
208 check_invalid (testfltu_135 (__builtin_inff ()) == 43556142965880123323311949751266331066367uwb, 1);
209 check_invalid (testfltu_135 (-__builtin_inff ()) == 0uwb, 1);
210 check_invalid (testfltu_135 (__builtin_nanf ("")) == 43556142965880123323311949751266331066367uwb, 1);
211 check_invalid (testfltu_135 (0xffffffp+104f) == 340282346638528859811704183484516925440uwb, 0);
212 #endif
213 #if __BITINT_MAXWIDTH__ >= 192
214 check_invalid (testflt_192 (-85070591730234615865843651857942052864.0f) == -85070591730234615865843651857942052864wb, 0);
215 check_invalid (testflt_192 (__builtin_inff ()) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
216 check_invalid (testflt_192 (-__builtin_inff ()) == -3138550867693340381917894711603833208051177722232017256447wb - 1wb, 1);
217 check_invalid (testflt_192 (__builtin_nanf ("")) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
218 check_invalid (testflt_192 (0xffffffp+104f) == 340282346638528859811704183484516925440wb, 0);
219 check_invalid (testflt_192 (-0xffffffp+104f) == -340282346638528859811704183484516925440wb, 0);
220 check_invalid (testfltu_192 (-0.9990234375f) == 0uwb, 0);
221 check_invalid (testfltu_192 (-1.f) == 0uwb, 1);
222 check_invalid (testfltu_192 (__builtin_inff ()) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
223 check_invalid (testfltu_192 (-__builtin_inff ()) == 0uwb, 1);
224 check_invalid (testfltu_192 (__builtin_nanf ("")) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
225 check_invalid (testfltu_192 (0xffffffp+104f) == 340282346638528859811704183484516925440uwb, 0);
226 #endif
227 #if __BITINT_MAXWIDTH__ >= 575
228 check_invalid (testflt_575 (-85070591730234615865843651857942052864.0f) == -85070591730234615865843651857942052864wb, 0);
229 check_invalid (testflt_575 (__builtin_inff ()) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
230 check_invalid (testflt_575 (-__builtin_inff ()) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1wb, 1);
231 check_invalid (testflt_575 (__builtin_nanf ("")) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
232 check_invalid (testflt_575 (0xffffffp+104f) == 340282346638528859811704183484516925440wb, 0);
233 check_invalid (testflt_575 (-0xffffffp+104f) == -340282346638528859811704183484516925440wb, 0);
234 check_invalid (testfltu_575 (-0.9990234375f) == 0uwb, 0);
235 check_invalid (testfltu_575 (-1.f) == 0uwb, 1);
236 check_invalid (testfltu_575 (__builtin_inff ()) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
237 check_invalid (testfltu_575 (-__builtin_inff ()) == 0uwb, 1);
238 check_invalid (testfltu_575 (__builtin_nanf ("")) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
239 check_invalid (testfltu_575 (0xffffffp+104f) == 340282346638528859811704183484516925440uwb, 0);
240 #endif
241 #endif
242 #if __DBL_MANT_DIG__ == 53
243 #if __BITINT_MAXWIDTH__ >= 135
244 check_invalid (testdbl_135 (-85070591730234615865843651857942052864.0) == -85070591730234615865843651857942052864wb, 0);
245 check_invalid (testdbl_135 (__builtin_inf ()) == 21778071482940061661655974875633165533183wb, 1);
246 check_invalid (testdbl_135 (-__builtin_inf ()) == -21778071482940061661655974875633165533183wb - 1wb, 1);
247 check_invalid (testdbl_135 (__builtin_nan ("")) == 21778071482940061661655974875633165533183wb, 1);
248 check_invalid (testdbl_135 (0x1fffffffffffffp+81) == 21778071482940059243804335646374816120832wb, 0);
249 check_invalid (testdbl_135 (0x20000000000000p+81) == 21778071482940061661655974875633165533183wb, 1);
250 check_invalid (testdbl_135 (-0x20000000000000p+81) == -21778071482940061661655974875633165533183wb - 1, 0);
251 check_invalid (testdbl_135 (-0x20000000000002p+81) == -21778071482940061661655974875633165533183wb - 1, 1);
252 check_invalid (testdblu_135 (-0.9990234375) == 0uwb, 0);
253 check_invalid (testdblu_135 (-1.) == 0uwb, 1);
254 check_invalid (testdblu_135 (__builtin_inf ()) == 43556142965880123323311949751266331066367uwb, 1);
255 check_invalid (testdblu_135 (-__builtin_inf ()) == 0uwb, 1);
256 check_invalid (testdblu_135 (__builtin_nan ("")) == 43556142965880123323311949751266331066367uwb, 1);
257 check_invalid (testdblu_135 (0x1fffffffffffffp+82) == 43556142965880118487608671292749632241664uwb, 0);
258 check_invalid (testdblu_135 (0x20000000000000p+82) == 43556142965880123323311949751266331066367uwb, 1);
259 #endif
260 #if __BITINT_MAXWIDTH__ >= 192
261 check_invalid (testdbl_192 (-85070591730234615865843651857942052864.0) == -85070591730234615865843651857942052864wb, 0);
262 check_invalid (testdbl_192 (__builtin_inf ()) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
263 check_invalid (testdbl_192 (-__builtin_inf ()) == -3138550867693340381917894711603833208051177722232017256447wb - 1wb, 1);
264 check_invalid (testdbl_192 (__builtin_nan ("")) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
265 check_invalid (testdbl_192 (0x1fffffffffffffp+138) == 3138550867693340033468750984562846621555579712101368725504wb, 0);
266 check_invalid (testdbl_192 (0x20000000000000p+138) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
267 check_invalid (testdbl_192 (-0x20000000000000p+138) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 0);
268 check_invalid (testdbl_192 (-0x20000000000002p+138) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 1);
269 check_invalid (testdblu_192 (-0.9990234375) == 0uwb, 0);
270 check_invalid (testdblu_192 (-1.) == 0uwb, 1);
271 check_invalid (testdblu_192 (__builtin_inf ()) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
272 check_invalid (testdblu_192 (-__builtin_inf ()) == 0uwb, 1);
273 check_invalid (testdblu_192 (__builtin_nan ("")) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
274 check_invalid (testdblu_192 (0x1fffffffffffffp+139) == 6277101735386680066937501969125693243111159424202737451008uwb, 0);
275 check_invalid (testdblu_192 (0x20000000000000p+139) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
276 #endif
277 #if __BITINT_MAXWIDTH__ >= 575
278 check_invalid (testdbl_575 (-85070591730234615865843651857942052864.0) == -85070591730234615865843651857942052864wb, 0);
279 check_invalid (testdbl_575 (__builtin_inf ()) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
280 check_invalid (testdbl_575 (-__builtin_inf ()) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1wb, 1);
281 check_invalid (testdbl_575 (__builtin_nan ("")) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
282 check_invalid (testdbl_575 (0x1fffffffffffffp+521) == 61832600368276126650327970124302082526882038193909742709080463879918896882169507607035916867654709124839777195049479857541529867095829765369898539058829479405123401922117632wb, 0);
283 check_invalid (testdbl_575 (0x20000000000000p+521) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
284 check_invalid (testdbl_575 (-0x20000000000000p+521) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 0);
285 check_invalid (testdbl_575 (-0x20000000000002p+521) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 1);
286 check_invalid (testdblu_575 (-0.9990234375) == 0uwb, 0);
287 check_invalid (testdblu_575 (-1.) == 0uwb, 1);
288 check_invalid (testdblu_575 (__builtin_inf ()) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
289 check_invalid (testdblu_575 (-__builtin_inf ()) == 0uwb, 1);
290 check_invalid (testdblu_575 (__builtin_nan ("")) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
291 check_invalid (testdblu_575 (0x1fffffffffffffp+522) == 123665200736552253300655940248604165053764076387819485418160927759837793764339015214071833735309418249679554390098959715083059734191659530739797078117658958810246803844235264uwb, 0);
292 check_invalid (testdblu_575 (0x20000000000000p+522) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
293 #endif
294 #endif
295 #if __LDBL_MANT_DIG__ == 64
296 #if __BITINT_MAXWIDTH__ >= 135
297 check_invalid (testldbl_135 (-85070591730234615865843651857942052864.0L) == -85070591730234615865843651857942052864wb, 0);
298 check_invalid (testldbl_135 (__builtin_infl ()) == 21778071482940061661655974875633165533183wb, 1);
299 check_invalid (testldbl_135 (-__builtin_infl ()) == -21778071482940061661655974875633165533183wb - 1wb, 1);
300 check_invalid (testldbl_135 (__builtin_nanl ("")) == 21778071482940061661655974875633165533183wb, 1);
301 check_invalid (testldbl_135 (0xffffffffffffffffp+70L) == 21778071482940061660475383254915754229760wb, 0);
302 check_invalid (testldbl_135 (0x10000000000000000p+70L) == 21778071482940061661655974875633165533183wb, 1);
303 check_invalid (testldbl_135 (-0x10000000000000000p+70L) == -21778071482940061661655974875633165533183wb - 1, 0);
304 check_invalid (testldbl_135 (-0x10000000000000002p+70L) == -21778071482940061661655974875633165533183wb - 1, 1);
305 check_invalid (testldblu_135 (-0.9990234375L) == 0uwb, 0);
306 check_invalid (testldblu_135 (-1.L) == 0uwb, 1);
307 check_invalid (testldblu_135 (__builtin_infl ()) == 43556142965880123323311949751266331066367uwb, 1);
308 check_invalid (testldblu_135 (-__builtin_infl ()) == 0uwb, 1);
309 check_invalid (testldblu_135 (__builtin_nanl ("")) == 43556142965880123323311949751266331066367uwb, 1);
310 check_invalid (testldblu_135 (0xffffffffffffffffp+71L) == 43556142965880123320950766509831508459520uwb, 0);
311 check_invalid (testldblu_135 (0x10000000000000000p+71L) == 43556142965880123323311949751266331066367uwb, 1);
312 #endif
313 #if __BITINT_MAXWIDTH__ >= 192
314 check_invalid (testldbl_192 (-85070591730234615865843651857942052864.0L) == -85070591730234615865843651857942052864wb, 0);
315 check_invalid (testldbl_192 (__builtin_infl ()) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
316 check_invalid (testldbl_192 (-__builtin_infl ()) == -3138550867693340381917894711603833208051177722232017256447wb - 1wb, 1);
317 check_invalid (testldbl_192 (__builtin_nanl ("")) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
318 check_invalid (testldbl_192 (0xffffffffffffffffp+127L) == 3138550867693340381747753528143363976319490418516133150720wb, 0);
319 check_invalid (testldbl_192 (0x10000000000000000p+127L) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
320 check_invalid (testldbl_192 (-0x10000000000000000p+127L) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 0);
321 check_invalid (testldbl_192 (-0x10000000000000002p+127L) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 1);
322 check_invalid (testldblu_192 (-0.9990234375L) == 0uwb, 0);
323 check_invalid (testldblu_192 (-1.L) == 0uwb, 1);
324 check_invalid (testldblu_192 (__builtin_infl ()) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
325 check_invalid (testldblu_192 (-__builtin_infl ()) == 0uwb, 1);
326 check_invalid (testldblu_192 (__builtin_nanl ("")) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
327 check_invalid (testldblu_192 (0xffffffffffffffffp+128L) == 6277101735386680763495507056286727952638980837032266301440uwb, 0);
328 check_invalid (testldblu_192 (0x10000000000000000p+128L) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
329 #endif
330 #if __BITINT_MAXWIDTH__ >= 575
331 check_invalid (testldbl_575 (-85070591730234615865843651857942052864.0L) == -85070591730234615865843651857942052864wb, 0);
332 check_invalid (testldbl_575 (__builtin_infl ()) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
333 check_invalid (testldbl_575 (-__builtin_infl ()) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1wb, 1);
334 check_invalid (testldbl_575 (__builtin_nanl ("")) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
335 check_invalid (testldbl_575 (0xffffffffffffffffp+510L) == 61832600368276133511773678272426148233889331025751498446645922568076207932202076431648659257792374503198949281962308977915333294030066289778448068072486649492543280785653760wb, 0);
336 check_invalid (testldbl_575 (0x10000000000000000p+510L) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
337 check_invalid (testldbl_575 (-0x10000000000000000p+510L) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 0);
338 check_invalid (testldbl_575 (-0x10000000000000002p+510L) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 1);
339 check_invalid (testldblu_575 (-0.9990234375L) == 0uwb, 0);
340 check_invalid (testldblu_575 (-1.L) == 0uwb, 1);
341 check_invalid (testldblu_575 (__builtin_infl ()) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
342 check_invalid (testldblu_575 (-__builtin_infl ()) == 0uwb, 1);
343 check_invalid (testldblu_575 (__builtin_nanl ("")) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
344 check_invalid (testldblu_575 (0xffffffffffffffffp+511L) == 123665200736552267023547356544852296467778662051502996893291845136152415864404152863297318515584749006397898563924617955830666588060132579556896136144973298985086561571307520uwb, 0);
345 check_invalid (testldblu_575 (0x10000000000000000p+511L) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
346 #endif
347 #endif
348 #if __FLT128_MANT_DIG__ == 113
349 #if __BITINT_MAXWIDTH__ >= 135
350 check_invalid (testflt128_135 (-85070591730234615865843651857942052864.0F128) == -85070591730234615865843651857942052864wb, 0);
351 check_invalid (testflt128_135 (__builtin_inff128 ()) == 21778071482940061661655974875633165533183wb, 1);
352 check_invalid (testflt128_135 (-__builtin_inff128 ()) == -21778071482940061661655974875633165533183wb - 1wb, 1);
353 check_invalid (testflt128_135 (__builtin_nanf128 ("")) == 21778071482940061661655974875633165533183wb, 1);
354 check_invalid (testflt128_135 (0x1ffffffffffffffffffffffffffffp+21F128) == 21778071482940061661655974875633163436032wb, 0);
355 check_invalid (testflt128_135 (0x20000000000000000000000000000p+21F128) == 21778071482940061661655974875633165533183wb, 1);
356 check_invalid (testflt128_135 (-0x20000000000000000000000000000p+21F128) == -21778071482940061661655974875633165533183wb - 1, 0);
357 check_invalid (testflt128_135 (-0x20000000000000000000000000002p+21F128) == -21778071482940061661655974875633165533183wb - 1, 1);
358 check_invalid (testflt128u_135 (-0.9990234375F128) == 0uwb, 0);
359 check_invalid (testflt128u_135 (-1.F128) == 0uwb, 1);
360 check_invalid (testflt128u_135 (__builtin_inff128 ()) == 43556142965880123323311949751266331066367uwb, 1);
361 check_invalid (testflt128u_135 (-__builtin_inff128 ()) == 0uwb, 1);
362 check_invalid (testflt128u_135 (__builtin_nanf128 ("")) == 43556142965880123323311949751266331066367uwb, 1);
363 check_invalid (testflt128u_135 (0x1ffffffffffffffffffffffffffffp+22F128) == 43556142965880123323311949751266326872064uwb, 0);
364 check_invalid (testflt128u_135 (0x20000000000000000000000000000p+22F128) == 43556142965880123323311949751266331066367uwb, 1);
365 #endif
366 #if __BITINT_MAXWIDTH__ >= 192
367 check_invalid (testflt128_192 (-85070591730234615865843651857942052864.0F128) == -85070591730234615865843651857942052864wb, 0);
368 check_invalid (testflt128_192 (__builtin_inff128 ()) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
369 check_invalid (testflt128_192 (-__builtin_inff128 ()) == -3138550867693340381917894711603833208051177722232017256447wb - 1wb, 1);
370 check_invalid (testflt128_192 (__builtin_nanf128 ("")) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
371 check_invalid (testflt128_192 (0x1ffffffffffffffffffffffffffffp+78F128) == 3138550867693340381917894711603832905819722818574723579904wb, 0);
372 check_invalid (testflt128_192 (0x20000000000000000000000000000p+78F128) == 3138550867693340381917894711603833208051177722232017256447wb, 1);
373 check_invalid (testflt128_192 (-0x20000000000000000000000000000p+78F128) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 0);
374 check_invalid (testflt128_192 (-0x20000000000000000000000000002p+78F128) == -3138550867693340381917894711603833208051177722232017256447wb - 1, 1);
375 check_invalid (testflt128u_192 (-0.9990234375F128) == 0uwb, 0);
376 check_invalid (testflt128u_192 (-1.F128) == 0uwb, 1);
377 check_invalid (testflt128u_192 (__builtin_inff128 ()) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
378 check_invalid (testflt128u_192 (-__builtin_inff128 ()) == 0uwb, 1);
379 check_invalid (testflt128u_192 (__builtin_nanf128 ("")) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
380 check_invalid (testflt128u_192 (0x1ffffffffffffffffffffffffffffp+79F128) == 6277101735386680763835789423207665811639445637149447159808uwb, 0);
381 check_invalid (testflt128u_192 (0x20000000000000000000000000000p+79F128) == 6277101735386680763835789423207666416102355444464034512895uwb, 1);
382 #endif
383 #if __BITINT_MAXWIDTH__ >= 575
384 check_invalid (testflt128_575 (-85070591730234615865843651857942052864.0F128) == -85070591730234615865843651857942052864wb, 0);
385 check_invalid (testflt128_575 (__builtin_inff128 ()) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
386 check_invalid (testflt128_575 (-__builtin_inff128 ()) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1wb, 1);
387 check_invalid (testflt128_575 (__builtin_nanf128 ("")) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
388 check_invalid (testflt128_575 (0x1ffffffffffffffffffffffffffffp+461F128) == 61832600368276133515125630254911791554520007845691312598455129804691160851602940042069550439343049559602369631548246946680753811425558728725309540242943660463695151425912832wb, 0);
389 check_invalid (testflt128_575 (0x20000000000000000000000000000p+461F128) == 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb, 1);
390 check_invalid (testflt128_575 (-0x20000000000000000000000000000p+461F128) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 0);
391 check_invalid (testflt128_575 (-0x20000000000000000000000000002p+461F128) == -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1, 1);
392 check_invalid (testflt128u_575 (-0.9990234375F128) == 0uwb, 0);
393 check_invalid (testflt128u_575 (-1.F128) == 0uwb, 1);
394 check_invalid (testflt128u_575 (__builtin_inff128 ()) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
395 check_invalid (testflt128u_575 (-__builtin_inff128 ()) == 0uwb, 1);
396 check_invalid (testflt128u_575 (__builtin_nanf128 ("")) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
397 check_invalid (testflt128u_575 (0x1ffffffffffffffffffffffffffffp+462F128) == 123665200736552267030251260509823583109040015691382625196910259609382321703205880084139100878686099119204739263096493893361507622851117457450619080485887320927390302851825664uwb, 0);
398 check_invalid (testflt128u_575 (0x20000000000000000000000000000p+462F128) == 123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb, 1);
399 #endif
400 #endif