File: unsigned2.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-- 173,888 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(0x21ad18, 52)) == 2207000);
  assert(unsigned(zero_extend(0x21ad1c, 52)) == 2207004);
  assert(unsigned(zero_extend(0x21ad20, 52)) == 2207008);
  assert(unsigned(zero_extend(0x21ad24, 52)) == 2207012);
  assert(unsigned(zero_extend(0x21ad28, 52)) == 2207016);
  assert(unsigned(zero_extend(0x21ad2c, 52)) == 2207020);
  assert(unsigned(zero_extend(0x21ad30, 52)) == 2207024);
  assert(unsigned(zero_extend(0x21ad34, 52)) == 2207028);
  assert(unsigned(zero_extend(0x21ad38, 52)) == 2207032);
  assert(unsigned(zero_extend(0x21ad3c, 52)) == 2207036);
  assert(unsigned(zero_extend(0x21ad40, 52)) == 2207040);
  assert(unsigned(zero_extend(0x21ad44, 52)) == 2207044);
  assert(unsigned(zero_extend(0x21ad48, 52)) == 2207048);
  assert(unsigned(zero_extend(0x21ad4c, 52)) == 2207052);
  assert(unsigned(zero_extend(0x21ad50, 52)) == 2207056);
  assert(unsigned(zero_extend(0x21ad54, 52)) == 2207060);
  assert(unsigned(zero_extend(0x21ad58, 52)) == 2207064);
  assert(unsigned(zero_extend(0x21ad5c, 52)) == 2207068);
  assert(unsigned(zero_extend(0x21ad60, 52)) == 2207072);
  assert(unsigned(zero_extend(0x21ad64, 52)) == 2207076);
  assert(unsigned(zero_extend(0x21ad68, 52)) == 2207080);
  assert(unsigned(zero_extend(0x21ad6c, 52)) == 2207084);
  assert(unsigned(zero_extend(0x21ad70, 52)) == 2207088);
  assert(unsigned(zero_extend(0x21ad74, 52)) == 2207092);
  assert(unsigned(zero_extend(0x21ad78, 52)) == 2207096);
  assert(unsigned(zero_extend(0x21ad7c, 52)) == 2207100);
  assert(unsigned(zero_extend(0x21ad80, 52)) == 2207104);
  assert(unsigned(zero_extend(0x21ad84, 52)) == 2207108);
  assert(unsigned(zero_extend(0x21ad88, 52)) == 2207112);
  assert(unsigned(zero_extend(0x21ad8c, 52)) == 2207116);
  assert(unsigned(zero_extend(0x21ad90, 52)) == 2207120);
  assert(unsigned(zero_extend(0x21ad94, 52)) == 2207124);
  assert(unsigned(zero_extend(0x21ad98, 52)) == 2207128);
  assert(unsigned(zero_extend(0x21ad9c, 52)) == 2207132);
  assert(unsigned(zero_extend(0x21ada0, 52)) == 2207136);
  assert(unsigned(zero_extend(0x21ada4, 52)) == 2207140);
  assert(unsigned(zero_extend(0x21ada8, 52)) == 2207144);
  assert(unsigned(zero_extend(0x21adac, 52)) == 2207148);
  assert(unsigned(zero_extend(0x21adb0, 52)) == 2207152);
  assert(unsigned(zero_extend(0x21adb4, 52)) == 2207156);
  assert(unsigned(zero_extend(0x21adb8, 52)) == 2207160);
  assert(unsigned(zero_extend(0x21adbc, 52)) == 2207164);
  assert(unsigned(zero_extend(0x21adc0, 52)) == 2207168);
  assert(unsigned(zero_extend(0x21adc4, 52)) == 2207172);
  assert(unsigned(zero_extend(0x21adc8, 52)) == 2207176);
  assert(unsigned(zero_extend(0x21adcc, 52)) == 2207180);
  assert(unsigned(zero_extend(0x21add0, 52)) == 2207184);
  assert(unsigned(zero_extend(0x21add4, 52)) == 2207188);
  assert(unsigned(zero_extend(0x21add8, 52)) == 2207192);
  assert(unsigned(zero_extend(0x21addc, 52)) == 2207196);
  assert(unsigned(zero_extend(0x21ade0, 52)) == 2207200);
  assert(unsigned(zero_extend(0x21ade4, 52)) == 2207204);
  assert(unsigned(zero_extend(0x21ade8, 52)) == 2207208);
  assert(unsigned(zero_extend(0x21adec, 52)) == 2207212);
  assert(unsigned(zero_extend(0x21adf0, 52)) == 2207216);
  assert(unsigned(zero_extend(0x21adf4, 52)) == 2207220);
  assert(unsigned(zero_extend(0x21adf8, 52)) == 2207224);
  assert(unsigned(zero_extend(0x21adfc, 52)) == 2207228);
  assert(unsigned(zero_extend(0x21ae00, 52)) == 2207232);
  assert(unsigned(zero_extend(0x21ae04, 52)) == 2207236);
  assert(unsigned(zero_extend(0x21ae08, 52)) == 2207240);
  assert(unsigned(zero_extend(0x21ae0c, 52)) == 2207244);
  assert(unsigned(zero_extend(0x21ae10, 52)) == 2207248);
  assert(unsigned(zero_extend(0x21ae14, 52)) == 2207252);
  assert(unsigned(zero_extend(0x21ae18, 52)) == 2207256);
  assert(unsigned(zero_extend(0x21ae1c, 52)) == 2207260);
  assert(unsigned(zero_extend(0x21ae20, 52)) == 2207264);
  assert(unsigned(zero_extend(0x21ae28, 52)) == 2207272);
  assert(unsigned(zero_extend(0x21ae30, 52)) == 2207280);
  assert(unsigned(zero_extend(0x21ae40, 52)) == 2207296);
  assert(unsigned(zero_extend(0x21ae44, 52)) == 2207300);
  assert(unsigned(zero_extend(0x21ae48, 52)) == 2207304);
  assert(unsigned(zero_extend(0x21ae4c, 52)) == 2207308);
  assert(unsigned(zero_extend(0x21ae50, 52)) == 2207312);
  assert(unsigned(zero_extend(0x21ae54, 52)) == 2207316);
  assert(unsigned(zero_extend(0x21ae58, 52)) == 2207320);
  assert(unsigned(zero_extend(0x21ae5c, 52)) == 2207324);
  assert(unsigned(zero_extend(0x21ae60, 52)) == 2207328);
  assert(unsigned(zero_extend(0x21ae64, 52)) == 2207332);
  assert(unsigned(zero_extend(0x21ae68, 52)) == 2207336);
  assert(unsigned(zero_extend(0x21ae6c, 52)) == 2207340);
  assert(unsigned(zero_extend(0x21ae70, 52)) == 2207344);
  assert(unsigned(zero_extend(0x21ae74, 52)) == 2207348);
  assert(unsigned(zero_extend(0x21ae78, 52)) == 2207352);
  assert(unsigned(zero_extend(0x21ae80, 52)) == 2207360);
  assert(unsigned(zero_extend(0x21ae88, 52)) == 2207368);
  assert(unsigned(zero_extend(0x21aef0, 52)) == 2207472);
  assert(unsigned(zero_extend(0x21aef4, 52)) == 2207476);
  assert(unsigned(zero_extend(0x21aef8, 52)) == 2207480);
  assert(unsigned(zero_extend(0x21aefc, 52)) == 2207484);
  assert(unsigned(zero_extend(0x21af00, 52)) == 2207488);
  assert(unsigned(zero_extend(0x21af04, 52)) == 2207492);
  assert(unsigned(zero_extend(0x21af08, 52)) == 2207496);
  assert(unsigned(zero_extend(0x21af0c, 52)) == 2207500);
  assert(unsigned(zero_extend(0x21af10, 52)) == 2207504);
  assert(unsigned(zero_extend(0x21af14, 52)) == 2207508);
  assert(unsigned(zero_extend(0x21af18, 52)) == 2207512);
  assert(unsigned(zero_extend(0x21af1c, 52)) == 2207516);
  assert(unsigned(zero_extend(0x21af20, 52)) == 2207520);
  assert(unsigned(zero_extend(0x21af24, 52)) == 2207524);
  assert(unsigned(zero_extend(0x21af28, 52)) == 2207528);
  assert(unsigned(zero_extend(0x21af2c, 52)) == 2207532);
  assert(unsigned(zero_extend(0x21af30, 52)) == 2207536);
  assert(unsigned(zero_extend(0x21af34, 52)) == 2207540);
  assert(unsigned(zero_extend(0x21af38, 52)) == 2207544);
  assert(unsigned(zero_extend(0x21af3c, 52)) == 2207548);
  assert(unsigned(zero_extend(0x21af40, 52)) == 2207552);
  assert(unsigned(zero_extend(0x21af44, 52)) == 2207556);
  assert(unsigned(zero_extend(0x21af48, 52)) == 2207560);
  assert(unsigned(zero_extend(0x21af4c, 52)) == 2207564);
  assert(unsigned(zero_extend(0x21af50, 52)) == 2207568);
  assert(unsigned(zero_extend(0x21af54, 52)) == 2207572);
  assert(unsigned(zero_extend(0x21af58, 52)) == 2207576);
  assert(unsigned(zero_extend(0x21af5c, 52)) == 2207580);
  assert(unsigned(zero_extend(0x21af60, 52)) == 2207584);
  assert(unsigned(zero_extend(0x21af64, 52)) == 2207588);
  assert(unsigned(zero_extend(0x21af68, 52)) == 2207592);
  assert(unsigned(zero_extend(0x21af6c, 52)) == 2207596);
  assert(unsigned(zero_extend(0x21af70, 52)) == 2207600);
  assert(unsigned(zero_extend(0x21af74, 52)) == 2207604);
  assert(unsigned(zero_extend(0x21af78, 52)) == 2207608);
  assert(unsigned(zero_extend(0x21af7c, 52)) == 2207612);
  assert(unsigned(zero_extend(0x21af80, 52)) == 2207616);
  assert(unsigned(zero_extend(0x21af84, 52)) == 2207620);
  assert(unsigned(zero_extend(0x21af88, 52)) == 2207624);
  assert(unsigned(zero_extend(0x21af8c, 52)) == 2207628);
  assert(unsigned(zero_extend(0x21af90, 52)) == 2207632);
  assert(unsigned(zero_extend(0x21af94, 52)) == 2207636);
  assert(unsigned(zero_extend(0x21af98, 52)) == 2207640);
  assert(unsigned(zero_extend(0x21af9c, 52)) == 2207644);
  assert(unsigned(zero_extend(0x21afa0, 52)) == 2207648);
  assert(unsigned(zero_extend(0x21afa4, 52)) == 2207652);
  assert(unsigned(zero_extend(0x21afa8, 52)) == 2207656);
  assert(unsigned(zero_extend(0x21afac, 52)) == 2207660);
  assert(unsigned(zero_extend(0x21afb0, 52)) == 2207664);
  assert(unsigned(zero_extend(0x21afb4, 52)) == 2207668);
  assert(unsigned(zero_extend(0x21afb8, 52)) == 2207672);
  assert(unsigned(zero_extend(0x21afbc, 52)) == 2207676);
  assert(unsigned(zero_extend(0x21afc0, 52)) == 2207680);
  assert(unsigned(zero_extend(0x21afc4, 52)) == 2207684);
  assert(unsigned(zero_extend(0x21afc8, 52)) == 2207688);
  assert(unsigned(zero_extend(0x21afcc, 52)) == 2207692);
  assert(unsigned(zero_extend(0x21afd0, 52)) == 2207696);
  assert(unsigned(zero_extend(0x21afd4, 52)) == 2207700);
  assert(unsigned(zero_extend(0x21afd8, 52)) == 2207704);
  assert(unsigned(zero_extend(0x21afdc, 52)) == 2207708);
  assert(unsigned(zero_extend(0x21afe0, 52)) == 2207712);
  assert(unsigned(zero_extend(0x21afe4, 52)) == 2207716);
  assert(unsigned(zero_extend(0x21afe8, 52)) == 2207720);
  assert(unsigned(zero_extend(0x21afec, 52)) == 2207724);
  assert(unsigned(zero_extend(0x21aff0, 52)) == 2207728);
  assert(unsigned(zero_extend(0x21aff4, 52)) == 2207732);
  assert(unsigned(zero_extend(0x21aff8, 52)) == 2207736);
  assert(unsigned(zero_extend(0x21affc, 52)) == 2207740);
  assert(unsigned(zero_extend(0x21b000, 52)) == 2207744);
  assert(unsigned(zero_extend(0x21b004, 52)) == 2207748);
  assert(unsigned(zero_extend(0x21b008, 52)) == 2207752);
  assert(unsigned(zero_extend(0x21b00c, 52)) == 2207756);
  assert(unsigned(zero_extend(0x21b010, 52)) == 2207760);
  assert(unsigned(zero_extend(0x21b014, 52)) == 2207764);
  assert(unsigned(zero_extend(0x21b018, 52)) == 2207768);
  assert(unsigned(zero_extend(0x21b01c, 52)) == 2207772);
  assert(unsigned(zero_extend(0x21b020, 52)) == 2207776);
  assert(unsigned(zero_extend(0x21b024, 52)) == 2207780);
  assert(unsigned(zero_extend(0x21b028, 52)) == 2207784);
  assert(unsigned(zero_extend(0x21b02c, 52)) == 2207788);
  assert(unsigned(zero_extend(0x21b030, 52)) == 2207792);
  assert(unsigned(zero_extend(0x21b034, 52)) == 2207796);
  assert(unsigned(zero_extend(0x21b038, 52)) == 2207800);
  assert(unsigned(zero_extend(0x21b03c, 52)) == 2207804);
  assert(unsigned(zero_extend(0x21b040, 52)) == 2207808);
  assert(unsigned(zero_extend(0x21b044, 52)) == 2207812);
  assert(unsigned(zero_extend(0x21b048, 52)) == 2207816);
  assert(unsigned(zero_extend(0x21b04c, 52)) == 2207820);
  assert(unsigned(zero_extend(0x21b050, 52)) == 2207824);
  assert(unsigned(zero_extend(0x21b054, 52)) == 2207828);
  assert(unsigned(zero_extend(0x21b058, 52)) == 2207832);
  assert(unsigned(zero_extend(0x21b05c, 52)) == 2207836);
  assert(unsigned(zero_extend(0x21b060, 52)) == 2207840);
  assert(unsigned(zero_extend(0x21b064, 52)) == 2207844);
  assert(unsigned(zero_extend(0x21b068, 52)) == 2207848);
  assert(unsigned(zero_extend(0x21b06c, 52)) == 2207852);
  assert(unsigned(zero_extend(0x21b070, 52)) == 2207856);
  assert(unsigned(zero_extend(0x21b074, 52)) == 2207860);
  assert(unsigned(zero_extend(0x21b078, 52)) == 2207864);
  assert(unsigned(zero_extend(0x21b07c, 52)) == 2207868);
  assert(unsigned(zero_extend(0x21b080, 52)) == 2207872);
  assert(unsigned(zero_extend(0x21b088, 52)) == 2207880);
  assert(unsigned(zero_extend(0x21b090, 52)) == 2207888);
  assert(unsigned(zero_extend(0x21b098, 52)) == 2207896);
  assert(unsigned(zero_extend(0x21b09c, 52)) == 2207900);
  assert(unsigned(zero_extend(0x21b0a0, 52)) == 2207904);
  assert(unsigned(zero_extend(0x21b0a4, 52)) == 2207908);
  assert(unsigned(zero_extend(0x21b0a8, 52)) == 2207912);
  assert(unsigned(zero_extend(0x21b0ac, 52)) == 2207916);
  assert(unsigned(zero_extend(0x21b0b0, 52)) == 2207920);
  assert(unsigned(zero_extend(0x21b0b4, 52)) == 2207924);
  assert(unsigned(zero_extend(0x21b0b8, 52)) == 2207928);
  assert(unsigned(zero_extend(0x21b0bc, 52)) == 2207932);
  assert(unsigned(zero_extend(0x21b0c0, 52)) == 2207936);
  assert(unsigned(zero_extend(0x21b0c4, 52)) == 2207940);
  assert(unsigned(zero_extend(0x21b0c8, 52)) == 2207944);
  assert(unsigned(zero_extend(0x21b0cc, 52)) == 2207948);
  assert(unsigned(zero_extend(0x21b0d0, 52)) == 2207952);
  assert(unsigned(zero_extend(0x21b0d4, 52)) == 2207956);
  assert(unsigned(zero_extend(0x21b0d8, 52)) == 2207960);
  assert(unsigned(zero_extend(0x21b0dc, 52)) == 2207964);
  assert(unsigned(zero_extend(0x21b0e0, 52)) == 2207968);
  assert(unsigned(zero_extend(0x21b0e4, 52)) == 2207972);
  assert(unsigned(zero_extend(0x21b0e8, 52)) == 2207976);
  assert(unsigned(zero_extend(0x21b0ec, 52)) == 2207980);
  assert(unsigned(zero_extend(0x21b0f0, 52)) == 2207984);
  assert(unsigned(zero_extend(0x21b0f4, 52)) == 2207988);
  assert(unsigned(zero_extend(0x21b0f8, 52)) == 2207992);
  assert(unsigned(zero_extend(0x21b0fc, 52)) == 2207996);
  assert(unsigned(zero_extend(0x21b100, 52)) == 2208000);
  assert(unsigned(zero_extend(0x21b104, 52)) == 2208004);
  assert(unsigned(zero_extend(0x21b108, 52)) == 2208008);
  assert(unsigned(zero_extend(0x21b10c, 52)) == 2208012);
  assert(unsigned(zero_extend(0x21b110, 52)) == 2208016);
  assert(unsigned(zero_extend(0x21b114, 52)) == 2208020);
  assert(unsigned(zero_extend(0x21b118, 52)) == 2208024);
  assert(unsigned(zero_extend(0x21b11c, 52)) == 2208028);
  assert(unsigned(zero_extend(0x21b120, 52)) == 2208032);
  assert(unsigned(zero_extend(0x21b124, 52)) == 2208036);
  assert(unsigned(zero_extend(0x21b128, 52)) == 2208040);
  assert(unsigned(zero_extend(0x21b12c, 52)) == 2208044);
  assert(unsigned(zero_extend(0x21b130, 52)) == 2208048);
  assert(unsigned(zero_extend(0x21b134, 52)) == 2208052);
  assert(unsigned(zero_extend(0x21b138, 52)) == 2208056);
  assert(unsigned(zero_extend(0x21b13c, 52)) == 2208060);
  assert(unsigned(zero_extend(0x21b140, 52)) == 2208064);
  assert(unsigned(zero_extend(0x21b144, 52)) == 2208068);
  assert(unsigned(zero_extend(0x21b148, 52)) == 2208072);
  assert(unsigned(zero_extend(0x21b14c, 52)) == 2208076);
  assert(unsigned(zero_extend(0x21b150, 52)) == 2208080);
  assert(unsigned(zero_extend(0x21b154, 52)) == 2208084);
  assert(unsigned(zero_extend(0x21b158, 52)) == 2208088);
  assert(unsigned(zero_extend(0x21b15c, 52)) == 2208092);
  assert(unsigned(zero_extend(0x21b160, 52)) == 2208096);
  assert(unsigned(zero_extend(0x21b164, 52)) == 2208100);
  assert(unsigned(zero_extend(0x21b168, 52)) == 2208104);
  assert(unsigned(zero_extend(0x21b16c, 52)) == 2208108);
  assert(unsigned(zero_extend(0x21b170, 52)) == 2208112);
  assert(unsigned(zero_extend(0x21b174, 52)) == 2208116);
  assert(unsigned(zero_extend(0x21b178, 52)) == 2208120);
  assert(unsigned(zero_extend(0x21b17c, 52)) == 2208124);
  assert(unsigned(zero_extend(0x21b180, 52)) == 2208128);
  assert(unsigned(zero_extend(0x21b184, 52)) == 2208132);
  assert(unsigned(zero_extend(0x21b188, 52)) == 2208136);
  assert(unsigned(zero_extend(0x21b18c, 52)) == 2208140);
  assert(unsigned(zero_extend(0x21b190, 52)) == 2208144);
  assert(unsigned(zero_extend(0x21b194, 52)) == 2208148);
  assert(unsigned(zero_extend(0x21b198, 52)) == 2208152);
  assert(unsigned(zero_extend(0x21b19c, 52)) == 2208156);
  assert(unsigned(zero_extend(0x21b1a0, 52)) == 2208160);
  assert(unsigned(zero_extend(0x21b1a4, 52)) == 2208164);
  assert(unsigned(zero_extend(0x21b1a8, 52)) == 2208168);
  assert(unsigned(zero_extend(0x21b1ac, 52)) == 2208172);
  assert(unsigned(zero_extend(0x21b1b0, 52)) == 2208176);
  assert(unsigned(zero_extend(0x21b1b4, 52)) == 2208180);
  assert(unsigned(zero_extend(0x21b1b8, 52)) == 2208184);
  assert(unsigned(zero_extend(0x21b1bc, 52)) == 2208188);
  assert(unsigned(zero_extend(0x21b1c0, 52)) == 2208192);
  assert(unsigned(zero_extend(0x21b1c4, 52)) == 2208196);
  assert(unsigned(zero_extend(0x21b1c8, 52)) == 2208200);
  assert(unsigned(zero_extend(0x21b1cc, 52)) == 2208204);
  assert(unsigned(zero_extend(0x21b1d0, 52)) == 2208208);
  assert(unsigned(zero_extend(0x21b1d4, 52)) == 2208212);
  assert(unsigned(zero_extend(0x21b1d8, 52)) == 2208216);
  assert(unsigned(zero_extend(0x21b1dc, 52)) == 2208220);
  assert(unsigned(zero_extend(0x21b1e0, 52)) == 2208224);
  assert(unsigned(zero_extend(0x21b1e4, 52)) == 2208228);
  assert(unsigned(zero_extend(0x21b1e8, 52)) == 2208232);
  assert(unsigned(zero_extend(0x21b1f8, 52)) == 2208248);
  assert(unsigned(zero_extend(0x21b1fc, 52)) == 2208252);
  assert(unsigned(zero_extend(0x21b200, 52)) == 2208256);
  assert(unsigned(zero_extend(0x21b204, 52)) == 2208260);
  assert(unsigned(zero_extend(0x21b208, 52)) == 2208264);
  assert(unsigned(zero_extend(0x21b20c, 52)) == 2208268);
  assert(unsigned(zero_extend(0x21b210, 52)) == 2208272);
  assert(unsigned(zero_extend(0x21b214, 52)) == 2208276);
  assert(unsigned(zero_extend(0x21b218, 52)) == 2208280);
  assert(unsigned(zero_extend(0x21b21c, 52)) == 2208284);
  assert(unsigned(zero_extend(0x21b220, 52)) == 2208288);
  assert(unsigned(zero_extend(0x21b224, 52)) == 2208292);
  assert(unsigned(zero_extend(0x21b228, 52)) == 2208296);
  assert(unsigned(zero_extend(0x21b22c, 52)) == 2208300);
  assert(unsigned(zero_extend(0x21b230, 52)) == 2208304);
  assert(unsigned(zero_extend(0x21b238, 52)) == 2208312);
  assert(unsigned(zero_extend(0x21b240, 52)) == 2208320);
  assert(unsigned(zero_extend(0x21b248, 52)) == 2208328);
  assert(unsigned(zero_extend(0x21b250, 52)) == 2208336);
  assert(unsigned(zero_extend(0x21b254, 52)) == 2208340);
  assert(unsigned(zero_extend(0x21b258, 52)) == 2208344);
  assert(unsigned(zero_extend(0x21b25c, 52)) == 2208348);
  assert(unsigned(zero_extend(0x21b260, 52)) == 2208352);
  assert(unsigned(zero_extend(0x21b264, 52)) == 2208356);
  assert(unsigned(zero_extend(0x21b268, 52)) == 2208360);
  assert(unsigned(zero_extend(0x21b26c, 52)) == 2208364);
  assert(unsigned(zero_extend(0x21b270, 52)) == 2208368);
  assert(unsigned(zero_extend(0x21b274, 52)) == 2208372);
  assert(unsigned(zero_extend(0x21b278, 52)) == 2208376);
  assert(unsigned(zero_extend(0x21b27c, 52)) == 2208380);
  assert(unsigned(zero_extend(0x21b280, 52)) == 2208384);
  assert(unsigned(zero_extend(0x21b288, 52)) == 2208392);
  assert(unsigned(zero_extend(0x21b290, 52)) == 2208400);
  assert(unsigned(zero_extend(0x21b298, 52)) == 2208408);
  assert(unsigned(zero_extend(0x21b2a0, 52)) == 2208416);
  assert(unsigned(zero_extend(0x21b2a8, 52)) == 2208424);
  assert(unsigned(zero_extend(0x21b690, 52)) == 2209424);
  assert(unsigned(zero_extend(0x21b694, 52)) == 2209428);
  assert(unsigned(zero_extend(0x21b698, 52)) == 2209432);
  assert(unsigned(zero_extend(0x21b69c, 52)) == 2209436);
  assert(unsigned(zero_extend(0x21b6a0, 52)) == 2209440);
  assert(unsigned(zero_extend(0x21b6a4, 52)) == 2209444);
  assert(unsigned(zero_extend(0x21b6a8, 52)) == 2209448);
  assert(unsigned(zero_extend(0x21b6ac, 52)) == 2209452);
  assert(unsigned(zero_extend(0x21b6b0, 52)) == 2209456);
  assert(unsigned(zero_extend(0x21b6b4, 52)) == 2209460);
  assert(unsigned(zero_extend(0x21b6b8, 52)) == 2209464);
  assert(unsigned(zero_extend(0x21b6bc, 52)) == 2209468);
  assert(unsigned(zero_extend(0x21b6c0, 52)) == 2209472);
  assert(unsigned(zero_extend(0x21b6c4, 52)) == 2209476);
  assert(unsigned(zero_extend(0x21b6d4, 52)) == 2209492);
  assert(unsigned(zero_extend(0x21b6d8, 52)) == 2209496);
  assert(unsigned(zero_extend(0x21b6dc, 52)) == 2209500);
  assert(unsigned(zero_extend(0x21b6e0, 52)) == 2209504);
  assert(unsigned(zero_extend(0x21b6e4, 52)) == 2209508);
  assert(unsigned(zero_extend(0x21b6e8, 52)) == 2209512);
  assert(unsigned(zero_extend(0x21b6ec, 52)) == 2209516);
  assert(unsigned(zero_extend(0x21b6f0, 52)) == 2209520);
  assert(unsigned(zero_extend(0x21b6f4, 52)) == 2209524);
  assert(unsigned(zero_extend(0x21b6f8, 52)) == 2209528);
  assert(unsigned(zero_extend(0x21b6fc, 52)) == 2209532);
  assert(unsigned(zero_extend(0x21b700, 52)) == 2209536);
  assert(unsigned(zero_extend(0x21b704, 52)) == 2209540);
  assert(unsigned(zero_extend(0x21b708, 52)) == 2209544);
  assert(unsigned(zero_extend(0x21b70c, 52)) == 2209548);
  assert(unsigned(zero_extend(0x21b710, 52)) == 2209552);
  assert(unsigned(zero_extend(0x21b714, 52)) == 2209556);
  assert(unsigned(zero_extend(0x21b718, 52)) == 2209560);
  assert(unsigned(zero_extend(0x21b71c, 52)) == 2209564);
  assert(unsigned(zero_extend(0x21b720, 52)) == 2209568);
  assert(unsigned(zero_extend(0x21b724, 52)) == 2209572);
  assert(unsigned(zero_extend(0x21b728, 52)) == 2209576);
  assert(unsigned(zero_extend(0x21b72c, 52)) == 2209580);
  assert(unsigned(zero_extend(0x21b730, 52)) == 2209584);
  assert(unsigned(zero_extend(0x21b734, 52)) == 2209588);
  assert(unsigned(zero_extend(0x21b738, 52)) == 2209592);
  assert(unsigned(zero_extend(0x21b73c, 52)) == 2209596);
  assert(unsigned(zero_extend(0x21b740, 52)) == 2209600);
  assert(unsigned(zero_extend(0x21b744, 52)) == 2209604);
  assert(unsigned(zero_extend(0x21b748, 52)) == 2209608);
  assert(unsigned(zero_extend(0x21b74c, 52)) == 2209612);
  assert(unsigned(zero_extend(0x21b750, 52)) == 2209616);
  assert(unsigned(zero_extend(0x21b754, 52)) == 2209620);
  assert(unsigned(zero_extend(0x21b758, 52)) == 2209624);
  assert(unsigned(zero_extend(0x21b75c, 52)) == 2209628);
  assert(unsigned(zero_extend(0x21b760, 52)) == 2209632);
  assert(unsigned(zero_extend(0x21b764, 52)) == 2209636);
  assert(unsigned(zero_extend(0x21b768, 52)) == 2209640);
  assert(unsigned(zero_extend(0x21b76c, 52)) == 2209644);
  assert(unsigned(zero_extend(0x21b770, 52)) == 2209648);
  assert(unsigned(zero_extend(0x21b774, 52)) == 2209652);
  assert(unsigned(zero_extend(0x21b778, 52)) == 2209656);
  assert(unsigned(zero_extend(0x21b77c, 52)) == 2209660);
  assert(unsigned(zero_extend(0x21b780, 52)) == 2209664);
  assert(unsigned(zero_extend(0x21b784, 52)) == 2209668);
  assert(unsigned(zero_extend(0x21b788, 52)) == 2209672);
  assert(unsigned(zero_extend(0x21b78c, 52)) == 2209676);
  assert(unsigned(zero_extend(0x21b7b8, 52)) == 2209720);
  assert(unsigned(zero_extend(0x21b7bc, 52)) == 2209724);
  assert(unsigned(zero_extend(0x21b7c0, 52)) == 2209728);
  assert(unsigned(zero_extend(0x21b7c4, 52)) == 2209732);
  assert(unsigned(zero_extend(0x21b7c8, 52)) == 2209736);
  assert(unsigned(zero_extend(0x21b7cc, 52)) == 2209740);
  assert(unsigned(zero_extend(0x21b7d0, 52)) == 2209744);
  assert(unsigned(zero_extend(0x21b7d4, 52)) == 2209748);
  assert(unsigned(zero_extend(0x21b7d8, 52)) == 2209752);
  assert(unsigned(zero_extend(0x21b7dc, 52)) == 2209756);
  assert(unsigned(zero_extend(0x21b7e0, 52)) == 2209760);
  assert(unsigned(zero_extend(0x21b7e8, 52)) == 2209768);
  assert(unsigned(zero_extend(0x21b7f0, 52)) == 2209776);
  assert(unsigned(zero_extend(0x21b810, 52)) == 2209808);
  assert(unsigned(zero_extend(0x21b814, 52)) == 2209812);
  assert(unsigned(zero_extend(0x21b818, 52)) == 2209816);
  assert(unsigned(zero_extend(0x21b81c, 52)) == 2209820);
  assert(unsigned(zero_extend(0x21b820, 52)) == 2209824);
  assert(unsigned(zero_extend(0x21b824, 52)) == 2209828);
  assert(unsigned(zero_extend(0x21b828, 52)) == 2209832);
  assert(unsigned(zero_extend(0x21b82c, 52)) == 2209836);
  assert(unsigned(zero_extend(0x21b830, 52)) == 2209840);
  assert(unsigned(zero_extend(0x21b838, 52)) == 2209848);
  assert(unsigned(zero_extend(0x21b83c, 52)) == 2209852);
  assert(unsigned(zero_extend(0x21b840, 52)) == 2209856);
  assert(unsigned(zero_extend(0x21b844, 52)) == 2209860);
  assert(unsigned(zero_extend(0x21b848, 52)) == 2209864);
  assert(unsigned(zero_extend(0x21b84c, 52)) == 2209868);
  assert(unsigned(zero_extend(0x21b850, 52)) == 2209872);
  assert(unsigned(zero_extend(0x21b854, 52)) == 2209876);
  assert(unsigned(zero_extend(0x21b858, 52)) == 2209880);
  assert(unsigned(zero_extend(0x21b85c, 52)) == 2209884);
  assert(unsigned(zero_extend(0x21b860, 52)) == 2209888);
  assert(unsigned(zero_extend(0x21b864, 52)) == 2209892);
  assert(unsigned(zero_extend(0x21b868, 52)) == 2209896);
  assert(unsigned(zero_extend(0x21b86c, 52)) == 2209900);
  assert(unsigned(zero_extend(0x21b870, 52)) == 2209904);
  assert(unsigned(zero_extend(0x21b874, 52)) == 2209908);
  assert(unsigned(zero_extend(0x21b878, 52)) == 2209912);
  assert(unsigned(zero_extend(0x21b87c, 52)) == 2209916);
  assert(unsigned(zero_extend(0x21b888, 52)) == 2209928);
  assert(unsigned(zero_extend(0x21b890, 52)) == 2209936);
  assert(unsigned(zero_extend(0x21b894, 52)) == 2209940);
  assert(unsigned(zero_extend(0x21b898, 52)) == 2209944);
  assert(unsigned(zero_extend(0x21b89c, 52)) == 2209948);
  assert(unsigned(zero_extend(0x21b8a0, 52)) == 2209952);
  assert(unsigned(zero_extend(0x21b8a4, 52)) == 2209956);
  assert(unsigned(zero_extend(0x21b8a8, 52)) == 2209960);
  assert(unsigned(zero_extend(0x21b8ac, 52)) == 2209964);
  assert(unsigned(zero_extend(0x21b8b0, 52)) == 2209968);
  assert(unsigned(zero_extend(0x21b8b4, 52)) == 2209972);
  assert(unsigned(zero_extend(0x21b8b8, 52)) == 2209976);
  assert(unsigned(zero_extend(0x21b8bc, 52)) == 2209980);
  assert(unsigned(zero_extend(0x21b8c0, 52)) == 2209984);
  assert(unsigned(zero_extend(0x21b8c4, 52)) == 2209988);
  assert(unsigned(zero_extend(0x21b8c8, 52)) == 2209992);
  assert(unsigned(zero_extend(0x21b8cc, 52)) == 2209996);
  assert(unsigned(zero_extend(0x21b8d0, 52)) == 2210000);
  assert(unsigned(zero_extend(0x21b8d4, 52)) == 2210004);
  assert(unsigned(zero_extend(0x21b910, 52)) == 2210064);
  assert(unsigned(zero_extend(0x21b914, 52)) == 2210068);
  assert(unsigned(zero_extend(0x21b918, 52)) == 2210072);
  assert(unsigned(zero_extend(0x21b91c, 52)) == 2210076);
  assert(unsigned(zero_extend(0x21b920, 52)) == 2210080);
  assert(unsigned(zero_extend(0x21b924, 52)) == 2210084);
  assert(unsigned(zero_extend(0x21b928, 52)) == 2210088);
  assert(unsigned(zero_extend(0x21b92c, 52)) == 2210092);
  assert(unsigned(zero_extend(0x21b930, 52)) == 2210096);
  assert(unsigned(zero_extend(0x21b934, 52)) == 2210100);
  assert(unsigned(zero_extend(0x21b938, 52)) == 2210104);
  assert(unsigned(zero_extend(0x21b93c, 52)) == 2210108);
  assert(unsigned(zero_extend(0x21b940, 52)) == 2210112);
  assert(unsigned(zero_extend(0x21b944, 52)) == 2210116);
  assert(unsigned(zero_extend(0x21b948, 52)) == 2210120);
  assert(unsigned(zero_extend(0x21b94c, 52)) == 2210124);
  assert(unsigned(zero_extend(0x21b950, 52)) == 2210128);
  assert(unsigned(zero_extend(0x21b954, 52)) == 2210132);
  assert(unsigned(zero_extend(0x21b958, 52)) == 2210136);
  assert(unsigned(zero_extend(0x21b95c, 52)) == 2210140);
  assert(unsigned(zero_extend(0x21b960, 52)) == 2210144);
  assert(unsigned(zero_extend(0x21b964, 52)) == 2210148);
  assert(unsigned(zero_extend(0x21b968, 52)) == 2210152);
  assert(unsigned(zero_extend(0x21b96c, 52)) == 2210156);
  assert(unsigned(zero_extend(0x21b970, 52)) == 2210160);
  assert(unsigned(zero_extend(0x21b974, 52)) == 2210164);
  assert(unsigned(zero_extend(0x21b978, 52)) == 2210168);
  assert(unsigned(zero_extend(0x21b97c, 52)) == 2210172);
  assert(unsigned(zero_extend(0x21b980, 52)) == 2210176);
  assert(unsigned(zero_extend(0x21b984, 52)) == 2210180);
  assert(unsigned(zero_extend(0x21b988, 52)) == 2210184);
  assert(unsigned(zero_extend(0x21b98c, 52)) == 2210188);
  assert(unsigned(zero_extend(0x21b990, 52)) == 2210192);
  assert(unsigned(zero_extend(0x21b994, 52)) == 2210196);
  assert(unsigned(zero_extend(0x21b998, 52)) == 2210200);
  assert(unsigned(zero_extend(0x21b99c, 52)) == 2210204);
  assert(unsigned(zero_extend(0x21b9a0, 52)) == 2210208);
  assert(unsigned(zero_extend(0x21b9a4, 52)) == 2210212);
  assert(unsigned(zero_extend(0x21b9a8, 52)) == 2210216);
  assert(unsigned(zero_extend(0x21b9ac, 52)) == 2210220);
  assert(unsigned(zero_extend(0x21b9b0, 52)) == 2210224);
  assert(unsigned(zero_extend(0x21b9b4, 52)) == 2210228);
  assert(unsigned(zero_extend(0x21b9b8, 52)) == 2210232);
  assert(unsigned(zero_extend(0x21b9bc, 52)) == 2210236);
  assert(unsigned(zero_extend(0x21b9c0, 52)) == 2210240);
  assert(unsigned(zero_extend(0x21b9c4, 52)) == 2210244);
  assert(unsigned(zero_extend(0x21b9c8, 52)) == 2210248);
  assert(unsigned(zero_extend(0x21b9cc, 52)) == 2210252);
  assert(unsigned(zero_extend(0x21ba00, 52)) == 2210304);
  assert(unsigned(zero_extend(0x21ba04, 52)) == 2210308);
  assert(unsigned(zero_extend(0x21ba08, 52)) == 2210312);
  assert(unsigned(zero_extend(0x21ba0c, 52)) == 2210316);
  assert(unsigned(zero_extend(0x21ba10, 52)) == 2210320);
  assert(unsigned(zero_extend(0x21ba14, 52)) == 2210324);
  assert(unsigned(zero_extend(0x21ba18, 52)) == 2210328);
  assert(unsigned(zero_extend(0x21ba1c, 52)) == 2210332);
  assert(unsigned(zero_extend(0x21ba20, 52)) == 2210336);
  assert(unsigned(zero_extend(0x21ba24, 52)) == 2210340);
  assert(unsigned(zero_extend(0x21ba7c, 52)) == 2210428);
  assert(unsigned(zero_extend(0x21ba80, 52)) == 2210432);
  assert(unsigned(zero_extend(0x21ba84, 52)) == 2210436);
  assert(unsigned(zero_extend(0x21ba88, 52)) == 2210440);
  assert(unsigned(zero_extend(0x21ba8c, 52)) == 2210444);
  assert(unsigned(zero_extend(0x21ba90, 52)) == 2210448);
  assert(unsigned(zero_extend(0x21ba94, 52)) == 2210452);
  assert(unsigned(zero_extend(0x21ba98, 52)) == 2210456);
  assert(unsigned(zero_extend(0x21ba9c, 52)) == 2210460);
  assert(unsigned(zero_extend(0x21baa0, 52)) == 2210464);
  assert(unsigned(zero_extend(0x21baa4, 52)) == 2210468);
  assert(unsigned(zero_extend(0x21baa8, 52)) == 2210472);
  assert(unsigned(zero_extend(0x21bad0, 52)) == 2210512);
  assert(unsigned(zero_extend(0x21bad4, 52)) == 2210516);
  assert(unsigned(zero_extend(0x21bad8, 52)) == 2210520);
  assert(unsigned(zero_extend(0x21badc, 52)) == 2210524);
  assert(unsigned(zero_extend(0x21bae0, 52)) == 2210528);
  assert(unsigned(zero_extend(0x21bae4, 52)) == 2210532);
  assert(unsigned(zero_extend(0x21bae8, 52)) == 2210536);
  assert(unsigned(zero_extend(0x21baec, 52)) == 2210540);
  assert(unsigned(zero_extend(0x21baf0, 52)) == 2210544);
  assert(unsigned(zero_extend(0x21baf4, 52)) == 2210548);
  assert(unsigned(zero_extend(0x21baf8, 52)) == 2210552);
  assert(unsigned(zero_extend(0x21bafc, 52)) == 2210556);
  assert(unsigned(zero_extend(0x21bb00, 52)) == 2210560);
  assert(unsigned(zero_extend(0x21bb08, 52)) == 2210568);
  assert(unsigned(zero_extend(0x21bb28, 52)) == 2210600);
  assert(unsigned(zero_extend(0x21bb2c, 52)) == 2210604);
  assert(unsigned(zero_extend(0x21bb30, 52)) == 2210608);
  assert(unsigned(zero_extend(0x21bb34, 52)) == 2210612);
  assert(unsigned(zero_extend(0x21bb38, 52)) == 2210616);
  assert(unsigned(zero_extend(0x21bb3c, 52)) == 2210620);
  assert(unsigned(zero_extend(0x21bb40, 52)) == 2210624);
  assert(unsigned(zero_extend(0x21bb44, 52)) == 2210628);
  assert(unsigned(zero_extend(0x21bb48, 52)) == 2210632);
  assert(unsigned(zero_extend(0x21bb50, 52)) == 2210640);
  assert(unsigned(zero_extend(0x21bb58, 52)) == 2210648);
  assert(unsigned(zero_extend(0x21bb60, 52)) == 2210656);
  assert(unsigned(zero_extend(0x21bba8, 52)) == 2210728);
  assert(unsigned(zero_extend(0x21bd68, 52)) == 2211176);
  assert(unsigned(zero_extend(0x21bd6c, 52)) == 2211180);
  assert(unsigned(zero_extend(0x21bd70, 52)) == 2211184);
  assert(unsigned(zero_extend(0x21bd74, 52)) == 2211188);
  assert(unsigned(zero_extend(0x21bd78, 52)) == 2211192);
  assert(unsigned(zero_extend(0x21bd7c, 52)) == 2211196);
  assert(unsigned(zero_extend(0x21bd80, 52)) == 2211200);
  assert(unsigned(zero_extend(0x21bd84, 52)) == 2211204);
  assert(unsigned(zero_extend(0x21bd88, 52)) == 2211208);
  assert(unsigned(zero_extend(0x21bd8c, 52)) == 2211212);
  assert(unsigned(zero_extend(0x21bd90, 52)) == 2211216);
  assert(unsigned(zero_extend(0x21bd94, 52)) == 2211220);
  assert(unsigned(zero_extend(0x21bd98, 52)) == 2211224);
  assert(unsigned(zero_extend(0x21bd9c, 52)) == 2211228);
  assert(unsigned(zero_extend(0x21bda0, 52)) == 2211232);
  assert(unsigned(zero_extend(0x21bda4, 52)) == 2211236);
  assert(unsigned(zero_extend(0x21bda8, 52)) == 2211240);
  assert(unsigned(zero_extend(0x21bdac, 52)) == 2211244);
  assert(unsigned(zero_extend(0x21bdb0, 52)) == 2211248);
  assert(unsigned(zero_extend(0x21bdb4, 52)) == 2211252);
  assert(unsigned(zero_extend(0x21bdb8, 52)) == 2211256);
  assert(unsigned(zero_extend(0x21bdbc, 52)) == 2211260);
  assert(unsigned(zero_extend(0x21bdc0, 52)) == 2211264);
  assert(unsigned(zero_extend(0x21bdc4, 52)) == 2211268);
  assert(unsigned(zero_extend(0x21bdc8, 52)) == 2211272);
  assert(unsigned(zero_extend(0x21bdcc, 52)) == 2211276);
  assert(unsigned(zero_extend(0x21bdd0, 52)) == 2211280);
  assert(unsigned(zero_extend(0x21bdd4, 52)) == 2211284);
  assert(unsigned(zero_extend(0x21bdd8, 52)) == 2211288);
  assert(unsigned(zero_extend(0x21bddc, 52)) == 2211292);
  assert(unsigned(zero_extend(0x21bde0, 52)) == 2211296);
  assert(unsigned(zero_extend(0x21bde4, 52)) == 2211300);
  assert(unsigned(zero_extend(0x21bde8, 52)) == 2211304);
  assert(unsigned(zero_extend(0x21bdec, 52)) == 2211308);
  assert(unsigned(zero_extend(0x21bdf0, 52)) == 2211312);
  assert(unsigned(zero_extend(0x21bdf4, 52)) == 2211316);
  assert(unsigned(zero_extend(0x21bdf8, 52)) == 2211320);
  assert(unsigned(zero_extend(0x21bdfc, 52)) == 2211324);
  assert(unsigned(zero_extend(0x21be00, 52)) == 2211328);
  assert(unsigned(zero_extend(0x21be04, 52)) == 2211332);
  assert(unsigned(zero_extend(0x21be08, 52)) == 2211336);
  assert(unsigned(zero_extend(0x21be0c, 52)) == 2211340);
  assert(unsigned(zero_extend(0x21be10, 52)) == 2211344);
  assert(unsigned(zero_extend(0x21be14, 52)) == 2211348);
  assert(unsigned(zero_extend(0x21be18, 52)) == 2211352);
  assert(unsigned(zero_extend(0x21be1c, 52)) == 2211356);
  assert(unsigned(zero_extend(0x21be20, 52)) == 2211360);
  assert(unsigned(zero_extend(0x21be24, 52)) == 2211364);
  assert(unsigned(zero_extend(0x21be28, 52)) == 2211368);
  assert(unsigned(zero_extend(0x21be2c, 52)) == 2211372);
  assert(unsigned(zero_extend(0x21be30, 52)) == 2211376);
  assert(unsigned(zero_extend(0x21be34, 52)) == 2211380);
  assert(unsigned(zero_extend(0x21be38, 52)) == 2211384);
  assert(unsigned(zero_extend(0x21be3c, 52)) == 2211388);
  assert(unsigned(zero_extend(0x21be40, 52)) == 2211392);
  assert(unsigned(zero_extend(0x21be44, 52)) == 2211396);
  assert(unsigned(zero_extend(0x21be48, 52)) == 2211400);
  assert(unsigned(zero_extend(0x21be4c, 52)) == 2211404);
  assert(unsigned(zero_extend(0x21be50, 52)) == 2211408);
  assert(unsigned(zero_extend(0x21be54, 52)) == 2211412);
  assert(unsigned(zero_extend(0x21be58, 52)) == 2211416);
  assert(unsigned(zero_extend(0x21be5c, 52)) == 2211420);
  assert(unsigned(zero_extend(0x21be60, 52)) == 2211424);
  assert(unsigned(zero_extend(0x21be64, 52)) == 2211428);
  assert(unsigned(zero_extend(0x21be68, 52)) == 2211432);
  assert(unsigned(zero_extend(0x21be6c, 52)) == 2211436);
  assert(unsigned(zero_extend(0x21be70, 52)) == 2211440);
  assert(unsigned(zero_extend(0x21be74, 52)) == 2211444);
  assert(unsigned(zero_extend(0x21be78, 52)) == 2211448);
  assert(unsigned(zero_extend(0x21be7c, 52)) == 2211452);
  assert(unsigned(zero_extend(0x21be80, 52)) == 2211456);
  assert(unsigned(zero_extend(0x21be84, 52)) == 2211460);
  assert(unsigned(zero_extend(0x21be88, 52)) == 2211464);
  assert(unsigned(zero_extend(0x21be8c, 52)) == 2211468);
  assert(unsigned(zero_extend(0x21be90, 52)) == 2211472);
  assert(unsigned(zero_extend(0x21be94, 52)) == 2211476);
  assert(unsigned(zero_extend(0x21be98, 52)) == 2211480);
  assert(unsigned(zero_extend(0x21be9c, 52)) == 2211484);
  assert(unsigned(zero_extend(0x21bea0, 52)) == 2211488);
  assert(unsigned(zero_extend(0x21bea4, 52)) == 2211492);
  assert(unsigned(zero_extend(0x21beb4, 52)) == 2211508);
  assert(unsigned(zero_extend(0x21beb8, 52)) == 2211512);
  assert(unsigned(zero_extend(0x21bebc, 52)) == 2211516);
  assert(unsigned(zero_extend(0x21bec0, 52)) == 2211520);
  assert(unsigned(zero_extend(0x21bec4, 52)) == 2211524);
  assert(unsigned(zero_extend(0x21bec8, 52)) == 2211528);
  assert(unsigned(zero_extend(0x21becc, 52)) == 2211532);
  assert(unsigned(zero_extend(0x21bed0, 52)) == 2211536);
  assert(unsigned(zero_extend(0x21bed4, 52)) == 2211540);
  assert(unsigned(zero_extend(0x21bed8, 52)) == 2211544);
  assert(unsigned(zero_extend(0x21bedc, 52)) == 2211548);
  assert(unsigned(zero_extend(0x21bee0, 52)) == 2211552);
  assert(unsigned(zero_extend(0x21bef0, 52)) == 2211568);
  assert(unsigned(zero_extend(0x21bef4, 52)) == 2211572);
  assert(unsigned(zero_extend(0x21bef8, 52)) == 2211576);
  assert(unsigned(zero_extend(0x21befc, 52)) == 2211580);
  assert(unsigned(zero_extend(0x21bf5c, 52)) == 2211676);
  assert(unsigned(zero_extend(0x21bf60, 52)) == 2211680);
  assert(unsigned(zero_extend(0x21bf64, 52)) == 2211684);
  assert(unsigned(zero_extend(0x21bf68, 52)) == 2211688);
  assert(unsigned(zero_extend(0x21bf6c, 52)) == 2211692);
  assert(unsigned(zero_extend(0x21bf70, 52)) == 2211696);
  assert(unsigned(zero_extend(0x21bf88, 52)) == 2211720);
  assert(unsigned(zero_extend(0x21bf8c, 52)) == 2211724);
  assert(unsigned(zero_extend(0x21bf90, 52)) == 2211728);
  assert(unsigned(zero_extend(0x21bf94, 52)) == 2211732);
  assert(unsigned(zero_extend(0x21bf98, 52)) == 2211736);
  assert(unsigned(zero_extend(0x21bf9c, 52)) == 2211740);
  assert(unsigned(zero_extend(0x21bfa0, 52)) == 2211744);
  assert(unsigned(zero_extend(0x21bfa4, 52)) == 2211748);
  assert(unsigned(zero_extend(0x21bfa8, 52)) == 2211752);
  assert(unsigned(zero_extend(0x21bfac, 52)) == 2211756);
  assert(unsigned(zero_extend(0x21bfb0, 52)) == 2211760);
  assert(unsigned(zero_extend(0x21bfb4, 52)) == 2211764);
  assert(unsigned(zero_extend(0x21bfb8, 52)) == 2211768);
  assert(unsigned(zero_extend(0x21bfbc, 52)) == 2211772);
  assert(unsigned(zero_extend(0x21bfc0, 52)) == 2211776);
  assert(unsigned(zero_extend(0x21bfc4, 52)) == 2211780);
  assert(unsigned(zero_extend(0x21bfc8, 52)) == 2211784);
  assert(unsigned(zero_extend(0x21bfcc, 52)) == 2211788);
  assert(unsigned(zero_extend(0x21bfd0, 52)) == 2211792);
  assert(unsigned(zero_extend(0x21bfd4, 52)) == 2211796);
  assert(unsigned(zero_extend(0x21bfd8, 52)) == 2211800);
  assert(unsigned(zero_extend(0x21bfdc, 52)) == 2211804);
  assert(unsigned(zero_extend(0x21bfe0, 52)) == 2211808);
  assert(unsigned(zero_extend(0x21bfe4, 52)) == 2211812);
  assert(unsigned(zero_extend(0x21bfe8, 52)) == 2211816);
  assert(unsigned(zero_extend(0x21bfec, 52)) == 2211820);
  assert(unsigned(zero_extend(0x21bff0, 52)) == 2211824);
  assert(unsigned(zero_extend(0x21bff4, 52)) == 2211828);
  assert(unsigned(zero_extend(0x21bff8, 52)) == 2211832);
  assert(unsigned(zero_extend(0x21bffc, 52)) == 2211836);
  assert(unsigned(zero_extend(0x21c000, 52)) == 2211840);
  assert(unsigned(zero_extend(0x21c004, 52)) == 2211844);
  assert(unsigned(zero_extend(0x21c008, 52)) == 2211848);
  assert(unsigned(zero_extend(0x21c00c, 52)) == 2211852);
  assert(unsigned(zero_extend(0x21c010, 52)) == 2211856);
  assert(unsigned(zero_extend(0x21c014, 52)) == 2211860);
  assert(unsigned(zero_extend(0x21c018, 52)) == 2211864);
  assert(unsigned(zero_extend(0x21c01c, 52)) == 2211868);
  assert(unsigned(zero_extend(0x21c020, 52)) == 2211872);
  assert(unsigned(zero_extend(0x21c024, 52)) == 2211876);
  assert(unsigned(zero_extend(0x21c028, 52)) == 2211880);
  assert(unsigned(zero_extend(0x21c02c, 52)) == 2211884);
  assert(unsigned(zero_extend(0x21c030, 52)) == 2211888);
  assert(unsigned(zero_extend(0x21c034, 52)) == 2211892);
  assert(unsigned(zero_extend(0x21c038, 52)) == 2211896);
  assert(unsigned(zero_extend(0x21c03c, 52)) == 2211900);
  assert(unsigned(zero_extend(0x21c040, 52)) == 2211904);
  assert(unsigned(zero_extend(0x21c044, 52)) == 2211908);
  assert(unsigned(zero_extend(0x21c048, 52)) == 2211912);
  assert(unsigned(zero_extend(0x21c04c, 52)) == 2211916);
  assert(unsigned(zero_extend(0x21c050, 52)) == 2211920);
  assert(unsigned(zero_extend(0x21c054, 52)) == 2211924);
  assert(unsigned(zero_extend(0x21c058, 52)) == 2211928);
  assert(unsigned(zero_extend(0x21c05c, 52)) == 2211932);
  assert(unsigned(zero_extend(0x21c060, 52)) == 2211936);
  assert(unsigned(zero_extend(0x21c064, 52)) == 2211940);
  assert(unsigned(zero_extend(0x21c068, 52)) == 2211944);
  assert(unsigned(zero_extend(0x21c06c, 52)) == 2211948);
  assert(unsigned(zero_extend(0x21c070, 52)) == 2211952);
  assert(unsigned(zero_extend(0x21c074, 52)) == 2211956);
  assert(unsigned(zero_extend(0x21c078, 52)) == 2211960);
  assert(unsigned(zero_extend(0x21c07c, 52)) == 2211964);
  assert(unsigned(zero_extend(0x21c080, 52)) == 2211968);
  assert(unsigned(zero_extend(0x21c084, 52)) == 2211972);
  assert(unsigned(zero_extend(0x21c088, 52)) == 2211976);
  assert(unsigned(zero_extend(0x21c08c, 52)) == 2211980);
  assert(unsigned(zero_extend(0x21c090, 52)) == 2211984);
  assert(unsigned(zero_extend(0x21c094, 52)) == 2211988);
  assert(unsigned(zero_extend(0x21c098, 52)) == 2211992);
  assert(unsigned(zero_extend(0x21c09c, 52)) == 2211996);
  assert(unsigned(zero_extend(0x21c0a0, 52)) == 2212000);
  assert(unsigned(zero_extend(0x21c0a4, 52)) == 2212004);
  assert(unsigned(zero_extend(0x21c0a8, 52)) == 2212008);
  assert(unsigned(zero_extend(0x21c0ac, 52)) == 2212012);
  assert(unsigned(zero_extend(0x21c0b0, 52)) == 2212016);
  assert(unsigned(zero_extend(0x21c0b4, 52)) == 2212020);
  assert(unsigned(zero_extend(0x21c0b8, 52)) == 2212024);
  assert(unsigned(zero_extend(0x21c0bc, 52)) == 2212028);
  assert(unsigned(zero_extend(0x21c0c0, 52)) == 2212032);
  assert(unsigned(zero_extend(0x21c0c4, 52)) == 2212036);
  assert(unsigned(zero_extend(0x21c0c8, 52)) == 2212040);
  assert(unsigned(zero_extend(0x21c0cc, 52)) == 2212044);
  assert(unsigned(zero_extend(0x21c0d0, 52)) == 2212048);
  assert(unsigned(zero_extend(0x21c0d4, 52)) == 2212052);
  assert(unsigned(zero_extend(0x21c0d8, 52)) == 2212056);
  assert(unsigned(zero_extend(0x21c0dc, 52)) == 2212060);
  assert(unsigned(zero_extend(0x21c0e0, 52)) == 2212064);
  assert(unsigned(zero_extend(0x21c0e4, 52)) == 2212068);
  assert(unsigned(zero_extend(0x21c0e8, 52)) == 2212072);
  assert(unsigned(zero_extend(0x21c0ec, 52)) == 2212076);
  assert(unsigned(zero_extend(0x21c0f0, 52)) == 2212080);
  assert(unsigned(zero_extend(0x21c0f4, 52)) == 2212084);
  assert(unsigned(zero_extend(0x21c0f8, 52)) == 2212088);
  assert(unsigned(zero_extend(0x21c0fc, 52)) == 2212092);
  assert(unsigned(zero_extend(0x21c100, 52)) == 2212096);
  assert(unsigned(zero_extend(0x21c104, 52)) == 2212100);
  assert(unsigned(zero_extend(0x21c108, 52)) == 2212104);
  assert(unsigned(zero_extend(0x21c10c, 52)) == 2212108);
  assert(unsigned(zero_extend(0x21c110, 52)) == 2212112);
  assert(unsigned(zero_extend(0x21c114, 52)) == 2212116);
  assert(unsigned(zero_extend(0x21c118, 52)) == 2212120);
  assert(unsigned(zero_extend(0x21c11c, 52)) == 2212124);
  assert(unsigned(zero_extend(0x21c120, 52)) == 2212128);
  assert(unsigned(zero_extend(0x21c124, 52)) == 2212132);
  assert(unsigned(zero_extend(0x21c128, 52)) == 2212136);
  assert(unsigned(zero_extend(0x21c12c, 52)) == 2212140);
  assert(unsigned(zero_extend(0x21c130, 52)) == 2212144);
  assert(unsigned(zero_extend(0x21c134, 52)) == 2212148);
  assert(unsigned(zero_extend(0x21c138, 52)) == 2212152);
  assert(unsigned(zero_extend(0x21c13c, 52)) == 2212156);
  assert(unsigned(zero_extend(0x21c140, 52)) == 2212160);
  assert(unsigned(zero_extend(0x21c144, 52)) == 2212164);
  assert(unsigned(zero_extend(0x21c148, 52)) == 2212168);
  assert(unsigned(zero_extend(0x21c14c, 52)) == 2212172);
  assert(unsigned(zero_extend(0x21c150, 52)) == 2212176);
  assert(unsigned(zero_extend(0x21c154, 52)) == 2212180);
  assert(unsigned(zero_extend(0x21c158, 52)) == 2212184);
  assert(unsigned(zero_extend(0x21c168, 52)) == 2212200);
  assert(unsigned(zero_extend(0x21c16c, 52)) == 2212204);
  assert(unsigned(zero_extend(0x21c17c, 52)) == 2212220);
  assert(unsigned(zero_extend(0x21c180, 52)) == 2212224);
  assert(unsigned(zero_extend(0x21c184, 52)) == 2212228);
  assert(unsigned(zero_extend(0x21c188, 52)) == 2212232);
  assert(unsigned(zero_extend(0x21c18c, 52)) == 2212236);
  assert(unsigned(zero_extend(0x21c190, 52)) == 2212240);
  assert(unsigned(zero_extend(0x21c1a0, 52)) == 2212256);
  assert(unsigned(zero_extend(0x21c1a4, 52)) == 2212260);
  assert(unsigned(zero_extend(0x21c1a8, 52)) == 2212264);
  assert(unsigned(zero_extend(0x21c1e8, 52)) == 2212328);
  assert(unsigned(zero_extend(0x21c1ec, 52)) == 2212332);
  assert(unsigned(zero_extend(0x21c1f0, 52)) == 2212336);
  assert(unsigned(zero_extend(0x21c1f4, 52)) == 2212340);
  assert(unsigned(zero_extend(0x21c1f8, 52)) == 2212344);
  assert(unsigned(zero_extend(0x21c1fc, 52)) == 2212348);
  assert(unsigned(zero_extend(0x21c200, 52)) == 2212352);
  assert(unsigned(zero_extend(0x21c204, 52)) == 2212356);
  assert(unsigned(zero_extend(0x21c208, 52)) == 2212360);
  assert(unsigned(zero_extend(0x21c20c, 52)) == 2212364);
  assert(unsigned(zero_extend(0x21c240, 52)) == 2212416);
  assert(unsigned(zero_extend(0x21c244, 52)) == 2212420);
  assert(unsigned(zero_extend(0x21c248, 52)) == 2212424);
  assert(unsigned(zero_extend(0x21c24c, 52)) == 2212428);
  assert(unsigned(zero_extend(0x21c250, 52)) == 2212432);
  assert(unsigned(zero_extend(0x21c254, 52)) == 2212436);
  assert(unsigned(zero_extend(0x21c258, 52)) == 2212440);
  assert(unsigned(zero_extend(0x21c25c, 52)) == 2212444);
  assert(unsigned(zero_extend(0x21c260, 52)) == 2212448);
  assert(unsigned(zero_extend(0x21c264, 52)) == 2212452);
  assert(unsigned(zero_extend(0x21c3ec, 52)) == 2212844);
  assert(unsigned(zero_extend(0x21c3f0, 52)) == 2212848);
  assert(unsigned(zero_extend(0x21c3f4, 52)) == 2212852);
  assert(unsigned(zero_extend(0x21c3f8, 52)) == 2212856);
  assert(unsigned(zero_extend(0x21c3fc, 52)) == 2212860);
  assert(unsigned(zero_extend(0x21c400, 52)) == 2212864);
  assert(unsigned(zero_extend(0x21c404, 52)) == 2212868);
  assert(unsigned(zero_extend(0x21c408, 52)) == 2212872);
  assert(unsigned(zero_extend(0x21c40c, 52)) == 2212876);
  assert(unsigned(zero_extend(0x21c410, 52)) == 2212880);
  assert(unsigned(zero_extend(0x21c414, 52)) == 2212884);
  assert(unsigned(zero_extend(0x21c418, 52)) == 2212888);
  assert(unsigned(zero_extend(0x21c41c, 52)) == 2212892);
  assert(unsigned(zero_extend(0x21c420, 52)) == 2212896);
  assert(unsigned(zero_extend(0x21c424, 52)) == 2212900);
  assert(unsigned(zero_extend(0x21c428, 52)) == 2212904);
  assert(unsigned(zero_extend(0x21c42c, 52)) == 2212908);
  assert(unsigned(zero_extend(0x21c430, 52)) == 2212912);
  assert(unsigned(zero_extend(0x21c434, 52)) == 2212916);
  assert(unsigned(zero_extend(0x21c438, 52)) == 2212920);
  assert(unsigned(zero_extend(0x21c43c, 52)) == 2212924);
  assert(unsigned(zero_extend(0x21c440, 52)) == 2212928);
  assert(unsigned(zero_extend(0x21c444, 52)) == 2212932);
  assert(unsigned(zero_extend(0x21c448, 52)) == 2212936);
  assert(unsigned(zero_extend(0x21c44c, 52)) == 2212940);
  assert(unsigned(zero_extend(0x21c450, 52)) == 2212944);
  assert(unsigned(zero_extend(0x21c454, 52)) == 2212948);
  assert(unsigned(zero_extend(0x21c458, 52)) == 2212952);
  assert(unsigned(zero_extend(0x21c45c, 52)) == 2212956);
  assert(unsigned(zero_extend(0x21c460, 52)) == 2212960);
  assert(unsigned(zero_extend(0x21c464, 52)) == 2212964);
  assert(unsigned(zero_extend(0x21c468, 52)) == 2212968);
  assert(unsigned(zero_extend(0x21c46c, 52)) == 2212972);
  assert(unsigned(zero_extend(0x21c470, 52)) == 2212976);
  assert(unsigned(zero_extend(0x21c474, 52)) == 2212980);
  assert(unsigned(zero_extend(0x21c478, 52)) == 2212984);
  assert(unsigned(zero_extend(0x21c47c, 52)) == 2212988);
  assert(unsigned(zero_extend(0x21c480, 52)) == 2212992);
  assert(unsigned(zero_extend(0x21c484, 52)) == 2212996);
  assert(unsigned(zero_extend(0x21c488, 52)) == 2213000);
  assert(unsigned(zero_extend(0x21c48c, 52)) == 2213004);
  assert(unsigned(zero_extend(0x21c490, 52)) == 2213008);
  assert(unsigned(zero_extend(0x21c494, 52)) == 2213012);
  assert(unsigned(zero_extend(0x21c498, 52)) == 2213016);
  assert(unsigned(zero_extend(0x21c49c, 52)) == 2213020);
  assert(unsigned(zero_extend(0x21c4a0, 52)) == 2213024);
  assert(unsigned(zero_extend(0x21c4a4, 52)) == 2213028);
  assert(unsigned(zero_extend(0x21c4a8, 52)) == 2213032);
  assert(unsigned(zero_extend(0x21c4ac, 52)) == 2213036);
  assert(unsigned(zero_extend(0x21c4b0, 52)) == 2213040);
  assert(unsigned(zero_extend(0x21c4b4, 52)) == 2213044);
  assert(unsigned(zero_extend(0x21c4b8, 52)) == 2213048);
  assert(unsigned(zero_extend(0x21c4c8, 52)) == 2213064);
  assert(unsigned(zero_extend(0x21c4cc, 52)) == 2213068);
  assert(unsigned(zero_extend(0x21c4d0, 52)) == 2213072);
  assert(unsigned(zero_extend(0x21c4d4, 52)) == 2213076);
  assert(unsigned(zero_extend(0x21c4d8, 52)) == 2213080);
  assert(unsigned(zero_extend(0x21c4dc, 52)) == 2213084);
  assert(unsigned(zero_extend(0x21c4e0, 52)) == 2213088);
  assert(unsigned(zero_extend(0x21c4e4, 52)) == 2213092);
  assert(unsigned(zero_extend(0x21c4e8, 52)) == 2213096);
  assert(unsigned(zero_extend(0x21c4ec, 52)) == 2213100);
  assert(unsigned(zero_extend(0x21c4f0, 52)) == 2213104);
  assert(unsigned(zero_extend(0x21c4f4, 52)) == 2213108);
  assert(unsigned(zero_extend(0x21c4f8, 52)) == 2213112);
  assert(unsigned(zero_extend(0x21c4fc, 52)) == 2213116);
  assert(unsigned(zero_extend(0x21c500, 52)) == 2213120);
  assert(unsigned(zero_extend(0x21c504, 52)) == 2213124);
  assert(unsigned(zero_extend(0x21c508, 52)) == 2213128);
  assert(unsigned(zero_extend(0x21c50c, 52)) == 2213132);
  assert(unsigned(zero_extend(0x21c510, 52)) == 2213136);
  assert(unsigned(zero_extend(0x21c514, 52)) == 2213140);
  assert(unsigned(zero_extend(0x21c518, 52)) == 2213144);
  assert(unsigned(zero_extend(0x21c51c, 52)) == 2213148);
  assert(unsigned(zero_extend(0x21c520, 52)) == 2213152);
  assert(unsigned(zero_extend(0x21c524, 52)) == 2213156);
  assert(unsigned(zero_extend(0x21c528, 52)) == 2213160);
  assert(unsigned(zero_extend(0x21c52c, 52)) == 2213164);
  assert(unsigned(zero_extend(0x21c530, 52)) == 2213168);
  assert(unsigned(zero_extend(0x21c534, 52)) == 2213172);
  assert(unsigned(zero_extend(0x21c538, 52)) == 2213176);
  assert(unsigned(zero_extend(0x21c53c, 52)) == 2213180);
  assert(unsigned(zero_extend(0x21c540, 52)) == 2213184);
  assert(unsigned(zero_extend(0x21c544, 52)) == 2213188);
  assert(unsigned(zero_extend(0x21c548, 52)) == 2213192);
  assert(unsigned(zero_extend(0x21c54c, 52)) == 2213196);
  assert(unsigned(zero_extend(0x21c550, 52)) == 2213200);
  assert(unsigned(zero_extend(0x21c554, 52)) == 2213204);
  assert(unsigned(zero_extend(0x21c558, 52)) == 2213208);
  assert(unsigned(zero_extend(0x21c55c, 52)) == 2213212);
  assert(unsigned(zero_extend(0x21c560, 52)) == 2213216);
  assert(unsigned(zero_extend(0x21c564, 52)) == 2213220);
  assert(unsigned(zero_extend(0x21c568, 52)) == 2213224);
  assert(unsigned(zero_extend(0x21c56c, 52)) == 2213228);
  assert(unsigned(zero_extend(0x21c570, 52)) == 2213232);
  assert(unsigned(zero_extend(0x21c574, 52)) == 2213236);
  assert(unsigned(zero_extend(0x21c578, 52)) == 2213240);
  assert(unsigned(zero_extend(0x21c57c, 52)) == 2213244);
  assert(unsigned(zero_extend(0x21c580, 52)) == 2213248);
  assert(unsigned(zero_extend(0x21c584, 52)) == 2213252);
  assert(unsigned(zero_extend(0x21c588, 52)) == 2213256);
  assert(unsigned(zero_extend(0x21c58c, 52)) == 2213260);
  assert(unsigned(zero_extend(0x21c590, 52)) == 2213264);
  assert(unsigned(zero_extend(0x21c594, 52)) == 2213268);
  assert(unsigned(zero_extend(0x21c598, 52)) == 2213272);
  assert(unsigned(zero_extend(0x21c5a0, 52)) == 2213280);
  assert(unsigned(zero_extend(0x21c5a8, 52)) == 2213288);
  assert(unsigned(zero_extend(0x21c5b0, 52)) == 2213296);
  assert(unsigned(zero_extend(0x21c5b8, 52)) == 2213304);
  assert(unsigned(zero_extend(0x21c5c0, 52)) == 2213312);
  assert(unsigned(zero_extend(0x21c5c8, 52)) == 2213320);
  assert(unsigned(zero_extend(0x21c5d0, 52)) == 2213328);
  assert(unsigned(zero_extend(0x21c5d8, 52)) == 2213336);
  assert(unsigned(zero_extend(0x21c5e0, 52)) == 2213344);
  assert(unsigned(zero_extend(0x21c5e4, 52)) == 2213348);
  assert(unsigned(zero_extend(0x21c5e8, 52)) == 2213352);
  assert(unsigned(zero_extend(0x21c5ec, 52)) == 2213356);
  assert(unsigned(zero_extend(0x21c5f0, 52)) == 2213360);
  assert(unsigned(zero_extend(0x21c5f4, 52)) == 2213364);
  assert(unsigned(zero_extend(0x21c5f8, 52)) == 2213368);
  assert(unsigned(zero_extend(0x21c5fc, 52)) == 2213372);
  assert(unsigned(zero_extend(0x21c600, 52)) == 2213376);
  assert(unsigned(zero_extend(0x21c604, 52)) == 2213380);
  assert(unsigned(zero_extend(0x21c608, 52)) == 2213384);
  assert(unsigned(zero_extend(0x21c60c, 52)) == 2213388);
  assert(unsigned(zero_extend(0x21c610, 52)) == 2213392);
  assert(unsigned(zero_extend(0x21c614, 52)) == 2213396);
  assert(unsigned(zero_extend(0x21c618, 52)) == 2213400);
  assert(unsigned(zero_extend(0x21c61c, 52)) == 2213404);
  assert(unsigned(zero_extend(0x21c620, 52)) == 2213408);
  assert(unsigned(zero_extend(0x21c624, 52)) == 2213412);
  assert(unsigned(zero_extend(0x21c628, 52)) == 2213416);
  assert(unsigned(zero_extend(0x21c62c, 52)) == 2213420);
  assert(unsigned(zero_extend(0x21c630, 52)) == 2213424);
  assert(unsigned(zero_extend(0x21c634, 52)) == 2213428);
  assert(unsigned(zero_extend(0x21c638, 52)) == 2213432);
  assert(unsigned(zero_extend(0x21c63c, 52)) == 2213436);
  assert(unsigned(zero_extend(0x21c640, 52)) == 2213440);
  assert(unsigned(zero_extend(0x21c644, 52)) == 2213444);
  assert(unsigned(zero_extend(0x21c648, 52)) == 2213448);
  assert(unsigned(zero_extend(0x21c64c, 52)) == 2213452);
  assert(unsigned(zero_extend(0x21c650, 52)) == 2213456);
  assert(unsigned(zero_extend(0x21c654, 52)) == 2213460);
  assert(unsigned(zero_extend(0x21c658, 52)) == 2213464);
  assert(unsigned(zero_extend(0x21c65c, 52)) == 2213468);
  assert(unsigned(zero_extend(0x21c660, 52)) == 2213472);
  assert(unsigned(zero_extend(0x21c664, 52)) == 2213476);
  assert(unsigned(zero_extend(0x21c668, 52)) == 2213480);
  assert(unsigned(zero_extend(0x21c66c, 52)) == 2213484);
  assert(unsigned(zero_extend(0x21c670, 52)) == 2213488);
  assert(unsigned(zero_extend(0x21c674, 52)) == 2213492);
  assert(unsigned(zero_extend(0x21c678, 52)) == 2213496);
  assert(unsigned(zero_extend(0x21c67c, 52)) == 2213500);
  assert(unsigned(zero_extend(0x21c680, 52)) == 2213504);
  assert(unsigned(zero_extend(0x21c684, 52)) == 2213508);
  assert(unsigned(zero_extend(0x21c688, 52)) == 2213512);
  assert(unsigned(zero_extend(0x21c68c, 52)) == 2213516);
  assert(unsigned(zero_extend(0x21c690, 52)) == 2213520);
  assert(unsigned(zero_extend(0x21c694, 52)) == 2213524);
  assert(unsigned(zero_extend(0x21c698, 52)) == 2213528);
  assert(unsigned(zero_extend(0x21c69c, 52)) == 2213532);
  assert(unsigned(zero_extend(0x21c6a0, 52)) == 2213536);
  assert(unsigned(zero_extend(0x21c6a4, 52)) == 2213540);
  assert(unsigned(zero_extend(0x21c6a8, 52)) == 2213544);
  assert(unsigned(zero_extend(0x21c6ac, 52)) == 2213548);
  assert(unsigned(zero_extend(0x21c6b0, 52)) == 2213552);
  assert(unsigned(zero_extend(0x21c6b4, 52)) == 2213556);
  assert(unsigned(zero_extend(0x21c6b8, 52)) == 2213560);
  assert(unsigned(zero_extend(0x21c6bc, 52)) == 2213564);
  assert(unsigned(zero_extend(0x21c6c0, 52)) == 2213568);
  assert(unsigned(zero_extend(0x21c6c4, 52)) == 2213572);
  assert(unsigned(zero_extend(0x21c6c8, 52)) == 2213576);
  assert(unsigned(zero_extend(0x21c6cc, 52)) == 2213580);
  assert(unsigned(zero_extend(0x21c6d0, 52)) == 2213584);
  assert(unsigned(zero_extend(0x21c6d4, 52)) == 2213588);
  assert(unsigned(zero_extend(0x21c6d8, 52)) == 2213592);
  assert(unsigned(zero_extend(0x21c6dc, 52)) == 2213596);
  assert(unsigned(zero_extend(0x21c6e0, 52)) == 2213600);
  assert(unsigned(zero_extend(0x21c6e4, 52)) == 2213604);
  assert(unsigned(zero_extend(0x21c6f4, 52)) == 2213620);
  assert(unsigned(zero_extend(0x21c6f8, 52)) == 2213624);
  assert(unsigned(zero_extend(0x21c6fc, 52)) == 2213628);
  assert(unsigned(zero_extend(0x21c700, 52)) == 2213632);
  assert(unsigned(zero_extend(0x21c704, 52)) == 2213636);
  assert(unsigned(zero_extend(0x21c708, 52)) == 2213640);
  assert(unsigned(zero_extend(0x21c70c, 52)) == 2213644);
  assert(unsigned(zero_extend(0x21c710, 52)) == 2213648);
  assert(unsigned(zero_extend(0x21c714, 52)) == 2213652);
  assert(unsigned(zero_extend(0x21c718, 52)) == 2213656);
  assert(unsigned(zero_extend(0x21c71c, 52)) == 2213660);
  assert(unsigned(zero_extend(0x21c720, 52)) == 2213664);
  assert(unsigned(zero_extend(0x21c724, 52)) == 2213668);
  assert(unsigned(zero_extend(0x21c728, 52)) == 2213672);
  assert(unsigned(zero_extend(0x21c72c, 52)) == 2213676);
  assert(unsigned(zero_extend(0x21c730, 52)) == 2213680);
  assert(unsigned(zero_extend(0x21c734, 52)) == 2213684);
  assert(unsigned(zero_extend(0x21c738, 52)) == 2213688);
  assert(unsigned(zero_extend(0x21c73c, 52)) == 2213692);
  assert(unsigned(zero_extend(0x21c740, 52)) == 2213696);
  assert(unsigned(zero_extend(0x21c744, 52)) == 2213700);
  assert(unsigned(zero_extend(0x21c748, 52)) == 2213704);
  assert(unsigned(zero_extend(0x21c74c, 52)) == 2213708);
  assert(unsigned(zero_extend(0x21c750, 52)) == 2213712);
  assert(unsigned(zero_extend(0x21c754, 52)) == 2213716);
  assert(unsigned(zero_extend(0x21c758, 52)) == 2213720);
  assert(unsigned(zero_extend(0x21c75c, 52)) == 2213724);
  assert(unsigned(zero_extend(0x21c760, 52)) == 2213728);
  assert(unsigned(zero_extend(0x21c764, 52)) == 2213732);
  assert(unsigned(zero_extend(0x21c768, 52)) == 2213736);
  assert(unsigned(zero_extend(0x21c76c, 52)) == 2213740);
  assert(unsigned(zero_extend(0x21c770, 52)) == 2213744);
  assert(unsigned(zero_extend(0x21c774, 52)) == 2213748);
  assert(unsigned(zero_extend(0x21c778, 52)) == 2213752);
  assert(unsigned(zero_extend(0x21c77c, 52)) == 2213756);
  assert(unsigned(zero_extend(0x21c780, 52)) == 2213760);
  assert(unsigned(zero_extend(0x21c784, 52)) == 2213764);
  assert(unsigned(zero_extend(0x21c788, 52)) == 2213768);
  assert(unsigned(zero_extend(0x21c78c, 52)) == 2213772);
  assert(unsigned(zero_extend(0x21c790, 52)) == 2213776);
  assert(unsigned(zero_extend(0x21c794, 52)) == 2213780);
  assert(unsigned(zero_extend(0x21c798, 52)) == 2213784);
  assert(unsigned(zero_extend(0x21c79c, 52)) == 2213788);
  assert(unsigned(zero_extend(0x21c7a0, 52)) == 2213792);
  assert(unsigned(zero_extend(0x21c7a4, 52)) == 2213796);
  assert(unsigned(zero_extend(0x21c7a8, 52)) == 2213800);
  assert(unsigned(zero_extend(0x21c7ac, 52)) == 2213804);
  assert(unsigned(zero_extend(0x21c7b0, 52)) == 2213808);
  assert(unsigned(zero_extend(0x21c7b4, 52)) == 2213812);
  assert(unsigned(zero_extend(0x21c7b8, 52)) == 2213816);
  assert(unsigned(zero_extend(0x21c7bc, 52)) == 2213820);
  assert(unsigned(zero_extend(0x21c7c0, 52)) == 2213824);
  assert(unsigned(zero_extend(0x21c7c4, 52)) == 2213828);
  assert(unsigned(zero_extend(0x21c7c8, 52)) == 2213832);
  assert(unsigned(zero_extend(0x21c7cc, 52)) == 2213836);
  assert(unsigned(zero_extend(0x21c7d0, 52)) == 2213840);
  assert(unsigned(zero_extend(0x21c7d4, 52)) == 2213844);
  assert(unsigned(zero_extend(0x21c7d8, 52)) == 2213848);
  assert(unsigned(zero_extend(0x21c7dc, 52)) == 2213852);
  assert(unsigned(zero_extend(0x21c7e0, 52)) == 2213856);
  assert(unsigned(zero_extend(0x21c7e4, 52)) == 2213860);
  assert(unsigned(zero_extend(0x21c7e8, 52)) == 2213864);
  assert(unsigned(zero_extend(0x21c7f8, 52)) == 2213880);
  assert(unsigned(zero_extend(0x21c7fc, 52)) == 2213884);
  assert(unsigned(zero_extend(0x21c800, 52)) == 2213888);
  assert(unsigned(zero_extend(0x21c804, 52)) == 2213892);
  assert(unsigned(zero_extend(0x21c808, 52)) == 2213896);
  assert(unsigned(zero_extend(0x21c80c, 52)) == 2213900);
  assert(unsigned(zero_extend(0x21c810, 52)) == 2213904);
  assert(unsigned(zero_extend(0x21c814, 52)) == 2213908);
  assert(unsigned(zero_extend(0x21c818, 52)) == 2213912);
  assert(unsigned(zero_extend(0x21c81c, 52)) == 2213916);
  assert(unsigned(zero_extend(0x21c820, 52)) == 2213920);
  assert(unsigned(zero_extend(0x21c824, 52)) == 2213924);
  assert(unsigned(zero_extend(0x21c828, 52)) == 2213928);
  assert(unsigned(zero_extend(0x21c838, 52)) == 2213944);
  assert(unsigned(zero_extend(0x21c83c, 52)) == 2213948);
  assert(unsigned(zero_extend(0x21c860, 52)) == 2213984);
  assert(unsigned(zero_extend(0x21c864, 52)) == 2213988);
  assert(unsigned(zero_extend(0x21c874, 52)) == 2214004);
  assert(unsigned(zero_extend(0x21c878, 52)) == 2214008);
  assert(unsigned(zero_extend(0x21c87c, 52)) == 2214012);
  assert(unsigned(zero_extend(0x21c880, 52)) == 2214016);
  assert(unsigned(zero_extend(0x21c890, 52)) == 2214032);
  assert(unsigned(zero_extend(0x21c894, 52)) == 2214036);
  assert(unsigned(zero_extend(0x21c8b0, 52)) == 2214064);
  assert(unsigned(zero_extend(0x21c8b4, 52)) == 2214068);
  assert(unsigned(zero_extend(0x21c8b8, 52)) == 2214072);
  assert(unsigned(zero_extend(0x21c8bc, 52)) == 2214076);
  assert(unsigned(zero_extend(0x21c8c0, 52)) == 2214080);
  assert(unsigned(zero_extend(0x21c8c4, 52)) == 2214084);
  assert(unsigned(zero_extend(0x21c8c8, 52)) == 2214088);
  assert(unsigned(zero_extend(0x21c8cc, 52)) == 2214092);
  assert(unsigned(zero_extend(0x21c8d0, 52)) == 2214096);
  assert(unsigned(zero_extend(0x21c8d4, 52)) == 2214100);
  assert(unsigned(zero_extend(0x21c8d8, 52)) == 2214104);
  assert(unsigned(zero_extend(0x21c8dc, 52)) == 2214108);
  assert(unsigned(zero_extend(0x21c8e0, 52)) == 2214112);
  assert(unsigned(zero_extend(0x21c8e4, 52)) == 2214116);
  assert(unsigned(zero_extend(0x21c8e8, 52)) == 2214120);
  assert(unsigned(zero_extend(0x21c8ec, 52)) == 2214124);
  assert(unsigned(zero_extend(0x21c8f0, 52)) == 2214128);
  assert(unsigned(zero_extend(0x21c8f4, 52)) == 2214132);
  assert(unsigned(zero_extend(0x21c8f8, 52)) == 2214136);
  assert(unsigned(zero_extend(0x21c8fc, 52)) == 2214140);
  assert(unsigned(zero_extend(0x21c900, 52)) == 2214144);
  assert(unsigned(zero_extend(0x21c904, 52)) == 2214148);
  assert(unsigned(zero_extend(0x21c908, 52)) == 2214152);
  assert(unsigned(zero_extend(0x21c90c, 52)) == 2214156);
  assert(unsigned(zero_extend(0x21c910, 52)) == 2214160);
  assert(unsigned(zero_extend(0x21c914, 52)) == 2214164);
  assert(unsigned(zero_extend(0x21c918, 52)) == 2214168);
  assert(unsigned(zero_extend(0x21c91c, 52)) == 2214172);
  assert(unsigned(zero_extend(0x21c920, 52)) == 2214176);
  assert(unsigned(zero_extend(0x21c924, 52)) == 2214180);
  assert(unsigned(zero_extend(0x21c928, 52)) == 2214184);
  assert(unsigned(zero_extend(0x21c92c, 52)) == 2214188);
  assert(unsigned(zero_extend(0x21c930, 52)) == 2214192);
  assert(unsigned(zero_extend(0x21c934, 52)) == 2214196);
  assert(unsigned(zero_extend(0x21c938, 52)) == 2214200);
  assert(unsigned(zero_extend(0x21c93c, 52)) == 2214204);
  assert(unsigned(zero_extend(0x21c940, 52)) == 2214208);
  assert(unsigned(zero_extend(0x21c944, 52)) == 2214212);
  assert(unsigned(zero_extend(0x21c948, 52)) == 2214216);
  assert(unsigned(zero_extend(0x21c94c, 52)) == 2214220);
  assert(unsigned(zero_extend(0x21c950, 52)) == 2214224);
  assert(unsigned(zero_extend(0x21c954, 52)) == 2214228);
  assert(unsigned(zero_extend(0x21c958, 52)) == 2214232);
  assert(unsigned(zero_extend(0x21c95c, 52)) == 2214236);
  assert(unsigned(zero_extend(0x21c960, 52)) == 2214240);
  assert(unsigned(zero_extend(0x21c964, 52)) == 2214244);
  assert(unsigned(zero_extend(0x21c968, 52)) == 2214248);
  assert(unsigned(zero_extend(0x21c96c, 52)) == 2214252);
  assert(unsigned(zero_extend(0x21c970, 52)) == 2214256);
  assert(unsigned(zero_extend(0x21c974, 52)) == 2214260);
  assert(unsigned(zero_extend(0x21c978, 52)) == 2214264);
  assert(unsigned(zero_extend(0x21c97c, 52)) == 2214268);
  assert(unsigned(zero_extend(0x21c980, 52)) == 2214272);
  assert(unsigned(zero_extend(0x21c984, 52)) == 2214276);
  assert(unsigned(zero_extend(0x21c988, 52)) == 2214280);
  assert(unsigned(zero_extend(0x21c98c, 52)) == 2214284);
  assert(unsigned(zero_extend(0x21c990, 52)) == 2214288);
  assert(unsigned(zero_extend(0x21c994, 52)) == 2214292);
  assert(unsigned(zero_extend(0x21c998, 52)) == 2214296);
  assert(unsigned(zero_extend(0x21c99c, 52)) == 2214300);
  assert(unsigned(zero_extend(0x21c9a0, 52)) == 2214304);
  assert(unsigned(zero_extend(0x21c9a4, 52)) == 2214308);
  assert(unsigned(zero_extend(0x21c9a8, 52)) == 2214312);
  assert(unsigned(zero_extend(0x21c9ac, 52)) == 2214316);
  assert(unsigned(zero_extend(0x21c9b0, 52)) == 2214320);
  assert(unsigned(zero_extend(0x21c9b4, 52)) == 2214324);
  assert(unsigned(zero_extend(0x21c9b8, 52)) == 2214328);
  assert(unsigned(zero_extend(0x21c9bc, 52)) == 2214332);
  assert(unsigned(zero_extend(0x21c9c0, 52)) == 2214336);
  assert(unsigned(zero_extend(0x21c9c8, 52)) == 2214344);
  assert(unsigned(zero_extend(0x21c9cc, 52)) == 2214348);
  assert(unsigned(zero_extend(0x21c9d0, 52)) == 2214352);
  assert(unsigned(zero_extend(0x21c9d4, 52)) == 2214356);
  assert(unsigned(zero_extend(0x21c9d8, 52)) == 2214360);
  assert(unsigned(zero_extend(0x21c9dc, 52)) == 2214364);
  assert(unsigned(zero_extend(0x21c9e0, 52)) == 2214368);
  assert(unsigned(zero_extend(0x21c9e4, 52)) == 2214372);
  assert(unsigned(zero_extend(0x21c9e8, 52)) == 2214376);
  assert(unsigned(zero_extend(0x21c9ec, 52)) == 2214380);
  assert(unsigned(zero_extend(0x21c9f0, 52)) == 2214384);
  assert(unsigned(zero_extend(0x21c9f4, 52)) == 2214388);
  assert(unsigned(zero_extend(0x21c9f8, 52)) == 2214392);
  assert(unsigned(zero_extend(0x21c9fc, 52)) == 2214396);
  assert(unsigned(zero_extend(0x21ca00, 52)) == 2214400);
  assert(unsigned(zero_extend(0x21ca04, 52)) == 2214404);
  assert(unsigned(zero_extend(0x21ca08, 52)) == 2214408);
  assert(unsigned(zero_extend(0x21ca0c, 52)) == 2214412);
  assert(unsigned(zero_extend(0x21ca10, 52)) == 2214416);
  assert(unsigned(zero_extend(0x21ca14, 52)) == 2214420);
  assert(unsigned(zero_extend(0x21ca18, 52)) == 2214424);
  assert(unsigned(zero_extend(0x21ca1c, 52)) == 2214428);
  assert(unsigned(zero_extend(0x21ca20, 52)) == 2214432);
  assert(unsigned(zero_extend(0x21ca24, 52)) == 2214436);
  assert(unsigned(zero_extend(0x21ca28, 52)) == 2214440);
  assert(unsigned(zero_extend(0x21ca2c, 52)) == 2214444);
  assert(unsigned(zero_extend(0x21ca30, 52)) == 2214448);
  assert(unsigned(zero_extend(0x21ca34, 52)) == 2214452);
  assert(unsigned(zero_extend(0x21ca38, 52)) == 2214456);
  assert(unsigned(zero_extend(0x21ca3c, 52)) == 2214460);
  assert(unsigned(zero_extend(0x21ca40, 52)) == 2214464);
  assert(unsigned(zero_extend(0x21ca44, 52)) == 2214468);
  assert(unsigned(zero_extend(0x21ca48, 52)) == 2214472);
  assert(unsigned(zero_extend(0x21ca4c, 52)) == 2214476);
  assert(unsigned(zero_extend(0x21ca50, 52)) == 2214480);
  assert(unsigned(zero_extend(0x21ca54, 52)) == 2214484);
  assert(unsigned(zero_extend(0x21ca58, 52)) == 2214488);
  assert(unsigned(zero_extend(0x21ca5c, 52)) == 2214492);
  assert(unsigned(zero_extend(0x21ca60, 52)) == 2214496);
  assert(unsigned(zero_extend(0x21ca64, 52)) == 2214500);
  assert(unsigned(zero_extend(0x21ca68, 52)) == 2214504);
  assert(unsigned(zero_extend(0x21ca6c, 52)) == 2214508);
  assert(unsigned(zero_extend(0x21ca70, 52)) == 2214512);
  assert(unsigned(zero_extend(0x21ca74, 52)) == 2214516);
  assert(unsigned(zero_extend(0x21ca78, 52)) == 2214520);
  assert(unsigned(zero_extend(0x21ca7c, 52)) == 2214524);
  assert(unsigned(zero_extend(0x21ca80, 52)) == 2214528);
  assert(unsigned(zero_extend(0x21ca84, 52)) == 2214532);
  assert(unsigned(zero_extend(0x21ca88, 52)) == 2214536);
  assert(unsigned(zero_extend(0x21ca8c, 52)) == 2214540);
  assert(unsigned(zero_extend(0x21ca90, 52)) == 2214544);
  assert(unsigned(zero_extend(0x21ca94, 52)) == 2214548);
  assert(unsigned(zero_extend(0x21ca98, 52)) == 2214552);
  assert(unsigned(zero_extend(0x21ca9c, 52)) == 2214556);
  assert(unsigned(zero_extend(0x21caa0, 52)) == 2214560);
  assert(unsigned(zero_extend(0x21caa4, 52)) == 2214564);
  assert(unsigned(zero_extend(0x21caa8, 52)) == 2214568);
  assert(unsigned(zero_extend(0x21caac, 52)) == 2214572);
  assert(unsigned(zero_extend(0x21cab0, 52)) == 2214576);
  assert(unsigned(zero_extend(0x21cab4, 52)) == 2214580);
  assert(unsigned(zero_extend(0x21cab8, 52)) == 2214584);
  assert(unsigned(zero_extend(0x21cabc, 52)) == 2214588);
  assert(unsigned(zero_extend(0x21cac0, 52)) == 2214592);
  assert(unsigned(zero_extend(0x21cac4, 52)) == 2214596);
  assert(unsigned(zero_extend(0x21cac8, 52)) == 2214600);
  assert(unsigned(zero_extend(0x21cacc, 52)) == 2214604);
  assert(unsigned(zero_extend(0x21cad0, 52)) == 2214608);
  assert(unsigned(zero_extend(0x21cad4, 52)) == 2214612);
  assert(unsigned(zero_extend(0x21cad8, 52)) == 2214616);
  assert(unsigned(zero_extend(0x21cadc, 52)) == 2214620);
  assert(unsigned(zero_extend(0x21cae0, 52)) == 2214624);
  assert(unsigned(zero_extend(0x21cae4, 52)) == 2214628);
  assert(unsigned(zero_extend(0x21cae8, 52)) == 2214632);
  assert(unsigned(zero_extend(0x21caec, 52)) == 2214636);
  assert(unsigned(zero_extend(0x21caf0, 52)) == 2214640);
  assert(unsigned(zero_extend(0x21caf4, 52)) == 2214644);
  assert(unsigned(zero_extend(0x21caf8, 52)) == 2214648);
  assert(unsigned(zero_extend(0x21cafc, 52)) == 2214652);
  assert(unsigned(zero_extend(0x21cb00, 52)) == 2214656);
  assert(unsigned(zero_extend(0x21cb04, 52)) == 2214660);
  assert(unsigned(zero_extend(0x21cb08, 52)) == 2214664);
  assert(unsigned(zero_extend(0x21cb0c, 52)) == 2214668);
  assert(unsigned(zero_extend(0x21cb10, 52)) == 2214672);
  assert(unsigned(zero_extend(0x21cb14, 52)) == 2214676);
  assert(unsigned(zero_extend(0x21cb18, 52)) == 2214680);
  assert(unsigned(zero_extend(0x21cb20, 52)) == 2214688);
  assert(unsigned(zero_extend(0x21cb24, 52)) == 2214692);
  assert(unsigned(zero_extend(0x21cb28, 52)) == 2214696);
  assert(unsigned(zero_extend(0x21cb2c, 52)) == 2214700);
  assert(unsigned(zero_extend(0x21cb30, 52)) == 2214704);
  assert(unsigned(zero_extend(0x21cb34, 52)) == 2214708);
  assert(unsigned(zero_extend(0x21cb38, 52)) == 2214712);
  assert(unsigned(zero_extend(0x21cb3c, 52)) == 2214716);
  assert(unsigned(zero_extend(0x21cb40, 52)) == 2214720);
  assert(unsigned(zero_extend(0x21cb44, 52)) == 2214724);
  assert(unsigned(zero_extend(0x21cb48, 52)) == 2214728);
  assert(unsigned(zero_extend(0x21cb4c, 52)) == 2214732);
  assert(unsigned(zero_extend(0x21cb50, 52)) == 2214736);
  assert(unsigned(zero_extend(0x21cb54, 52)) == 2214740);
  assert(unsigned(zero_extend(0x21cb58, 52)) == 2214744);
  assert(unsigned(zero_extend(0x21cb5c, 52)) == 2214748);
  assert(unsigned(zero_extend(0x21cb60, 52)) == 2214752);
  assert(unsigned(zero_extend(0x21cb64, 52)) == 2214756);
  assert(unsigned(zero_extend(0x21cb68, 52)) == 2214760);
  assert(unsigned(zero_extend(0x21cb6c, 52)) == 2214764);
  assert(unsigned(zero_extend(0x21cb70, 52)) == 2214768);
  assert(unsigned(zero_extend(0x21cb74, 52)) == 2214772);
  assert(unsigned(zero_extend(0x21cb78, 52)) == 2214776);
  assert(unsigned(zero_extend(0x21cb7c, 52)) == 2214780);
  assert(unsigned(zero_extend(0x21cb80, 52)) == 2214784);
  assert(unsigned(zero_extend(0x21cb84, 52)) == 2214788);
  assert(unsigned(zero_extend(0x21cb88, 52)) == 2214792);
  assert(unsigned(zero_extend(0x21cb8c, 52)) == 2214796);
  assert(unsigned(zero_extend(0x21cb90, 52)) == 2214800);
  assert(unsigned(zero_extend(0x21cb94, 52)) == 2214804);
  assert(unsigned(zero_extend(0x21cb98, 52)) == 2214808);
  assert(unsigned(zero_extend(0x21cb9c, 52)) == 2214812);
  assert(unsigned(zero_extend(0x21cba0, 52)) == 2214816);
  assert(unsigned(zero_extend(0x21cba4, 52)) == 2214820);
  assert(unsigned(zero_extend(0x21cba8, 52)) == 2214824);
  assert(unsigned(zero_extend(0x21cbac, 52)) == 2214828);
  assert(unsigned(zero_extend(0x21cbb0, 52)) == 2214832);
  assert(unsigned(zero_extend(0x21cbb4, 52)) == 2214836);
  assert(unsigned(zero_extend(0x21cbb8, 52)) == 2214840);
  assert(unsigned(zero_extend(0x21cbbc, 52)) == 2214844);
  assert(unsigned(zero_extend(0x21cbc0, 52)) == 2214848);
  assert(unsigned(zero_extend(0x21cbc4, 52)) == 2214852);
  assert(unsigned(zero_extend(0x21cbc8, 52)) == 2214856);
  assert(unsigned(zero_extend(0x21cbcc, 52)) == 2214860);
  assert(unsigned(zero_extend(0x21cbd0, 52)) == 2214864);
  assert(unsigned(zero_extend(0x21cbd4, 52)) == 2214868);
  assert(unsigned(zero_extend(0x21cbd8, 52)) == 2214872);
  assert(unsigned(zero_extend(0x21cbdc, 52)) == 2214876);
  assert(unsigned(zero_extend(0x21cbe0, 52)) == 2214880);
  assert(unsigned(zero_extend(0x21cbe4, 52)) == 2214884);
  assert(unsigned(zero_extend(0x21cbe8, 52)) == 2214888);
  assert(unsigned(zero_extend(0x21cbec, 52)) == 2214892);
  assert(unsigned(zero_extend(0x21cbf0, 52)) == 2214896);
  assert(unsigned(zero_extend(0x21cbf4, 52)) == 2214900);
  assert(unsigned(zero_extend(0x21cbf8, 52)) == 2214904);
  assert(unsigned(zero_extend(0x21cbfc, 52)) == 2214908);
  assert(unsigned(zero_extend(0x21cc00, 52)) == 2214912);
  assert(unsigned(zero_extend(0x21cc04, 52)) == 2214916);
  assert(unsigned(zero_extend(0x21cc08, 52)) == 2214920);
  assert(unsigned(zero_extend(0x21cc0c, 52)) == 2214924);
  assert(unsigned(zero_extend(0x21cc1c, 52)) == 2214940);
  assert(unsigned(zero_extend(0x21cc20, 52)) == 2214944);
  assert(unsigned(zero_extend(0x21cc24, 52)) == 2214948);
  assert(unsigned(zero_extend(0x21cc28, 52)) == 2214952);
  assert(unsigned(zero_extend(0x21cc2c, 52)) == 2214956);
  assert(unsigned(zero_extend(0x21cc30, 52)) == 2214960);
  assert(unsigned(zero_extend(0x21cc34, 52)) == 2214964);
  assert(unsigned(zero_extend(0x21cc38, 52)) == 2214968);
  assert(unsigned(zero_extend(0x21cc3c, 52)) == 2214972);
  assert(unsigned(zero_extend(0x21cc40, 52)) == 2214976);
  assert(unsigned(zero_extend(0x21cc44, 52)) == 2214980);
  assert(unsigned(zero_extend(0x21cc48, 52)) == 2214984);
  assert(unsigned(zero_extend(0x21cc4c, 52)) == 2214988);
  assert(unsigned(zero_extend(0x21cc50, 52)) == 2214992);
  assert(unsigned(zero_extend(0x21cc54, 52)) == 2214996);
  assert(unsigned(zero_extend(0x21cc58, 52)) == 2215000);
  assert(unsigned(zero_extend(0x21cc5c, 52)) == 2215004);
  assert(unsigned(zero_extend(0x21cc60, 52)) == 2215008);
  assert(unsigned(zero_extend(0x21cc64, 52)) == 2215012);
  assert(unsigned(zero_extend(0x21cc68, 52)) == 2215016);
  assert(unsigned(zero_extend(0x21cc6c, 52)) == 2215020);
  assert(unsigned(zero_extend(0x21cc70, 52)) == 2215024);
  assert(unsigned(zero_extend(0x21cc74, 52)) == 2215028);
  assert(unsigned(zero_extend(0x21cc78, 52)) == 2215032);
  assert(unsigned(zero_extend(0x21cc7c, 52)) == 2215036);
  assert(unsigned(zero_extend(0x21cc80, 52)) == 2215040);
  assert(unsigned(zero_extend(0x21cc84, 52)) == 2215044);
  assert(unsigned(zero_extend(0x21cc88, 52)) == 2215048);
  assert(unsigned(zero_extend(0x21cc8c, 52)) == 2215052);
  assert(unsigned(zero_extend(0x21cc90, 52)) == 2215056);
  assert(unsigned(zero_extend(0x21cc94, 52)) == 2215060);
  assert(unsigned(zero_extend(0x21cc98, 52)) == 2215064);
  assert(unsigned(zero_extend(0x21cc9c, 52)) == 2215068);
  assert(unsigned(zero_extend(0x21cca0, 52)) == 2215072);
  assert(unsigned(zero_extend(0x21cca4, 52)) == 2215076);
  assert(unsigned(zero_extend(0x21cca8, 52)) == 2215080);
  assert(unsigned(zero_extend(0x21ccac, 52)) == 2215084);
  assert(unsigned(zero_extend(0x21ccb0, 52)) == 2215088);
  assert(unsigned(zero_extend(0x21ccb4, 52)) == 2215092);
  assert(unsigned(zero_extend(0x21ccb8, 52)) == 2215096);
  assert(unsigned(zero_extend(0x21ccbc, 52)) == 2215100);
  assert(unsigned(zero_extend(0x21ccc0, 52)) == 2215104);
  assert(unsigned(zero_extend(0x21ccc4, 52)) == 2215108);
  assert(unsigned(zero_extend(0x21ccc8, 52)) == 2215112);
  assert(unsigned(zero_extend(0x21cccc, 52)) == 2215116);
  assert(unsigned(zero_extend(0x21ccd0, 52)) == 2215120);
  assert(unsigned(zero_extend(0x21ccd8, 52)) == 2215128);
  assert(unsigned(zero_extend(0x21ccdc, 52)) == 2215132);
  assert(unsigned(zero_extend(0x21cce0, 52)) == 2215136);
  assert(unsigned(zero_extend(0x21cce4, 52)) == 2215140);
  assert(unsigned(zero_extend(0x21cce8, 52)) == 2215144);
  assert(unsigned(zero_extend(0x21ccec, 52)) == 2215148);
  assert(unsigned(zero_extend(0x21ccf0, 52)) == 2215152);
  assert(unsigned(zero_extend(0x21ccf4, 52)) == 2215156);
  assert(unsigned(zero_extend(0x21ccf8, 52)) == 2215160);
  assert(unsigned(zero_extend(0x21ccfc, 52)) == 2215164);
  assert(unsigned(zero_extend(0x21cd00, 52)) == 2215168);
  assert(unsigned(zero_extend(0x21cd30, 52)) == 2215216);
  assert(unsigned(zero_extend(0x21cd34, 52)) == 2215220);
  assert(unsigned(zero_extend(0x21cd38, 52)) == 2215224);
  assert(unsigned(zero_extend(0x21cd3c, 52)) == 2215228);
  assert(unsigned(zero_extend(0x21cd40, 52)) == 2215232);
  assert(unsigned(zero_extend(0x21cd44, 52)) == 2215236);
  assert(unsigned(zero_extend(0x21cd48, 52)) == 2215240);
  assert(unsigned(zero_extend(0x21cd4c, 52)) == 2215244);
  assert(unsigned(zero_extend(0x21cd50, 52)) == 2215248);
  assert(unsigned(zero_extend(0x21cd54, 52)) == 2215252);
  assert(unsigned(zero_extend(0x21cd58, 52)) == 2215256);
  assert(unsigned(zero_extend(0x21cd7c, 52)) == 2215292);
  assert(unsigned(zero_extend(0x21cd80, 52)) == 2215296);
  assert(unsigned(zero_extend(0x21cd84, 52)) == 2215300);
  assert(unsigned(zero_extend(0x21cd88, 52)) == 2215304);
  assert(unsigned(zero_extend(0x21cd8c, 52)) == 2215308);
  assert(unsigned(zero_extend(0x21cd90, 52)) == 2215312);
  assert(unsigned(zero_extend(0x21cd94, 52)) == 2215316);
  assert(unsigned(zero_extend(0x21cd98, 52)) == 2215320);
  assert(unsigned(zero_extend(0x21cd9c, 52)) == 2215324);
  assert(unsigned(zero_extend(0x21cda0, 52)) == 2215328);
  assert(unsigned(zero_extend(0x21cda4, 52)) == 2215332);
  assert(unsigned(zero_extend(0x21cda8, 52)) == 2215336);
  assert(unsigned(zero_extend(0x21cdac, 52)) == 2215340);
  assert(unsigned(zero_extend(0x21cdb0, 52)) == 2215344);
  assert(unsigned(zero_extend(0x21cdb4, 52)) == 2215348);
  assert(unsigned(zero_extend(0x21cdb8, 52)) == 2215352);
  assert(unsigned(zero_extend(0x21cdbc, 52)) == 2215356);
  assert(unsigned(zero_extend(0x21cdc0, 52)) == 2215360);
  assert(unsigned(zero_extend(0x21cdc4, 52)) == 2215364);
  assert(unsigned(zero_extend(0x21cdc8, 52)) == 2215368);
  assert(unsigned(zero_extend(0x21cdcc, 52)) == 2215372);
  assert(unsigned(zero_extend(0x21cdd0, 52)) == 2215376);
  assert(unsigned(zero_extend(0x21cdd4, 52)) == 2215380);
  assert(unsigned(zero_extend(0x21cdd8, 52)) == 2215384);
  assert(unsigned(zero_extend(0x21cddc, 52)) == 2215388);
  assert(unsigned(zero_extend(0x21cde0, 52)) == 2215392);
  assert(unsigned(zero_extend(0x21cde4, 52)) == 2215396);
  assert(unsigned(zero_extend(0x21cde8, 52)) == 2215400);
  assert(unsigned(zero_extend(0x21cdec, 52)) == 2215404);
  assert(unsigned(zero_extend(0x21cdf0, 52)) == 2215408);
  assert(unsigned(zero_extend(0x21cdf4, 52)) == 2215412);
  assert(unsigned(zero_extend(0x21cdf8, 52)) == 2215416);
  assert(unsigned(zero_extend(0x21cdfc, 52)) == 2215420);
  assert(unsigned(zero_extend(0x21ce00, 52)) == 2215424);
  assert(unsigned(zero_extend(0x21ce04, 52)) == 2215428);
  assert(unsigned(zero_extend(0x21ce08, 52)) == 2215432);
  assert(unsigned(zero_extend(0x21ce0c, 52)) == 2215436);
  assert(unsigned(zero_extend(0x21ce10, 52)) == 2215440);
  assert(unsigned(zero_extend(0x21ce14, 52)) == 2215444);
  assert(unsigned(zero_extend(0x21ce18, 52)) == 2215448);
  assert(unsigned(zero_extend(0x21ce1c, 52)) == 2215452);
  assert(unsigned(zero_extend(0x21ce20, 52)) == 2215456);
  assert(unsigned(zero_extend(0x21ce24, 52)) == 2215460);
  assert(unsigned(zero_extend(0x21ce28, 52)) == 2215464);
  assert(unsigned(zero_extend(0x21ce2c, 52)) == 2215468);
  assert(unsigned(zero_extend(0x21ce30, 52)) == 2215472);
  assert(unsigned(zero_extend(0x21ce34, 52)) == 2215476);
  assert(unsigned(zero_extend(0x21ce38, 52)) == 2215480);
  assert(unsigned(zero_extend(0x21ce3c, 52)) == 2215484);
  assert(unsigned(zero_extend(0x21ce40, 52)) == 2215488);
  assert(unsigned(zero_extend(0x21ce44, 52)) == 2215492);
  assert(unsigned(zero_extend(0x21ce48, 52)) == 2215496);
  assert(unsigned(zero_extend(0x21ce4c, 52)) == 2215500);
  assert(unsigned(zero_extend(0x21ce50, 52)) == 2215504);
  assert(unsigned(zero_extend(0x21ce54, 52)) == 2215508);
  assert(unsigned(zero_extend(0x21ce58, 52)) == 2215512);
  assert(unsigned(zero_extend(0x21ce68, 52)) == 2215528);
  assert(unsigned(zero_extend(0x21ce6c, 52)) == 2215532);
  assert(unsigned(zero_extend(0x21ce70, 52)) == 2215536);
  assert(unsigned(zero_extend(0x21ce74, 52)) == 2215540);
  assert(unsigned(zero_extend(0x21ce78, 52)) == 2215544);
  assert(unsigned(zero_extend(0x21ce7c, 52)) == 2215548);
  assert(unsigned(zero_extend(0x21ce80, 52)) == 2215552);
  assert(unsigned(zero_extend(0x21ce84, 52)) == 2215556);
  assert(unsigned(zero_extend(0x21ce88, 52)) == 2215560);
  assert(unsigned(zero_extend(0x21ce9c, 52)) == 2215580);
  assert(unsigned(zero_extend(0x21cea0, 52)) == 2215584);
  assert(unsigned(zero_extend(0x21cea4, 52)) == 2215588);
  assert(unsigned(zero_extend(0x21cea8, 52)) == 2215592);
  assert(unsigned(zero_extend(0x21ceac, 52)) == 2215596);
  assert(unsigned(zero_extend(0x21ceb0, 52)) == 2215600);
  assert(unsigned(zero_extend(0x21ceb4, 52)) == 2215604);
  assert(unsigned(zero_extend(0x21ceb8, 52)) == 2215608);
  assert(unsigned(zero_extend(0x21cebc, 52)) == 2215612);
  assert(unsigned(zero_extend(0x21cec0, 52)) == 2215616);
  assert(unsigned(zero_extend(0x21cec4, 52)) == 2215620);
  assert(unsigned(zero_extend(0x21cec8, 52)) == 2215624);
  assert(unsigned(zero_extend(0x21cecc, 52)) == 2215628);
  assert(unsigned(zero_extend(0x21ced0, 52)) == 2215632);
  assert(unsigned(zero_extend(0x21ced4, 52)) == 2215636);
  assert(unsigned(zero_extend(0x21ced8, 52)) == 2215640);
  assert(unsigned(zero_extend(0x21cee8, 52)) == 2215656);
  assert(unsigned(zero_extend(0x21ceec, 52)) == 2215660);
  assert(unsigned(zero_extend(0x21cef0, 52)) == 2215664);
  assert(unsigned(zero_extend(0x21cef4, 52)) == 2215668);
  assert(unsigned(zero_extend(0x21cef8, 52)) == 2215672);
  assert(unsigned(zero_extend(0x21cefc, 52)) == 2215676);
  assert(unsigned(zero_extend(0x21cf00, 52)) == 2215680);
  assert(unsigned(zero_extend(0x21cf04, 52)) == 2215684);
  assert(unsigned(zero_extend(0x21cf08, 52)) == 2215688);
  assert(unsigned(zero_extend(0x21cf0c, 52)) == 2215692);
  assert(unsigned(zero_extend(0x21cf10, 52)) == 2215696);
  assert(unsigned(zero_extend(0x21cf14, 52)) == 2215700);
  assert(unsigned(zero_extend(0x21cf18, 52)) == 2215704);
  assert(unsigned(zero_extend(0x21cf1c, 52)) == 2215708);
  assert(unsigned(zero_extend(0x21cf20, 52)) == 2215712);
  assert(unsigned(zero_extend(0x21cf24, 52)) == 2215716);
  assert(unsigned(zero_extend(0x21cf28, 52)) == 2215720);
  assert(unsigned(zero_extend(0x21cf2c, 52)) == 2215724);
  assert(unsigned(zero_extend(0x21cf30, 52)) == 2215728);
  assert(unsigned(zero_extend(0x21cf40, 52)) == 2215744);
  assert(unsigned(zero_extend(0x21cf44, 52)) == 2215748);
  assert(unsigned(zero_extend(0x21cf48, 52)) == 2215752);
  assert(unsigned(zero_extend(0x21cf4c, 52)) == 2215756);
  assert(unsigned(zero_extend(0x21cf50, 52)) == 2215760);
  assert(unsigned(zero_extend(0x21cf54, 52)) == 2215764);
  assert(unsigned(zero_extend(0x21cf58, 52)) == 2215768);
  assert(unsigned(zero_extend(0x21cf5c, 52)) == 2215772);
  assert(unsigned(zero_extend(0x21cf64, 52)) == 2215780);
  assert(unsigned(zero_extend(0x21cf68, 52)) == 2215784);
  assert(unsigned(zero_extend(0x21cf6c, 52)) == 2215788);
  assert(unsigned(zero_extend(0x21cf70, 52)) == 2215792);
  assert(unsigned(zero_extend(0x21cf74, 52)) == 2215796);
  assert(unsigned(zero_extend(0x21cf78, 52)) == 2215800);
  assert(unsigned(zero_extend(0x21cf7c, 52)) == 2215804);
  assert(unsigned(zero_extend(0x21cf80, 52)) == 2215808);
  assert(unsigned(zero_extend(0x21cf84, 52)) == 2215812);
  assert(unsigned(zero_extend(0x21cf88, 52)) == 2215816);
  assert(unsigned(zero_extend(0x21cf8c, 52)) == 2215820);
  assert(unsigned(zero_extend(0x21cf90, 52)) == 2215824);
  assert(unsigned(zero_extend(0x21cf94, 52)) == 2215828);
  assert(unsigned(zero_extend(0x21cf98, 52)) == 2215832);
  assert(unsigned(zero_extend(0x21cf9c, 52)) == 2215836);
  assert(unsigned(zero_extend(0x21cfa0, 52)) == 2215840);
  assert(unsigned(zero_extend(0x21cfa4, 52)) == 2215844);
  assert(unsigned(zero_extend(0x21cfa8, 52)) == 2215848);
  assert(unsigned(zero_extend(0x21cfac, 52)) == 2215852);
  assert(unsigned(zero_extend(0x21cfb0, 52)) == 2215856);
  assert(unsigned(zero_extend(0x21cfb4, 52)) == 2215860);
  assert(unsigned(zero_extend(0x21cfb8, 52)) == 2215864);
  assert(unsigned(zero_extend(0x21cfbc, 52)) == 2215868);
  assert(unsigned(zero_extend(0x21cfc0, 52)) == 2215872);
  assert(unsigned(zero_extend(0x21cfc4, 52)) == 2215876);
  assert(unsigned(zero_extend(0x21cfc8, 52)) == 2215880);
  assert(unsigned(zero_extend(0x21cfcc, 52)) == 2215884);
  assert(unsigned(zero_extend(0x21cfd0, 52)) == 2215888);
  assert(unsigned(zero_extend(0x21cfd4, 52)) == 2215892);
  assert(unsigned(zero_extend(0x21cfd8, 52)) == 2215896);
  assert(unsigned(zero_extend(0x21cfdc, 52)) == 2215900);
  assert(unsigned(zero_extend(0x21cfe0, 52)) == 2215904);
  assert(unsigned(zero_extend(0x21cfe4, 52)) == 2215908);
  assert(unsigned(zero_extend(0x21cfe8, 52)) == 2215912);
  assert(unsigned(zero_extend(0x21cfec, 52)) == 2215916);
  assert(unsigned(zero_extend(0x21cff0, 52)) == 2215920);
  assert(unsigned(zero_extend(0x21cff4, 52)) == 2215924);
  assert(unsigned(zero_extend(0x21cff8, 52)) == 2215928);
  assert(unsigned(zero_extend(0x21cffc, 52)) == 2215932);
  assert(unsigned(zero_extend(0x21d000, 52)) == 2215936);
  assert(unsigned(zero_extend(0x21d004, 52)) == 2215940);
  assert(unsigned(zero_extend(0x21d008, 52)) == 2215944);
  assert(unsigned(zero_extend(0x21d00c, 52)) == 2215948);
  assert(unsigned(zero_extend(0x21d010, 52)) == 2215952);
  assert(unsigned(zero_extend(0x21d014, 52)) == 2215956);
  assert(unsigned(zero_extend(0x21d018, 52)) == 2215960);
  assert(unsigned(zero_extend(0x21d01c, 52)) == 2215964);
  assert(unsigned(zero_extend(0x21d020, 52)) == 2215968);
  assert(unsigned(zero_extend(0x21d024, 52)) == 2215972);
  assert(unsigned(zero_extend(0x21d028, 52)) == 2215976);
  assert(unsigned(zero_extend(0x21d02c, 52)) == 2215980);
  assert(unsigned(zero_extend(0x21d030, 52)) == 2215984);
  assert(unsigned(zero_extend(0x21d034, 52)) == 2215988);
  assert(unsigned(zero_extend(0x21d038, 52)) == 2215992);
  assert(unsigned(zero_extend(0x21d03c, 52)) == 2215996);
  assert(unsigned(zero_extend(0x21d040, 52)) == 2216000);
  assert(unsigned(zero_extend(0x21d044, 52)) == 2216004);
  assert(unsigned(zero_extend(0x21d048, 52)) == 2216008);
  assert(unsigned(zero_extend(0x21d04c, 52)) == 2216012);
  assert(unsigned(zero_extend(0x21d050, 52)) == 2216016);
  assert(unsigned(zero_extend(0x21d054, 52)) == 2216020);
  assert(unsigned(zero_extend(0x21d058, 52)) == 2216024);
  assert(unsigned(zero_extend(0x21d060, 52)) == 2216032);
  assert(unsigned(zero_extend(0x21d068, 52)) == 2216040);
  assert(unsigned(zero_extend(0x21d070, 52)) == 2216048);
  assert(unsigned(zero_extend(0x21d078, 52)) == 2216056);
  assert(unsigned(zero_extend(0x21d080, 52)) == 2216064);
  assert(unsigned(zero_extend(0x21d088, 52)) == 2216072);
  assert(unsigned(zero_extend(0x21d090, 52)) == 2216080);
  assert(unsigned(zero_extend(0x21d098, 52)) == 2216088);
  assert(unsigned(zero_extend(0x21d0a0, 52)) == 2216096);
  assert(unsigned(zero_extend(0x21d0a8, 52)) == 2216104);
  assert(unsigned(zero_extend(0x21d0b0, 52)) == 2216112);
  assert(unsigned(zero_extend(0x21d0b8, 52)) == 2216120);
  assert(unsigned(zero_extend(0x21d0c0, 52)) == 2216128);
  assert(unsigned(zero_extend(0x21d0c8, 52)) == 2216136);
  assert(unsigned(zero_extend(0x21d0d0, 52)) == 2216144);
  assert(unsigned(zero_extend(0x21d0d8, 52)) == 2216152);
  assert(unsigned(zero_extend(0x21d0e0, 52)) == 2216160);
  assert(unsigned(zero_extend(0x21d0e8, 52)) == 2216168);
  assert(unsigned(zero_extend(0x21d0f0, 52)) == 2216176);
  assert(unsigned(zero_extend(0x21d0f8, 52)) == 2216184);
  assert(unsigned(zero_extend(0x21d100, 52)) == 2216192);
  assert(unsigned(zero_extend(0x21d108, 52)) == 2216200);
  assert(unsigned(zero_extend(0x21d448, 52)) == 2217032);
  assert(unsigned(zero_extend(0x21d44c, 52)) == 2217036);
  assert(unsigned(zero_extend(0x21d450, 52)) == 2217040);
  assert(unsigned(zero_extend(0x21d454, 52)) == 2217044);
  assert(unsigned(zero_extend(0x21d458, 52)) == 2217048);
  assert(unsigned(zero_extend(0x21d45c, 52)) == 2217052);
  assert(unsigned(zero_extend(0x21d460, 52)) == 2217056);
  assert(unsigned(zero_extend(0x21d464, 52)) == 2217060);
  assert(unsigned(zero_extend(0x21d468, 52)) == 2217064);
  assert(unsigned(zero_extend(0x21d46c, 52)) == 2217068);
  assert(unsigned(zero_extend(0x21d470, 52)) == 2217072);
  assert(unsigned(zero_extend(0x21d474, 52)) == 2217076);
  assert(unsigned(zero_extend(0x21d478, 52)) == 2217080);
  assert(unsigned(zero_extend(0x21d47c, 52)) == 2217084);
  assert(unsigned(zero_extend(0x21d480, 52)) == 2217088);
  assert(unsigned(zero_extend(0x21d484, 52)) == 2217092);
  assert(unsigned(zero_extend(0x21d490, 52)) == 2217104);
  assert(unsigned(zero_extend(0x21d494, 52)) == 2217108);
  assert(unsigned(zero_extend(0x21d498, 52)) == 2217112);
  assert(unsigned(zero_extend(0x21d49c, 52)) == 2217116);
  assert(unsigned(zero_extend(0x21d4a0, 52)) == 2217120);
  assert(unsigned(zero_extend(0x21d4a4, 52)) == 2217124);
  assert(unsigned(zero_extend(0x21d4a8, 52)) == 2217128);
  assert(unsigned(zero_extend(0x21d4ac, 52)) == 2217132);
  assert(unsigned(zero_extend(0x21d4b0, 52)) == 2217136);
  assert(unsigned(zero_extend(0x21d4b4, 52)) == 2217140);
  assert(unsigned(zero_extend(0x21d4b8, 52)) == 2217144);
  assert(unsigned(zero_extend(0x21d4bc, 52)) == 2217148);
  assert(unsigned(zero_extend(0x21d4c0, 52)) == 2217152);
  assert(unsigned(zero_extend(0x21d4c4, 52)) == 2217156);
  assert(unsigned(zero_extend(0x21d4c8, 52)) == 2217160);
  assert(unsigned(zero_extend(0x21d4cc, 52)) == 2217164);
  assert(unsigned(zero_extend(0x21d4d0, 52)) == 2217168);
  assert(unsigned(zero_extend(0x21d4d4, 52)) == 2217172);
  assert(unsigned(zero_extend(0x21d4d8, 52)) == 2217176);
  assert(unsigned(zero_extend(0x21d4dc, 52)) == 2217180);
  assert(unsigned(zero_extend(0x21d4e0, 52)) == 2217184);
  assert(unsigned(zero_extend(0x21d4e4, 52)) == 2217188);
  assert(unsigned(zero_extend(0x21d4e8, 52)) == 2217192);
  assert(unsigned(zero_extend(0x21d4ec, 52)) == 2217196);
  assert(unsigned(zero_extend(0x21d4f0, 52)) == 2217200);
  assert(unsigned(zero_extend(0x21d4f4, 52)) == 2217204);
  assert(unsigned(zero_extend(0x21d4f8, 52)) == 2217208);
  assert(unsigned(zero_extend(0x21d4fc, 52)) == 2217212);
  assert(unsigned(zero_extend(0x21d500, 52)) == 2217216);
  assert(unsigned(zero_extend(0x21d504, 52)) == 2217220);
  assert(unsigned(zero_extend(0x21d508, 52)) == 2217224);
  assert(unsigned(zero_extend(0x21d50c, 52)) == 2217228);
  assert(unsigned(zero_extend(0x21d510, 52)) == 2217232);
  assert(unsigned(zero_extend(0x21d514, 52)) == 2217236);
  assert(unsigned(zero_extend(0x21d518, 52)) == 2217240);
  assert(unsigned(zero_extend(0x21d51c, 52)) == 2217244);
  assert(unsigned(zero_extend(0x21d520, 52)) == 2217248);
  assert(unsigned(zero_extend(0x21d524, 52)) == 2217252);
  assert(unsigned(zero_extend(0x21d528, 52)) == 2217256);
  assert(unsigned(zero_extend(0x21d52c, 52)) == 2217260);
  assert(unsigned(zero_extend(0x21d530, 52)) == 2217264);
  assert(unsigned(zero_extend(0x21d534, 52)) == 2217268);
  assert(unsigned(zero_extend(0x21d538, 52)) == 2217272);
  assert(unsigned(zero_extend(0x21d53c, 52)) == 2217276);
  assert(unsigned(zero_extend(0x21d540, 52)) == 2217280);
  assert(unsigned(zero_extend(0x21d544, 52)) == 2217284);
  assert(unsigned(zero_extend(0x21d548, 52)) == 2217288);
  assert(unsigned(zero_extend(0x21d54c, 52)) == 2217292);
  assert(unsigned(zero_extend(0x21d550, 52)) == 2217296);
  assert(unsigned(zero_extend(0x21d554, 52)) == 2217300);
  assert(unsigned(zero_extend(0x21d558, 52)) == 2217304);
  assert(unsigned(zero_extend(0x21d560, 52)) == 2217312);
  assert(unsigned(zero_extend(0x21d564, 52)) == 2217316);
  assert(unsigned(zero_extend(0x21d568, 52)) == 2217320);
  assert(unsigned(zero_extend(0x21d570, 52)) == 2217328);
  assert(unsigned(zero_extend(0x21d5f8, 52)) == 2217464);
  assert(unsigned(zero_extend(0x21d5fc, 52)) == 2217468);
  assert(unsigned(zero_extend(0x21d600, 52)) == 2217472);
  assert(unsigned(zero_extend(0x21d604, 52)) == 2217476);
  assert(unsigned(zero_extend(0x21d608, 52)) == 2217480);
  assert(unsigned(zero_extend(0x21d60c, 52)) == 2217484);
  assert(unsigned(zero_extend(0x21d610, 52)) == 2217488);
  assert(unsigned(zero_extend(0x21d614, 52)) == 2217492);
  assert(unsigned(zero_extend(0x21d618, 52)) == 2217496);
  assert(unsigned(zero_extend(0x21d61c, 52)) == 2217500);
  assert(unsigned(zero_extend(0x21d620, 52)) == 2217504);
  assert(unsigned(zero_extend(0x21d624, 52)) == 2217508);
  assert(unsigned(zero_extend(0x21d628, 52)) == 2217512);
  assert(unsigned(zero_extend(0x21d650, 52)) == 2217552);
  assert(unsigned(zero_extend(0x21d654, 52)) == 2217556);
  assert(unsigned(zero_extend(0x21d658, 52)) == 2217560);
  assert(unsigned(zero_extend(0x21d65c, 52)) == 2217564);
  assert(unsigned(zero_extend(0x21d660, 52)) == 2217568);
  assert(unsigned(zero_extend(0x21d664, 52)) == 2217572);
  assert(unsigned(zero_extend(0x21d668, 52)) == 2217576);
  assert(unsigned(zero_extend(0x21d66c, 52)) == 2217580);
  assert(unsigned(zero_extend(0x21d670, 52)) == 2217584);
  assert(unsigned(zero_extend(0x21d674, 52)) == 2217588);
  assert(unsigned(zero_extend(0x21d678, 52)) == 2217592);
  assert(unsigned(zero_extend(0x21d67c, 52)) == 2217596);
  assert(unsigned(zero_extend(0x21d680, 52)) == 2217600);
  assert(unsigned(zero_extend(0x21e078, 52)) == 2220152);
  assert(unsigned(zero_extend(0x21e07c, 52)) == 2220156);
  assert(unsigned(zero_extend(0x21e080, 52)) == 2220160);
  assert(unsigned(zero_extend(0x21e084, 52)) == 2220164);
  assert(unsigned(zero_extend(0x21e088, 52)) == 2220168);
  assert(unsigned(zero_extend(0x21e08c, 52)) == 2220172);
  assert(unsigned(zero_extend(0x21e090, 52)) == 2220176);
  assert(unsigned(zero_extend(0x21e094, 52)) == 2220180);
  assert(unsigned(zero_extend(0x21e098, 52)) == 2220184);
  assert(unsigned(zero_extend(0x21e09c, 52)) == 2220188);
  assert(unsigned(zero_extend(0x21e0a0, 52)) == 2220192);
  assert(unsigned(zero_extend(0x21e0a4, 52)) == 2220196);
  assert(unsigned(zero_extend(0x21e0a8, 52)) == 2220200);
  assert(unsigned(zero_extend(0x21e0ac, 52)) == 2220204);
  assert(unsigned(zero_extend(0x21e0ad, 52)) == 2220205);
  assert(unsigned(zero_extend(0x21e0ae, 52)) == 2220206);
  assert(unsigned(zero_extend(0x21e0af, 52)) == 2220207);
  assert(unsigned(zero_extend(0x21e0b0, 52)) == 2220208);
  assert(unsigned(zero_extend(0x21e0b1, 52)) == 2220209);
  assert(unsigned(zero_extend(0x21e0b2, 52)) == 2220210);
  assert(unsigned(zero_extend(0x21e0b3, 52)) == 2220211);
  assert(unsigned(zero_extend(0x21e0b4, 52)) == 2220212);
  assert(unsigned(zero_extend(0x21e0b5, 52)) == 2220213);
  assert(unsigned(zero_extend(0x21e0b6, 52)) == 2220214);
  assert(unsigned(zero_extend(0x21e0b7, 52)) == 2220215);
  assert(unsigned(zero_extend(0x21e0b8, 52)) == 2220216);
  assert(unsigned(zero_extend(0x21e0b9, 52)) == 2220217);
  assert(unsigned(zero_extend(0x21e0ba, 52)) == 2220218);
  assert(unsigned(zero_extend(0x21e0bb, 52)) == 2220219);
  assert(unsigned(zero_extend(0x21e0bc, 52)) == 2220220);
  assert(unsigned(zero_extend(0x21e0bd, 52)) == 2220221);
  assert(unsigned(zero_extend(0x21e0be, 52)) == 2220222);
  assert(unsigned(zero_extend(0x21e0bf, 52)) == 2220223);
  assert(unsigned(zero_extend(0x21e0c0, 52)) == 2220224);
  assert(unsigned(zero_extend(0x21e0c1, 52)) == 2220225);
  assert(unsigned(zero_extend(0x21e0c2, 52)) == 2220226);
  assert(unsigned(zero_extend(0x21e0c3, 52)) == 2220227);
  assert(unsigned(zero_extend(0x21e0c4, 52)) == 2220228);
  assert(unsigned(zero_extend(0x21e0c5, 52)) == 2220229);
  assert(unsigned(zero_extend(0x21e0c6, 52)) == 2220230);
  assert(unsigned(zero_extend(0x21e0c8, 52)) == 2220232);
  assert(unsigned(zero_extend(0x21e0cc, 52)) == 2220236);
  assert(unsigned(zero_extend(0x21e0d0, 52)) == 2220240);
  assert(unsigned(zero_extend(0x21e0d4, 52)) == 2220244);
  assert(unsigned(zero_extend(0x21e0d8, 52)) == 2220248);
  assert(unsigned(zero_extend(0x21e0dc, 52)) == 2220252);
  assert(unsigned(zero_extend(0x21e0e0, 52)) == 2220256);
  assert(unsigned(zero_extend(0x21e0e4, 52)) == 2220260);
  assert(unsigned(zero_extend(0x21e0e8, 52)) == 2220264);
  assert(unsigned(zero_extend(0x21e0ec, 52)) == 2220268);
  assert(unsigned(zero_extend(0x21e0ed, 52)) == 2220269);
  assert(unsigned(zero_extend(0x21e0ee, 52)) == 2220270);
  assert(unsigned(zero_extend(0x21e0ef, 52)) == 2220271);
  assert(unsigned(zero_extend(0x21e0f0, 52)) == 2220272);
  assert(unsigned(zero_extend(0x21e0f1, 52)) == 2220273);
  assert(unsigned(zero_extend(0x21e0f2, 52)) == 2220274);
  assert(unsigned(zero_extend(0x21e0f3, 52)) == 2220275);
  assert(unsigned(zero_extend(0x21e0f4, 52)) == 2220276);
  assert(unsigned(zero_extend(0x21e0f5, 52)) == 2220277);
  assert(unsigned(zero_extend(0x21e0f6, 52)) == 2220278);
  assert(unsigned(zero_extend(0x21e0f7, 52)) == 2220279);
  assert(unsigned(zero_extend(0x21e0f8, 52)) == 2220280);
  assert(unsigned(zero_extend(0x21e0f9, 52)) == 2220281);
  assert(unsigned(zero_extend(0x21e0fa, 52)) == 2220282);
  assert(unsigned(zero_extend(0x21e0fb, 52)) == 2220283);
  assert(unsigned(zero_extend(0x21e0fc, 52)) == 2220284);
  assert(unsigned(zero_extend(0x21e0fd, 52)) == 2220285);
  assert(unsigned(zero_extend(0x21e0fe, 52)) == 2220286);
  assert(unsigned(zero_extend(0x21e0ff, 52)) == 2220287);
  assert(unsigned(zero_extend(0x21e100, 52)) == 2220288);
  assert(unsigned(zero_extend(0x21e101, 52)) == 2220289);
  assert(unsigned(zero_extend(0x21e102, 52)) == 2220290);
  assert(unsigned(zero_extend(0x21e103, 52)) == 2220291);
  assert(unsigned(zero_extend(0x21e104, 52)) == 2220292);
  assert(unsigned(zero_extend(0x21e105, 52)) == 2220293);
  assert(unsigned(zero_extend(0x21e106, 52)) == 2220294);
  assert(unsigned(zero_extend(0x21e107, 52)) == 2220295);
  assert(unsigned(zero_extend(0x21e108, 52)) == 2220296);
  assert(unsigned(zero_extend(0x21e109, 52)) == 2220297);
  assert(unsigned(zero_extend(0x21e10a, 52)) == 2220298);
  assert(unsigned(zero_extend(0x21e10b, 52)) == 2220299);
  assert(unsigned(zero_extend(0x21e10c, 52)) == 2220300);
  assert(unsigned(zero_extend(0x21e10d, 52)) == 2220301);
  assert(unsigned(zero_extend(0x21e10e, 52)) == 2220302);
  assert(unsigned(zero_extend(0x21e10f, 52)) == 2220303);
  assert(unsigned(zero_extend(0x21e110, 52)) == 2220304);
  assert(unsigned(zero_extend(0x21e111, 52)) == 2220305);
  assert(unsigned(zero_extend(0x21e112, 52)) == 2220306);
  assert(unsigned(zero_extend(0x21e113, 52)) == 2220307);
  assert(unsigned(zero_extend(0x21e114, 52)) == 2220308);
  assert(unsigned(zero_extend(0x21e115, 52)) == 2220309);
  assert(unsigned(zero_extend(0x21e116, 52)) == 2220310);
  assert(unsigned(zero_extend(0x21e117, 52)) == 2220311);
  assert(unsigned(zero_extend(0x21e118, 52)) == 2220312);
  assert(unsigned(zero_extend(0x21e119, 52)) == 2220313);
  assert(unsigned(zero_extend(0x21e11a, 52)) == 2220314);
  assert(unsigned(zero_extend(0x21e11b, 52)) == 2220315);
  assert(unsigned(zero_extend(0x21e11c, 52)) == 2220316);
  assert(unsigned(zero_extend(0x21e11d, 52)) == 2220317);
  assert(unsigned(zero_extend(0x21e11e, 52)) == 2220318);
  assert(unsigned(zero_extend(0x21e120, 52)) == 2220320);
  assert(unsigned(zero_extend(0x21e124, 52)) == 2220324);
  assert(unsigned(zero_extend(0x21e128, 52)) == 2220328);
  assert(unsigned(zero_extend(0x21e12c, 52)) == 2220332);
  assert(unsigned(zero_extend(0x21e130, 52)) == 2220336);
  assert(unsigned(zero_extend(0x21e134, 52)) == 2220340);
  assert(unsigned(zero_extend(0x21e138, 52)) == 2220344);
  assert(unsigned(zero_extend(0x21e13c, 52)) == 2220348);
  assert(unsigned(zero_extend(0x21e140, 52)) == 2220352);
  assert(unsigned(zero_extend(0x21e141, 52)) == 2220353);
  assert(unsigned(zero_extend(0x21e142, 52)) == 2220354);
  assert(unsigned(zero_extend(0x21e143, 52)) == 2220355);
  assert(unsigned(zero_extend(0x21e144, 52)) == 2220356);
  assert(unsigned(zero_extend(0x21e145, 52)) == 2220357);
  assert(unsigned(zero_extend(0x21e146, 52)) == 2220358);
  assert(unsigned(zero_extend(0x21e147, 52)) == 2220359);
  assert(unsigned(zero_extend(0x21e148, 52)) == 2220360);
  assert(unsigned(zero_extend(0x21e149, 52)) == 2220361);
  assert(unsigned(zero_extend(0x21e14a, 52)) == 2220362);
  assert(unsigned(zero_extend(0x21e14b, 52)) == 2220363);
  assert(unsigned(zero_extend(0x21e14c, 52)) == 2220364);
  assert(unsigned(zero_extend(0x21e14d, 52)) == 2220365);
  assert(unsigned(zero_extend(0x21e14e, 52)) == 2220366);
  assert(unsigned(zero_extend(0x21e14f, 52)) == 2220367);
  assert(unsigned(zero_extend(0x21e150, 52)) == 2220368);
  assert(unsigned(zero_extend(0x21e151, 52)) == 2220369);
  assert(unsigned(zero_extend(0x21e152, 52)) == 2220370);
  assert(unsigned(zero_extend(0x21e153, 52)) == 2220371);
  assert(unsigned(zero_extend(0x21e154, 52)) == 2220372);
  assert(unsigned(zero_extend(0x21e155, 52)) == 2220373);
  assert(unsigned(zero_extend(0x21e156, 52)) == 2220374);
  assert(unsigned(zero_extend(0x21e157, 52)) == 2220375);
  assert(unsigned(zero_extend(0x21e158, 52)) == 2220376);
  assert(unsigned(zero_extend(0x21e159, 52)) == 2220377);
  assert(unsigned(zero_extend(0x21e15a, 52)) == 2220378);
  assert(unsigned(zero_extend(0x21e15b, 52)) == 2220379);
  assert(unsigned(zero_extend(0x21e15c, 52)) == 2220380);
  assert(unsigned(zero_extend(0x21e160, 52)) == 2220384);
  assert(unsigned(zero_extend(0x21e164, 52)) == 2220388);
  assert(unsigned(zero_extend(0x21e168, 52)) == 2220392);
  assert(unsigned(zero_extend(0x21e16c, 52)) == 2220396);
  assert(unsigned(zero_extend(0x21e170, 52)) == 2220400);
  assert(unsigned(zero_extend(0x21e174, 52)) == 2220404);
  assert(unsigned(zero_extend(0x21e178, 52)) == 2220408);
  assert(unsigned(zero_extend(0x21e17c, 52)) == 2220412);
  assert(unsigned(zero_extend(0x21e180, 52)) == 2220416);
  assert(unsigned(zero_extend(0x21e184, 52)) == 2220420);
  assert(unsigned(zero_extend(0x21e188, 52)) == 2220424);
  assert(unsigned(zero_extend(0x21e18c, 52)) == 2220428);
  assert(unsigned(zero_extend(0x21e190, 52)) == 2220432);
  assert(unsigned(zero_extend(0x21e194, 52)) == 2220436);
  assert(unsigned(zero_extend(0x21e198, 52)) == 2220440);
  assert(unsigned(zero_extend(0x21e199, 52)) == 2220441);
  assert(unsigned(zero_extend(0x21e19a, 52)) == 2220442);
  assert(unsigned(zero_extend(0x21e19b, 52)) == 2220443);
  assert(unsigned(zero_extend(0x21e19c, 52)) == 2220444);
  assert(unsigned(zero_extend(0x21e19d, 52)) == 2220445);
  assert(unsigned(zero_extend(0x21e19e, 52)) == 2220446);
  assert(unsigned(zero_extend(0x21e19f, 52)) == 2220447);
  assert(unsigned(zero_extend(0x21e1a0, 52)) == 2220448);
  assert(unsigned(zero_extend(0x21e1a1, 52)) == 2220449);
  assert(unsigned(zero_extend(0x21e1a2, 52)) == 2220450);
  assert(unsigned(zero_extend(0x21e1a3, 52)) == 2220451);
  assert(unsigned(zero_extend(0x21e1a4, 52)) == 2220452);
  assert(unsigned(zero_extend(0x21e1a5, 52)) == 2220453);
  assert(unsigned(zero_extend(0x21e1a6, 52)) == 2220454);
  assert(unsigned(zero_extend(0x21e1a7, 52)) == 2220455);
  assert(unsigned(zero_extend(0x21e1a8, 52)) == 2220456);
  assert(unsigned(zero_extend(0x21e1a9, 52)) == 2220457);
  assert(unsigned(zero_extend(0x21e1aa, 52)) == 2220458);
  assert(unsigned(zero_extend(0x21e1ab, 52)) == 2220459);
  assert(unsigned(zero_extend(0x21e1ac, 52)) == 2220460);
  assert(unsigned(zero_extend(0x21e1ad, 52)) == 2220461);
  assert(unsigned(zero_extend(0x21e1ae, 52)) == 2220462);
  assert(unsigned(zero_extend(0x21e1af, 52)) == 2220463);
  assert(unsigned(zero_extend(0x21e1b0, 52)) == 2220464);
  assert(unsigned(zero_extend(0x21e600, 52)) == 2221568);
  assert(unsigned(zero_extend(0x21e604, 52)) == 2221572);
  assert(unsigned(zero_extend(0x21e608, 52)) == 2221576);
  assert(unsigned(zero_extend(0x21e60c, 52)) == 2221580);
  assert(unsigned(zero_extend(0x21e610, 52)) == 2221584);
  assert(unsigned(zero_extend(0x21e614, 52)) == 2221588);
  assert(unsigned(zero_extend(0x21e618, 52)) == 2221592);
  assert(unsigned(zero_extend(0x21e61c, 52)) == 2221596);
  assert(unsigned(zero_extend(0x21e620, 52)) == 2221600);
  assert(unsigned(zero_extend(0x21e624, 52)) == 2221604);
  assert(unsigned(zero_extend(0x21e628, 52)) == 2221608);
  assert(unsigned(zero_extend(0x21e62c, 52)) == 2221612);
  assert(unsigned(zero_extend(0x21e630, 52)) == 2221616);
  assert(unsigned(zero_extend(0x21e634, 52)) == 2221620);
  assert(unsigned(zero_extend(0x21e638, 52)) == 2221624);
  assert(unsigned(zero_extend(0x21e63c, 52)) == 2221628);
  assert(unsigned(zero_extend(0x21e640, 52)) == 2221632);
  assert(unsigned(zero_extend(0x21e644, 52)) == 2221636);
  assert(unsigned(zero_extend(0x21e648, 52)) == 2221640);
  assert(unsigned(zero_extend(0x21e64c, 52)) == 2221644);
  assert(unsigned(zero_extend(0x21e650, 52)) == 2221648);
  assert(unsigned(zero_extend(0x21e658, 52)) == 2221656);
  assert(unsigned(zero_extend(0x21e65c, 52)) == 2221660);
  assert(unsigned(zero_extend(0x21e660, 52)) == 2221664);
  assert(unsigned(zero_extend(0x21e664, 52)) == 2221668);
  assert(unsigned(zero_extend(0x21e668, 52)) == 2221672);
  assert(unsigned(zero_extend(0x21e66c, 52)) == 2221676);
  assert(unsigned(zero_extend(0x21e670, 52)) == 2221680);
  assert(unsigned(zero_extend(0x21e674, 52)) == 2221684);
  assert(unsigned(zero_extend(0x21e678, 52)) == 2221688);
  assert(unsigned(zero_extend(0x21e67c, 52)) == 2221692);
  assert(unsigned(zero_extend(0x21e680, 52)) == 2221696);
  assert(unsigned(zero_extend(0x21e684, 52)) == 2221700);
  assert(unsigned(zero_extend(0x21e688, 52)) == 2221704);
  assert(unsigned(zero_extend(0x21e68c, 52)) == 2221708);
  assert(unsigned(zero_extend(0x21e690, 52)) == 2221712);
  assert(unsigned(zero_extend(0x21e694, 52)) == 2221716);
  assert(unsigned(zero_extend(0x21e698, 52)) == 2221720);
  assert(unsigned(zero_extend(0x21e69c, 52)) == 2221724);
  assert(unsigned(zero_extend(0x21e6a0, 52)) == 2221728);
  assert(unsigned(zero_extend(0x21e6a4, 52)) == 2221732);
  assert(unsigned(zero_extend(0x21e6a8, 52)) == 2221736);
  assert(unsigned(zero_extend(0x21e6ac, 52)) == 2221740);
  assert(unsigned(zero_extend(0x21e6b0, 52)) == 2221744);
  assert(unsigned(zero_extend(0x21e6b4, 52)) == 2221748);
  assert(unsigned(zero_extend(0x21e6b8, 52)) == 2221752);
  assert(unsigned(zero_extend(0x21e6bc, 52)) == 2221756);
  assert(unsigned(zero_extend(0x21e6c0, 52)) == 2221760);
  assert(unsigned(zero_extend(0x21e6c4, 52)) == 2221764);
  assert(unsigned(zero_extend(0x21e6c8, 52)) == 2221768);
  assert(unsigned(zero_extend(0x21e6cc, 52)) == 2221772);
  assert(unsigned(zero_extend(0x21e6d0, 52)) == 2221776);
  assert(unsigned(zero_extend(0x21e6d4, 52)) == 2221780);
  assert(unsigned(zero_extend(0x21e6d8, 52)) == 2221784);
  assert(unsigned(zero_extend(0x21e6dc, 52)) == 2221788);
  assert(unsigned(zero_extend(0x21e6e0, 52)) == 2221792);
  assert(unsigned(zero_extend(0x21e6e4, 52)) == 2221796);
  assert(unsigned(zero_extend(0x21e6e8, 52)) == 2221800);
  assert(unsigned(zero_extend(0x21e6ec, 52)) == 2221804);
  assert(unsigned(zero_extend(0x21e6f0, 52)) == 2221808);
  assert(unsigned(zero_extend(0x21e6f4, 52)) == 2221812);
  assert(unsigned(zero_extend(0x21e6f8, 52)) == 2221816);
  assert(unsigned(zero_extend(0x21e6fc, 52)) == 2221820);
  assert(unsigned(zero_extend(0x21e700, 52)) == 2221824);
  assert(unsigned(zero_extend(0x21e704, 52)) == 2221828);
  assert(unsigned(zero_extend(0x21e708, 52)) == 2221832);
  assert(unsigned(zero_extend(0x21e70c, 52)) == 2221836);
  assert(unsigned(zero_extend(0x21e710, 52)) == 2221840);
  assert(unsigned(zero_extend(0x21e714, 52)) == 2221844);
  assert(unsigned(zero_extend(0x21e718, 52)) == 2221848);
  assert(unsigned(zero_extend(0x21e71c, 52)) == 2221852);
  assert(unsigned(zero_extend(0x21e720, 52)) == 2221856);
  assert(unsigned(zero_extend(0x21e724, 52)) == 2221860);
  assert(unsigned(zero_extend(0x21e728, 52)) == 2221864);
  assert(unsigned(zero_extend(0x21e72c, 52)) == 2221868);
  assert(unsigned(zero_extend(0x21e730, 52)) == 2221872);
  assert(unsigned(zero_extend(0x21e734, 52)) == 2221876);
  assert(unsigned(zero_extend(0x21e738, 52)) == 2221880);
  assert(unsigned(zero_extend(0x21e740, 52)) == 2221888);
  assert(unsigned(zero_extend(0x21eb90, 52)) == 2222992);
  assert(unsigned(zero_extend(0x21eb94, 52)) == 2222996);
  assert(unsigned(zero_extend(0x21eb98, 52)) == 2223000);
  assert(unsigned(zero_extend(0x21eb9c, 52)) == 2223004);
  assert(unsigned(zero_extend(0x21eba0, 52)) == 2223008);
  assert(unsigned(zero_extend(0x21eba4, 52)) == 2223012);
  assert(unsigned(zero_extend(0x21eba8, 52)) == 2223016);
  assert(unsigned(zero_extend(0x21ebc0, 52)) == 2223040);
  assert(unsigned(zero_extend(0x21ebc4, 52)) == 2223044);
  assert(unsigned(zero_extend(0x21ebc8, 52)) == 2223048);
  assert(unsigned(zero_extend(0x21ebd4, 52)) == 2223060);
  assert(unsigned(zero_extend(0x21ebd8, 52)) == 2223064);
  assert(unsigned(zero_extend(0x21ebe8, 52)) == 2223080);
  assert(unsigned(zero_extend(0x21ebec, 52)) == 2223084);
  assert(unsigned(zero_extend(0x21ebf0, 52)) == 2223088);
  assert(unsigned(zero_extend(0x21ebf4, 52)) == 2223092);
  assert(unsigned(zero_extend(0x21ebf8, 52)) == 2223096);
  assert(unsigned(zero_extend(0x21ebfc, 52)) == 2223100);
  assert(unsigned(zero_extend(0x21ec00, 52)) == 2223104);
  assert(unsigned(zero_extend(0x21ec18, 52)) == 2223128);
  assert(unsigned(zero_extend(0x21ec1c, 52)) == 2223132);
  assert(unsigned(zero_extend(0x21ec20, 52)) == 2223136);
  assert(unsigned(zero_extend(0x21ec24, 52)) == 2223140);
  assert(unsigned(zero_extend(0x21ec25, 52)) == 2223141);
  assert(unsigned(zero_extend(0x21ec26, 52)) == 2223142);
  assert(unsigned(zero_extend(0x21ec27, 52)) == 2223143);
  assert(unsigned(zero_extend(0x21ec28, 52)) == 2223144);
  assert(unsigned(zero_extend(0x21ec29, 52)) == 2223145);
  assert(unsigned(zero_extend(0x21ec2a, 52)) == 2223146);
  assert(unsigned(zero_extend(0x21ec2b, 52)) == 2223147);
  assert(unsigned(zero_extend(0x21ec2c, 52)) == 2223148);
  assert(unsigned(zero_extend(0x21ec2d, 52)) == 2223149);
  assert(unsigned(zero_extend(0x21ec2e, 52)) == 2223150);
  assert(unsigned(zero_extend(0x21ec2f, 52)) == 2223151);
  assert(unsigned(zero_extend(0x21ec30, 52)) == 2223152);
  assert(unsigned(zero_extend(0x21ec31, 52)) == 2223153);
  assert(unsigned(zero_extend(0x21ec32, 52)) == 2223154);
  assert(unsigned(zero_extend(0x21ec33, 52)) == 2223155);
  assert(unsigned(zero_extend(0x21ec34, 52)) == 2223156);
  assert(unsigned(zero_extend(0x21ec35, 52)) == 2223157);
  assert(unsigned(zero_extend(0x21ec36, 52)) == 2223158);
  assert(unsigned(zero_extend(0x21ec37, 52)) == 2223159);
  assert(unsigned(zero_extend(0x21ec38, 52)) == 2223160);
  assert(unsigned(zero_extend(0x21ec39, 52)) == 2223161);
  assert(unsigned(zero_extend(0x21ec3a, 52)) == 2223162);
  assert(unsigned(zero_extend(0x21ec48, 52)) == 2223176);
  assert(unsigned(zero_extend(0x21ec7c, 52)) == 2223228);
  assert(unsigned(zero_extend(0x21ec7d, 52)) == 2223229);
  assert(unsigned(zero_extend(0x21ec7e, 52)) == 2223230);
  assert(unsigned(zero_extend(0x21ec7f, 52)) == 2223231);
  assert(unsigned(zero_extend(0x21ec80, 52)) == 2223232);
  assert(unsigned(zero_extend(0x21ec81, 52)) == 2223233);
  assert(unsigned(zero_extend(0x21ec82, 52)) == 2223234);
  assert(unsigned(zero_extend(0x21ec83, 52)) == 2223235);
  assert(unsigned(zero_extend(0x21ec84, 52)) == 2223236);
  assert(unsigned(zero_extend(0x21ec85, 52)) == 2223237);
  assert(unsigned(zero_extend(0x21ec86, 52)) == 2223238);
  assert(unsigned(zero_extend(0x21ec87, 52)) == 2223239);
  assert(unsigned(zero_extend(0x21ec88, 52)) == 2223240);
  assert(unsigned(zero_extend(0x21ec89, 52)) == 2223241);
  assert(unsigned(zero_extend(0x21ec8a, 52)) == 2223242);
  assert(unsigned(zero_extend(0x21ec8b, 52)) == 2223243);
  assert(unsigned(zero_extend(0x21ec8c, 52)) == 2223244);
  assert(unsigned(zero_extend(0x21ec8d, 52)) == 2223245);
  assert(unsigned(zero_extend(0x21ec8e, 52)) == 2223246);
  assert(unsigned(zero_extend(0x21ec8f, 52)) == 2223247);
  assert(unsigned(zero_extend(0x21ec90, 52)) == 2223248);
  assert(unsigned(zero_extend(0x21ec91, 52)) == 2223249);
  assert(unsigned(zero_extend(0x21ec92, 52)) == 2223250);
  assert(unsigned(zero_extend(0x21f138, 52)) == 2224440);
  assert(unsigned(zero_extend(0x21f13c, 52)) == 2224444);
  assert(unsigned(zero_extend(0x21f140, 52)) == 2224448);
  assert(unsigned(zero_extend(0x21f144, 52)) == 2224452);
  assert(unsigned(zero_extend(0x21f148, 52)) == 2224456);
  assert(unsigned(zero_extend(0x21f14c, 52)) == 2224460);
  assert(unsigned(zero_extend(0x21f150, 52)) == 2224464);
  assert(unsigned(zero_extend(0x21f154, 52)) == 2224468);
  assert(unsigned(zero_extend(0x21f158, 52)) == 2224472);
  assert(unsigned(zero_extend(0x21f15c, 52)) == 2224476);
  assert(unsigned(zero_extend(0x21f160, 52)) == 2224480);
  assert(unsigned(zero_extend(0x21f190, 52)) == 2224528);
  assert(unsigned(zero_extend(0x21f194, 52)) == 2224532);
  assert(unsigned(zero_extend(0x21f198, 52)) == 2224536);
  assert(unsigned(zero_extend(0x21f19c, 52)) == 2224540);
  assert(unsigned(zero_extend(0x21f1a0, 52)) == 2224544);
  assert(unsigned(zero_extend(0x21f1a4, 52)) == 2224548);
  assert(unsigned(zero_extend(0x21f1a8, 52)) == 2224552);
  assert(unsigned(zero_extend(0x21f1ac, 52)) == 2224556);
  assert(unsigned(zero_extend(0x21f1b0, 52)) == 2224560);
  assert(unsigned(zero_extend(0x21f1b4, 52)) == 2224564);
  assert(unsigned(zero_extend(0x21f1b8, 52)) == 2224568);
  assert(unsigned(zero_extend(0x21f2d0, 52)) == 2224848);
  assert(unsigned(zero_extend(0x21f2d4, 52)) == 2224852);
  assert(unsigned(zero_extend(0x21f2d8, 52)) == 2224856);
  assert(unsigned(zero_extend(0x21f2dc, 52)) == 2224860);
  assert(unsigned(zero_extend(0x21f2e0, 52)) == 2224864);
  assert(unsigned(zero_extend(0x21f2e4, 52)) == 2224868);
  assert(unsigned(zero_extend(0x21f2e8, 52)) == 2224872);
  assert(unsigned(zero_extend(0x21f2ec, 52)) == 2224876);
  assert(unsigned(zero_extend(0x21f2f0, 52)) == 2224880);
  assert(unsigned(zero_extend(0x21f2f4, 52)) == 2224884);
  assert(unsigned(zero_extend(0x21f2f8, 52)) == 2224888);
  assert(unsigned(zero_extend(0x21f2fc, 52)) == 2224892);
  assert(unsigned(zero_extend(0x21f300, 52)) == 2224896);
  assert(unsigned(zero_extend(0x21f304, 52)) == 2224900);
  assert(unsigned(zero_extend(0x21f308, 52)) == 2224904);
  assert(unsigned(zero_extend(0x21f310, 52)) == 2224912);
  assert(unsigned(zero_extend(0x21f328, 52)) == 2224936);
  assert(unsigned(zero_extend(0x21f32c, 52)) == 2224940);
  assert(unsigned(zero_extend(0x21f330, 52)) == 2224944);
  assert(unsigned(zero_extend(0x21f334, 52)) == 2224948);
  assert(unsigned(zero_extend(0x21f338, 52)) == 2224952);
  assert(unsigned(zero_extend(0x21f33c, 52)) == 2224956);
  assert(unsigned(zero_extend(0x21f340, 52)) == 2224960);
  assert(unsigned(zero_extend(0x21f344, 52)) == 2224964);
  assert(unsigned(zero_extend(0x21f348, 52)) == 2224968);
  assert(unsigned(zero_extend(0x21f34c, 52)) == 2224972);
  assert(unsigned(zero_extend(0x21f350, 52)) == 2224976);
  assert(unsigned(zero_extend(0x21f354, 52)) == 2224980);
  assert(unsigned(zero_extend(0x21f358, 52)) == 2224984);
  assert(unsigned(zero_extend(0x21f35c, 52)) == 2224988);
  assert(unsigned(zero_extend(0x21f360, 52)) == 2224992);
  assert(unsigned(zero_extend(0x21f368, 52)) == 2225000);
  assert(unsigned(zero_extend(0x21f558, 52)) == 2225496);
  assert(unsigned(zero_extend(0x21f55c, 52)) == 2225500);
  assert(unsigned(zero_extend(0x21f560, 52)) == 2225504);
  assert(unsigned(zero_extend(0x21f564, 52)) == 2225508);
  assert(unsigned(zero_extend(0x21f568, 52)) == 2225512);
  assert(unsigned(zero_extend(0x21f5a0, 52)) == 2225568);
  assert(unsigned(zero_extend(0x21f5a8, 52)) == 2225576);
  assert(unsigned(zero_extend(0x21f5b0, 52)) == 2225584);
  assert(unsigned(zero_extend(0x21f5b4, 52)) == 2225588);
  assert(unsigned(zero_extend(0x21f5b8, 52)) == 2225592);
  assert(unsigned(zero_extend(0x21f5bc, 52)) == 2225596);
  assert(unsigned(zero_extend(0x21f5c0, 52)) == 2225600);
  assert(unsigned(zero_extend(0x21f5f8, 52)) == 2225656);
  assert(unsigned(zero_extend(0x21f600, 52)) == 2225664);
  assert(unsigned(zero_extend(0x221468, 52)) == 2233448);
  assert(unsigned(zero_extend(0x22146c, 52)) == 2233452);
  assert(unsigned(zero_extend(0x221470, 52)) == 2233456);
  assert(unsigned(zero_extend(0x221474, 52)) == 2233460);
  assert(unsigned(zero_extend(0x221478, 52)) == 2233464);
  assert(unsigned(zero_extend(0x22147c, 52)) == 2233468);
  assert(unsigned(zero_extend(0x221480, 52)) == 2233472);
  assert(unsigned(zero_extend(0x221484, 52)) == 2233476);
  assert(unsigned(zero_extend(0x221488, 52)) == 2233480);
  assert(unsigned(zero_extend(0x22148c, 52)) == 2233484);
  assert(unsigned(zero_extend(0x221490, 52)) == 2233488);
  assert(unsigned(zero_extend(0x221494, 52)) == 2233492);
  assert(unsigned(zero_extend(0x221498, 52)) == 2233496);
  assert(unsigned(zero_extend(0x22149c, 52)) == 2233500);
  assert(unsigned(zero_extend(0x2214a0, 52)) == 2233504);
  assert(unsigned(zero_extend(0x2214a4, 52)) == 2233508);
  assert(unsigned(zero_extend(0x2214a8, 52)) == 2233512);
  assert(unsigned(zero_extend(0x2214ac, 52)) == 2233516);
  assert(unsigned(zero_extend(0x2214b0, 52)) == 2233520);
  assert(unsigned(zero_extend(0x2214b4, 52)) == 2233524);
  assert(unsigned(zero_extend(0x2214b8, 52)) == 2233528);
  assert(unsigned(zero_extend(0x2214bc, 52)) == 2233532);
  assert(unsigned(zero_extend(0x2214c0, 52)) == 2233536);
  assert(unsigned(zero_extend(0x2214c4, 52)) == 2233540);
  assert(unsigned(zero_extend(0x2214c8, 52)) == 2233544);
  assert(unsigned(zero_extend(0x2214cc, 52)) == 2233548);
  assert(unsigned(zero_extend(0x2214d0, 52)) == 2233552);
  assert(unsigned(zero_extend(0x2214d4, 52)) == 2233556);
  assert(unsigned(zero_extend(0x2214d8, 52)) == 2233560);
  assert(unsigned(zero_extend(0x2214dc, 52)) == 2233564);
  assert(unsigned(zero_extend(0x2214e0, 52)) == 2233568);
  assert(unsigned(zero_extend(0x2214e4, 52)) == 2233572);
  assert(unsigned(zero_extend(0x2214e8, 52)) == 2233576);
  assert(unsigned(zero_extend(0x2214ec, 52)) == 2233580);
  assert(unsigned(zero_extend(0x2214f0, 52)) == 2233584);
  assert(unsigned(zero_extend(0x2214f4, 52)) == 2233588);
  assert(unsigned(zero_extend(0x2214f8, 52)) == 2233592);
  assert(unsigned(zero_extend(0x2214fc, 52)) == 2233596);
  assert(unsigned(zero_extend(0x221500, 52)) == 2233600);
  assert(unsigned(zero_extend(0x221504, 52)) == 2233604);
  assert(unsigned(zero_extend(0x221508, 52)) == 2233608);
  assert(unsigned(zero_extend(0x22150c, 52)) == 2233612);
  assert(unsigned(zero_extend(0x221510, 52)) == 2233616);
  assert(unsigned(zero_extend(0x221514, 52)) == 2233620);
  assert(unsigned(zero_extend(0x221518, 52)) == 2233624);
  assert(unsigned(zero_extend(0x22151c, 52)) == 2233628);
  assert(unsigned(zero_extend(0x221520, 52)) == 2233632);
  assert(unsigned(zero_extend(0x221524, 52)) == 2233636);
  assert(unsigned(zero_extend(0x221528, 52)) == 2233640);
  assert(unsigned(zero_extend(0x22152c, 52)) == 2233644);
  assert(unsigned(zero_extend(0x221530, 52)) == 2233648);
  assert(unsigned(zero_extend(0x221534, 52)) == 2233652);
  assert(unsigned(zero_extend(0x221538, 52)) == 2233656);
  assert(unsigned(zero_extend(0x22153c, 52)) == 2233660);
  assert(unsigned(zero_extend(0x221540, 52)) == 2233664);
  assert(unsigned(zero_extend(0x221544, 52)) == 2233668);
  assert(unsigned(zero_extend(0x221548, 52)) == 2233672);
  assert(unsigned(zero_extend(0x221568, 52)) == 2233704);
  assert(unsigned(zero_extend(0x22156c, 52)) == 2233708);
  assert(unsigned(zero_extend(0x221570, 52)) == 2233712);
  assert(unsigned(zero_extend(0x221574, 52)) == 2233716);
  assert(unsigned(zero_extend(0x221578, 52)) == 2233720);
  assert(unsigned(zero_extend(0x22157c, 52)) == 2233724);
  assert(unsigned(zero_extend(0x221580, 52)) == 2233728);
  assert(unsigned(zero_extend(0x221584, 52)) == 2233732);
  assert(unsigned(zero_extend(0x221588, 52)) == 2233736);
  assert(unsigned(zero_extend(0x22158c, 52)) == 2233740);
  assert(unsigned(zero_extend(0x221590, 52)) == 2233744);
  assert(unsigned(zero_extend(0x221594, 52)) == 2233748);
  assert(unsigned(zero_extend(0x221598, 52)) == 2233752);
  assert(unsigned(zero_extend(0x22159c, 52)) == 2233756);
  assert(unsigned(zero_extend(0x2215a0, 52)) == 2233760);
  assert(unsigned(zero_extend(0x2215a4, 52)) == 2233764);
  assert(unsigned(zero_extend(0x2215c0, 52)) == 2233792);
  assert(unsigned(zero_extend(0x2215c4, 52)) == 2233796);
  assert(unsigned(zero_extend(0x2215c8, 52)) == 2233800);
  assert(unsigned(zero_extend(0x2215cc, 52)) == 2233804);
  assert(unsigned(zero_extend(0x2215d0, 52)) == 2233808);
  assert(unsigned(zero_extend(0x2215d4, 52)) == 2233812);
  assert(unsigned(zero_extend(0x2215d8, 52)) == 2233816);
  assert(unsigned(zero_extend(0x2215dc, 52)) == 2233820);
  assert(unsigned(zero_extend(0x2215e0, 52)) == 2233824);
  assert(unsigned(zero_extend(0x2215e4, 52)) == 2233828);
  assert(unsigned(zero_extend(0x2215e8, 52)) == 2233832);
  assert(unsigned(zero_extend(0x2215ec, 52)) == 2233836);
  assert(unsigned(zero_extend(0x2215f0, 52)) == 2233840);
  assert(unsigned(zero_extend(0x2215f4, 52)) == 2233844);
  assert(unsigned(zero_extend(0x2215f8, 52)) == 2233848);
  assert(unsigned(zero_extend(0x2215fc, 52)) == 2233852);
  assert(unsigned(zero_extend(0x221680, 52)) == 2233984);
  assert(unsigned(zero_extend(0x221684, 52)) == 2233988);
  assert(unsigned(zero_extend(0x221688, 52)) == 2233992);
  assert(unsigned(zero_extend(0x22168c, 52)) == 2233996);
  assert(unsigned(zero_extend(0x221690, 52)) == 2234000);
  assert(unsigned(zero_extend(0x221694, 52)) == 2234004);
  assert(unsigned(zero_extend(0x221698, 52)) == 2234008);
  assert(unsigned(zero_extend(0x22169c, 52)) == 2234012);
  assert(unsigned(zero_extend(0x2216a0, 52)) == 2234016);
  assert(unsigned(zero_extend(0x2216a4, 52)) == 2234020);
  assert(unsigned(zero_extend(0x2216a8, 52)) == 2234024);
  assert(unsigned(zero_extend(0x2216ac, 52)) == 2234028);
  assert(unsigned(zero_extend(0x2216b0, 52)) == 2234032);
  assert(unsigned(zero_extend(0x2216b4, 52)) == 2234036);
  assert(unsigned(zero_extend(0x2216b8, 52)) == 2234040);
  assert(unsigned(zero_extend(0x2216d8, 52)) == 2234072);
  assert(unsigned(zero_extend(0x2216dc, 52)) == 2234076);
  assert(unsigned(zero_extend(0x2216e0, 52)) == 2234080);
  assert(unsigned(zero_extend(0x2216e4, 52)) == 2234084);
  assert(unsigned(zero_extend(0x2216e8, 52)) == 2234088);
  assert(unsigned(zero_extend(0x2216ec, 52)) == 2234092);
  assert(unsigned(zero_extend(0x2216f0, 52)) == 2234096);
  assert(unsigned(zero_extend(0x2216f4, 52)) == 2234100);
  assert(unsigned(zero_extend(0x2216f8, 52)) == 2234104);
  assert(unsigned(zero_extend(0x2216fc, 52)) == 2234108);
  assert(unsigned(zero_extend(0x221700, 52)) == 2234112);
  assert(unsigned(zero_extend(0x221704, 52)) == 2234116);
  assert(unsigned(zero_extend(0x221708, 52)) == 2234120);
  assert(unsigned(zero_extend(0x22170c, 52)) == 2234124);
  assert(unsigned(zero_extend(0x221710, 52)) == 2234128);
  assert(unsigned(zero_extend(0x221714, 52)) == 2234132);
  assert(unsigned(zero_extend(0x221718, 52)) == 2234136);
  assert(unsigned(zero_extend(0x221720, 52)) == 2234144);
  assert(unsigned(zero_extend(0x22174c, 52)) == 2234188);
  assert(unsigned(zero_extend(0x221750, 52)) == 2234192);
  assert(unsigned(zero_extend(0x221751, 52)) == 2234193);
  assert(unsigned(zero_extend(0x221752, 52)) == 2234194);
  assert(unsigned(zero_extend(0x221753, 52)) == 2234195);
  assert(unsigned(zero_extend(0x221754, 52)) == 2234196);
  assert(unsigned(zero_extend(0x221755, 52)) == 2234197);
  assert(unsigned(zero_extend(0x221756, 52)) == 2234198);
  assert(unsigned(zero_extend(0x221757, 52)) == 2234199);
  assert(unsigned(zero_extend(0x221758, 52)) == 2234200);
  assert(unsigned(zero_extend(0x221759, 52)) == 2234201);
  assert(unsigned(zero_extend(0x22175a, 52)) == 2234202);
  assert(unsigned(zero_extend(0x22175b, 52)) == 2234203);
  assert(unsigned(zero_extend(0x22175c, 52)) == 2234204);
  assert(unsigned(zero_extend(0x22175d, 52)) == 2234205);
  assert(unsigned(zero_extend(0x22175e, 52)) == 2234206);
  assert(unsigned(zero_extend(0x22175f, 52)) == 2234207);
  assert(unsigned(zero_extend(0x221760, 52)) == 2234208);
  assert(unsigned(zero_extend(0x221761, 52)) == 2234209);
  assert(unsigned(zero_extend(0x221764, 52)) == 2234212);
  assert(unsigned(zero_extend(0x221765, 52)) == 2234213);
  assert(unsigned(zero_extend(0x221766, 52)) == 2234214);
  assert(unsigned(zero_extend(0x221767, 52)) == 2234215);
  assert(unsigned(zero_extend(0x221768, 52)) == 2234216);
  assert(unsigned(zero_extend(0x221769, 52)) == 2234217);
  assert(unsigned(zero_extend(0x22176a, 52)) == 2234218);
  assert(unsigned(zero_extend(0x22176c, 52)) == 2234220);
  assert(unsigned(zero_extend(0x221770, 52)) == 2234224);
  assert(unsigned(zero_extend(0x221778, 52)) == 2234232);
  assert(unsigned(zero_extend(0x2217a8, 52)) == 2234280);
  assert(unsigned(zero_extend(0x2217a9, 52)) == 2234281);
  assert(unsigned(zero_extend(0x2217aa, 52)) == 2234282);
  assert(unsigned(zero_extend(0x2217ab, 52)) == 2234283);
  assert(unsigned(zero_extend(0x2217ac, 52)) == 2234284);
  assert(unsigned(zero_extend(0x2217ad, 52)) == 2234285);
  assert(unsigned(zero_extend(0x2217ae, 52)) == 2234286);
  assert(unsigned(zero_extend(0x2217af, 52)) == 2234287);
  assert(unsigned(zero_extend(0x2217b0, 52)) == 2234288);
  assert(unsigned(zero_extend(0x2217b1, 52)) == 2234289);
  assert(unsigned(zero_extend(0x2217b2, 52)) == 2234290);
  assert(unsigned(zero_extend(0x2217b3, 52)) == 2234291);
  assert(unsigned(zero_extend(0x2217b4, 52)) == 2234292);
  assert(unsigned(zero_extend(0x2217b5, 52)) == 2234293);
  assert(unsigned(zero_extend(0x2217b6, 52)) == 2234294);
  assert(unsigned(zero_extend(0x2217b7, 52)) == 2234295);
  assert(unsigned(zero_extend(0x2217b8, 52)) == 2234296);
  assert(unsigned(zero_extend(0x2217b9, 52)) == 2234297);
  assert(unsigned(zero_extend(0x2217bc, 52)) == 2234300);
  assert(unsigned(zero_extend(0x2217bd, 52)) == 2234301);
  assert(unsigned(zero_extend(0x2217be, 52)) == 2234302);
  assert(unsigned(zero_extend(0x2217bf, 52)) == 2234303);
  assert(unsigned(zero_extend(0x2217c0, 52)) == 2234304);
  assert(unsigned(zero_extend(0x2217c1, 52)) == 2234305);
  assert(unsigned(zero_extend(0x2217c2, 52)) == 2234306);
  assert(unsigned(zero_extend(0x221820, 52)) == 2234400);
  assert(unsigned(zero_extend(0x221824, 52)) == 2234404);
  assert(unsigned(zero_extend(0x221828, 52)) == 2234408);
  assert(unsigned(zero_extend(0x22182c, 52)) == 2234412);
  assert(unsigned(zero_extend(0x221830, 52)) == 2234416);
  assert(unsigned(zero_extend(0x221834, 52)) == 2234420);
  assert(unsigned(zero_extend(0x221838, 52)) == 2234424);
  assert(unsigned(zero_extend(0x22183c, 52)) == 2234428);
  assert(unsigned(zero_extend(0x221840, 52)) == 2234432);
  assert(unsigned(zero_extend(0x221844, 52)) == 2234436);
  assert(unsigned(zero_extend(0x221848, 52)) == 2234440);
  assert(unsigned(zero_extend(0x22184c, 52)) == 2234444);
  assert(unsigned(zero_extend(0x221850, 52)) == 2234448);
  assert(unsigned(zero_extend(0x221854, 52)) == 2234452);
  assert(unsigned(zero_extend(0x221858, 52)) == 2234456);
  assert(unsigned(zero_extend(0x22185c, 52)) == 2234460);
  assert(unsigned(zero_extend(0x221860, 52)) == 2234464);
  assert(unsigned(zero_extend(0x221864, 52)) == 2234468);
  assert(unsigned(zero_extend(0x221868, 52)) == 2234472);
  assert(unsigned(zero_extend(0x22186c, 52)) == 2234476);
  assert(unsigned(zero_extend(0x221870, 52)) == 2234480);
  assert(unsigned(zero_extend(0x221874, 52)) == 2234484);
  assert(unsigned(zero_extend(0x221878, 52)) == 2234488);
  assert(unsigned(zero_extend(0x22187c, 52)) == 2234492);
  assert(unsigned(zero_extend(0x221880, 52)) == 2234496);
  assert(unsigned(zero_extend(0x221884, 52)) == 2234500);
  assert(unsigned(zero_extend(0x221888, 52)) == 2234504);
  assert(unsigned(zero_extend(0x22188c, 52)) == 2234508);
  assert(unsigned(zero_extend(0x221890, 52)) == 2234512);
  assert(unsigned(zero_extend(0x221894, 52)) == 2234516);
  assert(unsigned(zero_extend(0x221898, 52)) == 2234520);
  assert(unsigned(zero_extend(0x22189c, 52)) == 2234524);
  assert(unsigned(zero_extend(0x2218a0, 52)) == 2234528);
  assert(unsigned(zero_extend(0x2218a4, 52)) == 2234532);
  assert(unsigned(zero_extend(0x2218a8, 52)) == 2234536);
  assert(unsigned(zero_extend(0x2218ac, 52)) == 2234540);
  assert(unsigned(zero_extend(0x2218b0, 52)) == 2234544);
  assert(unsigned(zero_extend(0x2218b4, 52)) == 2234548);
  assert(unsigned(zero_extend(0x2218b8, 52)) == 2234552);
  assert(unsigned(zero_extend(0x2218bc, 52)) == 2234556);
  assert(unsigned(zero_extend(0x2218c0, 52)) == 2234560);
  assert(unsigned(zero_extend(0x2218c4, 52)) == 2234564);
  assert(unsigned(zero_extend(0x2218c8, 52)) == 2234568);
  assert(unsigned(zero_extend(0x2218cc, 52)) == 2234572);
  assert(unsigned(zero_extend(0x2218d0, 52)) == 2234576);
  assert(unsigned(zero_extend(0x2218d4, 52)) == 2234580);
  assert(unsigned(zero_extend(0x2218d8, 52)) == 2234584);
  assert(unsigned(zero_extend(0x2218dc, 52)) == 2234588);
  assert(unsigned(zero_extend(0x2218e0, 52)) == 2234592);
  assert(unsigned(zero_extend(0x2218e4, 52)) == 2234596);
  assert(unsigned(zero_extend(0x2218e8, 52)) == 2234600);
  assert(unsigned(zero_extend(0x2218ec, 52)) == 2234604);
  assert(unsigned(zero_extend(0x2218f0, 52)) == 2234608);
  assert(unsigned(zero_extend(0x2218f4, 52)) == 2234612);
  assert(unsigned(zero_extend(0x2218f8, 52)) == 2234616);
  assert(unsigned(zero_extend(0x2218fc, 52)) == 2234620);
  assert(unsigned(zero_extend(0x221900, 52)) == 2234624);
  assert(unsigned(zero_extend(0x221904, 52)) == 2234628);
  assert(unsigned(zero_extend(0x221908, 52)) == 2234632);
  assert(unsigned(zero_extend(0x22190c, 52)) == 2234636);
  assert(unsigned(zero_extend(0x221910, 52)) == 2234640);
  assert(unsigned(zero_extend(0x221914, 52)) == 2234644);
  assert(unsigned(zero_extend(0x221918, 52)) == 2234648);
  assert(unsigned(zero_extend(0x22191c, 52)) == 2234652);
  assert(unsigned(zero_extend(0x221920, 52)) == 2234656);
  assert(unsigned(zero_extend(0x221924, 52)) == 2234660);
  assert(unsigned(zero_extend(0x221928, 52)) == 2234664);
  assert(unsigned(zero_extend(0x22192c, 52)) == 2234668);
  assert(unsigned(zero_extend(0x221930, 52)) == 2234672);
  assert(unsigned(zero_extend(0x221934, 52)) == 2234676);
  assert(unsigned(zero_extend(0x221938, 52)) == 2234680);
  assert(unsigned(zero_extend(0x22193c, 52)) == 2234684);
  assert(unsigned(zero_extend(0x221940, 52)) == 2234688);
  assert(unsigned(zero_extend(0x221944, 52)) == 2234692);
  assert(unsigned(zero_extend(0x221948, 52)) == 2234696);
  assert(unsigned(zero_extend(0x22194c, 52)) == 2234700);
  assert(unsigned(zero_extend(0x221950, 52)) == 2234704);
  assert(unsigned(zero_extend(0x221954, 52)) == 2234708);
  assert(unsigned(zero_extend(0x221958, 52)) == 2234712);
  assert(unsigned(zero_extend(0x22195c, 52)) == 2234716);
  assert(unsigned(zero_extend(0x221960, 52)) == 2234720);
  assert(unsigned(zero_extend(0x221964, 52)) == 2234724);
  assert(unsigned(zero_extend(0x221968, 52)) == 2234728);
  assert(unsigned(zero_extend(0x22196c, 52)) == 2234732);
  assert(unsigned(zero_extend(0x22196d, 52)) == 2234733);
  assert(unsigned(zero_extend(0x22196e, 52)) == 2234734);
  assert(unsigned(zero_extend(0x22196f, 52)) == 2234735);
  assert(unsigned(zero_extend(0x221970, 52)) == 2234736);
  assert(unsigned(zero_extend(0x221971, 52)) == 2234737);
  assert(unsigned(zero_extend(0x221972, 52)) == 2234738);
  assert(unsigned(zero_extend(0x221973, 52)) == 2234739);
  assert(unsigned(zero_extend(0x221974, 52)) == 2234740);
  assert(unsigned(zero_extend(0x221975, 52)) == 2234741);
  assert(unsigned(zero_extend(0x221976, 52)) == 2234742);
  assert(unsigned(zero_extend(0x221977, 52)) == 2234743);
  assert(unsigned(zero_extend(0x221978, 52)) == 2234744);
  assert(unsigned(zero_extend(0x221979, 52)) == 2234745);
  assert(unsigned(zero_extend(0x22197a, 52)) == 2234746);
  assert(unsigned(zero_extend(0x22197b, 52)) == 2234747);
  assert(unsigned(zero_extend(0x22197c, 52)) == 2234748);
  assert(unsigned(zero_extend(0x22197d, 52)) == 2234749);
  assert(unsigned(zero_extend(0x22197e, 52)) == 2234750);
  assert(unsigned(zero_extend(0x22197f, 52)) == 2234751);
  assert(unsigned(zero_extend(0x221980, 52)) == 2234752);
  assert(unsigned(zero_extend(0x221981, 52)) == 2234753);
  assert(unsigned(zero_extend(0x221982, 52)) == 2234754);
  assert(unsigned(zero_extend(0x221983, 52)) == 2234755);
  assert(unsigned(zero_extend(0x221984, 52)) == 2234756);
  assert(unsigned(zero_extend(0x221988, 52)) == 2234760);
  assert(unsigned(zero_extend(0x22198c, 52)) == 2234764);
  assert(unsigned(zero_extend(0x221990, 52)) == 2234768);
  assert(unsigned(zero_extend(0x221994, 52)) == 2234772);
  assert(unsigned(zero_extend(0x221998, 52)) == 2234776);
  assert(unsigned(zero_extend(0x22199c, 52)) == 2234780);
  assert(unsigned(zero_extend(0x2219a0, 52)) == 2234784);
  assert(unsigned(zero_extend(0x2219a4, 52)) == 2234788);
  assert(unsigned(zero_extend(0x2219a8, 52)) == 2234792);
  assert(unsigned(zero_extend(0x2219ac, 52)) == 2234796);
  assert(unsigned(zero_extend(0x2219b0, 52)) == 2234800);
  assert(unsigned(zero_extend(0x2219b4, 52)) == 2234804);
  assert(unsigned(zero_extend(0x2219b8, 52)) == 2234808);
  assert(unsigned(zero_extend(0x2219bc, 52)) == 2234812);
  assert(unsigned(zero_extend(0x2219c0, 52)) == 2234816);
  assert(unsigned(zero_extend(0x2219c4, 52)) == 2234820);
  assert(unsigned(zero_extend(0x2219c5, 52)) == 2234821);
  assert(unsigned(zero_extend(0x2219c6, 52)) == 2234822);
  assert(unsigned(zero_extend(0x2219c7, 52)) == 2234823);
  assert(unsigned(zero_extend(0x2219c8, 52)) == 2234824);
  assert(unsigned(zero_extend(0x2219c9, 52)) == 2234825);
  assert(unsigned(zero_extend(0x2219ca, 52)) == 2234826);
  assert(unsigned(zero_extend(0x2219cb, 52)) == 2234827);
  assert(unsigned(zero_extend(0x2219cc, 52)) == 2234828);
  assert(unsigned(zero_extend(0x2219cd, 52)) == 2234829);
  assert(unsigned(zero_extend(0x2219ce, 52)) == 2234830);
  assert(unsigned(zero_extend(0x2219cf, 52)) == 2234831);
  assert(unsigned(zero_extend(0x2219d0, 52)) == 2234832);
  assert(unsigned(zero_extend(0x2219d1, 52)) == 2234833);
  assert(unsigned(zero_extend(0x2219d2, 52)) == 2234834);
  assert(unsigned(zero_extend(0x2219d3, 52)) == 2234835);
  assert(unsigned(zero_extend(0x2219d4, 52)) == 2234836);
  assert(unsigned(zero_extend(0x2219d5, 52)) == 2234837);
  assert(unsigned(zero_extend(0x2219d6, 52)) == 2234838);
  assert(unsigned(zero_extend(0x2219d7, 52)) == 2234839);
  assert(unsigned(zero_extend(0x2219d8, 52)) == 2234840);
  assert(unsigned(zero_extend(0x2219d9, 52)) == 2234841);
  assert(unsigned(zero_extend(0x2219da, 52)) == 2234842);
  assert(unsigned(zero_extend(0x2219db, 52)) == 2234843);
  assert(unsigned(zero_extend(0x2219dc, 52)) == 2234844);
  assert(unsigned(zero_extend(0x2219e0, 52)) == 2234848);
  assert(unsigned(zero_extend(0x2219e4, 52)) == 2234852);
  assert(unsigned(zero_extend(0x2219e8, 52)) == 2234856);
  assert(unsigned(zero_extend(0x2219ec, 52)) == 2234860);
  assert(unsigned(zero_extend(0x2219f0, 52)) == 2234864);
  assert(unsigned(zero_extend(0x2219f4, 52)) == 2234868);
  assert(unsigned(zero_extend(0x2219f8, 52)) == 2234872);
  assert(unsigned(zero_extend(0x2219fc, 52)) == 2234876);
  assert(unsigned(zero_extend(0x221a00, 52)) == 2234880);
  assert(unsigned(zero_extend(0x221a04, 52)) == 2234884);
  assert(unsigned(zero_extend(0x221a08, 52)) == 2234888);
  assert(unsigned(zero_extend(0x221a0c, 52)) == 2234892);
  assert(unsigned(zero_extend(0x221a10, 52)) == 2234896);
  assert(unsigned(zero_extend(0x221a14, 52)) == 2234900);
  assert(unsigned(zero_extend(0x221a18, 52)) == 2234904);
  assert(unsigned(zero_extend(0x221a1c, 52)) == 2234908);
  assert(unsigned(zero_extend(0x221a20, 52)) == 2234912);
  assert(unsigned(zero_extend(0x221a24, 52)) == 2234916);
  assert(unsigned(zero_extend(0x221a28, 52)) == 2234920);
  assert(unsigned(zero_extend(0x221a2c, 52)) == 2234924);
  assert(unsigned(zero_extend(0x221a30, 52)) == 2234928);
  assert(unsigned(zero_extend(0x221a34, 52)) == 2234932);
  assert(unsigned(zero_extend(0x221a38, 52)) == 2234936);
  assert(unsigned(zero_extend(0x221a3c, 52)) == 2234940);
  assert(unsigned(zero_extend(0x221a40, 52)) == 2234944);
  assert(unsigned(zero_extend(0x221a44, 52)) == 2234948);
  assert(unsigned(zero_extend(0x221a48, 52)) == 2234952);
  assert(unsigned(zero_extend(0x221a4c, 52)) == 2234956);
  assert(unsigned(zero_extend(0x221a50, 52)) == 2234960);
  assert(unsigned(zero_extend(0x221a54, 52)) == 2234964);
  assert(unsigned(zero_extend(0x221a58, 52)) == 2234968);
  assert(unsigned(zero_extend(0x221a5c, 52)) == 2234972);
  assert(unsigned(zero_extend(0x221a60, 52)) == 2234976);
  assert(unsigned(zero_extend(0x221a64, 52)) == 2234980);
  assert(unsigned(zero_extend(0x221a68, 52)) == 2234984);
  assert(unsigned(zero_extend(0x221a6c, 52)) == 2234988);
  assert(unsigned(zero_extend(0x221a70, 52)) == 2234992);
  assert(unsigned(zero_extend(0x221a74, 52)) == 2234996);
  assert(unsigned(zero_extend(0x221a78, 52)) == 2235000);
  assert(unsigned(zero_extend(0x221a7c, 52)) == 2235004);
  assert(unsigned(zero_extend(0x221a80, 52)) == 2235008);
  assert(unsigned(zero_extend(0x221a84, 52)) == 2235012);
  assert(unsigned(zero_extend(0x221a88, 52)) == 2235016);
  assert(unsigned(zero_extend(0x221a8c, 52)) == 2235020);
  assert(unsigned(zero_extend(0x221a90, 52)) == 2235024);
  assert(unsigned(zero_extend(0x221a91, 52)) == 2235025);
  assert(unsigned(zero_extend(0x221a92, 52)) == 2235026);
  assert(unsigned(zero_extend(0x221a93, 52)) == 2235027);
  assert(unsigned(zero_extend(0x221a94, 52)) == 2235028);
  assert(unsigned(zero_extend(0x221a95, 52)) == 2235029);
  assert(unsigned(zero_extend(0x221a96, 52)) == 2235030);
  assert(unsigned(zero_extend(0x221a97, 52)) == 2235031);
  assert(unsigned(zero_extend(0x221a98, 52)) == 2235032);
  assert(unsigned(zero_extend(0x221a99, 52)) == 2235033);
  assert(unsigned(zero_extend(0x221a9a, 52)) == 2235034);
  assert(unsigned(zero_extend(0x221a9b, 52)) == 2235035);
  assert(unsigned(zero_extend(0x221a9c, 52)) == 2235036);
  assert(unsigned(zero_extend(0x221a9d, 52)) == 2235037);
  assert(unsigned(zero_extend(0x221a9e, 52)) == 2235038);
  assert(unsigned(zero_extend(0x221a9f, 52)) == 2235039);
  assert(unsigned(zero_extend(0x221aa0, 52)) == 2235040);
  assert(unsigned(zero_extend(0x221aa1, 52)) == 2235041);
  assert(unsigned(zero_extend(0x221aa2, 52)) == 2235042);
  assert(unsigned(zero_extend(0x221aa3, 52)) == 2235043);
  assert(unsigned(zero_extend(0x221aa4, 52)) == 2235044);
  assert(unsigned(zero_extend(0x221aa5, 52)) == 2235045);
  assert(unsigned(zero_extend(0x221aa6, 52)) == 2235046);
  assert(unsigned(zero_extend(0x221aa7, 52)) == 2235047);
  assert(unsigned(zero_extend(0x221aa8, 52)) == 2235048);
  assert(unsigned(zero_extend(0x221aa9, 52)) == 2235049);
  assert(unsigned(zero_extend(0x221aaa, 52)) == 2235050);
  assert(unsigned(zero_extend(0x221ae0, 52)) == 2235104);
  assert(unsigned(zero_extend(0x221ae8, 52)) == 2235112);
  assert(unsigned(zero_extend(0x221ae9, 52)) == 2235113);
  assert(unsigned(zero_extend(0x221aea, 52)) == 2235114);
  assert(unsigned(zero_extend(0x221aeb, 52)) == 2235115);
  assert(unsigned(zero_extend(0x221aec, 52)) == 2235116);
  assert(unsigned(zero_extend(0x221aed, 52)) == 2235117);
  assert(unsigned(zero_extend(0x221aee, 52)) == 2235118);
  assert(unsigned(zero_extend(0x221aef, 52)) == 2235119);
  assert(unsigned(zero_extend(0x221af0, 52)) == 2235120);
  assert(unsigned(zero_extend(0x221af1, 52)) == 2235121);
  assert(unsigned(zero_extend(0x221af2, 52)) == 2235122);
  assert(unsigned(zero_extend(0x221af3, 52)) == 2235123);
  assert(unsigned(zero_extend(0x221af4, 52)) == 2235124);
  assert(unsigned(zero_extend(0x221af5, 52)) == 2235125);
  assert(unsigned(zero_extend(0x221af6, 52)) == 2235126);
  assert(unsigned(zero_extend(0x221af7, 52)) == 2235127);
  assert(unsigned(zero_extend(0x221af8, 52)) == 2235128);
  assert(unsigned(zero_extend(0x221af9, 52)) == 2235129);
  assert(unsigned(zero_extend(0x221afa, 52)) == 2235130);
  assert(unsigned(zero_extend(0x221afb, 52)) == 2235131);
  assert(unsigned(zero_extend(0x221afc, 52)) == 2235132);
  assert(unsigned(zero_extend(0x221afd, 52)) == 2235133);
  assert(unsigned(zero_extend(0x221afe, 52)) == 2235134);
  assert(unsigned(zero_extend(0x221aff, 52)) == 2235135);
  assert(unsigned(zero_extend(0x221b00, 52)) == 2235136);
  assert(unsigned(zero_extend(0x221b01, 52)) == 2235137);
  assert(unsigned(zero_extend(0x221b02, 52)) == 2235138);
  assert(unsigned(zero_extend(0x221c08, 52)) == 2235400);
  assert(unsigned(zero_extend(0x221c0c, 52)) == 2235404);
  assert(unsigned(zero_extend(0x221c10, 52)) == 2235408);
  assert(unsigned(zero_extend(0x221c14, 52)) == 2235412);
  assert(unsigned(zero_extend(0x221c18, 52)) == 2235416);
  assert(unsigned(zero_extend(0x221c1c, 52)) == 2235420);
  assert(unsigned(zero_extend(0x221c20, 52)) == 2235424);
  assert(unsigned(zero_extend(0x221c24, 52)) == 2235428);
  assert(unsigned(zero_extend(0x221c28, 52)) == 2235432);
  assert(unsigned(zero_extend(0x221c2c, 52)) == 2235436);
  assert(unsigned(zero_extend(0x221c30, 52)) == 2235440);
  assert(unsigned(zero_extend(0x221c34, 52)) == 2235444);
  assert(unsigned(zero_extend(0x221c38, 52)) == 2235448);
  assert(unsigned(zero_extend(0x221c3c, 52)) == 2235452);
  assert(unsigned(zero_extend(0x221c40, 52)) == 2235456);
  assert(unsigned(zero_extend(0x221c44, 52)) == 2235460);
  assert(unsigned(zero_extend(0x221c48, 52)) == 2235464);
  assert(unsigned(zero_extend(0x221c4c, 52)) == 2235468);
  assert(unsigned(zero_extend(0x221c50, 52)) == 2235472);
  assert(unsigned(zero_extend(0x221c54, 52)) == 2235476);
  assert(unsigned(zero_extend(0x221c58, 52)) == 2235480);
  assert(unsigned(zero_extend(0x221c5c, 52)) == 2235484);
  assert(unsigned(zero_extend(0x221c60, 52)) == 2235488);
  assert(unsigned(zero_extend(0x221c64, 52)) == 2235492);
  assert(unsigned(zero_extend(0x221c68, 52)) == 2235496);
  assert(unsigned(zero_extend(0x221c6c, 52)) == 2235500);
  assert(unsigned(zero_extend(0x221c70, 52)) == 2235504);
  assert(unsigned(zero_extend(0x221c74, 52)) == 2235508);
  assert(unsigned(zero_extend(0x221c78, 52)) == 2235512);
  assert(unsigned(zero_extend(0x221c7c, 52)) == 2235516);
  assert(unsigned(zero_extend(0x221c80, 52)) == 2235520);
  assert(unsigned(zero_extend(0x221c84, 52)) == 2235524);
  assert(unsigned(zero_extend(0x221c88, 52)) == 2235528);
  assert(unsigned(zero_extend(0x221c8c, 52)) == 2235532);
  assert(unsigned(zero_extend(0x221c90, 52)) == 2235536);
  assert(unsigned(zero_extend(0x221c94, 52)) == 2235540);
  assert(unsigned(zero_extend(0x221c98, 52)) == 2235544);
  assert(unsigned(zero_extend(0x221c9c, 52)) == 2235548);
  assert(unsigned(zero_extend(0x221ca0, 52)) == 2235552);
  assert(unsigned(zero_extend(0x221ca4, 52)) == 2235556);
  assert(unsigned(zero_extend(0x221ca8, 52)) == 2235560);
  assert(unsigned(zero_extend(0x221cac, 52)) == 2235564);
  assert(unsigned(zero_extend(0x221cb0, 52)) == 2235568);
  assert(unsigned(zero_extend(0x221cb4, 52)) == 2235572);
  assert(unsigned(zero_extend(0x221cb8, 52)) == 2235576);
  assert(unsigned(zero_extend(0x221cbc, 52)) == 2235580);
  assert(unsigned(zero_extend(0x221cc0, 52)) == 2235584);
  assert(unsigned(zero_extend(0x221cc4, 52)) == 2235588);
  assert(unsigned(zero_extend(0x221cc8, 52)) == 2235592);
  assert(unsigned(zero_extend(0x221ccc, 52)) == 2235596);
  assert(unsigned(zero_extend(0x221cd0, 52)) == 2235600);
  assert(unsigned(zero_extend(0x221cd4, 52)) == 2235604);
  assert(unsigned(zero_extend(0x221cd8, 52)) == 2235608);
  assert(unsigned(zero_extend(0x221cdc, 52)) == 2235612);
  assert(unsigned(zero_extend(0x221ce0, 52)) == 2235616);
  assert(unsigned(zero_extend(0x221ce4, 52)) == 2235620);
  assert(unsigned(zero_extend(0x221ce8, 52)) == 2235624);
  assert(unsigned(zero_extend(0x221cec, 52)) == 2235628);
  assert(unsigned(zero_extend(0x221cf0, 52)) == 2235632);
  assert(unsigned(zero_extend(0x221cf4, 52)) == 2235636);
  assert(unsigned(zero_extend(0x221cf8, 52)) == 2235640);
  assert(unsigned(zero_extend(0x221cfc, 52)) == 2235644);
  assert(unsigned(zero_extend(0x221d00, 52)) == 2235648);
  assert(unsigned(zero_extend(0x221d04, 52)) == 2235652);
  assert(unsigned(zero_extend(0x221d08, 52)) == 2235656);
  assert(unsigned(zero_extend(0x221d09, 52)) == 2235657);
  assert(unsigned(zero_extend(0x221d0a, 52)) == 2235658);
  assert(unsigned(zero_extend(0x221d0b, 52)) == 2235659);
  assert(unsigned(zero_extend(0x221d0c, 52)) == 2235660);
  assert(unsigned(zero_extend(0x221d0d, 52)) == 2235661);
  assert(unsigned(zero_extend(0x221d0e, 52)) == 2235662);
  assert(unsigned(zero_extend(0x221d0f, 52)) == 2235663);
  assert(unsigned(zero_extend(0x221d10, 52)) == 2235664);
  assert(unsigned(zero_extend(0x221d11, 52)) == 2235665);
  assert(unsigned(zero_extend(0x221d14, 52)) == 2235668);
  assert(unsigned(zero_extend(0x221d15, 52)) == 2235669);
  assert(unsigned(zero_extend(0x221d16, 52)) == 2235670);
  assert(unsigned(zero_extend(0x221d17, 52)) == 2235671);
  assert(unsigned(zero_extend(0x221d18, 52)) == 2235672);
  assert(unsigned(zero_extend(0x221d19, 52)) == 2235673);
  assert(unsigned(zero_extend(0x221d1a, 52)) == 2235674);
  assert(unsigned(zero_extend(0x221d1b, 52)) == 2235675);
  assert(unsigned(zero_extend(0x221d1c, 52)) == 2235676);
  assert(unsigned(zero_extend(0x221d1d, 52)) == 2235677);
  assert(unsigned(zero_extend(0x221d1e, 52)) == 2235678);
  assert(unsigned(zero_extend(0x221d1f, 52)) == 2235679);
  assert(unsigned(zero_extend(0x221d20, 52)) == 2235680);
  assert(unsigned(zero_extend(0x221d21, 52)) == 2235681);
  assert(unsigned(zero_extend(0x221d22, 52)) == 2235682);
  assert(unsigned(zero_extend(0x221d23, 52)) == 2235683);
  assert(unsigned(zero_extend(0x221d24, 52)) == 2235684);
  assert(unsigned(zero_extend(0x221d25, 52)) == 2235685);
  assert(unsigned(zero_extend(0x221d26, 52)) == 2235686);
  assert(unsigned(zero_extend(0x221d27, 52)) == 2235687);
  assert(unsigned(zero_extend(0x221d28, 52)) == 2235688);
  assert(unsigned(zero_extend(0x221d29, 52)) == 2235689);
  assert(unsigned(zero_extend(0x221d2a, 52)) == 2235690);
  assert(unsigned(zero_extend(0x221d2b, 52)) == 2235691);
  assert(unsigned(zero_extend(0x221d2c, 52)) == 2235692);
  assert(unsigned(zero_extend(0x221d2d, 52)) == 2235693);
  assert(unsigned(zero_extend(0x221d30, 52)) == 2235696);
  assert(unsigned(zero_extend(0x221d31, 52)) == 2235697);
  assert(unsigned(zero_extend(0x221d32, 52)) == 2235698);
  assert(unsigned(zero_extend(0x221d33, 52)) == 2235699);
  assert(unsigned(zero_extend(0x221d34, 52)) == 2235700);
  assert(unsigned(zero_extend(0x221d35, 52)) == 2235701);
  assert(unsigned(zero_extend(0x221d36, 52)) == 2235702);
  assert(unsigned(zero_extend(0x221d37, 52)) == 2235703);
  assert(unsigned(zero_extend(0x221d38, 52)) == 2235704);
  assert(unsigned(zero_extend(0x221d39, 52)) == 2235705);
  assert(unsigned(zero_extend(0x221d3c, 52)) == 2235708);
  assert(unsigned(zero_extend(0x221d3d, 52)) == 2235709);
  assert(unsigned(zero_extend(0x221d3e, 52)) == 2235710);
  assert(unsigned(zero_extend(0x221d3f, 52)) == 2235711);
  assert(unsigned(zero_extend(0x221d40, 52)) == 2235712);
  assert(unsigned(zero_extend(0x221d41, 52)) == 2235713);
  assert(unsigned(zero_extend(0x221d42, 52)) == 2235714);
  assert(unsigned(zero_extend(0x221d43, 52)) == 2235715);
  assert(unsigned(zero_extend(0x221d44, 52)) == 2235716);
  assert(unsigned(zero_extend(0x221d45, 52)) == 2235717);
  assert(unsigned(zero_extend(0x221d48, 52)) == 2235720);
  assert(unsigned(zero_extend(0x221d49, 52)) == 2235721);
  assert(unsigned(zero_extend(0x221d4a, 52)) == 2235722);
  assert(unsigned(zero_extend(0x221d4b, 52)) == 2235723);
  assert(unsigned(zero_extend(0x221d4c, 52)) == 2235724);
  assert(unsigned(zero_extend(0x221d4d, 52)) == 2235725);
  assert(unsigned(zero_extend(0x221d4e, 52)) == 2235726);
  assert(unsigned(zero_extend(0x221d4f, 52)) == 2235727);
  assert(unsigned(zero_extend(0x221d50, 52)) == 2235728);
  assert(unsigned(zero_extend(0x221d51, 52)) == 2235729);
  assert(unsigned(zero_extend(0x221d54, 52)) == 2235732);
  assert(unsigned(zero_extend(0x221d55, 52)) == 2235733);
  assert(unsigned(zero_extend(0x221d56, 52)) == 2235734);
  assert(unsigned(zero_extend(0x221d57, 52)) == 2235735);
  assert(unsigned(zero_extend(0x221d58, 52)) == 2235736);
  assert(unsigned(zero_extend(0x221d59, 52)) == 2235737);
  assert(unsigned(zero_extend(0x221d5a, 52)) == 2235738);
  assert(unsigned(zero_extend(0x221d5b, 52)) == 2235739);
  assert(unsigned(zero_extend(0x221d5c, 52)) == 2235740);
  assert(unsigned(zero_extend(0x221d5d, 52)) == 2235741);
  assert(unsigned(zero_extend(0x221d60, 52)) == 2235744);
  assert(unsigned(zero_extend(0x221d61, 52)) == 2235745);
  assert(unsigned(zero_extend(0x221d62, 52)) == 2235746);
  assert(unsigned(zero_extend(0x221d63, 52)) == 2235747);
  assert(unsigned(zero_extend(0x221d64, 52)) == 2235748);
  assert(unsigned(zero_extend(0x221d65, 52)) == 2235749);
  assert(unsigned(zero_extend(0x221d66, 52)) == 2235750);
  assert(unsigned(zero_extend(0x221d67, 52)) == 2235751);
  assert(unsigned(zero_extend(0x221d68, 52)) == 2235752);
  assert(unsigned(zero_extend(0x221d69, 52)) == 2235753);
  assert(unsigned(zero_extend(0x221d6c, 52)) == 2235756);
  assert(unsigned(zero_extend(0x221d6d, 52)) == 2235757);
  assert(unsigned(zero_extend(0x221d6e, 52)) == 2235758);
  assert(unsigned(zero_extend(0x221d6f, 52)) == 2235759);
  assert(unsigned(zero_extend(0x221d70, 52)) == 2235760);
  assert(unsigned(zero_extend(0x221d71, 52)) == 2235761);
  assert(unsigned(zero_extend(0x221d72, 52)) == 2235762);
  assert(unsigned(zero_extend(0x221d73, 52)) == 2235763);
  assert(unsigned(zero_extend(0x221d74, 52)) == 2235764);
  assert(unsigned(zero_extend(0x221d75, 52)) == 2235765);
  assert(unsigned(zero_extend(0x221d76, 52)) == 2235766);
  assert(unsigned(zero_extend(0x221d77, 52)) == 2235767);
  assert(unsigned(zero_extend(0x221d78, 52)) == 2235768);
  assert(unsigned(zero_extend(0x221d79, 52)) == 2235769);
  assert(unsigned(zero_extend(0x221d7a, 52)) == 2235770);
  assert(unsigned(zero_extend(0x221d7b, 52)) == 2235771);
  assert(unsigned(zero_extend(0x221d7c, 52)) == 2235772);
  assert(unsigned(zero_extend(0x221d7d, 52)) == 2235773);
  assert(unsigned(zero_extend(0x221d7e, 52)) == 2235774);
  assert(unsigned(zero_extend(0x221d7f, 52)) == 2235775);
  assert(unsigned(zero_extend(0x221d80, 52)) == 2235776);
  assert(unsigned(zero_extend(0x221d81, 52)) == 2235777);
  assert(unsigned(zero_extend(0x221d82, 52)) == 2235778);
  assert(unsigned(zero_extend(0x221d83, 52)) == 2235779);
  assert(unsigned(zero_extend(0x221d84, 52)) == 2235780);
  assert(unsigned(zero_extend(0x221d85, 52)) == 2235781);
  assert(unsigned(zero_extend(0x221d88, 52)) == 2235784);
  assert(unsigned(zero_extend(0x221d89, 52)) == 2235785);
  assert(unsigned(zero_extend(0x221d8a, 52)) == 2235786);
  assert(unsigned(zero_extend(0x221d8b, 52)) == 2235787);
  assert(unsigned(zero_extend(0x221d8c, 52)) == 2235788);
  assert(unsigned(zero_extend(0x221d8d, 52)) == 2235789);
  assert(unsigned(zero_extend(0x221d8e, 52)) == 2235790);
  assert(unsigned(zero_extend(0x221d8f, 52)) == 2235791);
  assert(unsigned(zero_extend(0x221d90, 52)) == 2235792);
  assert(unsigned(zero_extend(0x221d91, 52)) == 2235793);
  assert(unsigned(zero_extend(0x221d94, 52)) == 2235796);
  assert(unsigned(zero_extend(0x221d95, 52)) == 2235797);
  assert(unsigned(zero_extend(0x221d96, 52)) == 2235798);
  assert(unsigned(zero_extend(0x221d97, 52)) == 2235799);
  assert(unsigned(zero_extend(0x221d98, 52)) == 2235800);
  assert(unsigned(zero_extend(0x221d99, 52)) == 2235801);
  assert(unsigned(zero_extend(0x221d9a, 52)) == 2235802);
  assert(unsigned(zero_extend(0x221d9b, 52)) == 2235803);
  assert(unsigned(zero_extend(0x221d9c, 52)) == 2235804);
  assert(unsigned(zero_extend(0x221d9d, 52)) == 2235805);
  assert(unsigned(zero_extend(0x221da0, 52)) == 2235808);
  assert(unsigned(zero_extend(0x221da1, 52)) == 2235809);
  assert(unsigned(zero_extend(0x221da2, 52)) == 2235810);
  assert(unsigned(zero_extend(0x221da3, 52)) == 2235811);
  assert(unsigned(zero_extend(0x221da4, 52)) == 2235812);
  assert(unsigned(zero_extend(0x221da5, 52)) == 2235813);
  assert(unsigned(zero_extend(0x221da6, 52)) == 2235814);
  assert(unsigned(zero_extend(0x221da7, 52)) == 2235815);
  assert(unsigned(zero_extend(0x221da8, 52)) == 2235816);
  assert(unsigned(zero_extend(0x221da9, 52)) == 2235817);
  assert(unsigned(zero_extend(0x221dac, 52)) == 2235820);
  assert(unsigned(zero_extend(0x221dad, 52)) == 2235821);
  assert(unsigned(zero_extend(0x221dae, 52)) == 2235822);
  assert(unsigned(zero_extend(0x221daf, 52)) == 2235823);
  assert(unsigned(zero_extend(0x221db0, 52)) == 2235824);
  assert(unsigned(zero_extend(0x221db1, 52)) == 2235825);
  assert(unsigned(zero_extend(0x221db2, 52)) == 2235826);
  assert(unsigned(zero_extend(0x221db3, 52)) == 2235827);
  assert(unsigned(zero_extend(0x221db4, 52)) == 2235828);
  assert(unsigned(zero_extend(0x221db5, 52)) == 2235829);
  assert(unsigned(zero_extend(0x221f68, 52)) == 2236264);
  assert(unsigned(zero_extend(0x221f6c, 52)) == 2236268);
  assert(unsigned(zero_extend(0x221f70, 52)) == 2236272);
  assert(unsigned(zero_extend(0x221f74, 52)) == 2236276);
  assert(unsigned(zero_extend(0x221f78, 52)) == 2236280);
  assert(unsigned(zero_extend(0x221f7c, 52)) == 2236284);
  assert(unsigned(zero_extend(0x221f90, 52)) == 2236304);
  assert(unsigned(zero_extend(0x221f98, 52)) == 2236312);
  assert(unsigned(zero_extend(0x221fc0, 52)) == 2236352);
  assert(unsigned(zero_extend(0x221fc4, 52)) == 2236356);
  assert(unsigned(zero_extend(0x221fc8, 52)) == 2236360);
  assert(unsigned(zero_extend(0x221fcc, 52)) == 2236364);
  assert(unsigned(zero_extend(0x221fd0, 52)) == 2236368);
  assert(unsigned(zero_extend(0x221fd4, 52)) == 2236372);
  assert(unsigned(zero_extend(0x221fe8, 52)) == 2236392);
  assert(unsigned(zero_extend(0x221ff0, 52)) == 2236400);
  assert(unsigned(zero_extend(0x221ff8, 52)) == 2236408);
  assert(unsigned(zero_extend(0x222050, 52)) == 2236496);
  assert(unsigned(zero_extend(0x222088, 52)) == 2236552);
  assert(unsigned(zero_extend(0x22208c, 52)) == 2236556);
  assert(unsigned(zero_extend(0x222090, 52)) == 2236560);
  assert(unsigned(zero_extend(0x222098, 52)) == 2236568);
  assert(unsigned(zero_extend(0x2220e0, 52)) == 2236640);
  assert(unsigned(zero_extend(0x2220e4, 52)) == 2236644);
  assert(unsigned(zero_extend(0x2220e8, 52)) == 2236648);
  assert(unsigned(zero_extend(0x2220f0, 52)) == 2236656);
  assert(unsigned(zero_extend(0x222330, 52)) == 2237232);
  assert(unsigned(zero_extend(0x222334, 52)) == 2237236);
  assert(unsigned(zero_extend(0x222338, 52)) == 2237240);
  assert(unsigned(zero_extend(0x22233c, 52)) == 2237244);
  assert(unsigned(zero_extend(0x222340, 52)) == 2237248);
  assert(unsigned(zero_extend(0x222344, 52)) == 2237252);
  assert(unsigned(zero_extend(0x222348, 52)) == 2237256);
  assert(unsigned(zero_extend(0x22234c, 52)) == 2237260);
  assert(unsigned(zero_extend(0x222350, 52)) == 2237264);
  assert(unsigned(zero_extend(0x222354, 52)) == 2237268);
  assert(unsigned(zero_extend(0x222358, 52)) == 2237272);
  assert(unsigned(zero_extend(0x22235c, 52)) == 2237276);
  assert(unsigned(zero_extend(0x222360, 52)) == 2237280);
  assert(unsigned(zero_extend(0x222364, 52)) == 2237284);
  assert(unsigned(zero_extend(0x222368, 52)) == 2237288);
  assert(unsigned(zero_extend(0x22236c, 52)) == 2237292);
  assert(unsigned(zero_extend(0x222370, 52)) == 2237296);
  assert(unsigned(zero_extend(0x222374, 52)) == 2237300);
  assert(unsigned(zero_extend(0x222378, 52)) == 2237304);
  assert(unsigned(zero_extend(0x22237c, 52)) == 2237308);
  assert(unsigned(zero_extend(0x222380, 52)) == 2237312);
  assert(unsigned(zero_extend(0x222384, 52)) == 2237316);
  assert(unsigned(zero_extend(0x222388, 52)) == 2237320);
  assert(unsigned(zero_extend(0x22238c, 52)) == 2237324);
  assert(unsigned(zero_extend(0x222390, 52)) == 2237328);
  assert(unsigned(zero_extend(0x222394, 52)) == 2237332);
  assert(unsigned(zero_extend(0x222398, 52)) == 2237336);
  assert(unsigned(zero_extend(0x22239c, 52)) == 2237340);
  assert(unsigned(zero_extend(0x2223a0, 52)) == 2237344);
  assert(unsigned(zero_extend(0x2223a4, 52)) == 2237348);
  assert(unsigned(zero_extend(0x2223a8, 52)) == 2237352);
  assert(unsigned(zero_extend(0x2223ac, 52)) == 2237356);
  assert(unsigned(zero_extend(0x2223b0, 52)) == 2237360);
  assert(unsigned(zero_extend(0x2223b4, 52)) == 2237364);
  assert(unsigned(zero_extend(0x2223b8, 52)) == 2237368);
  assert(unsigned(zero_extend(0x2223bc, 52)) == 2237372);
  assert(unsigned(zero_extend(0x2223c0, 52)) == 2237376);
  assert(unsigned(zero_extend(0x2223c4, 52)) == 2237380);
  assert(unsigned(zero_extend(0x2223c8, 52)) == 2237384);
  assert(unsigned(zero_extend(0x2223cc, 52)) == 2237388);
  assert(unsigned(zero_extend(0x2223d0, 52)) == 2237392);
  assert(unsigned(zero_extend(0x2223d4, 52)) == 2237396);
  assert(unsigned(zero_extend(0x2223d8, 52)) == 2237400);
  assert(unsigned(zero_extend(0x2223dc, 52)) == 2237404);
  assert(unsigned(zero_extend(0x2223e0, 52)) == 2237408);
  assert(unsigned(zero_extend(0x2223e4, 52)) == 2237412);
  assert(unsigned(zero_extend(0x2223e8, 52)) == 2237416);
  assert(unsigned(zero_extend(0x2223ec, 52)) == 2237420);
  assert(unsigned(zero_extend(0x2223f0, 52)) == 2237424);
  assert(unsigned(zero_extend(0x2223f4, 52)) == 2237428);
  assert(unsigned(zero_extend(0x2223f8, 52)) == 2237432);
  assert(unsigned(zero_extend(0x2223fc, 52)) == 2237436);
  assert(unsigned(zero_extend(0x222400, 52)) == 2237440);
  assert(unsigned(zero_extend(0x222404, 52)) == 2237444);
  assert(unsigned(zero_extend(0x222408, 52)) == 2237448);
  assert(unsigned(zero_extend(0x22240c, 52)) == 2237452);
  assert(unsigned(zero_extend(0x222410, 52)) == 2237456);
  assert(unsigned(zero_extend(0x222414, 52)) == 2237460);
  assert(unsigned(zero_extend(0x222418, 52)) == 2237464);
  assert(unsigned(zero_extend(0x222420, 52)) == 2237472);
  assert(unsigned(zero_extend(0x223078, 52)) == 2240632);
  assert(unsigned(zero_extend(0x22307c, 52)) == 2240636);
  assert(unsigned(zero_extend(0x223080, 52)) == 2240640);
  assert(unsigned(zero_extend(0x223084, 52)) == 2240644);
  assert(unsigned(zero_extend(0x223088, 52)) == 2240648);
  assert(unsigned(zero_extend(0x22308c, 52)) == 2240652);
  assert(unsigned(zero_extend(0x223090, 52)) == 2240656);
  assert(unsigned(zero_extend(0x223094, 52)) == 2240660);
  assert(unsigned(zero_extend(0x223098, 52)) == 2240664);
  assert(unsigned(zero_extend(0x22309c, 52)) == 2240668);
  assert(unsigned(zero_extend(0x2230a0, 52)) == 2240672);
  assert(unsigned(zero_extend(0x2230a4, 52)) == 2240676);
  assert(unsigned(zero_extend(0x2230a8, 52)) == 2240680);
  assert(unsigned(zero_extend(0x2230ac, 52)) == 2240684);
  assert(unsigned(zero_extend(0x2230b0, 52)) == 2240688);
  assert(unsigned(zero_extend(0x2230b4, 52)) == 2240692);
  assert(unsigned(zero_extend(0x2230b8, 52)) == 2240696);
  assert(unsigned(zero_extend(0x2230bc, 52)) == 2240700);
  assert(unsigned(zero_extend(0x2230c0, 52)) == 2240704);
  assert(unsigned(zero_extend(0x2230c4, 52)) == 2240708);
  assert(unsigned(zero_extend(0x2230c8, 52)) == 2240712);
  assert(unsigned(zero_extend(0x2230cc, 52)) == 2240716);
  assert(unsigned(zero_extend(0x2230d0, 52)) == 2240720);
  assert(unsigned(zero_extend(0x2230d4, 52)) == 2240724);
  assert(unsigned(zero_extend(0x2230d8, 52)) == 2240728);
  assert(unsigned(zero_extend(0x2230dc, 52)) == 2240732);
  assert(unsigned(zero_extend(0x2230e0, 52)) == 2240736);
  assert(unsigned(zero_extend(0x2230e4, 52)) == 2240740);
  assert(unsigned(zero_extend(0x2230e8, 52)) == 2240744);
  assert(unsigned(zero_extend(0x2230ec, 52)) == 2240748);
  assert(unsigned(zero_extend(0x2230f0, 52)) == 2240752);
  assert(unsigned(zero_extend(0x2230f4, 52)) == 2240756);
  assert(unsigned(zero_extend(0x2230f8, 52)) == 2240760);
  assert(unsigned(zero_extend(0x2230fc, 52)) == 2240764);
  assert(unsigned(zero_extend(0x223100, 52)) == 2240768);
  assert(unsigned(zero_extend(0x223104, 52)) == 2240772);
  assert(unsigned(zero_extend(0x223108, 52)) == 2240776);
  assert(unsigned(zero_extend(0x22310c, 52)) == 2240780);
  assert(unsigned(zero_extend(0x223110, 52)) == 2240784);
  assert(unsigned(zero_extend(0x223114, 52)) == 2240788);
  assert(unsigned(zero_extend(0x223118, 52)) == 2240792);
  assert(unsigned(zero_extend(0x22311c, 52)) == 2240796);
  assert(unsigned(zero_extend(0x223120, 52)) == 2240800);
  assert(unsigned(zero_extend(0x223124, 52)) == 2240804);
  assert(unsigned(zero_extend(0x223128, 52)) == 2240808);
  assert(unsigned(zero_extend(0x22312c, 52)) == 2240812);
  assert(unsigned(zero_extend(0x223130, 52)) == 2240816);
  assert(unsigned(zero_extend(0x223134, 52)) == 2240820);
  assert(unsigned(zero_extend(0x223138, 52)) == 2240824);
  assert(unsigned(zero_extend(0x22313c, 52)) == 2240828);
  assert(unsigned(zero_extend(0x223140, 52)) == 2240832);
  assert(unsigned(zero_extend(0x223144, 52)) == 2240836);
  assert(unsigned(zero_extend(0x223148, 52)) == 2240840);
  assert(unsigned(zero_extend(0x22314c, 52)) == 2240844);
  assert(unsigned(zero_extend(0x223150, 52)) == 2240848);
  assert(unsigned(zero_extend(0x223154, 52)) == 2240852);
  assert(unsigned(zero_extend(0x223158, 52)) == 2240856);
  assert(unsigned(zero_extend(0x22315c, 52)) == 2240860);
  assert(unsigned(zero_extend(0x223160, 52)) == 2240864);
  assert(unsigned(zero_extend(0x223164, 52)) == 2240868);
  assert(unsigned(zero_extend(0x223168, 52)) == 2240872);
  assert(unsigned(zero_extend(0x22316c, 52)) == 2240876);
  assert(unsigned(zero_extend(0x223170, 52)) == 2240880);
  assert(unsigned(zero_extend(0x223174, 52)) == 2240884);
  assert(unsigned(zero_extend(0x223178, 52)) == 2240888);
  assert(unsigned(zero_extend(0x22317c, 52)) == 2240892);
  assert(unsigned(zero_extend(0x223180, 52)) == 2240896);
  assert(unsigned(zero_extend(0x223184, 52)) == 2240900);
  assert(unsigned(zero_extend(0x223188, 52)) == 2240904);
  assert(unsigned(zero_extend(0x223430, 52)) == 2241584);
  assert(unsigned(zero_extend(0x223434, 52)) == 2241588);
  assert(unsigned(zero_extend(0x223438, 52)) == 2241592);
  assert(unsigned(zero_extend(0x22343c, 52)) == 2241596);
  assert(unsigned(zero_extend(0x223440, 52)) == 2241600);
  assert(unsigned(zero_extend(0x223444, 52)) == 2241604);
  assert(unsigned(zero_extend(0x223448, 52)) == 2241608);
  assert(unsigned(zero_extend(0x22344c, 52)) == 2241612);
  assert(unsigned(zero_extend(0x223450, 52)) == 2241616);
  assert(unsigned(zero_extend(0x223454, 52)) == 2241620);
  assert(unsigned(zero_extend(0x223458, 52)) == 2241624);
  assert(unsigned(zero_extend(0x22345c, 52)) == 2241628);
  assert(unsigned(zero_extend(0x223460, 52)) == 2241632);
  assert(unsigned(zero_extend(0x223464, 52)) == 2241636);
  assert(unsigned(zero_extend(0x223468, 52)) == 2241640);
  assert(unsigned(zero_extend(0x223488, 52)) == 2241672);
  assert(unsigned(zero_extend(0x22348c, 52)) == 2241676);
  assert(unsigned(zero_extend(0x223490, 52)) == 2241680);
  assert(unsigned(zero_extend(0x223494, 52)) == 2241684);
  assert(unsigned(zero_extend(0x223498, 52)) == 2241688);
  assert(unsigned(zero_extend(0x22349c, 52)) == 2241692);
  assert(unsigned(zero_extend(0x2234a0, 52)) == 2241696);
  assert(unsigned(zero_extend(0x2234a4, 52)) == 2241700);
  assert(unsigned(zero_extend(0x2234a8, 52)) == 2241704);
  assert(unsigned(zero_extend(0x2234ac, 52)) == 2241708);
  assert(unsigned(zero_extend(0x2234b0, 52)) == 2241712);
  assert(unsigned(zero_extend(0x2234b4, 52)) == 2241716);
  assert(unsigned(zero_extend(0x2234b8, 52)) == 2241720);
  assert(unsigned(zero_extend(0x2234bc, 52)) == 2241724);
  assert(unsigned(zero_extend(0x2234c0, 52)) == 2241728);
  assert(unsigned(zero_extend(0x2234e8, 52)) == 2241768);
  assert(unsigned(zero_extend(0x2234ec, 52)) == 2241772);
  assert(unsigned(zero_extend(0x2234f0, 52)) == 2241776);
  assert(unsigned(zero_extend(0x2234f4, 52)) == 2241780);
  assert(unsigned(zero_extend(0x2234f8, 52)) == 2241784);
  assert(unsigned(zero_extend(0x2234fc, 52)) == 2241788);
  assert(unsigned(zero_extend(0x223500, 52)) == 2241792);
  assert(unsigned(zero_extend(0x223504, 52)) == 2241796);
  assert(unsigned(zero_extend(0x223508, 52)) == 2241800);
  assert(unsigned(zero_extend(0x22350c, 52)) == 2241804);
  assert(unsigned(zero_extend(0x223510, 52)) == 2241808);
  assert(unsigned(zero_extend(0x223514, 52)) == 2241812);
  assert(unsigned(zero_extend(0x223518, 52)) == 2241816);
  assert(unsigned(zero_extend(0x22351c, 52)) == 2241820);
  assert(unsigned(zero_extend(0x223520, 52)) == 2241824);
  assert(unsigned(zero_extend(0x223524, 52)) == 2241828);
  assert(unsigned(zero_extend(0x223528, 52)) == 2241832);
  assert(unsigned(zero_extend(0x22352c, 52)) == 2241836);
  assert(unsigned(zero_extend(0x223530, 52)) == 2241840);
  assert(unsigned(zero_extend(0x223534, 52)) == 2241844);
  assert(unsigned(zero_extend(0x223538, 52)) == 2241848);
  assert(unsigned(zero_extend(0x22353c, 52)) == 2241852);
  assert(unsigned(zero_extend(0x223540, 52)) == 2241856);
  assert(unsigned(zero_extend(0x223544, 52)) == 2241860);
  assert(unsigned(zero_extend(0x223548, 52)) == 2241864);
  assert(unsigned(zero_extend(0x22354c, 52)) == 2241868);
  assert(unsigned(zero_extend(0x223550, 52)) == 2241872);
  assert(unsigned(zero_extend(0x223554, 52)) == 2241876);
  assert(unsigned(zero_extend(0x223558, 52)) == 2241880);
  assert(unsigned(zero_extend(0x22355c, 52)) == 2241884);
  assert(unsigned(zero_extend(0x223560, 52)) == 2241888);
  assert(unsigned(zero_extend(0x223564, 52)) == 2241892);
  assert(unsigned(zero_extend(0x223568, 52)) == 2241896);
  assert(unsigned(zero_extend(0x22356c, 52)) == 2241900);
  assert(unsigned(zero_extend(0x223570, 52)) == 2241904);
  assert(unsigned(zero_extend(0x223574, 52)) == 2241908);
  assert(unsigned(zero_extend(0x223578, 52)) == 2241912);
  assert(unsigned(zero_extend(0x22357c, 52)) == 2241916);
  assert(unsigned(zero_extend(0x223580, 52)) == 2241920);
  assert(unsigned(zero_extend(0x223584, 52)) == 2241924);
  assert(unsigned(zero_extend(0x223588, 52)) == 2241928);
  assert(unsigned(zero_extend(0x22358c, 52)) == 2241932);
  assert(unsigned(zero_extend(0x223590, 52)) == 2241936);
  assert(unsigned(zero_extend(0x223594, 52)) == 2241940);
  assert(unsigned(zero_extend(0x223598, 52)) == 2241944);
  assert(unsigned(zero_extend(0x22359c, 52)) == 2241948);
  assert(unsigned(zero_extend(0x2235a0, 52)) == 2241952);
  assert(unsigned(zero_extend(0x2235a4, 52)) == 2241956);
  assert(unsigned(zero_extend(0x2235a8, 52)) == 2241960);
  assert(unsigned(zero_extend(0x2235ac, 52)) == 2241964);
  assert(unsigned(zero_extend(0x2235b0, 52)) == 2241968);
  assert(unsigned(zero_extend(0x2235b4, 52)) == 2241972);
  assert(unsigned(zero_extend(0x2235b8, 52)) == 2241976);
  assert(unsigned(zero_extend(0x2235bc, 52)) == 2241980);
  assert(unsigned(zero_extend(0x2235c0, 52)) == 2241984);
  assert(unsigned(zero_extend(0x2235c4, 52)) == 2241988);
  assert(unsigned(zero_extend(0x2235c8, 52)) == 2241992);
  assert(unsigned(zero_extend(0x2235cc, 52)) == 2241996);
  assert(unsigned(zero_extend(0x2235d0, 52)) == 2242000);
  assert(unsigned(zero_extend(0x2235d4, 52)) == 2242004);
  assert(unsigned(zero_extend(0x2235d8, 52)) == 2242008);
  assert(unsigned(zero_extend(0x2235dc, 52)) == 2242012);
  assert(unsigned(zero_extend(0x2235e0, 52)) == 2242016);
  assert(unsigned(zero_extend(0x2235e1, 52)) == 2242017);
  assert(unsigned(zero_extend(0x2235e2, 52)) == 2242018);
  assert(unsigned(zero_extend(0x2235e3, 52)) == 2242019);
  assert(unsigned(zero_extend(0x2235e4, 52)) == 2242020);
  assert(unsigned(zero_extend(0x2235e5, 52)) == 2242021);
  assert(unsigned(zero_extend(0x2235e6, 52)) == 2242022);
  assert(unsigned(zero_extend(0x2235e7, 52)) == 2242023);
  assert(unsigned(zero_extend(0x2235e8, 52)) == 2242024);
  assert(unsigned(zero_extend(0x2235e9, 52)) == 2242025);
  assert(unsigned(zero_extend(0x2235ea, 52)) == 2242026);
  assert(unsigned(zero_extend(0x2235eb, 52)) == 2242027);
  assert(unsigned(zero_extend(0x2235ec, 52)) == 2242028);
  assert(unsigned(zero_extend(0x2235ed, 52)) == 2242029);
  assert(unsigned(zero_extend(0x2235ee, 52)) == 2242030);
  assert(unsigned(zero_extend(0x2235ef, 52)) == 2242031);
  assert(unsigned(zero_extend(0x2235f0, 52)) == 2242032);
  assert(unsigned(zero_extend(0x2235f1, 52)) == 2242033);
  assert(unsigned(zero_extend(0x2235f2, 52)) == 2242034);
  assert(unsigned(zero_extend(0x2235f3, 52)) == 2242035);
  assert(unsigned(zero_extend(0x2235f4, 52)) == 2242036);
  assert(unsigned(zero_extend(0x2235f5, 52)) == 2242037);
  assert(unsigned(zero_extend(0x2235f6, 52)) == 2242038);
  assert(unsigned(zero_extend(0x2235f7, 52)) == 2242039);
  assert(unsigned(zero_extend(0x2235f8, 52)) == 2242040);
  assert(unsigned(zero_extend(0x2235fc, 52)) == 2242044);
  assert(unsigned(zero_extend(0x223600, 52)) == 2242048);
  assert(unsigned(zero_extend(0x223604, 52)) == 2242052);
  assert(unsigned(zero_extend(0x223608, 52)) == 2242056);
  assert(unsigned(zero_extend(0x22360c, 52)) == 2242060);
  assert(unsigned(zero_extend(0x223610, 52)) == 2242064);
  assert(unsigned(zero_extend(0x223614, 52)) == 2242068);
  assert(unsigned(zero_extend(0x223618, 52)) == 2242072);
  assert(unsigned(zero_extend(0x22361c, 52)) == 2242076);
  assert(unsigned(zero_extend(0x223620, 52)) == 2242080);
  assert(unsigned(zero_extend(0x223624, 52)) == 2242084);
  assert(unsigned(zero_extend(0x223628, 52)) == 2242088);
  assert(unsigned(zero_extend(0x22362c, 52)) == 2242092);
  assert(unsigned(zero_extend(0x223630, 52)) == 2242096);
  assert(unsigned(zero_extend(0x223638, 52)) == 2242104);
  assert(unsigned(zero_extend(0x223639, 52)) == 2242105);
  assert(unsigned(zero_extend(0x22363a, 52)) == 2242106);
  assert(unsigned(zero_extend(0x22363b, 52)) == 2242107);
  assert(unsigned(zero_extend(0x22363c, 52)) == 2242108);
  assert(unsigned(zero_extend(0x22363d, 52)) == 2242109);
  assert(unsigned(zero_extend(0x22363e, 52)) == 2242110);
  assert(unsigned(zero_extend(0x22363f, 52)) == 2242111);
  assert(unsigned(zero_extend(0x223640, 52)) == 2242112);
  assert(unsigned(zero_extend(0x223641, 52)) == 2242113);
  assert(unsigned(zero_extend(0x223642, 52)) == 2242114);
  assert(unsigned(zero_extend(0x223643, 52)) == 2242115);
  assert(unsigned(zero_extend(0x223644, 52)) == 2242116);
  assert(unsigned(zero_extend(0x223645, 52)) == 2242117);
  assert(unsigned(zero_extend(0x223646, 52)) == 2242118);
  assert(unsigned(zero_extend(0x223647, 52)) == 2242119);
  assert(unsigned(zero_extend(0x223648, 52)) == 2242120);
  assert(unsigned(zero_extend(0x223649, 52)) == 2242121);
  assert(unsigned(zero_extend(0x22364a, 52)) == 2242122);
  assert(unsigned(zero_extend(0x22364b, 52)) == 2242123);
  assert(unsigned(zero_extend(0x22364c, 52)) == 2242124);
  assert(unsigned(zero_extend(0x22364d, 52)) == 2242125);
  assert(unsigned(zero_extend(0x22364e, 52)) == 2242126);
  assert(unsigned(zero_extend(0x22364f, 52)) == 2242127);
  assert(unsigned(zero_extend(0x223650, 52)) == 2242128);
  assert(unsigned(zero_extend(0x223658, 52)) == 2242136);
  assert(unsigned(zero_extend(0x2c000, 52)) == 180224);
  assert(unsigned(zero_extend(0x2c46000, 52)) == 46424064);
  assert(unsigned(zero_extend(0x2c46001, 52)) == 46424065);
  assert(unsigned(zero_extend(0x2c46002, 52)) == 46424066);
  assert(unsigned(zero_extend(0x2c46003, 52)) == 46424067);
  assert(unsigned(zero_extend(0x2c46004, 52)) == 46424068);
  assert(unsigned(zero_extend(0x2c46005, 52)) == 46424069);
  assert(unsigned(zero_extend(0x2c46006, 52)) == 46424070);
  assert(unsigned(zero_extend(0x2c46007, 52)) == 46424071);
  assert(unsigned(zero_extend(0x2c46008, 52)) == 46424072);
  assert(unsigned(zero_extend(0x2c46009, 52)) == 46424073);
  assert(unsigned(zero_extend(0x2c4600a, 52)) == 46424074);
  assert(unsigned(zero_extend(0x2c4600b, 52)) == 46424075);
  assert(unsigned(zero_extend(0x2c4600c, 52)) == 46424076);
  assert(unsigned(zero_extend(0x2c4600d, 52)) == 46424077);
  assert(unsigned(zero_extend(0x2c4600e, 52)) == 46424078);
  assert(unsigned(zero_extend(0x2c4600f, 52)) == 46424079);
  assert(unsigned(zero_extend(0x2c46030, 52)) == 46424112);
  assert(unsigned(zero_extend(0x2c46031, 52)) == 46424113);
  assert(unsigned(zero_extend(0x2c46032, 52)) == 46424114);
  assert(unsigned(zero_extend(0x2c46033, 52)) == 46424115);
  assert(unsigned(zero_extend(0x2c46034, 52)) == 46424116);
  assert(unsigned(zero_extend(0x2c46035, 52)) == 46424117);
  assert(unsigned(zero_extend(0x2c46036, 52)) == 46424118);
  assert(unsigned(zero_extend(0x2c46037, 52)) == 46424119);
  assert(unsigned(zero_extend(0x2c46038, 52)) == 46424120);
  assert(unsigned(zero_extend(0x2c46039, 52)) == 46424121);
  assert(unsigned(zero_extend(0x2c4603a, 52)) == 46424122);
  assert(unsigned(zero_extend(0x2c4603b, 52)) == 46424123);
  assert(unsigned(zero_extend(0x2c4603c, 52)) == 46424124);
  assert(unsigned(zero_extend(0x2c4603d, 52)) == 46424125);
  assert(unsigned(zero_extend(0x2c4603e, 52)) == 46424126);
  assert(unsigned(zero_extend(0x2c4603f, 52)) == 46424127);
  assert(unsigned(zero_extend(0x2c46040, 52)) == 46424128);
  assert(unsigned(zero_extend(0x2c46041, 52)) == 46424129);
  assert(unsigned(zero_extend(0x2c46042, 52)) == 46424130);
  assert(unsigned(zero_extend(0x2c46043, 52)) == 46424131);
  assert(unsigned(zero_extend(0x2c46044, 52)) == 46424132);
  assert(unsigned(zero_extend(0x2c46045, 52)) == 46424133);
}