]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/torture/bitint-20.c
testsuite: Refer more consistently to C23 not C2X
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / torture / bitint-20.c
CommitLineData
a2f50aa2
JJ
1/* PR c/102989 */
2/* { dg-do run { target { bitint && int32plus } } } */
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 __BITINT_MAXWIDTH__ >= 135
8__attribute__((noipa)) void
9test_135 (_BitInt(135) *p, _BitInt(39) *q, int i)
10{
11 p[3] = p[0] / p[1];
12 p[4] = p[2] / *q;
13 p[5] = p[i] % p[1 + i];
14 p[6] = p[2 + i] % q[i];
15}
16#endif
17
18#if __BITINT_MAXWIDTH__ >= 192
19__attribute__((noipa)) void
20test_192 (_BitInt(192) *p, _BitInt(62) *q, int i)
21{
22 p[3] = p[0] / p[1];
23 p[4] = p[2] / *q;
24 p[5] = p[i] % p[1 + i];
25 p[6] = p[2 + i] % q[i];
26}
27#endif
28
29#if __BITINT_MAXWIDTH__ >= 575
30__attribute__((noipa)) void
31test_575 (_BitInt(575) *p, _BitInt(125) *q, int i)
32{
33 p[3] = p[0] / p[1];
34 p[4] = p[2] / *q;
35 p[5] = p[i] % p[1 + i];
36 p[6] = p[2 + i] % q[i];
37}
38#endif
39
40int
41main ()
42{
43#if __BITINT_MAXWIDTH__ >= 135
44 static _BitInt(135) s135[] = {
45 11379259456099690377988816293288418659013wb,
46 -18507519859761926375595173102925837392wb,
47 -3487341362606172228883239379216537732914wb,
48 0, 0, 0, 0,
49 -18302253895694594136150902133229wb,
50 2910721282054679865681699220999829323779wb,
51 -17020765241462394475777917185801328548533wb,
52 0, 0, 0, 0,
53 18652952612120070842749648336935165019219wb,
54 -1wb,
55 -2328827552140837061029007041281845428062wb,
56 0, 0, 0, 0,
57 4586448317141516754412034429451793085778wb,
58 302326133131500453732826275685wb,
59 -13254392454085872482685218784341305341217wb,
60 0, 0, 0, 0,
61 -614wb,
62 16712959282178433685159137405wb,
63 15642262205867583373380008091954500325wb,
64 -27731730774wb,
65 0wb,
66 -75263829692564968827327018348wb,
67 -18302253895694594136150902133229wb,
68 -35227765213wb,
69 -18652952612120070842749648336935165019219wb,
70 112934753510539598517482519823570410wb,
71 0wb,
72 -3452wb,
73 15170532132wb,
74 -315580772716330297206790923436697746219wb,
75 126779339685614070998610275358wb,
76 -19wb
77 };
78 static _BitInt(39) s39[] = {
79 -208660914188wb,
80 226148009090wb,
81 -20621wb,
82 42wb
83 };
84 for (int i = 0; i < 4; ++i)
85 {
86 test_135 (s135 + 7 * i, s39 + i, 0);
87 for (int j = 0; j < 4; ++j)
88 if (s135[7 * i + 3 + j] != s135[7 * 4 + 4 * i + j])
89 __builtin_abort ();
90 }
91#endif
92#if __BITINT_MAXWIDTH__ >= 192
93 static _BitInt(192) s192[] = {
94 -2179289138164349400542345646041597314396798352437085702063wb,
95 -79910962432789464031897580939163427724139130993wb,
96 -3036473005246707700116012885952806814462013063553154406939wb,
97 0, 0, 0, 0,
98 641265343041674918120574087098wb,
99 -72968858271155659573911879940731439944647195520825153965wb,
100 2701717062040203003887103138051480805185032453926240220524wb,
101 0, 0, 0, 0,
102 -841691204113630961349106466971783187865820857103239354134wb,
103 3wb,
104 -87971197399776002207343095550078219wb,
105 0, 0, 0, 0,
106 1975530920339244356926809414608241391203379490466789216052wb,
107 -1491609620853264847219953011450130087411551266523269wb,
108 -1446625088493520499379069533952596205wb,
109 0, 0, 0, 0,
110 27271466539wb,
111 1706692225050149442221770028739016905019wb,
112 -79245495764706738784157700565393118980948358836wb,
113 -1501915295097973757wb,
114 0wb,
115 4771029735868622050569106388224414265428wb,
116 641265343041674918120574087098wb,
117 333711124246457812wb,
118 -280563734704543653783035488990594395955273619034413118044wb,
119 -11314906111712376578wb,
120 -2wb,
121 -2479408421589529wb,
122 -1324428wb,
123 -11301758503855628901398980734004657wb,
124 1373411796501852981487559368499793073469647909100920wb,
125 -109wb
126 };
127 static _BitInt(62) s62[] = {
128 -1779156757544544378wb,
129 566275460772898254wb,
130 7774805776666105wb,
131 128wb
132 };
133 for (int i = 0; i < 4; ++i)
134 {
135 test_192 (s192 + 7 * i, s62 + i, 0);
136 for (int j = 0; j < 4; ++j)
137 if (s192[7 * i + 3 + j] != s192[7 * 4 + 4 * i + j])
138 __builtin_abort ();
139 }
140#endif
141#if __BITINT_MAXWIDTH__ >= 575
142 static _BitInt(575) s575[] = {
143 -46295454425650349106237210715560972814514774894381316941718135777652722445546437187679065682949497046056192846156902024414635126978980056110286059194406244047429103543013567wb,
144 8168911130831183937943637579544406842555974190640492967747336926965525847745100099776294868623258477082653103560744709659980631459947315392636659059426713543595666476280533wb,
145 -35562636740560878776057515364478086997557966107967281638887951768166903062463010597490396666936792092197907362468852658846219038084825902297279012227062238709275022706654710wb,
146 0, 0, 0, 0,
147 8943720225181967953483417970wb,
148 -5686323784402794959708902425053022672027524027657863695096812917030055678499948429234881641591266594283291408732579354863768974925810198523510127753699305465302067821wb,
149 45545655058039702583745674825335158540648677810736798412180196426599514263661272184545433928331514411963531127261916383264154901783937763805071704477825859668914160192614845wb,
150 0, 0, 0, 0,
151 50424935157410302671220896696045811569932594372403814676921199727418115659236492512040645301161966980307514350263276765199536014825688175664310129375564263158984wb,
152 -7wb,
153 -1570414268527860342275074326241251266943768106178059338676497087694509262100926288185672140837995480549018141550944901112529623354869552332831768648238175848946606383367442wb,
154 0, 0, 0, 0,
155 33743599683183012321962199340752013311691198627837686174760810997243129260923502613536719907475631360213576483574943246620765095970215288302282988013296681749186377007244629wb,
156 -241344364975185779312145695113143874342953936016290256207617251781961618409457239212648767218870128884542434148wb,
157 264442076257762743508952577439304094891926651736030778233607159152726518015778933421402285405943871924053070093963838538880775338376789919798084050039162wb,
158 0, 0, 0, 0,
159 -5wb,
160 5102554304763340573123278154007968305825944534675387388100485979831828339912883404866537264221784637582259122678928387415569088293221166wb,
161 -5450898771494429416519022817838938601734903941178852102981451142825093206820936688797591339833204660642927328353178476114731969679243479147102763897272676329450771161610902wb,
162 -27841416716804082903535753217607970wb,
163 0wb,
164 2845786405948228702992300882035725001599103765023382470517698884483710061812613500615722877137078798659301720051530203483092161498954792wb,
165 8943720225181967953483417970wb,
166 14857023063025350938701283170104334549wb,
167 -7203562165344328953031556670863687367133227767486259239560171389631159379890927501720092185880280997186787764323325252171362287832241167952044304196509180451283wb,
168 193782868826267453015550702420724985315443493285153355021508389301944425453072371810496604181725982879795555170278476391923261741289049794434571591514767wb,
169 3wb,
170 -5203319495353646668wb,
171 -139815154526820696318711149230487844769233301636772309388492158wb,
172 -323204355193745164479045143032958628560847774063940216640778815817376770038460708119250193248428869489076997487384931038wb,
173 180305213672139436589458419226578301650781616412684462286468318018185661952458180767935939240752755560277833245wb,
174 316649622804067950787613592683370wb
175 };
176 static _BitInt(125) s125[] = {
177 -6969575357064287919545125499931812390wb,
178 16004593655673074838414651760840291513wb,
179 -8103989160857077722wb,
180 -818188468095495446473587377169784wb
181 };
182 for (int i = 0; i < 4; ++i)
183 {
184 test_575 (s575 + 7 * i, s125 + i, 0);
185 for (int j = 0; j < 4; ++j)
186 if (s575[7 * i + 3 + j] != s575[7 * 4 + 4 * i + j])
187 __builtin_abort ();
188 }
189#endif
190}