]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/torture/bitint-21.c
testsuite: Refer more consistently to C23 not C2X
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / torture / bitint-21.c
CommitLineData
a2f50aa2
JJ
1/* PR c/102989 */
2/* { dg-do run { target bitint } } */
54bac0ce 3/* { dg-options "-std=c23 -pedantic-errors" } */
a2f50aa2
JJ
4/* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */
5/* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
6
7#if __FLT_MANT_DIG__ == 24
8#if __BITINT_MAXWIDTH__ >= 135
9__attribute__((noipa)) _BitInt(135)
10testflt_135 (float d)
11{
12 return d;
13}
14
15__attribute__((noipa)) unsigned _BitInt(135)
16testfltu_135 (float d)
17{
18 return d;
19}
20#endif
21
22#if __BITINT_MAXWIDTH__ >= 192
23__attribute__((noipa)) _BitInt(192)
24testflt_192 (float d)
25{
26 return d;
27}
28
29__attribute__((noipa)) unsigned _BitInt(192)
30testfltu_192 (float d)
31{
32 return d;
33}
34#endif
35
36#if __BITINT_MAXWIDTH__ >= 575
37__attribute__((noipa)) _BitInt(575)
38testflt_575 (float d)
39{
40 return d;
41}
42
43__attribute__((noipa)) unsigned _BitInt(575)
44testfltu_575 (float d)
45{
46 return d;
47}
48#endif
49#endif
50
51#if __DBL_MANT_DIG__ == 53
52#if __BITINT_MAXWIDTH__ >= 135
53__attribute__((noipa)) _BitInt(135)
54testdbl_135 (double d)
55{
56 return d;
57}
58
59__attribute__((noipa)) unsigned _BitInt(135)
60testdblu_135 (double d)
61{
62 return d;
63}
64#endif
65
66#if __BITINT_MAXWIDTH__ >= 192
67__attribute__((noipa)) _BitInt(192)
68testdbl_192 (double d)
69{
70 return d;
71}
72
73__attribute__((noipa)) unsigned _BitInt(192)
74testdblu_192 (double d)
75{
76 return d;
77}
78#endif
79
80#if __BITINT_MAXWIDTH__ >= 575
81__attribute__((noipa)) _BitInt(575)
82testdbl_575 (double d)
83{
84 return d;
85}
86
87__attribute__((noipa)) unsigned _BitInt(575)
88testdblu_575 (double d)
89{
90 return d;
91}
92#endif
93#endif
94
95int
96main ()
97{
98#if __FLT_MANT_DIG__ == 24
99#if __BITINT_MAXWIDTH__ >= 135
100 static float flt_135[] = {
c62c82dc 101 -1.0f, -0.96875f, -0.5f, -0.0f, 0.25f, 0.0f, 1.0f, -42.0f, 16777215.25f,
a2f50aa2
JJ
102 -50855501824.5f, 39580962846540824576.0f,
103 -122147759335346835551823516808712814592.0f,
104 -85070591730234615865843651857942052864.0f
105 };
106 static _BitInt(135) fltr_135[] = {
c62c82dc 107 -1wb, 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -42wb, 16777215wb,
a2f50aa2
JJ
108 -50855501824wb, 39580962846540824576wb,
109 -122147759335346835551823516808712814592wb,
110 -85070591730234615865843651857942052864wb
111 };
c62c82dc 112 for (int i = 0; i < 13; ++i)
a2f50aa2
JJ
113 if (testflt_135 (flt_135[i]) != fltr_135[i])
114 __builtin_abort ();
115 static float fltu_135[] = {
c62c82dc 116 -0.9375f, -0.25f, -0.0f, 0.125f, 0.0f, 1.0f, 42.59375f, 16777215.75f,
a2f50aa2
JJ
117 397530272.5f, 1557145973265213792232550652968960.0f,
118 69722182498815269047577928656018735104.0f
119 };
120 static unsigned _BitInt(135) fltur_135[] = {
c62c82dc 121 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 42uwb, 16777216uwb,
a2f50aa2
JJ
122 397530272uwb, 1557145973265213792232550652968960uwb,
123 69722182498815269047577928656018735104uwb
124 };
c62c82dc 125 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
126 if (testfltu_135 (fltu_135[i]) != fltur_135[i])
127 __builtin_abort ();
128#endif
129#if __BITINT_MAXWIDTH__ >= 192
130 static float flt_192[] = {
c62c82dc 131 -0.984375f, -0.75f, -0.0f, 0.625f, 0.0f, 1.0f, -42.0f, 16777215.25f,
a2f50aa2
JJ
132 -166724322197504.5f, 7557890186859550768856301568.0f,
133 6614377725485260848635133905887821824.0f,
134 -85070591730234615865843651857942052864.0f
135 };
136 static _BitInt(192) fltr_192[] = {
c62c82dc 137 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -42wb, 16777215wb,
a2f50aa2
JJ
138 -166724322197504wb, 7557890186859550768856301568wb,
139 6614377725485260848635133905887821824wb,
140 -85070591730234615865843651857942052864wb
141 };
c62c82dc 142 for (int i = 0; i < 12; ++i)
a2f50aa2
JJ
143 if (testflt_192 (flt_192[i]) != fltr_192[i])
144 __builtin_abort ();
145 static float fltu_192[] = {
c62c82dc
JJ
146 -0.9921875f, -0.125f, -0.0f, __FLT_MIN__, 0.0f, 1.0f, 42.125f,
147 16777216.75f, 2197600337920.75f, 4591683053408742366929307227985543168.0f,
a2f50aa2
JJ
148 89668786387864080590151097276117811200.0f
149 };
150 static unsigned _BitInt(192) fltur_192[] = {
c62c82dc 151 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 42uwb, 16777216uwb,
a2f50aa2
JJ
152 2197600337920uwb, 4591683053408742366929307227985543168uwb,
153 89668786387864080590151097276117811200uwb
154 };
c62c82dc 155 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
156 if (testfltu_192 (fltu_192[i]) != fltur_192[i])
157 __builtin_abort ();
158#endif
159#if __BITINT_MAXWIDTH__ >= 575
160 static float flt_575[] = {
c62c82dc 161 -0.99609375f, -0.0625f, -0.0f, 0.0001f, 0.0f, 1.0f, -28.0f, 16777214.75f,
a2f50aa2
JJ
162 -1321998852554752.5f, 3447217350995641328695097279119360.0f,
163 -153684583933125564944797950598195445760.0f,
164 -6614377725485260848635133905887821824.0f
165 };
166 static _BitInt(575) fltr_575[] = {
c62c82dc 167 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -28wb, 16777215wb,
a2f50aa2
JJ
168 -1321998852554752wb, 3447217350995641328695097279119360wb,
169 -153684583933125564944797950598195445760wb,
170 -6614377725485260848635133905887821824wb
171 };
c62c82dc 172 for (int i = 0; i < 12; ++i)
a2f50aa2
JJ
173 if (testflt_575 (flt_575[i]) != fltr_575[i])
174 __builtin_abort ();
175 static float fltu_575[] = {
c62c82dc
JJ
176 -0.9921875f, -0.125f, -0.0f, 4.0f * __FLT_MIN__, 0.0f, 1.0f, 38.125f,
177 16777210.75f, 450604433408.75f, 49420393052787309452540595771398946816.0f,
a2f50aa2
JJ
178 144076816645080570490809349637635309568.0f
179 };
180 static unsigned _BitInt(575) fltur_575[] = {
c62c82dc 181 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 38uwb, 16777211uwb,
a2f50aa2
JJ
182 450604433408uwb, 49420393052787309452540595771398946816uwb,
183 144076816645080570490809349637635309568uwb
184 };
c62c82dc 185 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
186 if (testfltu_575 (fltu_575[i]) != fltur_575[i])
187 __builtin_abort ();
188#endif
189#endif
190#if __DBL_MANT_DIG__ == 53
191#if __BITINT_MAXWIDTH__ >= 135
192 static double dbl_135[] = {
c62c82dc 193 -0.998046875, -0.5, -0.0, 0.25, 0.0, 1.0, -42.0, 4294967295.25,
a2f50aa2
JJ
194 -600381955574889.5, 31830517255028909053694705664.0,
195 -18738990071541038357046558935673124945920.0,
196 -21778071482940061661655974875633165533184.0
197 };
198 static _BitInt(135) dblr_135[] = {
c62c82dc 199 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -42wb, 4294967295wb,
a2f50aa2
JJ
200 -600381955574889wb, 31830517255028909053694705664wb,
201 -18738990071541038357046558935673124945920wb,
202 -21778071482940061661655974875633165533183wb - 1wb
203 };
c62c82dc 204 for (int i = 0; i < 12; ++i)
a2f50aa2
JJ
205 if (testdbl_135 (dbl_135[i]) != dblr_135[i])
206 __builtin_abort ();
207 static double dblu_135[] = {
c62c82dc 208 -0.9990234375, -0.25, -0.0, 0.125, 0.0, 1.0, 42.59375, 4294967295.75,
a2f50aa2
JJ
209 1379919377114330.5, 1887176628826898072984354816.0,
210 28122698032432725461429202074509590396928.0
211 };
212 static unsigned _BitInt(135) dblur_135[] = {
c62c82dc 213 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 42uwb, 4294967295uwb,
a2f50aa2
JJ
214 1379919377114330uwb, 1887176628826898072984354816uwb,
215 28122698032432725461429202074509590396928uwb
216 };
c62c82dc 217 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
218 if (testdblu_135 (dblu_135[i]) != dblur_135[i])
219 __builtin_abort ();
220#endif
221#if __BITINT_MAXWIDTH__ >= 192
222 static double dbl_192[] = {
c62c82dc 223 -0.99951171875, -0.75, -0.0, 0.625, 0.0, 1.0, -42.0, 4294967295.25,
a2f50aa2
JJ
224 -334692618508390720.5, 7241713824636372052614321786924022698463985664.0,
225 1051470826442514757151114043324296190023320100185399361536.0,
226 -3138550867693340381917894711603833208051177722232017256448.0
227 };
228 static _BitInt(192) dblr_192[] = {
c62c82dc 229 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -42wb, 4294967295wb,
a2f50aa2
JJ
230 -334692618508390720wb, 7241713824636372052614321786924022698463985664wb,
231 1051470826442514757151114043324296190023320100185399361536wb,
232 -3138550867693340381917894711603833208051177722232017256447wb - 1wb
233 };
c62c82dc 234 for (int i = 0; i < 12; ++i)
a2f50aa2
JJ
235 if (testdbl_192 (dbl_192[i]) != dblr_192[i])
236 __builtin_abort ();
237 static double dblu_192[] = {
c62c82dc 238 -0.999755859375, -0.25, -0.0, __DBL_MIN__, 0.0, 1.0, 42.125, 4294967296.75,
a2f50aa2
JJ
239 85543274084479312.75, 1452517026416706854711122198528.0,
240 4878159368183578289135952951143197426988727705359645409280.0
241 };
242 static unsigned _BitInt(192) dblur_192[] = {
c62c82dc 243 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 42uwb, 4294967296uwb,
a2f50aa2
JJ
244 85543274084479312uwb, 1452517026416706854711122198528uwb,
245 4878159368183578289135952951143197426988727705359645409280uwb
246 };
c62c82dc 247 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
248 if (testdblu_192 (dblu_192[i]) != dblur_192[i])
249 __builtin_abort ();
250#endif
251#if __BITINT_MAXWIDTH__ >= 575
252 static double dbl_575[] = {
c62c82dc 253 -1.0, -0.9998779296875, -0.125, -0.0, 0.0001, 0.0, 1.0, -28.0, 4294967294.75,
a2f50aa2
JJ
254 -37518052491018912.5, 103740344328578397848785318842252129922803939603530145015162908477052192630505472.0,
255 -60264112735379285992549557294906950572505306720710356591257742566415478531569283626542380634430345616295459560427283714375540825055746407845009719778430303250931745441185792.0,
256 -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174784.0
257 };
258 static _BitInt(575) dblr_575[] = {
c62c82dc 259 -1wb, 0wb, 0wb, 0wb, 0wb, 0wb, 1wb, -28wb, 4294967294wb,
a2f50aa2
JJ
260 -37518052491018912wb, 103740344328578397848785318842252129922803939603530145015162908477052192630505472wb,
261 -60264112735379285992549557294906950572505306720710356591257742566415478531569283626542380634430345616295459560427283714375540825055746407845009719778430303250931745441185792wb,
262 -61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576687802491886538775473291979151693037174783wb - 1wb
263 };
c62c82dc 264 for (int i = 0; i < 13; ++i)
a2f50aa2
JJ
265 if (testdbl_575 (dbl_575[i]) != dblr_575[i])
266 __builtin_abort ();
267 static double dblu_575[] = {
c62c82dc 268 -0.99993896484375, -0.0625, -0.0, 4.0 * __DBL_MIN__, 0.0, 1.0, 38.125, 4294967297.75,
a2f50aa2
JJ
269 138240328005104064.75, 1588129215384992270224118343146332410113351482118715170651778867930903010675691494429363974899842924150784.0,
270 106390366882040443685518677989907085524608028099417390750037507495093586319031581000179209552004867195248003952212636389496136628539779816025838629984567658036669448510767104.0
271 };
272 static unsigned _BitInt(575) dblur_575[] = {
c62c82dc 273 0uwb, 0uwb, 0uwb, 0uwb, 0uwb, 1uwb, 38uwb, 4294967297uwb,
a2f50aa2
JJ
274 138240328005104064uwb, 1588129215384992270224118343146332410113351482118715170651778867930903010675691494429363974899842924150784uwb,
275 106390366882040443685518677989907085524608028099417390750037507495093586319031581000179209552004867195248003952212636389496136628539779816025838629984567658036669448510767104uwb
276 };
c62c82dc 277 for (int i = 0; i < 11; ++i)
a2f50aa2
JJ
278 if (testdblu_575 (dblu_575[i]) != dblur_575[i])
279 __builtin_abort ();
280#endif
281#endif
282}