add a thp-based huge page alloc fallback
[pcsx_rearmed.git] / deps / lightning / check / qalu_shift.tst
CommitLineData
ba86ff93
PC
1#define GENTABLE 0
2#define EXPANDFULL 0
3
4#if GENTABLE
5.data 128
6fmt:
7# if __WORDSIZE == 32
8.c "%s(%2d, 0x%08x, %2d, 0x%08x, 0x%08x)"
9# else
10.c "%s(%2d, 0x%016lx, %2d, 0x%016lx, 0x%016lx)"
11# endif
12opt_start:
13.c "\tOPTIONAL("
14opt_end:
15.c ")\n"
16use_start:
17.c "\t"
18use_end:
19.c "\n"
20QLSH:
21.c " QLSH"
22QLSHU:
23.c "QLSHU"
24QRSH:
25.c " QRSH"
26QRSHU:
27.c "QRSHU"
28#else
29#include "qalu.inc"
30#endif
31
32#define QLSH(N, VAL, SH, LO, HI) QALU(N, , qlsh, VAL, SH, LO, HI)
33#define QLSHU(N, VAL, SH, LO, HI) QALU(N, _u, qlsh, VAL, SH, LO, HI)
34#define QRSH(N, VAL, SH, LO, HI) QALU(N, , qrsh, VAL, SH, LO, HI)
35#define QRSHU(N, VAL, SH, LO, HI) QALU(N, _u, qrsh, VAL, SH, LO, HI)
36
37#if EXPANDFULL
38# define OPTIONAL(OPT) OPT
39#else
40# define OPTIONAL(OPT) /**/
41#endif
42
43.code
44#if GENTABLE
45 jmpi main
46func_qlsh:
47 prolog
48 arg $value
49 arg $shift
50 getarg %v0 $value
51 getarg %v1 $shift
52 allocai $((__WORDSIZE >> 3) * 2) $buf
53 beqi func_qlsh_zero %v1 0
54 beqi func_qlsh_overflow %v1 __WORDSIZE
55 rsbi %r0 %v1 __WORDSIZE
56 rshr %r1 %v0 %r0
57 lshr %r0 %v0 %v1
58 jmpi func_qlsh_done
59func_qlsh_overflow:
60 movr %r1 %v0
61 movi %r0 0
62 jmpi func_qlsh_done
63func_qlsh_zero:
64 movr %r0 %v0
65 rshi %r1 %v0 $(__WORDSIZE - 1)
66func_qlsh_done:
67 stxi $buf %fp %r0
68 stxi $($buf + (__WORDSIZE >> 3)) %fp %r1
69 beqi func_qlsh_not_optional %v1 0
70 beqi func_qlsh_not_optional %v1 1
71 beqi func_qlsh_not_optional %v1 $(__WORDSIZE / 2 - 1)
72 beqi func_qlsh_not_optional %v1 $(__WORDSIZE / 2)
73 beqi func_qlsh_not_optional %v1 $(__WORDSIZE / 2 + 1)
74 beqi func_qlsh_not_optional %v1 $(__WORDSIZE - 1)
75 beqi func_qlsh_not_optional %v1 $(__WORDSIZE)
76 jmpi func_qlsh_optional
77func_qlsh_not_optional:
78 prepare
79 pushargi use_start
80 finishi @printf
81 movi %v2 0
82 jmpi func_qlsh_printf
83func_qlsh_optional:
84 prepare
85 pushargi opt_start
86 finishi @printf
87 movi %v2 1
88func_qlsh_printf:
89 ldxi %r0 %fp $buf
90 ldxi %r1 %fp $($buf + (__WORDSIZE >> 3))
91 prepare
92 pushargi fmt
93 ellipsis
94 pushargi QLSH
95 pushargr %v1
96 pushargr %v0
97 pushargr %v1
98 pushargr %r0
99 pushargr %r1
100 finishi @printf
101 beqi func_qlsh_not_optional_end %v2 0
102 prepare
103 pushargi opt_end
104 finishi @printf
105 jmpi func_qlsh_ret
106func_qlsh_not_optional_end:
107 prepare
108 pushargi use_end
109 finishi @printf
110func_qlsh_ret:
111 ret
112 epilog
113
114func_qlsh_u:
115 prolog
116 arg $value
117 arg $shift
118 getarg %v0 $value
119 getarg %v1 $shift
120 allocai $((__WORDSIZE >> 3) * 2) $buf
121 beqi func_qlsh_u_zero %v1 0
122 beqi func_qlsh_u_overflow %v1 __WORDSIZE
123 rsbi %r0 %v1 __WORDSIZE
124 rshr_u %r1 %v0 %r0
125 lshr %r0 %v0 %v1
126 jmpi func_qlsh_u_done
127func_qlsh_u_overflow:
128 movr %r1 %v0
129 movi %r0 0
130 jmpi func_qlsh_u_done
131func_qlsh_u_zero:
132 movr %r0 %v0
133 movi %r1 0
134func_qlsh_u_done:
135 stxi $buf %fp %r0
136 stxi $($buf + (__WORDSIZE >> 3)) %fp %r1
137 beqi func_qlsh_u_not_optional %v1 0
138 beqi func_qlsh_u_not_optional %v1 1
139 beqi func_qlsh_u_not_optional %v1 $(__WORDSIZE / 2 - 1)
140 beqi func_qlsh_u_not_optional %v1 $(__WORDSIZE / 2)
141 beqi func_qlsh_u_not_optional %v1 $(__WORDSIZE / 2 + 1)
142 beqi func_qlsh_u_not_optional %v1 $(__WORDSIZE - 1)
143 beqi func_qlsh_u_not_optional %v1 $(__WORDSIZE)
144 jmpi func_qlsh_u_optional
145func_qlsh_u_not_optional:
146 prepare
147 pushargi use_start
148 finishi @printf
149 movi %v2 0
150 jmpi func_qlsh_u_printf
151func_qlsh_u_optional:
152 prepare
153 pushargi opt_start
154 finishi @printf
155 movi %v2 1
156func_qlsh_u_printf:
157 ldxi %r0 %fp $buf
158 ldxi %r1 %fp $($buf + (__WORDSIZE >> 3))
159 prepare
160 pushargi fmt
161 ellipsis
162 pushargi QLSHU
163 pushargr %v1
164 pushargr %v0
165 pushargr %v1
166 pushargr %r0
167 pushargr %r1
168 finishi @printf
169 beqi func_qlsh_u_not_optional_end %v2 0
170 prepare
171 pushargi opt_end
172 finishi @printf
173 jmpi func_qlsh_u_ret
174func_qlsh_u_not_optional_end:
175 prepare
176 pushargi use_end
177 finishi @printf
178func_qlsh_u_ret:
179 ret
180 epilog
181
182func_qrsh:
183 prolog
184 arg $value
185 arg $shift
186 getarg %v0 $value
187 getarg %v1 $shift
188 allocai $((__WORDSIZE >> 3) * 2) $buf
189 beqi func_qrsh_zero %v1 0
190 beqi func_qrsh_overflow %v1 __WORDSIZE
191 rsbi %r0 %v1 __WORDSIZE
192 lshr %r1 %v0 %r0
193 rshr %r0 %v0 %v1
194 jmpi func_qrsh_done
195func_qrsh_overflow:
196 movr %r1 %v0
197 rshi %r0 %v0 $(__WORDSIZE - 1)
198 jmpi func_qrsh_done
199func_qrsh_zero:
200 movr %r0 %v0
201 rshi %r1 %v0 $(__WORDSIZE - 1)
202func_qrsh_done:
203 stxi $buf %fp %r0
204 stxi $($buf + (__WORDSIZE >> 3)) %fp %r1
205 beqi func_qrsh_not_optional %v1 0
206 beqi func_qrsh_not_optional %v1 1
207 beqi func_qrsh_not_optional %v1 $(__WORDSIZE / 2 - 1)
208 beqi func_qrsh_not_optional %v1 $(__WORDSIZE / 2)
209 beqi func_qrsh_not_optional %v1 $(__WORDSIZE / 2 + 1)
210 beqi func_qrsh_not_optional %v1 $(__WORDSIZE - 1)
211 beqi func_qrsh_not_optional %v1 $(__WORDSIZE)
212 jmpi func_qrsh_optional
213func_qrsh_not_optional:
214 prepare
215 pushargi use_start
216 finishi @printf
217 movi %v2 0
218 jmpi func_qrsh_printf
219func_qrsh_optional:
220 prepare
221 pushargi opt_start
222 finishi @printf
223 movi %v2 1
224func_qrsh_printf:
225 ldxi %r0 %fp $buf
226 ldxi %r1 %fp $($buf + (__WORDSIZE >> 3))
227 prepare
228 pushargi fmt
229 ellipsis
230 pushargi QRSH
231 pushargr %v1
232 pushargr %v0
233 pushargr %v1
234 pushargr %r0
235 pushargr %r1
236 finishi @printf
237 beqi func_qrsh_not_optional_end %v2 0
238 prepare
239 pushargi opt_end
240 finishi @printf
241 jmpi func_qrsh_ret
242func_qrsh_not_optional_end:
243 prepare
244 pushargi use_end
245 finishi @printf
246func_qrsh_ret:
247 ret
248 epilog
249
250func_qrsh_u:
251 prolog
252 arg $value
253 arg $shift
254 getarg %v0 $value
255 getarg %v1 $shift
256 allocai $((__WORDSIZE >> 3) * 2) $buf
257 beqi func_qrsh_u_zero %v1 0
258 beqi func_qrsh_u_overflow %v1 __WORDSIZE
259 rsbi %r0 %v1 __WORDSIZE
260 lshr %r1 %v0 %r0
261 rshr_u %r0 %v0 %v1
262 jmpi func_qrsh_u_done
263func_qrsh_u_overflow:
264 movr %r1 %v0
265 movi %r0 0
266 jmpi func_qrsh_u_done
267func_qrsh_u_zero:
268 movr %r0 %v0
269 movi %r1 0
270func_qrsh_u_done:
271 stxi $buf %fp %r0
272 stxi $($buf + (__WORDSIZE >> 3)) %fp %r1
273 beqi func_qrsh_u_not_optional %v1 0
274 beqi func_qrsh_u_not_optional %v1 1
275 beqi func_qrsh_u_not_optional %v1 $(__WORDSIZE / 2 - 1)
276 beqi func_qrsh_u_not_optional %v1 $(__WORDSIZE / 2)
277 beqi func_qrsh_u_not_optional %v1 $(__WORDSIZE / 2 + 1)
278 beqi func_qrsh_u_not_optional %v1 $(__WORDSIZE - 1)
279 beqi func_qrsh_u_not_optional %v1 $(__WORDSIZE)
280 jmpi func_qrsh_u_optional
281func_qrsh_u_not_optional:
282 prepare
283 pushargi use_start
284 finishi @printf
285 movi %v2 0
286 jmpi func_qrsh_u_printf
287func_qrsh_u_optional:
288 prepare
289 pushargi opt_start
290 finishi @printf
291 movi %v2 1
292func_qrsh_u_printf:
293 ldxi %r0 %fp $buf
294 ldxi %r1 %fp $($buf + (__WORDSIZE >> 3))
295 prepare
296 pushargi fmt
297 ellipsis
298 pushargi QRSHU
299 pushargr %v1
300 pushargr %v0
301 pushargr %v1
302 pushargr %r0
303 pushargr %r1
304 finishi @printf
305 beqi func_qrsh_u_not_optional_end %v2 0
306 prepare
307 pushargi opt_end
308 finishi @printf
309 jmpi func_qrsh_u_ret
310func_qrsh_u_not_optional_end:
311 prepare
312 pushargi use_end
313 finishi @printf
314func_qrsh_u_ret:
315 epilog
316#endif
317
318 name main
319main:
320 prolog
321#if GENTABLE
322# if __WORDSIZE == 32
323 movi %v0 0x89abcdef
324# else
325 movi %v0 0x89abcdef01234567
326# endif
327 movi %v1 0
328loop:
329 prepare
330 pushargr %v0
331 pushargr %v1
332 finishi func_qlsh
333 prepare
334 pushargr %v0
335 pushargr %v1
336 finishi func_qlsh_u
337 prepare
338 pushargr %v0
339 pushargr %v1
340 finishi func_qrsh
341 prepare
342 pushargr %v0
343 pushargr %v1
344 finishi func_qrsh_u
345 addi %v1 %v1 1
346 blei loop %v1 __WORDSIZE
347#else
348# if __WORDSIZE == 32
349 QLSH( 0, 0x89abcdef, 0, 0x89abcdef, 0xffffffff)
350 QLSHU( 0, 0x89abcdef, 0, 0x89abcdef, 0x00000000)
351 QRSH( 0, 0x89abcdef, 0, 0x89abcdef, 0xffffffff)
352 QRSHU( 0, 0x89abcdef, 0, 0x89abcdef, 0x00000000)
353 QLSH( 1, 0x89abcdef, 1, 0x13579bde, 0xffffffff)
354 QLSHU( 1, 0x89abcdef, 1, 0x13579bde, 0x00000001)
355 QRSH( 1, 0x89abcdef, 1, 0xc4d5e6f7, 0x80000000)
356 QRSHU( 1, 0x89abcdef, 1, 0x44d5e6f7, 0x80000000)
357 OPTIONAL( QLSH( 2, 0x89abcdef, 2, 0x26af37bc, 0xfffffffe))
358 OPTIONAL(QLSHU( 2, 0x89abcdef, 2, 0x26af37bc, 0x00000002))
359 OPTIONAL( QRSH( 2, 0x89abcdef, 2, 0xe26af37b, 0xc0000000))
360 OPTIONAL(QRSHU( 2, 0x89abcdef, 2, 0x226af37b, 0xc0000000))
361 OPTIONAL( QLSH( 3, 0x89abcdef, 3, 0x4d5e6f78, 0xfffffffc))
362 OPTIONAL(QLSHU( 3, 0x89abcdef, 3, 0x4d5e6f78, 0x00000004))
363 OPTIONAL( QRSH( 3, 0x89abcdef, 3, 0xf13579bd, 0xe0000000))
364 OPTIONAL(QRSHU( 3, 0x89abcdef, 3, 0x113579bd, 0xe0000000))
365 OPTIONAL( QLSH( 4, 0x89abcdef, 4, 0x9abcdef0, 0xfffffff8))
366 OPTIONAL(QLSHU( 4, 0x89abcdef, 4, 0x9abcdef0, 0x00000008))
367 OPTIONAL( QRSH( 4, 0x89abcdef, 4, 0xf89abcde, 0xf0000000))
368 OPTIONAL(QRSHU( 4, 0x89abcdef, 4, 0x089abcde, 0xf0000000))
369 OPTIONAL( QLSH( 5, 0x89abcdef, 5, 0x3579bde0, 0xfffffff1))
370 OPTIONAL(QLSHU( 5, 0x89abcdef, 5, 0x3579bde0, 0x00000011))
371 OPTIONAL( QRSH( 5, 0x89abcdef, 5, 0xfc4d5e6f, 0x78000000))
372 OPTIONAL(QRSHU( 5, 0x89abcdef, 5, 0x044d5e6f, 0x78000000))
373 OPTIONAL( QLSH( 6, 0x89abcdef, 6, 0x6af37bc0, 0xffffffe2))
374 OPTIONAL(QLSHU( 6, 0x89abcdef, 6, 0x6af37bc0, 0x00000022))
375 OPTIONAL( QRSH( 6, 0x89abcdef, 6, 0xfe26af37, 0xbc000000))
376 OPTIONAL(QRSHU( 6, 0x89abcdef, 6, 0x0226af37, 0xbc000000))
377 OPTIONAL( QLSH( 7, 0x89abcdef, 7, 0xd5e6f780, 0xffffffc4))
378 OPTIONAL(QLSHU( 7, 0x89abcdef, 7, 0xd5e6f780, 0x00000044))
379 OPTIONAL( QRSH( 7, 0x89abcdef, 7, 0xff13579b, 0xde000000))
380 OPTIONAL(QRSHU( 7, 0x89abcdef, 7, 0x0113579b, 0xde000000))
381 OPTIONAL( QLSH( 8, 0x89abcdef, 8, 0xabcdef00, 0xffffff89))
382 OPTIONAL(QLSHU( 8, 0x89abcdef, 8, 0xabcdef00, 0x00000089))
383 OPTIONAL( QRSH( 8, 0x89abcdef, 8, 0xff89abcd, 0xef000000))
384 OPTIONAL(QRSHU( 8, 0x89abcdef, 8, 0x0089abcd, 0xef000000))
385 OPTIONAL( QLSH( 9, 0x89abcdef, 9, 0x579bde00, 0xffffff13))
386 OPTIONAL(QLSHU( 9, 0x89abcdef, 9, 0x579bde00, 0x00000113))
387 OPTIONAL( QRSH( 9, 0x89abcdef, 9, 0xffc4d5e6, 0xf7800000))
388 OPTIONAL(QRSHU( 9, 0x89abcdef, 9, 0x0044d5e6, 0xf7800000))
389 OPTIONAL( QLSH(10, 0x89abcdef, 10, 0xaf37bc00, 0xfffffe26))
390 OPTIONAL(QLSHU(10, 0x89abcdef, 10, 0xaf37bc00, 0x00000226))
391 OPTIONAL( QRSH(10, 0x89abcdef, 10, 0xffe26af3, 0x7bc00000))
392 OPTIONAL(QRSHU(10, 0x89abcdef, 10, 0x00226af3, 0x7bc00000))
393 OPTIONAL( QLSH(11, 0x89abcdef, 11, 0x5e6f7800, 0xfffffc4d))
394 OPTIONAL(QLSHU(11, 0x89abcdef, 11, 0x5e6f7800, 0x0000044d))
395 OPTIONAL( QRSH(11, 0x89abcdef, 11, 0xfff13579, 0xbde00000))
396 OPTIONAL(QRSHU(11, 0x89abcdef, 11, 0x00113579, 0xbde00000))
397 OPTIONAL( QLSH(12, 0x89abcdef, 12, 0xbcdef000, 0xfffff89a))
398 OPTIONAL(QLSHU(12, 0x89abcdef, 12, 0xbcdef000, 0x0000089a))
399 OPTIONAL( QRSH(12, 0x89abcdef, 12, 0xfff89abc, 0xdef00000))
400 OPTIONAL(QRSHU(12, 0x89abcdef, 12, 0x00089abc, 0xdef00000))
401 OPTIONAL( QLSH(13, 0x89abcdef, 13, 0x79bde000, 0xfffff135))
402 OPTIONAL(QLSHU(13, 0x89abcdef, 13, 0x79bde000, 0x00001135))
403 OPTIONAL( QRSH(13, 0x89abcdef, 13, 0xfffc4d5e, 0x6f780000))
404 OPTIONAL(QRSHU(13, 0x89abcdef, 13, 0x00044d5e, 0x6f780000))
405 OPTIONAL( QLSH(14, 0x89abcdef, 14, 0xf37bc000, 0xffffe26a))
406 OPTIONAL(QLSHU(14, 0x89abcdef, 14, 0xf37bc000, 0x0000226a))
407 OPTIONAL( QRSH(14, 0x89abcdef, 14, 0xfffe26af, 0x37bc0000))
408 OPTIONAL(QRSHU(14, 0x89abcdef, 14, 0x000226af, 0x37bc0000))
409 QLSH(15, 0x89abcdef, 15, 0xe6f78000, 0xffffc4d5)
410 QLSHU(15, 0x89abcdef, 15, 0xe6f78000, 0x000044d5)
411 QRSH(15, 0x89abcdef, 15, 0xffff1357, 0x9bde0000)
412 QRSHU(15, 0x89abcdef, 15, 0x00011357, 0x9bde0000)
413 QLSH(16, 0x89abcdef, 16, 0xcdef0000, 0xffff89ab)
414 QLSHU(16, 0x89abcdef, 16, 0xcdef0000, 0x000089ab)
415 QRSH(16, 0x89abcdef, 16, 0xffff89ab, 0xcdef0000)
416 QRSHU(16, 0x89abcdef, 16, 0x000089ab, 0xcdef0000)
417 QLSH(17, 0x89abcdef, 17, 0x9bde0000, 0xffff1357)
418 QLSHU(17, 0x89abcdef, 17, 0x9bde0000, 0x00011357)
419 QRSH(17, 0x89abcdef, 17, 0xffffc4d5, 0xe6f78000)
420 QRSHU(17, 0x89abcdef, 17, 0x000044d5, 0xe6f78000)
421 OPTIONAL( QLSH(18, 0x89abcdef, 18, 0x37bc0000, 0xfffe26af))
422 OPTIONAL(QLSHU(18, 0x89abcdef, 18, 0x37bc0000, 0x000226af))
423 OPTIONAL( QRSH(18, 0x89abcdef, 18, 0xffffe26a, 0xf37bc000))
424 OPTIONAL(QRSHU(18, 0x89abcdef, 18, 0x0000226a, 0xf37bc000))
425 OPTIONAL( QLSH(19, 0x89abcdef, 19, 0x6f780000, 0xfffc4d5e))
426 OPTIONAL(QLSHU(19, 0x89abcdef, 19, 0x6f780000, 0x00044d5e))
427 OPTIONAL( QRSH(19, 0x89abcdef, 19, 0xfffff135, 0x79bde000))
428 OPTIONAL(QRSHU(19, 0x89abcdef, 19, 0x00001135, 0x79bde000))
429 OPTIONAL( QLSH(20, 0x89abcdef, 20, 0xdef00000, 0xfff89abc))
430 OPTIONAL(QLSHU(20, 0x89abcdef, 20, 0xdef00000, 0x00089abc))
431 OPTIONAL( QRSH(20, 0x89abcdef, 20, 0xfffff89a, 0xbcdef000))
432 OPTIONAL(QRSHU(20, 0x89abcdef, 20, 0x0000089a, 0xbcdef000))
433 OPTIONAL( QLSH(21, 0x89abcdef, 21, 0xbde00000, 0xfff13579))
434 OPTIONAL(QLSHU(21, 0x89abcdef, 21, 0xbde00000, 0x00113579))
435 OPTIONAL( QRSH(21, 0x89abcdef, 21, 0xfffffc4d, 0x5e6f7800))
436 OPTIONAL(QRSHU(21, 0x89abcdef, 21, 0x0000044d, 0x5e6f7800))
437 OPTIONAL( QLSH(22, 0x89abcdef, 22, 0x7bc00000, 0xffe26af3))
438 OPTIONAL(QLSHU(22, 0x89abcdef, 22, 0x7bc00000, 0x00226af3))
439 OPTIONAL( QRSH(22, 0x89abcdef, 22, 0xfffffe26, 0xaf37bc00))
440 OPTIONAL(QRSHU(22, 0x89abcdef, 22, 0x00000226, 0xaf37bc00))
441 OPTIONAL( QLSH(23, 0x89abcdef, 23, 0xf7800000, 0xffc4d5e6))
442 OPTIONAL(QLSHU(23, 0x89abcdef, 23, 0xf7800000, 0x0044d5e6))
443 OPTIONAL( QRSH(23, 0x89abcdef, 23, 0xffffff13, 0x579bde00))
444 OPTIONAL(QRSHU(23, 0x89abcdef, 23, 0x00000113, 0x579bde00))
445 OPTIONAL( QLSH(24, 0x89abcdef, 24, 0xef000000, 0xff89abcd))
446 OPTIONAL(QLSHU(24, 0x89abcdef, 24, 0xef000000, 0x0089abcd))
447 OPTIONAL( QRSH(24, 0x89abcdef, 24, 0xffffff89, 0xabcdef00))
448 OPTIONAL(QRSHU(24, 0x89abcdef, 24, 0x00000089, 0xabcdef00))
449 OPTIONAL( QLSH(25, 0x89abcdef, 25, 0xde000000, 0xff13579b))
450 OPTIONAL(QLSHU(25, 0x89abcdef, 25, 0xde000000, 0x0113579b))
451 OPTIONAL( QRSH(25, 0x89abcdef, 25, 0xffffffc4, 0xd5e6f780))
452 OPTIONAL(QRSHU(25, 0x89abcdef, 25, 0x00000044, 0xd5e6f780))
453 OPTIONAL( QLSH(26, 0x89abcdef, 26, 0xbc000000, 0xfe26af37))
454 OPTIONAL(QLSHU(26, 0x89abcdef, 26, 0xbc000000, 0x0226af37))
455 OPTIONAL( QRSH(26, 0x89abcdef, 26, 0xffffffe2, 0x6af37bc0))
456 OPTIONAL(QRSHU(26, 0x89abcdef, 26, 0x00000022, 0x6af37bc0))
457 OPTIONAL( QLSH(27, 0x89abcdef, 27, 0x78000000, 0xfc4d5e6f))
458 OPTIONAL(QLSHU(27, 0x89abcdef, 27, 0x78000000, 0x044d5e6f))
459 OPTIONAL( QRSH(27, 0x89abcdef, 27, 0xfffffff1, 0x3579bde0))
460 OPTIONAL(QRSHU(27, 0x89abcdef, 27, 0x00000011, 0x3579bde0))
461 OPTIONAL( QLSH(28, 0x89abcdef, 28, 0xf0000000, 0xf89abcde))
462 OPTIONAL(QLSHU(28, 0x89abcdef, 28, 0xf0000000, 0x089abcde))
463 OPTIONAL( QRSH(28, 0x89abcdef, 28, 0xfffffff8, 0x9abcdef0))
464 OPTIONAL(QRSHU(28, 0x89abcdef, 28, 0x00000008, 0x9abcdef0))
465 OPTIONAL( QLSH(29, 0x89abcdef, 29, 0xe0000000, 0xf13579bd))
466 OPTIONAL(QLSHU(29, 0x89abcdef, 29, 0xe0000000, 0x113579bd))
467 OPTIONAL( QRSH(29, 0x89abcdef, 29, 0xfffffffc, 0x4d5e6f78))
468 OPTIONAL(QRSHU(29, 0x89abcdef, 29, 0x00000004, 0x4d5e6f78))
469 OPTIONAL( QLSH(30, 0x89abcdef, 30, 0xc0000000, 0xe26af37b))
470 OPTIONAL(QLSHU(30, 0x89abcdef, 30, 0xc0000000, 0x226af37b))
471 OPTIONAL( QRSH(30, 0x89abcdef, 30, 0xfffffffe, 0x26af37bc))
472 OPTIONAL(QRSHU(30, 0x89abcdef, 30, 0x00000002, 0x26af37bc))
473 QLSH(31, 0x89abcdef, 31, 0x80000000, 0xc4d5e6f7)
474 QLSHU(31, 0x89abcdef, 31, 0x80000000, 0x44d5e6f7)
475 QRSH(31, 0x89abcdef, 31, 0xffffffff, 0x13579bde)
476 QRSHU(31, 0x89abcdef, 31, 0x00000001, 0x13579bde)
477 QLSH(32, 0x89abcdef, 32, 0x00000000, 0x89abcdef)
478 QLSHU(32, 0x89abcdef, 32, 0x00000000, 0x89abcdef)
479 QRSH(32, 0x89abcdef, 32, 0xffffffff, 0x89abcdef)
480 QRSHU(32, 0x89abcdef, 32, 0x00000000, 0x89abcdef)
481# else
482 QLSH( 0, 0x89abcdef01234567, 0, 0x89abcdef01234567, 0xffffffffffffffff)
483 QLSHU( 0, 0x89abcdef01234567, 0, 0x89abcdef01234567, 0x0000000000000000)
484 QRSH( 0, 0x89abcdef01234567, 0, 0x89abcdef01234567, 0xffffffffffffffff)
485 QRSHU( 0, 0x89abcdef01234567, 0, 0x89abcdef01234567, 0x0000000000000000)
486 QLSH( 1, 0x89abcdef01234567, 1, 0x13579bde02468ace, 0xffffffffffffffff)
487 QLSHU( 1, 0x89abcdef01234567, 1, 0x13579bde02468ace, 0x0000000000000001)
488 QRSH( 1, 0x89abcdef01234567, 1, 0xc4d5e6f78091a2b3, 0x8000000000000000)
489 QRSHU( 1, 0x89abcdef01234567, 1, 0x44d5e6f78091a2b3, 0x8000000000000000)
490 OPTIONAL( QLSH( 2, 0x89abcdef01234567, 2, 0x26af37bc048d159c, 0xfffffffffffffffe))
491 OPTIONAL(QLSHU( 2, 0x89abcdef01234567, 2, 0x26af37bc048d159c, 0x0000000000000002))
492 OPTIONAL( QRSH( 2, 0x89abcdef01234567, 2, 0xe26af37bc048d159, 0xc000000000000000))
493 OPTIONAL(QRSHU( 2, 0x89abcdef01234567, 2, 0x226af37bc048d159, 0xc000000000000000))
494 OPTIONAL( QLSH( 3, 0x89abcdef01234567, 3, 0x4d5e6f78091a2b38, 0xfffffffffffffffc))
495 OPTIONAL(QLSHU( 3, 0x89abcdef01234567, 3, 0x4d5e6f78091a2b38, 0x0000000000000004))
496 OPTIONAL( QRSH( 3, 0x89abcdef01234567, 3, 0xf13579bde02468ac, 0xe000000000000000))
497 OPTIONAL(QRSHU( 3, 0x89abcdef01234567, 3, 0x113579bde02468ac, 0xe000000000000000))
498 OPTIONAL( QLSH( 4, 0x89abcdef01234567, 4, 0x9abcdef012345670, 0xfffffffffffffff8))
499 OPTIONAL(QLSHU( 4, 0x89abcdef01234567, 4, 0x9abcdef012345670, 0x0000000000000008))
500 OPTIONAL( QRSH( 4, 0x89abcdef01234567, 4, 0xf89abcdef0123456, 0x7000000000000000))
501 OPTIONAL(QRSHU( 4, 0x89abcdef01234567, 4, 0x089abcdef0123456, 0x7000000000000000))
502 OPTIONAL( QLSH( 5, 0x89abcdef01234567, 5, 0x3579bde02468ace0, 0xfffffffffffffff1))
503 OPTIONAL(QLSHU( 5, 0x89abcdef01234567, 5, 0x3579bde02468ace0, 0x0000000000000011))
504 OPTIONAL( QRSH( 5, 0x89abcdef01234567, 5, 0xfc4d5e6f78091a2b, 0x3800000000000000))
505 OPTIONAL(QRSHU( 5, 0x89abcdef01234567, 5, 0x044d5e6f78091a2b, 0x3800000000000000))
506 OPTIONAL( QLSH( 6, 0x89abcdef01234567, 6, 0x6af37bc048d159c0, 0xffffffffffffffe2))
507 OPTIONAL(QLSHU( 6, 0x89abcdef01234567, 6, 0x6af37bc048d159c0, 0x0000000000000022))
508 OPTIONAL( QRSH( 6, 0x89abcdef01234567, 6, 0xfe26af37bc048d15, 0x9c00000000000000))
509 OPTIONAL(QRSHU( 6, 0x89abcdef01234567, 6, 0x0226af37bc048d15, 0x9c00000000000000))
510 OPTIONAL( QLSH( 7, 0x89abcdef01234567, 7, 0xd5e6f78091a2b380, 0xffffffffffffffc4))
511 OPTIONAL(QLSHU( 7, 0x89abcdef01234567, 7, 0xd5e6f78091a2b380, 0x0000000000000044))
512 OPTIONAL( QRSH( 7, 0x89abcdef01234567, 7, 0xff13579bde02468a, 0xce00000000000000))
513 OPTIONAL(QRSHU( 7, 0x89abcdef01234567, 7, 0x0113579bde02468a, 0xce00000000000000))
514 OPTIONAL( QLSH( 8, 0x89abcdef01234567, 8, 0xabcdef0123456700, 0xffffffffffffff89))
515 OPTIONAL(QLSHU( 8, 0x89abcdef01234567, 8, 0xabcdef0123456700, 0x0000000000000089))
516 OPTIONAL( QRSH( 8, 0x89abcdef01234567, 8, 0xff89abcdef012345, 0x6700000000000000))
517 OPTIONAL(QRSHU( 8, 0x89abcdef01234567, 8, 0x0089abcdef012345, 0x6700000000000000))
518 OPTIONAL( QLSH( 9, 0x89abcdef01234567, 9, 0x579bde02468ace00, 0xffffffffffffff13))
519 OPTIONAL(QLSHU( 9, 0x89abcdef01234567, 9, 0x579bde02468ace00, 0x0000000000000113))
520 OPTIONAL( QRSH( 9, 0x89abcdef01234567, 9, 0xffc4d5e6f78091a2, 0xb380000000000000))
521 OPTIONAL(QRSHU( 9, 0x89abcdef01234567, 9, 0x0044d5e6f78091a2, 0xb380000000000000))
522 OPTIONAL( QLSH(10, 0x89abcdef01234567, 10, 0xaf37bc048d159c00, 0xfffffffffffffe26))
523 OPTIONAL(QLSHU(10, 0x89abcdef01234567, 10, 0xaf37bc048d159c00, 0x0000000000000226))
524 OPTIONAL( QRSH(10, 0x89abcdef01234567, 10, 0xffe26af37bc048d1, 0x59c0000000000000))
525 OPTIONAL(QRSHU(10, 0x89abcdef01234567, 10, 0x00226af37bc048d1, 0x59c0000000000000))
526 OPTIONAL( QLSH(11, 0x89abcdef01234567, 11, 0x5e6f78091a2b3800, 0xfffffffffffffc4d))
527 OPTIONAL(QLSHU(11, 0x89abcdef01234567, 11, 0x5e6f78091a2b3800, 0x000000000000044d))
528 OPTIONAL( QRSH(11, 0x89abcdef01234567, 11, 0xfff13579bde02468, 0xace0000000000000))
529 OPTIONAL(QRSHU(11, 0x89abcdef01234567, 11, 0x00113579bde02468, 0xace0000000000000))
530 OPTIONAL( QLSH(12, 0x89abcdef01234567, 12, 0xbcdef01234567000, 0xfffffffffffff89a))
531 OPTIONAL(QLSHU(12, 0x89abcdef01234567, 12, 0xbcdef01234567000, 0x000000000000089a))
532 OPTIONAL( QRSH(12, 0x89abcdef01234567, 12, 0xfff89abcdef01234, 0x5670000000000000))
533 OPTIONAL(QRSHU(12, 0x89abcdef01234567, 12, 0x00089abcdef01234, 0x5670000000000000))
534 OPTIONAL( QLSH(13, 0x89abcdef01234567, 13, 0x79bde02468ace000, 0xfffffffffffff135))
535 OPTIONAL(QLSHU(13, 0x89abcdef01234567, 13, 0x79bde02468ace000, 0x0000000000001135))
536 OPTIONAL( QRSH(13, 0x89abcdef01234567, 13, 0xfffc4d5e6f78091a, 0x2b38000000000000))
537 OPTIONAL(QRSHU(13, 0x89abcdef01234567, 13, 0x00044d5e6f78091a, 0x2b38000000000000))
538 OPTIONAL( QLSH(14, 0x89abcdef01234567, 14, 0xf37bc048d159c000, 0xffffffffffffe26a))
539 OPTIONAL(QLSHU(14, 0x89abcdef01234567, 14, 0xf37bc048d159c000, 0x000000000000226a))
540 OPTIONAL( QRSH(14, 0x89abcdef01234567, 14, 0xfffe26af37bc048d, 0x159c000000000000))
541 OPTIONAL(QRSHU(14, 0x89abcdef01234567, 14, 0x000226af37bc048d, 0x159c000000000000))
542 OPTIONAL( QLSH(15, 0x89abcdef01234567, 15, 0xe6f78091a2b38000, 0xffffffffffffc4d5))
543 OPTIONAL(QLSHU(15, 0x89abcdef01234567, 15, 0xe6f78091a2b38000, 0x00000000000044d5))
544 OPTIONAL( QRSH(15, 0x89abcdef01234567, 15, 0xffff13579bde0246, 0x8ace000000000000))
545 OPTIONAL(QRSHU(15, 0x89abcdef01234567, 15, 0x000113579bde0246, 0x8ace000000000000))
546 OPTIONAL( QLSH(16, 0x89abcdef01234567, 16, 0xcdef012345670000, 0xffffffffffff89ab))
547 OPTIONAL(QLSHU(16, 0x89abcdef01234567, 16, 0xcdef012345670000, 0x00000000000089ab))
548 OPTIONAL( QRSH(16, 0x89abcdef01234567, 16, 0xffff89abcdef0123, 0x4567000000000000))
549 OPTIONAL(QRSHU(16, 0x89abcdef01234567, 16, 0x000089abcdef0123, 0x4567000000000000))
550 OPTIONAL( QLSH(17, 0x89abcdef01234567, 17, 0x9bde02468ace0000, 0xffffffffffff1357))
551 OPTIONAL(QLSHU(17, 0x89abcdef01234567, 17, 0x9bde02468ace0000, 0x0000000000011357))
552 OPTIONAL( QRSH(17, 0x89abcdef01234567, 17, 0xffffc4d5e6f78091, 0xa2b3800000000000))
553 OPTIONAL(QRSHU(17, 0x89abcdef01234567, 17, 0x000044d5e6f78091, 0xa2b3800000000000))
554 OPTIONAL( QLSH(18, 0x89abcdef01234567, 18, 0x37bc048d159c0000, 0xfffffffffffe26af))
555 OPTIONAL(QLSHU(18, 0x89abcdef01234567, 18, 0x37bc048d159c0000, 0x00000000000226af))
556 OPTIONAL( QRSH(18, 0x89abcdef01234567, 18, 0xffffe26af37bc048, 0xd159c00000000000))
557 OPTIONAL(QRSHU(18, 0x89abcdef01234567, 18, 0x0000226af37bc048, 0xd159c00000000000))
558 OPTIONAL( QLSH(19, 0x89abcdef01234567, 19, 0x6f78091a2b380000, 0xfffffffffffc4d5e))
559 OPTIONAL(QLSHU(19, 0x89abcdef01234567, 19, 0x6f78091a2b380000, 0x0000000000044d5e))
560 OPTIONAL( QRSH(19, 0x89abcdef01234567, 19, 0xfffff13579bde024, 0x68ace00000000000))
561 OPTIONAL(QRSHU(19, 0x89abcdef01234567, 19, 0x0000113579bde024, 0x68ace00000000000))
562 OPTIONAL( QLSH(20, 0x89abcdef01234567, 20, 0xdef0123456700000, 0xfffffffffff89abc))
563 OPTIONAL(QLSHU(20, 0x89abcdef01234567, 20, 0xdef0123456700000, 0x0000000000089abc))
564 OPTIONAL( QRSH(20, 0x89abcdef01234567, 20, 0xfffff89abcdef012, 0x3456700000000000))
565 OPTIONAL(QRSHU(20, 0x89abcdef01234567, 20, 0x0000089abcdef012, 0x3456700000000000))
566 OPTIONAL( QLSH(21, 0x89abcdef01234567, 21, 0xbde02468ace00000, 0xfffffffffff13579))
567 OPTIONAL(QLSHU(21, 0x89abcdef01234567, 21, 0xbde02468ace00000, 0x0000000000113579))
568 OPTIONAL( QRSH(21, 0x89abcdef01234567, 21, 0xfffffc4d5e6f7809, 0x1a2b380000000000))
569 OPTIONAL(QRSHU(21, 0x89abcdef01234567, 21, 0x0000044d5e6f7809, 0x1a2b380000000000))
570 OPTIONAL( QLSH(22, 0x89abcdef01234567, 22, 0x7bc048d159c00000, 0xffffffffffe26af3))
571 OPTIONAL(QLSHU(22, 0x89abcdef01234567, 22, 0x7bc048d159c00000, 0x0000000000226af3))
572 OPTIONAL( QRSH(22, 0x89abcdef01234567, 22, 0xfffffe26af37bc04, 0x8d159c0000000000))
573 OPTIONAL(QRSHU(22, 0x89abcdef01234567, 22, 0x00000226af37bc04, 0x8d159c0000000000))
574 OPTIONAL( QLSH(23, 0x89abcdef01234567, 23, 0xf78091a2b3800000, 0xffffffffffc4d5e6))
575 OPTIONAL(QLSHU(23, 0x89abcdef01234567, 23, 0xf78091a2b3800000, 0x000000000044d5e6))
576 OPTIONAL( QRSH(23, 0x89abcdef01234567, 23, 0xffffff13579bde02, 0x468ace0000000000))
577 OPTIONAL(QRSHU(23, 0x89abcdef01234567, 23, 0x00000113579bde02, 0x468ace0000000000))
578 OPTIONAL( QLSH(24, 0x89abcdef01234567, 24, 0xef01234567000000, 0xffffffffff89abcd))
579 OPTIONAL(QLSHU(24, 0x89abcdef01234567, 24, 0xef01234567000000, 0x000000000089abcd))
580 OPTIONAL( QRSH(24, 0x89abcdef01234567, 24, 0xffffff89abcdef01, 0x2345670000000000))
581 OPTIONAL(QRSHU(24, 0x89abcdef01234567, 24, 0x00000089abcdef01, 0x2345670000000000))
582 OPTIONAL( QLSH(25, 0x89abcdef01234567, 25, 0xde02468ace000000, 0xffffffffff13579b))
583 OPTIONAL(QLSHU(25, 0x89abcdef01234567, 25, 0xde02468ace000000, 0x000000000113579b))
584 OPTIONAL( QRSH(25, 0x89abcdef01234567, 25, 0xffffffc4d5e6f780, 0x91a2b38000000000))
585 OPTIONAL(QRSHU(25, 0x89abcdef01234567, 25, 0x00000044d5e6f780, 0x91a2b38000000000))
586 OPTIONAL( QLSH(26, 0x89abcdef01234567, 26, 0xbc048d159c000000, 0xfffffffffe26af37))
587 OPTIONAL(QLSHU(26, 0x89abcdef01234567, 26, 0xbc048d159c000000, 0x000000000226af37))
588 OPTIONAL( QRSH(26, 0x89abcdef01234567, 26, 0xffffffe26af37bc0, 0x48d159c000000000))
589 OPTIONAL(QRSHU(26, 0x89abcdef01234567, 26, 0x000000226af37bc0, 0x48d159c000000000))
590 OPTIONAL( QLSH(27, 0x89abcdef01234567, 27, 0x78091a2b38000000, 0xfffffffffc4d5e6f))
591 OPTIONAL(QLSHU(27, 0x89abcdef01234567, 27, 0x78091a2b38000000, 0x00000000044d5e6f))
592 OPTIONAL( QRSH(27, 0x89abcdef01234567, 27, 0xfffffff13579bde0, 0x2468ace000000000))
593 OPTIONAL(QRSHU(27, 0x89abcdef01234567, 27, 0x000000113579bde0, 0x2468ace000000000))
594 OPTIONAL( QLSH(28, 0x89abcdef01234567, 28, 0xf012345670000000, 0xfffffffff89abcde))
595 OPTIONAL(QLSHU(28, 0x89abcdef01234567, 28, 0xf012345670000000, 0x00000000089abcde))
596 OPTIONAL( QRSH(28, 0x89abcdef01234567, 28, 0xfffffff89abcdef0, 0x1234567000000000))
597 OPTIONAL(QRSHU(28, 0x89abcdef01234567, 28, 0x000000089abcdef0, 0x1234567000000000))
598 OPTIONAL( QLSH(29, 0x89abcdef01234567, 29, 0xe02468ace0000000, 0xfffffffff13579bd))
599 OPTIONAL(QLSHU(29, 0x89abcdef01234567, 29, 0xe02468ace0000000, 0x00000000113579bd))
600 OPTIONAL( QRSH(29, 0x89abcdef01234567, 29, 0xfffffffc4d5e6f78, 0x091a2b3800000000))
601 OPTIONAL(QRSHU(29, 0x89abcdef01234567, 29, 0x000000044d5e6f78, 0x091a2b3800000000))
602 OPTIONAL( QLSH(30, 0x89abcdef01234567, 30, 0xc048d159c0000000, 0xffffffffe26af37b))
603 OPTIONAL(QLSHU(30, 0x89abcdef01234567, 30, 0xc048d159c0000000, 0x00000000226af37b))
604 OPTIONAL( QRSH(30, 0x89abcdef01234567, 30, 0xfffffffe26af37bc, 0x048d159c00000000))
605 OPTIONAL(QRSHU(30, 0x89abcdef01234567, 30, 0x0000000226af37bc, 0x048d159c00000000))
606 QLSH(31, 0x89abcdef01234567, 31, 0x8091a2b380000000, 0xffffffffc4d5e6f7)
607 QLSHU(31, 0x89abcdef01234567, 31, 0x8091a2b380000000, 0x0000000044d5e6f7)
608 QRSH(31, 0x89abcdef01234567, 31, 0xffffffff13579bde, 0x02468ace00000000)
609 QRSHU(31, 0x89abcdef01234567, 31, 0x0000000113579bde, 0x02468ace00000000)
610 QLSH(32, 0x89abcdef01234567, 32, 0x0123456700000000, 0xffffffff89abcdef)
611 QLSHU(32, 0x89abcdef01234567, 32, 0x0123456700000000, 0x0000000089abcdef)
612 QRSH(32, 0x89abcdef01234567, 32, 0xffffffff89abcdef, 0x0123456700000000)
613 QRSHU(32, 0x89abcdef01234567, 32, 0x0000000089abcdef, 0x0123456700000000)
614 QLSH(33, 0x89abcdef01234567, 33, 0x02468ace00000000, 0xffffffff13579bde)
615 QLSHU(33, 0x89abcdef01234567, 33, 0x02468ace00000000, 0x0000000113579bde)
616 QRSH(33, 0x89abcdef01234567, 33, 0xffffffffc4d5e6f7, 0x8091a2b380000000)
617 QRSHU(33, 0x89abcdef01234567, 33, 0x0000000044d5e6f7, 0x8091a2b380000000)
618 OPTIONAL( QLSH(34, 0x89abcdef01234567, 34, 0x048d159c00000000, 0xfffffffe26af37bc))
619 OPTIONAL(QLSHU(34, 0x89abcdef01234567, 34, 0x048d159c00000000, 0x0000000226af37bc))
620 OPTIONAL( QRSH(34, 0x89abcdef01234567, 34, 0xffffffffe26af37b, 0xc048d159c0000000))
621 OPTIONAL(QRSHU(34, 0x89abcdef01234567, 34, 0x00000000226af37b, 0xc048d159c0000000))
622 OPTIONAL( QLSH(35, 0x89abcdef01234567, 35, 0x091a2b3800000000, 0xfffffffc4d5e6f78))
623 OPTIONAL(QLSHU(35, 0x89abcdef01234567, 35, 0x091a2b3800000000, 0x000000044d5e6f78))
624 OPTIONAL( QRSH(35, 0x89abcdef01234567, 35, 0xfffffffff13579bd, 0xe02468ace0000000))
625 OPTIONAL(QRSHU(35, 0x89abcdef01234567, 35, 0x00000000113579bd, 0xe02468ace0000000))
626 OPTIONAL( QLSH(36, 0x89abcdef01234567, 36, 0x1234567000000000, 0xfffffff89abcdef0))
627 OPTIONAL(QLSHU(36, 0x89abcdef01234567, 36, 0x1234567000000000, 0x000000089abcdef0))
628 OPTIONAL( QRSH(36, 0x89abcdef01234567, 36, 0xfffffffff89abcde, 0xf012345670000000))
629 OPTIONAL(QRSHU(36, 0x89abcdef01234567, 36, 0x00000000089abcde, 0xf012345670000000))
630 OPTIONAL( QLSH(37, 0x89abcdef01234567, 37, 0x2468ace000000000, 0xfffffff13579bde0))
631 OPTIONAL(QLSHU(37, 0x89abcdef01234567, 37, 0x2468ace000000000, 0x000000113579bde0))
632 OPTIONAL( QRSH(37, 0x89abcdef01234567, 37, 0xfffffffffc4d5e6f, 0x78091a2b38000000))
633 OPTIONAL(QRSHU(37, 0x89abcdef01234567, 37, 0x00000000044d5e6f, 0x78091a2b38000000))
634 OPTIONAL( QLSH(38, 0x89abcdef01234567, 38, 0x48d159c000000000, 0xffffffe26af37bc0))
635 OPTIONAL(QLSHU(38, 0x89abcdef01234567, 38, 0x48d159c000000000, 0x000000226af37bc0))
636 OPTIONAL( QRSH(38, 0x89abcdef01234567, 38, 0xfffffffffe26af37, 0xbc048d159c000000))
637 OPTIONAL(QRSHU(38, 0x89abcdef01234567, 38, 0x000000000226af37, 0xbc048d159c000000))
638 OPTIONAL( QLSH(39, 0x89abcdef01234567, 39, 0x91a2b38000000000, 0xffffffc4d5e6f780))
639 OPTIONAL(QLSHU(39, 0x89abcdef01234567, 39, 0x91a2b38000000000, 0x00000044d5e6f780))
640 OPTIONAL( QRSH(39, 0x89abcdef01234567, 39, 0xffffffffff13579b, 0xde02468ace000000))
641 OPTIONAL(QRSHU(39, 0x89abcdef01234567, 39, 0x000000000113579b, 0xde02468ace000000))
642 OPTIONAL( QLSH(40, 0x89abcdef01234567, 40, 0x2345670000000000, 0xffffff89abcdef01))
643 OPTIONAL(QLSHU(40, 0x89abcdef01234567, 40, 0x2345670000000000, 0x00000089abcdef01))
644 OPTIONAL( QRSH(40, 0x89abcdef01234567, 40, 0xffffffffff89abcd, 0xef01234567000000))
645 OPTIONAL(QRSHU(40, 0x89abcdef01234567, 40, 0x000000000089abcd, 0xef01234567000000))
646 OPTIONAL( QLSH(41, 0x89abcdef01234567, 41, 0x468ace0000000000, 0xffffff13579bde02))
647 OPTIONAL(QLSHU(41, 0x89abcdef01234567, 41, 0x468ace0000000000, 0x00000113579bde02))
648 OPTIONAL( QRSH(41, 0x89abcdef01234567, 41, 0xffffffffffc4d5e6, 0xf78091a2b3800000))
649 OPTIONAL(QRSHU(41, 0x89abcdef01234567, 41, 0x000000000044d5e6, 0xf78091a2b3800000))
650 OPTIONAL( QLSH(42, 0x89abcdef01234567, 42, 0x8d159c0000000000, 0xfffffe26af37bc04))
651 OPTIONAL(QLSHU(42, 0x89abcdef01234567, 42, 0x8d159c0000000000, 0x00000226af37bc04))
652 OPTIONAL( QRSH(42, 0x89abcdef01234567, 42, 0xffffffffffe26af3, 0x7bc048d159c00000))
653 OPTIONAL(QRSHU(42, 0x89abcdef01234567, 42, 0x0000000000226af3, 0x7bc048d159c00000))
654 OPTIONAL( QLSH(43, 0x89abcdef01234567, 43, 0x1a2b380000000000, 0xfffffc4d5e6f7809))
655 OPTIONAL(QLSHU(43, 0x89abcdef01234567, 43, 0x1a2b380000000000, 0x0000044d5e6f7809))
656 OPTIONAL( QRSH(43, 0x89abcdef01234567, 43, 0xfffffffffff13579, 0xbde02468ace00000))
657 OPTIONAL(QRSHU(43, 0x89abcdef01234567, 43, 0x0000000000113579, 0xbde02468ace00000))
658 OPTIONAL( QLSH(44, 0x89abcdef01234567, 44, 0x3456700000000000, 0xfffff89abcdef012))
659 OPTIONAL(QLSHU(44, 0x89abcdef01234567, 44, 0x3456700000000000, 0x0000089abcdef012))
660 OPTIONAL( QRSH(44, 0x89abcdef01234567, 44, 0xfffffffffff89abc, 0xdef0123456700000))
661 OPTIONAL(QRSHU(44, 0x89abcdef01234567, 44, 0x0000000000089abc, 0xdef0123456700000))
662 OPTIONAL( QLSH(45, 0x89abcdef01234567, 45, 0x68ace00000000000, 0xfffff13579bde024))
663 OPTIONAL(QLSHU(45, 0x89abcdef01234567, 45, 0x68ace00000000000, 0x0000113579bde024))
664 OPTIONAL( QRSH(45, 0x89abcdef01234567, 45, 0xfffffffffffc4d5e, 0x6f78091a2b380000))
665 OPTIONAL(QRSHU(45, 0x89abcdef01234567, 45, 0x0000000000044d5e, 0x6f78091a2b380000))
666 OPTIONAL( QLSH(46, 0x89abcdef01234567, 46, 0xd159c00000000000, 0xffffe26af37bc048))
667 OPTIONAL(QLSHU(46, 0x89abcdef01234567, 46, 0xd159c00000000000, 0x0000226af37bc048))
668 OPTIONAL( QRSH(46, 0x89abcdef01234567, 46, 0xfffffffffffe26af, 0x37bc048d159c0000))
669 OPTIONAL(QRSHU(46, 0x89abcdef01234567, 46, 0x00000000000226af, 0x37bc048d159c0000))
670 OPTIONAL( QLSH(47, 0x89abcdef01234567, 47, 0xa2b3800000000000, 0xffffc4d5e6f78091))
671 OPTIONAL(QLSHU(47, 0x89abcdef01234567, 47, 0xa2b3800000000000, 0x000044d5e6f78091))
672 OPTIONAL( QRSH(47, 0x89abcdef01234567, 47, 0xffffffffffff1357, 0x9bde02468ace0000))
673 OPTIONAL(QRSHU(47, 0x89abcdef01234567, 47, 0x0000000000011357, 0x9bde02468ace0000))
674 OPTIONAL( QLSH(48, 0x89abcdef01234567, 48, 0x4567000000000000, 0xffff89abcdef0123))
675 OPTIONAL(QLSHU(48, 0x89abcdef01234567, 48, 0x4567000000000000, 0x000089abcdef0123))
676 OPTIONAL( QRSH(48, 0x89abcdef01234567, 48, 0xffffffffffff89ab, 0xcdef012345670000))
677 OPTIONAL(QRSHU(48, 0x89abcdef01234567, 48, 0x00000000000089ab, 0xcdef012345670000))
678 OPTIONAL( QLSH(49, 0x89abcdef01234567, 49, 0x8ace000000000000, 0xffff13579bde0246))
679 OPTIONAL(QLSHU(49, 0x89abcdef01234567, 49, 0x8ace000000000000, 0x000113579bde0246))
680 OPTIONAL( QRSH(49, 0x89abcdef01234567, 49, 0xffffffffffffc4d5, 0xe6f78091a2b38000))
681 OPTIONAL(QRSHU(49, 0x89abcdef01234567, 49, 0x00000000000044d5, 0xe6f78091a2b38000))
682 OPTIONAL( QLSH(50, 0x89abcdef01234567, 50, 0x159c000000000000, 0xfffe26af37bc048d))
683 OPTIONAL(QLSHU(50, 0x89abcdef01234567, 50, 0x159c000000000000, 0x000226af37bc048d))
684 OPTIONAL( QRSH(50, 0x89abcdef01234567, 50, 0xffffffffffffe26a, 0xf37bc048d159c000))
685 OPTIONAL(QRSHU(50, 0x89abcdef01234567, 50, 0x000000000000226a, 0xf37bc048d159c000))
686 OPTIONAL( QLSH(51, 0x89abcdef01234567, 51, 0x2b38000000000000, 0xfffc4d5e6f78091a))
687 OPTIONAL(QLSHU(51, 0x89abcdef01234567, 51, 0x2b38000000000000, 0x00044d5e6f78091a))
688 OPTIONAL( QRSH(51, 0x89abcdef01234567, 51, 0xfffffffffffff135, 0x79bde02468ace000))
689 OPTIONAL(QRSHU(51, 0x89abcdef01234567, 51, 0x0000000000001135, 0x79bde02468ace000))
690 OPTIONAL( QLSH(52, 0x89abcdef01234567, 52, 0x5670000000000000, 0xfff89abcdef01234))
691 OPTIONAL(QLSHU(52, 0x89abcdef01234567, 52, 0x5670000000000000, 0x00089abcdef01234))
692 OPTIONAL( QRSH(52, 0x89abcdef01234567, 52, 0xfffffffffffff89a, 0xbcdef01234567000))
693 OPTIONAL(QRSHU(52, 0x89abcdef01234567, 52, 0x000000000000089a, 0xbcdef01234567000))
694 OPTIONAL( QLSH(53, 0x89abcdef01234567, 53, 0xace0000000000000, 0xfff13579bde02468))
695 OPTIONAL(QLSHU(53, 0x89abcdef01234567, 53, 0xace0000000000000, 0x00113579bde02468))
696 OPTIONAL( QRSH(53, 0x89abcdef01234567, 53, 0xfffffffffffffc4d, 0x5e6f78091a2b3800))
697 OPTIONAL(QRSHU(53, 0x89abcdef01234567, 53, 0x000000000000044d, 0x5e6f78091a2b3800))
698 OPTIONAL( QLSH(54, 0x89abcdef01234567, 54, 0x59c0000000000000, 0xffe26af37bc048d1))
699 OPTIONAL(QLSHU(54, 0x89abcdef01234567, 54, 0x59c0000000000000, 0x00226af37bc048d1))
700 OPTIONAL( QRSH(54, 0x89abcdef01234567, 54, 0xfffffffffffffe26, 0xaf37bc048d159c00))
701 OPTIONAL(QRSHU(54, 0x89abcdef01234567, 54, 0x0000000000000226, 0xaf37bc048d159c00))
702 OPTIONAL( QLSH(55, 0x89abcdef01234567, 55, 0xb380000000000000, 0xffc4d5e6f78091a2))
703 OPTIONAL(QLSHU(55, 0x89abcdef01234567, 55, 0xb380000000000000, 0x0044d5e6f78091a2))
704 OPTIONAL( QRSH(55, 0x89abcdef01234567, 55, 0xffffffffffffff13, 0x579bde02468ace00))
705 OPTIONAL(QRSHU(55, 0x89abcdef01234567, 55, 0x0000000000000113, 0x579bde02468ace00))
706 OPTIONAL( QLSH(56, 0x89abcdef01234567, 56, 0x6700000000000000, 0xff89abcdef012345))
707 OPTIONAL(QLSHU(56, 0x89abcdef01234567, 56, 0x6700000000000000, 0x0089abcdef012345))
708 OPTIONAL( QRSH(56, 0x89abcdef01234567, 56, 0xffffffffffffff89, 0xabcdef0123456700))
709 OPTIONAL(QRSHU(56, 0x89abcdef01234567, 56, 0x0000000000000089, 0xabcdef0123456700))
710 OPTIONAL( QLSH(57, 0x89abcdef01234567, 57, 0xce00000000000000, 0xff13579bde02468a))
711 OPTIONAL(QLSHU(57, 0x89abcdef01234567, 57, 0xce00000000000000, 0x0113579bde02468a))
712 OPTIONAL( QRSH(57, 0x89abcdef01234567, 57, 0xffffffffffffffc4, 0xd5e6f78091a2b380))
713 OPTIONAL(QRSHU(57, 0x89abcdef01234567, 57, 0x0000000000000044, 0xd5e6f78091a2b380))
714 OPTIONAL( QLSH(58, 0x89abcdef01234567, 58, 0x9c00000000000000, 0xfe26af37bc048d15))
715 OPTIONAL(QLSHU(58, 0x89abcdef01234567, 58, 0x9c00000000000000, 0x0226af37bc048d15))
716 OPTIONAL( QRSH(58, 0x89abcdef01234567, 58, 0xffffffffffffffe2, 0x6af37bc048d159c0))
717 OPTIONAL(QRSHU(58, 0x89abcdef01234567, 58, 0x0000000000000022, 0x6af37bc048d159c0))
718 OPTIONAL( QLSH(59, 0x89abcdef01234567, 59, 0x3800000000000000, 0xfc4d5e6f78091a2b))
719 OPTIONAL(QLSHU(59, 0x89abcdef01234567, 59, 0x3800000000000000, 0x044d5e6f78091a2b))
720 OPTIONAL( QRSH(59, 0x89abcdef01234567, 59, 0xfffffffffffffff1, 0x3579bde02468ace0))
721 OPTIONAL(QRSHU(59, 0x89abcdef01234567, 59, 0x0000000000000011, 0x3579bde02468ace0))
722 OPTIONAL( QLSH(60, 0x89abcdef01234567, 60, 0x7000000000000000, 0xf89abcdef0123456))
723 OPTIONAL(QLSHU(60, 0x89abcdef01234567, 60, 0x7000000000000000, 0x089abcdef0123456))
724 OPTIONAL( QRSH(60, 0x89abcdef01234567, 60, 0xfffffffffffffff8, 0x9abcdef012345670))
725 OPTIONAL(QRSHU(60, 0x89abcdef01234567, 60, 0x0000000000000008, 0x9abcdef012345670))
726 OPTIONAL( QLSH(61, 0x89abcdef01234567, 61, 0xe000000000000000, 0xf13579bde02468ac))
727 OPTIONAL(QLSHU(61, 0x89abcdef01234567, 61, 0xe000000000000000, 0x113579bde02468ac))
728 OPTIONAL( QRSH(61, 0x89abcdef01234567, 61, 0xfffffffffffffffc, 0x4d5e6f78091a2b38))
729 OPTIONAL(QRSHU(61, 0x89abcdef01234567, 61, 0x0000000000000004, 0x4d5e6f78091a2b38))
730 OPTIONAL( QLSH(62, 0x89abcdef01234567, 62, 0xc000000000000000, 0xe26af37bc048d159))
731 OPTIONAL(QLSHU(62, 0x89abcdef01234567, 62, 0xc000000000000000, 0x226af37bc048d159))
732 OPTIONAL( QRSH(62, 0x89abcdef01234567, 62, 0xfffffffffffffffe, 0x26af37bc048d159c))
733 OPTIONAL(QRSHU(62, 0x89abcdef01234567, 62, 0x0000000000000002, 0x26af37bc048d159c))
734 QLSH(63, 0x89abcdef01234567, 63, 0x8000000000000000, 0xc4d5e6f78091a2b3)
735 QLSHU(63, 0x89abcdef01234567, 63, 0x8000000000000000, 0x44d5e6f78091a2b3)
736 QRSH(63, 0x89abcdef01234567, 63, 0xffffffffffffffff, 0x13579bde02468ace)
737 QRSHU(63, 0x89abcdef01234567, 63, 0x0000000000000001, 0x13579bde02468ace)
738 QLSH(64, 0x89abcdef01234567, 64, 0x0000000000000000, 0x89abcdef01234567)
739 QLSHU(64, 0x89abcdef01234567, 64, 0x0000000000000000, 0x89abcdef01234567)
740 QRSH(64, 0x89abcdef01234567, 64, 0xffffffffffffffff, 0x89abcdef01234567)
741 QRSHU(64, 0x89abcdef01234567, 64, 0x0000000000000000, 0x89abcdef01234567)
742 #endif
743#endif
744 prepare
745 pushargi ok
746 finishi @printf
747 ret
748 epilog