2 /* { dg-do run { target { bitint && int32plus } } } */
3 /* { dg-options "-std=c23 -pedantic-errors" } */
4 /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */
5 /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
7 #if __BITINT_MAXWIDTH__ >= 135
8 __attribute__((noipa
)) void
9 test_135 (_BitInt(135) *p
, _BitInt(39) *q
, int i
)
13 p
[5] = p
[i
] % p
[1 + i
];
14 p
[6] = p
[2 + i
] % q
[i
];
18 #if __BITINT_MAXWIDTH__ >= 192
19 __attribute__((noipa
)) void
20 test_192 (_BitInt(192) *p
, _BitInt(62) *q
, int i
)
24 p
[5] = p
[i
] % p
[1 + i
];
25 p
[6] = p
[2 + i
] % q
[i
];
29 #if __BITINT_MAXWIDTH__ >= 575
30 __attribute__((noipa
)) void
31 test_575 (_BitInt(575) *p
, _BitInt(125) *q
, int i
)
35 p
[5] = p
[i
] % p
[1 + i
];
36 p
[6] = p
[2 + i
] % q
[i
];
43 #if __BITINT_MAXWIDTH__ >= 135
44 static _BitInt(135) s135
[] = {
45 11379259456099690377988816293288418659013wb
,
46 -18507519859761926375595173102925837392wb
,
47 -3487341362606172228883239379216537732914wb
,
49 -18302253895694594136150902133229wb
,
50 2910721282054679865681699220999829323779wb
,
51 -17020765241462394475777917185801328548533wb
,
53 18652952612120070842749648336935165019219wb
,
55 -2328827552140837061029007041281845428062wb
,
57 4586448317141516754412034429451793085778wb
,
58 302326133131500453732826275685wb
,
59 -13254392454085872482685218784341305341217wb
,
62 16712959282178433685159137405wb
,
63 15642262205867583373380008091954500325wb
,
66 -75263829692564968827327018348wb
,
67 -18302253895694594136150902133229wb
,
69 -18652952612120070842749648336935165019219wb
,
70 112934753510539598517482519823570410wb
,
74 -315580772716330297206790923436697746219wb
,
75 126779339685614070998610275358wb
,
78 static _BitInt(39) s39
[] = {
84 for (int i
= 0; i
< 4; ++i
)
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
])
92 #if __BITINT_MAXWIDTH__ >= 192
93 static _BitInt(192) s192
[] = {
94 -2179289138164349400542345646041597314396798352437085702063wb
,
95 -79910962432789464031897580939163427724139130993wb
,
96 -3036473005246707700116012885952806814462013063553154406939wb
,
98 641265343041674918120574087098wb
,
99 -72968858271155659573911879940731439944647195520825153965wb
,
100 2701717062040203003887103138051480805185032453926240220524wb
,
102 -841691204113630961349106466971783187865820857103239354134wb
,
104 -87971197399776002207343095550078219wb
,
106 1975530920339244356926809414608241391203379490466789216052wb
,
107 -1491609620853264847219953011450130087411551266523269wb
,
108 -1446625088493520499379069533952596205wb
,
111 1706692225050149442221770028739016905019wb
,
112 -79245495764706738784157700565393118980948358836wb
,
113 -1501915295097973757wb
,
115 4771029735868622050569106388224414265428wb
,
116 641265343041674918120574087098wb
,
117 333711124246457812wb
,
118 -280563734704543653783035488990594395955273619034413118044wb
,
119 -11314906111712376578wb
,
123 -11301758503855628901398980734004657wb
,
124 1373411796501852981487559368499793073469647909100920wb
,
127 static _BitInt(62) s62
[] = {
128 -1779156757544544378wb
,
129 566275460772898254wb
,
133 for (int i
= 0; i
< 4; ++i
)
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
])
141 #if __BITINT_MAXWIDTH__ >= 575
142 static _BitInt(575) s575
[] = {
143 -46295454425650349106237210715560972814514774894381316941718135777652722445546437187679065682949497046056192846156902024414635126978980056110286059194406244047429103543013567wb
,
144 8168911130831183937943637579544406842555974190640492967747336926965525847745100099776294868623258477082653103560744709659980631459947315392636659059426713543595666476280533wb
,
145 -35562636740560878776057515364478086997557966107967281638887951768166903062463010597490396666936792092197907362468852658846219038084825902297279012227062238709275022706654710wb
,
147 8943720225181967953483417970wb
,
148 -5686323784402794959708902425053022672027524027657863695096812917030055678499948429234881641591266594283291408732579354863768974925810198523510127753699305465302067821wb
,
149 45545655058039702583745674825335158540648677810736798412180196426599514263661272184545433928331514411963531127261916383264154901783937763805071704477825859668914160192614845wb
,
151 50424935157410302671220896696045811569932594372403814676921199727418115659236492512040645301161966980307514350263276765199536014825688175664310129375564263158984wb
,
153 -1570414268527860342275074326241251266943768106178059338676497087694509262100926288185672140837995480549018141550944901112529623354869552332831768648238175848946606383367442wb
,
155 33743599683183012321962199340752013311691198627837686174760810997243129260923502613536719907475631360213576483574943246620765095970215288302282988013296681749186377007244629wb
,
156 -241344364975185779312145695113143874342953936016290256207617251781961618409457239212648767218870128884542434148wb
,
157 264442076257762743508952577439304094891926651736030778233607159152726518015778933421402285405943871924053070093963838538880775338376789919798084050039162wb
,
160 5102554304763340573123278154007968305825944534675387388100485979831828339912883404866537264221784637582259122678928387415569088293221166wb
,
161 -5450898771494429416519022817838938601734903941178852102981451142825093206820936688797591339833204660642927328353178476114731969679243479147102763897272676329450771161610902wb
,
162 -27841416716804082903535753217607970wb
,
164 2845786405948228702992300882035725001599103765023382470517698884483710061812613500615722877137078798659301720051530203483092161498954792wb
,
165 8943720225181967953483417970wb
,
166 14857023063025350938701283170104334549wb
,
167 -7203562165344328953031556670863687367133227767486259239560171389631159379890927501720092185880280997186787764323325252171362287832241167952044304196509180451283wb
,
168 193782868826267453015550702420724985315443493285153355021508389301944425453072371810496604181725982879795555170278476391923261741289049794434571591514767wb
,
170 -5203319495353646668wb
,
171 -139815154526820696318711149230487844769233301636772309388492158wb
,
172 -323204355193745164479045143032958628560847774063940216640778815817376770038460708119250193248428869489076997487384931038wb
,
173 180305213672139436589458419226578301650781616412684462286468318018185661952458180767935939240752755560277833245wb
,
174 316649622804067950787613592683370wb
176 static _BitInt(125) s125
[] = {
177 -6969575357064287919545125499931812390wb
,
178 16004593655673074838414651760840291513wb
,
179 -8103989160857077722wb
,
180 -818188468095495446473587377169784wb
182 for (int i
= 0; i
< 4; ++i
)
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
])