]>
Commit | Line | Data |
---|---|---|
faff3170 JJ |
1 | /* PR c/102989 */ |
2 | /* { dg-do run { target bitint } } */ | |
54bac0ce | 3 | /* { dg-options "-std=c23 -pedantic-errors" } */ |
faff3170 JJ |
4 | /* { dg-skip-if "" { ! run_expensive_tests } { "*" } { "-O0" "-O2" } } */ |
5 | /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */ | |
6 | ||
7 | #if __BITINT_MAXWIDTH__ >= 256 | |
8 | __attribute__((noipa)) void | |
9 | test135_192_228_256 (unsigned _BitInt(135) *p, unsigned _BitInt(192) *q, | |
10 | unsigned _BitInt(228) *r, unsigned _BitInt(256) *s) | |
11 | { | |
12 | r[6] = (_BitInt(135)) (p[0] + p[1] + p[2]); | |
13 | s[6] = (_BitInt(135)) (p[0] - p[1] + p[2]); | |
14 | r[7] = p[0] + p[1] - p[2]; | |
15 | s[7] = p[0] - p[1] - p[2]; | |
16 | r[8] = (_BitInt(192)) (q[0] + q[1] + q[2]); | |
17 | s[8] = (_BitInt(192)) (q[0] - q[1] + q[2]); | |
18 | r[9] = q[0] + q[1] - q[2]; | |
19 | s[9] = q[0] - q[1] - q[2]; | |
20 | p[6] = (_BitInt(135)) (r[0] + r[1] + r[2]); | |
21 | q[6] = (_BitInt(135)) (r[0] - r[1] + r[2]); | |
22 | p[7] = r[0] + r[1] - r[2]; | |
23 | q[7] = r[0] - r[1] - r[2]; | |
24 | p[8] = (_BitInt(192)) (s[0] + s[1] + s[2]); | |
25 | q[8] = (_BitInt(192)) (s[0] - s[1] + s[2]); | |
26 | p[9] = s[0] + s[1] - s[2]; | |
27 | q[9] = s[0] - s[1] - s[2]; | |
28 | r[10] = ((unsigned _BitInt(228)) ((_BitInt(135)) p[3])) + ((_BitInt(135)) p[4]) + ((_BitInt(135)) p[5]); | |
29 | s[10] = ((unsigned _BitInt(256)) ((_BitInt(135)) p[3])) + ((_BitInt(135)) p[4]) + ((_BitInt(135)) p[5]); | |
30 | r[11] = ((unsigned _BitInt(228)) p[3]) + p[4] + p[5]; | |
31 | s[11] = ((unsigned _BitInt(256)) p[3]) + p[4] + p[5]; | |
32 | r[12] = ((unsigned _BitInt(228)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]); | |
33 | s[12] = ((unsigned _BitInt(256)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]); | |
34 | r[13] = ((unsigned _BitInt(228)) q[3]) + q[4] + q[5]; | |
35 | s[13] = ((unsigned _BitInt(256)) q[3]) + q[4] + q[5]; | |
36 | p[10] = ((unsigned _BitInt(135)) r[3]) + ((unsigned _BitInt(135)) r[4]) + ((unsigned _BitInt(135)) r[5]); | |
37 | q[10] = ((unsigned _BitInt(192)) r[3]) + ((unsigned _BitInt(192)) r[4]) + ((unsigned _BitInt(192)) r[5]); | |
38 | p[11] = ((unsigned _BitInt(135)) s[3]) + ((unsigned _BitInt(135)) s[4]) + ((unsigned _BitInt(135)) s[5]); | |
39 | q[11] = ((unsigned _BitInt(192)) s[3]) + ((unsigned _BitInt(192)) s[4]) + ((unsigned _BitInt(192)) s[5]); | |
40 | p[12] = ((_BitInt(228)) ((_BitInt(135)) p[3])) < ((_BitInt(228)) ((_BitInt(135)) p[4])); | |
41 | q[12] = ((_BitInt(256)) ((_BitInt(135)) p[3])) > ((_BitInt(256)) ((_BitInt(135)) p[4])); | |
42 | p[13] = ((_BitInt(228)) ((unsigned _BitInt(135)) p[3])) <= ((unsigned _BitInt(228)) ((_BitInt(135)) p[4])); | |
43 | q[13] = ((_BitInt(256)) ((unsigned _BitInt(135)) p[3])) >= ((unsigned _BitInt(256)) ((_BitInt(135)) p[4])); | |
44 | p[14] = ((_BitInt(228)) ((_BitInt(192)) q[3])) < ((_BitInt(228)) ((_BitInt(192)) q[4])); | |
45 | q[14] = ((_BitInt(256)) ((_BitInt(192)) q[3])) <= ((_BitInt(256)) ((_BitInt(192)) q[4])); | |
46 | r[14] = ((_BitInt(228)) ((unsigned _BitInt(192)) q[3])) >= ((unsigned _BitInt(228)) ((_BitInt(192)) q[4])); | |
47 | s[14] = ((_BitInt(256)) ((unsigned _BitInt(192)) q[3])) > ((unsigned _BitInt(256)) ((_BitInt(192)) q[4])); | |
48 | } | |
49 | #endif | |
50 | ||
51 | #if __BITINT_MAXWIDTH__ >= 575 | |
52 | __attribute__((noipa)) void | |
53 | test470_512_519_575 (unsigned _BitInt(470) *p, unsigned _BitInt(512) *q, | |
54 | unsigned _BitInt(519) *r, unsigned _BitInt(575) *s) | |
55 | { | |
56 | r[6] = (_BitInt(470)) (p[0] + p[1] + p[2]); | |
57 | s[6] = (_BitInt(470)) (p[0] - p[1] + p[2]); | |
58 | r[7] = p[0] + p[1] - p[2]; | |
59 | s[7] = p[0] - p[1] - p[2]; | |
60 | r[8] = (_BitInt(512)) (q[0] + q[1] + q[2]); | |
61 | s[8] = (_BitInt(512)) (q[0] - q[1] + q[2]); | |
62 | r[9] = q[0] + q[1] - q[2]; | |
63 | s[9] = q[0] - q[1] - q[2]; | |
64 | p[6] = (_BitInt(470)) (r[0] + r[1] + r[2]); | |
65 | q[6] = (_BitInt(470)) (r[0] - r[1] + r[2]); | |
66 | p[7] = r[0] + r[1] - r[2]; | |
67 | q[7] = r[0] - r[1] - r[2]; | |
68 | p[8] = (_BitInt(512)) (s[0] + s[1] + s[2]); | |
69 | q[8] = (_BitInt(512)) (s[0] - s[1] + s[2]); | |
70 | p[9] = s[0] + s[1] - s[2]; | |
71 | q[9] = s[0] - s[1] - s[2]; | |
72 | r[10] = ((unsigned _BitInt(519)) ((_BitInt(470)) p[3])) + ((_BitInt(470)) p[4]) + ((_BitInt(470)) p[5]); | |
73 | s[10] = ((unsigned _BitInt(575)) ((_BitInt(470)) p[3])) + ((_BitInt(470)) p[4]) + ((_BitInt(470)) p[5]); | |
74 | r[11] = ((unsigned _BitInt(519)) p[3]) + p[4] + p[5]; | |
75 | s[11] = ((unsigned _BitInt(575)) p[3]) + p[4] + p[5]; | |
76 | r[12] = ((unsigned _BitInt(519)) ((_BitInt(512)) q[3])) + ((_BitInt(512)) q[4]) + ((_BitInt(512)) q[5]); | |
77 | s[12] = ((unsigned _BitInt(575)) ((_BitInt(512)) q[3])) + ((_BitInt(512)) q[4]) + ((_BitInt(512)) q[5]); | |
78 | r[13] = ((unsigned _BitInt(519)) q[3]) + q[4] + q[5]; | |
79 | s[13] = ((unsigned _BitInt(575)) q[3]) + q[4] + q[5]; | |
80 | p[10] = ((unsigned _BitInt(470)) r[3]) + ((unsigned _BitInt(470)) r[4]) + ((unsigned _BitInt(470)) r[5]); | |
81 | q[10] = ((unsigned _BitInt(512)) r[3]) + ((unsigned _BitInt(512)) r[4]) + ((unsigned _BitInt(512)) r[5]); | |
82 | p[11] = ((unsigned _BitInt(470)) s[3]) + ((unsigned _BitInt(470)) s[4]) + ((unsigned _BitInt(470)) s[5]); | |
83 | q[11] = ((unsigned _BitInt(512)) s[3]) + ((unsigned _BitInt(512)) s[4]) + ((unsigned _BitInt(512)) s[5]); | |
84 | p[12] = ((_BitInt(519)) ((_BitInt(470)) p[3])) < ((_BitInt(519)) ((_BitInt(470)) p[4])); | |
85 | q[12] = ((_BitInt(575)) ((_BitInt(470)) p[3])) > ((_BitInt(575)) ((_BitInt(470)) p[4])); | |
86 | p[13] = ((_BitInt(519)) ((unsigned _BitInt(470)) p[3])) <= ((unsigned _BitInt(519)) ((_BitInt(470)) p[4])); | |
87 | q[13] = ((_BitInt(575)) ((unsigned _BitInt(470)) p[3])) >= ((unsigned _BitInt(575)) ((_BitInt(470)) p[4])); | |
88 | p[14] = ((_BitInt(519)) ((_BitInt(512)) q[3])) < ((_BitInt(519)) ((_BitInt(512)) q[4])); | |
89 | q[14] = ((_BitInt(575)) ((_BitInt(512)) q[3])) <= ((_BitInt(575)) ((_BitInt(512)) q[4])); | |
90 | r[14] = ((_BitInt(519)) ((unsigned _BitInt(512)) q[3])) >= ((unsigned _BitInt(519)) ((_BitInt(512)) q[4])); | |
91 | s[14] = ((_BitInt(575)) ((unsigned _BitInt(512)) q[3])) > ((unsigned _BitInt(575)) ((_BitInt(512)) q[4])); | |
92 | } | |
93 | #endif | |
94 | ||
95 | #if __BITINT_MAXWIDTH__ >= 574 | |
96 | __attribute__((noipa)) void | |
97 | test138_192_523_574 (unsigned _BitInt(138) *p, unsigned _BitInt(192) *q, | |
98 | unsigned _BitInt(523) *r, unsigned _BitInt(574) *s) | |
99 | { | |
100 | r[6] = (_BitInt(138)) (p[0] + p[1] + p[2]); | |
101 | s[6] = (_BitInt(138)) (p[0] - p[1] + p[2]); | |
102 | r[7] = p[0] + p[1] - p[2]; | |
103 | s[7] = p[0] - p[1] - p[2]; | |
104 | r[8] = (_BitInt(192)) (q[0] + q[1] + q[2]); | |
105 | s[8] = (_BitInt(192)) (q[0] - q[1] + q[2]); | |
106 | r[9] = q[0] + q[1] - q[2]; | |
107 | s[9] = q[0] - q[1] - q[2]; | |
108 | p[6] = (_BitInt(138)) (r[0] + r[1] + r[2]); | |
109 | q[6] = (_BitInt(138)) (r[0] - r[1] + r[2]); | |
110 | p[7] = r[0] + r[1] - r[2]; | |
111 | q[7] = r[0] - r[1] - r[2]; | |
112 | p[8] = (_BitInt(192)) (s[0] + s[1] + s[2]); | |
113 | q[8] = (_BitInt(192)) (s[0] - s[1] + s[2]); | |
114 | p[9] = s[0] + s[1] - s[2]; | |
115 | q[9] = s[0] - s[1] - s[2]; | |
116 | r[10] = ((unsigned _BitInt(523)) ((_BitInt(138)) p[3])) + ((_BitInt(138)) p[4]) + ((_BitInt(138)) p[5]); | |
117 | s[10] = ((unsigned _BitInt(574)) ((_BitInt(138)) p[3])) + ((_BitInt(138)) p[4]) + ((_BitInt(138)) p[5]); | |
118 | r[11] = ((unsigned _BitInt(523)) p[3]) + p[4] + p[5]; | |
119 | s[11] = ((unsigned _BitInt(574)) p[3]) + p[4] + p[5]; | |
120 | r[12] = ((unsigned _BitInt(523)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]); | |
121 | s[12] = ((unsigned _BitInt(574)) ((_BitInt(192)) q[3])) + ((_BitInt(192)) q[4]) + ((_BitInt(192)) q[5]); | |
122 | r[13] = ((unsigned _BitInt(523)) q[3]) + q[4] + q[5]; | |
123 | s[13] = ((unsigned _BitInt(574)) q[3]) + q[4] + q[5]; | |
124 | p[10] = ((unsigned _BitInt(138)) r[3]) + ((unsigned _BitInt(138)) r[4]) + ((unsigned _BitInt(138)) r[5]); | |
125 | q[10] = ((unsigned _BitInt(192)) r[3]) + ((unsigned _BitInt(192)) r[4]) + ((unsigned _BitInt(192)) r[5]); | |
126 | p[11] = ((unsigned _BitInt(138)) s[3]) + ((unsigned _BitInt(138)) s[4]) + ((unsigned _BitInt(138)) s[5]); | |
127 | q[11] = ((unsigned _BitInt(192)) s[3]) + ((unsigned _BitInt(192)) s[4]) + ((unsigned _BitInt(192)) s[5]); | |
128 | p[12] = ((_BitInt(523)) ((_BitInt(138)) p[3])) < ((_BitInt(523)) ((_BitInt(138)) p[4])); | |
129 | q[12] = ((_BitInt(574)) ((_BitInt(138)) p[3])) > ((_BitInt(574)) ((_BitInt(138)) p[4])); | |
130 | p[13] = ((_BitInt(523)) ((unsigned _BitInt(138)) p[3])) <= ((unsigned _BitInt(523)) ((_BitInt(138)) p[4])); | |
131 | q[13] = ((_BitInt(574)) ((unsigned _BitInt(138)) p[3])) >= ((unsigned _BitInt(574)) ((_BitInt(138)) p[4])); | |
132 | p[14] = ((_BitInt(523)) ((_BitInt(192)) q[3])) < ((_BitInt(523)) ((_BitInt(192)) q[4])); | |
133 | q[14] = ((_BitInt(574)) ((_BitInt(192)) q[3])) <= ((_BitInt(574)) ((_BitInt(192)) q[4])); | |
134 | r[14] = ((_BitInt(523)) ((unsigned _BitInt(192)) q[3])) >= ((unsigned _BitInt(523)) ((_BitInt(192)) q[4])); | |
135 | s[14] = ((_BitInt(574)) ((unsigned _BitInt(192)) q[3])) > ((unsigned _BitInt(574)) ((_BitInt(192)) q[4])); | |
136 | } | |
137 | #endif | |
138 | ||
139 | int | |
140 | main () | |
141 | { | |
142 | #if __BITINT_MAXWIDTH__ >= 256 | |
143 | static unsigned _BitInt(135) p135[24] = { | |
144 | 4187273188098476865668456823817923591884uwb, | |
145 | 6807534906955493735159263291613578822092uwb, | |
146 | 41026661032626929517457579844514879338728uwb, | |
147 | 21107725719388574292787309710748598888876uwb, | |
148 | 37762806761430755157975144430695583115875uwb, | |
149 | 26495620887646122219041406684145481614415uwb, | |
150 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
151 | 24294442897610200845563470372394790405427uwb, | |
152 | 14494728260279138634407444539578218061153uwb, | |
153 | 35692618919905757032302955601299560733828uwb, | |
154 | 2073608133107652132583703172274308589354uwb, | |
155 | 23162446968047093866488519785733079173672uwb, | |
156 | 23215356388255044329396934936113503903836uwb, | |
157 | 0uwb, | |
158 | 1uwb, | |
159 | 0uwb | |
160 | }; | |
161 | static unsigned _BitInt(192) q192[24] = { | |
162 | 2086085555369597859021791929925392355640686637062909369671uwb, | |
163 | 2680579114698255110186052616880338377881530773942412775534uwb, | |
164 | 3327728695296211902341553047509833116972847770197432421329uwb, | |
165 | 5940317943727487997168783552089315457607206947999336887004uwb, | |
166 | 5542354187267299678821667349861772942889507214082859925027uwb, | |
167 | 3271998891636156295842018666243687525289384908182662772181uwb, | |
168 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
169 | 19403341198470336643414519815259741762743uwb, | |
170 | 5896270732876306173690375572457711356577732208000026578149uwb, | |
171 | 5124631678261056717896926088333660842277657529754581693718uwb, | |
172 | 3443509077298665851293720223028023121358922119534917222332uwb, | |
173 | 5756578284734093802702142887739107033567473420998759418408uwb, | |
174 | 4630861060283249917347323439223922476602768583090317402204uwb, | |
175 | 1uwb, | |
176 | 0uwb, | |
177 | 0uwb | |
178 | }; | |
179 | static unsigned _BitInt(228) r228[24] = { | |
180 | 161966633757691155241945327015229701994331693366818788921573408319756uwb, | |
181 | 38296346596827362616775983079516749483975676455899963878059782490174uwb, | |
182 | 241591800199660287949868996521720659189646617902754527264229209396201uwb, | |
183 | 428902738798964850544466128550714169355105701114620489106903291340964uwb, | |
184 | 235528598555728562847947927417825731721784962388084030737368213942614uwb, | |
185 | 256292789834236084059292238814861516121661392325304427878120090497070uwb, | |
186 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
187 | 8465326161800776794973350208680050686336uwb, | |
188 | 13524290028307164406682090022182954141616uwb, | |
189 | 1817291629977384107713608171107897434392709736738720053638uwb, | |
190 | 1438935974771641066866291499295897616549369640807889723876uwb, | |
191 | 431359146674410236714672241390567958214899515783829121020714765473886uwb, | |
192 | 85366153368465451669803860825589663619166uwb, | |
193 | 431359146670333602531143143072639192076766087438128192434530520032980uwb, | |
194 | 14754671022630943971832469568194775925786099070264859584212uwb, | |
195 | 0uwb | |
196 | }; | |
197 | static unsigned _BitInt(256) s256[24] = { | |
198 | 33689368506800899324387091792297880425309542585828646830789259960880991063584uwb, | |
199 | 39571323848345650718084485253626478678560275338021939071625078673058668106679uwb, | |
200 | 110504693488819055796063554254198165064817853023249665372075921323272516500141uwb, | |
201 | 102297428517176642359444223748374693989314404662584768443522888625651626181283uwb, | |
202 | 80244728165314710913956389448156622901095909768247496334097456157707270969074uwb, | |
203 | 103665915010005983358711046736784166330673952063454224485339530724102504302279uwb, | |
204 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
205 | 115792089237316195423570985008687907848120241013530353364112407633366022682088uwb, | |
206 | 43465363180276300259675513190222127563800uwb, | |
207 | 2733235135967554651177292360554887094732003633317929015466uwb, | |
208 | 2354879480761811610329975688742887276888663537387098685704uwb, | |
209 | 115792089237316195423570985008687907851523852102345769062637545330970131126366uwb, | |
210 | 85366153368465451669803860825589663619166uwb, | |
211 | 115792089237316195419494350825158809533595085964212340716936616744785885685460uwb, | |
212 | 14754671022630943971832469568194775925786099070264859584212uwb, | |
213 | 0uwb | |
214 | }; | |
215 | test135_192_228_256 (p135, q192, r228, s256); | |
216 | for (int i = 6; i < 15; ++i) | |
217 | if (p135[i] != p135[i + 9] | |
218 | || q192[i] != q192[i + 9] | |
219 | || r228[i] != r228[i + 9] | |
220 | || s256[i] != s256[i + 9]) | |
221 | __builtin_abort (); | |
222 | #endif | |
223 | #if __BITINT_MAXWIDTH__ >= 575 | |
224 | static unsigned _BitInt(470) p470[24] = { | |
225 | 290679861857217105576749510785172236097196317219002071340131005135259342235163792727727620685697644545754092322618593967328975789101613622756uwb, | |
226 | 3007766161917260990990922308983802917798001363835330597758175849272351861703814650851622073672692222948955250827120638757725725607466346547961uwb, | |
227 | 574060276709923148626402211078479568921550247040425483673763765831291153847648453629069366560426848580089729851582562589160127450838856742850uwb, | |
228 | 1513032643015460548072615957037831807842396447090608200111284706851223881642236182620260811534047670872236957008209636843038402328412186623867uwb, | |
229 | 736018121751614604248763744490396332128994581237940802611521314820643126961848250509301799425532301686788266718861244200351342613056372468552uwb, | |
230 | 30155063271645468057678848208011195960933215968662731964986808367634269990062216294334734731269355557159014770813970386099476462377224708070uwb, | |
231 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
232 | 2336276654669971355000545579045474018643499545251683574017489057360457587609182251538648565538596336349157530705582440962441081292975829750725uwb, | |
233 | 2811887457092416012110559147431839355552932271928059605261212342070741952382405730371093476958614469776023370616340687057532287796176219869449uwb, | |
234 | 1454614080118846581654283867177010224989739028600678358170065228650331074859011839166100981351630244514069807407054058295180885648638359156315uwb, | |
235 | 1452099984535181412105251439415950646129930223001670876794248464265033550302786152371528494721306355739311614007226227128382131037961688117145uwb, | |
236 | 1700131771206195433306793035837240564903007159128880173423363038992576767815643454391004339339329935701073991719473097155654566696420734301605uwb, | |
237 | 687646008549017812028590579565520345681613774085522641973968443446824759773421489288886130070355380390157446333512774944224841451835655874095uwb, | |
238 | 0uwb, | |
239 | 0uwb, | |
240 | 1uwb | |
241 | }; | |
242 | static unsigned _BitInt(512) q512[24] = { | |
243 | 11999607180890662234640611094796125402682182607671756821443119677915957826104697013256706604957461530042481930446302956354396703791101848051437136984190670uwb, | |
244 | 1669399929141703249463393746110522414573291237669539702537374904052097169767189303794997941915228747803109873985069631915369758962889453579386958506452828uwb, | |
245 | 11378992935330313540343401440793120879643841271871581700686172052228324616806874974534345697693861690426360116949795282888644662188134499896194148433768387uwb, | |
246 | 9993083190971384981726645923137348157759809443699348826766460590248782912389872021894301181692065821343040669086846645954670076835055767363529908044878460uwb, | |
247 | 4194741102820399815388565886074911339757551809782406262401319165104710890785047966633447456093482200519894213755964462654816313685699735398967845201704233uwb, | |
248 | 2421595337545745821088215118098296983215379552867408581490131959698723606384411644669422390261525987191387981272012502904825570949628276538570672660290088uwb, | |
249 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
250 | 1513903473639259387274129463605791299347099137673287344952013483163916537193546764015586855259820134007663746976291793381162392640818043683999uwb, | |
251 | 12277156682318352235712463688522823330952278031457456554222055921981909263024261498262481023121115845377546131965398459894872235113782544708914458317029859uwb, | |
252 | 4027845254315197169423233647114376033430305844071443075105613565290966574715062841638133555232740863237407025233981863916917198547523085200055676796066563uwb, | |
253 | 10707639349311374361511081362429794348061398948029634783963376915733257208356397594815368492279579755336561685612483789993986308827288890748132804532704321uwb, | |
254 | 11909891944680678452073045961414477447224653685643721320079864331428768064778333088269746747399111241079878764522077445502337140106279379768026249427056037uwb, | |
255 | 5596625625751028170955045723080584878265817548746738005171988990687430526534540571089022256509279287347335747951148567883951414510786508005390890674578991uwb, | |
256 | 1uwb, | |
257 | 1uwb, | |
258 | 1uwb | |
259 | }; | |
260 | static unsigned _BitInt(519) r519[24] = { | |
261 | 1030342010401113812244886675533462199253435182769422147430754601621146628252085744300635665226057568402783959871999680067593144181093412956713229194456894164uwb, | |
262 | 1399286804337892133001051165724092281210924970185276871571622362921173888386145177372320997003882614750136133472548611361735698398271314700469097220046489491uwb, | |
263 | 1187491577184187187658283970910931091626643735561997844498566871693437222121521301715871480084581538847004007675304538195851777836706064395267954449805214046uwb, | |
264 | 1590038038660143030887559697627655997346700459420257472659393551660904723658903805269248515919541163543209428329235720802030325145482255847896549116166445779uwb, | |
265 | 884402951942479884942778411278542758813719790602900630698855595508395145632292880569268024966776717352051287824788383446062053991609910742048548988449536210uwb, | |
266 | 326292950770117959333132136682031715802512494345703440528331497456255817028879418424543059879797143305345789113287071774990765627898999338681127138076566016uwb, | |
267 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
268 | 823923731816440081735482986127565752359132554398497263261175151854750269095449533809682632145875337989030585578073140142878915098101850794143uwb, | |
269 | 2724385747064554947941269608690495584973647434013907185424543088576320050091329989950280327797963018914619613298156670135894573945729103427867uwb, | |
270 | 1714431799218129913570774556055636380759299408511854443817835408543138647401945680368622211813596383857215966052878410278731400359247393614777658018691007981uwb, | |
271 | 2290014174702051943760603400113526937611632573469714823294322529739730379065011342517358849178828587419231687481577305381121800565856801734629947056875111uwb, | |
272 | 2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb, | |
273 | 2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb, | |
274 | 3201611701394933518629401929104710353253374985756770292934350271330453379485784656395296729880170581364291005928337560660558078658437209354634776900788685uwb, | |
275 | 16609419631337530618203426927310556480732740806349163670657911715052217409559331633197171028047074009054322864114823611514311961470383779301068425906872781uwb, | |
276 | 1uwb | |
277 | }; | |
278 | static unsigned _BitInt(575) s575[24] = { | |
279 | 96927313110651552741697906285845027560278665167912446772243994455709167318164555507475733363294500975052442014691905285678776198101396126432691790596947740988776944060654926uwb, | |
280 | 102707772385622802706823804871287360126470122215207829602545757786870641626119828685986043329520959072898431094747590180228385563652833016000194460109692900249703592758013356uwb, | |
281 | 110583747014804561196219218561034468168713024547408050239450245043477530907411843124501635977214033600051542621634445064425297114819990148482732834711384300709771384106312545uwb, | |
282 | 54306775370484796829739172393424070839859954453514190131950827429084664762249620446751937114044786249494515203860165437770921772021031551664278887501083036990545747406428169uwb, | |
283 | 46114759885997746928772223321204027410936673207704735367438056888037044881883997045448409583831956188379542065205564192543381437121786101651883495914008056100188006564313178uwb, | |
284 | 35190453913973191463478013966823372048936778121696189495901809463574016396767724553244869787736619209084040172125210006605333310947417602727114932375121134023666009552590284uwb, | |
285 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
286 | 905556545317840426670820457599737857678360574120357846766614390078350723070174958903911342346373648262657058770329172970099291381779089937069uwb, | |
287 | 2806018560565955292876607080162667690292875453735767768929982326799920504066055415044509037998461329188246086490412702963114950229406342570793uwb, | |
288 | 123665200736552267025144844837017673343938243343672951569825529047137624617410727523806857743618811225191141477410357286961350974191432110603936918943400338433680414973687605uwb, | |
289 | 12359022246361242544407840906098328235944415918723028795943134165357300069604179711729237263515274519503043797697924092404136165452024464522289679050053551uwb, | |
290 | 2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb, | |
291 | 2279205828038720620379058549736239335932324244297211734687792830039501278594146649423897345690849328116184238497884851429489221403845783800489uwb, | |
292 | 3201611701394933518629401929104710353253374985756770292934350271330453379485784656395296729880170581364291005928337560660558078658437209354634776900788685uwb, | |
293 | 16609419631337530618203426927310556480732740806349163670657911715052217409559331633197171028047074009054322864114823611514311961470383779301068425906872781uwb, | |
294 | 1uwb | |
295 | }; | |
296 | test470_512_519_575 (p470, q512, r519, s575); | |
297 | for (int i = 6; i < 15; ++i) | |
298 | if (p470[i] != p470[i + 9] | |
299 | || q512[i] != q512[i + 9] | |
300 | || r519[i] != r519[i + 9] | |
301 | || s575[i] != s575[i + 9]) | |
302 | __builtin_abort (); | |
303 | #endif | |
304 | #if __BITINT_MAXWIDTH__ >= 574 | |
305 | static unsigned _BitInt(138) p138[24] = { | |
306 | 101422284254667607392742201719883227411625uwb, | |
307 | 160466466586635795278252037831376082677350uwb, | |
308 | 25107605609849786823351214520760656620933uwb, | |
309 | 295969175246745649031682884402595713219313uwb, | |
310 | 13181527086641487248448136085636319944955uwb, | |
311 | 235130534778709326353598872018612896874473uwb, | |
312 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
313 | 167302456247167982996160810773690897220075uwb, | |
314 | 297389206356979455260412959683265332806635uwb, | |
315 | 335394759052458807357434855405547433962500uwb, | |
316 | 321901396962914134364671486134447068161226uwb, | |
317 | 120351777790732110377699121565672639601425uwb, | |
318 | 198373944314536120634408834917264425196481uwb, | |
319 | 1uwb, | |
320 | 0uwb, | |
321 | 1uwb | |
322 | }; | |
323 | static unsigned _BitInt(192) t192[24] = { | |
324 | 911018684451330895893338523816772465484522458698266889768uwb, | |
325 | 2046183627271691614636061554682220483052698404211100534853uwb, | |
326 | 4678069061913127216263854322789964375230426789917042687454uwb, | |
327 | 3459784480694777343275716409755634649190978443376335561303uwb, | |
328 | 3867595273303447369888355921671728883273018646069926566645uwb, | |
329 | 4813052987333975223830750234077960301742057680559503213273uwb, | |
330 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
331 | 6277101735386680684990022390197371509564931202241440203909uwb, | |
332 | 1278608194268128077434264942601213585924783150489231066757uwb, | |
333 | 4029427835151946963573253373549922510624267261072515255840uwb, | |
334 | 672033229033398034156049846020027986275380626166731032294uwb, | |
335 | 1357991472586126795792080074222943985598370321805879319313uwb, | |
336 | 2856538916789713009071224987092580961800045494832854440897uwb, | |
337 | 0uwb, | |
338 | 1uwb, | |
339 | 1uwb | |
340 | }; | |
341 | static unsigned _BitInt(523) r523[24] = { | |
342 | 3195765699538496998535864601292347963256629173162679399458238383409531673496364786350189170351629279748663665677408547146700561030889355712400808816914064440uwb, | |
343 | 11159477301642000894502707350448750665412836731536210953742141163262563390545287499722678844509966339767235942912910312315832667904302744531360002727358824115uwb, | |
344 | 22101560948582634345286310809677329764046784779464227969587135587282924532940609616951363156766482627364659628549350689295905244730986420796580267097794699008uwb, | |
345 | 3492227525200477614910950479637037651613240112641204783475954014565794311494477327458692721172240707535504736878649393132370069751011176314509944329056779358uwb, | |
346 | 4470424684397392413407392569484317542436005833167916532642765757801563745613041876920796693178762870199674360069594704277190939739704629258367293449899462004uwb, | |
347 | 13549742618125959998093915668094856307843206900469464436576203440358812289708508455667681082349827642620118118540849103671482396581682398406739495271235801407uwb, | |
348 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
349 | 27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818219909185245565923370695700676111069483100152175053778407572uwb, | |
350 | 236781145231453615847643025030498653468042uwb, | |
351 | 1358169638249468962957464978081290907665292208362375599179uwb, | |
352 | 4556234985196576058101335178916694989409149517456359250063uwb, | |
353 | 27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818219909185245565923279531437610013356035988992599748093205461uwb, | |
354 | 544281237112096462633729892506844930038741uwb, | |
355 | 27459190640522438859927603196325572869077741200573221637577853836742172733590624208490238562645818213218312780738081077635942247881191161149284549778122031141uwb, | |
356 | 12140432741332199936994822565505323834206054770005765341221uwb, | |
357 | 0uwb | |
358 | }; | |
359 | static unsigned _BitInt(574) s574[24] = { | |
360 | 49523656310311432476097096707674348247864532997580458449189999134679927949102290921020347613627600560130921641399166416960416734901407545116688589513670229626633588928674165uwb, | |
361 | 42569658590233851212367348547775997184555788503209190045856322440515976044599442772511746833320065456241311597243171150757254859304810272116865990700066734780242713347731186uwb, | |
362 | 19981999860412564491215269984435969976814910925473334223760435541572601828084228297697056388524273994976358111097326046010839057122757304450178767567932398574496781000082333uwb, | |
363 | 8558322198907185372332169456108688881070480268559248312027066736995799133128362338305761323248219317368913715505110464564580744145522428754123209057064241016828671823488793uwb, | |
364 | 43811765949130776561433192718564194559949284938162910217959397270715482324290476494691373258084890889610745910962659657029995968487465144041804156738366622609326192386149788uwb, | |
365 | 45992921207674703917316226268947032522368981737128477902399950788131403664441772601690186531393245791394478464207683996776726761730838587963296718352656413407075666840676108uwb, | |
366 | 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
367 | 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576653865915164420374411133357560960838529992uwb, | |
368 | 264297355785223011877634547377877136644286uwb, | |
369 | 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504032100640224964662421487833755255625414851874551633211704257uwb, | |
370 | 463867730653192828829212069552254023303752709034158180357uwb, | |
371 | 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504034834837841258576535185441544553264934030675638276670151637uwb, | |
372 | 544281237112096462633729892506844930038741uwb, | |
373 | 61832600368276133515125630254911797508782837275302959978515764023224306276632966792579100265310761247399417856504028143965376430734333289946182421100059190967588306698977317uwb, | |
374 | 12140432741332199936994822565505323834206054770005765341221uwb, | |
375 | 0uwb | |
376 | }; | |
377 | test138_192_523_574 (p138, t192, r523, s574); | |
378 | for (int i = 6; i < 15; ++i) | |
379 | if (p138[i] != p138[i + 9] | |
380 | || t192[i] != t192[i + 9] | |
381 | || r523[i] != r523[i + 9] | |
382 | || s574[i] != s574[i + 9]) | |
383 | __builtin_abort (); | |
384 | #endif | |
385 | } |