File: unsigned4.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (3003 lines) | stat: -rw-r--r-- 171,241 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
default Order dec

$include <exception_basic.sail>
$include <vector_dec.sail>

overload zero_extend = {sail_zero_extend}

function main (() : unit) -> unit = {
  assert(unsigned(zero_extend(0x104ef4, 64)) == 1068788);
  assert(unsigned(zero_extend(0x104ef8, 64)) == 1068792);
  assert(unsigned(zero_extend(0x104efc, 64)) == 1068796);
  assert(unsigned(zero_extend(0x104f00, 64)) == 1068800);
  assert(unsigned(zero_extend(0x104f04, 64)) == 1068804);
  assert(unsigned(zero_extend(0x104f08, 64)) == 1068808);
  assert(unsigned(zero_extend(0x104f0c, 64)) == 1068812);
  assert(unsigned(zero_extend(0x104f10, 64)) == 1068816);
  assert(unsigned(zero_extend(0x104f14, 64)) == 1068820);
  assert(unsigned(zero_extend(0x104f20, 64)) == 1068832);
  assert(unsigned(zero_extend(0x104f24, 64)) == 1068836);
  assert(unsigned(zero_extend(0x104f28, 64)) == 1068840);
  assert(unsigned(zero_extend(0x104f2c, 64)) == 1068844);
  assert(unsigned(zero_extend(0x104f3c, 64)) == 1068860);
  assert(unsigned(zero_extend(0x104f40, 64)) == 1068864);
  assert(unsigned(zero_extend(0x104f44, 64)) == 1068868);
  assert(unsigned(zero_extend(0x104f48, 64)) == 1068872);
  assert(unsigned(zero_extend(0x104f4c, 64)) == 1068876);
  assert(unsigned(zero_extend(0x104f50, 64)) == 1068880);
  assert(unsigned(zero_extend(0x104f54, 64)) == 1068884);
  assert(unsigned(zero_extend(0x104f58, 64)) == 1068888);
  assert(unsigned(zero_extend(0x104f5c, 64)) == 1068892);
  assert(unsigned(zero_extend(0x104f60, 64)) == 1068896);
  assert(unsigned(zero_extend(0x104f64, 64)) == 1068900);
  assert(unsigned(zero_extend(0x104f68, 64)) == 1068904);
  assert(unsigned(zero_extend(0x104f6c, 64)) == 1068908);
  assert(unsigned(zero_extend(0x104f70, 64)) == 1068912);
  assert(unsigned(zero_extend(0x104f74, 64)) == 1068916);
  assert(unsigned(zero_extend(0x104f78, 64)) == 1068920);
  assert(unsigned(zero_extend(0x104f7c, 64)) == 1068924);
  assert(unsigned(zero_extend(0x104f80, 64)) == 1068928);
  assert(unsigned(zero_extend(0x104f84, 64)) == 1068932);
  assert(unsigned(zero_extend(0x104f88, 64)) == 1068936);
  assert(unsigned(zero_extend(0x104f8c, 64)) == 1068940);
  assert(unsigned(zero_extend(0x104f90, 64)) == 1068944);
  assert(unsigned(zero_extend(0x104f94, 64)) == 1068948);
  assert(unsigned(zero_extend(0x104f98, 64)) == 1068952);
  assert(unsigned(zero_extend(0x104f9c, 64)) == 1068956);
  assert(unsigned(zero_extend(0x104fa0, 64)) == 1068960);
  assert(unsigned(zero_extend(0x104fa4, 64)) == 1068964);
  assert(unsigned(zero_extend(0x104fa8, 64)) == 1068968);
  assert(unsigned(zero_extend(0x104fac, 64)) == 1068972);
  assert(unsigned(zero_extend(0x104fb0, 64)) == 1068976);
  assert(unsigned(zero_extend(0x104fb4, 64)) == 1068980);
  assert(unsigned(zero_extend(0x104fb8, 64)) == 1068984);
  assert(unsigned(zero_extend(0x104fbc, 64)) == 1068988);
  assert(unsigned(zero_extend(0x104fc0, 64)) == 1068992);
  assert(unsigned(zero_extend(0x104fc4, 64)) == 1068996);
  assert(unsigned(zero_extend(0x104fc8, 64)) == 1069000);
  assert(unsigned(zero_extend(0x104fcc, 64)) == 1069004);
  assert(unsigned(zero_extend(0x104fd0, 64)) == 1069008);
  assert(unsigned(zero_extend(0x104fd4, 64)) == 1069012);
  assert(unsigned(zero_extend(0x104fd8, 64)) == 1069016);
  assert(unsigned(zero_extend(0x104fdc, 64)) == 1069020);
  assert(unsigned(zero_extend(0x104fe0, 64)) == 1069024);
  assert(unsigned(zero_extend(0x104fe4, 64)) == 1069028);
  assert(unsigned(zero_extend(0x104fe8, 64)) == 1069032);
  assert(unsigned(zero_extend(0x104fec, 64)) == 1069036);
  assert(unsigned(zero_extend(0x104ff0, 64)) == 1069040);
  assert(unsigned(zero_extend(0x104ff4, 64)) == 1069044);
  assert(unsigned(zero_extend(0x104ff8, 64)) == 1069048);
  assert(unsigned(zero_extend(0x105008, 64)) == 1069064);
  assert(unsigned(zero_extend(0x10500c, 64)) == 1069068);
  assert(unsigned(zero_extend(0x105010, 64)) == 1069072);
  assert(unsigned(zero_extend(0x105014, 64)) == 1069076);
  assert(unsigned(zero_extend(0x105018, 64)) == 1069080);
  assert(unsigned(zero_extend(0x10501c, 64)) == 1069084);
  assert(unsigned(zero_extend(0x105020, 64)) == 1069088);
  assert(unsigned(zero_extend(0x105024, 64)) == 1069092);
  assert(unsigned(zero_extend(0x105028, 64)) == 1069096);
  assert(unsigned(zero_extend(0x105034, 64)) == 1069108);
  assert(unsigned(zero_extend(0x105038, 64)) == 1069112);
  assert(unsigned(zero_extend(0x10503c, 64)) == 1069116);
  assert(unsigned(zero_extend(0x105040, 64)) == 1069120);
  assert(unsigned(zero_extend(0x105050, 64)) == 1069136);
  assert(unsigned(zero_extend(0x105054, 64)) == 1069140);
  assert(unsigned(zero_extend(0x105058, 64)) == 1069144);
  assert(unsigned(zero_extend(0x10505c, 64)) == 1069148);
  assert(unsigned(zero_extend(0x105060, 64)) == 1069152);
  assert(unsigned(zero_extend(0x105064, 64)) == 1069156);
  assert(unsigned(zero_extend(0x105068, 64)) == 1069160);
  assert(unsigned(zero_extend(0x10506c, 64)) == 1069164);
  assert(unsigned(zero_extend(0x105070, 64)) == 1069168);
  assert(unsigned(zero_extend(0x105074, 64)) == 1069172);
  assert(unsigned(zero_extend(0x105078, 64)) == 1069176);
  assert(unsigned(zero_extend(0x10507c, 64)) == 1069180);
  assert(unsigned(zero_extend(0x105080, 64)) == 1069184);
  assert(unsigned(zero_extend(0x105084, 64)) == 1069188);
  assert(unsigned(zero_extend(0x105088, 64)) == 1069192);
  assert(unsigned(zero_extend(0x10508c, 64)) == 1069196);
  assert(unsigned(zero_extend(0x105090, 64)) == 1069200);
  assert(unsigned(zero_extend(0x105094, 64)) == 1069204);
  assert(unsigned(zero_extend(0x105098, 64)) == 1069208);
  assert(unsigned(zero_extend(0x10509c, 64)) == 1069212);
  assert(unsigned(zero_extend(0x1050a0, 64)) == 1069216);
  assert(unsigned(zero_extend(0x1050a4, 64)) == 1069220);
  assert(unsigned(zero_extend(0x1050a8, 64)) == 1069224);
  assert(unsigned(zero_extend(0x1050ac, 64)) == 1069228);
  assert(unsigned(zero_extend(0x1050b0, 64)) == 1069232);
  assert(unsigned(zero_extend(0x1050b4, 64)) == 1069236);
  assert(unsigned(zero_extend(0x1050b8, 64)) == 1069240);
  assert(unsigned(zero_extend(0x1050bc, 64)) == 1069244);
  assert(unsigned(zero_extend(0x1050c0, 64)) == 1069248);
  assert(unsigned(zero_extend(0x1050c4, 64)) == 1069252);
  assert(unsigned(zero_extend(0x1050c8, 64)) == 1069256);
  assert(unsigned(zero_extend(0x1050cc, 64)) == 1069260);
  assert(unsigned(zero_extend(0x1050d0, 64)) == 1069264);
  assert(unsigned(zero_extend(0x1050d4, 64)) == 1069268);
  assert(unsigned(zero_extend(0x1050d8, 64)) == 1069272);
  assert(unsigned(zero_extend(0x1050dc, 64)) == 1069276);
  assert(unsigned(zero_extend(0x1050e0, 64)) == 1069280);
  assert(unsigned(zero_extend(0x1050e4, 64)) == 1069284);
  assert(unsigned(zero_extend(0x1050e8, 64)) == 1069288);
  assert(unsigned(zero_extend(0x1050ec, 64)) == 1069292);
  assert(unsigned(zero_extend(0x1050f0, 64)) == 1069296);
  assert(unsigned(zero_extend(0x1050f4, 64)) == 1069300);
  assert(unsigned(zero_extend(0x1050f8, 64)) == 1069304);
  assert(unsigned(zero_extend(0x1050fc, 64)) == 1069308);
  assert(unsigned(zero_extend(0x105100, 64)) == 1069312);
  assert(unsigned(zero_extend(0x105110, 64)) == 1069328);
  assert(unsigned(zero_extend(0x105114, 64)) == 1069332);
  assert(unsigned(zero_extend(0x105118, 64)) == 1069336);
  assert(unsigned(zero_extend(0x10511c, 64)) == 1069340);
  assert(unsigned(zero_extend(0x105120, 64)) == 1069344);
  assert(unsigned(zero_extend(0x105124, 64)) == 1069348);
  assert(unsigned(zero_extend(0x105128, 64)) == 1069352);
  assert(unsigned(zero_extend(0x105134, 64)) == 1069364);
  assert(unsigned(zero_extend(0x105138, 64)) == 1069368);
  assert(unsigned(zero_extend(0x10513c, 64)) == 1069372);
  assert(unsigned(zero_extend(0x105140, 64)) == 1069376);
  assert(unsigned(zero_extend(0x105150, 64)) == 1069392);
  assert(unsigned(zero_extend(0x105154, 64)) == 1069396);
  assert(unsigned(zero_extend(0x105158, 64)) == 1069400);
  assert(unsigned(zero_extend(0x10515c, 64)) == 1069404);
  assert(unsigned(zero_extend(0x105160, 64)) == 1069408);
  assert(unsigned(zero_extend(0x105164, 64)) == 1069412);
  assert(unsigned(zero_extend(0x105168, 64)) == 1069416);
  assert(unsigned(zero_extend(0x10516c, 64)) == 1069420);
  assert(unsigned(zero_extend(0x105170, 64)) == 1069424);
  assert(unsigned(zero_extend(0x105174, 64)) == 1069428);
  assert(unsigned(zero_extend(0x105178, 64)) == 1069432);
  assert(unsigned(zero_extend(0x10517c, 64)) == 1069436);
  assert(unsigned(zero_extend(0x105180, 64)) == 1069440);
  assert(unsigned(zero_extend(0x105184, 64)) == 1069444);
  assert(unsigned(zero_extend(0x105188, 64)) == 1069448);
  assert(unsigned(zero_extend(0x10518c, 64)) == 1069452);
  assert(unsigned(zero_extend(0x105190, 64)) == 1069456);
  assert(unsigned(zero_extend(0x105194, 64)) == 1069460);
  assert(unsigned(zero_extend(0x105198, 64)) == 1069464);
  assert(unsigned(zero_extend(0x10519c, 64)) == 1069468);
  assert(unsigned(zero_extend(0x1051a0, 64)) == 1069472);
  assert(unsigned(zero_extend(0x1051a4, 64)) == 1069476);
  assert(unsigned(zero_extend(0x1051a8, 64)) == 1069480);
  assert(unsigned(zero_extend(0x1051ac, 64)) == 1069484);
  assert(unsigned(zero_extend(0x1051b0, 64)) == 1069488);
  assert(unsigned(zero_extend(0x1051b4, 64)) == 1069492);
  assert(unsigned(zero_extend(0x1051b8, 64)) == 1069496);
  assert(unsigned(zero_extend(0x1051bc, 64)) == 1069500);
  assert(unsigned(zero_extend(0x1051c0, 64)) == 1069504);
  assert(unsigned(zero_extend(0x1051c4, 64)) == 1069508);
  assert(unsigned(zero_extend(0x1051c8, 64)) == 1069512);
  assert(unsigned(zero_extend(0x1051cc, 64)) == 1069516);
  assert(unsigned(zero_extend(0x1051d0, 64)) == 1069520);
  assert(unsigned(zero_extend(0x1051d4, 64)) == 1069524);
  assert(unsigned(zero_extend(0x1051d8, 64)) == 1069528);
  assert(unsigned(zero_extend(0x1051dc, 64)) == 1069532);
  assert(unsigned(zero_extend(0x1051e0, 64)) == 1069536);
  assert(unsigned(zero_extend(0x1051e4, 64)) == 1069540);
  assert(unsigned(zero_extend(0x1051e8, 64)) == 1069544);
  assert(unsigned(zero_extend(0x1051ec, 64)) == 1069548);
  assert(unsigned(zero_extend(0x1051f0, 64)) == 1069552);
  assert(unsigned(zero_extend(0x1051f4, 64)) == 1069556);
  assert(unsigned(zero_extend(0x1051f8, 64)) == 1069560);
  assert(unsigned(zero_extend(0x1051fc, 64)) == 1069564);
  assert(unsigned(zero_extend(0x105200, 64)) == 1069568);
  assert(unsigned(zero_extend(0x105208, 64)) == 1069576);
  assert(unsigned(zero_extend(0x10520c, 64)) == 1069580);
  assert(unsigned(zero_extend(0x105210, 64)) == 1069584);
  assert(unsigned(zero_extend(0x105214, 64)) == 1069588);
  assert(unsigned(zero_extend(0x105218, 64)) == 1069592);
  assert(unsigned(zero_extend(0x10521c, 64)) == 1069596);
  assert(unsigned(zero_extend(0x105220, 64)) == 1069600);
  assert(unsigned(zero_extend(0x105224, 64)) == 1069604);
  assert(unsigned(zero_extend(0x105228, 64)) == 1069608);
  assert(unsigned(zero_extend(0x105230, 64)) == 1069616);
  assert(unsigned(zero_extend(0x105238, 64)) == 1069624);
  assert(unsigned(zero_extend(0x105240, 64)) == 1069632);
  assert(unsigned(zero_extend(0x105248, 64)) == 1069640);
  assert(unsigned(zero_extend(0x10524c, 64)) == 1069644);
  assert(unsigned(zero_extend(0x105250, 64)) == 1069648);
  assert(unsigned(zero_extend(0x105254, 64)) == 1069652);
  assert(unsigned(zero_extend(0x105258, 64)) == 1069656);
  assert(unsigned(zero_extend(0x10525c, 64)) == 1069660);
  assert(unsigned(zero_extend(0x105260, 64)) == 1069664);
  assert(unsigned(zero_extend(0x105264, 64)) == 1069668);
  assert(unsigned(zero_extend(0x105268, 64)) == 1069672);
  assert(unsigned(zero_extend(0x10526c, 64)) == 1069676);
  assert(unsigned(zero_extend(0x105270, 64)) == 1069680);
  assert(unsigned(zero_extend(0x105274, 64)) == 1069684);
  assert(unsigned(zero_extend(0x105278, 64)) == 1069688);
  assert(unsigned(zero_extend(0x10527c, 64)) == 1069692);
  assert(unsigned(zero_extend(0x10532c, 64)) == 1069868);
  assert(unsigned(zero_extend(0x105330, 64)) == 1069872);
  assert(unsigned(zero_extend(0x105334, 64)) == 1069876);
  assert(unsigned(zero_extend(0x105338, 64)) == 1069880);
  assert(unsigned(zero_extend(0x10533c, 64)) == 1069884);
  assert(unsigned(zero_extend(0x105340, 64)) == 1069888);
  assert(unsigned(zero_extend(0x105344, 64)) == 1069892);
  assert(unsigned(zero_extend(0x105348, 64)) == 1069896);
  assert(unsigned(zero_extend(0x10534c, 64)) == 1069900);
  assert(unsigned(zero_extend(0x105350, 64)) == 1069904);
  assert(unsigned(zero_extend(0x105354, 64)) == 1069908);
  assert(unsigned(zero_extend(0x105358, 64)) == 1069912);
  assert(unsigned(zero_extend(0x10535c, 64)) == 1069916);
  assert(unsigned(zero_extend(0x105360, 64)) == 1069920);
  assert(unsigned(zero_extend(0x105364, 64)) == 1069924);
  assert(unsigned(zero_extend(0x105368, 64)) == 1069928);
  assert(unsigned(zero_extend(0x10536c, 64)) == 1069932);
  assert(unsigned(zero_extend(0x10537c, 64)) == 1069948);
  assert(unsigned(zero_extend(0x105380, 64)) == 1069952);
  assert(unsigned(zero_extend(0x105384, 64)) == 1069956);
  assert(unsigned(zero_extend(0x105388, 64)) == 1069960);
  assert(unsigned(zero_extend(0x10538c, 64)) == 1069964);
  assert(unsigned(zero_extend(0x105390, 64)) == 1069968);
  assert(unsigned(zero_extend(0x1053a0, 64)) == 1069984);
  assert(unsigned(zero_extend(0x1053a4, 64)) == 1069988);
  assert(unsigned(zero_extend(0x1053a8, 64)) == 1069992);
  assert(unsigned(zero_extend(0x1053ac, 64)) == 1069996);
  assert(unsigned(zero_extend(0x1053b0, 64)) == 1070000);
  assert(unsigned(zero_extend(0x1053b4, 64)) == 1070004);
  assert(unsigned(zero_extend(0x10544c, 64)) == 1070156);
  assert(unsigned(zero_extend(0x105450, 64)) == 1070160);
  assert(unsigned(zero_extend(0x105454, 64)) == 1070164);
  assert(unsigned(zero_extend(0x105458, 64)) == 1070168);
  assert(unsigned(zero_extend(0x10545c, 64)) == 1070172);
  assert(unsigned(zero_extend(0x105468, 64)) == 1070184);
  assert(unsigned(zero_extend(0x10546c, 64)) == 1070188);
  assert(unsigned(zero_extend(0x105470, 64)) == 1070192);
  assert(unsigned(zero_extend(0x105474, 64)) == 1070196);
  assert(unsigned(zero_extend(0x105478, 64)) == 1070200);
  assert(unsigned(zero_extend(0x10547c, 64)) == 1070204);
  assert(unsigned(zero_extend(0x105480, 64)) == 1070208);
  assert(unsigned(zero_extend(0x105484, 64)) == 1070212);
  assert(unsigned(zero_extend(0x105490, 64)) == 1070224);
  assert(unsigned(zero_extend(0x105494, 64)) == 1070228);
  assert(unsigned(zero_extend(0x105498, 64)) == 1070232);
  assert(unsigned(zero_extend(0x1054a0, 64)) == 1070240);
  assert(unsigned(zero_extend(0x1054a8, 64)) == 1070248);
  assert(unsigned(zero_extend(0x1054ac, 64)) == 1070252);
  assert(unsigned(zero_extend(0x1054b0, 64)) == 1070256);
  assert(unsigned(zero_extend(0x1054b4, 64)) == 1070260);
  assert(unsigned(zero_extend(0x1054b8, 64)) == 1070264);
  assert(unsigned(zero_extend(0x1054bc, 64)) == 1070268);
  assert(unsigned(zero_extend(0x1054c0, 64)) == 1070272);
  assert(unsigned(zero_extend(0x1054c4, 64)) == 1070276);
  assert(unsigned(zero_extend(0x1054c8, 64)) == 1070280);
  assert(unsigned(zero_extend(0x1054cc, 64)) == 1070284);
  assert(unsigned(zero_extend(0x1054d0, 64)) == 1070288);
  assert(unsigned(zero_extend(0x1054d4, 64)) == 1070292);
  assert(unsigned(zero_extend(0x1054d8, 64)) == 1070296);
  assert(unsigned(zero_extend(0x1054dc, 64)) == 1070300);
  assert(unsigned(zero_extend(0x1054e0, 64)) == 1070304);
  assert(unsigned(zero_extend(0x1054e4, 64)) == 1070308);
  assert(unsigned(zero_extend(0x1054e8, 64)) == 1070312);
  assert(unsigned(zero_extend(0x1054f0, 64)) == 1070320);
  assert(unsigned(zero_extend(0x1054f8, 64)) == 1070328);
  assert(unsigned(zero_extend(0x105500, 64)) == 1070336);
  assert(unsigned(zero_extend(0x105508, 64)) == 1070344);
  assert(unsigned(zero_extend(0x10550c, 64)) == 1070348);
  assert(unsigned(zero_extend(0x105510, 64)) == 1070352);
  assert(unsigned(zero_extend(0x105514, 64)) == 1070356);
  assert(unsigned(zero_extend(0x105518, 64)) == 1070360);
  assert(unsigned(zero_extend(0x10551c, 64)) == 1070364);
  assert(unsigned(zero_extend(0x105520, 64)) == 1070368);
  assert(unsigned(zero_extend(0x105524, 64)) == 1070372);
  assert(unsigned(zero_extend(0x105528, 64)) == 1070376);
  assert(unsigned(zero_extend(0x10552c, 64)) == 1070380);
  assert(unsigned(zero_extend(0x105530, 64)) == 1070384);
  assert(unsigned(zero_extend(0x105534, 64)) == 1070388);
  assert(unsigned(zero_extend(0x105538, 64)) == 1070392);
  assert(unsigned(zero_extend(0x10553c, 64)) == 1070396);
  assert(unsigned(zero_extend(0x105540, 64)) == 1070400);
  assert(unsigned(zero_extend(0x105544, 64)) == 1070404);
  assert(unsigned(zero_extend(0x105548, 64)) == 1070408);
  assert(unsigned(zero_extend(0x10554c, 64)) == 1070412);
  assert(unsigned(zero_extend(0x105550, 64)) == 1070416);
  assert(unsigned(zero_extend(0x105554, 64)) == 1070420);
  assert(unsigned(zero_extend(0x105558, 64)) == 1070424);
  assert(unsigned(zero_extend(0x105560, 64)) == 1070432);
  assert(unsigned(zero_extend(0x105568, 64)) == 1070440);
  assert(unsigned(zero_extend(0x105570, 64)) == 1070448);
  assert(unsigned(zero_extend(0x105574, 64)) == 1070452);
  assert(unsigned(zero_extend(0x105578, 64)) == 1070456);
  assert(unsigned(zero_extend(0x10557c, 64)) == 1070460);
  assert(unsigned(zero_extend(0x105580, 64)) == 1070464);
  assert(unsigned(zero_extend(0x105584, 64)) == 1070468);
  assert(unsigned(zero_extend(0x105588, 64)) == 1070472);
  assert(unsigned(zero_extend(0x10558c, 64)) == 1070476);
  assert(unsigned(zero_extend(0x105590, 64)) == 1070480);
  assert(unsigned(zero_extend(0x105594, 64)) == 1070484);
  assert(unsigned(zero_extend(0x105598, 64)) == 1070488);
  assert(unsigned(zero_extend(0x10559c, 64)) == 1070492);
  assert(unsigned(zero_extend(0x1055a0, 64)) == 1070496);
  assert(unsigned(zero_extend(0x1055a4, 64)) == 1070500);
  assert(unsigned(zero_extend(0x1055a8, 64)) == 1070504);
  assert(unsigned(zero_extend(0x1055ac, 64)) == 1070508);
  assert(unsigned(zero_extend(0x1055b0, 64)) == 1070512);
  assert(unsigned(zero_extend(0x1055b4, 64)) == 1070516);
  assert(unsigned(zero_extend(0x1055b8, 64)) == 1070520);
  assert(unsigned(zero_extend(0x1055bc, 64)) == 1070524);
  assert(unsigned(zero_extend(0x1055c0, 64)) == 1070528);
  assert(unsigned(zero_extend(0x1055c4, 64)) == 1070532);
  assert(unsigned(zero_extend(0x1055c8, 64)) == 1070536);
  assert(unsigned(zero_extend(0x1055cc, 64)) == 1070540);
  assert(unsigned(zero_extend(0x1055d0, 64)) == 1070544);
  assert(unsigned(zero_extend(0x1055dc, 64)) == 1070556);
  assert(unsigned(zero_extend(0x1055e0, 64)) == 1070560);
  assert(unsigned(zero_extend(0x1055e8, 64)) == 1070568);
  assert(unsigned(zero_extend(0x1055ec, 64)) == 1070572);
  assert(unsigned(zero_extend(0x1055f0, 64)) == 1070576);
  assert(unsigned(zero_extend(0x1055f4, 64)) == 1070580);
  assert(unsigned(zero_extend(0x1055f8, 64)) == 1070584);
  assert(unsigned(zero_extend(0x1055fc, 64)) == 1070588);
  assert(unsigned(zero_extend(0x105610, 64)) == 1070608);
  assert(unsigned(zero_extend(0x105614, 64)) == 1070612);
  assert(unsigned(zero_extend(0x105644, 64)) == 1070660);
  assert(unsigned(zero_extend(0x105648, 64)) == 1070664);
  assert(unsigned(zero_extend(0x10564c, 64)) == 1070668);
  assert(unsigned(zero_extend(0x10568c, 64)) == 1070732);
  assert(unsigned(zero_extend(0x105690, 64)) == 1070736);
  assert(unsigned(zero_extend(0x105694, 64)) == 1070740);
  assert(unsigned(zero_extend(0x105698, 64)) == 1070744);
  assert(unsigned(zero_extend(0x10569c, 64)) == 1070748);
  assert(unsigned(zero_extend(0x1056a0, 64)) == 1070752);
  assert(unsigned(zero_extend(0x1056a4, 64)) == 1070756);
  assert(unsigned(zero_extend(0x1056a8, 64)) == 1070760);
  assert(unsigned(zero_extend(0x1056ac, 64)) == 1070764);
  assert(unsigned(zero_extend(0x1056b0, 64)) == 1070768);
  assert(unsigned(zero_extend(0x1056b4, 64)) == 1070772);
  assert(unsigned(zero_extend(0x1056b8, 64)) == 1070776);
  assert(unsigned(zero_extend(0x1056bc, 64)) == 1070780);
  assert(unsigned(zero_extend(0x1056c0, 64)) == 1070784);
  assert(unsigned(zero_extend(0x1056c4, 64)) == 1070788);
  assert(unsigned(zero_extend(0x1056c8, 64)) == 1070792);
  assert(unsigned(zero_extend(0x1056cc, 64)) == 1070796);
  assert(unsigned(zero_extend(0x1056d0, 64)) == 1070800);
  assert(unsigned(zero_extend(0x1056d4, 64)) == 1070804);
  assert(unsigned(zero_extend(0x1056d8, 64)) == 1070808);
  assert(unsigned(zero_extend(0x1056dc, 64)) == 1070812);
  assert(unsigned(zero_extend(0x1056e0, 64)) == 1070816);
  assert(unsigned(zero_extend(0x1056e4, 64)) == 1070820);
  assert(unsigned(zero_extend(0x1056e8, 64)) == 1070824);
  assert(unsigned(zero_extend(0x1056ec, 64)) == 1070828);
  assert(unsigned(zero_extend(0x1056f0, 64)) == 1070832);
  assert(unsigned(zero_extend(0x1056f4, 64)) == 1070836);
  assert(unsigned(zero_extend(0x1056f8, 64)) == 1070840);
  assert(unsigned(zero_extend(0x1056fc, 64)) == 1070844);
  assert(unsigned(zero_extend(0x105700, 64)) == 1070848);
  assert(unsigned(zero_extend(0x105704, 64)) == 1070852);
  assert(unsigned(zero_extend(0x105708, 64)) == 1070856);
  assert(unsigned(zero_extend(0x10570c, 64)) == 1070860);
  assert(unsigned(zero_extend(0x105710, 64)) == 1070864);
  assert(unsigned(zero_extend(0x105714, 64)) == 1070868);
  assert(unsigned(zero_extend(0x105718, 64)) == 1070872);
  assert(unsigned(zero_extend(0x10571c, 64)) == 1070876);
  assert(unsigned(zero_extend(0x105720, 64)) == 1070880);
  assert(unsigned(zero_extend(0x105724, 64)) == 1070884);
  assert(unsigned(zero_extend(0x105728, 64)) == 1070888);
  assert(unsigned(zero_extend(0x10572c, 64)) == 1070892);
  assert(unsigned(zero_extend(0x105730, 64)) == 1070896);
  assert(unsigned(zero_extend(0x105734, 64)) == 1070900);
  assert(unsigned(zero_extend(0x105738, 64)) == 1070904);
  assert(unsigned(zero_extend(0x10573c, 64)) == 1070908);
  assert(unsigned(zero_extend(0x105740, 64)) == 1070912);
  assert(unsigned(zero_extend(0x105744, 64)) == 1070916);
  assert(unsigned(zero_extend(0x105748, 64)) == 1070920);
  assert(unsigned(zero_extend(0x10574c, 64)) == 1070924);
  assert(unsigned(zero_extend(0x105750, 64)) == 1070928);
  assert(unsigned(zero_extend(0x105754, 64)) == 1070932);
  assert(unsigned(zero_extend(0x105758, 64)) == 1070936);
  assert(unsigned(zero_extend(0x10575c, 64)) == 1070940);
  assert(unsigned(zero_extend(0x105760, 64)) == 1070944);
  assert(unsigned(zero_extend(0x105764, 64)) == 1070948);
  assert(unsigned(zero_extend(0x105768, 64)) == 1070952);
  assert(unsigned(zero_extend(0x10576c, 64)) == 1070956);
  assert(unsigned(zero_extend(0x105770, 64)) == 1070960);
  assert(unsigned(zero_extend(0x105774, 64)) == 1070964);
  assert(unsigned(zero_extend(0x105778, 64)) == 1070968);
  assert(unsigned(zero_extend(0x105780, 64)) == 1070976);
  assert(unsigned(zero_extend(0x1057a8, 64)) == 1071016);
  assert(unsigned(zero_extend(0x1057b0, 64)) == 1071024);
  assert(unsigned(zero_extend(0x1057b8, 64)) == 1071032);
  assert(unsigned(zero_extend(0x1057c0, 64)) == 1071040);
  assert(unsigned(zero_extend(0x1057c8, 64)) == 1071048);
  assert(unsigned(zero_extend(0x1057d0, 64)) == 1071056);
  assert(unsigned(zero_extend(0x1057d8, 64)) == 1071064);
  assert(unsigned(zero_extend(0x1057e0, 64)) == 1071072);
  assert(unsigned(zero_extend(0x1057e8, 64)) == 1071080);
  assert(unsigned(zero_extend(0x1057f0, 64)) == 1071088);
  assert(unsigned(zero_extend(0x1057f8, 64)) == 1071096);
  assert(unsigned(zero_extend(0x105800, 64)) == 1071104);
  assert(unsigned(zero_extend(0x105808, 64)) == 1071112);
  assert(unsigned(zero_extend(0x105810, 64)) == 1071120);
  assert(unsigned(zero_extend(0x105818, 64)) == 1071128);
  assert(unsigned(zero_extend(0x105820, 64)) == 1071136);
  assert(unsigned(zero_extend(0x105828, 64)) == 1071144);
  assert(unsigned(zero_extend(0x105830, 64)) == 1071152);
  assert(unsigned(zero_extend(0x105838, 64)) == 1071160);
  assert(unsigned(zero_extend(0x105840, 64)) == 1071168);
  assert(unsigned(zero_extend(0x105848, 64)) == 1071176);
  assert(unsigned(zero_extend(0x105850, 64)) == 1071184);
  assert(unsigned(zero_extend(0x105858, 64)) == 1071192);
  assert(unsigned(zero_extend(0x10585c, 64)) == 1071196);
  assert(unsigned(zero_extend(0x105860, 64)) == 1071200);
  assert(unsigned(zero_extend(0x105864, 64)) == 1071204);
  assert(unsigned(zero_extend(0x105868, 64)) == 1071208);
  assert(unsigned(zero_extend(0x10586c, 64)) == 1071212);
  assert(unsigned(zero_extend(0x105870, 64)) == 1071216);
  assert(unsigned(zero_extend(0x105874, 64)) == 1071220);
  assert(unsigned(zero_extend(0x105878, 64)) == 1071224);
  assert(unsigned(zero_extend(0x10587c, 64)) == 1071228);
  assert(unsigned(zero_extend(0x105880, 64)) == 1071232);
  assert(unsigned(zero_extend(0x105884, 64)) == 1071236);
  assert(unsigned(zero_extend(0x105888, 64)) == 1071240);
  assert(unsigned(zero_extend(0x10588c, 64)) == 1071244);
  assert(unsigned(zero_extend(0x105890, 64)) == 1071248);
  assert(unsigned(zero_extend(0x105894, 64)) == 1071252);
  assert(unsigned(zero_extend(0x105898, 64)) == 1071256);
  assert(unsigned(zero_extend(0x10589c, 64)) == 1071260);
  assert(unsigned(zero_extend(0x1058a0, 64)) == 1071264);
  assert(unsigned(zero_extend(0x1058a4, 64)) == 1071268);
  assert(unsigned(zero_extend(0x1058a8, 64)) == 1071272);
  assert(unsigned(zero_extend(0x10764c321, 64)) == 4419011361);
  assert(unsigned(zero_extend(0x108, 64)) == 264);
  assert(unsigned(zero_extend(0x10ec4, 64)) == 69316);
  assert(unsigned(zero_extend(0x10ec8, 64)) == 69320);
  assert(unsigned(zero_extend(0x10ecc, 64)) == 69324);
  assert(unsigned(zero_extend(0x10ed0, 64)) == 69328);
  assert(unsigned(zero_extend(0x10ed4, 64)) == 69332);
  assert(unsigned(zero_extend(0x10ed8, 64)) == 69336);
  assert(unsigned(zero_extend(0x10edc, 64)) == 69340);
  assert(unsigned(zero_extend(0x10ee0, 64)) == 69344);
  assert(unsigned(zero_extend(0x10ee4, 64)) == 69348);
  assert(unsigned(zero_extend(0x10ee8, 64)) == 69352);
  assert(unsigned(zero_extend(0x10eec, 64)) == 69356);
  assert(unsigned(zero_extend(0x10ef0, 64)) == 69360);
  assert(unsigned(zero_extend(0x10ef4, 64)) == 69364);
  assert(unsigned(zero_extend(0x10ef8, 64)) == 69368);
  assert(unsigned(zero_extend(0x10efc, 64)) == 69372);
  assert(unsigned(zero_extend(0x10f00, 64)) == 69376);
  assert(unsigned(zero_extend(0x10f04, 64)) == 69380);
  assert(unsigned(zero_extend(0x10f08, 64)) == 69384);
  assert(unsigned(zero_extend(0x10f0c, 64)) == 69388);
  assert(unsigned(zero_extend(0x10f10, 64)) == 69392);
  assert(unsigned(zero_extend(0x10f14, 64)) == 69396);
  assert(unsigned(zero_extend(0x10f18, 64)) == 69400);
  assert(unsigned(zero_extend(0x10f1c, 64)) == 69404);
  assert(unsigned(zero_extend(0x10f20, 64)) == 69408);
  assert(unsigned(zero_extend(0x10f24, 64)) == 69412);
  assert(unsigned(zero_extend(0x10f28, 64)) == 69416);
  assert(unsigned(zero_extend(0x10f2c, 64)) == 69420);
  assert(unsigned(zero_extend(0x10f30, 64)) == 69424);
  assert(unsigned(zero_extend(0x10f34, 64)) == 69428);
  assert(unsigned(zero_extend(0x10f38, 64)) == 69432);
  assert(unsigned(zero_extend(0x10f3c, 64)) == 69436);
  assert(unsigned(zero_extend(0x10f40, 64)) == 69440);
  assert(unsigned(zero_extend(0x10f44, 64)) == 69444);
  assert(unsigned(zero_extend(0x10f48, 64)) == 69448);
  assert(unsigned(zero_extend(0x10f4c, 64)) == 69452);
  assert(unsigned(zero_extend(0x10f50, 64)) == 69456);
  assert(unsigned(zero_extend(0x10f54, 64)) == 69460);
  assert(unsigned(zero_extend(0x10f58, 64)) == 69464);
  assert(unsigned(zero_extend(0x10f5c, 64)) == 69468);
  assert(unsigned(zero_extend(0x10f60, 64)) == 69472);
  assert(unsigned(zero_extend(0x10f64, 64)) == 69476);
  assert(unsigned(zero_extend(0x10f68, 64)) == 69480);
  assert(unsigned(zero_extend(0x10f6c, 64)) == 69484);
  assert(unsigned(zero_extend(0x11, 64)) == 17);
  assert(unsigned(zero_extend(0x110, 64)) == 272);
  assert(unsigned(zero_extend(0x11150, 64)) == 69968);
  assert(unsigned(zero_extend(0x11223344, 64)) == 287454020);
  assert(unsigned(zero_extend(0x1122334411223344, 64)) == 1234605615291183940);
  assert(unsigned(zero_extend(0x118, 64)) == 280);
  assert(unsigned(zero_extend(0x12, 64)) == 18);
  assert(unsigned(zero_extend(0x120, 64)) == 288);
  assert(unsigned(zero_extend(0x1200, 64)) == 4608);
  assert(unsigned(zero_extend(0x120005c, 64)) == 18874460);
  assert(unsigned(zero_extend(0x1200060, 64)) == 18874464);
  assert(unsigned(zero_extend(0x1200064, 64)) == 18874468);
  assert(unsigned(zero_extend(0x1220, 64)) == 4640);
  assert(unsigned(zero_extend(0x12200078, 64)) == 304087160);
  assert(unsigned(zero_extend(0x1220007c, 64)) == 304087164);
  assert(unsigned(zero_extend(0x12200080, 64)) == 304087168);
  assert(unsigned(zero_extend(0x1234, 64)) == 4660);
  assert(unsigned(zero_extend(0x12345678, 64)) == 305419896);
  assert(unsigned(zero_extend(0x123456789abcdef0, 64)) == 1311768467463790320);
  assert(unsigned(zero_extend(0x123456789abcdef1, 64)) == 1311768467463790321);
  assert(unsigned(zero_extend(0x123c, 64)) == 4668);
  assert(unsigned(zero_extend(0x12500000, 64)) == 307232768);
  assert(unsigned(zero_extend(0x12500004, 64)) == 307232772);
  assert(unsigned(zero_extend(0x12500008, 64)) == 307232776);
  assert(unsigned(zero_extend(0x12500010, 64)) == 307232784);
  assert(unsigned(zero_extend(0x12500014, 64)) == 307232788);
  assert(unsigned(zero_extend(0x12500018, 64)) == 307232792);
  assert(unsigned(zero_extend(0x12500020, 64)) == 307232800);
  assert(unsigned(zero_extend(0x12500024, 64)) == 307232804);
  assert(unsigned(zero_extend(0x12500028, 64)) == 307232808);
  assert(unsigned(zero_extend(0x12500030, 64)) == 307232816);
  assert(unsigned(zero_extend(0x12500034, 64)) == 307232820);
  assert(unsigned(zero_extend(0x12500038, 64)) == 307232824);
  assert(unsigned(zero_extend(0x12500040, 64)) == 307232832);
  assert(unsigned(zero_extend(0x12500044, 64)) == 307232836);
  assert(unsigned(zero_extend(0x12500048, 64)) == 307232840);
  assert(unsigned(zero_extend(0x1250004c, 64)) == 307232844);
  assert(unsigned(zero_extend(0x12500050, 64)) == 307232848);
  assert(unsigned(zero_extend(0x12500054, 64)) == 307232852);
  assert(unsigned(zero_extend(0x12500058, 64)) == 307232856);
  assert(unsigned(zero_extend(0x1250005c, 64)) == 307232860);
  assert(unsigned(zero_extend(0x12500060, 64)) == 307232864);
  assert(unsigned(zero_extend(0x12500064, 64)) == 307232868);
  assert(unsigned(zero_extend(0x12500068, 64)) == 307232872);
  assert(unsigned(zero_extend(0x1250006c, 64)) == 307232876);
  assert(unsigned(zero_extend(0x12500070, 64)) == 307232880);
  assert(unsigned(zero_extend(0x12500074, 64)) == 307232884);
  assert(unsigned(zero_extend(0x12500078, 64)) == 307232888);
  assert(unsigned(zero_extend(0x1250007c, 64)) == 307232892);
  assert(unsigned(zero_extend(0x12500080, 64)) == 307232896);
  assert(unsigned(zero_extend(0x12500084, 64)) == 307232900);
  assert(unsigned(zero_extend(0x12500088, 64)) == 307232904);
  assert(unsigned(zero_extend(0x1250008c, 64)) == 307232908);
  assert(unsigned(zero_extend(0x12500090, 64)) == 307232912);
  assert(unsigned(zero_extend(0x12500094, 64)) == 307232916);
  assert(unsigned(zero_extend(0x12500098, 64)) == 307232920);
  assert(unsigned(zero_extend(0x12570, 64)) == 75120);
  assert(unsigned(zero_extend(0x12574, 64)) == 75124);
  assert(unsigned(zero_extend(0x12578, 64)) == 75128);
  assert(unsigned(zero_extend(0x1257c, 64)) == 75132);
  assert(unsigned(zero_extend(0x12580, 64)) == 75136);
  assert(unsigned(zero_extend(0x12584, 64)) == 75140);
  assert(unsigned(zero_extend(0x12588, 64)) == 75144);
  assert(unsigned(zero_extend(0x1258c, 64)) == 75148);
  assert(unsigned(zero_extend(0x12590, 64)) == 75152);
  assert(unsigned(zero_extend(0x12594, 64)) == 75156);
  assert(unsigned(zero_extend(0x12598, 64)) == 75160);
  assert(unsigned(zero_extend(0x1259c, 64)) == 75164);
  assert(unsigned(zero_extend(0x125a0, 64)) == 75168);
  assert(unsigned(zero_extend(0x125a4, 64)) == 75172);
  assert(unsigned(zero_extend(0x125a8, 64)) == 75176);
  assert(unsigned(zero_extend(0x125ac, 64)) == 75180);
  assert(unsigned(zero_extend(0x125b0, 64)) == 75184);
  assert(unsigned(zero_extend(0x125b4, 64)) == 75188);
  assert(unsigned(zero_extend(0x125b8, 64)) == 75192);
  assert(unsigned(zero_extend(0x125bc, 64)) == 75196);
  assert(unsigned(zero_extend(0x125c0, 64)) == 75200);
  assert(unsigned(zero_extend(0x125c4, 64)) == 75204);
  assert(unsigned(zero_extend(0x125c8, 64)) == 75208);
  assert(unsigned(zero_extend(0x125cc, 64)) == 75212);
  assert(unsigned(zero_extend(0x125d0, 64)) == 75216);
  assert(unsigned(zero_extend(0x125d4, 64)) == 75220);
  assert(unsigned(zero_extend(0x125d8, 64)) == 75224);
  assert(unsigned(zero_extend(0x125dc, 64)) == 75228);
  assert(unsigned(zero_extend(0x125e0, 64)) == 75232);
  assert(unsigned(zero_extend(0x125e4, 64)) == 75236);
  assert(unsigned(zero_extend(0x125e8, 64)) == 75240);
  assert(unsigned(zero_extend(0x125ec, 64)) == 75244);
  assert(unsigned(zero_extend(0x125f0, 64)) == 75248);
  assert(unsigned(zero_extend(0x125f4, 64)) == 75252);
  assert(unsigned(zero_extend(0x125f8, 64)) == 75256);
  assert(unsigned(zero_extend(0x125fc, 64)) == 75260);
  assert(unsigned(zero_extend(0x12600, 64)) == 75264);
  assert(unsigned(zero_extend(0x12600000, 64)) == 308281344);
  assert(unsigned(zero_extend(0x12600004, 64)) == 308281348);
  assert(unsigned(zero_extend(0x12600008, 64)) == 308281352);
  assert(unsigned(zero_extend(0x12600010, 64)) == 308281360);
  assert(unsigned(zero_extend(0x12600014, 64)) == 308281364);
  assert(unsigned(zero_extend(0x12600018, 64)) == 308281368);
  assert(unsigned(zero_extend(0x12600020, 64)) == 308281376);
  assert(unsigned(zero_extend(0x12600024, 64)) == 308281380);
  assert(unsigned(zero_extend(0x12600028, 64)) == 308281384);
  assert(unsigned(zero_extend(0x12600030, 64)) == 308281392);
  assert(unsigned(zero_extend(0x12600034, 64)) == 308281396);
  assert(unsigned(zero_extend(0x12600038, 64)) == 308281400);
  assert(unsigned(zero_extend(0x12600040, 64)) == 308281408);
  assert(unsigned(zero_extend(0x12600044, 64)) == 308281412);
  assert(unsigned(zero_extend(0x12600048, 64)) == 308281416);
  assert(unsigned(zero_extend(0x12600050, 64)) == 308281424);
  assert(unsigned(zero_extend(0x12600054, 64)) == 308281428);
  assert(unsigned(zero_extend(0x12600058, 64)) == 308281432);
  assert(unsigned(zero_extend(0x1260005c, 64)) == 308281436);
  assert(unsigned(zero_extend(0x12600060, 64)) == 308281440);
  assert(unsigned(zero_extend(0x12600064, 64)) == 308281444);
  assert(unsigned(zero_extend(0x12600068, 64)) == 308281448);
  assert(unsigned(zero_extend(0x1260006c, 64)) == 308281452);
  assert(unsigned(zero_extend(0x12600070, 64)) == 308281456);
  assert(unsigned(zero_extend(0x12600074, 64)) == 308281460);
  assert(unsigned(zero_extend(0x12600078, 64)) == 308281464);
  assert(unsigned(zero_extend(0x1260007c, 64)) == 308281468);
  assert(unsigned(zero_extend(0x12600080, 64)) == 308281472);
  assert(unsigned(zero_extend(0x12600084, 64)) == 308281476);
  assert(unsigned(zero_extend(0x12600088, 64)) == 308281480);
  assert(unsigned(zero_extend(0x1260008c, 64)) == 308281484);
  assert(unsigned(zero_extend(0x12600090, 64)) == 308281488);
  assert(unsigned(zero_extend(0x12600094, 64)) == 308281492);
  assert(unsigned(zero_extend(0x12600098, 64)) == 308281496);
  assert(unsigned(zero_extend(0x1260009c, 64)) == 308281500);
  assert(unsigned(zero_extend(0x126000a0, 64)) == 308281504);
  assert(unsigned(zero_extend(0x126000a4, 64)) == 308281508);
  assert(unsigned(zero_extend(0x126000a8, 64)) == 308281512);
  assert(unsigned(zero_extend(0x12604, 64)) == 75268);
  assert(unsigned(zero_extend(0x12608, 64)) == 75272);
  assert(unsigned(zero_extend(0x1260c, 64)) == 75276);
  assert(unsigned(zero_extend(0x12610, 64)) == 75280);
  assert(unsigned(zero_extend(0x12620, 64)) == 75296);
  assert(unsigned(zero_extend(0x12860, 64)) == 75872);
  assert(unsigned(zero_extend(0x13, 64)) == 19);
  assert(unsigned(zero_extend(0x13000000, 64)) == 318767104);
  assert(unsigned(zero_extend(0x1300368, 64)) == 19923816);
  assert(unsigned(zero_extend(0x130036c, 64)) == 19923820);
  assert(unsigned(zero_extend(0x1300370, 64)) == 19923824);
  assert(unsigned(zero_extend(0x13004b8, 64)) == 19924152);
  assert(unsigned(zero_extend(0x13004bc, 64)) == 19924156);
  assert(unsigned(zero_extend(0x13004c0, 64)) == 19924160);
  assert(unsigned(zero_extend(0x1300608, 64)) == 19924488);
  assert(unsigned(zero_extend(0x130060c, 64)) == 19924492);
  assert(unsigned(zero_extend(0x1300610, 64)) == 19924496);
  assert(unsigned(zero_extend(0x1300910, 64)) == 19925264);
  assert(unsigned(zero_extend(0x1300914, 64)) == 19925268);
  assert(unsigned(zero_extend(0x1300918, 64)) == 19925272);
  assert(unsigned(zero_extend(0x13f8754, 64)) == 20940628);
  assert(unsigned(zero_extend(0x13f8758, 64)) == 20940632);
  assert(unsigned(zero_extend(0x13f875c, 64)) == 20940636);
  assert(unsigned(zero_extend(0x13f88a4, 64)) == 20940964);
  assert(unsigned(zero_extend(0x13f88a8, 64)) == 20940968);
  assert(unsigned(zero_extend(0x13f88ac, 64)) == 20940972);
  assert(unsigned(zero_extend(0x14, 64)) == 20);
  assert(unsigned(zero_extend(0x140, 64)) == 320);
  assert(unsigned(zero_extend(0x1400000, 64)) == 20971520);
  assert(unsigned(zero_extend(0x1400004, 64)) == 20971524);
  assert(unsigned(zero_extend(0x1400005, 64)) == 20971525);
  assert(unsigned(zero_extend(0x1400006, 64)) == 20971526);
  assert(unsigned(zero_extend(0x1400007, 64)) == 20971527);
  assert(unsigned(zero_extend(0x1400008, 64)) == 20971528);
  assert(unsigned(zero_extend(0x1400009, 64)) == 20971529);
  assert(unsigned(zero_extend(0x140000a, 64)) == 20971530);
  assert(unsigned(zero_extend(0x140000b, 64)) == 20971531);
  assert(unsigned(zero_extend(0x140000c, 64)) == 20971532);
  assert(unsigned(zero_extend(0x140000d, 64)) == 20971533);
  assert(unsigned(zero_extend(0x140000e, 64)) == 20971534);
  assert(unsigned(zero_extend(0x140000f, 64)) == 20971535);
  assert(unsigned(zero_extend(0x1400010, 64)) == 20971536);
  assert(unsigned(zero_extend(0x1400011, 64)) == 20971537);
  assert(unsigned(zero_extend(0x1400014, 64)) == 20971540);
  assert(unsigned(zero_extend(0x1400018, 64)) == 20971544);
  assert(unsigned(zero_extend(0x140001c, 64)) == 20971548);
  assert(unsigned(zero_extend(0x1400020, 64)) == 20971552);
  assert(unsigned(zero_extend(0x1400024, 64)) == 20971556);
  assert(unsigned(zero_extend(0x1400028, 64)) == 20971560);
  assert(unsigned(zero_extend(0x140002c, 64)) == 20971564);
  assert(unsigned(zero_extend(0x1400030, 64)) == 20971568);
  assert(unsigned(zero_extend(0x1400038, 64)) == 20971576);
  assert(unsigned(zero_extend(0x140003c, 64)) == 20971580);
  assert(unsigned(zero_extend(0x1400044, 64)) == 20971588);
  assert(unsigned(zero_extend(0x1400048, 64)) == 20971592);
  assert(unsigned(zero_extend(0x140004c, 64)) == 20971596);
  assert(unsigned(zero_extend(0x1400050, 64)) == 20971600);
  assert(unsigned(zero_extend(0x1400054, 64)) == 20971604);
  assert(unsigned(zero_extend(0x1400058, 64)) == 20971608);
  assert(unsigned(zero_extend(0x140005c, 64)) == 20971612);
  assert(unsigned(zero_extend(0x1400060, 64)) == 20971616);
  assert(unsigned(zero_extend(0x1400064, 64)) == 20971620);
  assert(unsigned(zero_extend(0x1400068, 64)) == 20971624);
  assert(unsigned(zero_extend(0x1400070, 64)) == 20971632);
  assert(unsigned(zero_extend(0x1400074, 64)) == 20971636);
  assert(unsigned(zero_extend(0x1400080, 64)) == 20971648);
  assert(unsigned(zero_extend(0x1400084, 64)) == 20971652);
  assert(unsigned(zero_extend(0x1400088, 64)) == 20971656);
  assert(unsigned(zero_extend(0x140008c, 64)) == 20971660);
  assert(unsigned(zero_extend(0x1400090, 64)) == 20971664);
  assert(unsigned(zero_extend(0x1400094, 64)) == 20971668);
  assert(unsigned(zero_extend(0x1400098, 64)) == 20971672);
  assert(unsigned(zero_extend(0x140009c, 64)) == 20971676);
  assert(unsigned(zero_extend(0x14000a0, 64)) == 20971680);
  assert(unsigned(zero_extend(0x14000a4, 64)) == 20971684);
  assert(unsigned(zero_extend(0x14000a8, 64)) == 20971688);
  assert(unsigned(zero_extend(0x14000ac, 64)) == 20971692);
  assert(unsigned(zero_extend(0x14000b0, 64)) == 20971696);
  assert(unsigned(zero_extend(0x14000b4, 64)) == 20971700);
  assert(unsigned(zero_extend(0x14000b8, 64)) == 20971704);
  assert(unsigned(zero_extend(0x14000bc, 64)) == 20971708);
  assert(unsigned(zero_extend(0x14000c0, 64)) == 20971712);
  assert(unsigned(zero_extend(0x14000c4, 64)) == 20971716);
  assert(unsigned(zero_extend(0x14000c8, 64)) == 20971720);
  assert(unsigned(zero_extend(0x14000cc, 64)) == 20971724);
  assert(unsigned(zero_extend(0x14000d0, 64)) == 20971728);
  assert(unsigned(zero_extend(0x14000d4, 64)) == 20971732);
  assert(unsigned(zero_extend(0x14000d8, 64)) == 20971736);
  assert(unsigned(zero_extend(0x14000dc, 64)) == 20971740);
  assert(unsigned(zero_extend(0x14000e0, 64)) == 20971744);
  assert(unsigned(zero_extend(0x14000e4, 64)) == 20971748);
  assert(unsigned(zero_extend(0x14000e8, 64)) == 20971752);
  assert(unsigned(zero_extend(0x14000ec, 64)) == 20971756);
  assert(unsigned(zero_extend(0x14000f0, 64)) == 20971760);
  assert(unsigned(zero_extend(0x14000f4, 64)) == 20971764);
  assert(unsigned(zero_extend(0x14000f8, 64)) == 20971768);
  assert(unsigned(zero_extend(0x1400100, 64)) == 20971776);
  assert(unsigned(zero_extend(0x1400104, 64)) == 20971780);
  assert(unsigned(zero_extend(0x1400108, 64)) == 20971784);
  assert(unsigned(zero_extend(0x140010c, 64)) == 20971788);
  assert(unsigned(zero_extend(0x1400110, 64)) == 20971792);
  assert(unsigned(zero_extend(0x1400114, 64)) == 20971796);
  assert(unsigned(zero_extend(0x1400118, 64)) == 20971800);
  assert(unsigned(zero_extend(0x140011c, 64)) == 20971804);
  assert(unsigned(zero_extend(0x1400120, 64)) == 20971808);
  assert(unsigned(zero_extend(0x1400124, 64)) == 20971812);
  assert(unsigned(zero_extend(0x1400128, 64)) == 20971816);
  assert(unsigned(zero_extend(0x140012c, 64)) == 20971820);
  assert(unsigned(zero_extend(0x1400130, 64)) == 20971824);
  assert(unsigned(zero_extend(0x1400134, 64)) == 20971828);
  assert(unsigned(zero_extend(0x1400138, 64)) == 20971832);
  assert(unsigned(zero_extend(0x140013c, 64)) == 20971836);
  assert(unsigned(zero_extend(0x1400140, 64)) == 20971840);
  assert(unsigned(zero_extend(0x1400148, 64)) == 20971848);
  assert(unsigned(zero_extend(0x140014c, 64)) == 20971852);
  assert(unsigned(zero_extend(0x1400154, 64)) == 20971860);
  assert(unsigned(zero_extend(0x1400158, 64)) == 20971864);
  assert(unsigned(zero_extend(0x140015c, 64)) == 20971868);
  assert(unsigned(zero_extend(0x1400160, 64)) == 20971872);
  assert(unsigned(zero_extend(0x1400164, 64)) == 20971876);
  assert(unsigned(zero_extend(0x1400168, 64)) == 20971880);
  assert(unsigned(zero_extend(0x140016c, 64)) == 20971884);
  assert(unsigned(zero_extend(0x1400170, 64)) == 20971888);
  assert(unsigned(zero_extend(0x1400174, 64)) == 20971892);
  assert(unsigned(zero_extend(0x1400178, 64)) == 20971896);
  assert(unsigned(zero_extend(0x140017c, 64)) == 20971900);
  assert(unsigned(zero_extend(0x1400180, 64)) == 20971904);
  assert(unsigned(zero_extend(0x1400184, 64)) == 20971908);
  assert(unsigned(zero_extend(0x1400188, 64)) == 20971912);
  assert(unsigned(zero_extend(0x1400190, 64)) == 20971920);
  assert(unsigned(zero_extend(0x1400194, 64)) == 20971924);
  assert(unsigned(zero_extend(0x1400198, 64)) == 20971928);
  assert(unsigned(zero_extend(0x140019c, 64)) == 20971932);
  assert(unsigned(zero_extend(0x14001a0, 64)) == 20971936);
  assert(unsigned(zero_extend(0x14001a4, 64)) == 20971940);
  assert(unsigned(zero_extend(0x14001a8, 64)) == 20971944);
  assert(unsigned(zero_extend(0x14001ac, 64)) == 20971948);
  assert(unsigned(zero_extend(0x14001b0, 64)) == 20971952);
  assert(unsigned(zero_extend(0x14001b4, 64)) == 20971956);
  assert(unsigned(zero_extend(0x14001b8, 64)) == 20971960);
  assert(unsigned(zero_extend(0x14001bc, 64)) == 20971964);
  assert(unsigned(zero_extend(0x14001c0, 64)) == 20971968);
  assert(unsigned(zero_extend(0x14001c4, 64)) == 20971972);
  assert(unsigned(zero_extend(0x14001c8, 64)) == 20971976);
  assert(unsigned(zero_extend(0x14001cc, 64)) == 20971980);
  assert(unsigned(zero_extend(0x14001d0, 64)) == 20971984);
  assert(unsigned(zero_extend(0x14001d8, 64)) == 20971992);
  assert(unsigned(zero_extend(0x14001dc, 64)) == 20971996);
  assert(unsigned(zero_extend(0x14001e4, 64)) == 20972004);
  assert(unsigned(zero_extend(0x14001e8, 64)) == 20972008);
  assert(unsigned(zero_extend(0x14001ec, 64)) == 20972012);
  assert(unsigned(zero_extend(0x14001f0, 64)) == 20972016);
  assert(unsigned(zero_extend(0x14001f4, 64)) == 20972020);
  assert(unsigned(zero_extend(0x14001f8, 64)) == 20972024);
  assert(unsigned(zero_extend(0x14001fc, 64)) == 20972028);
  assert(unsigned(zero_extend(0x1400200, 64)) == 20972032);
  assert(unsigned(zero_extend(0x1400204, 64)) == 20972036);
  assert(unsigned(zero_extend(0x1400208, 64)) == 20972040);
  assert(unsigned(zero_extend(0x140020c, 64)) == 20972044);
  assert(unsigned(zero_extend(0x1400210, 64)) == 20972048);
  assert(unsigned(zero_extend(0x1400214, 64)) == 20972052);
  assert(unsigned(zero_extend(0x140021c, 64)) == 20972060);
  assert(unsigned(zero_extend(0x1400220, 64)) == 20972064);
  assert(unsigned(zero_extend(0x140022c, 64)) == 20972076);
  assert(unsigned(zero_extend(0x1400230, 64)) == 20972080);
  assert(unsigned(zero_extend(0x1400234, 64)) == 20972084);
  assert(unsigned(zero_extend(0x1400238, 64)) == 20972088);
  assert(unsigned(zero_extend(0x140023c, 64)) == 20972092);
  assert(unsigned(zero_extend(0x1400240, 64)) == 20972096);
  assert(unsigned(zero_extend(0x1400244, 64)) == 20972100);
  assert(unsigned(zero_extend(0x1400248, 64)) == 20972104);
  assert(unsigned(zero_extend(0x140024c, 64)) == 20972108);
  assert(unsigned(zero_extend(0x1400250, 64)) == 20972112);
  assert(unsigned(zero_extend(0x1400254, 64)) == 20972116);
  assert(unsigned(zero_extend(0x1400258, 64)) == 20972120);
  assert(unsigned(zero_extend(0x140025c, 64)) == 20972124);
  assert(unsigned(zero_extend(0x1400260, 64)) == 20972128);
  assert(unsigned(zero_extend(0x1400264, 64)) == 20972132);
  assert(unsigned(zero_extend(0x1400268, 64)) == 20972136);
  assert(unsigned(zero_extend(0x140026c, 64)) == 20972140);
  assert(unsigned(zero_extend(0x1400270, 64)) == 20972144);
  assert(unsigned(zero_extend(0x1400274, 64)) == 20972148);
  assert(unsigned(zero_extend(0x1400278, 64)) == 20972152);
  assert(unsigned(zero_extend(0x140027c, 64)) == 20972156);
  assert(unsigned(zero_extend(0x1400280, 64)) == 20972160);
  assert(unsigned(zero_extend(0x1400284, 64)) == 20972164);
  assert(unsigned(zero_extend(0x1400288, 64)) == 20972168);
  assert(unsigned(zero_extend(0x140028c, 64)) == 20972172);
  assert(unsigned(zero_extend(0x1400290, 64)) == 20972176);
  assert(unsigned(zero_extend(0x1400294, 64)) == 20972180);
  assert(unsigned(zero_extend(0x1400298, 64)) == 20972184);
  assert(unsigned(zero_extend(0x140029c, 64)) == 20972188);
  assert(unsigned(zero_extend(0x14002a0, 64)) == 20972192);
  assert(unsigned(zero_extend(0x14002a4, 64)) == 20972196);
  assert(unsigned(zero_extend(0x14002a8, 64)) == 20972200);
  assert(unsigned(zero_extend(0x14002ac, 64)) == 20972204);
  assert(unsigned(zero_extend(0x14002b0, 64)) == 20972208);
  assert(unsigned(zero_extend(0x14002b4, 64)) == 20972212);
  assert(unsigned(zero_extend(0x14002b8, 64)) == 20972216);
  assert(unsigned(zero_extend(0x14002bc, 64)) == 20972220);
  assert(unsigned(zero_extend(0x14002c0, 64)) == 20972224);
  assert(unsigned(zero_extend(0x14002c4, 64)) == 20972228);
  assert(unsigned(zero_extend(0x14002c8, 64)) == 20972232);
  assert(unsigned(zero_extend(0x14002cc, 64)) == 20972236);
  assert(unsigned(zero_extend(0x14002d0, 64)) == 20972240);
  assert(unsigned(zero_extend(0x14002d4, 64)) == 20972244);
  assert(unsigned(zero_extend(0x14002d8, 64)) == 20972248);
  assert(unsigned(zero_extend(0x14002dc, 64)) == 20972252);
  assert(unsigned(zero_extend(0x14002e0, 64)) == 20972256);
  assert(unsigned(zero_extend(0x14002e4, 64)) == 20972260);
  assert(unsigned(zero_extend(0x14002e8, 64)) == 20972264);
  assert(unsigned(zero_extend(0x14002ec, 64)) == 20972268);
  assert(unsigned(zero_extend(0x14002f0, 64)) == 20972272);
  assert(unsigned(zero_extend(0x14002f4, 64)) == 20972276);
  assert(unsigned(zero_extend(0x14002f8, 64)) == 20972280);
  assert(unsigned(zero_extend(0x14002fc, 64)) == 20972284);
  assert(unsigned(zero_extend(0x1400300, 64)) == 20972288);
  assert(unsigned(zero_extend(0x1400304, 64)) == 20972292);
  assert(unsigned(zero_extend(0x1400308, 64)) == 20972296);
  assert(unsigned(zero_extend(0x140030c, 64)) == 20972300);
  assert(unsigned(zero_extend(0x1400310, 64)) == 20972304);
  assert(unsigned(zero_extend(0x1400314, 64)) == 20972308);
  assert(unsigned(zero_extend(0x1400318, 64)) == 20972312);
  assert(unsigned(zero_extend(0x140031c, 64)) == 20972316);
  assert(unsigned(zero_extend(0x1400320, 64)) == 20972320);
  assert(unsigned(zero_extend(0x1400324, 64)) == 20972324);
  assert(unsigned(zero_extend(0x1400328, 64)) == 20972328);
  assert(unsigned(zero_extend(0x140032c, 64)) == 20972332);
  assert(unsigned(zero_extend(0x1400330, 64)) == 20972336);
  assert(unsigned(zero_extend(0x1400334, 64)) == 20972340);
  assert(unsigned(zero_extend(0x1400338, 64)) == 20972344);
  assert(unsigned(zero_extend(0x140033c, 64)) == 20972348);
  assert(unsigned(zero_extend(0x1400340, 64)) == 20972352);
  assert(unsigned(zero_extend(0x1400344, 64)) == 20972356);
  assert(unsigned(zero_extend(0x1400348, 64)) == 20972360);
  assert(unsigned(zero_extend(0x140034c, 64)) == 20972364);
  assert(unsigned(zero_extend(0x1400350, 64)) == 20972368);
  assert(unsigned(zero_extend(0x1400354, 64)) == 20972372);
  assert(unsigned(zero_extend(0x1400358, 64)) == 20972376);
  assert(unsigned(zero_extend(0x140035c, 64)) == 20972380);
  assert(unsigned(zero_extend(0x1400360, 64)) == 20972384);
  assert(unsigned(zero_extend(0x1400364, 64)) == 20972388);
  assert(unsigned(zero_extend(0x1400368, 64)) == 20972392);
  assert(unsigned(zero_extend(0x140036c, 64)) == 20972396);
  assert(unsigned(zero_extend(0x1400370, 64)) == 20972400);
  assert(unsigned(zero_extend(0x1400374, 64)) == 20972404);
  assert(unsigned(zero_extend(0x1400378, 64)) == 20972408);
  assert(unsigned(zero_extend(0x140037c, 64)) == 20972412);
  assert(unsigned(zero_extend(0x1400380, 64)) == 20972416);
  assert(unsigned(zero_extend(0x1400384, 64)) == 20972420);
  assert(unsigned(zero_extend(0x1400388, 64)) == 20972424);
  assert(unsigned(zero_extend(0x140038c, 64)) == 20972428);
  assert(unsigned(zero_extend(0x1400390, 64)) == 20972432);
  assert(unsigned(zero_extend(0x1400394, 64)) == 20972436);
  assert(unsigned(zero_extend(0x1400398, 64)) == 20972440);
  assert(unsigned(zero_extend(0x140039c, 64)) == 20972444);
  assert(unsigned(zero_extend(0x14003a0, 64)) == 20972448);
  assert(unsigned(zero_extend(0x14003a4, 64)) == 20972452);
  assert(unsigned(zero_extend(0x14003a8, 64)) == 20972456);
  assert(unsigned(zero_extend(0x14003ac, 64)) == 20972460);
  assert(unsigned(zero_extend(0x14003b0, 64)) == 20972464);
  assert(unsigned(zero_extend(0x14003b8, 64)) == 20972472);
  assert(unsigned(zero_extend(0x14003bc, 64)) == 20972476);
  assert(unsigned(zero_extend(0x14003c4, 64)) == 20972484);
  assert(unsigned(zero_extend(0x14003c8, 64)) == 20972488);
  assert(unsigned(zero_extend(0x14003cc, 64)) == 20972492);
  assert(unsigned(zero_extend(0x14003d0, 64)) == 20972496);
  assert(unsigned(zero_extend(0x14003d4, 64)) == 20972500);
  assert(unsigned(zero_extend(0x14003d8, 64)) == 20972504);
  assert(unsigned(zero_extend(0x14003dc, 64)) == 20972508);
  assert(unsigned(zero_extend(0x14003e0, 64)) == 20972512);
  assert(unsigned(zero_extend(0x14003e4, 64)) == 20972516);
  assert(unsigned(zero_extend(0x14003e8, 64)) == 20972520);
  assert(unsigned(zero_extend(0x14003ec, 64)) == 20972524);
  assert(unsigned(zero_extend(0x14003f4, 64)) == 20972532);
  assert(unsigned(zero_extend(0x14003f8, 64)) == 20972536);
  assert(unsigned(zero_extend(0x1400404, 64)) == 20972548);
  assert(unsigned(zero_extend(0x1400408, 64)) == 20972552);
  assert(unsigned(zero_extend(0x140040c, 64)) == 20972556);
  assert(unsigned(zero_extend(0x1400410, 64)) == 20972560);
  assert(unsigned(zero_extend(0x1400414, 64)) == 20972564);
  assert(unsigned(zero_extend(0x1400418, 64)) == 20972568);
  assert(unsigned(zero_extend(0x140041c, 64)) == 20972572);
  assert(unsigned(zero_extend(0x1400420, 64)) == 20972576);
  assert(unsigned(zero_extend(0x1400424, 64)) == 20972580);
  assert(unsigned(zero_extend(0x1400428, 64)) == 20972584);
  assert(unsigned(zero_extend(0x140042c, 64)) == 20972588);
  assert(unsigned(zero_extend(0x1400430, 64)) == 20972592);
  assert(unsigned(zero_extend(0x1400434, 64)) == 20972596);
  assert(unsigned(zero_extend(0x1400438, 64)) == 20972600);
  assert(unsigned(zero_extend(0x140043c, 64)) == 20972604);
  assert(unsigned(zero_extend(0x1400440, 64)) == 20972608);
  assert(unsigned(zero_extend(0x1400444, 64)) == 20972612);
  assert(unsigned(zero_extend(0x1400448, 64)) == 20972616);
  assert(unsigned(zero_extend(0x140044c, 64)) == 20972620);
  assert(unsigned(zero_extend(0x1400450, 64)) == 20972624);
  assert(unsigned(zero_extend(0x1400454, 64)) == 20972628);
  assert(unsigned(zero_extend(0x1400458, 64)) == 20972632);
  assert(unsigned(zero_extend(0x140045c, 64)) == 20972636);
  assert(unsigned(zero_extend(0x1400460, 64)) == 20972640);
  assert(unsigned(zero_extend(0x1400464, 64)) == 20972644);
  assert(unsigned(zero_extend(0x1400468, 64)) == 20972648);
  assert(unsigned(zero_extend(0x140046c, 64)) == 20972652);
  assert(unsigned(zero_extend(0x1400470, 64)) == 20972656);
  assert(unsigned(zero_extend(0x1400474, 64)) == 20972660);
  assert(unsigned(zero_extend(0x1400478, 64)) == 20972664);
  assert(unsigned(zero_extend(0x140047c, 64)) == 20972668);
  assert(unsigned(zero_extend(0x1400480, 64)) == 20972672);
  assert(unsigned(zero_extend(0x1400484, 64)) == 20972676);
  assert(unsigned(zero_extend(0x1400488, 64)) == 20972680);
  assert(unsigned(zero_extend(0x140048c, 64)) == 20972684);
  assert(unsigned(zero_extend(0x1400490, 64)) == 20972688);
  assert(unsigned(zero_extend(0x1400494, 64)) == 20972692);
  assert(unsigned(zero_extend(0x1400498, 64)) == 20972696);
  assert(unsigned(zero_extend(0x140049c, 64)) == 20972700);
  assert(unsigned(zero_extend(0x14004a0, 64)) == 20972704);
  assert(unsigned(zero_extend(0x14004a4, 64)) == 20972708);
  assert(unsigned(zero_extend(0x14004a8, 64)) == 20972712);
  assert(unsigned(zero_extend(0x14004ac, 64)) == 20972716);
  assert(unsigned(zero_extend(0x14004b0, 64)) == 20972720);
  assert(unsigned(zero_extend(0x14004b4, 64)) == 20972724);
  assert(unsigned(zero_extend(0x14004b8, 64)) == 20972728);
  assert(unsigned(zero_extend(0x14004bc, 64)) == 20972732);
  assert(unsigned(zero_extend(0x14004c0, 64)) == 20972736);
  assert(unsigned(zero_extend(0x14004c4, 64)) == 20972740);
  assert(unsigned(zero_extend(0x14004c8, 64)) == 20972744);
  assert(unsigned(zero_extend(0x14004cc, 64)) == 20972748);
  assert(unsigned(zero_extend(0x14004d0, 64)) == 20972752);
  assert(unsigned(zero_extend(0x14004d4, 64)) == 20972756);
  assert(unsigned(zero_extend(0x14004d8, 64)) == 20972760);
  assert(unsigned(zero_extend(0x14004dc, 64)) == 20972764);
  assert(unsigned(zero_extend(0x14004e0, 64)) == 20972768);
  assert(unsigned(zero_extend(0x14004e4, 64)) == 20972772);
  assert(unsigned(zero_extend(0x14004e8, 64)) == 20972776);
  assert(unsigned(zero_extend(0x14004ec, 64)) == 20972780);
  assert(unsigned(zero_extend(0x14004f0, 64)) == 20972784);
  assert(unsigned(zero_extend(0x14004f4, 64)) == 20972788);
  assert(unsigned(zero_extend(0x14004f8, 64)) == 20972792);
  assert(unsigned(zero_extend(0x14004fc, 64)) == 20972796);
  assert(unsigned(zero_extend(0x1400500, 64)) == 20972800);
  assert(unsigned(zero_extend(0x1400508, 64)) == 20972808);
  assert(unsigned(zero_extend(0x140050c, 64)) == 20972812);
  assert(unsigned(zero_extend(0x1400514, 64)) == 20972820);
  assert(unsigned(zero_extend(0x1400518, 64)) == 20972824);
  assert(unsigned(zero_extend(0x140051c, 64)) == 20972828);
  assert(unsigned(zero_extend(0x1400520, 64)) == 20972832);
  assert(unsigned(zero_extend(0x1400524, 64)) == 20972836);
  assert(unsigned(zero_extend(0x1400528, 64)) == 20972840);
  assert(unsigned(zero_extend(0x140052c, 64)) == 20972844);
  assert(unsigned(zero_extend(0x1400530, 64)) == 20972848);
  assert(unsigned(zero_extend(0x1400534, 64)) == 20972852);
  assert(unsigned(zero_extend(0x1400538, 64)) == 20972856);
  assert(unsigned(zero_extend(0x140053c, 64)) == 20972860);
  assert(unsigned(zero_extend(0x1400544, 64)) == 20972868);
  assert(unsigned(zero_extend(0x1400548, 64)) == 20972872);
  assert(unsigned(zero_extend(0x1400554, 64)) == 20972884);
  assert(unsigned(zero_extend(0x1400558, 64)) == 20972888);
  assert(unsigned(zero_extend(0x140055c, 64)) == 20972892);
  assert(unsigned(zero_extend(0x1400560, 64)) == 20972896);
  assert(unsigned(zero_extend(0x1400564, 64)) == 20972900);
  assert(unsigned(zero_extend(0x1400568, 64)) == 20972904);
  assert(unsigned(zero_extend(0x140056c, 64)) == 20972908);
  assert(unsigned(zero_extend(0x1400570, 64)) == 20972912);
  assert(unsigned(zero_extend(0x1400574, 64)) == 20972916);
  assert(unsigned(zero_extend(0x1400578, 64)) == 20972920);
  assert(unsigned(zero_extend(0x140057c, 64)) == 20972924);
  assert(unsigned(zero_extend(0x1400580, 64)) == 20972928);
  assert(unsigned(zero_extend(0x1400584, 64)) == 20972932);
  assert(unsigned(zero_extend(0x1400588, 64)) == 20972936);
  assert(unsigned(zero_extend(0x140058c, 64)) == 20972940);
  assert(unsigned(zero_extend(0x1400590, 64)) == 20972944);
  assert(unsigned(zero_extend(0x1400594, 64)) == 20972948);
  assert(unsigned(zero_extend(0x1400598, 64)) == 20972952);
  assert(unsigned(zero_extend(0x140059c, 64)) == 20972956);
  assert(unsigned(zero_extend(0x14005a0, 64)) == 20972960);
  assert(unsigned(zero_extend(0x14005a4, 64)) == 20972964);
  assert(unsigned(zero_extend(0x14005a8, 64)) == 20972968);
  assert(unsigned(zero_extend(0x14005ac, 64)) == 20972972);
  assert(unsigned(zero_extend(0x14005b0, 64)) == 20972976);
  assert(unsigned(zero_extend(0x14005b4, 64)) == 20972980);
  assert(unsigned(zero_extend(0x14005b8, 64)) == 20972984);
  assert(unsigned(zero_extend(0x14005bc, 64)) == 20972988);
  assert(unsigned(zero_extend(0x14005c0, 64)) == 20972992);
  assert(unsigned(zero_extend(0x14005c4, 64)) == 20972996);
  assert(unsigned(zero_extend(0x14005c8, 64)) == 20973000);
  assert(unsigned(zero_extend(0x14005cc, 64)) == 20973004);
  assert(unsigned(zero_extend(0x14005d0, 64)) == 20973008);
  assert(unsigned(zero_extend(0x14005d4, 64)) == 20973012);
  assert(unsigned(zero_extend(0x14005d8, 64)) == 20973016);
  assert(unsigned(zero_extend(0x14005dc, 64)) == 20973020);
  assert(unsigned(zero_extend(0x14005e0, 64)) == 20973024);
  assert(unsigned(zero_extend(0x14005e4, 64)) == 20973028);
  assert(unsigned(zero_extend(0x14005e8, 64)) == 20973032);
  assert(unsigned(zero_extend(0x14005ec, 64)) == 20973036);
  assert(unsigned(zero_extend(0x14005f0, 64)) == 20973040);
  assert(unsigned(zero_extend(0x14005f4, 64)) == 20973044);
  assert(unsigned(zero_extend(0x14005f8, 64)) == 20973048);
  assert(unsigned(zero_extend(0x14005fc, 64)) == 20973052);
  assert(unsigned(zero_extend(0x1400600, 64)) == 20973056);
  assert(unsigned(zero_extend(0x1400604, 64)) == 20973060);
  assert(unsigned(zero_extend(0x1400608, 64)) == 20973064);
  assert(unsigned(zero_extend(0x140060c, 64)) == 20973068);
  assert(unsigned(zero_extend(0x1400610, 64)) == 20973072);
  assert(unsigned(zero_extend(0x1400614, 64)) == 20973076);
  assert(unsigned(zero_extend(0x1400618, 64)) == 20973080);
  assert(unsigned(zero_extend(0x140061c, 64)) == 20973084);
  assert(unsigned(zero_extend(0x1400620, 64)) == 20973088);
  assert(unsigned(zero_extend(0x1400624, 64)) == 20973092);
  assert(unsigned(zero_extend(0x1400628, 64)) == 20973096);
  assert(unsigned(zero_extend(0x140062c, 64)) == 20973100);
  assert(unsigned(zero_extend(0x1400630, 64)) == 20973104);
  assert(unsigned(zero_extend(0x1400634, 64)) == 20973108);
  assert(unsigned(zero_extend(0x1400638, 64)) == 20973112);
  assert(unsigned(zero_extend(0x140063c, 64)) == 20973116);
  assert(unsigned(zero_extend(0x1400640, 64)) == 20973120);
  assert(unsigned(zero_extend(0x1400644, 64)) == 20973124);
  assert(unsigned(zero_extend(0x1400648, 64)) == 20973128);
  assert(unsigned(zero_extend(0x140064c, 64)) == 20973132);
  assert(unsigned(zero_extend(0x1400650, 64)) == 20973136);
  assert(unsigned(zero_extend(0x1400658, 64)) == 20973144);
  assert(unsigned(zero_extend(0x140065c, 64)) == 20973148);
  assert(unsigned(zero_extend(0x1400664, 64)) == 20973156);
  assert(unsigned(zero_extend(0x1400668, 64)) == 20973160);
  assert(unsigned(zero_extend(0x140066c, 64)) == 20973164);
  assert(unsigned(zero_extend(0x1400670, 64)) == 20973168);
  assert(unsigned(zero_extend(0x1400674, 64)) == 20973172);
  assert(unsigned(zero_extend(0x1400678, 64)) == 20973176);
  assert(unsigned(zero_extend(0x140067c, 64)) == 20973180);
  assert(unsigned(zero_extend(0x1400680, 64)) == 20973184);
  assert(unsigned(zero_extend(0x1400684, 64)) == 20973188);
  assert(unsigned(zero_extend(0x1400688, 64)) == 20973192);
  assert(unsigned(zero_extend(0x140068c, 64)) == 20973196);
  assert(unsigned(zero_extend(0x1400694, 64)) == 20973204);
  assert(unsigned(zero_extend(0x1400698, 64)) == 20973208);
  assert(unsigned(zero_extend(0x14006a4, 64)) == 20973220);
  assert(unsigned(zero_extend(0x14006a8, 64)) == 20973224);
  assert(unsigned(zero_extend(0x14006ac, 64)) == 20973228);
  assert(unsigned(zero_extend(0x14006b0, 64)) == 20973232);
  assert(unsigned(zero_extend(0x14006b4, 64)) == 20973236);
  assert(unsigned(zero_extend(0x14006b8, 64)) == 20973240);
  assert(unsigned(zero_extend(0x14006bc, 64)) == 20973244);
  assert(unsigned(zero_extend(0x14006c0, 64)) == 20973248);
  assert(unsigned(zero_extend(0x14006c4, 64)) == 20973252);
  assert(unsigned(zero_extend(0x14006c8, 64)) == 20973256);
  assert(unsigned(zero_extend(0x14006cc, 64)) == 20973260);
  assert(unsigned(zero_extend(0x14006d0, 64)) == 20973264);
  assert(unsigned(zero_extend(0x14006d4, 64)) == 20973268);
  assert(unsigned(zero_extend(0x14006d8, 64)) == 20973272);
  assert(unsigned(zero_extend(0x14006dc, 64)) == 20973276);
  assert(unsigned(zero_extend(0x14006e0, 64)) == 20973280);
  assert(unsigned(zero_extend(0x14006e4, 64)) == 20973284);
  assert(unsigned(zero_extend(0x14006e8, 64)) == 20973288);
  assert(unsigned(zero_extend(0x14006ec, 64)) == 20973292);
  assert(unsigned(zero_extend(0x14006f0, 64)) == 20973296);
  assert(unsigned(zero_extend(0x14006f4, 64)) == 20973300);
  assert(unsigned(zero_extend(0x14006f8, 64)) == 20973304);
  assert(unsigned(zero_extend(0x14006fc, 64)) == 20973308);
  assert(unsigned(zero_extend(0x1400700, 64)) == 20973312);
  assert(unsigned(zero_extend(0x1400704, 64)) == 20973316);
  assert(unsigned(zero_extend(0x1400708, 64)) == 20973320);
  assert(unsigned(zero_extend(0x140070c, 64)) == 20973324);
  assert(unsigned(zero_extend(0x1400710, 64)) == 20973328);
  assert(unsigned(zero_extend(0x1400714, 64)) == 20973332);
  assert(unsigned(zero_extend(0x1400724, 64)) == 20973348);
  assert(unsigned(zero_extend(0x1400728, 64)) == 20973352);
  assert(unsigned(zero_extend(0x140072c, 64)) == 20973356);
  assert(unsigned(zero_extend(0x1400730, 64)) == 20973360);
  assert(unsigned(zero_extend(0x1400734, 64)) == 20973364);
  assert(unsigned(zero_extend(0x1400738, 64)) == 20973368);
  assert(unsigned(zero_extend(0x140073c, 64)) == 20973372);
  assert(unsigned(zero_extend(0x1400740, 64)) == 20973376);
  assert(unsigned(zero_extend(0x1400744, 64)) == 20973380);
  assert(unsigned(zero_extend(0x1400748, 64)) == 20973384);
  assert(unsigned(zero_extend(0x140074c, 64)) == 20973388);
  assert(unsigned(zero_extend(0x1400750, 64)) == 20973392);
  assert(unsigned(zero_extend(0x1400754, 64)) == 20973396);
  assert(unsigned(zero_extend(0x1400758, 64)) == 20973400);
  assert(unsigned(zero_extend(0x140075c, 64)) == 20973404);
  assert(unsigned(zero_extend(0x1400760, 64)) == 20973408);
  assert(unsigned(zero_extend(0x1400764, 64)) == 20973412);
  assert(unsigned(zero_extend(0x1400768, 64)) == 20973416);
  assert(unsigned(zero_extend(0x140076c, 64)) == 20973420);
  assert(unsigned(zero_extend(0x1400770, 64)) == 20973424);
  assert(unsigned(zero_extend(0x1400774, 64)) == 20973428);
  assert(unsigned(zero_extend(0x1400778, 64)) == 20973432);
  assert(unsigned(zero_extend(0x140077c, 64)) == 20973436);
  assert(unsigned(zero_extend(0x1400780, 64)) == 20973440);
  assert(unsigned(zero_extend(0x1400784, 64)) == 20973444);
  assert(unsigned(zero_extend(0x1400788, 64)) == 20973448);
  assert(unsigned(zero_extend(0x140078c, 64)) == 20973452);
  assert(unsigned(zero_extend(0x1400790, 64)) == 20973456);
  assert(unsigned(zero_extend(0x1400794, 64)) == 20973460);
  assert(unsigned(zero_extend(0x1400798, 64)) == 20973464);
  assert(unsigned(zero_extend(0x140079c, 64)) == 20973468);
  assert(unsigned(zero_extend(0x14007a4, 64)) == 20973476);
  assert(unsigned(zero_extend(0x14007a8, 64)) == 20973480);
  assert(unsigned(zero_extend(0x14007b0, 64)) == 20973488);
  assert(unsigned(zero_extend(0x14007b4, 64)) == 20973492);
  assert(unsigned(zero_extend(0x14007b8, 64)) == 20973496);
  assert(unsigned(zero_extend(0x14007bc, 64)) == 20973500);
  assert(unsigned(zero_extend(0x14007c0, 64)) == 20973504);
  assert(unsigned(zero_extend(0x14007c4, 64)) == 20973508);
  assert(unsigned(zero_extend(0x14007c8, 64)) == 20973512);
  assert(unsigned(zero_extend(0x14007cc, 64)) == 20973516);
  assert(unsigned(zero_extend(0x14007d0, 64)) == 20973520);
  assert(unsigned(zero_extend(0x14007d4, 64)) == 20973524);
  assert(unsigned(zero_extend(0x14007d8, 64)) == 20973528);
  assert(unsigned(zero_extend(0x14007e0, 64)) == 20973536);
  assert(unsigned(zero_extend(0x14007e4, 64)) == 20973540);
  assert(unsigned(zero_extend(0x14007f0, 64)) == 20973552);
  assert(unsigned(zero_extend(0x14007f4, 64)) == 20973556);
  assert(unsigned(zero_extend(0x14007f8, 64)) == 20973560);
  assert(unsigned(zero_extend(0x14007fc, 64)) == 20973564);
  assert(unsigned(zero_extend(0x1400800, 64)) == 20973568);
  assert(unsigned(zero_extend(0x1400804, 64)) == 20973572);
  assert(unsigned(zero_extend(0x1400808, 64)) == 20973576);
  assert(unsigned(zero_extend(0x140080c, 64)) == 20973580);
  assert(unsigned(zero_extend(0x1400810, 64)) == 20973584);
  assert(unsigned(zero_extend(0x1400814, 64)) == 20973588);
  assert(unsigned(zero_extend(0x1400818, 64)) == 20973592);
  assert(unsigned(zero_extend(0x140081c, 64)) == 20973596);
  assert(unsigned(zero_extend(0x1400820, 64)) == 20973600);
  assert(unsigned(zero_extend(0x1400824, 64)) == 20973604);
  assert(unsigned(zero_extend(0x1400828, 64)) == 20973608);
  assert(unsigned(zero_extend(0x140082c, 64)) == 20973612);
  assert(unsigned(zero_extend(0x1400830, 64)) == 20973616);
  assert(unsigned(zero_extend(0x1400834, 64)) == 20973620);
  assert(unsigned(zero_extend(0x1400838, 64)) == 20973624);
  assert(unsigned(zero_extend(0x140083c, 64)) == 20973628);
  assert(unsigned(zero_extend(0x1400840, 64)) == 20973632);
  assert(unsigned(zero_extend(0x1400844, 64)) == 20973636);
  assert(unsigned(zero_extend(0x1400848, 64)) == 20973640);
  assert(unsigned(zero_extend(0x140084c, 64)) == 20973644);
  assert(unsigned(zero_extend(0x1400850, 64)) == 20973648);
  assert(unsigned(zero_extend(0x1400854, 64)) == 20973652);
  assert(unsigned(zero_extend(0x1400858, 64)) == 20973656);
  assert(unsigned(zero_extend(0x140085c, 64)) == 20973660);
  assert(unsigned(zero_extend(0x1400860, 64)) == 20973664);
  assert(unsigned(zero_extend(0x1400864, 64)) == 20973668);
  assert(unsigned(zero_extend(0x1400868, 64)) == 20973672);
  assert(unsigned(zero_extend(0x140086c, 64)) == 20973676);
  assert(unsigned(zero_extend(0x1400870, 64)) == 20973680);
  assert(unsigned(zero_extend(0x1400874, 64)) == 20973684);
  assert(unsigned(zero_extend(0x1400878, 64)) == 20973688);
  assert(unsigned(zero_extend(0x140087c, 64)) == 20973692);
  assert(unsigned(zero_extend(0x1400880, 64)) == 20973696);
  assert(unsigned(zero_extend(0x1400884, 64)) == 20973700);
  assert(unsigned(zero_extend(0x1400888, 64)) == 20973704);
  assert(unsigned(zero_extend(0x140088c, 64)) == 20973708);
  assert(unsigned(zero_extend(0x1400890, 64)) == 20973712);
  assert(unsigned(zero_extend(0x1400894, 64)) == 20973716);
  assert(unsigned(zero_extend(0x1400898, 64)) == 20973720);
  assert(unsigned(zero_extend(0x140089c, 64)) == 20973724);
  assert(unsigned(zero_extend(0x14008a0, 64)) == 20973728);
  assert(unsigned(zero_extend(0x14008a4, 64)) == 20973732);
  assert(unsigned(zero_extend(0x14008a8, 64)) == 20973736);
  assert(unsigned(zero_extend(0x14008ac, 64)) == 20973740);
  assert(unsigned(zero_extend(0x14008b0, 64)) == 20973744);
  assert(unsigned(zero_extend(0x14008b4, 64)) == 20973748);
  assert(unsigned(zero_extend(0x14008b8, 64)) == 20973752);
  assert(unsigned(zero_extend(0x14008bc, 64)) == 20973756);
  assert(unsigned(zero_extend(0x14008c0, 64)) == 20973760);
  assert(unsigned(zero_extend(0x14008c4, 64)) == 20973764);
  assert(unsigned(zero_extend(0x14008c8, 64)) == 20973768);
  assert(unsigned(zero_extend(0x14008cc, 64)) == 20973772);
  assert(unsigned(zero_extend(0x14008d0, 64)) == 20973776);
  assert(unsigned(zero_extend(0x14008d4, 64)) == 20973780);
  assert(unsigned(zero_extend(0x14008d8, 64)) == 20973784);
  assert(unsigned(zero_extend(0x14008dc, 64)) == 20973788);
  assert(unsigned(zero_extend(0x14008e0, 64)) == 20973792);
  assert(unsigned(zero_extend(0x14008e4, 64)) == 20973796);
  assert(unsigned(zero_extend(0x14008e8, 64)) == 20973800);
  assert(unsigned(zero_extend(0x14008ec, 64)) == 20973804);
  assert(unsigned(zero_extend(0x14008f0, 64)) == 20973808);
  assert(unsigned(zero_extend(0x14008f4, 64)) == 20973812);
  assert(unsigned(zero_extend(0x14008f8, 64)) == 20973816);
  assert(unsigned(zero_extend(0x14008fc, 64)) == 20973820);
  assert(unsigned(zero_extend(0x1400900, 64)) == 20973824);
  assert(unsigned(zero_extend(0x1400904, 64)) == 20973828);
  assert(unsigned(zero_extend(0x1400908, 64)) == 20973832);
  assert(unsigned(zero_extend(0x140090c, 64)) == 20973836);
  assert(unsigned(zero_extend(0x1400910, 64)) == 20973840);
  assert(unsigned(zero_extend(0x1400914, 64)) == 20973844);
  assert(unsigned(zero_extend(0x1400918, 64)) == 20973848);
  assert(unsigned(zero_extend(0x140091c, 64)) == 20973852);
  assert(unsigned(zero_extend(0x1400920, 64)) == 20973856);
  assert(unsigned(zero_extend(0x1400924, 64)) == 20973860);
  assert(unsigned(zero_extend(0x1400928, 64)) == 20973864);
  assert(unsigned(zero_extend(0x140092c, 64)) == 20973868);
  assert(unsigned(zero_extend(0x1400930, 64)) == 20973872);
  assert(unsigned(zero_extend(0x14086f0, 64)) == 21006064);
  assert(unsigned(zero_extend(0x14086f4, 64)) == 21006068);
  assert(unsigned(zero_extend(0x14086f8, 64)) == 21006072);
  assert(unsigned(zero_extend(0x140883c, 64)) == 21006396);
  assert(unsigned(zero_extend(0x1408840, 64)) == 21006400);
  assert(unsigned(zero_extend(0x1408844, 64)) == 21006404);
  assert(unsigned(zero_extend(0x14400, 64)) == 82944);
  assert(unsigned(zero_extend(0x148, 64)) == 328);
  assert(unsigned(zero_extend(0x14ab4, 64)) == 84660);
  assert(unsigned(zero_extend(0x14ab8, 64)) == 84664);
  assert(unsigned(zero_extend(0x14abc, 64)) == 84668);
  assert(unsigned(zero_extend(0x14ac0, 64)) == 84672);
  assert(unsigned(zero_extend(0x14ac4, 64)) == 84676);
  assert(unsigned(zero_extend(0x14ac8, 64)) == 84680);
  assert(unsigned(zero_extend(0x14ad4, 64)) == 84692);
  assert(unsigned(zero_extend(0x14ad8, 64)) == 84696);
  assert(unsigned(zero_extend(0x14adc, 64)) == 84700);
  assert(unsigned(zero_extend(0x14ae0, 64)) == 84704);
  assert(unsigned(zero_extend(0x14ae4, 64)) == 84708);
  assert(unsigned(zero_extend(0x14ae8, 64)) == 84712);
  assert(unsigned(zero_extend(0x14aec, 64)) == 84716);
  assert(unsigned(zero_extend(0x14af0, 64)) == 84720);
  assert(unsigned(zero_extend(0x14af4, 64)) == 84724);
  assert(unsigned(zero_extend(0x14af8, 64)) == 84728);
  assert(unsigned(zero_extend(0x14afc, 64)) == 84732);
  assert(unsigned(zero_extend(0x14b00, 64)) == 84736);
  assert(unsigned(zero_extend(0x14b04, 64)) == 84740);
  assert(unsigned(zero_extend(0x14b88, 64)) == 84872);
  assert(unsigned(zero_extend(0x14b8c, 64)) == 84876);
  assert(unsigned(zero_extend(0x14b90, 64)) == 84880);
  assert(unsigned(zero_extend(0x14b94, 64)) == 84884);
  assert(unsigned(zero_extend(0x14b98, 64)) == 84888);
  assert(unsigned(zero_extend(0x14b9c, 64)) == 84892);
  assert(unsigned(zero_extend(0x14ba0, 64)) == 84896);
  assert(unsigned(zero_extend(0x14ba4, 64)) == 84900);
  assert(unsigned(zero_extend(0x14ba8, 64)) == 84904);
  assert(unsigned(zero_extend(0x14bac, 64)) == 84908);
  assert(unsigned(zero_extend(0x14bb0, 64)) == 84912);
  assert(unsigned(zero_extend(0x14bb4, 64)) == 84916);
  assert(unsigned(zero_extend(0x14bb8, 64)) == 84920);
  assert(unsigned(zero_extend(0x14bbc, 64)) == 84924);
  assert(unsigned(zero_extend(0x14d64, 64)) == 85348);
  assert(unsigned(zero_extend(0x14d68, 64)) == 85352);
  assert(unsigned(zero_extend(0x14d6c, 64)) == 85356);
  assert(unsigned(zero_extend(0x14d70, 64)) == 85360);
  assert(unsigned(zero_extend(0x14d74, 64)) == 85364);
  assert(unsigned(zero_extend(0x14d78, 64)) == 85368);
  assert(unsigned(zero_extend(0x14d7c, 64)) == 85372);
  assert(unsigned(zero_extend(0x14d80, 64)) == 85376);
  assert(unsigned(zero_extend(0x14d84, 64)) == 85380);
  assert(unsigned(zero_extend(0x14d88, 64)) == 85384);
  assert(unsigned(zero_extend(0x14d8c, 64)) == 85388);
  assert(unsigned(zero_extend(0x14d90, 64)) == 85392);
  assert(unsigned(zero_extend(0x14d94, 64)) == 85396);
  assert(unsigned(zero_extend(0x14d98, 64)) == 85400);
  assert(unsigned(zero_extend(0x14d9c, 64)) == 85404);
  assert(unsigned(zero_extend(0x14da0, 64)) == 85408);
  assert(unsigned(zero_extend(0x14da4, 64)) == 85412);
  assert(unsigned(zero_extend(0x14da8, 64)) == 85416);
  assert(unsigned(zero_extend(0x14dac, 64)) == 85420);
  assert(unsigned(zero_extend(0x14db0, 64)) == 85424);
  assert(unsigned(zero_extend(0x14db4, 64)) == 85428);
  assert(unsigned(zero_extend(0x14db8, 64)) == 85432);
  assert(unsigned(zero_extend(0x14dbc, 64)) == 85436);
  assert(unsigned(zero_extend(0x14dc0, 64)) == 85440);
  assert(unsigned(zero_extend(0x14dc4, 64)) == 85444);
  assert(unsigned(zero_extend(0x14dc8, 64)) == 85448);
  assert(unsigned(zero_extend(0x14dcc, 64)) == 85452);
  assert(unsigned(zero_extend(0x14dd0, 64)) == 85456);
  assert(unsigned(zero_extend(0x14dd4, 64)) == 85460);
  assert(unsigned(zero_extend(0x14dd8, 64)) == 85464);
  assert(unsigned(zero_extend(0x14ddc, 64)) == 85468);
  assert(unsigned(zero_extend(0x14de0, 64)) == 85472);
  assert(unsigned(zero_extend(0x14de4, 64)) == 85476);
  assert(unsigned(zero_extend(0x14de8, 64)) == 85480);
  assert(unsigned(zero_extend(0x14dec, 64)) == 85484);
  assert(unsigned(zero_extend(0x14df0, 64)) == 85488);
  assert(unsigned(zero_extend(0x14df4, 64)) == 85492);
  assert(unsigned(zero_extend(0x14df8, 64)) == 85496);
  assert(unsigned(zero_extend(0x14dfc, 64)) == 85500);
  assert(unsigned(zero_extend(0x14e00, 64)) == 85504);
  assert(unsigned(zero_extend(0x14e04, 64)) == 85508);
  assert(unsigned(zero_extend(0x14e08, 64)) == 85512);
  assert(unsigned(zero_extend(0x15, 64)) == 21);
  assert(unsigned(zero_extend(0x150, 64)) == 336);
  assert(unsigned(zero_extend(0x15002f8, 64)) == 22020856);
  assert(unsigned(zero_extend(0x15002fc, 64)) == 22020860);
  assert(unsigned(zero_extend(0x1500300, 64)) == 22020864);
  assert(unsigned(zero_extend(0x1500450, 64)) == 22021200);
  assert(unsigned(zero_extend(0x1500454, 64)) == 22021204);
  assert(unsigned(zero_extend(0x1500458, 64)) == 22021208);
  assert(unsigned(zero_extend(0x15005a0, 64)) == 22021536);
  assert(unsigned(zero_extend(0x15005a4, 64)) == 22021540);
  assert(unsigned(zero_extend(0x15005a8, 64)) == 22021544);
  assert(unsigned(zero_extend(0x16, 64)) == 22);
  assert(unsigned(zero_extend(0x160, 64)) == 352);
  assert(unsigned(zero_extend(0x16240, 64)) == 90688);
  assert(unsigned(zero_extend(0x16244, 64)) == 90692);
  assert(unsigned(zero_extend(0x16310, 64)) == 90896);
  assert(unsigned(zero_extend(0x16314, 64)) == 90900);
  assert(unsigned(zero_extend(0x16318, 64)) == 90904);
  assert(unsigned(zero_extend(0x1631c, 64)) == 90908);
  assert(unsigned(zero_extend(0x16320, 64)) == 90912);
  assert(unsigned(zero_extend(0x16324, 64)) == 90916);
  assert(unsigned(zero_extend(0x16328, 64)) == 90920);
  assert(unsigned(zero_extend(0x1632c, 64)) == 90924);
  assert(unsigned(zero_extend(0x16330, 64)) == 90928);
  assert(unsigned(zero_extend(0x16334, 64)) == 90932);
  assert(unsigned(zero_extend(0x16368, 64)) == 90984);
  assert(unsigned(zero_extend(0x1636c, 64)) == 90988);
  assert(unsigned(zero_extend(0x16384, 64)) == 91012);
  assert(unsigned(zero_extend(0x16388, 64)) == 91016);
  assert(unsigned(zero_extend(0x163c0, 64)) == 91072);
  assert(unsigned(zero_extend(0x163c4, 64)) == 91076);
  assert(unsigned(zero_extend(0x163d0, 64)) == 91088);
  assert(unsigned(zero_extend(0x163d4, 64)) == 91092);
  assert(unsigned(zero_extend(0x163e0, 64)) == 91104);
  assert(unsigned(zero_extend(0x163e4, 64)) == 91108);
  assert(unsigned(zero_extend(0x163f0, 64)) == 91120);
  assert(unsigned(zero_extend(0x163f4, 64)) == 91124);
  assert(unsigned(zero_extend(0x163f8, 64)) == 91128);
  assert(unsigned(zero_extend(0x163fc, 64)) == 91132);
  assert(unsigned(zero_extend(0x16400, 64)) == 91136);
  assert(unsigned(zero_extend(0x16404, 64)) == 91140);
  assert(unsigned(zero_extend(0x16408, 64)) == 91144);
  assert(unsigned(zero_extend(0x1640c, 64)) == 91148);
  assert(unsigned(zero_extend(0x16420, 64)) == 91168);
  assert(unsigned(zero_extend(0x16424, 64)) == 91172);
  assert(unsigned(zero_extend(0x16428, 64)) == 91176);
  assert(unsigned(zero_extend(0x1642c, 64)) == 91180);
  assert(unsigned(zero_extend(0x1644c, 64)) == 91212);
  assert(unsigned(zero_extend(0x16450, 64)) == 91216);
  assert(unsigned(zero_extend(0x1645c, 64)) == 91228);
  assert(unsigned(zero_extend(0x16460, 64)) == 91232);
  assert(unsigned(zero_extend(0x16464, 64)) == 91236);
  assert(unsigned(zero_extend(0x16474, 64)) == 91252);
  assert(unsigned(zero_extend(0x16478, 64)) == 91256);
  assert(unsigned(zero_extend(0x1647c, 64)) == 91260);
  assert(unsigned(zero_extend(0x16480, 64)) == 91264);
  assert(unsigned(zero_extend(0x16484, 64)) == 91268);
  assert(unsigned(zero_extend(0x16488, 64)) == 91272);
  assert(unsigned(zero_extend(0x1648c, 64)) == 91276);
  assert(unsigned(zero_extend(0x16490, 64)) == 91280);
  assert(unsigned(zero_extend(0x16494, 64)) == 91284);
  assert(unsigned(zero_extend(0x16498, 64)) == 91288);
  assert(unsigned(zero_extend(0x1649c, 64)) == 91292);
  assert(unsigned(zero_extend(0x164a0, 64)) == 91296);
  assert(unsigned(zero_extend(0x164a4, 64)) == 91300);
  assert(unsigned(zero_extend(0x164a8, 64)) == 91304);
  assert(unsigned(zero_extend(0x164ac, 64)) == 91308);
  assert(unsigned(zero_extend(0x164b0, 64)) == 91312);
  assert(unsigned(zero_extend(0x164b4, 64)) == 91316);
  assert(unsigned(zero_extend(0x164b8, 64)) == 91320);
  assert(unsigned(zero_extend(0x164d4, 64)) == 91348);
  assert(unsigned(zero_extend(0x164d8, 64)) == 91352);
  assert(unsigned(zero_extend(0x164dc, 64)) == 91356);
  assert(unsigned(zero_extend(0x164e0, 64)) == 91360);
  assert(unsigned(zero_extend(0x16510, 64)) == 91408);
  assert(unsigned(zero_extend(0x16514, 64)) == 91412);
  assert(unsigned(zero_extend(0x16518, 64)) == 91416);
  assert(unsigned(zero_extend(0x1651c, 64)) == 91420);
  assert(unsigned(zero_extend(0x16528, 64)) == 91432);
  assert(unsigned(zero_extend(0x1652c, 64)) == 91436);
  assert(unsigned(zero_extend(0x16590, 64)) == 91536);
  assert(unsigned(zero_extend(0x16594, 64)) == 91540);
  assert(unsigned(zero_extend(0x16598, 64)) == 91544);
  assert(unsigned(zero_extend(0x165b4, 64)) == 91572);
  assert(unsigned(zero_extend(0x165b8, 64)) == 91576);
  assert(unsigned(zero_extend(0x165bc, 64)) == 91580);
  assert(unsigned(zero_extend(0x165c8, 64)) == 91592);
  assert(unsigned(zero_extend(0x165cc, 64)) == 91596);
  assert(unsigned(zero_extend(0x165d0, 64)) == 91600);
  assert(unsigned(zero_extend(0x165e0, 64)) == 91616);
  assert(unsigned(zero_extend(0x165e4, 64)) == 91620);
  assert(unsigned(zero_extend(0x165e8, 64)) == 91624);
  assert(unsigned(zero_extend(0x165ec, 64)) == 91628);
  assert(unsigned(zero_extend(0x165f0, 64)) == 91632);
  assert(unsigned(zero_extend(0x165f4, 64)) == 91636);
  assert(unsigned(zero_extend(0x165f8, 64)) == 91640);
  assert(unsigned(zero_extend(0x165fc, 64)) == 91644);
  assert(unsigned(zero_extend(0x16600, 64)) == 91648);
  assert(unsigned(zero_extend(0x1660c, 64)) == 91660);
  assert(unsigned(zero_extend(0x16610, 64)) == 91664);
  assert(unsigned(zero_extend(0x16614, 64)) == 91668);
  assert(unsigned(zero_extend(0x1663c, 64)) == 91708);
  assert(unsigned(zero_extend(0x16640, 64)) == 91712);
  assert(unsigned(zero_extend(0x16644, 64)) == 91716);
  assert(unsigned(zero_extend(0x16648, 64)) == 91720);
  assert(unsigned(zero_extend(0x1664c, 64)) == 91724);
  assert(unsigned(zero_extend(0x16650, 64)) == 91728);
  assert(unsigned(zero_extend(0x16654, 64)) == 91732);
  assert(unsigned(zero_extend(0x16658, 64)) == 91736);
  assert(unsigned(zero_extend(0x1665c, 64)) == 91740);
  assert(unsigned(zero_extend(0x16668, 64)) == 91752);
  assert(unsigned(zero_extend(0x1666c, 64)) == 91756);
  assert(unsigned(zero_extend(0x16678, 64)) == 91768);
  assert(unsigned(zero_extend(0x1667c, 64)) == 91772);
  assert(unsigned(zero_extend(0x16680, 64)) == 91776);
  assert(unsigned(zero_extend(0x16684, 64)) == 91780);
  assert(unsigned(zero_extend(0x166a0, 64)) == 91808);
  assert(unsigned(zero_extend(0x166a4, 64)) == 91812);
  assert(unsigned(zero_extend(0x166a8, 64)) == 91816);
  assert(unsigned(zero_extend(0x166ac, 64)) == 91820);
  assert(unsigned(zero_extend(0x166b0, 64)) == 91824);
  assert(unsigned(zero_extend(0x166b4, 64)) == 91828);
  assert(unsigned(zero_extend(0x168, 64)) == 360);
  assert(unsigned(zero_extend(0x17, 64)) == 23);
  assert(unsigned(zero_extend(0x170, 64)) == 368);
  assert(unsigned(zero_extend(0x17ffe, 64)) == 98302);
  assert(unsigned(zero_extend(0x17fff, 64)) == 98303);
  assert(unsigned(zero_extend(0x17fffffff, 64)) == 6442450943);
  assert(unsigned(zero_extend(0x18, 64)) == 24);
  assert(unsigned(zero_extend(0x180, 64)) == 384);
  assert(unsigned(zero_extend(0x18000, 64)) == 98304);
  assert(unsigned(zero_extend(0x180000000, 64)) == 6442450944);
  assert(unsigned(zero_extend(0x18001, 64)) == 98305);
  assert(unsigned(zero_extend(0x18899aabb, 64)) == 6586739387);
  assert(unsigned(zero_extend(0x19, 64)) == 25);
  assert(unsigned(zero_extend(0x1a, 64)) == 26);
  assert(unsigned(zero_extend(0x1a0, 64)) == 416);
  assert(unsigned(zero_extend(0x1a590, 64)) == 107920);
  assert(unsigned(zero_extend(0x1a594, 64)) == 107924);
  assert(unsigned(zero_extend(0x1a598, 64)) == 107928);
  assert(unsigned(zero_extend(0x1a59c, 64)) == 107932);
  assert(unsigned(zero_extend(0x1a5a0, 64)) == 107936);
  assert(unsigned(zero_extend(0x1a5a4, 64)) == 107940);
  assert(unsigned(zero_extend(0x1a5a8, 64)) == 107944);
  assert(unsigned(zero_extend(0x1a5ac, 64)) == 107948);
  assert(unsigned(zero_extend(0x1a5b0, 64)) == 107952);
  assert(unsigned(zero_extend(0x1a5b4, 64)) == 107956);
  assert(unsigned(zero_extend(0x1a5b8, 64)) == 107960);
  assert(unsigned(zero_extend(0x1a5bc, 64)) == 107964);
  assert(unsigned(zero_extend(0x1a5d4, 64)) == 107988);
  assert(unsigned(zero_extend(0x1a5d8, 64)) == 107992);
  assert(unsigned(zero_extend(0x1a5f4, 64)) == 108020);
  assert(unsigned(zero_extend(0x1a5f8, 64)) == 108024);
  assert(unsigned(zero_extend(0x1a5fc, 64)) == 108028);
  assert(unsigned(zero_extend(0x1a600, 64)) == 108032);
  assert(unsigned(zero_extend(0x1a600078, 64)) == 442499192);
  assert(unsigned(zero_extend(0x1a60007c, 64)) == 442499196);
  assert(unsigned(zero_extend(0x1a600080, 64)) == 442499200);
  assert(unsigned(zero_extend(0x1a75c, 64)) == 108380);
  assert(unsigned(zero_extend(0x1a760, 64)) == 108384);
  assert(unsigned(zero_extend(0x1a764, 64)) == 108388);
  assert(unsigned(zero_extend(0x1a768, 64)) == 108392);
  assert(unsigned(zero_extend(0x1a76c, 64)) == 108396);
  assert(unsigned(zero_extend(0x1a770, 64)) == 108400);
  assert(unsigned(zero_extend(0x1a774, 64)) == 108404);
  assert(unsigned(zero_extend(0x1a778, 64)) == 108408);
  assert(unsigned(zero_extend(0x1a77c, 64)) == 108412);
  assert(unsigned(zero_extend(0x1a780, 64)) == 108416);
  assert(unsigned(zero_extend(0x1a784, 64)) == 108420);
  assert(unsigned(zero_extend(0x1a788, 64)) == 108424);
  assert(unsigned(zero_extend(0x1a78c, 64)) == 108428);
  assert(unsigned(zero_extend(0x1a790, 64)) == 108432);
  assert(unsigned(zero_extend(0x1a794, 64)) == 108436);
  assert(unsigned(zero_extend(0x1a798, 64)) == 108440);
  assert(unsigned(zero_extend(0x1a79c, 64)) == 108444);
  assert(unsigned(zero_extend(0x1a840, 64)) == 108608);
  assert(unsigned(zero_extend(0x1a844, 64)) == 108612);
  assert(unsigned(zero_extend(0x1a848, 64)) == 108616);
  assert(unsigned(zero_extend(0x1a84c, 64)) == 108620);
  assert(unsigned(zero_extend(0x1a850, 64)) == 108624);
  assert(unsigned(zero_extend(0x1a858, 64)) == 108632);
  assert(unsigned(zero_extend(0x1a85c, 64)) == 108636);
  assert(unsigned(zero_extend(0x1a860, 64)) == 108640);
  assert(unsigned(zero_extend(0x1a864, 64)) == 108644);
  assert(unsigned(zero_extend(0x1a870, 64)) == 108656);
  assert(unsigned(zero_extend(0x1a878, 64)) == 108664);
  assert(unsigned(zero_extend(0x1a87c, 64)) == 108668);
  assert(unsigned(zero_extend(0x1a880, 64)) == 108672);
  assert(unsigned(zero_extend(0x1a884, 64)) == 108676);
  assert(unsigned(zero_extend(0x1a888, 64)) == 108680);
  assert(unsigned(zero_extend(0x1a88c, 64)) == 108684);
  assert(unsigned(zero_extend(0x1a890, 64)) == 108688);
  assert(unsigned(zero_extend(0x1a894, 64)) == 108692);
  assert(unsigned(zero_extend(0x1a898, 64)) == 108696);
  assert(unsigned(zero_extend(0x1a89c, 64)) == 108700);
  assert(unsigned(zero_extend(0x1a8a0, 64)) == 108704);
  assert(unsigned(zero_extend(0x1a8a4, 64)) == 108708);
  assert(unsigned(zero_extend(0x1a8a8, 64)) == 108712);
  assert(unsigned(zero_extend(0x1a8ac, 64)) == 108716);
  assert(unsigned(zero_extend(0x1a8b0, 64)) == 108720);
  assert(unsigned(zero_extend(0x1a8b4, 64)) == 108724);
  assert(unsigned(zero_extend(0x1a8b8, 64)) == 108728);
  assert(unsigned(zero_extend(0x1a8bc, 64)) == 108732);
  assert(unsigned(zero_extend(0x1a8c0, 64)) == 108736);
  assert(unsigned(zero_extend(0x1a8c4, 64)) == 108740);
  assert(unsigned(zero_extend(0x1a8c8, 64)) == 108744);
  assert(unsigned(zero_extend(0x1a8cc, 64)) == 108748);
  assert(unsigned(zero_extend(0x1a8d0, 64)) == 108752);
  assert(unsigned(zero_extend(0x1a8d4, 64)) == 108756);
  assert(unsigned(zero_extend(0x1a8d8, 64)) == 108760);
  assert(unsigned(zero_extend(0x1a8dc, 64)) == 108764);
  assert(unsigned(zero_extend(0x1a8e0, 64)) == 108768);
  assert(unsigned(zero_extend(0x1a8e4, 64)) == 108772);
  assert(unsigned(zero_extend(0x1a8e8, 64)) == 108776);
  assert(unsigned(zero_extend(0x1a8ec, 64)) == 108780);
  assert(unsigned(zero_extend(0x1a8f0, 64)) == 108784);
  assert(unsigned(zero_extend(0x1a8f4, 64)) == 108788);
  assert(unsigned(zero_extend(0x1a8f8, 64)) == 108792);
  assert(unsigned(zero_extend(0x1a8fc, 64)) == 108796);
  assert(unsigned(zero_extend(0x1a900, 64)) == 108800);
  assert(unsigned(zero_extend(0x1a904, 64)) == 108804);
  assert(unsigned(zero_extend(0x1a908, 64)) == 108808);
  assert(unsigned(zero_extend(0x1a90c, 64)) == 108812);
  assert(unsigned(zero_extend(0x1a910, 64)) == 108816);
  assert(unsigned(zero_extend(0x1a914, 64)) == 108820);
  assert(unsigned(zero_extend(0x1a918, 64)) == 108824);
  assert(unsigned(zero_extend(0x1a91c, 64)) == 108828);
  assert(unsigned(zero_extend(0x1a920, 64)) == 108832);
  assert(unsigned(zero_extend(0x1a924, 64)) == 108836);
  assert(unsigned(zero_extend(0x1a928, 64)) == 108840);
  assert(unsigned(zero_extend(0x1a92c, 64)) == 108844);
  assert(unsigned(zero_extend(0x1a930, 64)) == 108848);
  assert(unsigned(zero_extend(0x1a934, 64)) == 108852);
  assert(unsigned(zero_extend(0x1a938, 64)) == 108856);
  assert(unsigned(zero_extend(0x1a93c, 64)) == 108860);
  assert(unsigned(zero_extend(0x1a940, 64)) == 108864);
  assert(unsigned(zero_extend(0x1a944, 64)) == 108868);
  assert(unsigned(zero_extend(0x1a948, 64)) == 108872);
  assert(unsigned(zero_extend(0x1a94c, 64)) == 108876);
  assert(unsigned(zero_extend(0x1a950, 64)) == 108880);
  assert(unsigned(zero_extend(0x1a954, 64)) == 108884);
  assert(unsigned(zero_extend(0x1a958, 64)) == 108888);
  assert(unsigned(zero_extend(0x1a95c, 64)) == 108892);
  assert(unsigned(zero_extend(0x1a960, 64)) == 108896);
  assert(unsigned(zero_extend(0x1a964, 64)) == 108900);
  assert(unsigned(zero_extend(0x1a968, 64)) == 108904);
  assert(unsigned(zero_extend(0x1a96c, 64)) == 108908);
  assert(unsigned(zero_extend(0x1a970, 64)) == 108912);
  assert(unsigned(zero_extend(0x1a974, 64)) == 108916);
  assert(unsigned(zero_extend(0x1a978, 64)) == 108920);
  assert(unsigned(zero_extend(0x1a97c, 64)) == 108924);
  assert(unsigned(zero_extend(0x1a980, 64)) == 108928);
  assert(unsigned(zero_extend(0x1a984, 64)) == 108932);
  assert(unsigned(zero_extend(0x1a988, 64)) == 108936);
  assert(unsigned(zero_extend(0x1a98c, 64)) == 108940);
  assert(unsigned(zero_extend(0x1a990, 64)) == 108944);
  assert(unsigned(zero_extend(0x1a994, 64)) == 108948);
  assert(unsigned(zero_extend(0x1a998, 64)) == 108952);
  assert(unsigned(zero_extend(0x1a99c, 64)) == 108956);
  assert(unsigned(zero_extend(0x1a9a0, 64)) == 108960);
  assert(unsigned(zero_extend(0x1a9a4, 64)) == 108964);
  assert(unsigned(zero_extend(0x1a9a8, 64)) == 108968);
  assert(unsigned(zero_extend(0x1a9ac, 64)) == 108972);
  assert(unsigned(zero_extend(0x1a9b0, 64)) == 108976);
  assert(unsigned(zero_extend(0x1a9b4, 64)) == 108980);
  assert(unsigned(zero_extend(0x1a9b8, 64)) == 108984);
  assert(unsigned(zero_extend(0x1a9bc, 64)) == 108988);
  assert(unsigned(zero_extend(0x1a9c0, 64)) == 108992);
  assert(unsigned(zero_extend(0x1a9c4, 64)) == 108996);
  assert(unsigned(zero_extend(0x1a9c8, 64)) == 109000);
  assert(unsigned(zero_extend(0x1a9cc, 64)) == 109004);
  assert(unsigned(zero_extend(0x1a9d0, 64)) == 109008);
  assert(unsigned(zero_extend(0x1a9d4, 64)) == 109012);
  assert(unsigned(zero_extend(0x1a9d8, 64)) == 109016);
  assert(unsigned(zero_extend(0x1a9dc, 64)) == 109020);
  assert(unsigned(zero_extend(0x1a9e0, 64)) == 109024);
  assert(unsigned(zero_extend(0x1a9e4, 64)) == 109028);
  assert(unsigned(zero_extend(0x1a9e8, 64)) == 109032);
  assert(unsigned(zero_extend(0x1a9f4, 64)) == 109044);
  assert(unsigned(zero_extend(0x1a9f8, 64)) == 109048);
  assert(unsigned(zero_extend(0x1a9fc, 64)) == 109052);
  assert(unsigned(zero_extend(0x1aa00, 64)) == 109056);
  assert(unsigned(zero_extend(0x1aa04, 64)) == 109060);
  assert(unsigned(zero_extend(0x1aa08, 64)) == 109064);
  assert(unsigned(zero_extend(0x1aa0c, 64)) == 109068);
  assert(unsigned(zero_extend(0x1aa10, 64)) == 109072);
  assert(unsigned(zero_extend(0x1aa14, 64)) == 109076);
  assert(unsigned(zero_extend(0x1aa18, 64)) == 109080);
  assert(unsigned(zero_extend(0x1aa1c, 64)) == 109084);
  assert(unsigned(zero_extend(0x1aa20, 64)) == 109088);
  assert(unsigned(zero_extend(0x1aa24, 64)) == 109092);
  assert(unsigned(zero_extend(0x1aa28, 64)) == 109096);
  assert(unsigned(zero_extend(0x1aa2c, 64)) == 109100);
  assert(unsigned(zero_extend(0x1aa30, 64)) == 109104);
  assert(unsigned(zero_extend(0x1aa34, 64)) == 109108);
  assert(unsigned(zero_extend(0x1aa38, 64)) == 109112);
  assert(unsigned(zero_extend(0x1aa3c, 64)) == 109116);
  assert(unsigned(zero_extend(0x1aa40, 64)) == 109120);
  assert(unsigned(zero_extend(0x1aa50, 64)) == 109136);
  assert(unsigned(zero_extend(0x1aa58, 64)) == 109144);
  assert(unsigned(zero_extend(0x1aa60, 64)) == 109152);
  assert(unsigned(zero_extend(0x1aa68, 64)) == 109160);
  assert(unsigned(zero_extend(0x1aa6c, 64)) == 109164);
  assert(unsigned(zero_extend(0x1aa70, 64)) == 109168);
  assert(unsigned(zero_extend(0x1aa74, 64)) == 109172);
  assert(unsigned(zero_extend(0x1aa78, 64)) == 109176);
  assert(unsigned(zero_extend(0x1aa7c, 64)) == 109180);
  assert(unsigned(zero_extend(0x1aa80, 64)) == 109184);
  assert(unsigned(zero_extend(0x1aa84, 64)) == 109188);
  assert(unsigned(zero_extend(0x1aa88, 64)) == 109192);
  assert(unsigned(zero_extend(0x1aaa8, 64)) == 109224);
  assert(unsigned(zero_extend(0x1aab0, 64)) == 109232);
  assert(unsigned(zero_extend(0x1aab8, 64)) == 109240);
  assert(unsigned(zero_extend(0x1aac0, 64)) == 109248);
  assert(unsigned(zero_extend(0x1ac70, 64)) == 109680);
  assert(unsigned(zero_extend(0x1ac74, 64)) == 109684);
  assert(unsigned(zero_extend(0x1ac78, 64)) == 109688);
  assert(unsigned(zero_extend(0x1ac7c, 64)) == 109692);
  assert(unsigned(zero_extend(0x1ac80, 64)) == 109696);
  assert(unsigned(zero_extend(0x1ac84, 64)) == 109700);
  assert(unsigned(zero_extend(0x1ac88, 64)) == 109704);
  assert(unsigned(zero_extend(0x1ac8c, 64)) == 109708);
  assert(unsigned(zero_extend(0x1ac90, 64)) == 109712);
  assert(unsigned(zero_extend(0x1ac94, 64)) == 109716);
  assert(unsigned(zero_extend(0x1ac98, 64)) == 109720);
  assert(unsigned(zero_extend(0x1ac9c, 64)) == 109724);
  assert(unsigned(zero_extend(0x1aca0, 64)) == 109728);
  assert(unsigned(zero_extend(0x1aca4, 64)) == 109732);
  assert(unsigned(zero_extend(0x1aca8, 64)) == 109736);
  assert(unsigned(zero_extend(0x1acac, 64)) == 109740);
  assert(unsigned(zero_extend(0x1acb0, 64)) == 109744);
  assert(unsigned(zero_extend(0x1acb4, 64)) == 109748);
  assert(unsigned(zero_extend(0x1acb8, 64)) == 109752);
  assert(unsigned(zero_extend(0x1acbc, 64)) == 109756);
  assert(unsigned(zero_extend(0x1acc0, 64)) == 109760);
  assert(unsigned(zero_extend(0x1acc4, 64)) == 109764);
  assert(unsigned(zero_extend(0x1acc8, 64)) == 109768);
  assert(unsigned(zero_extend(0x1accc, 64)) == 109772);
  assert(unsigned(zero_extend(0x1acd0, 64)) == 109776);
  assert(unsigned(zero_extend(0x1acd4, 64)) == 109780);
  assert(unsigned(zero_extend(0x1acd8, 64)) == 109784);
  assert(unsigned(zero_extend(0x1acdc, 64)) == 109788);
  assert(unsigned(zero_extend(0x1ace0, 64)) == 109792);
  assert(unsigned(zero_extend(0x1ace4, 64)) == 109796);
  assert(unsigned(zero_extend(0x1ace8, 64)) == 109800);
  assert(unsigned(zero_extend(0x1acec, 64)) == 109804);
  assert(unsigned(zero_extend(0x1acf0, 64)) == 109808);
  assert(unsigned(zero_extend(0x1acf4, 64)) == 109812);
  assert(unsigned(zero_extend(0x1acf8, 64)) == 109816);
  assert(unsigned(zero_extend(0x1acfc, 64)) == 109820);
  assert(unsigned(zero_extend(0x1ad00, 64)) == 109824);
  assert(unsigned(zero_extend(0x1ad04, 64)) == 109828);
  assert(unsigned(zero_extend(0x1ad08, 64)) == 109832);
  assert(unsigned(zero_extend(0x1ad0c, 64)) == 109836);
  assert(unsigned(zero_extend(0x1ad10, 64)) == 109840);
  assert(unsigned(zero_extend(0x1ad14, 64)) == 109844);
  assert(unsigned(zero_extend(0x1ad18, 64)) == 109848);
  assert(unsigned(zero_extend(0x1ad1c, 64)) == 109852);
  assert(unsigned(zero_extend(0x1ad20, 64)) == 109856);
  assert(unsigned(zero_extend(0x1ad24, 64)) == 109860);
  assert(unsigned(zero_extend(0x1ad28, 64)) == 109864);
  assert(unsigned(zero_extend(0x1ad2c, 64)) == 109868);
  assert(unsigned(zero_extend(0x1ad30, 64)) == 109872);
  assert(unsigned(zero_extend(0x1ad34, 64)) == 109876);
  assert(unsigned(zero_extend(0x1ad38, 64)) == 109880);
  assert(unsigned(zero_extend(0x1ad3c, 64)) == 109884);
  assert(unsigned(zero_extend(0x1ad40, 64)) == 109888);
  assert(unsigned(zero_extend(0x1ad44, 64)) == 109892);
  assert(unsigned(zero_extend(0x1ad48, 64)) == 109896);
  assert(unsigned(zero_extend(0x1ad4c, 64)) == 109900);
  assert(unsigned(zero_extend(0x1ad50, 64)) == 109904);
  assert(unsigned(zero_extend(0x1ad54, 64)) == 109908);
  assert(unsigned(zero_extend(0x1ad58, 64)) == 109912);
  assert(unsigned(zero_extend(0x1ad5c, 64)) == 109916);
  assert(unsigned(zero_extend(0x1ad60, 64)) == 109920);
  assert(unsigned(zero_extend(0x1ad64, 64)) == 109924);
  assert(unsigned(zero_extend(0x1ad68, 64)) == 109928);
  assert(unsigned(zero_extend(0x1ad6c, 64)) == 109932);
  assert(unsigned(zero_extend(0x1ad70, 64)) == 109936);
  assert(unsigned(zero_extend(0x1ad74, 64)) == 109940);
  assert(unsigned(zero_extend(0x1ad78, 64)) == 109944);
  assert(unsigned(zero_extend(0x1ad7c, 64)) == 109948);
  assert(unsigned(zero_extend(0x1ad80, 64)) == 109952);
  assert(unsigned(zero_extend(0x1ad84, 64)) == 109956);
  assert(unsigned(zero_extend(0x1ad88, 64)) == 109960);
  assert(unsigned(zero_extend(0x1ad8c, 64)) == 109964);
  assert(unsigned(zero_extend(0x1ad90, 64)) == 109968);
  assert(unsigned(zero_extend(0x1ad94, 64)) == 109972);
  assert(unsigned(zero_extend(0x1ad98, 64)) == 109976);
  assert(unsigned(zero_extend(0x1ad9c, 64)) == 109980);
  assert(unsigned(zero_extend(0x1ada0, 64)) == 109984);
  assert(unsigned(zero_extend(0x1ada4, 64)) == 109988);
  assert(unsigned(zero_extend(0x1ada8, 64)) == 109992);
  assert(unsigned(zero_extend(0x1adac, 64)) == 109996);
  assert(unsigned(zero_extend(0x1adb0, 64)) == 110000);
  assert(unsigned(zero_extend(0x1adb4, 64)) == 110004);
  assert(unsigned(zero_extend(0x1adb8, 64)) == 110008);
  assert(unsigned(zero_extend(0x1adbc, 64)) == 110012);
  assert(unsigned(zero_extend(0x1adc0, 64)) == 110016);
  assert(unsigned(zero_extend(0x1adc4, 64)) == 110020);
  assert(unsigned(zero_extend(0x1adc8, 64)) == 110024);
  assert(unsigned(zero_extend(0x1adcc, 64)) == 110028);
  assert(unsigned(zero_extend(0x1add0, 64)) == 110032);
  assert(unsigned(zero_extend(0x1add4, 64)) == 110036);
  assert(unsigned(zero_extend(0x1add8, 64)) == 110040);
  assert(unsigned(zero_extend(0x1addc, 64)) == 110044);
  assert(unsigned(zero_extend(0x1ade0, 64)) == 110048);
  assert(unsigned(zero_extend(0x1ade4, 64)) == 110052);
  assert(unsigned(zero_extend(0x1ade8, 64)) == 110056);
  assert(unsigned(zero_extend(0x1adec, 64)) == 110060);
  assert(unsigned(zero_extend(0x1adf0, 64)) == 110064);
  assert(unsigned(zero_extend(0x1adf4, 64)) == 110068);
  assert(unsigned(zero_extend(0x1adf8, 64)) == 110072);
  assert(unsigned(zero_extend(0x1adfc, 64)) == 110076);
  assert(unsigned(zero_extend(0x1ae00, 64)) == 110080);
  assert(unsigned(zero_extend(0x1ae04, 64)) == 110084);
  assert(unsigned(zero_extend(0x1ae08, 64)) == 110088);
  assert(unsigned(zero_extend(0x1ae0c, 64)) == 110092);
  assert(unsigned(zero_extend(0x1ae10, 64)) == 110096);
  assert(unsigned(zero_extend(0x1ae14, 64)) == 110100);
  assert(unsigned(zero_extend(0x1ae18, 64)) == 110104);
  assert(unsigned(zero_extend(0x1ae1c, 64)) == 110108);
  assert(unsigned(zero_extend(0x1ae20, 64)) == 110112);
  assert(unsigned(zero_extend(0x1ae28, 64)) == 110120);
  assert(unsigned(zero_extend(0x1ae30, 64)) == 110128);
  assert(unsigned(zero_extend(0x1ae40, 64)) == 110144);
  assert(unsigned(zero_extend(0x1ae44, 64)) == 110148);
  assert(unsigned(zero_extend(0x1ae48, 64)) == 110152);
  assert(unsigned(zero_extend(0x1ae4c, 64)) == 110156);
  assert(unsigned(zero_extend(0x1ae50, 64)) == 110160);
  assert(unsigned(zero_extend(0x1ae54, 64)) == 110164);
  assert(unsigned(zero_extend(0x1ae58, 64)) == 110168);
  assert(unsigned(zero_extend(0x1ae5c, 64)) == 110172);
  assert(unsigned(zero_extend(0x1ae60, 64)) == 110176);
  assert(unsigned(zero_extend(0x1ae64, 64)) == 110180);
  assert(unsigned(zero_extend(0x1ae68, 64)) == 110184);
  assert(unsigned(zero_extend(0x1ae6c, 64)) == 110188);
  assert(unsigned(zero_extend(0x1ae70, 64)) == 110192);
  assert(unsigned(zero_extend(0x1ae74, 64)) == 110196);
  assert(unsigned(zero_extend(0x1ae78, 64)) == 110200);
  assert(unsigned(zero_extend(0x1ae80, 64)) == 110208);
  assert(unsigned(zero_extend(0x1ae88, 64)) == 110216);
  assert(unsigned(zero_extend(0x1aef0, 64)) == 110320);
  assert(unsigned(zero_extend(0x1aef4, 64)) == 110324);
  assert(unsigned(zero_extend(0x1aef8, 64)) == 110328);
  assert(unsigned(zero_extend(0x1aefc, 64)) == 110332);
  assert(unsigned(zero_extend(0x1af00, 64)) == 110336);
  assert(unsigned(zero_extend(0x1af04, 64)) == 110340);
  assert(unsigned(zero_extend(0x1af08, 64)) == 110344);
  assert(unsigned(zero_extend(0x1af0c, 64)) == 110348);
  assert(unsigned(zero_extend(0x1af10, 64)) == 110352);
  assert(unsigned(zero_extend(0x1af14, 64)) == 110356);
  assert(unsigned(zero_extend(0x1af18, 64)) == 110360);
  assert(unsigned(zero_extend(0x1af1c, 64)) == 110364);
  assert(unsigned(zero_extend(0x1af20, 64)) == 110368);
  assert(unsigned(zero_extend(0x1af24, 64)) == 110372);
  assert(unsigned(zero_extend(0x1af28, 64)) == 110376);
  assert(unsigned(zero_extend(0x1af2c, 64)) == 110380);
  assert(unsigned(zero_extend(0x1af30, 64)) == 110384);
  assert(unsigned(zero_extend(0x1af34, 64)) == 110388);
  assert(unsigned(zero_extend(0x1af38, 64)) == 110392);
  assert(unsigned(zero_extend(0x1af3c, 64)) == 110396);
  assert(unsigned(zero_extend(0x1af40, 64)) == 110400);
  assert(unsigned(zero_extend(0x1af44, 64)) == 110404);
  assert(unsigned(zero_extend(0x1af48, 64)) == 110408);
  assert(unsigned(zero_extend(0x1af4c, 64)) == 110412);
  assert(unsigned(zero_extend(0x1af50, 64)) == 110416);
  assert(unsigned(zero_extend(0x1af54, 64)) == 110420);
  assert(unsigned(zero_extend(0x1af58, 64)) == 110424);
  assert(unsigned(zero_extend(0x1af5c, 64)) == 110428);
  assert(unsigned(zero_extend(0x1af60, 64)) == 110432);
  assert(unsigned(zero_extend(0x1af64, 64)) == 110436);
  assert(unsigned(zero_extend(0x1af68, 64)) == 110440);
  assert(unsigned(zero_extend(0x1af6c, 64)) == 110444);
  assert(unsigned(zero_extend(0x1af70, 64)) == 110448);
  assert(unsigned(zero_extend(0x1af74, 64)) == 110452);
  assert(unsigned(zero_extend(0x1af78, 64)) == 110456);
  assert(unsigned(zero_extend(0x1af7c, 64)) == 110460);
  assert(unsigned(zero_extend(0x1af80, 64)) == 110464);
  assert(unsigned(zero_extend(0x1af84, 64)) == 110468);
  assert(unsigned(zero_extend(0x1af88, 64)) == 110472);
  assert(unsigned(zero_extend(0x1af8c, 64)) == 110476);
  assert(unsigned(zero_extend(0x1af90, 64)) == 110480);
  assert(unsigned(zero_extend(0x1af94, 64)) == 110484);
  assert(unsigned(zero_extend(0x1af98, 64)) == 110488);
  assert(unsigned(zero_extend(0x1af9c, 64)) == 110492);
  assert(unsigned(zero_extend(0x1afa0, 64)) == 110496);
  assert(unsigned(zero_extend(0x1afa4, 64)) == 110500);
  assert(unsigned(zero_extend(0x1afa8, 64)) == 110504);
  assert(unsigned(zero_extend(0x1afac, 64)) == 110508);
  assert(unsigned(zero_extend(0x1afb0, 64)) == 110512);
  assert(unsigned(zero_extend(0x1afb4, 64)) == 110516);
  assert(unsigned(zero_extend(0x1afb8, 64)) == 110520);
  assert(unsigned(zero_extend(0x1afbc, 64)) == 110524);
  assert(unsigned(zero_extend(0x1afc0, 64)) == 110528);
  assert(unsigned(zero_extend(0x1afc4, 64)) == 110532);
  assert(unsigned(zero_extend(0x1afc8, 64)) == 110536);
  assert(unsigned(zero_extend(0x1afcc, 64)) == 110540);
  assert(unsigned(zero_extend(0x1afd0, 64)) == 110544);
  assert(unsigned(zero_extend(0x1afd4, 64)) == 110548);
  assert(unsigned(zero_extend(0x1afd8, 64)) == 110552);
  assert(unsigned(zero_extend(0x1afdc, 64)) == 110556);
  assert(unsigned(zero_extend(0x1afe0, 64)) == 110560);
  assert(unsigned(zero_extend(0x1afe4, 64)) == 110564);
  assert(unsigned(zero_extend(0x1afe8, 64)) == 110568);
  assert(unsigned(zero_extend(0x1afec, 64)) == 110572);
  assert(unsigned(zero_extend(0x1aff0, 64)) == 110576);
  assert(unsigned(zero_extend(0x1aff4, 64)) == 110580);
  assert(unsigned(zero_extend(0x1aff8, 64)) == 110584);
  assert(unsigned(zero_extend(0x1affc, 64)) == 110588);
  assert(unsigned(zero_extend(0x1b, 64)) == 27);
  assert(unsigned(zero_extend(0x1b000, 64)) == 110592);
  assert(unsigned(zero_extend(0x1b004, 64)) == 110596);
  assert(unsigned(zero_extend(0x1b008, 64)) == 110600);
  assert(unsigned(zero_extend(0x1b00c, 64)) == 110604);
  assert(unsigned(zero_extend(0x1b010, 64)) == 110608);
  assert(unsigned(zero_extend(0x1b014, 64)) == 110612);
  assert(unsigned(zero_extend(0x1b018, 64)) == 110616);
  assert(unsigned(zero_extend(0x1b01c, 64)) == 110620);
  assert(unsigned(zero_extend(0x1b020, 64)) == 110624);
  assert(unsigned(zero_extend(0x1b024, 64)) == 110628);
  assert(unsigned(zero_extend(0x1b028, 64)) == 110632);
  assert(unsigned(zero_extend(0x1b02c, 64)) == 110636);
  assert(unsigned(zero_extend(0x1b030, 64)) == 110640);
  assert(unsigned(zero_extend(0x1b034, 64)) == 110644);
  assert(unsigned(zero_extend(0x1b038, 64)) == 110648);
  assert(unsigned(zero_extend(0x1b03c, 64)) == 110652);
  assert(unsigned(zero_extend(0x1b040, 64)) == 110656);
  assert(unsigned(zero_extend(0x1b044, 64)) == 110660);
  assert(unsigned(zero_extend(0x1b048, 64)) == 110664);
  assert(unsigned(zero_extend(0x1b04c, 64)) == 110668);
  assert(unsigned(zero_extend(0x1b050, 64)) == 110672);
  assert(unsigned(zero_extend(0x1b054, 64)) == 110676);
  assert(unsigned(zero_extend(0x1b058, 64)) == 110680);
  assert(unsigned(zero_extend(0x1b05c, 64)) == 110684);
  assert(unsigned(zero_extend(0x1b060, 64)) == 110688);
  assert(unsigned(zero_extend(0x1b064, 64)) == 110692);
  assert(unsigned(zero_extend(0x1b068, 64)) == 110696);
  assert(unsigned(zero_extend(0x1b06c, 64)) == 110700);
  assert(unsigned(zero_extend(0x1b070, 64)) == 110704);
  assert(unsigned(zero_extend(0x1b074, 64)) == 110708);
  assert(unsigned(zero_extend(0x1b078, 64)) == 110712);
  assert(unsigned(zero_extend(0x1b07c, 64)) == 110716);
  assert(unsigned(zero_extend(0x1b080, 64)) == 110720);
  assert(unsigned(zero_extend(0x1b088, 64)) == 110728);
  assert(unsigned(zero_extend(0x1b090, 64)) == 110736);
  assert(unsigned(zero_extend(0x1b098, 64)) == 110744);
  assert(unsigned(zero_extend(0x1b09c, 64)) == 110748);
  assert(unsigned(zero_extend(0x1b0a0, 64)) == 110752);
  assert(unsigned(zero_extend(0x1b0a4, 64)) == 110756);
  assert(unsigned(zero_extend(0x1b0a8, 64)) == 110760);
  assert(unsigned(zero_extend(0x1b0ac, 64)) == 110764);
  assert(unsigned(zero_extend(0x1b0b0, 64)) == 110768);
  assert(unsigned(zero_extend(0x1b0b4, 64)) == 110772);
  assert(unsigned(zero_extend(0x1b0b8, 64)) == 110776);
  assert(unsigned(zero_extend(0x1b0bc, 64)) == 110780);
  assert(unsigned(zero_extend(0x1b0c0, 64)) == 110784);
  assert(unsigned(zero_extend(0x1b0c4, 64)) == 110788);
  assert(unsigned(zero_extend(0x1b0c8, 64)) == 110792);
  assert(unsigned(zero_extend(0x1b0cc, 64)) == 110796);
  assert(unsigned(zero_extend(0x1b0d0, 64)) == 110800);
  assert(unsigned(zero_extend(0x1b0d4, 64)) == 110804);
  assert(unsigned(zero_extend(0x1b0d8, 64)) == 110808);
  assert(unsigned(zero_extend(0x1b0dc, 64)) == 110812);
  assert(unsigned(zero_extend(0x1b0e0, 64)) == 110816);
  assert(unsigned(zero_extend(0x1b0e4, 64)) == 110820);
  assert(unsigned(zero_extend(0x1b0e8, 64)) == 110824);
  assert(unsigned(zero_extend(0x1b0ec, 64)) == 110828);
  assert(unsigned(zero_extend(0x1b0f0, 64)) == 110832);
  assert(unsigned(zero_extend(0x1b0f4, 64)) == 110836);
  assert(unsigned(zero_extend(0x1b0f8, 64)) == 110840);
  assert(unsigned(zero_extend(0x1b0fc, 64)) == 110844);
  assert(unsigned(zero_extend(0x1b100, 64)) == 110848);
  assert(unsigned(zero_extend(0x1b104, 64)) == 110852);
  assert(unsigned(zero_extend(0x1b108, 64)) == 110856);
  assert(unsigned(zero_extend(0x1b10c, 64)) == 110860);
  assert(unsigned(zero_extend(0x1b110, 64)) == 110864);
  assert(unsigned(zero_extend(0x1b114, 64)) == 110868);
  assert(unsigned(zero_extend(0x1b118, 64)) == 110872);
  assert(unsigned(zero_extend(0x1b11c, 64)) == 110876);
  assert(unsigned(zero_extend(0x1b120, 64)) == 110880);
  assert(unsigned(zero_extend(0x1b124, 64)) == 110884);
  assert(unsigned(zero_extend(0x1b128, 64)) == 110888);
  assert(unsigned(zero_extend(0x1b12c, 64)) == 110892);
  assert(unsigned(zero_extend(0x1b130, 64)) == 110896);
  assert(unsigned(zero_extend(0x1b134, 64)) == 110900);
  assert(unsigned(zero_extend(0x1b138, 64)) == 110904);
  assert(unsigned(zero_extend(0x1b13c, 64)) == 110908);
  assert(unsigned(zero_extend(0x1b140, 64)) == 110912);
  assert(unsigned(zero_extend(0x1b144, 64)) == 110916);
  assert(unsigned(zero_extend(0x1b148, 64)) == 110920);
  assert(unsigned(zero_extend(0x1b14c, 64)) == 110924);
  assert(unsigned(zero_extend(0x1b150, 64)) == 110928);
  assert(unsigned(zero_extend(0x1b154, 64)) == 110932);
  assert(unsigned(zero_extend(0x1b158, 64)) == 110936);
  assert(unsigned(zero_extend(0x1b15c, 64)) == 110940);
  assert(unsigned(zero_extend(0x1b160, 64)) == 110944);
  assert(unsigned(zero_extend(0x1b164, 64)) == 110948);
  assert(unsigned(zero_extend(0x1b168, 64)) == 110952);
  assert(unsigned(zero_extend(0x1b16c, 64)) == 110956);
  assert(unsigned(zero_extend(0x1b170, 64)) == 110960);
  assert(unsigned(zero_extend(0x1b174, 64)) == 110964);
  assert(unsigned(zero_extend(0x1b178, 64)) == 110968);
  assert(unsigned(zero_extend(0x1b17c, 64)) == 110972);
  assert(unsigned(zero_extend(0x1b180, 64)) == 110976);
  assert(unsigned(zero_extend(0x1b184, 64)) == 110980);
  assert(unsigned(zero_extend(0x1b188, 64)) == 110984);
  assert(unsigned(zero_extend(0x1b18c, 64)) == 110988);
  assert(unsigned(zero_extend(0x1b190, 64)) == 110992);
  assert(unsigned(zero_extend(0x1b194, 64)) == 110996);
  assert(unsigned(zero_extend(0x1b198, 64)) == 111000);
  assert(unsigned(zero_extend(0x1b19c, 64)) == 111004);
  assert(unsigned(zero_extend(0x1b1a0, 64)) == 111008);
  assert(unsigned(zero_extend(0x1b1a4, 64)) == 111012);
  assert(unsigned(zero_extend(0x1b1a8, 64)) == 111016);
  assert(unsigned(zero_extend(0x1b1ac, 64)) == 111020);
  assert(unsigned(zero_extend(0x1b1b0, 64)) == 111024);
  assert(unsigned(zero_extend(0x1b1b4, 64)) == 111028);
  assert(unsigned(zero_extend(0x1b1b8, 64)) == 111032);
  assert(unsigned(zero_extend(0x1b1bc, 64)) == 111036);
  assert(unsigned(zero_extend(0x1b1c0, 64)) == 111040);
  assert(unsigned(zero_extend(0x1b1c4, 64)) == 111044);
  assert(unsigned(zero_extend(0x1b1c8, 64)) == 111048);
  assert(unsigned(zero_extend(0x1b1cc, 64)) == 111052);
  assert(unsigned(zero_extend(0x1b1d0, 64)) == 111056);
  assert(unsigned(zero_extend(0x1b1d4, 64)) == 111060);
  assert(unsigned(zero_extend(0x1b1d8, 64)) == 111064);
  assert(unsigned(zero_extend(0x1b1dc, 64)) == 111068);
  assert(unsigned(zero_extend(0x1b1e0, 64)) == 111072);
  assert(unsigned(zero_extend(0x1b1e4, 64)) == 111076);
  assert(unsigned(zero_extend(0x1b1e8, 64)) == 111080);
  assert(unsigned(zero_extend(0x1b1f8, 64)) == 111096);
  assert(unsigned(zero_extend(0x1b1fc, 64)) == 111100);
  assert(unsigned(zero_extend(0x1b200, 64)) == 111104);
  assert(unsigned(zero_extend(0x1b204, 64)) == 111108);
  assert(unsigned(zero_extend(0x1b208, 64)) == 111112);
  assert(unsigned(zero_extend(0x1b20c, 64)) == 111116);
  assert(unsigned(zero_extend(0x1b210, 64)) == 111120);
  assert(unsigned(zero_extend(0x1b214, 64)) == 111124);
  assert(unsigned(zero_extend(0x1b218, 64)) == 111128);
  assert(unsigned(zero_extend(0x1b21c, 64)) == 111132);
  assert(unsigned(zero_extend(0x1b220, 64)) == 111136);
  assert(unsigned(zero_extend(0x1b224, 64)) == 111140);
  assert(unsigned(zero_extend(0x1b228, 64)) == 111144);
  assert(unsigned(zero_extend(0x1b22c, 64)) == 111148);
  assert(unsigned(zero_extend(0x1b230, 64)) == 111152);
  assert(unsigned(zero_extend(0x1b238, 64)) == 111160);
  assert(unsigned(zero_extend(0x1b240, 64)) == 111168);
  assert(unsigned(zero_extend(0x1b248, 64)) == 111176);
  assert(unsigned(zero_extend(0x1b250, 64)) == 111184);
  assert(unsigned(zero_extend(0x1b254, 64)) == 111188);
  assert(unsigned(zero_extend(0x1b258, 64)) == 111192);
  assert(unsigned(zero_extend(0x1b25c, 64)) == 111196);
  assert(unsigned(zero_extend(0x1b260, 64)) == 111200);
  assert(unsigned(zero_extend(0x1b264, 64)) == 111204);
  assert(unsigned(zero_extend(0x1b268, 64)) == 111208);
  assert(unsigned(zero_extend(0x1b26c, 64)) == 111212);
  assert(unsigned(zero_extend(0x1b270, 64)) == 111216);
  assert(unsigned(zero_extend(0x1b274, 64)) == 111220);
  assert(unsigned(zero_extend(0x1b278, 64)) == 111224);
  assert(unsigned(zero_extend(0x1b27c, 64)) == 111228);
  assert(unsigned(zero_extend(0x1b280, 64)) == 111232);
  assert(unsigned(zero_extend(0x1b288, 64)) == 111240);
  assert(unsigned(zero_extend(0x1b290, 64)) == 111248);
  assert(unsigned(zero_extend(0x1b298, 64)) == 111256);
  assert(unsigned(zero_extend(0x1b2a0, 64)) == 111264);
  assert(unsigned(zero_extend(0x1b2a8, 64)) == 111272);
  assert(unsigned(zero_extend(0x1b690, 64)) == 112272);
  assert(unsigned(zero_extend(0x1b694, 64)) == 112276);
  assert(unsigned(zero_extend(0x1b698, 64)) == 112280);
  assert(unsigned(zero_extend(0x1b69c, 64)) == 112284);
  assert(unsigned(zero_extend(0x1b6a0, 64)) == 112288);
  assert(unsigned(zero_extend(0x1b6a4, 64)) == 112292);
  assert(unsigned(zero_extend(0x1b6a8, 64)) == 112296);
  assert(unsigned(zero_extend(0x1b6ac, 64)) == 112300);
  assert(unsigned(zero_extend(0x1b6b0, 64)) == 112304);
  assert(unsigned(zero_extend(0x1b6b4, 64)) == 112308);
  assert(unsigned(zero_extend(0x1b6b8, 64)) == 112312);
  assert(unsigned(zero_extend(0x1b6bc, 64)) == 112316);
  assert(unsigned(zero_extend(0x1b6c0, 64)) == 112320);
  assert(unsigned(zero_extend(0x1b6c4, 64)) == 112324);
  assert(unsigned(zero_extend(0x1b6d4, 64)) == 112340);
  assert(unsigned(zero_extend(0x1b6d8, 64)) == 112344);
  assert(unsigned(zero_extend(0x1b6dc, 64)) == 112348);
  assert(unsigned(zero_extend(0x1b6e0, 64)) == 112352);
  assert(unsigned(zero_extend(0x1b6e4, 64)) == 112356);
  assert(unsigned(zero_extend(0x1b6e8, 64)) == 112360);
  assert(unsigned(zero_extend(0x1b6ec, 64)) == 112364);
  assert(unsigned(zero_extend(0x1b6f0, 64)) == 112368);
  assert(unsigned(zero_extend(0x1b6f4, 64)) == 112372);
  assert(unsigned(zero_extend(0x1b6f8, 64)) == 112376);
  assert(unsigned(zero_extend(0x1b6fc, 64)) == 112380);
  assert(unsigned(zero_extend(0x1b700, 64)) == 112384);
  assert(unsigned(zero_extend(0x1b704, 64)) == 112388);
  assert(unsigned(zero_extend(0x1b708, 64)) == 112392);
  assert(unsigned(zero_extend(0x1b70c, 64)) == 112396);
  assert(unsigned(zero_extend(0x1b710, 64)) == 112400);
  assert(unsigned(zero_extend(0x1b714, 64)) == 112404);
  assert(unsigned(zero_extend(0x1b718, 64)) == 112408);
  assert(unsigned(zero_extend(0x1b71c, 64)) == 112412);
  assert(unsigned(zero_extend(0x1b720, 64)) == 112416);
  assert(unsigned(zero_extend(0x1b724, 64)) == 112420);
  assert(unsigned(zero_extend(0x1b728, 64)) == 112424);
  assert(unsigned(zero_extend(0x1b72c, 64)) == 112428);
  assert(unsigned(zero_extend(0x1b730, 64)) == 112432);
  assert(unsigned(zero_extend(0x1b734, 64)) == 112436);
  assert(unsigned(zero_extend(0x1b738, 64)) == 112440);
  assert(unsigned(zero_extend(0x1b73c, 64)) == 112444);
  assert(unsigned(zero_extend(0x1b740, 64)) == 112448);
  assert(unsigned(zero_extend(0x1b744, 64)) == 112452);
  assert(unsigned(zero_extend(0x1b748, 64)) == 112456);
  assert(unsigned(zero_extend(0x1b74c, 64)) == 112460);
  assert(unsigned(zero_extend(0x1b750, 64)) == 112464);
  assert(unsigned(zero_extend(0x1b754, 64)) == 112468);
  assert(unsigned(zero_extend(0x1b758, 64)) == 112472);
  assert(unsigned(zero_extend(0x1b75c, 64)) == 112476);
  assert(unsigned(zero_extend(0x1b760, 64)) == 112480);
  assert(unsigned(zero_extend(0x1b764, 64)) == 112484);
  assert(unsigned(zero_extend(0x1b768, 64)) == 112488);
  assert(unsigned(zero_extend(0x1b76c, 64)) == 112492);
  assert(unsigned(zero_extend(0x1b770, 64)) == 112496);
  assert(unsigned(zero_extend(0x1b774, 64)) == 112500);
  assert(unsigned(zero_extend(0x1b778, 64)) == 112504);
  assert(unsigned(zero_extend(0x1b77c, 64)) == 112508);
  assert(unsigned(zero_extend(0x1b780, 64)) == 112512);
  assert(unsigned(zero_extend(0x1b784, 64)) == 112516);
  assert(unsigned(zero_extend(0x1b788, 64)) == 112520);
  assert(unsigned(zero_extend(0x1b78c, 64)) == 112524);
  assert(unsigned(zero_extend(0x1b7b8, 64)) == 112568);
  assert(unsigned(zero_extend(0x1b7bc, 64)) == 112572);
  assert(unsigned(zero_extend(0x1b7c0, 64)) == 112576);
  assert(unsigned(zero_extend(0x1b7c4, 64)) == 112580);
  assert(unsigned(zero_extend(0x1b7c8, 64)) == 112584);
  assert(unsigned(zero_extend(0x1b7cc, 64)) == 112588);
  assert(unsigned(zero_extend(0x1b7d0, 64)) == 112592);
  assert(unsigned(zero_extend(0x1b7d4, 64)) == 112596);
  assert(unsigned(zero_extend(0x1b7d8, 64)) == 112600);
  assert(unsigned(zero_extend(0x1b7dc, 64)) == 112604);
  assert(unsigned(zero_extend(0x1b7e0, 64)) == 112608);
  assert(unsigned(zero_extend(0x1b7e8, 64)) == 112616);
  assert(unsigned(zero_extend(0x1b7f0, 64)) == 112624);
  assert(unsigned(zero_extend(0x1b810, 64)) == 112656);
  assert(unsigned(zero_extend(0x1b814, 64)) == 112660);
  assert(unsigned(zero_extend(0x1b818, 64)) == 112664);
  assert(unsigned(zero_extend(0x1b81c, 64)) == 112668);
  assert(unsigned(zero_extend(0x1b820, 64)) == 112672);
  assert(unsigned(zero_extend(0x1b824, 64)) == 112676);
  assert(unsigned(zero_extend(0x1b828, 64)) == 112680);
  assert(unsigned(zero_extend(0x1b82c, 64)) == 112684);
  assert(unsigned(zero_extend(0x1b830, 64)) == 112688);
  assert(unsigned(zero_extend(0x1b838, 64)) == 112696);
  assert(unsigned(zero_extend(0x1b83c, 64)) == 112700);
  assert(unsigned(zero_extend(0x1b840, 64)) == 112704);
  assert(unsigned(zero_extend(0x1b844, 64)) == 112708);
  assert(unsigned(zero_extend(0x1b848, 64)) == 112712);
  assert(unsigned(zero_extend(0x1b84c, 64)) == 112716);
  assert(unsigned(zero_extend(0x1b850, 64)) == 112720);
  assert(unsigned(zero_extend(0x1b854, 64)) == 112724);
  assert(unsigned(zero_extend(0x1b858, 64)) == 112728);
  assert(unsigned(zero_extend(0x1b85c, 64)) == 112732);
  assert(unsigned(zero_extend(0x1b860, 64)) == 112736);
  assert(unsigned(zero_extend(0x1b864, 64)) == 112740);
  assert(unsigned(zero_extend(0x1b868, 64)) == 112744);
  assert(unsigned(zero_extend(0x1b86c, 64)) == 112748);
  assert(unsigned(zero_extend(0x1b870, 64)) == 112752);
  assert(unsigned(zero_extend(0x1b874, 64)) == 112756);
  assert(unsigned(zero_extend(0x1b878, 64)) == 112760);
  assert(unsigned(zero_extend(0x1b87c, 64)) == 112764);
  assert(unsigned(zero_extend(0x1b888, 64)) == 112776);
  assert(unsigned(zero_extend(0x1b890, 64)) == 112784);
  assert(unsigned(zero_extend(0x1b894, 64)) == 112788);
  assert(unsigned(zero_extend(0x1b898, 64)) == 112792);
  assert(unsigned(zero_extend(0x1b89c, 64)) == 112796);
  assert(unsigned(zero_extend(0x1b8a0, 64)) == 112800);
  assert(unsigned(zero_extend(0x1b8a4, 64)) == 112804);
  assert(unsigned(zero_extend(0x1b8a8, 64)) == 112808);
  assert(unsigned(zero_extend(0x1b8ac, 64)) == 112812);
  assert(unsigned(zero_extend(0x1b8b0, 64)) == 112816);
  assert(unsigned(zero_extend(0x1b8b4, 64)) == 112820);
  assert(unsigned(zero_extend(0x1b8b8, 64)) == 112824);
  assert(unsigned(zero_extend(0x1b8bc, 64)) == 112828);
  assert(unsigned(zero_extend(0x1b8c0, 64)) == 112832);
  assert(unsigned(zero_extend(0x1b8c4, 64)) == 112836);
  assert(unsigned(zero_extend(0x1b8c8, 64)) == 112840);
  assert(unsigned(zero_extend(0x1b8cc, 64)) == 112844);
  assert(unsigned(zero_extend(0x1b8d0, 64)) == 112848);
  assert(unsigned(zero_extend(0x1b8d4, 64)) == 112852);
  assert(unsigned(zero_extend(0x1b910, 64)) == 112912);
  assert(unsigned(zero_extend(0x1b914, 64)) == 112916);
  assert(unsigned(zero_extend(0x1b918, 64)) == 112920);
  assert(unsigned(zero_extend(0x1b91c, 64)) == 112924);
  assert(unsigned(zero_extend(0x1b920, 64)) == 112928);
  assert(unsigned(zero_extend(0x1b924, 64)) == 112932);
  assert(unsigned(zero_extend(0x1b928, 64)) == 112936);
  assert(unsigned(zero_extend(0x1b92c, 64)) == 112940);
  assert(unsigned(zero_extend(0x1b930, 64)) == 112944);
  assert(unsigned(zero_extend(0x1b934, 64)) == 112948);
  assert(unsigned(zero_extend(0x1b938, 64)) == 112952);
  assert(unsigned(zero_extend(0x1b93c, 64)) == 112956);
  assert(unsigned(zero_extend(0x1b940, 64)) == 112960);
  assert(unsigned(zero_extend(0x1b944, 64)) == 112964);
  assert(unsigned(zero_extend(0x1b948, 64)) == 112968);
  assert(unsigned(zero_extend(0x1b94c, 64)) == 112972);
  assert(unsigned(zero_extend(0x1b950, 64)) == 112976);
  assert(unsigned(zero_extend(0x1b954, 64)) == 112980);
  assert(unsigned(zero_extend(0x1b958, 64)) == 112984);
  assert(unsigned(zero_extend(0x1b95c, 64)) == 112988);
  assert(unsigned(zero_extend(0x1b960, 64)) == 112992);
  assert(unsigned(zero_extend(0x1b964, 64)) == 112996);
  assert(unsigned(zero_extend(0x1b968, 64)) == 113000);
  assert(unsigned(zero_extend(0x1b96c, 64)) == 113004);
  assert(unsigned(zero_extend(0x1b970, 64)) == 113008);
  assert(unsigned(zero_extend(0x1b974, 64)) == 113012);
  assert(unsigned(zero_extend(0x1b978, 64)) == 113016);
  assert(unsigned(zero_extend(0x1b97c, 64)) == 113020);
  assert(unsigned(zero_extend(0x1b980, 64)) == 113024);
  assert(unsigned(zero_extend(0x1b984, 64)) == 113028);
  assert(unsigned(zero_extend(0x1b988, 64)) == 113032);
  assert(unsigned(zero_extend(0x1b98c, 64)) == 113036);
  assert(unsigned(zero_extend(0x1b990, 64)) == 113040);
  assert(unsigned(zero_extend(0x1b994, 64)) == 113044);
  assert(unsigned(zero_extend(0x1b998, 64)) == 113048);
  assert(unsigned(zero_extend(0x1b99c, 64)) == 113052);
  assert(unsigned(zero_extend(0x1b9a0, 64)) == 113056);
  assert(unsigned(zero_extend(0x1b9a4, 64)) == 113060);
  assert(unsigned(zero_extend(0x1b9a8, 64)) == 113064);
  assert(unsigned(zero_extend(0x1b9ac, 64)) == 113068);
  assert(unsigned(zero_extend(0x1b9b0, 64)) == 113072);
  assert(unsigned(zero_extend(0x1b9b4, 64)) == 113076);
  assert(unsigned(zero_extend(0x1b9b8, 64)) == 113080);
  assert(unsigned(zero_extend(0x1b9bc, 64)) == 113084);
  assert(unsigned(zero_extend(0x1b9c0, 64)) == 113088);
  assert(unsigned(zero_extend(0x1b9c4, 64)) == 113092);
  assert(unsigned(zero_extend(0x1b9c8, 64)) == 113096);
  assert(unsigned(zero_extend(0x1b9cc, 64)) == 113100);
  assert(unsigned(zero_extend(0x1ba00, 64)) == 113152);
  assert(unsigned(zero_extend(0x1ba04, 64)) == 113156);
  assert(unsigned(zero_extend(0x1ba08, 64)) == 113160);
  assert(unsigned(zero_extend(0x1ba0c, 64)) == 113164);
  assert(unsigned(zero_extend(0x1ba10, 64)) == 113168);
  assert(unsigned(zero_extend(0x1ba14, 64)) == 113172);
  assert(unsigned(zero_extend(0x1ba18, 64)) == 113176);
  assert(unsigned(zero_extend(0x1ba1c, 64)) == 113180);
  assert(unsigned(zero_extend(0x1ba20, 64)) == 113184);
  assert(unsigned(zero_extend(0x1ba24, 64)) == 113188);
  assert(unsigned(zero_extend(0x1ba7c, 64)) == 113276);
  assert(unsigned(zero_extend(0x1ba80, 64)) == 113280);
  assert(unsigned(zero_extend(0x1ba84, 64)) == 113284);
  assert(unsigned(zero_extend(0x1ba88, 64)) == 113288);
  assert(unsigned(zero_extend(0x1ba8c, 64)) == 113292);
  assert(unsigned(zero_extend(0x1ba90, 64)) == 113296);
  assert(unsigned(zero_extend(0x1ba94, 64)) == 113300);
  assert(unsigned(zero_extend(0x1ba98, 64)) == 113304);
  assert(unsigned(zero_extend(0x1ba9c, 64)) == 113308);
  assert(unsigned(zero_extend(0x1baa0, 64)) == 113312);
  assert(unsigned(zero_extend(0x1baa4, 64)) == 113316);
  assert(unsigned(zero_extend(0x1baa8, 64)) == 113320);
  assert(unsigned(zero_extend(0x1bad0, 64)) == 113360);
  assert(unsigned(zero_extend(0x1bad4, 64)) == 113364);
  assert(unsigned(zero_extend(0x1bad8, 64)) == 113368);
  assert(unsigned(zero_extend(0x1badc, 64)) == 113372);
  assert(unsigned(zero_extend(0x1bae0, 64)) == 113376);
  assert(unsigned(zero_extend(0x1bae4, 64)) == 113380);
  assert(unsigned(zero_extend(0x1bae8, 64)) == 113384);
  assert(unsigned(zero_extend(0x1baec, 64)) == 113388);
  assert(unsigned(zero_extend(0x1baf0, 64)) == 113392);
  assert(unsigned(zero_extend(0x1baf4, 64)) == 113396);
  assert(unsigned(zero_extend(0x1baf8, 64)) == 113400);
  assert(unsigned(zero_extend(0x1bafc, 64)) == 113404);
  assert(unsigned(zero_extend(0x1bb00, 64)) == 113408);
  assert(unsigned(zero_extend(0x1bb08, 64)) == 113416);
  assert(unsigned(zero_extend(0x1bb28, 64)) == 113448);
  assert(unsigned(zero_extend(0x1bb2c, 64)) == 113452);
  assert(unsigned(zero_extend(0x1bb30, 64)) == 113456);
  assert(unsigned(zero_extend(0x1bb34, 64)) == 113460);
  assert(unsigned(zero_extend(0x1bb38, 64)) == 113464);
  assert(unsigned(zero_extend(0x1bb3c, 64)) == 113468);
  assert(unsigned(zero_extend(0x1bb40, 64)) == 113472);
  assert(unsigned(zero_extend(0x1bb44, 64)) == 113476);
  assert(unsigned(zero_extend(0x1bb48, 64)) == 113480);
  assert(unsigned(zero_extend(0x1bb50, 64)) == 113488);
  assert(unsigned(zero_extend(0x1bb58, 64)) == 113496);
  assert(unsigned(zero_extend(0x1bb60, 64)) == 113504);
  assert(unsigned(zero_extend(0x1bba8, 64)) == 113576);
  assert(unsigned(zero_extend(0x1bd68, 64)) == 114024);
  assert(unsigned(zero_extend(0x1bd6c, 64)) == 114028);
  assert(unsigned(zero_extend(0x1bd70, 64)) == 114032);
  assert(unsigned(zero_extend(0x1bd74, 64)) == 114036);
  assert(unsigned(zero_extend(0x1bd78, 64)) == 114040);
  assert(unsigned(zero_extend(0x1bd7c, 64)) == 114044);
  assert(unsigned(zero_extend(0x1bd80, 64)) == 114048);
  assert(unsigned(zero_extend(0x1bd84, 64)) == 114052);
  assert(unsigned(zero_extend(0x1bd88, 64)) == 114056);
  assert(unsigned(zero_extend(0x1bd8c, 64)) == 114060);
  assert(unsigned(zero_extend(0x1bd90, 64)) == 114064);
  assert(unsigned(zero_extend(0x1bd94, 64)) == 114068);
  assert(unsigned(zero_extend(0x1bd98, 64)) == 114072);
  assert(unsigned(zero_extend(0x1bd9c, 64)) == 114076);
  assert(unsigned(zero_extend(0x1bda0, 64)) == 114080);
  assert(unsigned(zero_extend(0x1bda4, 64)) == 114084);
  assert(unsigned(zero_extend(0x1bda8, 64)) == 114088);
  assert(unsigned(zero_extend(0x1bdac, 64)) == 114092);
  assert(unsigned(zero_extend(0x1bdb0, 64)) == 114096);
  assert(unsigned(zero_extend(0x1bdb4, 64)) == 114100);
  assert(unsigned(zero_extend(0x1bdb8, 64)) == 114104);
  assert(unsigned(zero_extend(0x1bdbc, 64)) == 114108);
  assert(unsigned(zero_extend(0x1bdc0, 64)) == 114112);
  assert(unsigned(zero_extend(0x1bdc4, 64)) == 114116);
  assert(unsigned(zero_extend(0x1bdc8, 64)) == 114120);
  assert(unsigned(zero_extend(0x1bdcc, 64)) == 114124);
  assert(unsigned(zero_extend(0x1bdd0, 64)) == 114128);
  assert(unsigned(zero_extend(0x1bdd4, 64)) == 114132);
  assert(unsigned(zero_extend(0x1bdd8, 64)) == 114136);
  assert(unsigned(zero_extend(0x1bddc, 64)) == 114140);
  assert(unsigned(zero_extend(0x1bde0, 64)) == 114144);
  assert(unsigned(zero_extend(0x1bde4, 64)) == 114148);
  assert(unsigned(zero_extend(0x1bde8, 64)) == 114152);
  assert(unsigned(zero_extend(0x1bdec, 64)) == 114156);
  assert(unsigned(zero_extend(0x1bdf0, 64)) == 114160);
  assert(unsigned(zero_extend(0x1bdf4, 64)) == 114164);
  assert(unsigned(zero_extend(0x1bdf8, 64)) == 114168);
  assert(unsigned(zero_extend(0x1bdfc, 64)) == 114172);
  assert(unsigned(zero_extend(0x1be00, 64)) == 114176);
  assert(unsigned(zero_extend(0x1be04, 64)) == 114180);
  assert(unsigned(zero_extend(0x1be08, 64)) == 114184);
  assert(unsigned(zero_extend(0x1be0c, 64)) == 114188);
  assert(unsigned(zero_extend(0x1be10, 64)) == 114192);
  assert(unsigned(zero_extend(0x1be14, 64)) == 114196);
  assert(unsigned(zero_extend(0x1be18, 64)) == 114200);
  assert(unsigned(zero_extend(0x1be1c, 64)) == 114204);
  assert(unsigned(zero_extend(0x1be20, 64)) == 114208);
  assert(unsigned(zero_extend(0x1be24, 64)) == 114212);
  assert(unsigned(zero_extend(0x1be28, 64)) == 114216);
  assert(unsigned(zero_extend(0x1be2c, 64)) == 114220);
  assert(unsigned(zero_extend(0x1be30, 64)) == 114224);
  assert(unsigned(zero_extend(0x1be34, 64)) == 114228);
  assert(unsigned(zero_extend(0x1be38, 64)) == 114232);
  assert(unsigned(zero_extend(0x1be3c, 64)) == 114236);
  assert(unsigned(zero_extend(0x1be40, 64)) == 114240);
  assert(unsigned(zero_extend(0x1be44, 64)) == 114244);
  assert(unsigned(zero_extend(0x1be48, 64)) == 114248);
  assert(unsigned(zero_extend(0x1be4c, 64)) == 114252);
  assert(unsigned(zero_extend(0x1be50, 64)) == 114256);
  assert(unsigned(zero_extend(0x1be54, 64)) == 114260);
  assert(unsigned(zero_extend(0x1be58, 64)) == 114264);
  assert(unsigned(zero_extend(0x1be5c, 64)) == 114268);
  assert(unsigned(zero_extend(0x1be60, 64)) == 114272);
  assert(unsigned(zero_extend(0x1be64, 64)) == 114276);
  assert(unsigned(zero_extend(0x1be68, 64)) == 114280);
  assert(unsigned(zero_extend(0x1be6c, 64)) == 114284);
  assert(unsigned(zero_extend(0x1be70, 64)) == 114288);
  assert(unsigned(zero_extend(0x1be74, 64)) == 114292);
  assert(unsigned(zero_extend(0x1be78, 64)) == 114296);
  assert(unsigned(zero_extend(0x1be7c, 64)) == 114300);
  assert(unsigned(zero_extend(0x1be80, 64)) == 114304);
  assert(unsigned(zero_extend(0x1be84, 64)) == 114308);
  assert(unsigned(zero_extend(0x1be88, 64)) == 114312);
  assert(unsigned(zero_extend(0x1be8c, 64)) == 114316);
  assert(unsigned(zero_extend(0x1be90, 64)) == 114320);
  assert(unsigned(zero_extend(0x1be94, 64)) == 114324);
  assert(unsigned(zero_extend(0x1be98, 64)) == 114328);
  assert(unsigned(zero_extend(0x1be9c, 64)) == 114332);
  assert(unsigned(zero_extend(0x1bea0, 64)) == 114336);
  assert(unsigned(zero_extend(0x1bea4, 64)) == 114340);
  assert(unsigned(zero_extend(0x1beb4, 64)) == 114356);
  assert(unsigned(zero_extend(0x1beb8, 64)) == 114360);
  assert(unsigned(zero_extend(0x1bebc, 64)) == 114364);
  assert(unsigned(zero_extend(0x1bec0, 64)) == 114368);
  assert(unsigned(zero_extend(0x1bec4, 64)) == 114372);
  assert(unsigned(zero_extend(0x1bec8, 64)) == 114376);
  assert(unsigned(zero_extend(0x1becc, 64)) == 114380);
  assert(unsigned(zero_extend(0x1bed0, 64)) == 114384);
  assert(unsigned(zero_extend(0x1bed4, 64)) == 114388);
  assert(unsigned(zero_extend(0x1bed8, 64)) == 114392);
  assert(unsigned(zero_extend(0x1bedc, 64)) == 114396);
  assert(unsigned(zero_extend(0x1bee0, 64)) == 114400);
  assert(unsigned(zero_extend(0x1bef0, 64)) == 114416);
  assert(unsigned(zero_extend(0x1bef4, 64)) == 114420);
  assert(unsigned(zero_extend(0x1bef8, 64)) == 114424);
  assert(unsigned(zero_extend(0x1befc, 64)) == 114428);
  assert(unsigned(zero_extend(0x1bf5c, 64)) == 114524);
  assert(unsigned(zero_extend(0x1bf60, 64)) == 114528);
  assert(unsigned(zero_extend(0x1bf64, 64)) == 114532);
  assert(unsigned(zero_extend(0x1bf68, 64)) == 114536);
  assert(unsigned(zero_extend(0x1bf6c, 64)) == 114540);
  assert(unsigned(zero_extend(0x1bf70, 64)) == 114544);
  assert(unsigned(zero_extend(0x1bf88, 64)) == 114568);
  assert(unsigned(zero_extend(0x1bf8c, 64)) == 114572);
  assert(unsigned(zero_extend(0x1bf90, 64)) == 114576);
  assert(unsigned(zero_extend(0x1bf94, 64)) == 114580);
  assert(unsigned(zero_extend(0x1bf98, 64)) == 114584);
  assert(unsigned(zero_extend(0x1bf9c, 64)) == 114588);
  assert(unsigned(zero_extend(0x1bfa0, 64)) == 114592);
  assert(unsigned(zero_extend(0x1bfa4, 64)) == 114596);
  assert(unsigned(zero_extend(0x1bfa8, 64)) == 114600);
  assert(unsigned(zero_extend(0x1bfac, 64)) == 114604);
  assert(unsigned(zero_extend(0x1bfb0, 64)) == 114608);
  assert(unsigned(zero_extend(0x1bfb4, 64)) == 114612);
  assert(unsigned(zero_extend(0x1bfb8, 64)) == 114616);
  assert(unsigned(zero_extend(0x1bfbc, 64)) == 114620);
  assert(unsigned(zero_extend(0x1bfc0, 64)) == 114624);
  assert(unsigned(zero_extend(0x1bfc4, 64)) == 114628);
  assert(unsigned(zero_extend(0x1bfc8, 64)) == 114632);
  assert(unsigned(zero_extend(0x1bfcc, 64)) == 114636);
  assert(unsigned(zero_extend(0x1bfd0, 64)) == 114640);
  assert(unsigned(zero_extend(0x1bfd4, 64)) == 114644);
  assert(unsigned(zero_extend(0x1bfd8, 64)) == 114648);
  assert(unsigned(zero_extend(0x1bfdc, 64)) == 114652);
  assert(unsigned(zero_extend(0x1bfe0, 64)) == 114656);
  assert(unsigned(zero_extend(0x1bfe4, 64)) == 114660);
  assert(unsigned(zero_extend(0x1bfe8, 64)) == 114664);
  assert(unsigned(zero_extend(0x1bfec, 64)) == 114668);
  assert(unsigned(zero_extend(0x1bff0, 64)) == 114672);
  assert(unsigned(zero_extend(0x1bff4, 64)) == 114676);
  assert(unsigned(zero_extend(0x1bff8, 64)) == 114680);
  assert(unsigned(zero_extend(0x1bffc, 64)) == 114684);
  assert(unsigned(zero_extend(0x1c, 64)) == 28);
  assert(unsigned(zero_extend(0x1c0, 64)) == 448);
  assert(unsigned(zero_extend(0x1c000, 64)) == 114688);
  assert(unsigned(zero_extend(0x1c004, 64)) == 114692);
  assert(unsigned(zero_extend(0x1c008, 64)) == 114696);
  assert(unsigned(zero_extend(0x1c00c, 64)) == 114700);
  assert(unsigned(zero_extend(0x1c010, 64)) == 114704);
  assert(unsigned(zero_extend(0x1c014, 64)) == 114708);
  assert(unsigned(zero_extend(0x1c018, 64)) == 114712);
  assert(unsigned(zero_extend(0x1c01c, 64)) == 114716);
  assert(unsigned(zero_extend(0x1c020, 64)) == 114720);
  assert(unsigned(zero_extend(0x1c024, 64)) == 114724);
  assert(unsigned(zero_extend(0x1c028, 64)) == 114728);
  assert(unsigned(zero_extend(0x1c02c, 64)) == 114732);
  assert(unsigned(zero_extend(0x1c030, 64)) == 114736);
  assert(unsigned(zero_extend(0x1c034, 64)) == 114740);
  assert(unsigned(zero_extend(0x1c038, 64)) == 114744);
  assert(unsigned(zero_extend(0x1c03c, 64)) == 114748);
  assert(unsigned(zero_extend(0x1c040, 64)) == 114752);
  assert(unsigned(zero_extend(0x1c044, 64)) == 114756);
  assert(unsigned(zero_extend(0x1c048, 64)) == 114760);
  assert(unsigned(zero_extend(0x1c04c, 64)) == 114764);
  assert(unsigned(zero_extend(0x1c050, 64)) == 114768);
  assert(unsigned(zero_extend(0x1c054, 64)) == 114772);
  assert(unsigned(zero_extend(0x1c058, 64)) == 114776);
  assert(unsigned(zero_extend(0x1c05c, 64)) == 114780);
  assert(unsigned(zero_extend(0x1c060, 64)) == 114784);
  assert(unsigned(zero_extend(0x1c064, 64)) == 114788);
  assert(unsigned(zero_extend(0x1c068, 64)) == 114792);
  assert(unsigned(zero_extend(0x1c06c, 64)) == 114796);
  assert(unsigned(zero_extend(0x1c070, 64)) == 114800);
  assert(unsigned(zero_extend(0x1c074, 64)) == 114804);
  assert(unsigned(zero_extend(0x1c078, 64)) == 114808);
  assert(unsigned(zero_extend(0x1c07c, 64)) == 114812);
  assert(unsigned(zero_extend(0x1c080, 64)) == 114816);
  assert(unsigned(zero_extend(0x1c084, 64)) == 114820);
  assert(unsigned(zero_extend(0x1c088, 64)) == 114824);
  assert(unsigned(zero_extend(0x1c08c, 64)) == 114828);
  assert(unsigned(zero_extend(0x1c090, 64)) == 114832);
  assert(unsigned(zero_extend(0x1c094, 64)) == 114836);
  assert(unsigned(zero_extend(0x1c098, 64)) == 114840);
  assert(unsigned(zero_extend(0x1c09c, 64)) == 114844);
  assert(unsigned(zero_extend(0x1c0a0, 64)) == 114848);
  assert(unsigned(zero_extend(0x1c0a4, 64)) == 114852);
  assert(unsigned(zero_extend(0x1c0a8, 64)) == 114856);
  assert(unsigned(zero_extend(0x1c0ac, 64)) == 114860);
  assert(unsigned(zero_extend(0x1c0b0, 64)) == 114864);
  assert(unsigned(zero_extend(0x1c0b4, 64)) == 114868);
  assert(unsigned(zero_extend(0x1c0b8, 64)) == 114872);
  assert(unsigned(zero_extend(0x1c0bc, 64)) == 114876);
  assert(unsigned(zero_extend(0x1c0c0, 64)) == 114880);
  assert(unsigned(zero_extend(0x1c0c4, 64)) == 114884);
  assert(unsigned(zero_extend(0x1c0c8, 64)) == 114888);
  assert(unsigned(zero_extend(0x1c0cc, 64)) == 114892);
  assert(unsigned(zero_extend(0x1c0d0, 64)) == 114896);
  assert(unsigned(zero_extend(0x1c0d4, 64)) == 114900);
  assert(unsigned(zero_extend(0x1c0d8, 64)) == 114904);
  assert(unsigned(zero_extend(0x1c0dc, 64)) == 114908);
  assert(unsigned(zero_extend(0x1c0e0, 64)) == 114912);
  assert(unsigned(zero_extend(0x1c0e4, 64)) == 114916);
  assert(unsigned(zero_extend(0x1c0e8, 64)) == 114920);
  assert(unsigned(zero_extend(0x1c0ec, 64)) == 114924);
  assert(unsigned(zero_extend(0x1c0f0, 64)) == 114928);
  assert(unsigned(zero_extend(0x1c0f4, 64)) == 114932);
  assert(unsigned(zero_extend(0x1c0f8, 64)) == 114936);
  assert(unsigned(zero_extend(0x1c0fc, 64)) == 114940);
  assert(unsigned(zero_extend(0x1c100, 64)) == 114944);
  assert(unsigned(zero_extend(0x1c104, 64)) == 114948);
  assert(unsigned(zero_extend(0x1c108, 64)) == 114952);
  assert(unsigned(zero_extend(0x1c10c, 64)) == 114956);
  assert(unsigned(zero_extend(0x1c110, 64)) == 114960);
  assert(unsigned(zero_extend(0x1c114, 64)) == 114964);
  assert(unsigned(zero_extend(0x1c118, 64)) == 114968);
  assert(unsigned(zero_extend(0x1c11c, 64)) == 114972);
  assert(unsigned(zero_extend(0x1c120, 64)) == 114976);
  assert(unsigned(zero_extend(0x1c124, 64)) == 114980);
  assert(unsigned(zero_extend(0x1c128, 64)) == 114984);
  assert(unsigned(zero_extend(0x1c12c, 64)) == 114988);
  assert(unsigned(zero_extend(0x1c130, 64)) == 114992);
  assert(unsigned(zero_extend(0x1c134, 64)) == 114996);
  assert(unsigned(zero_extend(0x1c138, 64)) == 115000);
  assert(unsigned(zero_extend(0x1c13c, 64)) == 115004);
  assert(unsigned(zero_extend(0x1c140, 64)) == 115008);
  assert(unsigned(zero_extend(0x1c144, 64)) == 115012);
  assert(unsigned(zero_extend(0x1c148, 64)) == 115016);
  assert(unsigned(zero_extend(0x1c14c, 64)) == 115020);
  assert(unsigned(zero_extend(0x1c150, 64)) == 115024);
  assert(unsigned(zero_extend(0x1c154, 64)) == 115028);
  assert(unsigned(zero_extend(0x1c158, 64)) == 115032);
  assert(unsigned(zero_extend(0x1c168, 64)) == 115048);
  assert(unsigned(zero_extend(0x1c16c, 64)) == 115052);
  assert(unsigned(zero_extend(0x1c17c, 64)) == 115068);
  assert(unsigned(zero_extend(0x1c180, 64)) == 115072);
  assert(unsigned(zero_extend(0x1c184, 64)) == 115076);
  assert(unsigned(zero_extend(0x1c188, 64)) == 115080);
  assert(unsigned(zero_extend(0x1c18c, 64)) == 115084);
  assert(unsigned(zero_extend(0x1c190, 64)) == 115088);
  assert(unsigned(zero_extend(0x1c1a0, 64)) == 115104);
  assert(unsigned(zero_extend(0x1c1a4, 64)) == 115108);
  assert(unsigned(zero_extend(0x1c1a8, 64)) == 115112);
  assert(unsigned(zero_extend(0x1c1e8, 64)) == 115176);
  assert(unsigned(zero_extend(0x1c1ec, 64)) == 115180);
  assert(unsigned(zero_extend(0x1c1f0, 64)) == 115184);
  assert(unsigned(zero_extend(0x1c1f4, 64)) == 115188);
  assert(unsigned(zero_extend(0x1c1f8, 64)) == 115192);
  assert(unsigned(zero_extend(0x1c1fc, 64)) == 115196);
  assert(unsigned(zero_extend(0x1c200, 64)) == 115200);
  assert(unsigned(zero_extend(0x1c204, 64)) == 115204);
  assert(unsigned(zero_extend(0x1c208, 64)) == 115208);
  assert(unsigned(zero_extend(0x1c20c, 64)) == 115212);
  assert(unsigned(zero_extend(0x1c240, 64)) == 115264);
  assert(unsigned(zero_extend(0x1c244, 64)) == 115268);
  assert(unsigned(zero_extend(0x1c248, 64)) == 115272);
  assert(unsigned(zero_extend(0x1c24c, 64)) == 115276);
  assert(unsigned(zero_extend(0x1c250, 64)) == 115280);
  assert(unsigned(zero_extend(0x1c254, 64)) == 115284);
  assert(unsigned(zero_extend(0x1c258, 64)) == 115288);
  assert(unsigned(zero_extend(0x1c25c, 64)) == 115292);
  assert(unsigned(zero_extend(0x1c260, 64)) == 115296);
  assert(unsigned(zero_extend(0x1c264, 64)) == 115300);
  assert(unsigned(zero_extend(0x1c3ec, 64)) == 115692);
  assert(unsigned(zero_extend(0x1c3f0, 64)) == 115696);
  assert(unsigned(zero_extend(0x1c3f4, 64)) == 115700);
  assert(unsigned(zero_extend(0x1c3f8, 64)) == 115704);
  assert(unsigned(zero_extend(0x1c3fc, 64)) == 115708);
  assert(unsigned(zero_extend(0x1c400, 64)) == 115712);
  assert(unsigned(zero_extend(0x1c404, 64)) == 115716);
  assert(unsigned(zero_extend(0x1c408, 64)) == 115720);
  assert(unsigned(zero_extend(0x1c40c, 64)) == 115724);
  assert(unsigned(zero_extend(0x1c410, 64)) == 115728);
  assert(unsigned(zero_extend(0x1c414, 64)) == 115732);
  assert(unsigned(zero_extend(0x1c418, 64)) == 115736);
  assert(unsigned(zero_extend(0x1c41c, 64)) == 115740);
  assert(unsigned(zero_extend(0x1c420, 64)) == 115744);
  assert(unsigned(zero_extend(0x1c424, 64)) == 115748);
  assert(unsigned(zero_extend(0x1c428, 64)) == 115752);
  assert(unsigned(zero_extend(0x1c42c, 64)) == 115756);
  assert(unsigned(zero_extend(0x1c430, 64)) == 115760);
  assert(unsigned(zero_extend(0x1c434, 64)) == 115764);
  assert(unsigned(zero_extend(0x1c438, 64)) == 115768);
  assert(unsigned(zero_extend(0x1c43c, 64)) == 115772);
  assert(unsigned(zero_extend(0x1c440, 64)) == 115776);
  assert(unsigned(zero_extend(0x1c444, 64)) == 115780);
  assert(unsigned(zero_extend(0x1c448, 64)) == 115784);
  assert(unsigned(zero_extend(0x1c44c, 64)) == 115788);
  assert(unsigned(zero_extend(0x1c450, 64)) == 115792);
  assert(unsigned(zero_extend(0x1c454, 64)) == 115796);
  assert(unsigned(zero_extend(0x1c458, 64)) == 115800);
  assert(unsigned(zero_extend(0x1c45c, 64)) == 115804);
  assert(unsigned(zero_extend(0x1c460, 64)) == 115808);
  assert(unsigned(zero_extend(0x1c464, 64)) == 115812);
  assert(unsigned(zero_extend(0x1c468, 64)) == 115816);
  assert(unsigned(zero_extend(0x1c46c, 64)) == 115820);
  assert(unsigned(zero_extend(0x1c470, 64)) == 115824);
  assert(unsigned(zero_extend(0x1c474, 64)) == 115828);
  assert(unsigned(zero_extend(0x1c478, 64)) == 115832);
  assert(unsigned(zero_extend(0x1c47c, 64)) == 115836);
  assert(unsigned(zero_extend(0x1c480, 64)) == 115840);
  assert(unsigned(zero_extend(0x1c484, 64)) == 115844);
  assert(unsigned(zero_extend(0x1c488, 64)) == 115848);
  assert(unsigned(zero_extend(0x1c48c, 64)) == 115852);
  assert(unsigned(zero_extend(0x1c490, 64)) == 115856);
  assert(unsigned(zero_extend(0x1c494, 64)) == 115860);
  assert(unsigned(zero_extend(0x1c498, 64)) == 115864);
  assert(unsigned(zero_extend(0x1c49c, 64)) == 115868);
  assert(unsigned(zero_extend(0x1c4a0, 64)) == 115872);
  assert(unsigned(zero_extend(0x1c4a4, 64)) == 115876);
  assert(unsigned(zero_extend(0x1c4a8, 64)) == 115880);
  assert(unsigned(zero_extend(0x1c4ac, 64)) == 115884);
  assert(unsigned(zero_extend(0x1c4b0, 64)) == 115888);
  assert(unsigned(zero_extend(0x1c4b4, 64)) == 115892);
  assert(unsigned(zero_extend(0x1c4b8, 64)) == 115896);
  assert(unsigned(zero_extend(0x1c4c8, 64)) == 115912);
  assert(unsigned(zero_extend(0x1c4cc, 64)) == 115916);
  assert(unsigned(zero_extend(0x1c4d0, 64)) == 115920);
  assert(unsigned(zero_extend(0x1c4d4, 64)) == 115924);
  assert(unsigned(zero_extend(0x1c4d8, 64)) == 115928);
  assert(unsigned(zero_extend(0x1c4dc, 64)) == 115932);
  assert(unsigned(zero_extend(0x1c4e0, 64)) == 115936);
  assert(unsigned(zero_extend(0x1c4e4, 64)) == 115940);
  assert(unsigned(zero_extend(0x1c4e8, 64)) == 115944);
  assert(unsigned(zero_extend(0x1c4ec, 64)) == 115948);
  assert(unsigned(zero_extend(0x1c4f0, 64)) == 115952);
  assert(unsigned(zero_extend(0x1c4f4, 64)) == 115956);
  assert(unsigned(zero_extend(0x1c4f8, 64)) == 115960);
  assert(unsigned(zero_extend(0x1c4fc, 64)) == 115964);
  assert(unsigned(zero_extend(0x1c500, 64)) == 115968);
  assert(unsigned(zero_extend(0x1c504, 64)) == 115972);
  assert(unsigned(zero_extend(0x1c508, 64)) == 115976);
  assert(unsigned(zero_extend(0x1c50c, 64)) == 115980);
  assert(unsigned(zero_extend(0x1c510, 64)) == 115984);
  assert(unsigned(zero_extend(0x1c514, 64)) == 115988);
  assert(unsigned(zero_extend(0x1c518, 64)) == 115992);
  assert(unsigned(zero_extend(0x1c51c, 64)) == 115996);
  assert(unsigned(zero_extend(0x1c520, 64)) == 116000);
  assert(unsigned(zero_extend(0x1c524, 64)) == 116004);
  assert(unsigned(zero_extend(0x1c528, 64)) == 116008);
  assert(unsigned(zero_extend(0x1c52c, 64)) == 116012);
  assert(unsigned(zero_extend(0x1c530, 64)) == 116016);
  assert(unsigned(zero_extend(0x1c534, 64)) == 116020);
  assert(unsigned(zero_extend(0x1c538, 64)) == 116024);
  assert(unsigned(zero_extend(0x1c53c, 64)) == 116028);
  assert(unsigned(zero_extend(0x1c540, 64)) == 116032);
  assert(unsigned(zero_extend(0x1c544, 64)) == 116036);
  assert(unsigned(zero_extend(0x1c548, 64)) == 116040);
  assert(unsigned(zero_extend(0x1c54c, 64)) == 116044);
  assert(unsigned(zero_extend(0x1c550, 64)) == 116048);
  assert(unsigned(zero_extend(0x1c554, 64)) == 116052);
  assert(unsigned(zero_extend(0x1c558, 64)) == 116056);
  assert(unsigned(zero_extend(0x1c55c, 64)) == 116060);
  assert(unsigned(zero_extend(0x1c560, 64)) == 116064);
  assert(unsigned(zero_extend(0x1c564, 64)) == 116068);
  assert(unsigned(zero_extend(0x1c568, 64)) == 116072);
  assert(unsigned(zero_extend(0x1c56c, 64)) == 116076);
  assert(unsigned(zero_extend(0x1c570, 64)) == 116080);
  assert(unsigned(zero_extend(0x1c574, 64)) == 116084);
  assert(unsigned(zero_extend(0x1c578, 64)) == 116088);
  assert(unsigned(zero_extend(0x1c57c, 64)) == 116092);
  assert(unsigned(zero_extend(0x1c580, 64)) == 116096);
  assert(unsigned(zero_extend(0x1c584, 64)) == 116100);
  assert(unsigned(zero_extend(0x1c588, 64)) == 116104);
  assert(unsigned(zero_extend(0x1c58c, 64)) == 116108);
  assert(unsigned(zero_extend(0x1c590, 64)) == 116112);
  assert(unsigned(zero_extend(0x1c594, 64)) == 116116);
  assert(unsigned(zero_extend(0x1c598, 64)) == 116120);
  assert(unsigned(zero_extend(0x1c5a0, 64)) == 116128);
  assert(unsigned(zero_extend(0x1c5a8, 64)) == 116136);
  assert(unsigned(zero_extend(0x1c5b0, 64)) == 116144);
  assert(unsigned(zero_extend(0x1c5b8, 64)) == 116152);
  assert(unsigned(zero_extend(0x1c5c0, 64)) == 116160);
  assert(unsigned(zero_extend(0x1c5c8, 64)) == 116168);
  assert(unsigned(zero_extend(0x1c5d0, 64)) == 116176);
  assert(unsigned(zero_extend(0x1c5d8, 64)) == 116184);
  assert(unsigned(zero_extend(0x1c5e0, 64)) == 116192);
  assert(unsigned(zero_extend(0x1c5e4, 64)) == 116196);
  assert(unsigned(zero_extend(0x1c5e8, 64)) == 116200);
  assert(unsigned(zero_extend(0x1c5ec, 64)) == 116204);
  assert(unsigned(zero_extend(0x1c5f0, 64)) == 116208);
  assert(unsigned(zero_extend(0x1c5f4, 64)) == 116212);
  assert(unsigned(zero_extend(0x1c5f8, 64)) == 116216);
  assert(unsigned(zero_extend(0x1c5fc, 64)) == 116220);
  assert(unsigned(zero_extend(0x1c600, 64)) == 116224);
  assert(unsigned(zero_extend(0x1c604, 64)) == 116228);
  assert(unsigned(zero_extend(0x1c608, 64)) == 116232);
  assert(unsigned(zero_extend(0x1c60c, 64)) == 116236);
  assert(unsigned(zero_extend(0x1c610, 64)) == 116240);
  assert(unsigned(zero_extend(0x1c614, 64)) == 116244);
  assert(unsigned(zero_extend(0x1c618, 64)) == 116248);
  assert(unsigned(zero_extend(0x1c61c, 64)) == 116252);
  assert(unsigned(zero_extend(0x1c620, 64)) == 116256);
  assert(unsigned(zero_extend(0x1c624, 64)) == 116260);
  assert(unsigned(zero_extend(0x1c628, 64)) == 116264);
  assert(unsigned(zero_extend(0x1c62c, 64)) == 116268);
  assert(unsigned(zero_extend(0x1c630, 64)) == 116272);
  assert(unsigned(zero_extend(0x1c634, 64)) == 116276);
  assert(unsigned(zero_extend(0x1c638, 64)) == 116280);
  assert(unsigned(zero_extend(0x1c63c, 64)) == 116284);
  assert(unsigned(zero_extend(0x1c640, 64)) == 116288);
  assert(unsigned(zero_extend(0x1c644, 64)) == 116292);
  assert(unsigned(zero_extend(0x1c648, 64)) == 116296);
  assert(unsigned(zero_extend(0x1c64c, 64)) == 116300);
  assert(unsigned(zero_extend(0x1c650, 64)) == 116304);
  assert(unsigned(zero_extend(0x1c654, 64)) == 116308);
  assert(unsigned(zero_extend(0x1c658, 64)) == 116312);
  assert(unsigned(zero_extend(0x1c65c, 64)) == 116316);
  assert(unsigned(zero_extend(0x1c660, 64)) == 116320);
  assert(unsigned(zero_extend(0x1c664, 64)) == 116324);
  assert(unsigned(zero_extend(0x1c668, 64)) == 116328);
  assert(unsigned(zero_extend(0x1c66c, 64)) == 116332);
  assert(unsigned(zero_extend(0x1c670, 64)) == 116336);
  assert(unsigned(zero_extend(0x1c674, 64)) == 116340);
  assert(unsigned(zero_extend(0x1c678, 64)) == 116344);
  assert(unsigned(zero_extend(0x1c67c, 64)) == 116348);
  assert(unsigned(zero_extend(0x1c680, 64)) == 116352);
  assert(unsigned(zero_extend(0x1c684, 64)) == 116356);
  assert(unsigned(zero_extend(0x1c688, 64)) == 116360);
  assert(unsigned(zero_extend(0x1c68c, 64)) == 116364);
  assert(unsigned(zero_extend(0x1c690, 64)) == 116368);
  assert(unsigned(zero_extend(0x1c694, 64)) == 116372);
  assert(unsigned(zero_extend(0x1c698, 64)) == 116376);
  assert(unsigned(zero_extend(0x1c69c, 64)) == 116380);
  assert(unsigned(zero_extend(0x1c6a0, 64)) == 116384);
  assert(unsigned(zero_extend(0x1c6a4, 64)) == 116388);
  assert(unsigned(zero_extend(0x1c6a8, 64)) == 116392);
  assert(unsigned(zero_extend(0x1c6ac, 64)) == 116396);
  assert(unsigned(zero_extend(0x1c6b0, 64)) == 116400);
  assert(unsigned(zero_extend(0x1c6b4, 64)) == 116404);
  assert(unsigned(zero_extend(0x1c6b8, 64)) == 116408);
  assert(unsigned(zero_extend(0x1c6bc, 64)) == 116412);
  assert(unsigned(zero_extend(0x1c6c0, 64)) == 116416);
  assert(unsigned(zero_extend(0x1c6c4, 64)) == 116420);
  assert(unsigned(zero_extend(0x1c6c8, 64)) == 116424);
  assert(unsigned(zero_extend(0x1c6cc, 64)) == 116428);
  assert(unsigned(zero_extend(0x1c6d0, 64)) == 116432);
  assert(unsigned(zero_extend(0x1c6d4, 64)) == 116436);
  assert(unsigned(zero_extend(0x1c6d8, 64)) == 116440);
  assert(unsigned(zero_extend(0x1c6dc, 64)) == 116444);
  assert(unsigned(zero_extend(0x1c6e0, 64)) == 116448);
  assert(unsigned(zero_extend(0x1c6e4, 64)) == 116452);
  assert(unsigned(zero_extend(0x1c6f4, 64)) == 116468);
  assert(unsigned(zero_extend(0x1c6f8, 64)) == 116472);
  assert(unsigned(zero_extend(0x1c6fc, 64)) == 116476);
  assert(unsigned(zero_extend(0x1c700, 64)) == 116480);
  assert(unsigned(zero_extend(0x1c704, 64)) == 116484);
  assert(unsigned(zero_extend(0x1c708, 64)) == 116488);
  assert(unsigned(zero_extend(0x1c70c, 64)) == 116492);
  assert(unsigned(zero_extend(0x1c710, 64)) == 116496);
  assert(unsigned(zero_extend(0x1c714, 64)) == 116500);
  assert(unsigned(zero_extend(0x1c718, 64)) == 116504);
  assert(unsigned(zero_extend(0x1c71c, 64)) == 116508);
  assert(unsigned(zero_extend(0x1c720, 64)) == 116512);
  assert(unsigned(zero_extend(0x1c724, 64)) == 116516);
  assert(unsigned(zero_extend(0x1c728, 64)) == 116520);
  assert(unsigned(zero_extend(0x1c72c, 64)) == 116524);
  assert(unsigned(zero_extend(0x1c730, 64)) == 116528);
  assert(unsigned(zero_extend(0x1c734, 64)) == 116532);
  assert(unsigned(zero_extend(0x1c738, 64)) == 116536);
  assert(unsigned(zero_extend(0x1c73c, 64)) == 116540);
  assert(unsigned(zero_extend(0x1c740, 64)) == 116544);
  assert(unsigned(zero_extend(0x1c744, 64)) == 116548);
  assert(unsigned(zero_extend(0x1c748, 64)) == 116552);
  assert(unsigned(zero_extend(0x1c74c, 64)) == 116556);
  assert(unsigned(zero_extend(0x1c750, 64)) == 116560);
  assert(unsigned(zero_extend(0x1c754, 64)) == 116564);
  assert(unsigned(zero_extend(0x1c758, 64)) == 116568);
  assert(unsigned(zero_extend(0x1c75c, 64)) == 116572);
  assert(unsigned(zero_extend(0x1c760, 64)) == 116576);
  assert(unsigned(zero_extend(0x1c764, 64)) == 116580);
  assert(unsigned(zero_extend(0x1c768, 64)) == 116584);
  assert(unsigned(zero_extend(0x1c76c, 64)) == 116588);
  assert(unsigned(zero_extend(0x1c770, 64)) == 116592);
  assert(unsigned(zero_extend(0x1c774, 64)) == 116596);
  assert(unsigned(zero_extend(0x1c778, 64)) == 116600);
  assert(unsigned(zero_extend(0x1c77c, 64)) == 116604);
  assert(unsigned(zero_extend(0x1c780, 64)) == 116608);
  assert(unsigned(zero_extend(0x1c784, 64)) == 116612);
  assert(unsigned(zero_extend(0x1c788, 64)) == 116616);
  assert(unsigned(zero_extend(0x1c78c, 64)) == 116620);
  assert(unsigned(zero_extend(0x1c790, 64)) == 116624);
  assert(unsigned(zero_extend(0x1c794, 64)) == 116628);
  assert(unsigned(zero_extend(0x1c798, 64)) == 116632);
  assert(unsigned(zero_extend(0x1c79c, 64)) == 116636);
  assert(unsigned(zero_extend(0x1c7a0, 64)) == 116640);
  assert(unsigned(zero_extend(0x1c7a4, 64)) == 116644);
  assert(unsigned(zero_extend(0x1c7a8, 64)) == 116648);
  assert(unsigned(zero_extend(0x1c7ac, 64)) == 116652);
  assert(unsigned(zero_extend(0x1c7b0, 64)) == 116656);
  assert(unsigned(zero_extend(0x1c7b4, 64)) == 116660);
  assert(unsigned(zero_extend(0x1c7b8, 64)) == 116664);
  assert(unsigned(zero_extend(0x1c7bc, 64)) == 116668);
  assert(unsigned(zero_extend(0x1c7c0, 64)) == 116672);
  assert(unsigned(zero_extend(0x1c7c4, 64)) == 116676);
  assert(unsigned(zero_extend(0x1c7c8, 64)) == 116680);
  assert(unsigned(zero_extend(0x1c7cc, 64)) == 116684);
  assert(unsigned(zero_extend(0x1c7d0, 64)) == 116688);
  assert(unsigned(zero_extend(0x1c7d4, 64)) == 116692);
  assert(unsigned(zero_extend(0x1c7d8, 64)) == 116696);
  assert(unsigned(zero_extend(0x1c7dc, 64)) == 116700);
  assert(unsigned(zero_extend(0x1c7e0, 64)) == 116704);
  assert(unsigned(zero_extend(0x1c7e4, 64)) == 116708);
  assert(unsigned(zero_extend(0x1c7e8, 64)) == 116712);
  assert(unsigned(zero_extend(0x1c7f8, 64)) == 116728);
  assert(unsigned(zero_extend(0x1c7fc, 64)) == 116732);
  assert(unsigned(zero_extend(0x1c800, 64)) == 116736);
  assert(unsigned(zero_extend(0x1c804, 64)) == 116740);
  assert(unsigned(zero_extend(0x1c808, 64)) == 116744);
  assert(unsigned(zero_extend(0x1c80c, 64)) == 116748);
  assert(unsigned(zero_extend(0x1c810, 64)) == 116752);
  assert(unsigned(zero_extend(0x1c814, 64)) == 116756);
  assert(unsigned(zero_extend(0x1c818, 64)) == 116760);
  assert(unsigned(zero_extend(0x1c81c, 64)) == 116764);
  assert(unsigned(zero_extend(0x1c820, 64)) == 116768);
  assert(unsigned(zero_extend(0x1c824, 64)) == 116772);
  assert(unsigned(zero_extend(0x1c828, 64)) == 116776);
  assert(unsigned(zero_extend(0x1c838, 64)) == 116792);
  assert(unsigned(zero_extend(0x1c83c, 64)) == 116796);
  assert(unsigned(zero_extend(0x1c860, 64)) == 116832);
  assert(unsigned(zero_extend(0x1c864, 64)) == 116836);
  assert(unsigned(zero_extend(0x1c874, 64)) == 116852);
  assert(unsigned(zero_extend(0x1c878, 64)) == 116856);
  assert(unsigned(zero_extend(0x1c87c, 64)) == 116860);
  assert(unsigned(zero_extend(0x1c880, 64)) == 116864);
  assert(unsigned(zero_extend(0x1c890, 64)) == 116880);
  assert(unsigned(zero_extend(0x1c894, 64)) == 116884);
  assert(unsigned(zero_extend(0x1c8b0, 64)) == 116912);
  assert(unsigned(zero_extend(0x1c8b4, 64)) == 116916);
  assert(unsigned(zero_extend(0x1c8b8, 64)) == 116920);
  assert(unsigned(zero_extend(0x1c8bc, 64)) == 116924);
  assert(unsigned(zero_extend(0x1c8c0, 64)) == 116928);
  assert(unsigned(zero_extend(0x1c8c4, 64)) == 116932);
  assert(unsigned(zero_extend(0x1c8c8, 64)) == 116936);
  assert(unsigned(zero_extend(0x1c8cc, 64)) == 116940);
  assert(unsigned(zero_extend(0x1c8d0, 64)) == 116944);
  assert(unsigned(zero_extend(0x1c8d4, 64)) == 116948);
  assert(unsigned(zero_extend(0x1c8d8, 64)) == 116952);
  assert(unsigned(zero_extend(0x1c8dc, 64)) == 116956);
  assert(unsigned(zero_extend(0x1c8e0, 64)) == 116960);
  assert(unsigned(zero_extend(0x1c8e4, 64)) == 116964);
  assert(unsigned(zero_extend(0x1c8e8, 64)) == 116968);
  assert(unsigned(zero_extend(0x1c8ec, 64)) == 116972);
  assert(unsigned(zero_extend(0x1c8f0, 64)) == 116976);
  assert(unsigned(zero_extend(0x1c8f4, 64)) == 116980);
  assert(unsigned(zero_extend(0x1c8f8, 64)) == 116984);
  assert(unsigned(zero_extend(0x1c8fc, 64)) == 116988);
  assert(unsigned(zero_extend(0x1c900, 64)) == 116992);
  assert(unsigned(zero_extend(0x1c904, 64)) == 116996);
  assert(unsigned(zero_extend(0x1c908, 64)) == 117000);
  assert(unsigned(zero_extend(0x1c90c, 64)) == 117004);
  assert(unsigned(zero_extend(0x1c910, 64)) == 117008);
  assert(unsigned(zero_extend(0x1c914, 64)) == 117012);
  assert(unsigned(zero_extend(0x1c918, 64)) == 117016);
  assert(unsigned(zero_extend(0x1c91c, 64)) == 117020);
  assert(unsigned(zero_extend(0x1c920, 64)) == 117024);
  assert(unsigned(zero_extend(0x1c924, 64)) == 117028);
  assert(unsigned(zero_extend(0x1c928, 64)) == 117032);
  assert(unsigned(zero_extend(0x1c92c, 64)) == 117036);
  assert(unsigned(zero_extend(0x1c930, 64)) == 117040);
  assert(unsigned(zero_extend(0x1c934, 64)) == 117044);
  assert(unsigned(zero_extend(0x1c938, 64)) == 117048);
  assert(unsigned(zero_extend(0x1c93c, 64)) == 117052);
  assert(unsigned(zero_extend(0x1c940, 64)) == 117056);
  assert(unsigned(zero_extend(0x1c944, 64)) == 117060);
  assert(unsigned(zero_extend(0x1c948, 64)) == 117064);
  assert(unsigned(zero_extend(0x1c94c, 64)) == 117068);
  assert(unsigned(zero_extend(0x1c950, 64)) == 117072);
  assert(unsigned(zero_extend(0x1c954, 64)) == 117076);
  assert(unsigned(zero_extend(0x1c958, 64)) == 117080);
  assert(unsigned(zero_extend(0x1c95c, 64)) == 117084);
  assert(unsigned(zero_extend(0x1c960, 64)) == 117088);
  assert(unsigned(zero_extend(0x1c964, 64)) == 117092);
  assert(unsigned(zero_extend(0x1c968, 64)) == 117096);
  assert(unsigned(zero_extend(0x1c96c, 64)) == 117100);
  assert(unsigned(zero_extend(0x1c970, 64)) == 117104);
  assert(unsigned(zero_extend(0x1c974, 64)) == 117108);
  assert(unsigned(zero_extend(0x1c978, 64)) == 117112);
  assert(unsigned(zero_extend(0x1c97c, 64)) == 117116);
  assert(unsigned(zero_extend(0x1c980, 64)) == 117120);
  assert(unsigned(zero_extend(0x1c984, 64)) == 117124);
  assert(unsigned(zero_extend(0x1c988, 64)) == 117128);
  assert(unsigned(zero_extend(0x1c98c, 64)) == 117132);
  assert(unsigned(zero_extend(0x1c990, 64)) == 117136);
  assert(unsigned(zero_extend(0x1c994, 64)) == 117140);
  assert(unsigned(zero_extend(0x1c998, 64)) == 117144);
  assert(unsigned(zero_extend(0x1c99c, 64)) == 117148);
  assert(unsigned(zero_extend(0x1c9a0, 64)) == 117152);
  assert(unsigned(zero_extend(0x1c9a4, 64)) == 117156);
  assert(unsigned(zero_extend(0x1c9a8, 64)) == 117160);
  assert(unsigned(zero_extend(0x1c9ac, 64)) == 117164);
  assert(unsigned(zero_extend(0x1c9b0, 64)) == 117168);
  assert(unsigned(zero_extend(0x1c9b4, 64)) == 117172);
  assert(unsigned(zero_extend(0x1c9b8, 64)) == 117176);
  assert(unsigned(zero_extend(0x1c9bc, 64)) == 117180);
  assert(unsigned(zero_extend(0x1c9c0, 64)) == 117184);
  assert(unsigned(zero_extend(0x1c9c8, 64)) == 117192);
  assert(unsigned(zero_extend(0x1c9cc, 64)) == 117196);
  assert(unsigned(zero_extend(0x1c9d0, 64)) == 117200);
  assert(unsigned(zero_extend(0x1c9d4, 64)) == 117204);
  assert(unsigned(zero_extend(0x1c9d8, 64)) == 117208);
  assert(unsigned(zero_extend(0x1c9dc, 64)) == 117212);
  assert(unsigned(zero_extend(0x1c9e0, 64)) == 117216);
  assert(unsigned(zero_extend(0x1c9e4, 64)) == 117220);
  assert(unsigned(zero_extend(0x1c9e8, 64)) == 117224);
  assert(unsigned(zero_extend(0x1c9ec, 64)) == 117228);
  assert(unsigned(zero_extend(0x1c9f0, 64)) == 117232);
  assert(unsigned(zero_extend(0x1c9f4, 64)) == 117236);
  assert(unsigned(zero_extend(0x1c9f8, 64)) == 117240);
  assert(unsigned(zero_extend(0x1c9fc, 64)) == 117244);
  assert(unsigned(zero_extend(0x1ca00, 64)) == 117248);
  assert(unsigned(zero_extend(0x1ca04, 64)) == 117252);
  assert(unsigned(zero_extend(0x1ca08, 64)) == 117256);
  assert(unsigned(zero_extend(0x1ca0c, 64)) == 117260);
  assert(unsigned(zero_extend(0x1ca10, 64)) == 117264);
  assert(unsigned(zero_extend(0x1ca14, 64)) == 117268);
  assert(unsigned(zero_extend(0x1ca18, 64)) == 117272);
  assert(unsigned(zero_extend(0x1ca1c, 64)) == 117276);
  assert(unsigned(zero_extend(0x1ca20, 64)) == 117280);
  assert(unsigned(zero_extend(0x1ca24, 64)) == 117284);
  assert(unsigned(zero_extend(0x1ca28, 64)) == 117288);
  assert(unsigned(zero_extend(0x1ca2c, 64)) == 117292);
  assert(unsigned(zero_extend(0x1ca30, 64)) == 117296);
  assert(unsigned(zero_extend(0x1ca34, 64)) == 117300);
  assert(unsigned(zero_extend(0x1ca38, 64)) == 117304);
  assert(unsigned(zero_extend(0x1ca3c, 64)) == 117308);
  assert(unsigned(zero_extend(0x1ca40, 64)) == 117312);
  assert(unsigned(zero_extend(0x1ca44, 64)) == 117316);
  assert(unsigned(zero_extend(0x1ca48, 64)) == 117320);
  assert(unsigned(zero_extend(0x1ca4c, 64)) == 117324);
  assert(unsigned(zero_extend(0x1ca50, 64)) == 117328);
  assert(unsigned(zero_extend(0x1ca54, 64)) == 117332);
  assert(unsigned(zero_extend(0x1ca58, 64)) == 117336);
  assert(unsigned(zero_extend(0x1ca5c, 64)) == 117340);
  assert(unsigned(zero_extend(0x1ca60, 64)) == 117344);
  assert(unsigned(zero_extend(0x1ca64, 64)) == 117348);
  assert(unsigned(zero_extend(0x1ca68, 64)) == 117352);
  assert(unsigned(zero_extend(0x1ca6c, 64)) == 117356);
  assert(unsigned(zero_extend(0x1ca70, 64)) == 117360);
  assert(unsigned(zero_extend(0x1ca74, 64)) == 117364);
  assert(unsigned(zero_extend(0x1ca78, 64)) == 117368);
  assert(unsigned(zero_extend(0x1ca7c, 64)) == 117372);
  assert(unsigned(zero_extend(0x1ca80, 64)) == 117376);
  assert(unsigned(zero_extend(0x1ca84, 64)) == 117380);
  assert(unsigned(zero_extend(0x1ca88, 64)) == 117384);
  assert(unsigned(zero_extend(0x1ca8c, 64)) == 117388);
  assert(unsigned(zero_extend(0x1ca90, 64)) == 117392);
  assert(unsigned(zero_extend(0x1ca94, 64)) == 117396);
  assert(unsigned(zero_extend(0x1ca98, 64)) == 117400);
  assert(unsigned(zero_extend(0x1ca9c, 64)) == 117404);
  assert(unsigned(zero_extend(0x1caa0, 64)) == 117408);
  assert(unsigned(zero_extend(0x1caa4, 64)) == 117412);
  assert(unsigned(zero_extend(0x1caa8, 64)) == 117416);
  assert(unsigned(zero_extend(0x1caac, 64)) == 117420);
  assert(unsigned(zero_extend(0x1cab0, 64)) == 117424);
  assert(unsigned(zero_extend(0x1cab4, 64)) == 117428);
  assert(unsigned(zero_extend(0x1cab8, 64)) == 117432);
  assert(unsigned(zero_extend(0x1cabc, 64)) == 117436);
  assert(unsigned(zero_extend(0x1cac0, 64)) == 117440);
  assert(unsigned(zero_extend(0x1cac4, 64)) == 117444);
  assert(unsigned(zero_extend(0x1cac8, 64)) == 117448);
  assert(unsigned(zero_extend(0x1cacc, 64)) == 117452);
  assert(unsigned(zero_extend(0x1cad0, 64)) == 117456);
  assert(unsigned(zero_extend(0x1cad4, 64)) == 117460);
  assert(unsigned(zero_extend(0x1cad8, 64)) == 117464);
  assert(unsigned(zero_extend(0x1cadc, 64)) == 117468);
  assert(unsigned(zero_extend(0x1cae0, 64)) == 117472);
  assert(unsigned(zero_extend(0x1cae4, 64)) == 117476);
  assert(unsigned(zero_extend(0x1cae8, 64)) == 117480);
  assert(unsigned(zero_extend(0x1caec, 64)) == 117484);
  assert(unsigned(zero_extend(0x1caf0, 64)) == 117488);
  assert(unsigned(zero_extend(0x1caf4, 64)) == 117492);
  assert(unsigned(zero_extend(0x1caf8, 64)) == 117496);
  assert(unsigned(zero_extend(0x1cafc, 64)) == 117500);
  assert(unsigned(zero_extend(0x1cb00, 64)) == 117504);
  assert(unsigned(zero_extend(0x1cb04, 64)) == 117508);
  assert(unsigned(zero_extend(0x1cb08, 64)) == 117512);
  assert(unsigned(zero_extend(0x1cb0c, 64)) == 117516);
  assert(unsigned(zero_extend(0x1cb10, 64)) == 117520);
  assert(unsigned(zero_extend(0x1cb14, 64)) == 117524);
  assert(unsigned(zero_extend(0x1cb18, 64)) == 117528);
  assert(unsigned(zero_extend(0x1cb20, 64)) == 117536);
  assert(unsigned(zero_extend(0x1cb24, 64)) == 117540);
  assert(unsigned(zero_extend(0x1cb28, 64)) == 117544);
  assert(unsigned(zero_extend(0x1cb2c, 64)) == 117548);
  assert(unsigned(zero_extend(0x1cb30, 64)) == 117552);
  assert(unsigned(zero_extend(0x1cb34, 64)) == 117556);
  assert(unsigned(zero_extend(0x1cb38, 64)) == 117560);
  assert(unsigned(zero_extend(0x1cb3c, 64)) == 117564);
  assert(unsigned(zero_extend(0x1cb40, 64)) == 117568);
  assert(unsigned(zero_extend(0x1cb44, 64)) == 117572);
  assert(unsigned(zero_extend(0x1cb48, 64)) == 117576);
  assert(unsigned(zero_extend(0x1cb4c, 64)) == 117580);
  assert(unsigned(zero_extend(0x1cb50, 64)) == 117584);
  assert(unsigned(zero_extend(0x1cb54, 64)) == 117588);
  assert(unsigned(zero_extend(0x1cb58, 64)) == 117592);
  assert(unsigned(zero_extend(0x1cb5c, 64)) == 117596);
  assert(unsigned(zero_extend(0x1cb60, 64)) == 117600);
  assert(unsigned(zero_extend(0x1cb64, 64)) == 117604);
  assert(unsigned(zero_extend(0x1cb68, 64)) == 117608);
  assert(unsigned(zero_extend(0x1cb6c, 64)) == 117612);
  assert(unsigned(zero_extend(0x1cb70, 64)) == 117616);
  assert(unsigned(zero_extend(0x1cb74, 64)) == 117620);
  assert(unsigned(zero_extend(0x1cb78, 64)) == 117624);
  assert(unsigned(zero_extend(0x1cb7c, 64)) == 117628);
  assert(unsigned(zero_extend(0x1cb80, 64)) == 117632);
  assert(unsigned(zero_extend(0x1cb84, 64)) == 117636);
  assert(unsigned(zero_extend(0x1cb88, 64)) == 117640);
  assert(unsigned(zero_extend(0x1cb8c, 64)) == 117644);
  assert(unsigned(zero_extend(0x1cb90, 64)) == 117648);
  assert(unsigned(zero_extend(0x1cb94, 64)) == 117652);
  assert(unsigned(zero_extend(0x1cb98, 64)) == 117656);
  assert(unsigned(zero_extend(0x1cb9c, 64)) == 117660);
  assert(unsigned(zero_extend(0x1cba0, 64)) == 117664);
  assert(unsigned(zero_extend(0x1cba4, 64)) == 117668);
  assert(unsigned(zero_extend(0x1cba8, 64)) == 117672);
  assert(unsigned(zero_extend(0x1cbac, 64)) == 117676);
  assert(unsigned(zero_extend(0x1cbb0, 64)) == 117680);
  assert(unsigned(zero_extend(0x1cbb4, 64)) == 117684);
  assert(unsigned(zero_extend(0x1cbb8, 64)) == 117688);
  assert(unsigned(zero_extend(0x1cbbc, 64)) == 117692);
  assert(unsigned(zero_extend(0x1cbc0, 64)) == 117696);
  assert(unsigned(zero_extend(0x1cbc4, 64)) == 117700);
  assert(unsigned(zero_extend(0x1cbc8, 64)) == 117704);
  assert(unsigned(zero_extend(0x1cbcc, 64)) == 117708);
  assert(unsigned(zero_extend(0x1cbd0, 64)) == 117712);
  assert(unsigned(zero_extend(0x1cbd4, 64)) == 117716);
  assert(unsigned(zero_extend(0x1cbd8, 64)) == 117720);
  assert(unsigned(zero_extend(0x1cbdc, 64)) == 117724);
  assert(unsigned(zero_extend(0x1cbe0, 64)) == 117728);
  assert(unsigned(zero_extend(0x1cbe4, 64)) == 117732);
  assert(unsigned(zero_extend(0x1cbe8, 64)) == 117736);
  assert(unsigned(zero_extend(0x1cbec, 64)) == 117740);
  assert(unsigned(zero_extend(0x1cbf0, 64)) == 117744);
  assert(unsigned(zero_extend(0x1cbf4, 64)) == 117748);
  assert(unsigned(zero_extend(0x1cbf8, 64)) == 117752);
  assert(unsigned(zero_extend(0x1cbfc, 64)) == 117756);
  assert(unsigned(zero_extend(0x1cc00, 64)) == 117760);
  assert(unsigned(zero_extend(0x1cc04, 64)) == 117764);
  assert(unsigned(zero_extend(0x1cc08, 64)) == 117768);
  assert(unsigned(zero_extend(0x1cc0c, 64)) == 117772);
  assert(unsigned(zero_extend(0x1cc1c, 64)) == 117788);
  assert(unsigned(zero_extend(0x1cc20, 64)) == 117792);
  assert(unsigned(zero_extend(0x1cc24, 64)) == 117796);
  assert(unsigned(zero_extend(0x1cc28, 64)) == 117800);
  assert(unsigned(zero_extend(0x1cc2c, 64)) == 117804);
  assert(unsigned(zero_extend(0x1cc30, 64)) == 117808);
  assert(unsigned(zero_extend(0x1cc34, 64)) == 117812);
  assert(unsigned(zero_extend(0x1cc38, 64)) == 117816);
  assert(unsigned(zero_extend(0x1cc3c, 64)) == 117820);
  assert(unsigned(zero_extend(0x1cc40, 64)) == 117824);
  assert(unsigned(zero_extend(0x1cc44, 64)) == 117828);
  assert(unsigned(zero_extend(0x1cc48, 64)) == 117832);
  assert(unsigned(zero_extend(0x1cc4c, 64)) == 117836);
  assert(unsigned(zero_extend(0x1cc50, 64)) == 117840);
  assert(unsigned(zero_extend(0x1cc54, 64)) == 117844);
  assert(unsigned(zero_extend(0x1cc58, 64)) == 117848);
  assert(unsigned(zero_extend(0x1cc5c, 64)) == 117852);
  assert(unsigned(zero_extend(0x1cc60, 64)) == 117856);
  assert(unsigned(zero_extend(0x1cc64, 64)) == 117860);
  assert(unsigned(zero_extend(0x1cc68, 64)) == 117864);
  assert(unsigned(zero_extend(0x1cc6c, 64)) == 117868);
  assert(unsigned(zero_extend(0x1cc70, 64)) == 117872);
  assert(unsigned(zero_extend(0x1cc74, 64)) == 117876);
  assert(unsigned(zero_extend(0x1cc78, 64)) == 117880);
  assert(unsigned(zero_extend(0x1cc7c, 64)) == 117884);
  assert(unsigned(zero_extend(0x1cc80, 64)) == 117888);
  assert(unsigned(zero_extend(0x1cc84, 64)) == 117892);
  assert(unsigned(zero_extend(0x1cc88, 64)) == 117896);
  assert(unsigned(zero_extend(0x1cc8c, 64)) == 117900);
  assert(unsigned(zero_extend(0x1cc90, 64)) == 117904);
  assert(unsigned(zero_extend(0x1cc94, 64)) == 117908);
  assert(unsigned(zero_extend(0x1cc98, 64)) == 117912);
  assert(unsigned(zero_extend(0x1cc9c, 64)) == 117916);
  assert(unsigned(zero_extend(0x1cca0, 64)) == 117920);
  assert(unsigned(zero_extend(0x1cca4, 64)) == 117924);
  assert(unsigned(zero_extend(0x1cca8, 64)) == 117928);
  assert(unsigned(zero_extend(0x1ccac, 64)) == 117932);
  assert(unsigned(zero_extend(0x1ccb0, 64)) == 117936);
  assert(unsigned(zero_extend(0x1ccb4, 64)) == 117940);
  assert(unsigned(zero_extend(0x1ccb8, 64)) == 117944);
  assert(unsigned(zero_extend(0x1ccbc, 64)) == 117948);
  assert(unsigned(zero_extend(0x1ccc0, 64)) == 117952);
  assert(unsigned(zero_extend(0x1ccc4, 64)) == 117956);
  assert(unsigned(zero_extend(0x1ccc8, 64)) == 117960);
  assert(unsigned(zero_extend(0x1cccc, 64)) == 117964);
  assert(unsigned(zero_extend(0x1ccd0, 64)) == 117968);
  assert(unsigned(zero_extend(0x1ccd8, 64)) == 117976);
  assert(unsigned(zero_extend(0x1ccdc, 64)) == 117980);
  assert(unsigned(zero_extend(0x1cce0, 64)) == 117984);
  assert(unsigned(zero_extend(0x1cce4, 64)) == 117988);
  assert(unsigned(zero_extend(0x1cce8, 64)) == 117992);
  assert(unsigned(zero_extend(0x1ccec, 64)) == 117996);
  assert(unsigned(zero_extend(0x1ccf0, 64)) == 118000);
  assert(unsigned(zero_extend(0x1ccf4, 64)) == 118004);
  assert(unsigned(zero_extend(0x1ccf8, 64)) == 118008);
  assert(unsigned(zero_extend(0x1ccfc, 64)) == 118012);
  assert(unsigned(zero_extend(0x1cd00, 64)) == 118016);
  assert(unsigned(zero_extend(0x1cd30, 64)) == 118064);
  assert(unsigned(zero_extend(0x1cd34, 64)) == 118068);
  assert(unsigned(zero_extend(0x1cd38, 64)) == 118072);
  assert(unsigned(zero_extend(0x1cd3c, 64)) == 118076);
  assert(unsigned(zero_extend(0x1cd40, 64)) == 118080);
  assert(unsigned(zero_extend(0x1cd44, 64)) == 118084);
  assert(unsigned(zero_extend(0x1cd48, 64)) == 118088);
  assert(unsigned(zero_extend(0x1cd4c, 64)) == 118092);
  assert(unsigned(zero_extend(0x1cd50, 64)) == 118096);
  assert(unsigned(zero_extend(0x1cd54, 64)) == 118100);
  assert(unsigned(zero_extend(0x1cd58, 64)) == 118104);
  assert(unsigned(zero_extend(0x1cd7c, 64)) == 118140);
  assert(unsigned(zero_extend(0x1cd80, 64)) == 118144);
  assert(unsigned(zero_extend(0x1cd84, 64)) == 118148);
  assert(unsigned(zero_extend(0x1cd88, 64)) == 118152);
  assert(unsigned(zero_extend(0x1cd8c, 64)) == 118156);
  assert(unsigned(zero_extend(0x1cd90, 64)) == 118160);
  assert(unsigned(zero_extend(0x1cd94, 64)) == 118164);
  assert(unsigned(zero_extend(0x1cd98, 64)) == 118168);
  assert(unsigned(zero_extend(0x1cd9c, 64)) == 118172);
  assert(unsigned(zero_extend(0x1cda0, 64)) == 118176);
  assert(unsigned(zero_extend(0x1cda4, 64)) == 118180);
  assert(unsigned(zero_extend(0x1cda8, 64)) == 118184);
  assert(unsigned(zero_extend(0x1cdac, 64)) == 118188);
  assert(unsigned(zero_extend(0x1cdb0, 64)) == 118192);
  assert(unsigned(zero_extend(0x1cdb4, 64)) == 118196);
  assert(unsigned(zero_extend(0x1cdb8, 64)) == 118200);
  assert(unsigned(zero_extend(0x1cdbc, 64)) == 118204);
  assert(unsigned(zero_extend(0x1cdc0, 64)) == 118208);
  assert(unsigned(zero_extend(0x1cdc4, 64)) == 118212);
  assert(unsigned(zero_extend(0x1cdc8, 64)) == 118216);
  assert(unsigned(zero_extend(0x1cdcc, 64)) == 118220);
  assert(unsigned(zero_extend(0x1cdd0, 64)) == 118224);
  assert(unsigned(zero_extend(0x1cdd4, 64)) == 118228);
  assert(unsigned(zero_extend(0x1cdd8, 64)) == 118232);
  assert(unsigned(zero_extend(0x1cddc, 64)) == 118236);
  assert(unsigned(zero_extend(0x1cde0, 64)) == 118240);
  assert(unsigned(zero_extend(0x1cde4, 64)) == 118244);
  assert(unsigned(zero_extend(0x1cde8, 64)) == 118248);
  assert(unsigned(zero_extend(0x1cdec, 64)) == 118252);
  assert(unsigned(zero_extend(0x1cdf0, 64)) == 118256);
  assert(unsigned(zero_extend(0x1cdf4, 64)) == 118260);
}