2 /* { dg-do run { target bitint } } */
3 /* { dg-options "-O2 -std=c23 -pedantic-errors" } */
5 #if __BITINT_MAXWIDTH__ >= 192
6 __attribute__((noipa
)) _Decimal128
7 tests192 (_BitInt(192) b
)
12 __attribute__((noipa
)) _Decimal128
13 testu192 (unsigned _BitInt(192) b
)
19 #if __BITINT_MAXWIDTH__ >= 575
20 __attribute__((noipa
)) _Decimal128
21 tests575 (_BitInt(575) b
)
26 __attribute__((noipa
)) _Decimal128
27 testu575 (unsigned _BitInt(575) b
)
37 #define CHECK(x, y) (a = (x), b = (y), a != (y) || __builtin_memcmp (&a, &b, sizeof (a)))
38 #if __BITINT_MAXWIDTH__ >= 192
39 if (CHECK (tests192 (0wb
), 0.DL
)
40 || CHECK (tests192 (7wb
), 7.DL
)
41 || CHECK (tests192 (-42wb
), -42.DL
)
42 || CHECK (tests192 (-777777777wb
), -777777777.DL
)
43 || CHECK (tests192 (-12345678912345wb
), -12345678912345.DL
)
44 || CHECK (tests192 (123456789123456789wb
), 123456789123456789.DL
)
45 || CHECK (tests192 (777777777777777777777777777wb
), 777777777777777777777777777.DL
)
46 || CHECK (tests192 (9999999999999999999999999900000000wb
), 9999999999999999999999999900000000.DL
)
47 || CHECK (tests192 (-9999999999999999999999999999999999wb
), -9999999999999999999999999999999999.DL
)
48 || CHECK (tests192 (-99999999999999999999999999999999994wb
), -9999999999999999999999999999999999.e
+1DL
)
49 || CHECK (tests192 (99999999999999999999999999999999995wb
), 1000000000000000000000000000000000.e
+2DL
)
50 || CHECK (tests192 (999999999999999999999999999999999900wb
), 9999999999999999999999999999999999.e
+2DL
)
51 || CHECK (tests192 (999999999999999999999999999999999949wb
), 9999999999999999999999999999999999.e
+2DL
)
52 || CHECK (tests192 (-9999999999999999999999999999999999000wb
), -9999999999999999999999999999999999.e
+3DL
)
53 || CHECK (tests192 (9999999999999999999999999999999999499wb
), 9999999999999999999999999999999999.e
+3DL
)
54 || CHECK (tests192 (34242319854454290000000000000000000000wb
), 3424231985445429000000000000000000e+4DL
)
55 || CHECK (tests192 (34242319854454294983573424983275760000wb
), 3424231985445429498357342498327576e+4DL
)
56 || CHECK (tests192 (999999999999999999999999999999999900000wb
), 9999999999999999999999999999999999.e
+5DL
)
57 || CHECK (tests192 (999999999999999999999999999999999949999wb
), 9999999999999999999999999999999999.e
+5DL
)
58 || CHECK (tests192 (-9999999999999999999999999999999999000000wb
), -9999999999999999999999999999999999.e
+6DL
)
59 || CHECK (tests192 (-9999999999999999999999999999999999499999wb
), -9999999999999999999999999999999999.e
+6DL
)
60 || CHECK (tests192 (123456789012345678901234567890123400000000wb
), 1234567890123456789012345678901234.e
+8DL
)
61 || CHECK (tests192 (999999999999999999999999999999999900000000000000000000000wb
), 9999999999999999999999999999999999.e
+23DL
)
62 || CHECK (tests192 (999999999999999999999999999999999949999999999999999999999wb
), 9999999999999999999999999999999999.e
+23DL
)
63 || CHECK (tests192 (-999999999999999999999999999999999900000000000000000000000wb
), -9999999999999999999999999999999999.e
+23DL
)
64 || CHECK (tests192 (-2138550877694459381917894711603833000000000000000000000000wb
), -2138550877694459381917894711603833e+24DL
)
65 || CHECK (tests192 (-2138550877694459381917894711603833500000000000000000000000wb
), -2138550877694459381917894711603834e+24DL
)
66 || CHECK (tests192 (-2138550877694459381917894711603833499999999999999999999999wb
), -2138550877694459381917894711603833e+24DL
)
67 || CHECK (tests192 (-2138550877694459381917894711603833999999999999999999999999wb
), -2138550877694459381917894711603834e+24DL
)
68 || CHECK (tests192 (-2138550877694459381917894711603832000000000000000000000000wb
), -2138550877694459381917894711603832e+24DL
)
69 || CHECK (tests192 (-2138550877694459381917894711603832500000000000000000000000wb
), -2138550877694459381917894711603832e+24DL
)
70 || CHECK (tests192 (-2138550877694459381917894711603832500000000000000000000001wb
), -2138550877694459381917894711603833e+24DL
)
71 || CHECK (tests192 (3138550867693340381917894711603833000000000000000000000000wb
), 3138550867693340381917894711603833e+24DL
)
72 || CHECK (tests192 (3138550867693340381917894711603833208051177722232017256447wb
), 3138550867693340381917894711603833e+24DL
)
73 || CHECK (tests192 (-3138550867693340381917894711603833000000000000000000000000wb
), -3138550867693340381917894711603833e+24DL
)
74 || CHECK (tests192 (-3138550867693340381917894711603833208051177722232017256447wb
- 1wb
), -3138550867693340381917894711603833e+24DL
))
76 if (CHECK (testu192 (0uwb
), 0.DL
)
77 || CHECK (testu192 (7uwb
), 7.DL
)
78 || CHECK (testu192 (42uwb
), 42.DL
)
79 || CHECK (testu192 (777777777uwb
), 777777777.DL
)
80 || CHECK (testu192 (99999999999999999999999999000uwb
), 99999999999999999999999999000.DL
)
81 || CHECK (testu192 (999999999999999999999999999999999900uwb
), 9999999999999999999999999999999999.e
+2DL
)
82 || CHECK (testu192 (9999999999999999999999999999999999000uwb
), 9999999999999999999999999999999999.e
+3DL
)
83 || CHECK (testu192 (99999999999999999999999999999999994999uwb
), 9999999999999999999999999999999999.e
+4DL
)
84 || CHECK (testu192 (999999999999999999999999999999999900000uwb
), 9999999999999999999999999999999999.e
+5DL
)
85 || CHECK (testu192 (9999999999999999999999999999999999000000uwb
), 9999999999999999999999999999999999.e
+6DL
)
86 || CHECK (testu192 (123456789012345600000000uwb
), 123456789012345600000000.DL
)
87 || CHECK (testu192 (34242319854454290000000000000000000000uwb
), 3424231985445429000000000000000000e+4DL
)
88 || CHECK (testu192 (999999999999999999999999999999999900000000000000000000000uwb
), 9999999999999999999999999999999999.e
+23DL
)
89 || CHECK (testu192 (6189354365465174593875438957438959000000000000000000000000uwb
), 6189354365465174593875438957438959e+24DL
)
90 || CHECK (testu192 (6189354365465174593875438957438959500000000000000000000000uwb
), 6189354365465174593875438957438960e+24DL
)
91 || CHECK (testu192 (6189354365465174593875438957438959499999999999999999999999uwb
), 6189354365465174593875438957438959e+24DL
)
92 || CHECK (testu192 (6189354365465174593875438957438959999999999999999999999999uwb
), 6189354365465174593875438957438960e+24DL
)
93 || CHECK (testu192 (6189354365465174593875438957438958000000000000000000000000uwb
), 6189354365465174593875438957438958e+24DL
)
94 || CHECK (testu192 (6189354365465174593875438957438958500000000000000000000000uwb
), 6189354365465174593875438957438958e+24DL
)
95 || CHECK (testu192 (6189354365465174593875438957438958500000000000000000000001uwb
), 6189354365465174593875438957438959e+24DL
)
96 || CHECK (testu192 (6277101735386680763835789423207666000000000000000000000000uwb
), 6277101735386680763835789423207666e+24DL
)
97 || CHECK (testu192 (6277101735386680763835789423207666416102355444464034512895uwb
), 6277101735386680763835789423207666e+24DL
))
100 #if __BITINT_MAXWIDTH__ >= 575
101 if (CHECK (tests575 (0wb
), 0.DL
)
102 || CHECK (tests575 (7wb
), 7.DL
)
103 || CHECK (tests575 (-42wb
), -42.DL
)
104 || CHECK (tests575 (-444444444wb
), -444444444.DL
)
105 || CHECK (tests575 (-3333333333333333wb
), -3333333333333333.DL
)
106 || CHECK (tests575 (99999999999999999999999999000wb
), 99999999999999999999999999000.DL
)
107 || CHECK (tests575 (-9999999999999999999999999999999999wb
), -9999999999999999999999999999999999.DL
)
108 || CHECK (tests575 (999999999999999999999999999999999900wb
), 9999999999999999999999999999999999.e
+2DL
)
109 || CHECK (tests575 (-9999999999999999999999999999999999000wb
), -9999999999999999999999999999999999.e
+3DL
)
110 || CHECK (tests575 (999999999999999999999999999999999900000wb
), 9999999999999999999999999999999999.e
+5DL
)
111 || CHECK (tests575 (-99999999999999999999999999999999990000000wb
), -9999999999999999999999999999999999.e
+7DL
)
112 || CHECK (tests575 (1234567890123456000000000wb
), 1234567890123456000000000.DL
)
113 || CHECK (tests575 (3424231985445429000000000000000000000000wb
), 3424231985445429000000000000000000e+6DL
)
114 || CHECK (tests575 (99999999999999999999999999999999990000000000000000000000000000000000000000wb
), 9999999999999999999999999999999999.e
+40DL
)
115 || CHECK (tests575 (-9999999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000wb
), -9999999999999999999999999999999999.e
+63DL
)
116 || CHECK (tests575 (-213855087769441389758947543987475900000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138550877694413897589475439874759e+86DL
)
117 || CHECK (tests575 (-213855087769441389758947543987475950000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138550877694413897589475439874760e+86DL
)
118 || CHECK (tests575 (-213855087769441389758947543987475949999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), -2138550877694413897589475439874759e+86DL
)
119 || CHECK (tests575 (-213855087769441389758947543987475999999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), -2138550877694413897589475439874760e+86DL
)
120 || CHECK (tests575 (-213855087769441389758947543987475800000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138550877694413897589475439874758e+86DL
)
121 || CHECK (tests575 (-213855087769441389758947543987475850000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138550877694413897589475439874758e+86DL
)
122 || CHECK (tests575 (-213855087769441389758947543987475850000000000000000000000000000000000000000000000000000000000000000000000000000000000001wb
), -2138550877694413897589475439874759e+86DL
)
123 || CHECK (tests575 (61832600368276133515125630254911790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), 6183260036827613351512563025491179e+139DL
)
124 || CHECK (tests575 (61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb
), 6183260036827613351512563025491180e+139DL
)
125 || CHECK (tests575 (-61832600368276133515125630254911790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -6183260036827613351512563025491179e+139DL
)
126 || CHECK (tests575 (-61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb
- 1wb
), -6183260036827613351512563025491180e+139DL
))
128 if (CHECK (testu575 (0uwb
), 0.DL
)
129 || CHECK (testu575 (17uwb
), 17.DL
)
130 || CHECK (testu575 (420uwb
), 420.DL
)
131 || CHECK (testu575 (888888888uwb
), 888888888.DL
)
132 || CHECK (testu575 (9999999999999000uwb
), 9999999999999000.DL
)
133 || CHECK (testu575 (99999999999999999999999999999999990000000uwb
), 9999999999999999999999999999999999.e
+7DL
)
134 || CHECK (testu575 (9999999999999999999999999999999999000000000uwb
), 9999999999999999999999999999999999.e
+9DL
)
135 || CHECK (testu575 (99999999999999999999999999999999990000000000000uwb
), 9999999999999999999999999999999999.e
+13DL
)
136 || CHECK (testu575 (9999999999999999999999999999999999000000000000000uwb
), 9999999999999999999999999999999999.e
+15DL
)
137 || CHECK (testu575 (1234567890123456000000000000000000uwb
), 1234567890123456000000000000000000.DL
)
138 || CHECK (testu575 (34242319854454290000000000000000000000uwb
), 3424231985445429000000000000000000e+4DL
)
139 || CHECK (testu575 (9999999999999999999999999999999999000000000000000000000000000000000uwb
), 9999999999999999999999999999999999.e
+33DL
)
140 || CHECK (testu575 (618935436546517949837539847534981700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189354365465179498375398475349817e+104DL
)
141 || CHECK (testu575 (618935436546517949837539847534981750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189354365465179498375398475349818e+104DL
)
142 || CHECK (testu575 (618935436546517949837539847534981749999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 6189354365465179498375398475349817e+104DL
)
143 || CHECK (testu575 (618935436546517949837539847534981799999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 6189354365465179498375398475349818e+104DL
)
144 || CHECK (testu575 (618935436546517949837539847534981800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189354365465179498375398475349818e+104DL
)
145 || CHECK (testu575 (618935436546517949837539847534981850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189354365465179498375398475349818e+104DL
)
146 || CHECK (testu575 (618935436546517949837539847534981850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001uwb
), 6189354365465179498375398475349819e+104DL
)
147 || CHECK (testu575 (99999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 9999999999999999999999999999999999.e
+139DL
)
148 || CHECK (testu575 (123665200736552267030251260509823500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 1236652007365522670302512605098235e+140DL
)
149 || CHECK (testu575 (123665200736552267030251260509823549999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 1236652007365522670302512605098235e+140DL
)
150 || CHECK (testu575 (123665200736552267030251260509823550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 1236652007365522670302512605098236e+140DL
)
151 || CHECK (testu575 (123665200736552267030251260509823550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001uwb
), 1236652007365522670302512605098236e+140DL
)
152 || CHECK (testu575 (123665200736552267030251260509823550000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 1236652007365522670302512605098236e+140DL
)
153 || CHECK (testu575 (123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb
), 1236652007365522670302512605098236e+140DL
))