2 /* { dg-require-effective-target bitint } */
3 /* { dg-options "-O2 -std=c23 -pedantic-errors" } */
5 #if __BITINT_MAXWIDTH__ >= 192
6 __attribute__((noipa
)) _Decimal32
7 tests192 (_BitInt(192) b
)
12 __attribute__((noipa
)) _Decimal32
13 testu192 (unsigned _BitInt(192) b
)
19 #if __BITINT_MAXWIDTH__ >= 575
20 __attribute__((noipa
)) _Decimal32
21 tests575 (_BitInt(575) b
)
26 __attribute__((noipa
)) _Decimal32
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.DF
)
40 || CHECK (tests192 (7wb
), 7.DF
)
41 || CHECK (tests192 (-42wb
), -42.DF
)
42 || CHECK (tests192 (-777777wb
), -777777.DF
)
43 || CHECK (tests192 (9999000wb
), 9999000.DF
)
44 || CHECK (tests192 (-9999999wb
), -9999999.DF
)
45 || CHECK (tests192 (99999994wb
), 9999999.e
+1DF
)
46 || CHECK (tests192 (99999995wb
), 1000000.e
+2DF
)
47 || CHECK (tests192 (999999900wb
), 9999999.e
+2DF
)
48 || CHECK (tests192 (-9999999000wb
), -9999999.e
+3DF
)
49 || CHECK (tests192 (999999900000wb
), 9999999.e
+5DF
)
50 || CHECK (tests192 (-9999999000000wb
), -9999999.e
+6DF
)
51 || CHECK (tests192 (123456700000000000wb
), 1234567.e
+11DF
)
52 || CHECK (tests192 (34242310000000000000000000000wb
), 3424231e+22DF
)
53 || CHECK (tests192 (999999900000000000000000000000000000000wb
), 9999999.e
+32DF
)
54 || CHECK (tests192 (-999999900000000000000000000000000000000000000000wb
), -9999999.e
+41DF
)
55 || CHECK (tests192 (-2138551000000000000000000000000000000000000000000000000000wb
), -2138551e+51DF
)
56 || CHECK (tests192 (-2138551500000000000000000000000000000000000000000000000000wb
), -2138552e+51DF
)
57 || CHECK (tests192 (-2138551499999999999999999999999999999999999999999999999999wb
), -2138551e+51DF
)
58 || CHECK (tests192 (-2138551999999999999999999999999999999999999999999999999999wb
), -2138552e+51DF
)
59 || CHECK (tests192 (-2138552000000000000000000000000000000000000000000000000000wb
), -2138552e+51DF
)
60 || CHECK (tests192 (-2138552500000000000000000000000000000000000000000000000000wb
), -2138552e+51DF
)
61 || CHECK (tests192 (-2138552500000000000000000000000000000000000000000000000001wb
), -2138553e+51DF
)
62 || CHECK (tests192 (3138550000000000000000000000000000000000000000000000000000wb
), 3138550e+51DF
)
63 || CHECK (tests192 (3138550867693340381917894711603833208051177722232017256447wb
), 3138551e+51DF
)
64 || CHECK (tests192 (-3138550000000000000000000000000000000000000000000000000000wb
), -3138550e+51DF
)
65 || CHECK (tests192 (-3138550867693340381917894711603833208051177722232017256447wb
- 1wb
), -3138551e+51DF
))
67 if (CHECK (testu192 (0uwb
), 0.DF
)
68 || CHECK (testu192 (7uwb
), 7.DF
)
69 || CHECK (testu192 (42uwb
), 42.DF
)
70 || CHECK (testu192 (77777uwb
), 77777.DF
)
71 || CHECK (testu192 (9999000uwb
), 9999000.DF
)
72 || CHECK (testu192 (999999900uwb
), 9999999.e
+2DF
)
73 || CHECK (testu192 (999999949uwb
), 9999999.e
+2DF
)
74 || CHECK (testu192 (9999999000uwb
), 9999999.e
+3DF
)
75 || CHECK (testu192 (9999999499uwb
), 9999999.e
+3DF
)
76 || CHECK (testu192 (999999900000uwb
), 9999999.e
+5DF
)
77 || CHECK (testu192 (9999999000000uwb
), 9999999.e
+6DF
)
78 || CHECK (testu192 (123456700000000uwb
), 1234567.e
+8DF
)
79 || CHECK (testu192 (34242310000000000000000000000uwb
), 3424231e+22DF
)
80 || CHECK (testu192 (9999999000000000000000000000000000000000uwb
), 9999999.e
+33DF
)
81 || CHECK (testu192 (61893590000000000000000000000000000000000000000000000uwb
), 6189359e+46DF
)
82 || CHECK (testu192 (61893595000000000000000000000000000000000000000000000uwb
), 6189360e+46DF
)
83 || CHECK (testu192 (61893594999999999999999999999999999999999999999999999uwb
), 6189359e+46DF
)
84 || CHECK (testu192 (61893599999999999999999999999999999999999999999999999uwb
), 6189360e+46DF
)
85 || CHECK (testu192 (61893580000000000000000000000000000000000000000000000uwb
), 6189358e+46DF
)
86 || CHECK (testu192 (61893585000000000000000000000000000000000000000000000uwb
), 6189358e+46DF
)
87 || CHECK (testu192 (61893585000000000000000000000000000000000000000000001uwb
), 6189359e+46DF
)
88 || CHECK (testu192 (999999900000000000000000000000000000000000000000000000uwb
), 9999999.e
+47DF
)
89 || CHECK (testu192 (6277100500000000000000000000000000000000000000000000000000uwb
), 6277100e+51DF
)
90 || CHECK (testu192 (6277100500000000000000000000000000000000000000000000000001uwb
), 6277101e+51DF
)
91 || CHECK (testu192 (6277100500000000000000000000000000000010000000000000000000uwb
), 6277101e+51DF
)
92 || CHECK (testu192 (6277101000000000000000000000000000000000000000000000000000uwb
), 6277101e+51DF
)
93 || CHECK (testu192 (6277101499999999999999999999999999999999999999999999999999uwb
), 6277101e+51DF
)
94 || CHECK (testu192 (6277101500000000000000000000000000000000000000000000000000uwb
), 6277102e+51DF
)
95 || CHECK (testu192 (6277101735386680763835789423207666416102355444464034512895uwb
), 6277102e+51DF
))
98 #if __BITINT_MAXWIDTH__ >= 575
99 if (CHECK (tests575 (0wb
), 0.DF
)
100 || CHECK (tests575 (7wb
), 7.DF
)
101 || CHECK (tests575 (-42wb
), -42.DF
)
102 || CHECK (tests575 (-44444wb
), -44444.DF
)
103 || CHECK (tests575 (9999000wb
), 9999000.DF
)
104 || CHECK (tests575 (-9999999wb
), -9999999.DF
)
105 || CHECK (tests575 (999999900wb
), 9999999.e
+2DF
)
106 || CHECK (tests575 (-9999999000wb
), -9999999.e
+3DF
)
107 || CHECK (tests575 (999999900000wb
), 9999999.e
+5DF
)
108 || CHECK (tests575 (999999949999wb
), 9999999.e
+5DF
)
109 || CHECK (tests575 (-99999990000000wb
), -9999999.e
+7DF
)
110 || CHECK (tests575 (1234567000000000000000000wb
), 1234567.e
+18DF
)
111 || CHECK (tests575 (3424231000000000000000000000000000000000wb
), 3424231e+33DF
)
112 || CHECK (tests575 (99999990000000000000000000000000000000000000000wb
), 9999999.e
+40DF
)
113 || CHECK (tests575 (-9999999000000000000000000000000000000000000000000000000000000000000000wb
), -9999999.e
+63DF
)
114 || CHECK (tests575 (-2138559000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138559e+90DF
)
115 || CHECK (tests575 (-2138559500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138560e+90DF
)
116 || CHECK (tests575 (-2138559499999999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), -2138559e+90DF
)
117 || CHECK (tests575 (-2138559999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), -2138560e+90DF
)
118 || CHECK (tests575 (-2138558000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138558e+90DF
)
119 || CHECK (tests575 (-2138558500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -2138558e+90DF
)
120 || CHECK (tests575 (-2138558500000000000000000000000000000000000000000000000000000000000000000000000000000000000000001wb
), -2138559e+90DF
)
121 || CHECK (tests575 (9999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), 9999999e+90DF
)
122 || CHECK (tests575 (9999999499999999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), 9999999e+90DF
)
123 || CHECK (tests575 (9999999500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), __builtin_infd32 ())
124 || CHECK (tests575 (-9999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -9999999e+90DF
)
125 || CHECK (tests575 (-9999999499999999999999999999999999999999999999999999999999999999999999999999999999999999999999999wb
), -9999999e+90DF
)
126 || CHECK (tests575 (-9999999500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000wb
), -__builtin_infd32 ())
127 || CHECK (tests575 (61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb
), __builtin_infd32 ())
128 || CHECK (tests575 (-61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb
- 1wb
), -__builtin_infd32 ()))
130 if (CHECK (testu575 (0uwb
), 0.DF
)
131 || CHECK (testu575 (17uwb
), 17.DF
)
132 || CHECK (testu575 (420uwb
), 420.DF
)
133 || CHECK (testu575 (888uwb
), 888.DF
)
134 || CHECK (testu575 (9999000uwb
), 9999000.DF
)
135 || CHECK (testu575 (99999990000000uwb
), 9999999.e
+7DF
)
136 || CHECK (testu575 (99999994999999uwb
), 9999999.e
+7DF
)
137 || CHECK (testu575 (9999999000000000uwb
), 9999999.e
+9DF
)
138 || CHECK (testu575 (9999999499999999uwb
), 9999999.e
+9DF
)
139 || CHECK (testu575 (99999990000000000000uwb
), 9999999.e
+13DF
)
140 || CHECK (testu575 (99999994999999999999uwb
), 9999999.e
+13DF
)
141 || CHECK (testu575 (9999999000000000000000uwb
), 9999999.e
+15DF
)
142 || CHECK (testu575 (9999999499999999999999uwb
), 9999999.e
+15DF
)
143 || CHECK (testu575 (1234567000000000000000000uwb
), 1234567.e
+18DF
)
144 || CHECK (testu575 (34242310000000000000000000000uwb
), 3424231e+22DF
)
145 || CHECK (testu575 (9999999000000000000000000000000000000000uwb
), 9999999.e
+33DF
)
146 || CHECK (testu575 (61893590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189359e+88DF
)
147 || CHECK (testu575 (61893595000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189360e+88DF
)
148 || CHECK (testu575 (61893594999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 6189359e+88DF
)
149 || CHECK (testu575 (61893599999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 6189360e+88DF
)
150 || CHECK (testu575 (61893580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189358e+88DF
)
151 || CHECK (testu575 (61893585000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 6189358e+88DF
)
152 || CHECK (testu575 (61893585000000000000000000000000000000000000000000000000000000000000000000000000000000000000001uwb
), 6189359e+88DF
)
153 || CHECK (testu575 (9999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), 9999999.e
+90DF
)
154 || CHECK (tests575 (9999999499999999999999999999999999999999999999999999999999999999999999999999999999999999999999999uwb
), 9999999e+90DF
)
155 || CHECK (tests575 (9999999500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000uwb
), __builtin_infd32 ())
156 || CHECK (testu575 (123665200736552267030251260509823595017565674550605919957031528046448612553265933585158200530621522494798835713008069669675682517153375604983773077550946583958303386074349567uwb
), __builtin_infd32 ()))