summaryrefslogtreecommitdiff
path: root/test/builtins/unsigned3.sail
blob: 5b1bc6c29a2a4deb2eeed1665f3c26dde5a490b1 (plain)
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
3004
3005
default Order dec

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

val flip_mask : forall 'len 'v, 'v >= 0. (vector('v, dec, bit), atom('len)) -> vector('len, dec, bit)

function flip_mask(v, len) = len ^ v

function main (() : unit) -> unit = {
  assert(unsigned(flip_mask(0x2c4604c, 52)) == 46424140);
  assert(unsigned(flip_mask(0x2c4604d, 52)) == 46424141);
  assert(unsigned(flip_mask(0x2c4604e, 52)) == 46424142);
  assert(unsigned(flip_mask(0x2c4604f, 52)) == 46424143);
  assert(unsigned(flip_mask(0x2c46050, 52)) == 46424144);
  assert(unsigned(flip_mask(0x2c46054, 52)) == 46424148);
  assert(unsigned(flip_mask(0x2c46058, 52)) == 46424152);
  assert(unsigned(flip_mask(0x2c4605c, 52)) == 46424156);
  assert(unsigned(flip_mask(0x2c46065, 52)) == 46424165);
  assert(unsigned(flip_mask(0x2c46066, 52)) == 46424166);
  assert(unsigned(flip_mask(0x2c46067, 52)) == 46424167);
  assert(unsigned(flip_mask(0x2c4606a, 52)) == 46424170);
  assert(unsigned(flip_mask(0x2c4606b, 52)) == 46424171);
  assert(unsigned(flip_mask(0x2c4606c, 52)) == 46424172);
  assert(unsigned(flip_mask(0x2e30000, 52)) == 48431104);
  assert(unsigned(flip_mask(0x2e30004, 52)) == 48431108);
  assert(unsigned(flip_mask(0x2e30008, 52)) == 48431112);
  assert(unsigned(flip_mask(0x2e30010, 52)) == 48431120);
  assert(unsigned(flip_mask(0x2e30014, 52)) == 48431124);
  assert(unsigned(flip_mask(0x2e30018, 52)) == 48431128);
  assert(unsigned(flip_mask(0x2e30020, 52)) == 48431136);
  assert(unsigned(flip_mask(0x2e30024, 52)) == 48431140);
  assert(unsigned(flip_mask(0x2e30028, 52)) == 48431144);
  assert(unsigned(flip_mask(0x2e30030, 52)) == 48431152);
  assert(unsigned(flip_mask(0x2e30034, 52)) == 48431156);
  assert(unsigned(flip_mask(0x2e30038, 52)) == 48431160);
  assert(unsigned(flip_mask(0x2e3003c, 52)) == 48431164);
  assert(unsigned(flip_mask(0x2e30040, 52)) == 48431168);
  assert(unsigned(flip_mask(0x2e30044, 52)) == 48431172);
  assert(unsigned(flip_mask(0x2e30048, 52)) == 48431176);
  assert(unsigned(flip_mask(0x2e3004c, 52)) == 48431180);
  assert(unsigned(flip_mask(0x2e30050, 52)) == 48431184);
  assert(unsigned(flip_mask(0x2e30054, 52)) == 48431188);
  assert(unsigned(flip_mask(0x2e30058, 52)) == 48431192);
  assert(unsigned(flip_mask(0x2e3005c, 52)) == 48431196);
  assert(unsigned(flip_mask(0x2e30060, 52)) == 48431200);
  assert(unsigned(flip_mask(0x2e30064, 52)) == 48431204);
  assert(unsigned(flip_mask(0x2e30068, 52)) == 48431208);
  assert(unsigned(flip_mask(0x2e3006c, 52)) == 48431212);
  assert(unsigned(flip_mask(0x2e30070, 52)) == 48431216);
  assert(unsigned(flip_mask(0x2e30074, 52)) == 48431220);
  assert(unsigned(flip_mask(0x2e30078, 52)) == 48431224);
  assert(unsigned(flip_mask(0x2e3007c, 52)) == 48431228);
  assert(unsigned(flip_mask(0x2e30080, 52)) == 48431232);
  assert(unsigned(flip_mask(0x2e30084, 52)) == 48431236);
  assert(unsigned(flip_mask(0x2e30088, 52)) == 48431240);
  assert(unsigned(flip_mask(0x2e3008c, 52)) == 48431244);
  assert(unsigned(flip_mask(0x2e34000, 52)) == 48447488);
  assert(unsigned(flip_mask(0x2e34004, 52)) == 48447492);
  assert(unsigned(flip_mask(0x2e34008, 52)) == 48447496);
  assert(unsigned(flip_mask(0x2e34010, 52)) == 48447504);
  assert(unsigned(flip_mask(0x2e34014, 52)) == 48447508);
  assert(unsigned(flip_mask(0x2e34018, 52)) == 48447512);
  assert(unsigned(flip_mask(0x2e34020, 52)) == 48447520);
  assert(unsigned(flip_mask(0x2e34024, 52)) == 48447524);
  assert(unsigned(flip_mask(0x2e34028, 52)) == 48447528);
  assert(unsigned(flip_mask(0x2e34030, 52)) == 48447536);
  assert(unsigned(flip_mask(0x2e34034, 52)) == 48447540);
  assert(unsigned(flip_mask(0x2e34038, 52)) == 48447544);
  assert(unsigned(flip_mask(0x2e34040, 52)) == 48447552);
  assert(unsigned(flip_mask(0x2e34044, 52)) == 48447556);
  assert(unsigned(flip_mask(0x2e34048, 52)) == 48447560);
  assert(unsigned(flip_mask(0x2e34050, 52)) == 48447568);
  assert(unsigned(flip_mask(0x2e34054, 52)) == 48447572);
  assert(unsigned(flip_mask(0x2e34058, 52)) == 48447576);
  assert(unsigned(flip_mask(0x2e3405c, 52)) == 48447580);
  assert(unsigned(flip_mask(0x2e34060, 52)) == 48447584);
  assert(unsigned(flip_mask(0x2e34064, 52)) == 48447588);
  assert(unsigned(flip_mask(0x2e34068, 52)) == 48447592);
  assert(unsigned(flip_mask(0x2e3406c, 52)) == 48447596);
  assert(unsigned(flip_mask(0x2e34070, 52)) == 48447600);
  assert(unsigned(flip_mask(0x2e34074, 52)) == 48447604);
  assert(unsigned(flip_mask(0x2e34078, 52)) == 48447608);
  assert(unsigned(flip_mask(0x2e3407c, 52)) == 48447612);
  assert(unsigned(flip_mask(0x2e34080, 52)) == 48447616);
  assert(unsigned(flip_mask(0x2e34084, 52)) == 48447620);
  assert(unsigned(flip_mask(0x2e34088, 52)) == 48447624);
  assert(unsigned(flip_mask(0x2e3408c, 52)) == 48447628);
  assert(unsigned(flip_mask(0x2e34090, 52)) == 48447632);
  assert(unsigned(flip_mask(0x2e34094, 52)) == 48447636);
  assert(unsigned(flip_mask(0x2e34098, 52)) == 48447640);
  assert(unsigned(flip_mask(0x2e3409c, 52)) == 48447644);
  assert(unsigned(flip_mask(0x2e340a0, 52)) == 48447648);
  assert(unsigned(flip_mask(0x2e340a4, 52)) == 48447652);
  assert(unsigned(flip_mask(0x2e340a8, 52)) == 48447656);
  assert(unsigned(flip_mask(0x2e340ac, 52)) == 48447660);
  assert(unsigned(flip_mask(0x2e3c06c, 52)) == 48480364);
  assert(unsigned(flip_mask(0x2e3c070, 52)) == 48480368);
  assert(unsigned(flip_mask(0x2e3c074, 52)) == 48480372);
  assert(unsigned(flip_mask(0x2e44078, 52)) == 48513144);
  assert(unsigned(flip_mask(0x2e4407c, 52)) == 48513148);
  assert(unsigned(flip_mask(0x2e44080, 52)) == 48513152);
  assert(unsigned(flip_mask(0x2e4c000, 52)) == 48545792);
  assert(unsigned(flip_mask(0x2e4c004, 52)) == 48545796);
  assert(unsigned(flip_mask(0x2e4c008, 52)) == 48545800);
  assert(unsigned(flip_mask(0x2e4c010, 52)) == 48545808);
  assert(unsigned(flip_mask(0x2e4c014, 52)) == 48545812);
  assert(unsigned(flip_mask(0x2e4c018, 52)) == 48545816);
  assert(unsigned(flip_mask(0x2e4c020, 52)) == 48545824);
  assert(unsigned(flip_mask(0x2e4c024, 52)) == 48545828);
  assert(unsigned(flip_mask(0x2e4c028, 52)) == 48545832);
  assert(unsigned(flip_mask(0x2e4c030, 52)) == 48545840);
  assert(unsigned(flip_mask(0x2e4c034, 52)) == 48545844);
  assert(unsigned(flip_mask(0x2e4c038, 52)) == 48545848);
  assert(unsigned(flip_mask(0x2e4c040, 52)) == 48545856);
  assert(unsigned(flip_mask(0x2e4c044, 52)) == 48545860);
  assert(unsigned(flip_mask(0x2e4c048, 52)) == 48545864);
  assert(unsigned(flip_mask(0x2e4c04c, 52)) == 48545868);
  assert(unsigned(flip_mask(0x2e4c050, 52)) == 48545872);
  assert(unsigned(flip_mask(0x2e4c054, 52)) == 48545876);
  assert(unsigned(flip_mask(0x2e4c058, 52)) == 48545880);
  assert(unsigned(flip_mask(0x2e4c05c, 52)) == 48545884);
  assert(unsigned(flip_mask(0x2e4c060, 52)) == 48545888);
  assert(unsigned(flip_mask(0x2e4c064, 52)) == 48545892);
  assert(unsigned(flip_mask(0x2e4c068, 52)) == 48545896);
  assert(unsigned(flip_mask(0x2e4c06c, 52)) == 48545900);
  assert(unsigned(flip_mask(0x2e4c070, 52)) == 48545904);
  assert(unsigned(flip_mask(0x2e4c074, 52)) == 48545908);
  assert(unsigned(flip_mask(0x2e4c078, 52)) == 48545912);
  assert(unsigned(flip_mask(0x2e4c07c, 52)) == 48545916);
  assert(unsigned(flip_mask(0x2e4c080, 52)) == 48545920);
  assert(unsigned(flip_mask(0x2e4c084, 52)) == 48545924);
  assert(unsigned(flip_mask(0x2e4c088, 52)) == 48545928);
  assert(unsigned(flip_mask(0x2e4c08c, 52)) == 48545932);
  assert(unsigned(flip_mask(0x2e4c090, 52)) == 48545936);
  assert(unsigned(flip_mask(0x2e4c094, 52)) == 48545940);
  assert(unsigned(flip_mask(0x2e4c098, 52)) == 48545944);
  assert(unsigned(flip_mask(0x2e50000, 52)) == 48562176);
  assert(unsigned(flip_mask(0x2e50004, 52)) == 48562180);
  assert(unsigned(flip_mask(0x2e50008, 52)) == 48562184);
  assert(unsigned(flip_mask(0x2e50010, 52)) == 48562192);
  assert(unsigned(flip_mask(0x2e50014, 52)) == 48562196);
  assert(unsigned(flip_mask(0x2e50018, 52)) == 48562200);
  assert(unsigned(flip_mask(0x2e50020, 52)) == 48562208);
  assert(unsigned(flip_mask(0x2e50024, 52)) == 48562212);
  assert(unsigned(flip_mask(0x2e50028, 52)) == 48562216);
  assert(unsigned(flip_mask(0x2e50030, 52)) == 48562224);
  assert(unsigned(flip_mask(0x2e50034, 52)) == 48562228);
  assert(unsigned(flip_mask(0x2e50038, 52)) == 48562232);
  assert(unsigned(flip_mask(0x2e50040, 52)) == 48562240);
  assert(unsigned(flip_mask(0x2e50044, 52)) == 48562244);
  assert(unsigned(flip_mask(0x2e50048, 52)) == 48562248);
  assert(unsigned(flip_mask(0x2e50050, 52)) == 48562256);
  assert(unsigned(flip_mask(0x2e50054, 52)) == 48562260);
  assert(unsigned(flip_mask(0x2e50058, 52)) == 48562264);
  assert(unsigned(flip_mask(0x2e5005c, 52)) == 48562268);
  assert(unsigned(flip_mask(0x2e50060, 52)) == 48562272);
  assert(unsigned(flip_mask(0x2e50064, 52)) == 48562276);
  assert(unsigned(flip_mask(0x2e50068, 52)) == 48562280);
  assert(unsigned(flip_mask(0x2e5006c, 52)) == 48562284);
  assert(unsigned(flip_mask(0x2e50070, 52)) == 48562288);
  assert(unsigned(flip_mask(0x2e50074, 52)) == 48562292);
  assert(unsigned(flip_mask(0x2e50078, 52)) == 48562296);
  assert(unsigned(flip_mask(0x2e5007c, 52)) == 48562300);
  assert(unsigned(flip_mask(0x2e50080, 52)) == 48562304);
  assert(unsigned(flip_mask(0x2e50084, 52)) == 48562308);
  assert(unsigned(flip_mask(0x2e50088, 52)) == 48562312);
  assert(unsigned(flip_mask(0x2e5008c, 52)) == 48562316);
  assert(unsigned(flip_mask(0x2e50090, 52)) == 48562320);
  assert(unsigned(flip_mask(0x2e50094, 52)) == 48562324);
  assert(unsigned(flip_mask(0x2e50098, 52)) == 48562328);
  assert(unsigned(flip_mask(0x2e5009c, 52)) == 48562332);
  assert(unsigned(flip_mask(0x2e500a0, 52)) == 48562336);
  assert(unsigned(flip_mask(0x2e500a4, 52)) == 48562340);
  assert(unsigned(flip_mask(0x2e500a8, 52)) == 48562344);
  assert(unsigned(flip_mask(0x2e54078, 52)) == 48578680);
  assert(unsigned(flip_mask(0x2e5407c, 52)) == 48578684);
  assert(unsigned(flip_mask(0x2e54080, 52)) == 48578688);
  assert(unsigned(flip_mask(0x2eb0000, 52)) == 48955392);
  assert(unsigned(flip_mask(0x2ec0000, 52)) == 49020928);
  assert(unsigned(flip_mask(0x2ee0000, 52)) == 49152000);
  assert(unsigned(flip_mask(0x2ef0000, 52)) == 49217536);
  assert(unsigned(flip_mask(0x2ef0040, 52)) == 49217600);
  assert(unsigned(flip_mask(0x2f00200, 52)) == 49283584);
  assert(unsigned(flip_mask(0x2f10800, 52)) == 49350656);
  assert(unsigned(flip_mask(0x2f40000, 52)) == 49545216);
  assert(unsigned(flip_mask(0x2f50000, 52)) == 49610752);
  assert(unsigned(flip_mask(0x2f50040, 52)) == 49610816);
  assert(unsigned(flip_mask(0x2f60200, 52)) == 49676800);
  assert(unsigned(flip_mask(0x2f70800, 52)) == 49743872);
  assert(unsigned(flip_mask(0x30000, 52)) == 196608);
  assert(unsigned(flip_mask(0x30e0000, 52)) == 51249152);
  assert(unsigned(flip_mask(0x30f0000, 52)) == 51314688);
  assert(unsigned(flip_mask(0x3100000, 52)) == 51380224);
  assert(unsigned(flip_mask(0x3100040, 52)) == 51380288);
  assert(unsigned(flip_mask(0x3110208, 52)) == 51446280);
  assert(unsigned(flip_mask(0x3120800, 52)) == 51513344);
  assert(unsigned(flip_mask(0x31d0000, 52)) == 52232192);
  assert(unsigned(flip_mask(0x31d0004, 52)) == 52232196);
  assert(unsigned(flip_mask(0x31d0008, 52)) == 52232200);
  assert(unsigned(flip_mask(0x31d000c, 52)) == 52232204);
  assert(unsigned(flip_mask(0x31d0010, 52)) == 52232208);
  assert(unsigned(flip_mask(0x31d0014, 52)) == 52232212);
  assert(unsigned(flip_mask(0x31d0018, 52)) == 52232216);
  assert(unsigned(flip_mask(0x31d001c, 52)) == 52232220);
  assert(unsigned(flip_mask(0x31d0020, 52)) == 52232224);
  assert(unsigned(flip_mask(0x31d0040, 52)) == 52232256);
  assert(unsigned(flip_mask(0x31d0044, 52)) == 52232260);
  assert(unsigned(flip_mask(0x31d0048, 52)) == 52232264);
  assert(unsigned(flip_mask(0x31d004c, 52)) == 52232268);
  assert(unsigned(flip_mask(0x31d0050, 52)) == 52232272);
  assert(unsigned(flip_mask(0x31d0054, 52)) == 52232276);
  assert(unsigned(flip_mask(0x31d0058, 52)) == 52232280);
  assert(unsigned(flip_mask(0x31d005c, 52)) == 52232284);
  assert(unsigned(flip_mask(0x31d0060, 52)) == 52232288);
  assert(unsigned(flip_mask(0x31d0064, 52)) == 52232292);
  assert(unsigned(flip_mask(0x31d0068, 52)) == 52232296);
  assert(unsigned(flip_mask(0x31d006c, 52)) == 52232300);
  assert(unsigned(flip_mask(0x31d0070, 52)) == 52232304);
  assert(unsigned(flip_mask(0x31d0074, 52)) == 52232308);
  assert(unsigned(flip_mask(0x31d0078, 52)) == 52232312);
  assert(unsigned(flip_mask(0x31d007c, 52)) == 52232316);
  assert(unsigned(flip_mask(0x31d0080, 52)) == 52232320);
  assert(unsigned(flip_mask(0x31d0084, 52)) == 52232324);
  assert(unsigned(flip_mask(0x31d0088, 52)) == 52232328);
  assert(unsigned(flip_mask(0x31d008c, 52)) == 52232332);
  assert(unsigned(flip_mask(0x31d0090, 52)) == 52232336);
  assert(unsigned(flip_mask(0x31d0094, 52)) == 52232340);
  assert(unsigned(flip_mask(0x31d0098, 52)) == 52232344);
  assert(unsigned(flip_mask(0x31d009c, 52)) == 52232348);
  assert(unsigned(flip_mask(0x31d00a0, 52)) == 52232352);
  assert(unsigned(flip_mask(0x31d00a4, 52)) == 52232356);
  assert(unsigned(flip_mask(0x31d00a8, 52)) == 52232360);
  assert(unsigned(flip_mask(0x31d00ac, 52)) == 52232364);
  assert(unsigned(flip_mask(0x31d00b0, 52)) == 52232368);
  assert(unsigned(flip_mask(0x31d00b4, 52)) == 52232372);
  assert(unsigned(flip_mask(0x31d00b8, 52)) == 52232376);
  assert(unsigned(flip_mask(0x31d00bc, 52)) == 52232380);
  assert(unsigned(flip_mask(0x31d00c0, 52)) == 52232384);
  assert(unsigned(flip_mask(0x31d00c4, 52)) == 52232388);
  assert(unsigned(flip_mask(0x31d00c8, 52)) == 52232392);
  assert(unsigned(flip_mask(0x31d00cc, 52)) == 52232396);
  assert(unsigned(flip_mask(0x31d00d0, 52)) == 52232400);
  assert(unsigned(flip_mask(0x31d00d4, 52)) == 52232404);
  assert(unsigned(flip_mask(0x31d00d8, 52)) == 52232408);
  assert(unsigned(flip_mask(0x31d00dc, 52)) == 52232412);
  assert(unsigned(flip_mask(0x31d00e0, 52)) == 52232416);
  assert(unsigned(flip_mask(0x31d00e4, 52)) == 52232420);
  assert(unsigned(flip_mask(0x31d00e8, 52)) == 52232424);
  assert(unsigned(flip_mask(0x31d00ec, 52)) == 52232428);
  assert(unsigned(flip_mask(0x31d00f0, 52)) == 52232432);
  assert(unsigned(flip_mask(0x31d00f4, 52)) == 52232436);
  assert(unsigned(flip_mask(0x31d00f8, 52)) == 52232440);
  assert(unsigned(flip_mask(0x31d00fc, 52)) == 52232444);
  assert(unsigned(flip_mask(0x31d0100, 52)) == 52232448);
  assert(unsigned(flip_mask(0x31d0104, 52)) == 52232452);
  assert(unsigned(flip_mask(0x31d0108, 52)) == 52232456);
  assert(unsigned(flip_mask(0x31d010c, 52)) == 52232460);
  assert(unsigned(flip_mask(0x31d0110, 52)) == 52232464);
  assert(unsigned(flip_mask(0x31d0138, 52)) == 52232504);
  assert(unsigned(flip_mask(0x31d013c, 52)) == 52232508);
  assert(unsigned(flip_mask(0x31d0140, 52)) == 52232512);
  assert(unsigned(flip_mask(0x31d0144, 52)) == 52232516);
  assert(unsigned(flip_mask(0x31d0178, 52)) == 52232568);
  assert(unsigned(flip_mask(0x31d017c, 52)) == 52232572);
  assert(unsigned(flip_mask(0x31d0194, 52)) == 52232596);
  assert(unsigned(flip_mask(0x31d01a0, 52)) == 52232608);
  assert(unsigned(flip_mask(0x31d01c0, 52)) == 52232640);
  assert(unsigned(flip_mask(0x31d01e0, 52)) == 52232672);
  assert(unsigned(flip_mask(0x31d01e8, 52)) == 52232680);
  assert(unsigned(flip_mask(0x31d01f0, 52)) == 52232688);
  assert(unsigned(flip_mask(0x31d0200, 52)) == 52232704);
  assert(unsigned(flip_mask(0x31d0208, 52)) == 52232712);
  assert(unsigned(flip_mask(0x31d0218, 52)) == 52232728);
  assert(unsigned(flip_mask(0x31d0220, 52)) == 52232736);
  assert(unsigned(flip_mask(0x31d0228, 52)) == 52232744);
  assert(unsigned(flip_mask(0x31d0230, 52)) == 52232752);
  assert(unsigned(flip_mask(0x31d0248, 52)) == 52232776);
  assert(unsigned(flip_mask(0x31d0250, 52)) == 52232784);
  assert(unsigned(flip_mask(0x31d0258, 52)) == 52232792);
  assert(unsigned(flip_mask(0x31d0260, 52)) == 52232800);
  assert(unsigned(flip_mask(0x31d02e0, 52)) == 52232928);
  assert(unsigned(flip_mask(0x31d02f8, 52)) == 52232952);
  assert(unsigned(flip_mask(0x31d0300, 52)) == 52232960);
  assert(unsigned(flip_mask(0x31d0308, 52)) == 52232968);
  assert(unsigned(flip_mask(0x31d0318, 52)) == 52232984);
  assert(unsigned(flip_mask(0x31d0320, 52)) == 52232992);
  assert(unsigned(flip_mask(0x31d0328, 52)) == 52233000);
  assert(unsigned(flip_mask(0x31d04d0, 52)) == 52233424);
  assert(unsigned(flip_mask(0x31d04d4, 52)) == 52233428);
  assert(unsigned(flip_mask(0x31d04d8, 52)) == 52233432);
  assert(unsigned(flip_mask(0x31d04dc, 52)) == 52233436);
  assert(unsigned(flip_mask(0x31d04e0, 52)) == 52233440);
  assert(unsigned(flip_mask(0x31d04e4, 52)) == 52233444);
  assert(unsigned(flip_mask(0x31d04e8, 52)) == 52233448);
  assert(unsigned(flip_mask(0x31d04ec, 52)) == 52233452);
  assert(unsigned(flip_mask(0x31d04f0, 52)) == 52233456);
  assert(unsigned(flip_mask(0x31d04f4, 52)) == 52233460);
  assert(unsigned(flip_mask(0x31d04f8, 52)) == 52233464);
  assert(unsigned(flip_mask(0x31d04fc, 52)) == 52233468);
  assert(unsigned(flip_mask(0x31d0500, 52)) == 52233472);
  assert(unsigned(flip_mask(0x31d0504, 52)) == 52233476);
  assert(unsigned(flip_mask(0x31d0508, 52)) == 52233480);
  assert(unsigned(flip_mask(0x31d050c, 52)) == 52233484);
  assert(unsigned(flip_mask(0x31d0510, 52)) == 52233488);
  assert(unsigned(flip_mask(0x31d0514, 52)) == 52233492);
  assert(unsigned(flip_mask(0x31d0518, 52)) == 52233496);
  assert(unsigned(flip_mask(0x31d051c, 52)) == 52233500);
  assert(unsigned(flip_mask(0x31d0520, 52)) == 52233504);
  assert(unsigned(flip_mask(0x31d0524, 52)) == 52233508);
  assert(unsigned(flip_mask(0x31d0528, 52)) == 52233512);
  assert(unsigned(flip_mask(0x31d052c, 52)) == 52233516);
  assert(unsigned(flip_mask(0x31d0530, 52)) == 52233520);
  assert(unsigned(flip_mask(0x31d0534, 52)) == 52233524);
  assert(unsigned(flip_mask(0x31d0538, 52)) == 52233528);
  assert(unsigned(flip_mask(0x31d053c, 52)) == 52233532);
  assert(unsigned(flip_mask(0x31d0540, 52)) == 52233536);
  assert(unsigned(flip_mask(0x31d0544, 52)) == 52233540);
  assert(unsigned(flip_mask(0x31d0548, 52)) == 52233544);
  assert(unsigned(flip_mask(0x31d054c, 52)) == 52233548);
  assert(unsigned(flip_mask(0x31d0550, 52)) == 52233552);
  assert(unsigned(flip_mask(0x31d0554, 52)) == 52233556);
  assert(unsigned(flip_mask(0x31d0558, 52)) == 52233560);
  assert(unsigned(flip_mask(0x31d055c, 52)) == 52233564);
  assert(unsigned(flip_mask(0x31d0560, 52)) == 52233568);
  assert(unsigned(flip_mask(0x31d0564, 52)) == 52233572);
  assert(unsigned(flip_mask(0x31d0568, 52)) == 52233576);
  assert(unsigned(flip_mask(0x31d056c, 52)) == 52233580);
  assert(unsigned(flip_mask(0x31d0570, 52)) == 52233584);
  assert(unsigned(flip_mask(0x31d0574, 52)) == 52233588);
  assert(unsigned(flip_mask(0x31d0578, 52)) == 52233592);
  assert(unsigned(flip_mask(0x31d057c, 52)) == 52233596);
  assert(unsigned(flip_mask(0x31d0580, 52)) == 52233600);
  assert(unsigned(flip_mask(0x31d0584, 52)) == 52233604);
  assert(unsigned(flip_mask(0x31d0588, 52)) == 52233608);
  assert(unsigned(flip_mask(0x31d058c, 52)) == 52233612);
  assert(unsigned(flip_mask(0x31d0590, 52)) == 52233616);
  assert(unsigned(flip_mask(0x31d0594, 52)) == 52233620);
  assert(unsigned(flip_mask(0x31d0598, 52)) == 52233624);
  assert(unsigned(flip_mask(0x31d059c, 52)) == 52233628);
  assert(unsigned(flip_mask(0x31d05a0, 52)) == 52233632);
  assert(unsigned(flip_mask(0x31d05a4, 52)) == 52233636);
  assert(unsigned(flip_mask(0x31d05a8, 52)) == 52233640);
  assert(unsigned(flip_mask(0x31d05ac, 52)) == 52233644);
  assert(unsigned(flip_mask(0x31d05b0, 52)) == 52233648);
  assert(unsigned(flip_mask(0x31d05b4, 52)) == 52233652);
  assert(unsigned(flip_mask(0x31d05b8, 52)) == 52233656);
  assert(unsigned(flip_mask(0x31d05bc, 52)) == 52233660);
  assert(unsigned(flip_mask(0x31d05c0, 52)) == 52233664);
  assert(unsigned(flip_mask(0x31d05c4, 52)) == 52233668);
  assert(unsigned(flip_mask(0x31d05c8, 52)) == 52233672);
  assert(unsigned(flip_mask(0x31d05cc, 52)) == 52233676);
  assert(unsigned(flip_mask(0x31d05d0, 52)) == 52233680);
  assert(unsigned(flip_mask(0x31d05d4, 52)) == 52233684);
  assert(unsigned(flip_mask(0x31d05d8, 52)) == 52233688);
  assert(unsigned(flip_mask(0x31d05dc, 52)) == 52233692);
  assert(unsigned(flip_mask(0x31d05e0, 52)) == 52233696);
  assert(unsigned(flip_mask(0x31d05e4, 52)) == 52233700);
  assert(unsigned(flip_mask(0x31d05e8, 52)) == 52233704);
  assert(unsigned(flip_mask(0x31d05ec, 52)) == 52233708);
  assert(unsigned(flip_mask(0x31d05f0, 52)) == 52233712);
  assert(unsigned(flip_mask(0x31d05f4, 52)) == 52233716);
  assert(unsigned(flip_mask(0x31d05f8, 52)) == 52233720);
  assert(unsigned(flip_mask(0x31d05fc, 52)) == 52233724);
  assert(unsigned(flip_mask(0x31d0600, 52)) == 52233728);
  assert(unsigned(flip_mask(0x31d0604, 52)) == 52233732);
  assert(unsigned(flip_mask(0x31d0608, 52)) == 52233736);
  assert(unsigned(flip_mask(0x31d060c, 52)) == 52233740);
  assert(unsigned(flip_mask(0x31d0610, 52)) == 52233744);
  assert(unsigned(flip_mask(0x31d0614, 52)) == 52233748);
  assert(unsigned(flip_mask(0x31d0618, 52)) == 52233752);
  assert(unsigned(flip_mask(0x31d061c, 52)) == 52233756);
  assert(unsigned(flip_mask(0x31d0620, 52)) == 52233760);
  assert(unsigned(flip_mask(0x31d0624, 52)) == 52233764);
  assert(unsigned(flip_mask(0x31d0628, 52)) == 52233768);
  assert(unsigned(flip_mask(0x31d062c, 52)) == 52233772);
  assert(unsigned(flip_mask(0x31d0630, 52)) == 52233776);
  assert(unsigned(flip_mask(0x31d0634, 52)) == 52233780);
  assert(unsigned(flip_mask(0x31d0638, 52)) == 52233784);
  assert(unsigned(flip_mask(0x31d063c, 52)) == 52233788);
  assert(unsigned(flip_mask(0x31d0640, 52)) == 52233792);
  assert(unsigned(flip_mask(0x31d0644, 52)) == 52233796);
  assert(unsigned(flip_mask(0x31d0648, 52)) == 52233800);
  assert(unsigned(flip_mask(0x31d064c, 52)) == 52233804);
  assert(unsigned(flip_mask(0x31d0650, 52)) == 52233808);
  assert(unsigned(flip_mask(0x31d0654, 52)) == 52233812);
  assert(unsigned(flip_mask(0x31d0658, 52)) == 52233816);
  assert(unsigned(flip_mask(0x31d065c, 52)) == 52233820);
  assert(unsigned(flip_mask(0x31d0660, 52)) == 52233824);
  assert(unsigned(flip_mask(0x31d0664, 52)) == 52233828);
  assert(unsigned(flip_mask(0x31d0668, 52)) == 52233832);
  assert(unsigned(flip_mask(0x31d066c, 52)) == 52233836);
  assert(unsigned(flip_mask(0x31d0670, 52)) == 52233840);
  assert(unsigned(flip_mask(0x31d0674, 52)) == 52233844);
  assert(unsigned(flip_mask(0x31d0678, 52)) == 52233848);
  assert(unsigned(flip_mask(0x31d067c, 52)) == 52233852);
  assert(unsigned(flip_mask(0x31d0680, 52)) == 52233856);
  assert(unsigned(flip_mask(0x31d0684, 52)) == 52233860);
  assert(unsigned(flip_mask(0x31d0688, 52)) == 52233864);
  assert(unsigned(flip_mask(0x31d068c, 52)) == 52233868);
  assert(unsigned(flip_mask(0x31d0690, 52)) == 52233872);
  assert(unsigned(flip_mask(0x31d0694, 52)) == 52233876);
  assert(unsigned(flip_mask(0x31d0698, 52)) == 52233880);
  assert(unsigned(flip_mask(0x31d06b0, 52)) == 52233904);
  assert(unsigned(flip_mask(0x31d06b4, 52)) == 52233908);
  assert(unsigned(flip_mask(0x31d06b8, 52)) == 52233912);
  assert(unsigned(flip_mask(0x31d06bc, 52)) == 52233916);
  assert(unsigned(flip_mask(0x31d06c0, 52)) == 52233920);
  assert(unsigned(flip_mask(0x31d06c4, 52)) == 52233924);
  assert(unsigned(flip_mask(0x31d06c8, 52)) == 52233928);
  assert(unsigned(flip_mask(0x31d06cc, 52)) == 52233932);
  assert(unsigned(flip_mask(0x31d06d0, 52)) == 52233936);
  assert(unsigned(flip_mask(0x31d06d4, 52)) == 52233940);
  assert(unsigned(flip_mask(0x31d06d8, 52)) == 52233944);
  assert(unsigned(flip_mask(0x31d06dc, 52)) == 52233948);
  assert(unsigned(flip_mask(0x31d06e0, 52)) == 52233952);
  assert(unsigned(flip_mask(0x31d06e4, 52)) == 52233956);
  assert(unsigned(flip_mask(0x31d06e8, 52)) == 52233960);
  assert(unsigned(flip_mask(0x31d0700, 52)) == 52233984);
  assert(unsigned(flip_mask(0x31d0704, 52)) == 52233988);
  assert(unsigned(flip_mask(0x31d0708, 52)) == 52233992);
  assert(unsigned(flip_mask(0x31d070c, 52)) == 52233996);
  assert(unsigned(flip_mask(0x31d0710, 52)) == 52234000);
  assert(unsigned(flip_mask(0x31d0714, 52)) == 52234004);
  assert(unsigned(flip_mask(0x31d0718, 52)) == 52234008);
  assert(unsigned(flip_mask(0x31d071c, 52)) == 52234012);
  assert(unsigned(flip_mask(0x31d0720, 52)) == 52234016);
  assert(unsigned(flip_mask(0x31d0724, 52)) == 52234020);
  assert(unsigned(flip_mask(0x31d073c, 52)) == 52234044);
  assert(unsigned(flip_mask(0x31d0740, 52)) == 52234048);
  assert(unsigned(flip_mask(0x31d0744, 52)) == 52234052);
  assert(unsigned(flip_mask(0x31d0748, 52)) == 52234056);
  assert(unsigned(flip_mask(0x31d074c, 52)) == 52234060);
  assert(unsigned(flip_mask(0x31d0750, 52)) == 52234064);
  assert(unsigned(flip_mask(0x31d0754, 52)) == 52234068);
  assert(unsigned(flip_mask(0x31d0758, 52)) == 52234072);
  assert(unsigned(flip_mask(0x31d075c, 52)) == 52234076);
  assert(unsigned(flip_mask(0x31d0760, 52)) == 52234080);
  assert(unsigned(flip_mask(0x31d0764, 52)) == 52234084);
  assert(unsigned(flip_mask(0x31d0768, 52)) == 52234088);
  assert(unsigned(flip_mask(0x31d076c, 52)) == 52234092);
  assert(unsigned(flip_mask(0x31d0770, 52)) == 52234096);
  assert(unsigned(flip_mask(0x31d0774, 52)) == 52234100);
  assert(unsigned(flip_mask(0x31d0778, 52)) == 52234104);
  assert(unsigned(flip_mask(0x31d077c, 52)) == 52234108);
  assert(unsigned(flip_mask(0x31d0780, 52)) == 52234112);
  assert(unsigned(flip_mask(0x31d0784, 52)) == 52234116);
  assert(unsigned(flip_mask(0x31d0788, 52)) == 52234120);
  assert(unsigned(flip_mask(0x31d078c, 52)) == 52234124);
  assert(unsigned(flip_mask(0x31d0790, 52)) == 52234128);
  assert(unsigned(flip_mask(0x31d07d8, 52)) == 52234200);
  assert(unsigned(flip_mask(0x31d07dc, 52)) == 52234204);
  assert(unsigned(flip_mask(0x31d07e0, 52)) == 52234208);
  assert(unsigned(flip_mask(0x31d07e4, 52)) == 52234212);
  assert(unsigned(flip_mask(0x31d07e8, 52)) == 52234216);
  assert(unsigned(flip_mask(0x31d07ec, 52)) == 52234220);
  assert(unsigned(flip_mask(0x31d07f0, 52)) == 52234224);
  assert(unsigned(flip_mask(0x31d07f4, 52)) == 52234228);
  assert(unsigned(flip_mask(0x31d07f8, 52)) == 52234232);
  assert(unsigned(flip_mask(0x31d07fc, 52)) == 52234236);
  assert(unsigned(flip_mask(0x31d0800, 52)) == 52234240);
  assert(unsigned(flip_mask(0x31d0804, 52)) == 52234244);
  assert(unsigned(flip_mask(0x31d0808, 52)) == 52234248);
  assert(unsigned(flip_mask(0x31d080c, 52)) == 52234252);
  assert(unsigned(flip_mask(0x31d0810, 52)) == 52234256);
  assert(unsigned(flip_mask(0x31d0814, 52)) == 52234260);
  assert(unsigned(flip_mask(0x31d0818, 52)) == 52234264);
  assert(unsigned(flip_mask(0x31d081c, 52)) == 52234268);
  assert(unsigned(flip_mask(0x31d0820, 52)) == 52234272);
  assert(unsigned(flip_mask(0x31d0824, 52)) == 52234276);
  assert(unsigned(flip_mask(0x31d0828, 52)) == 52234280);
  assert(unsigned(flip_mask(0x31d082c, 52)) == 52234284);
  assert(unsigned(flip_mask(0x31d0830, 52)) == 52234288);
  assert(unsigned(flip_mask(0x31d0834, 52)) == 52234292);
  assert(unsigned(flip_mask(0x31d0838, 52)) == 52234296);
  assert(unsigned(flip_mask(0x31d083c, 52)) == 52234300);
  assert(unsigned(flip_mask(0x31d0840, 52)) == 52234304);
  assert(unsigned(flip_mask(0x31d0844, 52)) == 52234308);
  assert(unsigned(flip_mask(0x31d0848, 52)) == 52234312);
  assert(unsigned(flip_mask(0x31d084c, 52)) == 52234316);
  assert(unsigned(flip_mask(0x31d0850, 52)) == 52234320);
  assert(unsigned(flip_mask(0x31d0854, 52)) == 52234324);
  assert(unsigned(flip_mask(0x31d0858, 52)) == 52234328);
  assert(unsigned(flip_mask(0x31d085c, 52)) == 52234332);
  assert(unsigned(flip_mask(0x31d0860, 52)) == 52234336);
  assert(unsigned(flip_mask(0x31d0864, 52)) == 52234340);
  assert(unsigned(flip_mask(0x31d0868, 52)) == 52234344);
  assert(unsigned(flip_mask(0x31d086c, 52)) == 52234348);
  assert(unsigned(flip_mask(0x31d0870, 52)) == 52234352);
  assert(unsigned(flip_mask(0x31d0874, 52)) == 52234356);
  assert(unsigned(flip_mask(0x31d0890, 52)) == 52234384);
  assert(unsigned(flip_mask(0x31d0898, 52)) == 52234392);
  assert(unsigned(flip_mask(0x31d08a0, 52)) == 52234400);
  assert(unsigned(flip_mask(0x31d08a8, 52)) == 52234408);
  assert(unsigned(flip_mask(0x31d08ac, 52)) == 52234412);
  assert(unsigned(flip_mask(0x31d08b0, 52)) == 52234416);
  assert(unsigned(flip_mask(0x31d08b4, 52)) == 52234420);
  assert(unsigned(flip_mask(0x31d08b8, 52)) == 52234424);
  assert(unsigned(flip_mask(0x31d08bc, 52)) == 52234428);
  assert(unsigned(flip_mask(0x31d08c0, 52)) == 52234432);
  assert(unsigned(flip_mask(0x31d08c4, 52)) == 52234436);
  assert(unsigned(flip_mask(0x31d08c8, 52)) == 52234440);
  assert(unsigned(flip_mask(0x31d08cc, 52)) == 52234444);
  assert(unsigned(flip_mask(0x31d08d0, 52)) == 52234448);
  assert(unsigned(flip_mask(0x31d08d4, 52)) == 52234452);
  assert(unsigned(flip_mask(0x31d08d8, 52)) == 52234456);
  assert(unsigned(flip_mask(0x31d08dc, 52)) == 52234460);
  assert(unsigned(flip_mask(0x31d08e0, 52)) == 52234464);
  assert(unsigned(flip_mask(0x31d08e4, 52)) == 52234468);
  assert(unsigned(flip_mask(0x31d08e8, 52)) == 52234472);
  assert(unsigned(flip_mask(0x31d08ec, 52)) == 52234476);
  assert(unsigned(flip_mask(0x31d08f0, 52)) == 52234480);
  assert(unsigned(flip_mask(0x31d08f4, 52)) == 52234484);
  assert(unsigned(flip_mask(0x31d08fc, 52)) == 52234492);
  assert(unsigned(flip_mask(0x31d0900, 52)) == 52234496);
  assert(unsigned(flip_mask(0x31d0904, 52)) == 52234500);
  assert(unsigned(flip_mask(0x31d0908, 52)) == 52234504);
  assert(unsigned(flip_mask(0x31d090c, 52)) == 52234508);
  assert(unsigned(flip_mask(0x31d0910, 52)) == 52234512);
  assert(unsigned(flip_mask(0x31d0914, 52)) == 52234516);
  assert(unsigned(flip_mask(0x31d0918, 52)) == 52234520);
  assert(unsigned(flip_mask(0x31d091c, 52)) == 52234524);
  assert(unsigned(flip_mask(0x31d0920, 52)) == 52234528);
  assert(unsigned(flip_mask(0x31d0924, 52)) == 52234532);
  assert(unsigned(flip_mask(0x31d0928, 52)) == 52234536);
  assert(unsigned(flip_mask(0x31d092c, 52)) == 52234540);
  assert(unsigned(flip_mask(0x31d0930, 52)) == 52234544);
  assert(unsigned(flip_mask(0x31d0934, 52)) == 52234548);
  assert(unsigned(flip_mask(0x31d0938, 52)) == 52234552);
  assert(unsigned(flip_mask(0x31d093c, 52)) == 52234556);
  assert(unsigned(flip_mask(0x31d0940, 52)) == 52234560);
  assert(unsigned(flip_mask(0x31d0944, 52)) == 52234564);
  assert(unsigned(flip_mask(0x31d0948, 52)) == 52234568);
  assert(unsigned(flip_mask(0x31d094c, 52)) == 52234572);
  assert(unsigned(flip_mask(0x31d0950, 52)) == 52234576);
  assert(unsigned(flip_mask(0x31d0954, 52)) == 52234580);
  assert(unsigned(flip_mask(0x31d0958, 52)) == 52234584);
  assert(unsigned(flip_mask(0x31d095c, 52)) == 52234588);
  assert(unsigned(flip_mask(0x31d0960, 52)) == 52234592);
  assert(unsigned(flip_mask(0x31d0964, 52)) == 52234596);
  assert(unsigned(flip_mask(0x31d0968, 52)) == 52234600);
  assert(unsigned(flip_mask(0x31d096c, 52)) == 52234604);
  assert(unsigned(flip_mask(0x31d0970, 52)) == 52234608);
  assert(unsigned(flip_mask(0x31d0974, 52)) == 52234612);
  assert(unsigned(flip_mask(0x31d0978, 52)) == 52234616);
  assert(unsigned(flip_mask(0x31d097c, 52)) == 52234620);
  assert(unsigned(flip_mask(0x31d0980, 52)) == 52234624);
  assert(unsigned(flip_mask(0x31d0984, 52)) == 52234628);
  assert(unsigned(flip_mask(0x31d0988, 52)) == 52234632);
  assert(unsigned(flip_mask(0x31d098c, 52)) == 52234636);
  assert(unsigned(flip_mask(0x31d0990, 52)) == 52234640);
  assert(unsigned(flip_mask(0x31d0994, 52)) == 52234644);
  assert(unsigned(flip_mask(0x31d0998, 52)) == 52234648);
  assert(unsigned(flip_mask(0x31d099c, 52)) == 52234652);
  assert(unsigned(flip_mask(0x31d09a0, 52)) == 52234656);
  assert(unsigned(flip_mask(0x31d09a4, 52)) == 52234660);
  assert(unsigned(flip_mask(0x31d09a8, 52)) == 52234664);
  assert(unsigned(flip_mask(0x31d09ac, 52)) == 52234668);
  assert(unsigned(flip_mask(0x31d09b0, 52)) == 52234672);
  assert(unsigned(flip_mask(0x31d09b4, 52)) == 52234676);
  assert(unsigned(flip_mask(0x31d09b8, 52)) == 52234680);
  assert(unsigned(flip_mask(0x31d09bc, 52)) == 52234684);
  assert(unsigned(flip_mask(0x31d09c0, 52)) == 52234688);
  assert(unsigned(flip_mask(0x31d09c4, 52)) == 52234692);
  assert(unsigned(flip_mask(0x31d09c8, 52)) == 52234696);
  assert(unsigned(flip_mask(0x31d09cc, 52)) == 52234700);
  assert(unsigned(flip_mask(0x31d09d0, 52)) == 52234704);
  assert(unsigned(flip_mask(0x31d09d4, 52)) == 52234708);
  assert(unsigned(flip_mask(0x31d09dc, 52)) == 52234716);
  assert(unsigned(flip_mask(0x31d09e0, 52)) == 52234720);
  assert(unsigned(flip_mask(0x31d09e4, 52)) == 52234724);
  assert(unsigned(flip_mask(0x31d09e8, 52)) == 52234728);
  assert(unsigned(flip_mask(0x31d09ec, 52)) == 52234732);
  assert(unsigned(flip_mask(0x31d09f0, 52)) == 52234736);
  assert(unsigned(flip_mask(0x31d09f4, 52)) == 52234740);
  assert(unsigned(flip_mask(0x31d09f8, 52)) == 52234744);
  assert(unsigned(flip_mask(0x31d09fc, 52)) == 52234748);
  assert(unsigned(flip_mask(0x31d0a08, 52)) == 52234760);
  assert(unsigned(flip_mask(0x31d0a0c, 52)) == 52234764);
  assert(unsigned(flip_mask(0x31d0a10, 52)) == 52234768);
  assert(unsigned(flip_mask(0x31d0a14, 52)) == 52234772);
  assert(unsigned(flip_mask(0x31d0a18, 52)) == 52234776);
  assert(unsigned(flip_mask(0x31d0a1c, 52)) == 52234780);
  assert(unsigned(flip_mask(0x31d0a20, 52)) == 52234784);
  assert(unsigned(flip_mask(0x31d0a24, 52)) == 52234788);
  assert(unsigned(flip_mask(0x31d0a28, 52)) == 52234792);
  assert(unsigned(flip_mask(0x31d0a2c, 52)) == 52234796);
  assert(unsigned(flip_mask(0x31d0a30, 52)) == 52234800);
  assert(unsigned(flip_mask(0x31d0a34, 52)) == 52234804);
  assert(unsigned(flip_mask(0x31d0a38, 52)) == 52234808);
  assert(unsigned(flip_mask(0x31d0a3c, 52)) == 52234812);
  assert(unsigned(flip_mask(0x31d0a40, 52)) == 52234816);
  assert(unsigned(flip_mask(0x31d0a44, 52)) == 52234820);
  assert(unsigned(flip_mask(0x31d0a48, 52)) == 52234824);
  assert(unsigned(flip_mask(0x31d0a4c, 52)) == 52234828);
  assert(unsigned(flip_mask(0x31d0a50, 52)) == 52234832);
  assert(unsigned(flip_mask(0x31d0a54, 52)) == 52234836);
  assert(unsigned(flip_mask(0x31d0a58, 52)) == 52234840);
  assert(unsigned(flip_mask(0x31d0a5c, 52)) == 52234844);
  assert(unsigned(flip_mask(0x31d0a60, 52)) == 52234848);
  assert(unsigned(flip_mask(0x31d0a64, 52)) == 52234852);
  assert(unsigned(flip_mask(0x31d0a68, 52)) == 52234856);
  assert(unsigned(flip_mask(0x31d0a6c, 52)) == 52234860);
  assert(unsigned(flip_mask(0x31d0a70, 52)) == 52234864);
  assert(unsigned(flip_mask(0x31d0a74, 52)) == 52234868);
  assert(unsigned(flip_mask(0x31d0a78, 52)) == 52234872);
  assert(unsigned(flip_mask(0x31d0a7c, 52)) == 52234876);
  assert(unsigned(flip_mask(0x31d0a80, 52)) == 52234880);
  assert(unsigned(flip_mask(0x31d0a84, 52)) == 52234884);
  assert(unsigned(flip_mask(0x31d0a88, 52)) == 52234888);
  assert(unsigned(flip_mask(0x31d0a8c, 52)) == 52234892);
  assert(unsigned(flip_mask(0x31d0a90, 52)) == 52234896);
  assert(unsigned(flip_mask(0x31d0a94, 52)) == 52234900);
  assert(unsigned(flip_mask(0x31d0a98, 52)) == 52234904);
  assert(unsigned(flip_mask(0x31d0a9c, 52)) == 52234908);
  assert(unsigned(flip_mask(0x31d0aa0, 52)) == 52234912);
  assert(unsigned(flip_mask(0x31d0aa4, 52)) == 52234916);
  assert(unsigned(flip_mask(0x31d0aa8, 52)) == 52234920);
  assert(unsigned(flip_mask(0x31d0aac, 52)) == 52234924);
  assert(unsigned(flip_mask(0x31d0ab0, 52)) == 52234928);
  assert(unsigned(flip_mask(0x31d0ab4, 52)) == 52234932);
  assert(unsigned(flip_mask(0x31d0ab8, 52)) == 52234936);
  assert(unsigned(flip_mask(0x31d0abc, 52)) == 52234940);
  assert(unsigned(flip_mask(0x31d0ac0, 52)) == 52234944);
  assert(unsigned(flip_mask(0x31d0ac4, 52)) == 52234948);
  assert(unsigned(flip_mask(0x31d0ac8, 52)) == 52234952);
  assert(unsigned(flip_mask(0x31d0acc, 52)) == 52234956);
  assert(unsigned(flip_mask(0x31d0ad0, 52)) == 52234960);
  assert(unsigned(flip_mask(0x31d0ad4, 52)) == 52234964);
  assert(unsigned(flip_mask(0x31d0ad8, 52)) == 52234968);
  assert(unsigned(flip_mask(0x31d0adc, 52)) == 52234972);
  assert(unsigned(flip_mask(0x31d0ae0, 52)) == 52234976);
  assert(unsigned(flip_mask(0x31d0ae4, 52)) == 52234980);
  assert(unsigned(flip_mask(0x31d0ae8, 52)) == 52234984);
  assert(unsigned(flip_mask(0x31d0aec, 52)) == 52234988);
  assert(unsigned(flip_mask(0x31d0af0, 52)) == 52234992);
  assert(unsigned(flip_mask(0x31d0af4, 52)) == 52234996);
  assert(unsigned(flip_mask(0x31d0af8, 52)) == 52235000);
  assert(unsigned(flip_mask(0x31d0b08, 52)) == 52235016);
  assert(unsigned(flip_mask(0x31d0b0c, 52)) == 52235020);
  assert(unsigned(flip_mask(0x31d0b10, 52)) == 52235024);
  assert(unsigned(flip_mask(0x31d0b14, 52)) == 52235028);
  assert(unsigned(flip_mask(0x31d0b18, 52)) == 52235032);
  assert(unsigned(flip_mask(0x31d0b1c, 52)) == 52235036);
  assert(unsigned(flip_mask(0x31d0b20, 52)) == 52235040);
  assert(unsigned(flip_mask(0x31d0b24, 52)) == 52235044);
  assert(unsigned(flip_mask(0x31d0b28, 52)) == 52235048);
  assert(unsigned(flip_mask(0x31d0b34, 52)) == 52235060);
  assert(unsigned(flip_mask(0x31d0b38, 52)) == 52235064);
  assert(unsigned(flip_mask(0x31d0b3c, 52)) == 52235068);
  assert(unsigned(flip_mask(0x31d0b40, 52)) == 52235072);
  assert(unsigned(flip_mask(0x31d0b50, 52)) == 52235088);
  assert(unsigned(flip_mask(0x31d0b54, 52)) == 52235092);
  assert(unsigned(flip_mask(0x31d0b58, 52)) == 52235096);
  assert(unsigned(flip_mask(0x31d0b5c, 52)) == 52235100);
  assert(unsigned(flip_mask(0x31d0b60, 52)) == 52235104);
  assert(unsigned(flip_mask(0x31d0b64, 52)) == 52235108);
  assert(unsigned(flip_mask(0x31d0b68, 52)) == 52235112);
  assert(unsigned(flip_mask(0x31d0b6c, 52)) == 52235116);
  assert(unsigned(flip_mask(0x31d0b70, 52)) == 52235120);
  assert(unsigned(flip_mask(0x31d0b74, 52)) == 52235124);
  assert(unsigned(flip_mask(0x31d0b78, 52)) == 52235128);
  assert(unsigned(flip_mask(0x31d0b7c, 52)) == 52235132);
  assert(unsigned(flip_mask(0x31d0b80, 52)) == 52235136);
  assert(unsigned(flip_mask(0x31d0b84, 52)) == 52235140);
  assert(unsigned(flip_mask(0x31d0b88, 52)) == 52235144);
  assert(unsigned(flip_mask(0x31d0b8c, 52)) == 52235148);
  assert(unsigned(flip_mask(0x31d0b90, 52)) == 52235152);
  assert(unsigned(flip_mask(0x31d0b94, 52)) == 52235156);
  assert(unsigned(flip_mask(0x31d0b98, 52)) == 52235160);
  assert(unsigned(flip_mask(0x31d0b9c, 52)) == 52235164);
  assert(unsigned(flip_mask(0x31d0ba0, 52)) == 52235168);
  assert(unsigned(flip_mask(0x31d0ba4, 52)) == 52235172);
  assert(unsigned(flip_mask(0x31d0ba8, 52)) == 52235176);
  assert(unsigned(flip_mask(0x31d0bac, 52)) == 52235180);
  assert(unsigned(flip_mask(0x31d0bb0, 52)) == 52235184);
  assert(unsigned(flip_mask(0x31d0bb4, 52)) == 52235188);
  assert(unsigned(flip_mask(0x31d0bb8, 52)) == 52235192);
  assert(unsigned(flip_mask(0x31d0bbc, 52)) == 52235196);
  assert(unsigned(flip_mask(0x31d0bc0, 52)) == 52235200);
  assert(unsigned(flip_mask(0x31d0bc4, 52)) == 52235204);
  assert(unsigned(flip_mask(0x31d0bc8, 52)) == 52235208);
  assert(unsigned(flip_mask(0x31d0bcc, 52)) == 52235212);
  assert(unsigned(flip_mask(0x31d0bd0, 52)) == 52235216);
  assert(unsigned(flip_mask(0x31d0bd4, 52)) == 52235220);
  assert(unsigned(flip_mask(0x31d0bd8, 52)) == 52235224);
  assert(unsigned(flip_mask(0x31d0bdc, 52)) == 52235228);
  assert(unsigned(flip_mask(0x31d0be0, 52)) == 52235232);
  assert(unsigned(flip_mask(0x31d0be4, 52)) == 52235236);
  assert(unsigned(flip_mask(0x31d0be8, 52)) == 52235240);
  assert(unsigned(flip_mask(0x31d0bec, 52)) == 52235244);
  assert(unsigned(flip_mask(0x31d0bf0, 52)) == 52235248);
  assert(unsigned(flip_mask(0x31d0bf4, 52)) == 52235252);
  assert(unsigned(flip_mask(0x31d0bf8, 52)) == 52235256);
  assert(unsigned(flip_mask(0x31d0bfc, 52)) == 52235260);
  assert(unsigned(flip_mask(0x31d0c00, 52)) == 52235264);
  assert(unsigned(flip_mask(0x31d0c04, 52)) == 52235268);
  assert(unsigned(flip_mask(0x31d0c08, 52)) == 52235272);
  assert(unsigned(flip_mask(0x31d0c0c, 52)) == 52235276);
  assert(unsigned(flip_mask(0x31d0c1c, 52)) == 52235292);
  assert(unsigned(flip_mask(0x31d0c20, 52)) == 52235296);
  assert(unsigned(flip_mask(0x31d0c24, 52)) == 52235300);
  assert(unsigned(flip_mask(0x31d0c28, 52)) == 52235304);
  assert(unsigned(flip_mask(0x31d0c2c, 52)) == 52235308);
  assert(unsigned(flip_mask(0x31d0c30, 52)) == 52235312);
  assert(unsigned(flip_mask(0x31d0c34, 52)) == 52235316);
  assert(unsigned(flip_mask(0x31d0c38, 52)) == 52235320);
  assert(unsigned(flip_mask(0x31d0c3c, 52)) == 52235324);
  assert(unsigned(flip_mask(0x31d0c48, 52)) == 52235336);
  assert(unsigned(flip_mask(0x31d0c4c, 52)) == 52235340);
  assert(unsigned(flip_mask(0x31d0c50, 52)) == 52235344);
  assert(unsigned(flip_mask(0x31d0c54, 52)) == 52235348);
  assert(unsigned(flip_mask(0x31d0c64, 52)) == 52235364);
  assert(unsigned(flip_mask(0x31d0c68, 52)) == 52235368);
  assert(unsigned(flip_mask(0x31d0c6c, 52)) == 52235372);
  assert(unsigned(flip_mask(0x31d0c70, 52)) == 52235376);
  assert(unsigned(flip_mask(0x31d0c74, 52)) == 52235380);
  assert(unsigned(flip_mask(0x31d0c78, 52)) == 52235384);
  assert(unsigned(flip_mask(0x31d0c7c, 52)) == 52235388);
  assert(unsigned(flip_mask(0x31d0c80, 52)) == 52235392);
  assert(unsigned(flip_mask(0x31d0c84, 52)) == 52235396);
  assert(unsigned(flip_mask(0x31d0c88, 52)) == 52235400);
  assert(unsigned(flip_mask(0x31d0c8c, 52)) == 52235404);
  assert(unsigned(flip_mask(0x31d0c90, 52)) == 52235408);
  assert(unsigned(flip_mask(0x31d0c94, 52)) == 52235412);
  assert(unsigned(flip_mask(0x31d0c98, 52)) == 52235416);
  assert(unsigned(flip_mask(0x31d0c9c, 52)) == 52235420);
  assert(unsigned(flip_mask(0x31d0ca0, 52)) == 52235424);
  assert(unsigned(flip_mask(0x31d0ca4, 52)) == 52235428);
  assert(unsigned(flip_mask(0x31d0ca8, 52)) == 52235432);
  assert(unsigned(flip_mask(0x31d0cac, 52)) == 52235436);
  assert(unsigned(flip_mask(0x31d0cb0, 52)) == 52235440);
  assert(unsigned(flip_mask(0x31d0cb4, 52)) == 52235444);
  assert(unsigned(flip_mask(0x31d0cb8, 52)) == 52235448);
  assert(unsigned(flip_mask(0x31d0cbc, 52)) == 52235452);
  assert(unsigned(flip_mask(0x31d0cc0, 52)) == 52235456);
  assert(unsigned(flip_mask(0x31d0cc4, 52)) == 52235460);
  assert(unsigned(flip_mask(0x31d0cc8, 52)) == 52235464);
  assert(unsigned(flip_mask(0x31d0ccc, 52)) == 52235468);
  assert(unsigned(flip_mask(0x31d0cd0, 52)) == 52235472);
  assert(unsigned(flip_mask(0x31d0cd4, 52)) == 52235476);
  assert(unsigned(flip_mask(0x31d0cd8, 52)) == 52235480);
  assert(unsigned(flip_mask(0x31d0cdc, 52)) == 52235484);
  assert(unsigned(flip_mask(0x31d0ce0, 52)) == 52235488);
  assert(unsigned(flip_mask(0x31d0ce4, 52)) == 52235492);
  assert(unsigned(flip_mask(0x31d0ce8, 52)) == 52235496);
  assert(unsigned(flip_mask(0x31d0cec, 52)) == 52235500);
  assert(unsigned(flip_mask(0x31d0cf0, 52)) == 52235504);
  assert(unsigned(flip_mask(0x31d0cf4, 52)) == 52235508);
  assert(unsigned(flip_mask(0x31d0cf8, 52)) == 52235512);
  assert(unsigned(flip_mask(0x31d0cfc, 52)) == 52235516);
  assert(unsigned(flip_mask(0x31d0d00, 52)) == 52235520);
  assert(unsigned(flip_mask(0x31d0d04, 52)) == 52235524);
  assert(unsigned(flip_mask(0x31d0d08, 52)) == 52235528);
  assert(unsigned(flip_mask(0x31d0d0c, 52)) == 52235532);
  assert(unsigned(flip_mask(0x31d0d10, 52)) == 52235536);
  assert(unsigned(flip_mask(0x31d0d14, 52)) == 52235540);
  assert(unsigned(flip_mask(0x31d0d24, 52)) == 52235556);
  assert(unsigned(flip_mask(0x31d0d28, 52)) == 52235560);
  assert(unsigned(flip_mask(0x31d0d2c, 52)) == 52235564);
  assert(unsigned(flip_mask(0x31d0d30, 52)) == 52235568);
  assert(unsigned(flip_mask(0x31d0d34, 52)) == 52235572);
  assert(unsigned(flip_mask(0x31d0d38, 52)) == 52235576);
  assert(unsigned(flip_mask(0x31d0d3c, 52)) == 52235580);
  assert(unsigned(flip_mask(0x31d0d48, 52)) == 52235592);
  assert(unsigned(flip_mask(0x31d0d4c, 52)) == 52235596);
  assert(unsigned(flip_mask(0x31d0d50, 52)) == 52235600);
  assert(unsigned(flip_mask(0x31d0d54, 52)) == 52235604);
  assert(unsigned(flip_mask(0x31d0d64, 52)) == 52235620);
  assert(unsigned(flip_mask(0x31d0d68, 52)) == 52235624);
  assert(unsigned(flip_mask(0x31d0d6c, 52)) == 52235628);
  assert(unsigned(flip_mask(0x31d0d70, 52)) == 52235632);
  assert(unsigned(flip_mask(0x31d0d74, 52)) == 52235636);
  assert(unsigned(flip_mask(0x31d0d78, 52)) == 52235640);
  assert(unsigned(flip_mask(0x31d0d7c, 52)) == 52235644);
  assert(unsigned(flip_mask(0x31d0d80, 52)) == 52235648);
  assert(unsigned(flip_mask(0x31d0d84, 52)) == 52235652);
  assert(unsigned(flip_mask(0x31d0d88, 52)) == 52235656);
  assert(unsigned(flip_mask(0x31d0d8c, 52)) == 52235660);
  assert(unsigned(flip_mask(0x31d0d90, 52)) == 52235664);
  assert(unsigned(flip_mask(0x31d0d94, 52)) == 52235668);
  assert(unsigned(flip_mask(0x31d0d98, 52)) == 52235672);
  assert(unsigned(flip_mask(0x31d0d9c, 52)) == 52235676);
  assert(unsigned(flip_mask(0x31d0da0, 52)) == 52235680);
  assert(unsigned(flip_mask(0x31d0da4, 52)) == 52235684);
  assert(unsigned(flip_mask(0x31d0da8, 52)) == 52235688);
  assert(unsigned(flip_mask(0x31d0dac, 52)) == 52235692);
  assert(unsigned(flip_mask(0x31d0db0, 52)) == 52235696);
  assert(unsigned(flip_mask(0x31d0db4, 52)) == 52235700);
  assert(unsigned(flip_mask(0x31d0db8, 52)) == 52235704);
  assert(unsigned(flip_mask(0x31d0dbc, 52)) == 52235708);
  assert(unsigned(flip_mask(0x31d0dc0, 52)) == 52235712);
  assert(unsigned(flip_mask(0x31d0dc4, 52)) == 52235716);
  assert(unsigned(flip_mask(0x31d0dc8, 52)) == 52235720);
  assert(unsigned(flip_mask(0x31d0dcc, 52)) == 52235724);
  assert(unsigned(flip_mask(0x31d0dd0, 52)) == 52235728);
  assert(unsigned(flip_mask(0x31d0dd4, 52)) == 52235732);
  assert(unsigned(flip_mask(0x31d0dd8, 52)) == 52235736);
  assert(unsigned(flip_mask(0x31d0ddc, 52)) == 52235740);
  assert(unsigned(flip_mask(0x31d0de0, 52)) == 52235744);
  assert(unsigned(flip_mask(0x31d0de4, 52)) == 52235748);
  assert(unsigned(flip_mask(0x31d0de8, 52)) == 52235752);
  assert(unsigned(flip_mask(0x31d0dec, 52)) == 52235756);
  assert(unsigned(flip_mask(0x31d0df0, 52)) == 52235760);
  assert(unsigned(flip_mask(0x31d0df4, 52)) == 52235764);
  assert(unsigned(flip_mask(0x31d0df8, 52)) == 52235768);
  assert(unsigned(flip_mask(0x31d0dfc, 52)) == 52235772);
  assert(unsigned(flip_mask(0x31d0e00, 52)) == 52235776);
  assert(unsigned(flip_mask(0x31d0e04, 52)) == 52235780);
  assert(unsigned(flip_mask(0x31d0e08, 52)) == 52235784);
  assert(unsigned(flip_mask(0x31d0e0c, 52)) == 52235788);
  assert(unsigned(flip_mask(0x31d0e10, 52)) == 52235792);
  assert(unsigned(flip_mask(0x31d0e14, 52)) == 52235796);
  assert(unsigned(flip_mask(0x31d0e18, 52)) == 52235800);
  assert(unsigned(flip_mask(0x31d0e1c, 52)) == 52235804);
  assert(unsigned(flip_mask(0x31d0e20, 52)) == 52235808);
  assert(unsigned(flip_mask(0x31d0e24, 52)) == 52235812);
  assert(unsigned(flip_mask(0x31d0e28, 52)) == 52235816);
  assert(unsigned(flip_mask(0x31d0e2c, 52)) == 52235820);
  assert(unsigned(flip_mask(0x31d0e30, 52)) == 52235824);
  assert(unsigned(flip_mask(0x31d0e34, 52)) == 52235828);
  assert(unsigned(flip_mask(0x31d0e38, 52)) == 52235832);
  assert(unsigned(flip_mask(0x31d0e40, 52)) == 52235840);
  assert(unsigned(flip_mask(0x31d0e48, 52)) == 52235848);
  assert(unsigned(flip_mask(0x31d0e50, 52)) == 52235856);
  assert(unsigned(flip_mask(0x31d0e58, 52)) == 52235864);
  assert(unsigned(flip_mask(0x31d0e5c, 52)) == 52235868);
  assert(unsigned(flip_mask(0x31d0e60, 52)) == 52235872);
  assert(unsigned(flip_mask(0x31d0e64, 52)) == 52235876);
  assert(unsigned(flip_mask(0x31d0e68, 52)) == 52235880);
  assert(unsigned(flip_mask(0x31d0e6c, 52)) == 52235884);
  assert(unsigned(flip_mask(0x31d0e70, 52)) == 52235888);
  assert(unsigned(flip_mask(0x31d0e74, 52)) == 52235892);
  assert(unsigned(flip_mask(0x31d0e78, 52)) == 52235896);
  assert(unsigned(flip_mask(0x31d0e7c, 52)) == 52235900);
  assert(unsigned(flip_mask(0x31d0e80, 52)) == 52235904);
  assert(unsigned(flip_mask(0x31d0e84, 52)) == 52235908);
  assert(unsigned(flip_mask(0x31d0e88, 52)) == 52235912);
  assert(unsigned(flip_mask(0x31d0e8c, 52)) == 52235916);
  assert(unsigned(flip_mask(0x31d0f3c, 52)) == 52236092);
  assert(unsigned(flip_mask(0x31d0f40, 52)) == 52236096);
  assert(unsigned(flip_mask(0x31d0f44, 52)) == 52236100);
  assert(unsigned(flip_mask(0x31d0f48, 52)) == 52236104);
  assert(unsigned(flip_mask(0x31d0f4c, 52)) == 52236108);
  assert(unsigned(flip_mask(0x31d0f50, 52)) == 52236112);
  assert(unsigned(flip_mask(0x31d0f54, 52)) == 52236116);
  assert(unsigned(flip_mask(0x31d0f58, 52)) == 52236120);
  assert(unsigned(flip_mask(0x31d0f5c, 52)) == 52236124);
  assert(unsigned(flip_mask(0x31d0f60, 52)) == 52236128);
  assert(unsigned(flip_mask(0x31d0f64, 52)) == 52236132);
  assert(unsigned(flip_mask(0x31d0f68, 52)) == 52236136);
  assert(unsigned(flip_mask(0x31d0f6c, 52)) == 52236140);
  assert(unsigned(flip_mask(0x31d0f70, 52)) == 52236144);
  assert(unsigned(flip_mask(0x31d0f74, 52)) == 52236148);
  assert(unsigned(flip_mask(0x31d0f78, 52)) == 52236152);
  assert(unsigned(flip_mask(0x31d0f7c, 52)) == 52236156);
  assert(unsigned(flip_mask(0x31d0f8c, 52)) == 52236172);
  assert(unsigned(flip_mask(0x31d0f90, 52)) == 52236176);
  assert(unsigned(flip_mask(0x31d0f94, 52)) == 52236180);
  assert(unsigned(flip_mask(0x31d0f98, 52)) == 52236184);
  assert(unsigned(flip_mask(0x31d0f9c, 52)) == 52236188);
  assert(unsigned(flip_mask(0x31d0fa0, 52)) == 52236192);
  assert(unsigned(flip_mask(0x31d0fb0, 52)) == 52236208);
  assert(unsigned(flip_mask(0x31d0fb4, 52)) == 52236212);
  assert(unsigned(flip_mask(0x31d0fb8, 52)) == 52236216);
  assert(unsigned(flip_mask(0x31d0fbc, 52)) == 52236220);
  assert(unsigned(flip_mask(0x31d0fc0, 52)) == 52236224);
  assert(unsigned(flip_mask(0x31d0fc4, 52)) == 52236228);
  assert(unsigned(flip_mask(0x31d105c, 52)) == 52236380);
  assert(unsigned(flip_mask(0x31d1060, 52)) == 52236384);
  assert(unsigned(flip_mask(0x31d1064, 52)) == 52236388);
  assert(unsigned(flip_mask(0x31d1068, 52)) == 52236392);
  assert(unsigned(flip_mask(0x31d106c, 52)) == 52236396);
  assert(unsigned(flip_mask(0x31d1078, 52)) == 52236408);
  assert(unsigned(flip_mask(0x31d107c, 52)) == 52236412);
  assert(unsigned(flip_mask(0x31d1080, 52)) == 52236416);
  assert(unsigned(flip_mask(0x31d1084, 52)) == 52236420);
  assert(unsigned(flip_mask(0x31d1088, 52)) == 52236424);
  assert(unsigned(flip_mask(0x31d108c, 52)) == 52236428);
  assert(unsigned(flip_mask(0x31d1090, 52)) == 52236432);
  assert(unsigned(flip_mask(0x31d1094, 52)) == 52236436);
  assert(unsigned(flip_mask(0x31d10a0, 52)) == 52236448);
  assert(unsigned(flip_mask(0x31d10a4, 52)) == 52236452);
  assert(unsigned(flip_mask(0x31d10a8, 52)) == 52236456);
  assert(unsigned(flip_mask(0x31d10b0, 52)) == 52236464);
  assert(unsigned(flip_mask(0x31d10b8, 52)) == 52236472);
  assert(unsigned(flip_mask(0x31d10bc, 52)) == 52236476);
  assert(unsigned(flip_mask(0x31d10c0, 52)) == 52236480);
  assert(unsigned(flip_mask(0x31d10c4, 52)) == 52236484);
  assert(unsigned(flip_mask(0x31d10c8, 52)) == 52236488);
  assert(unsigned(flip_mask(0x31d10cc, 52)) == 52236492);
  assert(unsigned(flip_mask(0x31d10d0, 52)) == 52236496);
  assert(unsigned(flip_mask(0x31d10d4, 52)) == 52236500);
  assert(unsigned(flip_mask(0x31d10d8, 52)) == 52236504);
  assert(unsigned(flip_mask(0x31d10dc, 52)) == 52236508);
  assert(unsigned(flip_mask(0x31d10e0, 52)) == 52236512);
  assert(unsigned(flip_mask(0x31d10e4, 52)) == 52236516);
  assert(unsigned(flip_mask(0x31d10e8, 52)) == 52236520);
  assert(unsigned(flip_mask(0x31d10ec, 52)) == 52236524);
  assert(unsigned(flip_mask(0x31d10f0, 52)) == 52236528);
  assert(unsigned(flip_mask(0x31d10f4, 52)) == 52236532);
  assert(unsigned(flip_mask(0x31d10f8, 52)) == 52236536);
  assert(unsigned(flip_mask(0x31d1100, 52)) == 52236544);
  assert(unsigned(flip_mask(0x31d1108, 52)) == 52236552);
  assert(unsigned(flip_mask(0x31d1110, 52)) == 52236560);
  assert(unsigned(flip_mask(0x31d1118, 52)) == 52236568);
  assert(unsigned(flip_mask(0x31d111c, 52)) == 52236572);
  assert(unsigned(flip_mask(0x31d1120, 52)) == 52236576);
  assert(unsigned(flip_mask(0x31d1124, 52)) == 52236580);
  assert(unsigned(flip_mask(0x31d1128, 52)) == 52236584);
  assert(unsigned(flip_mask(0x31d112c, 52)) == 52236588);
  assert(unsigned(flip_mask(0x31d1130, 52)) == 52236592);
  assert(unsigned(flip_mask(0x31d1134, 52)) == 52236596);
  assert(unsigned(flip_mask(0x31d1138, 52)) == 52236600);
  assert(unsigned(flip_mask(0x31d113c, 52)) == 52236604);
  assert(unsigned(flip_mask(0x31d1140, 52)) == 52236608);
  assert(unsigned(flip_mask(0x31d1144, 52)) == 52236612);
  assert(unsigned(flip_mask(0x31d1148, 52)) == 52236616);
  assert(unsigned(flip_mask(0x31d114c, 52)) == 52236620);
  assert(unsigned(flip_mask(0x31d1150, 52)) == 52236624);
  assert(unsigned(flip_mask(0x31d1154, 52)) == 52236628);
  assert(unsigned(flip_mask(0x31d1158, 52)) == 52236632);
  assert(unsigned(flip_mask(0x31d115c, 52)) == 52236636);
  assert(unsigned(flip_mask(0x31d1160, 52)) == 52236640);
  assert(unsigned(flip_mask(0x31d1164, 52)) == 52236644);
  assert(unsigned(flip_mask(0x31d1168, 52)) == 52236648);
  assert(unsigned(flip_mask(0x31d1170, 52)) == 52236656);
  assert(unsigned(flip_mask(0x31d1178, 52)) == 52236664);
  assert(unsigned(flip_mask(0x31d1180, 52)) == 52236672);
  assert(unsigned(flip_mask(0x31d1184, 52)) == 52236676);
  assert(unsigned(flip_mask(0x31d1188, 52)) == 52236680);
  assert(unsigned(flip_mask(0x31d118c, 52)) == 52236684);
  assert(unsigned(flip_mask(0x31d1190, 52)) == 52236688);
  assert(unsigned(flip_mask(0x31d1194, 52)) == 52236692);
  assert(unsigned(flip_mask(0x31d1198, 52)) == 52236696);
  assert(unsigned(flip_mask(0x31d119c, 52)) == 52236700);
  assert(unsigned(flip_mask(0x31d11a0, 52)) == 52236704);
  assert(unsigned(flip_mask(0x31d11a4, 52)) == 52236708);
  assert(unsigned(flip_mask(0x31d11a8, 52)) == 52236712);
  assert(unsigned(flip_mask(0x31d11ac, 52)) == 52236716);
  assert(unsigned(flip_mask(0x31d11b0, 52)) == 52236720);
  assert(unsigned(flip_mask(0x31d11b4, 52)) == 52236724);
  assert(unsigned(flip_mask(0x31d11b8, 52)) == 52236728);
  assert(unsigned(flip_mask(0x31d11bc, 52)) == 52236732);
  assert(unsigned(flip_mask(0x31d11c0, 52)) == 52236736);
  assert(unsigned(flip_mask(0x31d11c4, 52)) == 52236740);
  assert(unsigned(flip_mask(0x31d11c8, 52)) == 52236744);
  assert(unsigned(flip_mask(0x31d11cc, 52)) == 52236748);
  assert(unsigned(flip_mask(0x31d11d0, 52)) == 52236752);
  assert(unsigned(flip_mask(0x31d11d4, 52)) == 52236756);
  assert(unsigned(flip_mask(0x31d11d8, 52)) == 52236760);
  assert(unsigned(flip_mask(0x31d11dc, 52)) == 52236764);
  assert(unsigned(flip_mask(0x31d11e0, 52)) == 52236768);
  assert(unsigned(flip_mask(0x31d11ec, 52)) == 52236780);
  assert(unsigned(flip_mask(0x31d11f0, 52)) == 52236784);
  assert(unsigned(flip_mask(0x31d11f8, 52)) == 52236792);
  assert(unsigned(flip_mask(0x31d11fc, 52)) == 52236796);
  assert(unsigned(flip_mask(0x31d1200, 52)) == 52236800);
  assert(unsigned(flip_mask(0x31d1204, 52)) == 52236804);
  assert(unsigned(flip_mask(0x31d1208, 52)) == 52236808);
  assert(unsigned(flip_mask(0x31d120c, 52)) == 52236812);
  assert(unsigned(flip_mask(0x31d1220, 52)) == 52236832);
  assert(unsigned(flip_mask(0x31d1224, 52)) == 52236836);
  assert(unsigned(flip_mask(0x31d1254, 52)) == 52236884);
  assert(unsigned(flip_mask(0x31d1258, 52)) == 52236888);
  assert(unsigned(flip_mask(0x31d125c, 52)) == 52236892);
  assert(unsigned(flip_mask(0x31d129c, 52)) == 52236956);
  assert(unsigned(flip_mask(0x31d12a0, 52)) == 52236960);
  assert(unsigned(flip_mask(0x31d12a4, 52)) == 52236964);
  assert(unsigned(flip_mask(0x31d12a8, 52)) == 52236968);
  assert(unsigned(flip_mask(0x31d12ac, 52)) == 52236972);
  assert(unsigned(flip_mask(0x31d12b0, 52)) == 52236976);
  assert(unsigned(flip_mask(0x31d12b4, 52)) == 52236980);
  assert(unsigned(flip_mask(0x31d12b8, 52)) == 52236984);
  assert(unsigned(flip_mask(0x31d12bc, 52)) == 52236988);
  assert(unsigned(flip_mask(0x31d12c0, 52)) == 52236992);
  assert(unsigned(flip_mask(0x31d12c4, 52)) == 52236996);
  assert(unsigned(flip_mask(0x31d12c8, 52)) == 52237000);
  assert(unsigned(flip_mask(0x31d12cc, 52)) == 52237004);
  assert(unsigned(flip_mask(0x31d12d0, 52)) == 52237008);
  assert(unsigned(flip_mask(0x31d12d4, 52)) == 52237012);
  assert(unsigned(flip_mask(0x31d12d8, 52)) == 52237016);
  assert(unsigned(flip_mask(0x31d12dc, 52)) == 52237020);
  assert(unsigned(flip_mask(0x31d12e0, 52)) == 52237024);
  assert(unsigned(flip_mask(0x31d12e4, 52)) == 52237028);
  assert(unsigned(flip_mask(0x31d12e8, 52)) == 52237032);
  assert(unsigned(flip_mask(0x31d12ec, 52)) == 52237036);
  assert(unsigned(flip_mask(0x31d12f0, 52)) == 52237040);
  assert(unsigned(flip_mask(0x31d12f4, 52)) == 52237044);
  assert(unsigned(flip_mask(0x31d12f8, 52)) == 52237048);
  assert(unsigned(flip_mask(0x31d12fc, 52)) == 52237052);
  assert(unsigned(flip_mask(0x31d1300, 52)) == 52237056);
  assert(unsigned(flip_mask(0x31d1304, 52)) == 52237060);
  assert(unsigned(flip_mask(0x31d1308, 52)) == 52237064);
  assert(unsigned(flip_mask(0x31d130c, 52)) == 52237068);
  assert(unsigned(flip_mask(0x31d1310, 52)) == 52237072);
  assert(unsigned(flip_mask(0x31d1314, 52)) == 52237076);
  assert(unsigned(flip_mask(0x31d1318, 52)) == 52237080);
  assert(unsigned(flip_mask(0x31d131c, 52)) == 52237084);
  assert(unsigned(flip_mask(0x31d1320, 52)) == 52237088);
  assert(unsigned(flip_mask(0x31d1324, 52)) == 52237092);
  assert(unsigned(flip_mask(0x31d1328, 52)) == 52237096);
  assert(unsigned(flip_mask(0x31d132c, 52)) == 52237100);
  assert(unsigned(flip_mask(0x31d1330, 52)) == 52237104);
  assert(unsigned(flip_mask(0x31d1334, 52)) == 52237108);
  assert(unsigned(flip_mask(0x31d1338, 52)) == 52237112);
  assert(unsigned(flip_mask(0x31d133c, 52)) == 52237116);
  assert(unsigned(flip_mask(0x31d1340, 52)) == 52237120);
  assert(unsigned(flip_mask(0x31d1344, 52)) == 52237124);
  assert(unsigned(flip_mask(0x31d1348, 52)) == 52237128);
  assert(unsigned(flip_mask(0x31d134c, 52)) == 52237132);
  assert(unsigned(flip_mask(0x31d1350, 52)) == 52237136);
  assert(unsigned(flip_mask(0x31d1354, 52)) == 52237140);
  assert(unsigned(flip_mask(0x31d1358, 52)) == 52237144);
  assert(unsigned(flip_mask(0x31d135c, 52)) == 52237148);
  assert(unsigned(flip_mask(0x31d1360, 52)) == 52237152);
  assert(unsigned(flip_mask(0x31d1364, 52)) == 52237156);
  assert(unsigned(flip_mask(0x31d1368, 52)) == 52237160);
  assert(unsigned(flip_mask(0x31d136c, 52)) == 52237164);
  assert(unsigned(flip_mask(0x31d1370, 52)) == 52237168);
  assert(unsigned(flip_mask(0x31d1374, 52)) == 52237172);
  assert(unsigned(flip_mask(0x31d1378, 52)) == 52237176);
  assert(unsigned(flip_mask(0x31d137c, 52)) == 52237180);
  assert(unsigned(flip_mask(0x31d1380, 52)) == 52237184);
  assert(unsigned(flip_mask(0x31d1384, 52)) == 52237188);
  assert(unsigned(flip_mask(0x31d1388, 52)) == 52237192);
  assert(unsigned(flip_mask(0x31d1390, 52)) == 52237200);
  assert(unsigned(flip_mask(0x31d1398, 52)) == 52237208);
  assert(unsigned(flip_mask(0x31d13a0, 52)) == 52237216);
  assert(unsigned(flip_mask(0x31d13a8, 52)) == 52237224);
  assert(unsigned(flip_mask(0x31d13b0, 52)) == 52237232);
  assert(unsigned(flip_mask(0x31d13b8, 52)) == 52237240);
  assert(unsigned(flip_mask(0x31d13c0, 52)) == 52237248);
  assert(unsigned(flip_mask(0x31d13c8, 52)) == 52237256);
  assert(unsigned(flip_mask(0x31d13d0, 52)) == 52237264);
  assert(unsigned(flip_mask(0x31d13d8, 52)) == 52237272);
  assert(unsigned(flip_mask(0x31d13e0, 52)) == 52237280);
  assert(unsigned(flip_mask(0x31d13e8, 52)) == 52237288);
  assert(unsigned(flip_mask(0x31d13f0, 52)) == 52237296);
  assert(unsigned(flip_mask(0x31d13f8, 52)) == 52237304);
  assert(unsigned(flip_mask(0x31d1400, 52)) == 52237312);
  assert(unsigned(flip_mask(0x31d1408, 52)) == 52237320);
  assert(unsigned(flip_mask(0x31d1410, 52)) == 52237328);
  assert(unsigned(flip_mask(0x31d1418, 52)) == 52237336);
  assert(unsigned(flip_mask(0x31d1420, 52)) == 52237344);
  assert(unsigned(flip_mask(0x31d1428, 52)) == 52237352);
  assert(unsigned(flip_mask(0x31d1430, 52)) == 52237360);
  assert(unsigned(flip_mask(0x31d1438, 52)) == 52237368);
  assert(unsigned(flip_mask(0x31d1440, 52)) == 52237376);
  assert(unsigned(flip_mask(0x31d1448, 52)) == 52237384);
  assert(unsigned(flip_mask(0x31d1450, 52)) == 52237392);
  assert(unsigned(flip_mask(0x31d1458, 52)) == 52237400);
  assert(unsigned(flip_mask(0x31d1460, 52)) == 52237408);
  assert(unsigned(flip_mask(0x31d1468, 52)) == 52237416);
  assert(unsigned(flip_mask(0x31d1470, 52)) == 52237424);
  assert(unsigned(flip_mask(0x31d1478, 52)) == 52237432);
  assert(unsigned(flip_mask(0x31d1480, 52)) == 52237440);
  assert(unsigned(flip_mask(0x31d1488, 52)) == 52237448);
  assert(unsigned(flip_mask(0x31d1490, 52)) == 52237456);
  assert(unsigned(flip_mask(0x31d1498, 52)) == 52237464);
  assert(unsigned(flip_mask(0x31d14a0, 52)) == 52237472);
  assert(unsigned(flip_mask(0x31d14a8, 52)) == 52237480);
  assert(unsigned(flip_mask(0x31d14b0, 52)) == 52237488);
  assert(unsigned(flip_mask(0x31d14b8, 52)) == 52237496);
  assert(unsigned(flip_mask(0x31d14c0, 52)) == 52237504);
  assert(unsigned(flip_mask(0x31d14c8, 52)) == 52237512);
  assert(unsigned(flip_mask(0x31d14d0, 52)) == 52237520);
  assert(unsigned(flip_mask(0x31d14d8, 52)) == 52237528);
  assert(unsigned(flip_mask(0x31d14e0, 52)) == 52237536);
  assert(unsigned(flip_mask(0x31d14e8, 52)) == 52237544);
  assert(unsigned(flip_mask(0x31d14f0, 52)) == 52237552);
  assert(unsigned(flip_mask(0x31d14f8, 52)) == 52237560);
  assert(unsigned(flip_mask(0x31d1500, 52)) == 52237568);
  assert(unsigned(flip_mask(0x31d1508, 52)) == 52237576);
  assert(unsigned(flip_mask(0x31d1510, 52)) == 52237584);
  assert(unsigned(flip_mask(0x31d1518, 52)) == 52237592);
  assert(unsigned(flip_mask(0x31d1520, 52)) == 52237600);
  assert(unsigned(flip_mask(0x31d1528, 52)) == 52237608);
  assert(unsigned(flip_mask(0x31d1530, 52)) == 52237616);
  assert(unsigned(flip_mask(0x31d1538, 52)) == 52237624);
  assert(unsigned(flip_mask(0x31d1540, 52)) == 52237632);
  assert(unsigned(flip_mask(0x31d1548, 52)) == 52237640);
  assert(unsigned(flip_mask(0x31d1550, 52)) == 52237648);
  assert(unsigned(flip_mask(0x31d1558, 52)) == 52237656);
  assert(unsigned(flip_mask(0x31d1560, 52)) == 52237664);
  assert(unsigned(flip_mask(0x31d1568, 52)) == 52237672);
  assert(unsigned(flip_mask(0x31d1570, 52)) == 52237680);
  assert(unsigned(flip_mask(0x31d1578, 52)) == 52237688);
  assert(unsigned(flip_mask(0x31d1580, 52)) == 52237696);
  assert(unsigned(flip_mask(0x31d1588, 52)) == 52237704);
  assert(unsigned(flip_mask(0x31d1590, 52)) == 52237712);
  assert(unsigned(flip_mask(0x31d1598, 52)) == 52237720);
  assert(unsigned(flip_mask(0x31d15a0, 52)) == 52237728);
  assert(unsigned(flip_mask(0x31d15a8, 52)) == 52237736);
  assert(unsigned(flip_mask(0x31d15b0, 52)) == 52237744);
  assert(unsigned(flip_mask(0x31d15b8, 52)) == 52237752);
  assert(unsigned(flip_mask(0x31d15c0, 52)) == 52237760);
  assert(unsigned(flip_mask(0x31d15c8, 52)) == 52237768);
  assert(unsigned(flip_mask(0x31d15d0, 52)) == 52237776);
  assert(unsigned(flip_mask(0x31d15d8, 52)) == 52237784);
  assert(unsigned(flip_mask(0x31d15e0, 52)) == 52237792);
  assert(unsigned(flip_mask(0x31d15e8, 52)) == 52237800);
  assert(unsigned(flip_mask(0x31d15f0, 52)) == 52237808);
  assert(unsigned(flip_mask(0x31d15f8, 52)) == 52237816);
  assert(unsigned(flip_mask(0x31d1600, 52)) == 52237824);
  assert(unsigned(flip_mask(0x31d1608, 52)) == 52237832);
  assert(unsigned(flip_mask(0x31d1610, 52)) == 52237840);
  assert(unsigned(flip_mask(0x31d1618, 52)) == 52237848);
  assert(unsigned(flip_mask(0x31d1620, 52)) == 52237856);
  assert(unsigned(flip_mask(0x31d1628, 52)) == 52237864);
  assert(unsigned(flip_mask(0x31d1630, 52)) == 52237872);
  assert(unsigned(flip_mask(0x31d1638, 52)) == 52237880);
  assert(unsigned(flip_mask(0x31d1640, 52)) == 52237888);
  assert(unsigned(flip_mask(0x31d1648, 52)) == 52237896);
  assert(unsigned(flip_mask(0x31d1650, 52)) == 52237904);
  assert(unsigned(flip_mask(0x31d1658, 52)) == 52237912);
  assert(unsigned(flip_mask(0x31d1660, 52)) == 52237920);
  assert(unsigned(flip_mask(0x31d1668, 52)) == 52237928);
  assert(unsigned(flip_mask(0x31d1670, 52)) == 52237936);
  assert(unsigned(flip_mask(0x31d1678, 52)) == 52237944);
  assert(unsigned(flip_mask(0x31d1680, 52)) == 52237952);
  assert(unsigned(flip_mask(0x31d1688, 52)) == 52237960);
  assert(unsigned(flip_mask(0x31d1690, 52)) == 52237968);
  assert(unsigned(flip_mask(0x31d1698, 52)) == 52237976);
  assert(unsigned(flip_mask(0x31d16a0, 52)) == 52237984);
  assert(unsigned(flip_mask(0x31d16a8, 52)) == 52237992);
  assert(unsigned(flip_mask(0x31d16b0, 52)) == 52238000);
  assert(unsigned(flip_mask(0x31d16b8, 52)) == 52238008);
  assert(unsigned(flip_mask(0x31d16c0, 52)) == 52238016);
  assert(unsigned(flip_mask(0x31d16c8, 52)) == 52238024);
  assert(unsigned(flip_mask(0x31d16d0, 52)) == 52238032);
  assert(unsigned(flip_mask(0x31d16d8, 52)) == 52238040);
  assert(unsigned(flip_mask(0x31d16e0, 52)) == 52238048);
  assert(unsigned(flip_mask(0x31d16e8, 52)) == 52238056);
  assert(unsigned(flip_mask(0x31d16f0, 52)) == 52238064);
  assert(unsigned(flip_mask(0x31d16f8, 52)) == 52238072);
  assert(unsigned(flip_mask(0x31d1700, 52)) == 52238080);
  assert(unsigned(flip_mask(0x31d1708, 52)) == 52238088);
  assert(unsigned(flip_mask(0x31d1710, 52)) == 52238096);
  assert(unsigned(flip_mask(0x31d1718, 52)) == 52238104);
  assert(unsigned(flip_mask(0x31d1720, 52)) == 52238112);
  assert(unsigned(flip_mask(0x31d1728, 52)) == 52238120);
  assert(unsigned(flip_mask(0x31d1730, 52)) == 52238128);
  assert(unsigned(flip_mask(0x31d1738, 52)) == 52238136);
  assert(unsigned(flip_mask(0x31d1740, 52)) == 52238144);
  assert(unsigned(flip_mask(0x31d1748, 52)) == 52238152);
  assert(unsigned(flip_mask(0x31d1750, 52)) == 52238160);
  assert(unsigned(flip_mask(0x31d1758, 52)) == 52238168);
  assert(unsigned(flip_mask(0x31d1760, 52)) == 52238176);
  assert(unsigned(flip_mask(0x31d1768, 52)) == 52238184);
  assert(unsigned(flip_mask(0x31d1770, 52)) == 52238192);
  assert(unsigned(flip_mask(0x31d1778, 52)) == 52238200);
  assert(unsigned(flip_mask(0x31d17d0, 52)) == 52238288);
  assert(unsigned(flip_mask(0x31d17d4, 52)) == 52238292);
  assert(unsigned(flip_mask(0x31d17e0, 52)) == 52238304);
  assert(unsigned(flip_mask(0x31d17e8, 52)) == 52238312);
  assert(unsigned(flip_mask(0x31d17f0, 52)) == 52238320);
  assert(unsigned(flip_mask(0x31d17f4, 52)) == 52238324);
  assert(unsigned(flip_mask(0x31d17f8, 52)) == 52238328);
  assert(unsigned(flip_mask(0x31d1800, 52)) == 52238336);
  assert(unsigned(flip_mask(0x31d1808, 52)) == 52238344);
  assert(unsigned(flip_mask(0x31d1810, 52)) == 52238352);
  assert(unsigned(flip_mask(0x31d1818, 52)) == 52238360);
  assert(unsigned(flip_mask(0x31d1820, 52)) == 52238368);
  assert(unsigned(flip_mask(0x31d1828, 52)) == 52238376);
  assert(unsigned(flip_mask(0x31d1830, 52)) == 52238384);
  assert(unsigned(flip_mask(0x31d1838, 52)) == 52238392);
  assert(unsigned(flip_mask(0x31d1840, 52)) == 52238400);
  assert(unsigned(flip_mask(0x31d1848, 52)) == 52238408);
  assert(unsigned(flip_mask(0x31d1850, 52)) == 52238416);
  assert(unsigned(flip_mask(0x31d1858, 52)) == 52238424);
  assert(unsigned(flip_mask(0x31d1860, 52)) == 52238432);
  assert(unsigned(flip_mask(0x31d1868, 52)) == 52238440);
  assert(unsigned(flip_mask(0x31d1870, 52)) == 52238448);
  assert(unsigned(flip_mask(0x31d1878, 52)) == 52238456);
  assert(unsigned(flip_mask(0x31d1880, 52)) == 52238464);
  assert(unsigned(flip_mask(0x31d1888, 52)) == 52238472);
  assert(unsigned(flip_mask(0x31d1890, 52)) == 52238480);
  assert(unsigned(flip_mask(0x31d1898, 52)) == 52238488);
  assert(unsigned(flip_mask(0x31d18a0, 52)) == 52238496);
  assert(unsigned(flip_mask(0x31d18a8, 52)) == 52238504);
  assert(unsigned(flip_mask(0x31d18b0, 52)) == 52238512);
  assert(unsigned(flip_mask(0x31d18b8, 52)) == 52238520);
  assert(unsigned(flip_mask(0x31d18c0, 52)) == 52238528);
  assert(unsigned(flip_mask(0x31d18d0, 52)) == 52238544);
  assert(unsigned(flip_mask(0x31d18d8, 52)) == 52238552);
  assert(unsigned(flip_mask(0x31d18e0, 52)) == 52238560);
  assert(unsigned(flip_mask(0x31d18e8, 52)) == 52238568);
  assert(unsigned(flip_mask(0x31d18f0, 52)) == 52238576);
  assert(unsigned(flip_mask(0x31d18f8, 52)) == 52238584);
  assert(unsigned(flip_mask(0x31d1900, 52)) == 52238592);
  assert(unsigned(flip_mask(0x31d1908, 52)) == 52238600);
  assert(unsigned(flip_mask(0x31d1910, 52)) == 52238608);
  assert(unsigned(flip_mask(0x31d1918, 52)) == 52238616);
  assert(unsigned(flip_mask(0x31d1920, 52)) == 52238624);
  assert(unsigned(flip_mask(0x31d1928, 52)) == 52238632);
  assert(unsigned(flip_mask(0x31d1930, 52)) == 52238640);
  assert(unsigned(flip_mask(0x31d1938, 52)) == 52238648);
  assert(unsigned(flip_mask(0x31d1940, 52)) == 52238656);
  assert(unsigned(flip_mask(0x31d1948, 52)) == 52238664);
  assert(unsigned(flip_mask(0x31d1950, 52)) == 52238672);
  assert(unsigned(flip_mask(0x31d1958, 52)) == 52238680);
  assert(unsigned(flip_mask(0x31d1960, 52)) == 52238688);
  assert(unsigned(flip_mask(0x31d1968, 52)) == 52238696);
  assert(unsigned(flip_mask(0x31d1970, 52)) == 52238704);
  assert(unsigned(flip_mask(0x31d1b80, 52)) == 52239232);
  assert(unsigned(flip_mask(0x31d1b88, 52)) == 52239240);
  assert(unsigned(flip_mask(0x31d1b90, 52)) == 52239248);
  assert(unsigned(flip_mask(0x31d1b98, 52)) == 52239256);
  assert(unsigned(flip_mask(0x31d1ba0, 52)) == 52239264);
  assert(unsigned(flip_mask(0x31d1ba8, 52)) == 52239272);
  assert(unsigned(flip_mask(0x31d1bb0, 52)) == 52239280);
  assert(unsigned(flip_mask(0x31d1bb8, 52)) == 52239288);
  assert(unsigned(flip_mask(0x31d1bc0, 52)) == 52239296);
  assert(unsigned(flip_mask(0x31d1bc8, 52)) == 52239304);
  assert(unsigned(flip_mask(0x31d1bd0, 52)) == 52239312);
  assert(unsigned(flip_mask(0x31d1bd8, 52)) == 52239320);
  assert(unsigned(flip_mask(0x31d1be0, 52)) == 52239328);
  assert(unsigned(flip_mask(0x31d1be8, 52)) == 52239336);
  assert(unsigned(flip_mask(0x31d1bf0, 52)) == 52239344);
  assert(unsigned(flip_mask(0x31d1bf8, 52)) == 52239352);
  assert(unsigned(flip_mask(0x31d1c00, 52)) == 52239360);
  assert(unsigned(flip_mask(0x31d1c08, 52)) == 52239368);
  assert(unsigned(flip_mask(0x31d1c10, 52)) == 52239376);
  assert(unsigned(flip_mask(0x31d1c18, 52)) == 52239384);
  assert(unsigned(flip_mask(0x31d1c20, 52)) == 52239392);
  assert(unsigned(flip_mask(0x31d1c28, 52)) == 52239400);
  assert(unsigned(flip_mask(0x31d1c2c, 52)) == 52239404);
  assert(unsigned(flip_mask(0x31d1c30, 52)) == 52239408);
  assert(unsigned(flip_mask(0x31d1c34, 52)) == 52239412);
  assert(unsigned(flip_mask(0x31d1c38, 52)) == 52239416);
  assert(unsigned(flip_mask(0x31d1c3c, 52)) == 52239420);
  assert(unsigned(flip_mask(0x31d1c40, 52)) == 52239424);
  assert(unsigned(flip_mask(0x31d1c44, 52)) == 52239428);
  assert(unsigned(flip_mask(0x31d1c48, 52)) == 52239432);
  assert(unsigned(flip_mask(0x31d1c4c, 52)) == 52239436);
  assert(unsigned(flip_mask(0x31d1c50, 52)) == 52239440);
  assert(unsigned(flip_mask(0x31d1c54, 52)) == 52239444);
  assert(unsigned(flip_mask(0x31d1c58, 52)) == 52239448);
  assert(unsigned(flip_mask(0x31d1c5c, 52)) == 52239452);
  assert(unsigned(flip_mask(0x31d1c60, 52)) == 52239456);
  assert(unsigned(flip_mask(0x31d1c64, 52)) == 52239460);
  assert(unsigned(flip_mask(0x31d1c68, 52)) == 52239464);
  assert(unsigned(flip_mask(0x31d1c6c, 52)) == 52239468);
  assert(unsigned(flip_mask(0x31d1c70, 52)) == 52239472);
  assert(unsigned(flip_mask(0x31d1c74, 52)) == 52239476);
  assert(unsigned(flip_mask(0x31d1c78, 52)) == 52239480);
  assert(unsigned(flip_mask(0x34000, 52)) == 212992);
  assert(unsigned(flip_mask(0x34008, 52)) == 213000);
  assert(unsigned(flip_mask(0x34018, 52)) == 213016);
  assert(unsigned(flip_mask(0x34040, 52)) == 213056);
  assert(unsigned(flip_mask(0x34048, 52)) == 213064);
  assert(unsigned(flip_mask(0x38020, 52)) == 229408);
  assert(unsigned(flip_mask(0x38028, 52)) == 229416);
  assert(unsigned(flip_mask(0x38030, 52)) == 229424);
  assert(unsigned(flip_mask(0x38038, 52)) == 229432);
  assert(unsigned(flip_mask(0x38040, 52)) == 229440);
  assert(unsigned(flip_mask(0x3e000, 52)) == 253952);
  assert(unsigned(flip_mask(0x3f000000, 52)) == 1056964608);
  assert(unsigned(flip_mask(0x3f070000, 52)) == 1057423360);
  assert(unsigned(flip_mask(0x4000, 52)) == 16384);
  assert(unsigned(flip_mask(0x400000, 52)) == 4194304);
  assert(unsigned(flip_mask(0x40000000, 52)) == 1073741824);
  assert(unsigned(flip_mask(0x400001, 52)) == 4194305);
  assert(unsigned(flip_mask(0x400002, 52)) == 4194306);
  assert(unsigned(flip_mask(0x400003, 52)) == 4194307);
  assert(unsigned(flip_mask(0x400004, 52)) == 4194308);
  assert(unsigned(flip_mask(0x400005, 52)) == 4194309);
  assert(unsigned(flip_mask(0x400006, 52)) == 4194310);
  assert(unsigned(flip_mask(0x400007, 52)) == 4194311);
  assert(unsigned(flip_mask(0x400008, 52)) == 4194312);
  assert(unsigned(flip_mask(0x400009, 52)) == 4194313);
  assert(unsigned(flip_mask(0x40000a, 52)) == 4194314);
  assert(unsigned(flip_mask(0x40000b, 52)) == 4194315);
  assert(unsigned(flip_mask(0x40000c, 52)) == 4194316);
  assert(unsigned(flip_mask(0x40000d, 52)) == 4194317);
  assert(unsigned(flip_mask(0x40000e, 52)) == 4194318);
  assert(unsigned(flip_mask(0x42000, 52)) == 270336);
  assert(unsigned(flip_mask(0x43000, 52)) == 274432);
  assert(unsigned(flip_mask(0x43018, 52)) == 274456);
  assert(unsigned(flip_mask(0x43028, 52)) == 274472);
  assert(unsigned(flip_mask(0x48428, 52)) == 295976);
  assert(unsigned(flip_mask(0x4c800, 52)) == 313344);
  assert(unsigned(flip_mask(0x50000000, 52)) == 1342177280);
  assert(unsigned(flip_mask(0x54000, 52)) == 344064);
  assert(unsigned(flip_mask(0x58000, 52)) == 360448);
  assert(unsigned(flip_mask(0x5c000, 52)) == 376832);
  assert(unsigned(flip_mask(0x5c008, 52)) == 376840);
  assert(unsigned(flip_mask(0x5c018, 52)) == 376856);
  assert(unsigned(flip_mask(0x5c020, 52)) == 376864);
  assert(unsigned(flip_mask(0x5c028, 52)) == 376872);
  assert(unsigned(flip_mask(0x5c040, 52)) == 376896);
  assert(unsigned(flip_mask(0x5c048, 52)) == 376904);
  assert(unsigned(flip_mask(0x5c068, 52)) == 376936);
  assert(unsigned(flip_mask(0x60028, 52)) == 393256);
  assert(unsigned(flip_mask(0x60030, 52)) == 393264);
  assert(unsigned(flip_mask(0x60038, 52)) == 393272);
  assert(unsigned(flip_mask(0x60040, 52)) == 393280);
  assert(unsigned(flip_mask(0x60600, 52)) == 394752);
  assert(unsigned(flip_mask(0x608000, 52)) == 6324224);
  assert(unsigned(flip_mask(0x608004, 52)) == 6324228);
  assert(unsigned(flip_mask(0x608008, 52)) == 6324232);
  assert(unsigned(flip_mask(0x60800c, 52)) == 6324236);
  assert(unsigned(flip_mask(0x608010, 52)) == 6324240);
  assert(unsigned(flip_mask(0x608014, 52)) == 6324244);
  assert(unsigned(flip_mask(0x608018, 52)) == 6324248);
  assert(unsigned(flip_mask(0x60801c, 52)) == 6324252);
  assert(unsigned(flip_mask(0x608020, 52)) == 6324256);
  assert(unsigned(flip_mask(0x608024, 52)) == 6324260);
  assert(unsigned(flip_mask(0x608028, 52)) == 6324264);
  assert(unsigned(flip_mask(0x60802c, 52)) == 6324268);
  assert(unsigned(flip_mask(0x608030, 52)) == 6324272);
  assert(unsigned(flip_mask(0x608034, 52)) == 6324276);
  assert(unsigned(flip_mask(0x608038, 52)) == 6324280);
  assert(unsigned(flip_mask(0x60803c, 52)) == 6324284);
  assert(unsigned(flip_mask(0x608040, 52)) == 6324288);
  assert(unsigned(flip_mask(0x608044, 52)) == 6324292);
  assert(unsigned(flip_mask(0x608048, 52)) == 6324296);
  assert(unsigned(flip_mask(0x60804c, 52)) == 6324300);
  assert(unsigned(flip_mask(0x608050, 52)) == 6324304);
  assert(unsigned(flip_mask(0x608054, 52)) == 6324308);
  assert(unsigned(flip_mask(0x608058, 52)) == 6324312);
  assert(unsigned(flip_mask(0x60805c, 52)) == 6324316);
  assert(unsigned(flip_mask(0x608060, 52)) == 6324320);
  assert(unsigned(flip_mask(0x608064, 52)) == 6324324);
  assert(unsigned(flip_mask(0x608068, 52)) == 6324328);
  assert(unsigned(flip_mask(0x60806c, 52)) == 6324332);
  assert(unsigned(flip_mask(0x608070, 52)) == 6324336);
  assert(unsigned(flip_mask(0x608074, 52)) == 6324340);
  assert(unsigned(flip_mask(0x608078, 52)) == 6324344);
  assert(unsigned(flip_mask(0x60807c, 52)) == 6324348);
  assert(unsigned(flip_mask(0x608080, 52)) == 6324352);
  assert(unsigned(flip_mask(0x608088, 52)) == 6324360);
  assert(unsigned(flip_mask(0x608090, 52)) == 6324368);
  assert(unsigned(flip_mask(0x608094, 52)) == 6324372);
  assert(unsigned(flip_mask(0x608098, 52)) == 6324376);
  assert(unsigned(flip_mask(0x60809c, 52)) == 6324380);
  assert(unsigned(flip_mask(0x6080a0, 52)) == 6324384);
  assert(unsigned(flip_mask(0x6080a8, 52)) == 6324392);
  assert(unsigned(flip_mask(0x6080ac, 52)) == 6324396);
  assert(unsigned(flip_mask(0x6080b0, 52)) == 6324400);
  assert(unsigned(flip_mask(0x6080b4, 52)) == 6324404);
  assert(unsigned(flip_mask(0x6080b8, 52)) == 6324408);
  assert(unsigned(flip_mask(0x6080bc, 52)) == 6324412);
  assert(unsigned(flip_mask(0x6080c0, 52)) == 6324416);
  assert(unsigned(flip_mask(0x6080c4, 52)) == 6324420);
  assert(unsigned(flip_mask(0x6080c8, 52)) == 6324424);
  assert(unsigned(flip_mask(0x6080cc, 52)) == 6324428);
  assert(unsigned(flip_mask(0x6080d0, 52)) == 6324432);
  assert(unsigned(flip_mask(0x6080d4, 52)) == 6324436);
  assert(unsigned(flip_mask(0x6080d8, 52)) == 6324440);
  assert(unsigned(flip_mask(0x6080dc, 52)) == 6324444);
  assert(unsigned(flip_mask(0x6080e0, 52)) == 6324448);
  assert(unsigned(flip_mask(0x6080e4, 52)) == 6324452);
  assert(unsigned(flip_mask(0x6080e8, 52)) == 6324456);
  assert(unsigned(flip_mask(0x6080ec, 52)) == 6324460);
  assert(unsigned(flip_mask(0x6080f0, 52)) == 6324464);
  assert(unsigned(flip_mask(0x6080f4, 52)) == 6324468);
  assert(unsigned(flip_mask(0x6080f8, 52)) == 6324472);
  assert(unsigned(flip_mask(0x6080fc, 52)) == 6324476);
  assert(unsigned(flip_mask(0x608100, 52)) == 6324480);
  assert(unsigned(flip_mask(0x608104, 52)) == 6324484);
  assert(unsigned(flip_mask(0x608108, 52)) == 6324488);
  assert(unsigned(flip_mask(0x60810c, 52)) == 6324492);
  assert(unsigned(flip_mask(0x608110, 52)) == 6324496);
  assert(unsigned(flip_mask(0x608114, 52)) == 6324500);
  assert(unsigned(flip_mask(0x608118, 52)) == 6324504);
  assert(unsigned(flip_mask(0x60811c, 52)) == 6324508);
  assert(unsigned(flip_mask(0x608120, 52)) == 6324512);
  assert(unsigned(flip_mask(0x608124, 52)) == 6324516);
  assert(unsigned(flip_mask(0x608128, 52)) == 6324520);
  assert(unsigned(flip_mask(0x60812c, 52)) == 6324524);
  assert(unsigned(flip_mask(0x608130, 52)) == 6324528);
  assert(unsigned(flip_mask(0x608134, 52)) == 6324532);
  assert(unsigned(flip_mask(0x608138, 52)) == 6324536);
  assert(unsigned(flip_mask(0x60813c, 52)) == 6324540);
  assert(unsigned(flip_mask(0x608140, 52)) == 6324544);
  assert(unsigned(flip_mask(0x608144, 52)) == 6324548);
  assert(unsigned(flip_mask(0x608148, 52)) == 6324552);
  assert(unsigned(flip_mask(0x60814c, 52)) == 6324556);
  assert(unsigned(flip_mask(0x608150, 52)) == 6324560);
  assert(unsigned(flip_mask(0x608154, 52)) == 6324564);
  assert(unsigned(flip_mask(0x608158, 52)) == 6324568);
  assert(unsigned(flip_mask(0x60815c, 52)) == 6324572);
  assert(unsigned(flip_mask(0x608160, 52)) == 6324576);
  assert(unsigned(flip_mask(0x608164, 52)) == 6324580);
  assert(unsigned(flip_mask(0x608168, 52)) == 6324584);
  assert(unsigned(flip_mask(0x60816c, 52)) == 6324588);
  assert(unsigned(flip_mask(0x608170, 52)) == 6324592);
  assert(unsigned(flip_mask(0x608174, 52)) == 6324596);
  assert(unsigned(flip_mask(0x608178, 52)) == 6324600);
  assert(unsigned(flip_mask(0x60817c, 52)) == 6324604);
  assert(unsigned(flip_mask(0x608180, 52)) == 6324608);
  assert(unsigned(flip_mask(0x608184, 52)) == 6324612);
  assert(unsigned(flip_mask(0x608188, 52)) == 6324616);
  assert(unsigned(flip_mask(0x60818c, 52)) == 6324620);
  assert(unsigned(flip_mask(0x608190, 52)) == 6324624);
  assert(unsigned(flip_mask(0x608194, 52)) == 6324628);
  assert(unsigned(flip_mask(0x608198, 52)) == 6324632);
  assert(unsigned(flip_mask(0x60819c, 52)) == 6324636);
  assert(unsigned(flip_mask(0x6081a0, 52)) == 6324640);
  assert(unsigned(flip_mask(0x6081a4, 52)) == 6324644);
  assert(unsigned(flip_mask(0x6081a8, 52)) == 6324648);
  assert(unsigned(flip_mask(0x6081ac, 52)) == 6324652);
  assert(unsigned(flip_mask(0x6081b0, 52)) == 6324656);
  assert(unsigned(flip_mask(0x6081b4, 52)) == 6324660);
  assert(unsigned(flip_mask(0x6081b8, 52)) == 6324664);
  assert(unsigned(flip_mask(0x6081bc, 52)) == 6324668);
  assert(unsigned(flip_mask(0x6081c0, 52)) == 6324672);
  assert(unsigned(flip_mask(0x6081c4, 52)) == 6324676);
  assert(unsigned(flip_mask(0x6081c8, 52)) == 6324680);
  assert(unsigned(flip_mask(0x6081cc, 52)) == 6324684);
  assert(unsigned(flip_mask(0x6081d0, 52)) == 6324688);
  assert(unsigned(flip_mask(0x6081d4, 52)) == 6324692);
  assert(unsigned(flip_mask(0x6081d8, 52)) == 6324696);
  assert(unsigned(flip_mask(0x6081dc, 52)) == 6324700);
  assert(unsigned(flip_mask(0x6081e0, 52)) == 6324704);
  assert(unsigned(flip_mask(0x6081e4, 52)) == 6324708);
  assert(unsigned(flip_mask(0x6081e8, 52)) == 6324712);
  assert(unsigned(flip_mask(0x6081ec, 52)) == 6324716);
  assert(unsigned(flip_mask(0x6081f0, 52)) == 6324720);
  assert(unsigned(flip_mask(0x6081f4, 52)) == 6324724);
  assert(unsigned(flip_mask(0x6081f8, 52)) == 6324728);
  assert(unsigned(flip_mask(0x6081fc, 52)) == 6324732);
  assert(unsigned(flip_mask(0x608200, 52)) == 6324736);
  assert(unsigned(flip_mask(0x608204, 52)) == 6324740);
  assert(unsigned(flip_mask(0x608208, 52)) == 6324744);
  assert(unsigned(flip_mask(0x60820c, 52)) == 6324748);
  assert(unsigned(flip_mask(0x608210, 52)) == 6324752);
  assert(unsigned(flip_mask(0x608214, 52)) == 6324756);
  assert(unsigned(flip_mask(0x608218, 52)) == 6324760);
  assert(unsigned(flip_mask(0x60821c, 52)) == 6324764);
  assert(unsigned(flip_mask(0x608220, 52)) == 6324768);
  assert(unsigned(flip_mask(0x608224, 52)) == 6324772);
  assert(unsigned(flip_mask(0x608228, 52)) == 6324776);
  assert(unsigned(flip_mask(0x60822c, 52)) == 6324780);
  assert(unsigned(flip_mask(0x608230, 52)) == 6324784);
  assert(unsigned(flip_mask(0x608234, 52)) == 6324788);
  assert(unsigned(flip_mask(0x608238, 52)) == 6324792);
  assert(unsigned(flip_mask(0x60823c, 52)) == 6324796);
  assert(unsigned(flip_mask(0x608240, 52)) == 6324800);
  assert(unsigned(flip_mask(0x608244, 52)) == 6324804);
  assert(unsigned(flip_mask(0x608248, 52)) == 6324808);
  assert(unsigned(flip_mask(0x60824c, 52)) == 6324812);
  assert(unsigned(flip_mask(0x608250, 52)) == 6324816);
  assert(unsigned(flip_mask(0x608254, 52)) == 6324820);
  assert(unsigned(flip_mask(0x608258, 52)) == 6324824);
  assert(unsigned(flip_mask(0x60825c, 52)) == 6324828);
  assert(unsigned(flip_mask(0x608454, 52)) == 6325332);
  assert(unsigned(flip_mask(0x608458, 52)) == 6325336);
  assert(unsigned(flip_mask(0x60845c, 52)) == 6325340);
  assert(unsigned(flip_mask(0x608460, 52)) == 6325344);
  assert(unsigned(flip_mask(0x608464, 52)) == 6325348);
  assert(unsigned(flip_mask(0x608468, 52)) == 6325352);
  assert(unsigned(flip_mask(0x60846c, 52)) == 6325356);
  assert(unsigned(flip_mask(0x608470, 52)) == 6325360);
  assert(unsigned(flip_mask(0x608474, 52)) == 6325364);
  assert(unsigned(flip_mask(0x608478, 52)) == 6325368);
  assert(unsigned(flip_mask(0x60847c, 52)) == 6325372);
  assert(unsigned(flip_mask(0x608480, 52)) == 6325376);
  assert(unsigned(flip_mask(0x608484, 52)) == 6325380);
  assert(unsigned(flip_mask(0x608488, 52)) == 6325384);
  assert(unsigned(flip_mask(0x60848c, 52)) == 6325388);
  assert(unsigned(flip_mask(0x608490, 52)) == 6325392);
  assert(unsigned(flip_mask(0x608494, 52)) == 6325396);
  assert(unsigned(flip_mask(0x608498, 52)) == 6325400);
  assert(unsigned(flip_mask(0x60849c, 52)) == 6325404);
  assert(unsigned(flip_mask(0x6084a0, 52)) == 6325408);
  assert(unsigned(flip_mask(0x6084a4, 52)) == 6325412);
  assert(unsigned(flip_mask(0x6084a8, 52)) == 6325416);
  assert(unsigned(flip_mask(0x6084ac, 52)) == 6325420);
  assert(unsigned(flip_mask(0x6084b0, 52)) == 6325424);
  assert(unsigned(flip_mask(0x6084b4, 52)) == 6325428);
  assert(unsigned(flip_mask(0x6084b8, 52)) == 6325432);
  assert(unsigned(flip_mask(0x6084bc, 52)) == 6325436);
  assert(unsigned(flip_mask(0x6084c0, 52)) == 6325440);
  assert(unsigned(flip_mask(0x6084c4, 52)) == 6325444);
  assert(unsigned(flip_mask(0x6084c8, 52)) == 6325448);
  assert(unsigned(flip_mask(0x6084cc, 52)) == 6325452);
  assert(unsigned(flip_mask(0x6084d0, 52)) == 6325456);
  assert(unsigned(flip_mask(0x6084d8, 52)) == 6325464);
  assert(unsigned(flip_mask(0x6084e0, 52)) == 6325472);
  assert(unsigned(flip_mask(0x6084e4, 52)) == 6325476);
  assert(unsigned(flip_mask(0x6084e8, 52)) == 6325480);
  assert(unsigned(flip_mask(0x6084ec, 52)) == 6325484);
  assert(unsigned(flip_mask(0x6084f0, 52)) == 6325488);
  assert(unsigned(flip_mask(0x6084f4, 52)) == 6325492);
  assert(unsigned(flip_mask(0x6084f8, 52)) == 6325496);
  assert(unsigned(flip_mask(0x6084fc, 52)) == 6325500);
  assert(unsigned(flip_mask(0x608500, 52)) == 6325504);
  assert(unsigned(flip_mask(0x608504, 52)) == 6325508);
  assert(unsigned(flip_mask(0x608508, 52)) == 6325512);
  assert(unsigned(flip_mask(0x60850c, 52)) == 6325516);
  assert(unsigned(flip_mask(0x608510, 52)) == 6325520);
  assert(unsigned(flip_mask(0x608514, 52)) == 6325524);
  assert(unsigned(flip_mask(0x608518, 52)) == 6325528);
  assert(unsigned(flip_mask(0x60851c, 52)) == 6325532);
  assert(unsigned(flip_mask(0x608520, 52)) == 6325536);
  assert(unsigned(flip_mask(0x608524, 52)) == 6325540);
  assert(unsigned(flip_mask(0x608528, 52)) == 6325544);
  assert(unsigned(flip_mask(0x60852c, 52)) == 6325548);
  assert(unsigned(flip_mask(0x608530, 52)) == 6325552);
  assert(unsigned(flip_mask(0x608534, 52)) == 6325556);
  assert(unsigned(flip_mask(0x608538, 52)) == 6325560);
  assert(unsigned(flip_mask(0x60853c, 52)) == 6325564);
  assert(unsigned(flip_mask(0x608540, 52)) == 6325568);
  assert(unsigned(flip_mask(0x608544, 52)) == 6325572);
  assert(unsigned(flip_mask(0x608548, 52)) == 6325576);
  assert(unsigned(flip_mask(0x608804, 52)) == 6326276);
  assert(unsigned(flip_mask(0x608808, 52)) == 6326280);
  assert(unsigned(flip_mask(0x60880c, 52)) == 6326284);
  assert(unsigned(flip_mask(0x608810, 52)) == 6326288);
  assert(unsigned(flip_mask(0x608814, 52)) == 6326292);
  assert(unsigned(flip_mask(0x608818, 52)) == 6326296);
  assert(unsigned(flip_mask(0x62000, 52)) == 401408);
  assert(unsigned(flip_mask(0x62400, 52)) == 402432);
  assert(unsigned(flip_mask(0x62600, 52)) == 402944);
  assert(unsigned(flip_mask(0x627f0, 52)) == 403440);
  assert(unsigned(flip_mask(0x62800, 52)) == 403456);
  assert(unsigned(flip_mask(0x62810, 52)) == 403472);
  assert(unsigned(flip_mask(0x62a00, 52)) == 403968);
  assert(unsigned(flip_mask(0x66400, 52)) == 418816);
  assert(unsigned(flip_mask(0x68400, 52)) == 427008);
  assert(unsigned(flip_mask(0x68a00, 52)) == 428544);
  assert(unsigned(flip_mask(0x6cc00, 52)) == 445440);
  assert(unsigned(flip_mask(0x70400, 52)) == 459776);
  assert(unsigned(flip_mask(0x70a00, 52)) == 461312);
  assert(unsigned(flip_mask(0x70c00, 52)) == 461824);
  assert(unsigned(flip_mask(0x72000, 52)) == 466944);
  assert(unsigned(flip_mask(0x72c05c, 52)) == 7520348);
  assert(unsigned(flip_mask(0x72c060, 52)) == 7520352);
  assert(unsigned(flip_mask(0x72c064, 52)) == 7520356);
  assert(unsigned(flip_mask(0x730368, 52)) == 7537512);
  assert(unsigned(flip_mask(0x73036c, 52)) == 7537516);
  assert(unsigned(flip_mask(0x730370, 52)) == 7537520);
  assert(unsigned(flip_mask(0x7304b8, 52)) == 7537848);
  assert(unsigned(flip_mask(0x7304bc, 52)) == 7537852);
  assert(unsigned(flip_mask(0x7304c0, 52)) == 7537856);
  assert(unsigned(flip_mask(0x730608, 52)) == 7538184);
  assert(unsigned(flip_mask(0x73060c, 52)) == 7538188);
  assert(unsigned(flip_mask(0x730610, 52)) == 7538192);
  assert(unsigned(flip_mask(0x730910, 52)) == 7538960);
  assert(unsigned(flip_mask(0x730914, 52)) == 7538964);
  assert(unsigned(flip_mask(0x730918, 52)) == 7538968);
  assert(unsigned(flip_mask(0x734754, 52)) == 7554900);
  assert(unsigned(flip_mask(0x734758, 52)) == 7554904);
  assert(unsigned(flip_mask(0x73475c, 52)) == 7554908);
  assert(unsigned(flip_mask(0x7348a4, 52)) == 7555236);
  assert(unsigned(flip_mask(0x7348a8, 52)) == 7555240);
  assert(unsigned(flip_mask(0x7348ac, 52)) == 7555244);
  assert(unsigned(flip_mask(0x738000, 52)) == 7569408);
  assert(unsigned(flip_mask(0x738004, 52)) == 7569412);
  assert(unsigned(flip_mask(0x738005, 52)) == 7569413);
  assert(unsigned(flip_mask(0x738006, 52)) == 7569414);
  assert(unsigned(flip_mask(0x738007, 52)) == 7569415);
  assert(unsigned(flip_mask(0x738008, 52)) == 7569416);
  assert(unsigned(flip_mask(0x738009, 52)) == 7569417);
  assert(unsigned(flip_mask(0x73800a, 52)) == 7569418);
  assert(unsigned(flip_mask(0x73800b, 52)) == 7569419);
  assert(unsigned(flip_mask(0x73800c, 52)) == 7569420);
  assert(unsigned(flip_mask(0x73800d, 52)) == 7569421);
  assert(unsigned(flip_mask(0x73800e, 52)) == 7569422);
  assert(unsigned(flip_mask(0x73800f, 52)) == 7569423);
  assert(unsigned(flip_mask(0x738010, 52)) == 7569424);
  assert(unsigned(flip_mask(0x738011, 52)) == 7569425);
  assert(unsigned(flip_mask(0x738014, 52)) == 7569428);
  assert(unsigned(flip_mask(0x738018, 52)) == 7569432);
  assert(unsigned(flip_mask(0x73801c, 52)) == 7569436);
  assert(unsigned(flip_mask(0x738020, 52)) == 7569440);
  assert(unsigned(flip_mask(0x738024, 52)) == 7569444);
  assert(unsigned(flip_mask(0x738028, 52)) == 7569448);
  assert(unsigned(flip_mask(0x73802c, 52)) == 7569452);
  assert(unsigned(flip_mask(0x738030, 52)) == 7569456);
  assert(unsigned(flip_mask(0x738038, 52)) == 7569464);
  assert(unsigned(flip_mask(0x73803c, 52)) == 7569468);
  assert(unsigned(flip_mask(0x738044, 52)) == 7569476);
  assert(unsigned(flip_mask(0x738048, 52)) == 7569480);
  assert(unsigned(flip_mask(0x73804c, 52)) == 7569484);
  assert(unsigned(flip_mask(0x738050, 52)) == 7569488);
  assert(unsigned(flip_mask(0x738054, 52)) == 7569492);
  assert(unsigned(flip_mask(0x738058, 52)) == 7569496);
  assert(unsigned(flip_mask(0x73805c, 52)) == 7569500);
  assert(unsigned(flip_mask(0x738060, 52)) == 7569504);
  assert(unsigned(flip_mask(0x738064, 52)) == 7569508);
  assert(unsigned(flip_mask(0x738068, 52)) == 7569512);
  assert(unsigned(flip_mask(0x738070, 52)) == 7569520);
  assert(unsigned(flip_mask(0x738074, 52)) == 7569524);
  assert(unsigned(flip_mask(0x738080, 52)) == 7569536);
  assert(unsigned(flip_mask(0x738084, 52)) == 7569540);
  assert(unsigned(flip_mask(0x738088, 52)) == 7569544);
  assert(unsigned(flip_mask(0x73808c, 52)) == 7569548);
  assert(unsigned(flip_mask(0x738090, 52)) == 7569552);
  assert(unsigned(flip_mask(0x738094, 52)) == 7569556);
  assert(unsigned(flip_mask(0x738098, 52)) == 7569560);
  assert(unsigned(flip_mask(0x73809c, 52)) == 7569564);
  assert(unsigned(flip_mask(0x7380a0, 52)) == 7569568);
  assert(unsigned(flip_mask(0x7380a4, 52)) == 7569572);
  assert(unsigned(flip_mask(0x7380a8, 52)) == 7569576);
  assert(unsigned(flip_mask(0x7380ac, 52)) == 7569580);
  assert(unsigned(flip_mask(0x7380b0, 52)) == 7569584);
  assert(unsigned(flip_mask(0x7380b4, 52)) == 7569588);
  assert(unsigned(flip_mask(0x7380b8, 52)) == 7569592);
  assert(unsigned(flip_mask(0x7380bc, 52)) == 7569596);
  assert(unsigned(flip_mask(0x7380c0, 52)) == 7569600);
  assert(unsigned(flip_mask(0x7380c4, 52)) == 7569604);
  assert(unsigned(flip_mask(0x7380c8, 52)) == 7569608);
  assert(unsigned(flip_mask(0x7380cc, 52)) == 7569612);
  assert(unsigned(flip_mask(0x7380d0, 52)) == 7569616);
  assert(unsigned(flip_mask(0x7380d4, 52)) == 7569620);
  assert(unsigned(flip_mask(0x7380d8, 52)) == 7569624);
  assert(unsigned(flip_mask(0x7380dc, 52)) == 7569628);
  assert(unsigned(flip_mask(0x7380e0, 52)) == 7569632);
  assert(unsigned(flip_mask(0x7380e4, 52)) == 7569636);
  assert(unsigned(flip_mask(0x7380e8, 52)) == 7569640);
  assert(unsigned(flip_mask(0x7380ec, 52)) == 7569644);
  assert(unsigned(flip_mask(0x7380f0, 52)) == 7569648);
  assert(unsigned(flip_mask(0x7380f4, 52)) == 7569652);
  assert(unsigned(flip_mask(0x7380f8, 52)) == 7569656);
  assert(unsigned(flip_mask(0x738100, 52)) == 7569664);
  assert(unsigned(flip_mask(0x738104, 52)) == 7569668);
  assert(unsigned(flip_mask(0x738108, 52)) == 7569672);
  assert(unsigned(flip_mask(0x73810c, 52)) == 7569676);
  assert(unsigned(flip_mask(0x738110, 52)) == 7569680);
  assert(unsigned(flip_mask(0x738114, 52)) == 7569684);
  assert(unsigned(flip_mask(0x738118, 52)) == 7569688);
  assert(unsigned(flip_mask(0x73811c, 52)) == 7569692);
  assert(unsigned(flip_mask(0x738120, 52)) == 7569696);
  assert(unsigned(flip_mask(0x738124, 52)) == 7569700);
  assert(unsigned(flip_mask(0x738128, 52)) == 7569704);
  assert(unsigned(flip_mask(0x73812c, 52)) == 7569708);
  assert(unsigned(flip_mask(0x738130, 52)) == 7569712);
  assert(unsigned(flip_mask(0x738134, 52)) == 7569716);
  assert(unsigned(flip_mask(0x738138, 52)) == 7569720);
  assert(unsigned(flip_mask(0x73813c, 52)) == 7569724);
  assert(unsigned(flip_mask(0x738140, 52)) == 7569728);
  assert(unsigned(flip_mask(0x738148, 52)) == 7569736);
  assert(unsigned(flip_mask(0x73814c, 52)) == 7569740);
  assert(unsigned(flip_mask(0x738154, 52)) == 7569748);
  assert(unsigned(flip_mask(0x738158, 52)) == 7569752);
  assert(unsigned(flip_mask(0x73815c, 52)) == 7569756);
  assert(unsigned(flip_mask(0x738160, 52)) == 7569760);
  assert(unsigned(flip_mask(0x738164, 52)) == 7569764);
  assert(unsigned(flip_mask(0x738168, 52)) == 7569768);
  assert(unsigned(flip_mask(0x73816c, 52)) == 7569772);
  assert(unsigned(flip_mask(0x738170, 52)) == 7569776);
  assert(unsigned(flip_mask(0x738174, 52)) == 7569780);
  assert(unsigned(flip_mask(0x738178, 52)) == 7569784);
  assert(unsigned(flip_mask(0x73817c, 52)) == 7569788);
  assert(unsigned(flip_mask(0x738180, 52)) == 7569792);
  assert(unsigned(flip_mask(0x738184, 52)) == 7569796);
  assert(unsigned(flip_mask(0x738188, 52)) == 7569800);
  assert(unsigned(flip_mask(0x738190, 52)) == 7569808);
  assert(unsigned(flip_mask(0x738194, 52)) == 7569812);
  assert(unsigned(flip_mask(0x738198, 52)) == 7569816);
  assert(unsigned(flip_mask(0x73819c, 52)) == 7569820);
  assert(unsigned(flip_mask(0x7381a0, 52)) == 7569824);
  assert(unsigned(flip_mask(0x7381a4, 52)) == 7569828);
  assert(unsigned(flip_mask(0x7381a8, 52)) == 7569832);
  assert(unsigned(flip_mask(0x7381ac, 52)) == 7569836);
  assert(unsigned(flip_mask(0x7381b0, 52)) == 7569840);
  assert(unsigned(flip_mask(0x7381b4, 52)) == 7569844);
  assert(unsigned(flip_mask(0x7381b8, 52)) == 7569848);
  assert(unsigned(flip_mask(0x7381bc, 52)) == 7569852);
  assert(unsigned(flip_mask(0x7381c0, 52)) == 7569856);
  assert(unsigned(flip_mask(0x7381c4, 52)) == 7569860);
  assert(unsigned(flip_mask(0x7381c8, 52)) == 7569864);
  assert(unsigned(flip_mask(0x7381cc, 52)) == 7569868);
  assert(unsigned(flip_mask(0x7381d0, 52)) == 7569872);
  assert(unsigned(flip_mask(0x7381d8, 52)) == 7569880);
  assert(unsigned(flip_mask(0x7381dc, 52)) == 7569884);
  assert(unsigned(flip_mask(0x7381e4, 52)) == 7569892);
  assert(unsigned(flip_mask(0x7381e8, 52)) == 7569896);
  assert(unsigned(flip_mask(0x7381ec, 52)) == 7569900);
  assert(unsigned(flip_mask(0x7381f0, 52)) == 7569904);
  assert(unsigned(flip_mask(0x7381f4, 52)) == 7569908);
  assert(unsigned(flip_mask(0x7381f8, 52)) == 7569912);
  assert(unsigned(flip_mask(0x7381fc, 52)) == 7569916);
  assert(unsigned(flip_mask(0x738200, 52)) == 7569920);
  assert(unsigned(flip_mask(0x738204, 52)) == 7569924);
  assert(unsigned(flip_mask(0x738208, 52)) == 7569928);
  assert(unsigned(flip_mask(0x73820c, 52)) == 7569932);
  assert(unsigned(flip_mask(0x738210, 52)) == 7569936);
  assert(unsigned(flip_mask(0x738214, 52)) == 7569940);
  assert(unsigned(flip_mask(0x73821c, 52)) == 7569948);
  assert(unsigned(flip_mask(0x738220, 52)) == 7569952);
  assert(unsigned(flip_mask(0x73822c, 52)) == 7569964);
  assert(unsigned(flip_mask(0x738230, 52)) == 7569968);
  assert(unsigned(flip_mask(0x738234, 52)) == 7569972);
  assert(unsigned(flip_mask(0x738238, 52)) == 7569976);
  assert(unsigned(flip_mask(0x73823c, 52)) == 7569980);
  assert(unsigned(flip_mask(0x738240, 52)) == 7569984);
  assert(unsigned(flip_mask(0x738244, 52)) == 7569988);
  assert(unsigned(flip_mask(0x738248, 52)) == 7569992);
  assert(unsigned(flip_mask(0x73824c, 52)) == 7569996);
  assert(unsigned(flip_mask(0x738250, 52)) == 7570000);
  assert(unsigned(flip_mask(0x738254, 52)) == 7570004);
  assert(unsigned(flip_mask(0x738258, 52)) == 7570008);
  assert(unsigned(flip_mask(0x73825c, 52)) == 7570012);
  assert(unsigned(flip_mask(0x738260, 52)) == 7570016);
  assert(unsigned(flip_mask(0x738264, 52)) == 7570020);
  assert(unsigned(flip_mask(0x738268, 52)) == 7570024);
  assert(unsigned(flip_mask(0x73826c, 52)) == 7570028);
  assert(unsigned(flip_mask(0x738270, 52)) == 7570032);
  assert(unsigned(flip_mask(0x738274, 52)) == 7570036);
  assert(unsigned(flip_mask(0x738278, 52)) == 7570040);
  assert(unsigned(flip_mask(0x73827c, 52)) == 7570044);
  assert(unsigned(flip_mask(0x738280, 52)) == 7570048);
  assert(unsigned(flip_mask(0x738284, 52)) == 7570052);
  assert(unsigned(flip_mask(0x738288, 52)) == 7570056);
  assert(unsigned(flip_mask(0x73828c, 52)) == 7570060);
  assert(unsigned(flip_mask(0x738290, 52)) == 7570064);
  assert(unsigned(flip_mask(0x738294, 52)) == 7570068);
  assert(unsigned(flip_mask(0x738298, 52)) == 7570072);
  assert(unsigned(flip_mask(0x73829c, 52)) == 7570076);
  assert(unsigned(flip_mask(0x7382a0, 52)) == 7570080);
  assert(unsigned(flip_mask(0x7382a4, 52)) == 7570084);
  assert(unsigned(flip_mask(0x7382a8, 52)) == 7570088);
  assert(unsigned(flip_mask(0x7382ac, 52)) == 7570092);
  assert(unsigned(flip_mask(0x7382b0, 52)) == 7570096);
  assert(unsigned(flip_mask(0x7382b4, 52)) == 7570100);
  assert(unsigned(flip_mask(0x7382b8, 52)) == 7570104);
  assert(unsigned(flip_mask(0x7382bc, 52)) == 7570108);
  assert(unsigned(flip_mask(0x7382c0, 52)) == 7570112);
  assert(unsigned(flip_mask(0x7382c4, 52)) == 7570116);
  assert(unsigned(flip_mask(0x7382c8, 52)) == 7570120);
  assert(unsigned(flip_mask(0x7382cc, 52)) == 7570124);
  assert(unsigned(flip_mask(0x7382d0, 52)) == 7570128);
  assert(unsigned(flip_mask(0x7382d4, 52)) == 7570132);
  assert(unsigned(flip_mask(0x7382d8, 52)) == 7570136);
  assert(unsigned(flip_mask(0x7382dc, 52)) == 7570140);
  assert(unsigned(flip_mask(0x7382e0, 52)) == 7570144);
  assert(unsigned(flip_mask(0x7382e4, 52)) == 7570148);
  assert(unsigned(flip_mask(0x7382e8, 52)) == 7570152);
  assert(unsigned(flip_mask(0x7382ec, 52)) == 7570156);
  assert(unsigned(flip_mask(0x7382f0, 52)) == 7570160);
  assert(unsigned(flip_mask(0x7382f4, 52)) == 7570164);
  assert(unsigned(flip_mask(0x7382f8, 52)) == 7570168);
  assert(unsigned(flip_mask(0x7382fc, 52)) == 7570172);
  assert(unsigned(flip_mask(0x738300, 52)) == 7570176);
  assert(unsigned(flip_mask(0x738304, 52)) == 7570180);
  assert(unsigned(flip_mask(0x738308, 52)) == 7570184);
  assert(unsigned(flip_mask(0x73830c, 52)) == 7570188);
  assert(unsigned(flip_mask(0x738310, 52)) == 7570192);
  assert(unsigned(flip_mask(0x738314, 52)) == 7570196);
  assert(unsigned(flip_mask(0x738318, 52)) == 7570200);
  assert(unsigned(flip_mask(0x73831c, 52)) == 7570204);
  assert(unsigned(flip_mask(0x738320, 52)) == 7570208);
  assert(unsigned(flip_mask(0x738324, 52)) == 7570212);
  assert(unsigned(flip_mask(0x738328, 52)) == 7570216);
  assert(unsigned(flip_mask(0x73832c, 52)) == 7570220);
  assert(unsigned(flip_mask(0x738330, 52)) == 7570224);
  assert(unsigned(flip_mask(0x738334, 52)) == 7570228);
  assert(unsigned(flip_mask(0x738338, 52)) == 7570232);
  assert(unsigned(flip_mask(0x73833c, 52)) == 7570236);
  assert(unsigned(flip_mask(0x738340, 52)) == 7570240);
  assert(unsigned(flip_mask(0x738344, 52)) == 7570244);
  assert(unsigned(flip_mask(0x738348, 52)) == 7570248);
  assert(unsigned(flip_mask(0x73834c, 52)) == 7570252);
  assert(unsigned(flip_mask(0x738350, 52)) == 7570256);
  assert(unsigned(flip_mask(0x738354, 52)) == 7570260);
  assert(unsigned(flip_mask(0x738358, 52)) == 7570264);
  assert(unsigned(flip_mask(0x73835c, 52)) == 7570268);
  assert(unsigned(flip_mask(0x738360, 52)) == 7570272);
  assert(unsigned(flip_mask(0x738364, 52)) == 7570276);
  assert(unsigned(flip_mask(0x738368, 52)) == 7570280);
  assert(unsigned(flip_mask(0x73836c, 52)) == 7570284);
  assert(unsigned(flip_mask(0x738370, 52)) == 7570288);
  assert(unsigned(flip_mask(0x738374, 52)) == 7570292);
  assert(unsigned(flip_mask(0x738378, 52)) == 7570296);
  assert(unsigned(flip_mask(0x73837c, 52)) == 7570300);
  assert(unsigned(flip_mask(0x738380, 52)) == 7570304);
  assert(unsigned(flip_mask(0x738384, 52)) == 7570308);
  assert(unsigned(flip_mask(0x738388, 52)) == 7570312);
  assert(unsigned(flip_mask(0x73838c, 52)) == 7570316);
  assert(unsigned(flip_mask(0x738390, 52)) == 7570320);
  assert(unsigned(flip_mask(0x738394, 52)) == 7570324);
  assert(unsigned(flip_mask(0x738398, 52)) == 7570328);
  assert(unsigned(flip_mask(0x73839c, 52)) == 7570332);
  assert(unsigned(flip_mask(0x7383a0, 52)) == 7570336);
  assert(unsigned(flip_mask(0x7383a4, 52)) == 7570340);
  assert(unsigned(flip_mask(0x7383a8, 52)) == 7570344);
  assert(unsigned(flip_mask(0x7383ac, 52)) == 7570348);
  assert(unsigned(flip_mask(0x7383b0, 52)) == 7570352);
  assert(unsigned(flip_mask(0x7383b8, 52)) == 7570360);
  assert(unsigned(flip_mask(0x7383bc, 52)) == 7570364);
  assert(unsigned(flip_mask(0x7383c4, 52)) == 7570372);
  assert(unsigned(flip_mask(0x7383c8, 52)) == 7570376);
  assert(unsigned(flip_mask(0x7383cc, 52)) == 7570380);
  assert(unsigned(flip_mask(0x7383d0, 52)) == 7570384);
  assert(unsigned(flip_mask(0x7383d4, 52)) == 7570388);
  assert(unsigned(flip_mask(0x7383d8, 52)) == 7570392);
  assert(unsigned(flip_mask(0x7383dc, 52)) == 7570396);
  assert(unsigned(flip_mask(0x7383e0, 52)) == 7570400);
  assert(unsigned(flip_mask(0x7383e4, 52)) == 7570404);
  assert(unsigned(flip_mask(0x7383e8, 52)) == 7570408);
  assert(unsigned(flip_mask(0x7383ec, 52)) == 7570412);
  assert(unsigned(flip_mask(0x7383f4, 52)) == 7570420);
  assert(unsigned(flip_mask(0x7383f8, 52)) == 7570424);
  assert(unsigned(flip_mask(0x738404, 52)) == 7570436);
  assert(unsigned(flip_mask(0x738408, 52)) == 7570440);
  assert(unsigned(flip_mask(0x73840c, 52)) == 7570444);
  assert(unsigned(flip_mask(0x738410, 52)) == 7570448);
  assert(unsigned(flip_mask(0x738414, 52)) == 7570452);
  assert(unsigned(flip_mask(0x738418, 52)) == 7570456);
  assert(unsigned(flip_mask(0x73841c, 52)) == 7570460);
  assert(unsigned(flip_mask(0x738420, 52)) == 7570464);
  assert(unsigned(flip_mask(0x738424, 52)) == 7570468);
  assert(unsigned(flip_mask(0x738428, 52)) == 7570472);
  assert(unsigned(flip_mask(0x73842c, 52)) == 7570476);
  assert(unsigned(flip_mask(0x738430, 52)) == 7570480);
  assert(unsigned(flip_mask(0x738434, 52)) == 7570484);
  assert(unsigned(flip_mask(0x738438, 52)) == 7570488);
  assert(unsigned(flip_mask(0x73843c, 52)) == 7570492);
  assert(unsigned(flip_mask(0x738440, 52)) == 7570496);
  assert(unsigned(flip_mask(0x738444, 52)) == 7570500);
  assert(unsigned(flip_mask(0x738448, 52)) == 7570504);
  assert(unsigned(flip_mask(0x73844c, 52)) == 7570508);
  assert(unsigned(flip_mask(0x738450, 52)) == 7570512);
  assert(unsigned(flip_mask(0x738454, 52)) == 7570516);
  assert(unsigned(flip_mask(0x738458, 52)) == 7570520);
  assert(unsigned(flip_mask(0x73845c, 52)) == 7570524);
  assert(unsigned(flip_mask(0x738460, 52)) == 7570528);
  assert(unsigned(flip_mask(0x738464, 52)) == 7570532);
  assert(unsigned(flip_mask(0x738468, 52)) == 7570536);
  assert(unsigned(flip_mask(0x73846c, 52)) == 7570540);
  assert(unsigned(flip_mask(0x738470, 52)) == 7570544);
  assert(unsigned(flip_mask(0x738474, 52)) == 7570548);
  assert(unsigned(flip_mask(0x738478, 52)) == 7570552);
  assert(unsigned(flip_mask(0x73847c, 52)) == 7570556);
  assert(unsigned(flip_mask(0x738480, 52)) == 7570560);
  assert(unsigned(flip_mask(0x738484, 52)) == 7570564);
  assert(unsigned(flip_mask(0x738488, 52)) == 7570568);
  assert(unsigned(flip_mask(0x73848c, 52)) == 7570572);
  assert(unsigned(flip_mask(0x738490, 52)) == 7570576);
  assert(unsigned(flip_mask(0x738494, 52)) == 7570580);
  assert(unsigned(flip_mask(0x738498, 52)) == 7570584);
  assert(unsigned(flip_mask(0x73849c, 52)) == 7570588);
  assert(unsigned(flip_mask(0x7384a0, 52)) == 7570592);
  assert(unsigned(flip_mask(0x7384a4, 52)) == 7570596);
  assert(unsigned(flip_mask(0x7384a8, 52)) == 7570600);
  assert(unsigned(flip_mask(0x7384ac, 52)) == 7570604);
  assert(unsigned(flip_mask(0x7384b0, 52)) == 7570608);
  assert(unsigned(flip_mask(0x7384b4, 52)) == 7570612);
  assert(unsigned(flip_mask(0x7384b8, 52)) == 7570616);
  assert(unsigned(flip_mask(0x7384bc, 52)) == 7570620);
  assert(unsigned(flip_mask(0x7384c0, 52)) == 7570624);
  assert(unsigned(flip_mask(0x7384c4, 52)) == 7570628);
  assert(unsigned(flip_mask(0x7384c8, 52)) == 7570632);
  assert(unsigned(flip_mask(0x7384cc, 52)) == 7570636);
  assert(unsigned(flip_mask(0x7384d0, 52)) == 7570640);
  assert(unsigned(flip_mask(0x7384d4, 52)) == 7570644);
  assert(unsigned(flip_mask(0x7384d8, 52)) == 7570648);
  assert(unsigned(flip_mask(0x7384dc, 52)) == 7570652);
  assert(unsigned(flip_mask(0x7384e0, 52)) == 7570656);
  assert(unsigned(flip_mask(0x7384e4, 52)) == 7570660);
  assert(unsigned(flip_mask(0x7384e8, 52)) == 7570664);
  assert(unsigned(flip_mask(0x7384ec, 52)) == 7570668);
  assert(unsigned(flip_mask(0x7384f0, 52)) == 7570672);
  assert(unsigned(flip_mask(0x7384f4, 52)) == 7570676);
  assert(unsigned(flip_mask(0x7384f8, 52)) == 7570680);
  assert(unsigned(flip_mask(0x7384fc, 52)) == 7570684);
  assert(unsigned(flip_mask(0x738500, 52)) == 7570688);
  assert(unsigned(flip_mask(0x738508, 52)) == 7570696);
  assert(unsigned(flip_mask(0x73850c, 52)) == 7570700);
  assert(unsigned(flip_mask(0x738514, 52)) == 7570708);
  assert(unsigned(flip_mask(0x738518, 52)) == 7570712);
  assert(unsigned(flip_mask(0x73851c, 52)) == 7570716);
  assert(unsigned(flip_mask(0x738520, 52)) == 7570720);
  assert(unsigned(flip_mask(0x738524, 52)) == 7570724);
  assert(unsigned(flip_mask(0x738528, 52)) == 7570728);
  assert(unsigned(flip_mask(0x73852c, 52)) == 7570732);
  assert(unsigned(flip_mask(0x738530, 52)) == 7570736);
  assert(unsigned(flip_mask(0x738534, 52)) == 7570740);
  assert(unsigned(flip_mask(0x738538, 52)) == 7570744);
  assert(unsigned(flip_mask(0x73853c, 52)) == 7570748);
  assert(unsigned(flip_mask(0x738544, 52)) == 7570756);
  assert(unsigned(flip_mask(0x738548, 52)) == 7570760);
  assert(unsigned(flip_mask(0x738554, 52)) == 7570772);
  assert(unsigned(flip_mask(0x738558, 52)) == 7570776);
  assert(unsigned(flip_mask(0x73855c, 52)) == 7570780);
  assert(unsigned(flip_mask(0x738560, 52)) == 7570784);
  assert(unsigned(flip_mask(0x738564, 52)) == 7570788);
  assert(unsigned(flip_mask(0x738568, 52)) == 7570792);
  assert(unsigned(flip_mask(0x73856c, 52)) == 7570796);
  assert(unsigned(flip_mask(0x738570, 52)) == 7570800);
  assert(unsigned(flip_mask(0x738574, 52)) == 7570804);
  assert(unsigned(flip_mask(0x738578, 52)) == 7570808);
  assert(unsigned(flip_mask(0x73857c, 52)) == 7570812);
  assert(unsigned(flip_mask(0x738580, 52)) == 7570816);
  assert(unsigned(flip_mask(0x738584, 52)) == 7570820);
  assert(unsigned(flip_mask(0x738588, 52)) == 7570824);
  assert(unsigned(flip_mask(0x73858c, 52)) == 7570828);
  assert(unsigned(flip_mask(0x738590, 52)) == 7570832);
  assert(unsigned(flip_mask(0x738594, 52)) == 7570836);
  assert(unsigned(flip_mask(0x738598, 52)) == 7570840);
  assert(unsigned(flip_mask(0x73859c, 52)) == 7570844);
  assert(unsigned(flip_mask(0x7385a0, 52)) == 7570848);
  assert(unsigned(flip_mask(0x7385a4, 52)) == 7570852);
  assert(unsigned(flip_mask(0x7385a8, 52)) == 7570856);
  assert(unsigned(flip_mask(0x7385ac, 52)) == 7570860);
  assert(unsigned(flip_mask(0x7385b0, 52)) == 7570864);
  assert(unsigned(flip_mask(0x7385b4, 52)) == 7570868);
  assert(unsigned(flip_mask(0x7385b8, 52)) == 7570872);
  assert(unsigned(flip_mask(0x7385bc, 52)) == 7570876);
  assert(unsigned(flip_mask(0x7385c0, 52)) == 7570880);
  assert(unsigned(flip_mask(0x7385c4, 52)) == 7570884);
  assert(unsigned(flip_mask(0x7385c8, 52)) == 7570888);
  assert(unsigned(flip_mask(0x7385cc, 52)) == 7570892);
  assert(unsigned(flip_mask(0x7385d0, 52)) == 7570896);
  assert(unsigned(flip_mask(0x7385d4, 52)) == 7570900);
  assert(unsigned(flip_mask(0x7385d8, 52)) == 7570904);
  assert(unsigned(flip_mask(0x7385dc, 52)) == 7570908);
  assert(unsigned(flip_mask(0x7385e0, 52)) == 7570912);
  assert(unsigned(flip_mask(0x7385e4, 52)) == 7570916);
  assert(unsigned(flip_mask(0x7385e8, 52)) == 7570920);
  assert(unsigned(flip_mask(0x7385ec, 52)) == 7570924);
  assert(unsigned(flip_mask(0x7385f0, 52)) == 7570928);
  assert(unsigned(flip_mask(0x7385f4, 52)) == 7570932);
  assert(unsigned(flip_mask(0x7385f8, 52)) == 7570936);
  assert(unsigned(flip_mask(0x7385fc, 52)) == 7570940);
  assert(unsigned(flip_mask(0x738600, 52)) == 7570944);
  assert(unsigned(flip_mask(0x738604, 52)) == 7570948);
  assert(unsigned(flip_mask(0x738608, 52)) == 7570952);
  assert(unsigned(flip_mask(0x73860c, 52)) == 7570956);
  assert(unsigned(flip_mask(0x738610, 52)) == 7570960);
  assert(unsigned(flip_mask(0x738614, 52)) == 7570964);
  assert(unsigned(flip_mask(0x738618, 52)) == 7570968);
  assert(unsigned(flip_mask(0x73861c, 52)) == 7570972);
  assert(unsigned(flip_mask(0x738620, 52)) == 7570976);
  assert(unsigned(flip_mask(0x738624, 52)) == 7570980);
  assert(unsigned(flip_mask(0x738628, 52)) == 7570984);
  assert(unsigned(flip_mask(0x73862c, 52)) == 7570988);
  assert(unsigned(flip_mask(0x738630, 52)) == 7570992);
  assert(unsigned(flip_mask(0x738634, 52)) == 7570996);
  assert(unsigned(flip_mask(0x738638, 52)) == 7571000);
  assert(unsigned(flip_mask(0x73863c, 52)) == 7571004);
  assert(unsigned(flip_mask(0x738640, 52)) == 7571008);
  assert(unsigned(flip_mask(0x738644, 52)) == 7571012);
  assert(unsigned(flip_mask(0x738648, 52)) == 7571016);
  assert(unsigned(flip_mask(0x73864c, 52)) == 7571020);
  assert(unsigned(flip_mask(0x738650, 52)) == 7571024);
  assert(unsigned(flip_mask(0x738658, 52)) == 7571032);
  assert(unsigned(flip_mask(0x73865c, 52)) == 7571036);
  assert(unsigned(flip_mask(0x738664, 52)) == 7571044);
  assert(unsigned(flip_mask(0x738668, 52)) == 7571048);
  assert(unsigned(flip_mask(0x73866c, 52)) == 7571052);
  assert(unsigned(flip_mask(0x738670, 52)) == 7571056);
  assert(unsigned(flip_mask(0x738674, 52)) == 7571060);
  assert(unsigned(flip_mask(0x738678, 52)) == 7571064);
  assert(unsigned(flip_mask(0x73867c, 52)) == 7571068);
  assert(unsigned(flip_mask(0x738680, 52)) == 7571072);
  assert(unsigned(flip_mask(0x738684, 52)) == 7571076);
  assert(unsigned(flip_mask(0x738688, 52)) == 7571080);
  assert(unsigned(flip_mask(0x73868c, 52)) == 7571084);
  assert(unsigned(flip_mask(0x738694, 52)) == 7571092);
  assert(unsigned(flip_mask(0x738698, 52)) == 7571096);
  assert(unsigned(flip_mask(0x7386a4, 52)) == 7571108);
  assert(unsigned(flip_mask(0x7386a8, 52)) == 7571112);
  assert(unsigned(flip_mask(0x7386ac, 52)) == 7571116);
  assert(unsigned(flip_mask(0x7386b0, 52)) == 7571120);
  assert(unsigned(flip_mask(0x7386b4, 52)) == 7571124);
  assert(unsigned(flip_mask(0x7386b8, 52)) == 7571128);
  assert(unsigned(flip_mask(0x7386bc, 52)) == 7571132);
  assert(unsigned(flip_mask(0x7386c0, 52)) == 7571136);
  assert(unsigned(flip_mask(0x7386c4, 52)) == 7571140);
  assert(unsigned(flip_mask(0x7386c8, 52)) == 7571144);
  assert(unsigned(flip_mask(0x7386cc, 52)) == 7571148);
  assert(unsigned(flip_mask(0x7386d0, 52)) == 7571152);
  assert(unsigned(flip_mask(0x7386d4, 52)) == 7571156);
  assert(unsigned(flip_mask(0x7386d8, 52)) == 7571160);
  assert(unsigned(flip_mask(0x7386dc, 52)) == 7571164);
  assert(unsigned(flip_mask(0x7386e0, 52)) == 7571168);
  assert(unsigned(flip_mask(0x7386e4, 52)) == 7571172);
  assert(unsigned(flip_mask(0x7386e8, 52)) == 7571176);
  assert(unsigned(flip_mask(0x7386ec, 52)) == 7571180);
  assert(unsigned(flip_mask(0x7386f0, 52)) == 7571184);
  assert(unsigned(flip_mask(0x7386f4, 52)) == 7571188);
  assert(unsigned(flip_mask(0x7386f8, 52)) == 7571192);
  assert(unsigned(flip_mask(0x7386fc, 52)) == 7571196);
  assert(unsigned(flip_mask(0x738700, 52)) == 7571200);
  assert(unsigned(flip_mask(0x738704, 52)) == 7571204);
  assert(unsigned(flip_mask(0x738708, 52)) == 7571208);
  assert(unsigned(flip_mask(0x73870c, 52)) == 7571212);
  assert(unsigned(flip_mask(0x738710, 52)) == 7571216);
  assert(unsigned(flip_mask(0x738714, 52)) == 7571220);
  assert(unsigned(flip_mask(0x738724, 52)) == 7571236);
  assert(unsigned(flip_mask(0x738728, 52)) == 7571240);
  assert(unsigned(flip_mask(0x73872c, 52)) == 7571244);
  assert(unsigned(flip_mask(0x738730, 52)) == 7571248);
  assert(unsigned(flip_mask(0x738734, 52)) == 7571252);
  assert(unsigned(flip_mask(0x738738, 52)) == 7571256);
  assert(unsigned(flip_mask(0x73873c, 52)) == 7571260);
  assert(unsigned(flip_mask(0x738740, 52)) == 7571264);
  assert(unsigned(flip_mask(0x738744, 52)) == 7571268);
  assert(unsigned(flip_mask(0x738748, 52)) == 7571272);
  assert(unsigned(flip_mask(0x73874c, 52)) == 7571276);
  assert(unsigned(flip_mask(0x738750, 52)) == 7571280);
  assert(unsigned(flip_mask(0x738754, 52)) == 7571284);
  assert(unsigned(flip_mask(0x738758, 52)) == 7571288);
  assert(unsigned(flip_mask(0x73875c, 52)) == 7571292);
  assert(unsigned(flip_mask(0x738760, 52)) == 7571296);
  assert(unsigned(flip_mask(0x738764, 52)) == 7571300);
  assert(unsigned(flip_mask(0x738768, 52)) == 7571304);
  assert(unsigned(flip_mask(0x73876c, 52)) == 7571308);
  assert(unsigned(flip_mask(0x738770, 52)) == 7571312);
  assert(unsigned(flip_mask(0x738774, 52)) == 7571316);
  assert(unsigned(flip_mask(0x738778, 52)) == 7571320);
  assert(unsigned(flip_mask(0x73877c, 52)) == 7571324);
  assert(unsigned(flip_mask(0x738780, 52)) == 7571328);
  assert(unsigned(flip_mask(0x738784, 52)) == 7571332);
  assert(unsigned(flip_mask(0x738788, 52)) == 7571336);
  assert(unsigned(flip_mask(0x73878c, 52)) == 7571340);
  assert(unsigned(flip_mask(0x738790, 52)) == 7571344);
  assert(unsigned(flip_mask(0x738794, 52)) == 7571348);
  assert(unsigned(flip_mask(0x738798, 52)) == 7571352);
  assert(unsigned(flip_mask(0x73879c, 52)) == 7571356);
  assert(unsigned(flip_mask(0x7387a4, 52)) == 7571364);
  assert(unsigned(flip_mask(0x7387a8, 52)) == 7571368);
  assert(unsigned(flip_mask(0x7387b0, 52)) == 7571376);
  assert(unsigned(flip_mask(0x7387b4, 52)) == 7571380);
  assert(unsigned(flip_mask(0x7387b8, 52)) == 7571384);
  assert(unsigned(flip_mask(0x7387bc, 52)) == 7571388);
  assert(unsigned(flip_mask(0x7387c0, 52)) == 7571392);
  assert(unsigned(flip_mask(0x7387c4, 52)) == 7571396);
  assert(unsigned(flip_mask(0x7387c8, 52)) == 7571400);
  assert(unsigned(flip_mask(0x7387cc, 52)) == 7571404);
  assert(unsigned(flip_mask(0x7387d0, 52)) == 7571408);
  assert(unsigned(flip_mask(0x7387d4, 52)) == 7571412);
  assert(unsigned(flip_mask(0x7387d8, 52)) == 7571416);
  assert(unsigned(flip_mask(0x7387e0, 52)) == 7571424);
  assert(unsigned(flip_mask(0x7387e4, 52)) == 7571428);
  assert(unsigned(flip_mask(0x7387f0, 52)) == 7571440);
  assert(unsigned(flip_mask(0x7387f4, 52)) == 7571444);
  assert(unsigned(flip_mask(0x7387f8, 52)) == 7571448);
  assert(unsigned(flip_mask(0x7387fc, 52)) == 7571452);
  assert(unsigned(flip_mask(0x738800, 52)) == 7571456);
  assert(unsigned(flip_mask(0x738804, 52)) == 7571460);
  assert(unsigned(flip_mask(0x738808, 52)) == 7571464);
  assert(unsigned(flip_mask(0x73880c, 52)) == 7571468);
  assert(unsigned(flip_mask(0x738810, 52)) == 7571472);
  assert(unsigned(flip_mask(0x738814, 52)) == 7571476);
  assert(unsigned(flip_mask(0x738818, 52)) == 7571480);
  assert(unsigned(flip_mask(0x73881c, 52)) == 7571484);
  assert(unsigned(flip_mask(0x738820, 52)) == 7571488);
  assert(unsigned(flip_mask(0x738824, 52)) == 7571492);
  assert(unsigned(flip_mask(0x738828, 52)) == 7571496);
  assert(unsigned(flip_mask(0x73882c, 52)) == 7571500);
  assert(unsigned(flip_mask(0x738830, 52)) == 7571504);
  assert(unsigned(flip_mask(0x738834, 52)) == 7571508);
  assert(unsigned(flip_mask(0x738838, 52)) == 7571512);
  assert(unsigned(flip_mask(0x73883c, 52)) == 7571516);
  assert(unsigned(flip_mask(0x738840, 52)) == 7571520);
  assert(unsigned(flip_mask(0x738844, 52)) == 7571524);
  assert(unsigned(flip_mask(0x738848, 52)) == 7571528);
  assert(unsigned(flip_mask(0x73884c, 52)) == 7571532);
  assert(unsigned(flip_mask(0x738850, 52)) == 7571536);
  assert(unsigned(flip_mask(0x738854, 52)) == 7571540);
  assert(unsigned(flip_mask(0x738858, 52)) == 7571544);
  assert(unsigned(flip_mask(0x73885c, 52)) == 7571548);
  assert(unsigned(flip_mask(0x738860, 52)) == 7571552);
  assert(unsigned(flip_mask(0x738864, 52)) == 7571556);
  assert(unsigned(flip_mask(0x738868, 52)) == 7571560);
  assert(unsigned(flip_mask(0x73886c, 52)) == 7571564);
  assert(unsigned(flip_mask(0x738870, 52)) == 7571568);
  assert(unsigned(flip_mask(0x738874, 52)) == 7571572);
  assert(unsigned(flip_mask(0x738878, 52)) == 7571576);
  assert(unsigned(flip_mask(0x73887c, 52)) == 7571580);
  assert(unsigned(flip_mask(0x738880, 52)) == 7571584);
  assert(unsigned(flip_mask(0x738884, 52)) == 7571588);
  assert(unsigned(flip_mask(0x738888, 52)) == 7571592);
  assert(unsigned(flip_mask(0x73888c, 52)) == 7571596);
  assert(unsigned(flip_mask(0x738890, 52)) == 7571600);
  assert(unsigned(flip_mask(0x738894, 52)) == 7571604);
  assert(unsigned(flip_mask(0x738898, 52)) == 7571608);
  assert(unsigned(flip_mask(0x73889c, 52)) == 7571612);
  assert(unsigned(flip_mask(0x7388a0, 52)) == 7571616);
  assert(unsigned(flip_mask(0x7388a4, 52)) == 7571620);
  assert(unsigned(flip_mask(0x7388a8, 52)) == 7571624);
  assert(unsigned(flip_mask(0x7388ac, 52)) == 7571628);
  assert(unsigned(flip_mask(0x7388b0, 52)) == 7571632);
  assert(unsigned(flip_mask(0x7388b4, 52)) == 7571636);
  assert(unsigned(flip_mask(0x7388b8, 52)) == 7571640);
  assert(unsigned(flip_mask(0x7388bc, 52)) == 7571644);
  assert(unsigned(flip_mask(0x7388c0, 52)) == 7571648);
  assert(unsigned(flip_mask(0x7388c4, 52)) == 7571652);
  assert(unsigned(flip_mask(0x7388c8, 52)) == 7571656);
  assert(unsigned(flip_mask(0x7388cc, 52)) == 7571660);
  assert(unsigned(flip_mask(0x7388d0, 52)) == 7571664);
  assert(unsigned(flip_mask(0x7388d4, 52)) == 7571668);
  assert(unsigned(flip_mask(0x7388d8, 52)) == 7571672);
  assert(unsigned(flip_mask(0x7388dc, 52)) == 7571676);
  assert(unsigned(flip_mask(0x7388e0, 52)) == 7571680);
  assert(unsigned(flip_mask(0x7388e4, 52)) == 7571684);
  assert(unsigned(flip_mask(0x7388e8, 52)) == 7571688);
  assert(unsigned(flip_mask(0x7388ec, 52)) == 7571692);
  assert(unsigned(flip_mask(0x7388f0, 52)) == 7571696);
  assert(unsigned(flip_mask(0x7388f4, 52)) == 7571700);
  assert(unsigned(flip_mask(0x7388f8, 52)) == 7571704);
  assert(unsigned(flip_mask(0x7388fc, 52)) == 7571708);
  assert(unsigned(flip_mask(0x738900, 52)) == 7571712);
  assert(unsigned(flip_mask(0x738904, 52)) == 7571716);
  assert(unsigned(flip_mask(0x738908, 52)) == 7571720);
  assert(unsigned(flip_mask(0x73890c, 52)) == 7571724);
  assert(unsigned(flip_mask(0x738910, 52)) == 7571728);
  assert(unsigned(flip_mask(0x738914, 52)) == 7571732);
  assert(unsigned(flip_mask(0x738918, 52)) == 7571736);
  assert(unsigned(flip_mask(0x73891c, 52)) == 7571740);
  assert(unsigned(flip_mask(0x738920, 52)) == 7571744);
  assert(unsigned(flip_mask(0x738924, 52)) == 7571748);
  assert(unsigned(flip_mask(0x738928, 52)) == 7571752);
  assert(unsigned(flip_mask(0x73892c, 52)) == 7571756);
  assert(unsigned(flip_mask(0x738930, 52)) == 7571760);
  assert(unsigned(flip_mask(0x7406f0, 52)) == 7603952);
  assert(unsigned(flip_mask(0x7406f4, 52)) == 7603956);
  assert(unsigned(flip_mask(0x7406f8, 52)) == 7603960);
  assert(unsigned(flip_mask(0x74083c, 52)) == 7604284);
  assert(unsigned(flip_mask(0x740840, 52)) == 7604288);
  assert(unsigned(flip_mask(0x740844, 52)) == 7604292);
  assert(unsigned(flip_mask(0x7442f8, 52)) == 7619320);
  assert(unsigned(flip_mask(0x7442fc, 52)) == 7619324);
  assert(unsigned(flip_mask(0x744300, 52)) == 7619328);
  assert(unsigned(flip_mask(0x744450, 52)) == 7619664);
  assert(unsigned(flip_mask(0x744454, 52)) == 7619668);
  assert(unsigned(flip_mask(0x744458, 52)) == 7619672);
  assert(unsigned(flip_mask(0x7445a0, 52)) == 7620000);
  assert(unsigned(flip_mask(0x7445a4, 52)) == 7620004);
  assert(unsigned(flip_mask(0x7445a8, 52)) == 7620008);
  assert(unsigned(flip_mask(0x75c00, 52)) == 482304);
  assert(unsigned(flip_mask(0x75e00, 52)) == 482816);
  assert(unsigned(flip_mask(0x76000, 52)) == 483328);
  assert(unsigned(flip_mask(0x76008, 52)) == 483336);
  assert(unsigned(flip_mask(0x76010, 52)) == 483344);
  assert(unsigned(flip_mask(0x77000, 52)) == 487424);
  assert(unsigned(flip_mask(0x77010, 52)) == 487440);
  assert(unsigned(flip_mask(0x8000, 52)) == 32768);
  assert(unsigned(flip_mask(0x8008, 52)) == 32776);
  assert(unsigned(flip_mask(0x8018, 52)) == 32792);
  assert(unsigned(flip_mask(0x8040, 52)) == 32832);
  assert(unsigned(flip_mask(0x80428, 52)) == 525352);
  assert(unsigned(flip_mask(0x8048, 52)) == 32840);
  assert(unsigned(flip_mask(0x84800, 52)) == 542720);
  assert(unsigned(flip_mask(0xc020, 52)) == 49184);
  assert(unsigned(flip_mask(0xc028, 52)) == 49192);
  assert(unsigned(flip_mask(0xc030, 52)) == 49200);
  assert(unsigned(flip_mask(0xc038, 52)) == 49208);
  assert(unsigned(flip_mask(0xc040, 52)) == 49216);
  assert(unsigned(flip_mask(0x0, 6)) == 0);
  assert(unsigned(flip_mask(0x1, 6)) == 1);
  assert(unsigned(flip_mask(0x10, 6)) == 16);
  assert(unsigned(flip_mask(0x11, 6)) == 17);
  assert(unsigned(flip_mask(0x12, 6)) == 18);
  assert(unsigned(flip_mask(0x13, 6)) == 19);
  assert(unsigned(flip_mask(0x15, 6)) == 21);
  assert(unsigned(flip_mask(0x16, 6)) == 22);
  assert(unsigned(flip_mask(0x17, 6)) == 23);
  assert(unsigned(flip_mask(0x18, 6)) == 24);
  assert(unsigned(flip_mask(0x19, 6)) == 25);
  assert(unsigned(flip_mask(0x1a, 6)) == 26);
  assert(unsigned(flip_mask(0x1b, 6)) == 27);
  assert(unsigned(flip_mask(0x1c, 6)) == 28);
  assert(unsigned(flip_mask(0x1d, 6)) == 29);
  assert(unsigned(flip_mask(0x1e, 6)) == 30);
  assert(unsigned(flip_mask(0x1f, 6)) == 31);
  assert(unsigned(flip_mask(0x2, 6)) == 2);
  assert(unsigned(flip_mask(0x20, 6)) == 32);
  assert(unsigned(flip_mask(0x21, 6)) == 33);
  assert(unsigned(flip_mask(0x22, 6)) == 34);
  assert(unsigned(flip_mask(0x23, 6)) == 35);
  assert(unsigned(flip_mask(0x24, 6)) == 36);
  assert(unsigned(flip_mask(0x26, 6)) == 38);
  assert(unsigned(flip_mask(0x27, 6)) == 39);
  assert(unsigned(flip_mask(0x28, 6)) == 40);
  assert(unsigned(flip_mask(0x29, 6)) == 41);
  assert(unsigned(flip_mask(0x2a, 6)) == 42);
  assert(unsigned(flip_mask(0x2b, 6)) == 43);
  assert(unsigned(flip_mask(0x2c, 6)) == 44);
  assert(unsigned(flip_mask(0x2d, 6)) == 45);
  assert(unsigned(flip_mask(0x2e, 6)) == 46);
  assert(unsigned(flip_mask(0x2f, 6)) == 47);
  assert(unsigned(flip_mask(0x3, 6)) == 3);
  assert(unsigned(flip_mask(0x30, 6)) == 48);
  assert(unsigned(flip_mask(0x31, 6)) == 49);
  assert(unsigned(flip_mask(0x32, 6)) == 50);
  assert(unsigned(flip_mask(0x33, 6)) == 51);
  assert(unsigned(flip_mask(0x34, 6)) == 52);
  assert(unsigned(flip_mask(0x35, 6)) == 53);
  assert(unsigned(flip_mask(0x36, 6)) == 54);
  assert(unsigned(flip_mask(0x37, 6)) == 55);
  assert(unsigned(flip_mask(0x38, 6)) == 56);
  assert(unsigned(flip_mask(0x39, 6)) == 57);
  assert(unsigned(flip_mask(0x3a, 6)) == 58);
  assert(unsigned(flip_mask(0x3b, 6)) == 59);
  assert(unsigned(flip_mask(0x3c, 6)) == 60);
  assert(unsigned(flip_mask(0x3d, 6)) == 61);
  assert(unsigned(flip_mask(0x3e, 6)) == 62);
  assert(unsigned(flip_mask(0x3f, 6)) == 63);
  assert(unsigned(flip_mask(0x4, 6)) == 4);
  assert(unsigned(flip_mask(0x5, 6)) == 5);
  assert(unsigned(flip_mask(0x6, 6)) == 6);
  assert(unsigned(flip_mask(0x7, 6)) == 7);
  assert(unsigned(flip_mask(0x8, 6)) == 8);
  assert(unsigned(flip_mask(0x9, 6)) == 9);
  assert(unsigned(flip_mask(0xa, 6)) == 10);
  assert(unsigned(flip_mask(0xb, 6)) == 11);
  assert(unsigned(flip_mask(0xc, 6)) == 12);
  assert(unsigned(flip_mask(0xd, 6)) == 13);
  assert(unsigned(flip_mask(0xe, 6)) == 14);
  assert(unsigned(flip_mask(0xf, 6)) == 15);
  assert(unsigned(flip_mask(0x0, 64)) == 0);
  assert(unsigned(flip_mask(0x1, 64)) == 1);
  assert(unsigned(flip_mask(0x10, 64)) == 16);
  assert(unsigned(flip_mask(0x100, 64)) == 256);
  assert(unsigned(flip_mask(0x10000, 64)) == 65536);
  assert(unsigned(flip_mask(0x1000000, 64)) == 16777216);
  assert(unsigned(flip_mask(0x100000000, 64)) == 4294967296);
  assert(unsigned(flip_mask(0x100000000000, 64)) == 17592186044416);
  assert(unsigned(flip_mask(0x100000001, 64)) == 4294967297);
  assert(unsigned(flip_mask(0x1000004, 64)) == 16777220);
  assert(unsigned(flip_mask(0x1000008, 64)) == 16777224);
  assert(unsigned(flip_mask(0x100000c, 64)) == 16777228);
  assert(unsigned(flip_mask(0x1000010, 64)) == 16777232);
  assert(unsigned(flip_mask(0x1000014, 64)) == 16777236);
  assert(unsigned(flip_mask(0x1000018, 64)) == 16777240);
  assert(unsigned(flip_mask(0x100001c, 64)) == 16777244);
  assert(unsigned(flip_mask(0x1000020, 64)) == 16777248);
  assert(unsigned(flip_mask(0x1000024, 64)) == 16777252);
  assert(unsigned(flip_mask(0x1000028, 64)) == 16777256);
  assert(unsigned(flip_mask(0x100002c, 64)) == 16777260);
  assert(unsigned(flip_mask(0x1000030, 64)) == 16777264);
  assert(unsigned(flip_mask(0x1000034, 64)) == 16777268);
  assert(unsigned(flip_mask(0x1000038, 64)) == 16777272);
  assert(unsigned(flip_mask(0x100003c, 64)) == 16777276);
  assert(unsigned(flip_mask(0x1000040, 64)) == 16777280);
  assert(unsigned(flip_mask(0x1000044, 64)) == 16777284);
  assert(unsigned(flip_mask(0x1000048, 64)) == 16777288);
  assert(unsigned(flip_mask(0x100004c, 64)) == 16777292);
  assert(unsigned(flip_mask(0x1000050, 64)) == 16777296);
  assert(unsigned(flip_mask(0x1000054, 64)) == 16777300);
  assert(unsigned(flip_mask(0x1000058, 64)) == 16777304);
  assert(unsigned(flip_mask(0x100005c, 64)) == 16777308);
  assert(unsigned(flip_mask(0x1000060, 64)) == 16777312);
  assert(unsigned(flip_mask(0x1000064, 64)) == 16777316);
  assert(unsigned(flip_mask(0x1000068, 64)) == 16777320);
  assert(unsigned(flip_mask(0x100006c, 64)) == 16777324);
  assert(unsigned(flip_mask(0x1000070, 64)) == 16777328);
  assert(unsigned(flip_mask(0x1000074, 64)) == 16777332);
  assert(unsigned(flip_mask(0x1000078, 64)) == 16777336);
  assert(unsigned(flip_mask(0x100007c, 64)) == 16777340);
  assert(unsigned(flip_mask(0x1000080, 64)) == 16777344);
  assert(unsigned(flip_mask(0x1000088, 64)) == 16777352);
  assert(unsigned(flip_mask(0x1000090, 64)) == 16777360);
  assert(unsigned(flip_mask(0x1000094, 64)) == 16777364);
  assert(unsigned(flip_mask(0x1000098, 64)) == 16777368);
  assert(unsigned(flip_mask(0x100009c, 64)) == 16777372);
  assert(unsigned(flip_mask(0x10000a0, 64)) == 16777376);
  assert(unsigned(flip_mask(0x10000a8, 64)) == 16777384);
  assert(unsigned(flip_mask(0x10000ac, 64)) == 16777388);
  assert(unsigned(flip_mask(0x10000b0, 64)) == 16777392);
  assert(unsigned(flip_mask(0x10000b4, 64)) == 16777396);
  assert(unsigned(flip_mask(0x10000b8, 64)) == 16777400);
  assert(unsigned(flip_mask(0x10000bc, 64)) == 16777404);
  assert(unsigned(flip_mask(0x10000c0, 64)) == 16777408);
  assert(unsigned(flip_mask(0x10000c4, 64)) == 16777412);
  assert(unsigned(flip_mask(0x10000c8, 64)) == 16777416);
  assert(unsigned(flip_mask(0x10000cc, 64)) == 16777420);
  assert(unsigned(flip_mask(0x10000d0, 64)) == 16777424);
  assert(unsigned(flip_mask(0x10000d4, 64)) == 16777428);
  assert(unsigned(flip_mask(0x10000d8, 64)) == 16777432);
  assert(unsigned(flip_mask(0x10000dc, 64)) == 16777436);
  assert(unsigned(flip_mask(0x10000e0, 64)) == 16777440);
  assert(unsigned(flip_mask(0x10000e4, 64)) == 16777444);
  assert(unsigned(flip_mask(0x10000e8, 64)) == 16777448);
  assert(unsigned(flip_mask(0x10000ec, 64)) == 16777452);
  assert(unsigned(flip_mask(0x10000f0, 64)) == 16777456);
  assert(unsigned(flip_mask(0x10000f4, 64)) == 16777460);
  assert(unsigned(flip_mask(0x10000f8, 64)) == 16777464);
  assert(unsigned(flip_mask(0x10000fc, 64)) == 16777468);
  assert(unsigned(flip_mask(0x10001, 64)) == 65537);
  assert(unsigned(flip_mask(0x1000100, 64)) == 16777472);
  assert(unsigned(flip_mask(0x1000100010001, 64)) == 281479271743489);
  assert(unsigned(flip_mask(0x1000104, 64)) == 16777476);
  assert(unsigned(flip_mask(0x1000108, 64)) == 16777480);
  assert(unsigned(flip_mask(0x100010c, 64)) == 16777484);
  assert(unsigned(flip_mask(0x1000110, 64)) == 16777488);
  assert(unsigned(flip_mask(0x1000114, 64)) == 16777492);
  assert(unsigned(flip_mask(0x1000118, 64)) == 16777496);
  assert(unsigned(flip_mask(0x100011c, 64)) == 16777500);
  assert(unsigned(flip_mask(0x1000120, 64)) == 16777504);
  assert(unsigned(flip_mask(0x1000124, 64)) == 16777508);
  assert(unsigned(flip_mask(0x1000128, 64)) == 16777512);
  assert(unsigned(flip_mask(0x100012c, 64)) == 16777516);
  assert(unsigned(flip_mask(0x1000130, 64)) == 16777520);
  assert(unsigned(flip_mask(0x1000134, 64)) == 16777524);
  assert(unsigned(flip_mask(0x1000138, 64)) == 16777528);
  assert(unsigned(flip_mask(0x100013c, 64)) == 16777532);
  assert(unsigned(flip_mask(0x1000140, 64)) == 16777536);
  assert(unsigned(flip_mask(0x1000144, 64)) == 16777540);
  assert(unsigned(flip_mask(0x1000148, 64)) == 16777544);
  assert(unsigned(flip_mask(0x100014c, 64)) == 16777548);
  assert(unsigned(flip_mask(0x1000150, 64)) == 16777552);
  assert(unsigned(flip_mask(0x1000154, 64)) == 16777556);
  assert(unsigned(flip_mask(0x1000158, 64)) == 16777560);
  assert(unsigned(flip_mask(0x100015c, 64)) == 16777564);
  assert(unsigned(flip_mask(0x1000160, 64)) == 16777568);
  assert(unsigned(flip_mask(0x1000164, 64)) == 16777572);
  assert(unsigned(flip_mask(0x1000168, 64)) == 16777576);
  assert(unsigned(flip_mask(0x100016c, 64)) == 16777580);
  assert(unsigned(flip_mask(0x1000170, 64)) == 16777584);
  assert(unsigned(flip_mask(0x1000174, 64)) == 16777588);
  assert(unsigned(flip_mask(0x1000178, 64)) == 16777592);
  assert(unsigned(flip_mask(0x100017c, 64)) == 16777596);
  assert(unsigned(flip_mask(0x1000180, 64)) == 16777600);
  assert(unsigned(flip_mask(0x1000184, 64)) == 16777604);
  assert(unsigned(flip_mask(0x1000188, 64)) == 16777608);
  assert(unsigned(flip_mask(0x100018c, 64)) == 16777612);
  assert(unsigned(flip_mask(0x1000190, 64)) == 16777616);
  assert(unsigned(flip_mask(0x1000194, 64)) == 16777620);
  assert(unsigned(flip_mask(0x1000198, 64)) == 16777624);
  assert(unsigned(flip_mask(0x100019c, 64)) == 16777628);
  assert(unsigned(flip_mask(0x10001a0, 64)) == 16777632);
  assert(unsigned(flip_mask(0x10001a4, 64)) == 16777636);
  assert(unsigned(flip_mask(0x10001a8, 64)) == 16777640);
  assert(unsigned(flip_mask(0x10001ac, 64)) == 16777644);
  assert(unsigned(flip_mask(0x10001b0, 64)) == 16777648);
  assert(unsigned(flip_mask(0x10001b4, 64)) == 16777652);
  assert(unsigned(flip_mask(0x10001b8, 64)) == 16777656);
  assert(unsigned(flip_mask(0x10001bc, 64)) == 16777660);
  assert(unsigned(flip_mask(0x10001c0, 64)) == 16777664);
  assert(unsigned(flip_mask(0x10001c4, 64)) == 16777668);
  assert(unsigned(flip_mask(0x10001c8, 64)) == 16777672);
  assert(unsigned(flip_mask(0x10001cc, 64)) == 16777676);
  assert(unsigned(flip_mask(0x10001d0, 64)) == 16777680);
  assert(unsigned(flip_mask(0x10001d4, 64)) == 16777684);
  assert(unsigned(flip_mask(0x10001d8, 64)) == 16777688);
  assert(unsigned(flip_mask(0x10001dc, 64)) == 16777692);
  assert(unsigned(flip_mask(0x10001e0, 64)) == 16777696);
  assert(unsigned(flip_mask(0x10001e4, 64)) == 16777700);
  assert(unsigned(flip_mask(0x10001e8, 64)) == 16777704);
  assert(unsigned(flip_mask(0x10001ec, 64)) == 16777708);
  assert(unsigned(flip_mask(0x10001f0, 64)) == 16777712);
  assert(unsigned(flip_mask(0x10001f4, 64)) == 16777716);
  assert(unsigned(flip_mask(0x10001f8, 64)) == 16777720);
  assert(unsigned(flip_mask(0x10001fc, 64)) == 16777724);
  assert(unsigned(flip_mask(0x1000200, 64)) == 16777728);
  assert(unsigned(flip_mask(0x1000204, 64)) == 16777732);
  assert(unsigned(flip_mask(0x1000208, 64)) == 16777736);
  assert(unsigned(flip_mask(0x100020c, 64)) == 16777740);
  assert(unsigned(flip_mask(0x1000210, 64)) == 16777744);
  assert(unsigned(flip_mask(0x1000214, 64)) == 16777748);
  assert(unsigned(flip_mask(0x1000218, 64)) == 16777752);
  assert(unsigned(flip_mask(0x100021c, 64)) == 16777756);
  assert(unsigned(flip_mask(0x1000220, 64)) == 16777760);
  assert(unsigned(flip_mask(0x1000224, 64)) == 16777764);
  assert(unsigned(flip_mask(0x1000228, 64)) == 16777768);
  assert(unsigned(flip_mask(0x100022c, 64)) == 16777772);
  assert(unsigned(flip_mask(0x1000230, 64)) == 16777776);
  assert(unsigned(flip_mask(0x1000234, 64)) == 16777780);
  assert(unsigned(flip_mask(0x1000238, 64)) == 16777784);
  assert(unsigned(flip_mask(0x100023c, 64)) == 16777788);
  assert(unsigned(flip_mask(0x1000240, 64)) == 16777792);
  assert(unsigned(flip_mask(0x1000244, 64)) == 16777796);
  assert(unsigned(flip_mask(0x1000248, 64)) == 16777800);
  assert(unsigned(flip_mask(0x100024c, 64)) == 16777804);
  assert(unsigned(flip_mask(0x1000250, 64)) == 16777808);
  assert(unsigned(flip_mask(0x1000254, 64)) == 16777812);
  assert(unsigned(flip_mask(0x1000258, 64)) == 16777816);
  assert(unsigned(flip_mask(0x100025c, 64)) == 16777820);
  assert(unsigned(flip_mask(0x1000454, 64)) == 16778324);
  assert(unsigned(flip_mask(0x1000458, 64)) == 16778328);
  assert(unsigned(flip_mask(0x100045c, 64)) == 16778332);
  assert(unsigned(flip_mask(0x1000460, 64)) == 16778336);
  assert(unsigned(flip_mask(0x1000464, 64)) == 16778340);
  assert(unsigned(flip_mask(0x1000468, 64)) == 16778344);
  assert(unsigned(flip_mask(0x100046c, 64)) == 16778348);
  assert(unsigned(flip_mask(0x1000470, 64)) == 16778352);
  assert(unsigned(flip_mask(0x1000474, 64)) == 16778356);
  assert(unsigned(flip_mask(0x1000478, 64)) == 16778360);
  assert(unsigned(flip_mask(0x100047c, 64)) == 16778364);
  assert(unsigned(flip_mask(0x1000480, 64)) == 16778368);
  assert(unsigned(flip_mask(0x1000484, 64)) == 16778372);
  assert(unsigned(flip_mask(0x1000488, 64)) == 16778376);
  assert(unsigned(flip_mask(0x100048c, 64)) == 16778380);
  assert(unsigned(flip_mask(0x1000490, 64)) == 16778384);
  assert(unsigned(flip_mask(0x1000494, 64)) == 16778388);
  assert(unsigned(flip_mask(0x1000498, 64)) == 16778392);
  assert(unsigned(flip_mask(0x100049c, 64)) == 16778396);
  assert(unsigned(flip_mask(0x10004a0, 64)) == 16778400);
  assert(unsigned(flip_mask(0x10004a4, 64)) == 16778404);
  assert(unsigned(flip_mask(0x10004a8, 64)) == 16778408);
  assert(unsigned(flip_mask(0x10004ac, 64)) == 16778412);
  assert(unsigned(flip_mask(0x10004b0, 64)) == 16778416);
  assert(unsigned(flip_mask(0x10004b4, 64)) == 16778420);
  assert(unsigned(flip_mask(0x10004b8, 64)) == 16778424);
  assert(unsigned(flip_mask(0x10004bc, 64)) == 16778428);
  assert(unsigned(flip_mask(0x10004c0, 64)) == 16778432);
  assert(unsigned(flip_mask(0x10004c4, 64)) == 16778436);
  assert(unsigned(flip_mask(0x10004c8, 64)) == 16778440);
  assert(unsigned(flip_mask(0x10004cc, 64)) == 16778444);
  assert(unsigned(flip_mask(0x10004d0, 64)) == 16778448);
  assert(unsigned(flip_mask(0x10004d8, 64)) == 16778456);
  assert(unsigned(flip_mask(0x10004e0, 64)) == 16778464);
  assert(unsigned(flip_mask(0x10004e4, 64)) == 16778468);
  assert(unsigned(flip_mask(0x10004e8, 64)) == 16778472);
  assert(unsigned(flip_mask(0x10004ec, 64)) == 16778476);
  assert(unsigned(flip_mask(0x10004f0, 64)) == 16778480);
  assert(unsigned(flip_mask(0x10004f4, 64)) == 16778484);
  assert(unsigned(flip_mask(0x10004f8, 64)) == 16778488);
  assert(unsigned(flip_mask(0x10004fc, 64)) == 16778492);
  assert(unsigned(flip_mask(0x1000500, 64)) == 16778496);
  assert(unsigned(flip_mask(0x1000504, 64)) == 16778500);
  assert(unsigned(flip_mask(0x1000508, 64)) == 16778504);
  assert(unsigned(flip_mask(0x100050c, 64)) == 16778508);
  assert(unsigned(flip_mask(0x1000510, 64)) == 16778512);
  assert(unsigned(flip_mask(0x1000514, 64)) == 16778516);
  assert(unsigned(flip_mask(0x1000518, 64)) == 16778520);
  assert(unsigned(flip_mask(0x100051c, 64)) == 16778524);
  assert(unsigned(flip_mask(0x1000520, 64)) == 16778528);
  assert(unsigned(flip_mask(0x1000524, 64)) == 16778532);
  assert(unsigned(flip_mask(0x1000528, 64)) == 16778536);
  assert(unsigned(flip_mask(0x100052c, 64)) == 16778540);
  assert(unsigned(flip_mask(0x1000530, 64)) == 16778544);
  assert(unsigned(flip_mask(0x1000534, 64)) == 16778548);
  assert(unsigned(flip_mask(0x1000538, 64)) == 16778552);
  assert(unsigned(flip_mask(0x100053c, 64)) == 16778556);
  assert(unsigned(flip_mask(0x1000540, 64)) == 16778560);
  assert(unsigned(flip_mask(0x1000544, 64)) == 16778564);
  assert(unsigned(flip_mask(0x1000548, 64)) == 16778568);
  assert(unsigned(flip_mask(0x1000804, 64)) == 16779268);
  assert(unsigned(flip_mask(0x1000808, 64)) == 16779272);
  assert(unsigned(flip_mask(0x100080c, 64)) == 16779276);
  assert(unsigned(flip_mask(0x1000810, 64)) == 16779280);
  assert(unsigned(flip_mask(0x1000814, 64)) == 16779284);
  assert(unsigned(flip_mask(0x1000818, 64)) == 16779288);
  assert(unsigned(flip_mask(0x101000, 64)) == 1052672);
  assert(unsigned(flip_mask(0x101004, 64)) == 1052676);
  assert(unsigned(flip_mask(0x101008, 64)) == 1052680);
  assert(unsigned(flip_mask(0x10100c, 64)) == 1052684);
  assert(unsigned(flip_mask(0x101010, 64)) == 1052688);
  assert(unsigned(flip_mask(0x101014, 64)) == 1052692);
  assert(unsigned(flip_mask(0x101018, 64)) == 1052696);
  assert(unsigned(flip_mask(0x10101c, 64)) == 1052700);
  assert(unsigned(flip_mask(0x101020, 64)) == 1052704);
  assert(unsigned(flip_mask(0x101024, 64)) == 1052708);
  assert(unsigned(flip_mask(0x101028, 64)) == 1052712);
  assert(unsigned(flip_mask(0x10102c, 64)) == 1052716);
  assert(unsigned(flip_mask(0x101030, 64)) == 1052720);
  assert(unsigned(flip_mask(0x101034, 64)) == 1052724);
  assert(unsigned(flip_mask(0x101038, 64)) == 1052728);
  assert(unsigned(flip_mask(0x10103c, 64)) == 1052732);
  assert(unsigned(flip_mask(0x101040, 64)) == 1052736);
  assert(unsigned(flip_mask(0x101044, 64)) == 1052740);
  assert(unsigned(flip_mask(0x101048, 64)) == 1052744);
  assert(unsigned(flip_mask(0x10104c, 64)) == 1052748);
  assert(unsigned(flip_mask(0x101050, 64)) == 1052752);
  assert(unsigned(flip_mask(0x101054, 64)) == 1052756);
  assert(unsigned(flip_mask(0x101058, 64)) == 1052760);
  assert(unsigned(flip_mask(0x10105c, 64)) == 1052764);
  assert(unsigned(flip_mask(0x101060, 64)) == 1052768);
  assert(unsigned(flip_mask(0x101064, 64)) == 1052772);
  assert(unsigned(flip_mask(0x101068, 64)) == 1052776);
  assert(unsigned(flip_mask(0x10106c, 64)) == 1052780);
  assert(unsigned(flip_mask(0x101070, 64)) == 1052784);
  assert(unsigned(flip_mask(0x101074, 64)) == 1052788);
  assert(unsigned(flip_mask(0x101078, 64)) == 1052792);
  assert(unsigned(flip_mask(0x10107c, 64)) == 1052796);
  assert(unsigned(flip_mask(0x101080, 64)) == 1052800);
  assert(unsigned(flip_mask(0x101088, 64)) == 1052808);
  assert(unsigned(flip_mask(0x10108c, 64)) == 1052812);
  assert(unsigned(flip_mask(0x101090, 64)) == 1052816);
  assert(unsigned(flip_mask(0x101094, 64)) == 1052820);
  assert(unsigned(flip_mask(0x101098, 64)) == 1052824);
  assert(unsigned(flip_mask(0x10109c, 64)) == 1052828);
  assert(unsigned(flip_mask(0x1010a0, 64)) == 1052832);
  assert(unsigned(flip_mask(0x1010ac, 64)) == 1052844);
  assert(unsigned(flip_mask(0x1010b0, 64)) == 1052848);
  assert(unsigned(flip_mask(0x1010b4, 64)) == 1052852);
  assert(unsigned(flip_mask(0x1010b8, 64)) == 1052856);
  assert(unsigned(flip_mask(0x1010c0, 64)) == 1052864);
  assert(unsigned(flip_mask(0x1010c4, 64)) == 1052868);
  assert(unsigned(flip_mask(0x1010c8, 64)) == 1052872);
  assert(unsigned(flip_mask(0x1010cc, 64)) == 1052876);
  assert(unsigned(flip_mask(0x1010d0, 64)) == 1052880);
  assert(unsigned(flip_mask(0x1010d4, 64)) == 1052884);
  assert(unsigned(flip_mask(0x1010d8, 64)) == 1052888);
  assert(unsigned(flip_mask(0x1010dc, 64)) == 1052892);
  assert(unsigned(flip_mask(0x1010e0, 64)) == 1052896);
  assert(unsigned(flip_mask(0x1010e4, 64)) == 1052900);
  assert(unsigned(flip_mask(0x1010e8, 64)) == 1052904);
  assert(unsigned(flip_mask(0x1010ec, 64)) == 1052908);
  assert(unsigned(flip_mask(0x1010f0, 64)) == 1052912);
  assert(unsigned(flip_mask(0x1010f4, 64)) == 1052916);
  assert(unsigned(flip_mask(0x1010f8, 64)) == 1052920);
  assert(unsigned(flip_mask(0x1010fc, 64)) == 1052924);
  assert(unsigned(flip_mask(0x101100, 64)) == 1052928);
  assert(unsigned(flip_mask(0x101104, 64)) == 1052932);
  assert(unsigned(flip_mask(0x101108, 64)) == 1052936);
  assert(unsigned(flip_mask(0x10110c, 64)) == 1052940);
  assert(unsigned(flip_mask(0x101110, 64)) == 1052944);
  assert(unsigned(flip_mask(0x101114, 64)) == 1052948);
  assert(unsigned(flip_mask(0x101118, 64)) == 1052952);
  assert(unsigned(flip_mask(0x10111c, 64)) == 1052956);
  assert(unsigned(flip_mask(0x101120, 64)) == 1052960);
  assert(unsigned(flip_mask(0x101124, 64)) == 1052964);
  assert(unsigned(flip_mask(0x101128, 64)) == 1052968);
  assert(unsigned(flip_mask(0x10112c, 64)) == 1052972);
  assert(unsigned(flip_mask(0x101130, 64)) == 1052976);
  assert(unsigned(flip_mask(0x101134, 64)) == 1052980);
  assert(unsigned(flip_mask(0x101138, 64)) == 1052984);
  assert(unsigned(flip_mask(0x10113c, 64)) == 1052988);
  assert(unsigned(flip_mask(0x101140, 64)) == 1052992);
  assert(unsigned(flip_mask(0x101144, 64)) == 1052996);
  assert(unsigned(flip_mask(0x101148, 64)) == 1053000);
  assert(unsigned(flip_mask(0x10114c, 64)) == 1053004);
  assert(unsigned(flip_mask(0x101150, 64)) == 1053008);
  assert(unsigned(flip_mask(0x101154, 64)) == 1053012);
  assert(unsigned(flip_mask(0x101158, 64)) == 1053016);
  assert(unsigned(flip_mask(0x10115c, 64)) == 1053020);
  assert(unsigned(flip_mask(0x101160, 64)) == 1053024);
  assert(unsigned(flip_mask(0x101164, 64)) == 1053028);
  assert(unsigned(flip_mask(0x101168, 64)) == 1053032);
  assert(unsigned(flip_mask(0x10116c, 64)) == 1053036);
  assert(unsigned(flip_mask(0x101170, 64)) == 1053040);
  assert(unsigned(flip_mask(0x101174, 64)) == 1053044);
  assert(unsigned(flip_mask(0x101178, 64)) == 1053048);
  assert(unsigned(flip_mask(0x10117c, 64)) == 1053052);
  assert(unsigned(flip_mask(0x101180, 64)) == 1053056);
  assert(unsigned(flip_mask(0x101184, 64)) == 1053060);
  assert(unsigned(flip_mask(0x101188, 64)) == 1053064);
  assert(unsigned(flip_mask(0x10118c, 64)) == 1053068);
  assert(unsigned(flip_mask(0x101190, 64)) == 1053072);
  assert(unsigned(flip_mask(0x101194, 64)) == 1053076);
  assert(unsigned(flip_mask(0x101198, 64)) == 1053080);
  assert(unsigned(flip_mask(0x10119c, 64)) == 1053084);
  assert(unsigned(flip_mask(0x1011a0, 64)) == 1053088);
  assert(unsigned(flip_mask(0x1011a4, 64)) == 1053092);
  assert(unsigned(flip_mask(0x1011a8, 64)) == 1053096);
  assert(unsigned(flip_mask(0x1011ac, 64)) == 1053100);
  assert(unsigned(flip_mask(0x1011b0, 64)) == 1053104);
  assert(unsigned(flip_mask(0x1011b4, 64)) == 1053108);
  assert(unsigned(flip_mask(0x1011b8, 64)) == 1053112);
  assert(unsigned(flip_mask(0x101200, 64)) == 1053184);
  assert(unsigned(flip_mask(0x101204, 64)) == 1053188);
  assert(unsigned(flip_mask(0x101208, 64)) == 1053192);
  assert(unsigned(flip_mask(0x10120c, 64)) == 1053196);
  assert(unsigned(flip_mask(0x101210, 64)) == 1053200);
  assert(unsigned(flip_mask(0x101214, 64)) == 1053204);
  assert(unsigned(flip_mask(0x101218, 64)) == 1053208);
  assert(unsigned(flip_mask(0x10121c, 64)) == 1053212);
  assert(unsigned(flip_mask(0x101220, 64)) == 1053216);
  assert(unsigned(flip_mask(0x101240, 64)) == 1053248);
  assert(unsigned(flip_mask(0x101248, 64)) == 1053256);
  assert(unsigned(flip_mask(0x101250, 64)) == 1053264);
  assert(unsigned(flip_mask(0x101258, 64)) == 1053272);
  assert(unsigned(flip_mask(0x101260, 64)) == 1053280);
  assert(unsigned(flip_mask(0x101270, 64)) == 1053296);
  assert(unsigned(flip_mask(0x101278, 64)) == 1053304);
  assert(unsigned(flip_mask(0x101280, 64)) == 1053312);
  assert(unsigned(flip_mask(0x102000, 64)) == 1056768);
  assert(unsigned(flip_mask(0x102004, 64)) == 1056772);
  assert(unsigned(flip_mask(0x102008, 64)) == 1056776);
  assert(unsigned(flip_mask(0x10200c, 64)) == 1056780);
  assert(unsigned(flip_mask(0x102010, 64)) == 1056784);
  assert(unsigned(flip_mask(0x102014, 64)) == 1056788);
  assert(unsigned(flip_mask(0x102018, 64)) == 1056792);
  assert(unsigned(flip_mask(0x10201c, 64)) == 1056796);
  assert(unsigned(flip_mask(0x102020, 64)) == 1056800);
  assert(unsigned(flip_mask(0x102024, 64)) == 1056804);
  assert(unsigned(flip_mask(0x102028, 64)) == 1056808);
  assert(unsigned(flip_mask(0x10202c, 64)) == 1056812);
  assert(unsigned(flip_mask(0x102030, 64)) == 1056816);
  assert(unsigned(flip_mask(0x102034, 64)) == 1056820);
  assert(unsigned(flip_mask(0x102038, 64)) == 1056824);
  assert(unsigned(flip_mask(0x10203c, 64)) == 1056828);
  assert(unsigned(flip_mask(0x102040, 64)) == 1056832);
  assert(unsigned(flip_mask(0x102044, 64)) == 1056836);
  assert(unsigned(flip_mask(0x102048, 64)) == 1056840);
  assert(unsigned(flip_mask(0x10204c, 64)) == 1056844);
  assert(unsigned(flip_mask(0x102050, 64)) == 1056848);
  assert(unsigned(flip_mask(0x102054, 64)) == 1056852);
  assert(unsigned(flip_mask(0x102058, 64)) == 1056856);
  assert(unsigned(flip_mask(0x10205c, 64)) == 1056860);
  assert(unsigned(flip_mask(0x102060, 64)) == 1056864);
  assert(unsigned(flip_mask(0x102064, 64)) == 1056868);
  assert(unsigned(flip_mask(0x102068, 64)) == 1056872);
  assert(unsigned(flip_mask(0x10206c, 64)) == 1056876);
  assert(unsigned(flip_mask(0x102070, 64)) == 1056880);
  assert(unsigned(flip_mask(0x102074, 64)) == 1056884);
  assert(unsigned(flip_mask(0x102078, 64)) == 1056888);
  assert(unsigned(flip_mask(0x10207c, 64)) == 1056892);
  assert(unsigned(flip_mask(0x102080, 64)) == 1056896);
  assert(unsigned(flip_mask(0x102084, 64)) == 1056900);
  assert(unsigned(flip_mask(0x102088, 64)) == 1056904);
  assert(unsigned(flip_mask(0x10208c, 64)) == 1056908);
  assert(unsigned(flip_mask(0x102090, 64)) == 1056912);
  assert(unsigned(flip_mask(0x102098, 64)) == 1056920);
  assert(unsigned(flip_mask(0x10209c, 64)) == 1056924);
  assert(unsigned(flip_mask(0x1020a0, 64)) == 1056928);
  assert(unsigned(flip_mask(0x1020a4, 64)) == 1056932);
  assert(unsigned(flip_mask(0x1020a8, 64)) == 1056936);
  assert(unsigned(flip_mask(0x1020ac, 64)) == 1056940);
  assert(unsigned(flip_mask(0x1020b0, 64)) == 1056944);
  assert(unsigned(flip_mask(0x1020bc, 64)) == 1056956);
  assert(unsigned(flip_mask(0x1020c0, 64)) == 1056960);
  assert(unsigned(flip_mask(0x1020c4, 64)) == 1056964);
  assert(unsigned(flip_mask(0x1020c8, 64)) == 1056968);
  assert(unsigned(flip_mask(0x1020d0, 64)) == 1056976);
  assert(unsigned(flip_mask(0x1020d4, 64)) == 1056980);
  assert(unsigned(flip_mask(0x1020d8, 64)) == 1056984);
  assert(unsigned(flip_mask(0x1020dc, 64)) == 1056988);
  assert(unsigned(flip_mask(0x1020e0, 64)) == 1056992);
  assert(unsigned(flip_mask(0x1020e4, 64)) == 1056996);
  assert(unsigned(flip_mask(0x1020e8, 64)) == 1057000);
  assert(unsigned(flip_mask(0x1020ec, 64)) == 1057004);
  assert(unsigned(flip_mask(0x1020f0, 64)) == 1057008);
  assert(unsigned(flip_mask(0x1020f4, 64)) == 1057012);
  assert(unsigned(flip_mask(0x1020f8, 64)) == 1057016);
  assert(unsigned(flip_mask(0x1020fc, 64)) == 1057020);
  assert(unsigned(flip_mask(0x102100, 64)) == 1057024);
  assert(unsigned(flip_mask(0x102104, 64)) == 1057028);
  assert(unsigned(flip_mask(0x102108, 64)) == 1057032);
  assert(unsigned(flip_mask(0x10210c, 64)) == 1057036);
  assert(unsigned(flip_mask(0x102110, 64)) == 1057040);
  assert(unsigned(flip_mask(0x102114, 64)) == 1057044);
  assert(unsigned(flip_mask(0x102118, 64)) == 1057048);
  assert(unsigned(flip_mask(0x10211c, 64)) == 1057052);
  assert(unsigned(flip_mask(0x102120, 64)) == 1057056);
  assert(unsigned(flip_mask(0x102124, 64)) == 1057060);
  assert(unsigned(flip_mask(0x102128, 64)) == 1057064);
  assert(unsigned(flip_mask(0x10212c, 64)) == 1057068);
  assert(unsigned(flip_mask(0x102130, 64)) == 1057072);
  assert(unsigned(flip_mask(0x102134, 64)) == 1057076);
  assert(unsigned(flip_mask(0x102138, 64)) == 1057080);
  assert(unsigned(flip_mask(0x10213c, 64)) == 1057084);
  assert(unsigned(flip_mask(0x102140, 64)) == 1057088);
  assert(unsigned(flip_mask(0x102144, 64)) == 1057092);
  assert(unsigned(flip_mask(0x102148, 64)) == 1057096);
  assert(unsigned(flip_mask(0x10214c, 64)) == 1057100);
  assert(unsigned(flip_mask(0x102150, 64)) == 1057104);
  assert(unsigned(flip_mask(0x102154, 64)) == 1057108);
  assert(unsigned(flip_mask(0x102158, 64)) == 1057112);
  assert(unsigned(flip_mask(0x10215c, 64)) == 1057116);
  assert(unsigned(flip_mask(0x102160, 64)) == 1057120);
  assert(unsigned(flip_mask(0x102164, 64)) == 1057124);
  assert(unsigned(flip_mask(0x102168, 64)) == 1057128);
  assert(unsigned(flip_mask(0x10216c, 64)) == 1057132);
  assert(unsigned(flip_mask(0x102170, 64)) == 1057136);
  assert(unsigned(flip_mask(0x102174, 64)) == 1057140);
  assert(unsigned(flip_mask(0x102178, 64)) == 1057144);
  assert(unsigned(flip_mask(0x10217c, 64)) == 1057148);
  assert(unsigned(flip_mask(0x102180, 64)) == 1057152);
  assert(unsigned(flip_mask(0x102184, 64)) == 1057156);
  assert(unsigned(flip_mask(0x102188, 64)) == 1057160);
  assert(unsigned(flip_mask(0x10218c, 64)) == 1057164);
  assert(unsigned(flip_mask(0x102190, 64)) == 1057168);
  assert(unsigned(flip_mask(0x102194, 64)) == 1057172);
  assert(unsigned(flip_mask(0x102198, 64)) == 1057176);
  assert(unsigned(flip_mask(0x10219c, 64)) == 1057180);
  assert(unsigned(flip_mask(0x1021a0, 64)) == 1057184);
  assert(unsigned(flip_mask(0x1021a4, 64)) == 1057188);
  assert(unsigned(flip_mask(0x1021a8, 64)) == 1057192);
  assert(unsigned(flip_mask(0x1021ac, 64)) == 1057196);
  assert(unsigned(flip_mask(0x1021b0, 64)) == 1057200);
  assert(unsigned(flip_mask(0x1021b4, 64)) == 1057204);
  assert(unsigned(flip_mask(0x1021b8, 64)) == 1057208);
  assert(unsigned(flip_mask(0x102200, 64)) == 1057280);
  assert(unsigned(flip_mask(0x102204, 64)) == 1057284);
  assert(unsigned(flip_mask(0x102208, 64)) == 1057288);
  assert(unsigned(flip_mask(0x10220c, 64)) == 1057292);
  assert(unsigned(flip_mask(0x102210, 64)) == 1057296);
  assert(unsigned(flip_mask(0x102214, 64)) == 1057300);
  assert(unsigned(flip_mask(0x102218, 64)) == 1057304);
  assert(unsigned(flip_mask(0x10221c, 64)) == 1057308);
  assert(unsigned(flip_mask(0x102220, 64)) == 1057312);
  assert(unsigned(flip_mask(0x102240, 64)) == 1057344);
  assert(unsigned(flip_mask(0x102248, 64)) == 1057352);
  assert(unsigned(flip_mask(0x102250, 64)) == 1057360);
  assert(unsigned(flip_mask(0x102258, 64)) == 1057368);
  assert(unsigned(flip_mask(0x102260, 64)) == 1057376);
  assert(unsigned(flip_mask(0x102270, 64)) == 1057392);
  assert(unsigned(flip_mask(0x102278, 64)) == 1057400);
  assert(unsigned(flip_mask(0x102280, 64)) == 1057408);
  assert(unsigned(flip_mask(0x10300000, 64)) == 271581184);
  assert(unsigned(flip_mask(0x10300004, 64)) == 271581188);
  assert(unsigned(flip_mask(0x10300008, 64)) == 271581192);
  assert(unsigned(flip_mask(0x10300010, 64)) == 271581200);
  assert(unsigned(flip_mask(0x104000, 64)) == 1064960);
  assert(unsigned(flip_mask(0x10400000, 64)) == 272629760);
  assert(unsigned(flip_mask(0x1040022c, 64)) == 272630316);
  assert(unsigned(flip_mask(0x10400230, 64)) == 272630320);
  assert(unsigned(flip_mask(0x10400234, 64)) == 272630324);
  assert(unsigned(flip_mask(0x10400238, 64)) == 272630328);
  assert(unsigned(flip_mask(0x1040023c, 64)) == 272630332);
  assert(unsigned(flip_mask(0x10400240, 64)) == 272630336);
  assert(unsigned(flip_mask(0x10400244, 64)) == 272630340);
  assert(unsigned(flip_mask(0x10400248, 64)) == 272630344);
  assert(unsigned(flip_mask(0x104004, 64)) == 1064964);
  assert(unsigned(flip_mask(0x104008, 64)) == 1064968);
  assert(unsigned(flip_mask(0x10400c, 64)) == 1064972);
  assert(unsigned(flip_mask(0x104010, 64)) == 1064976);
  assert(unsigned(flip_mask(0x10401220, 64)) == 272634400);
  assert(unsigned(flip_mask(0x10401224, 64)) == 272634404);
  assert(unsigned(flip_mask(0x10401228, 64)) == 272634408);
  assert(unsigned(flip_mask(0x1040122c, 64)) == 272634412);
  assert(unsigned(flip_mask(0x10401230, 64)) == 272634416);
  assert(unsigned(flip_mask(0x10401234, 64)) == 272634420);
  assert(unsigned(flip_mask(0x10401238, 64)) == 272634424);
  assert(unsigned(flip_mask(0x104014, 64)) == 1064980);
  assert(unsigned(flip_mask(0x104018, 64)) == 1064984);
  assert(unsigned(flip_mask(0x10401c, 64)) == 1064988);
  assert(unsigned(flip_mask(0x104020, 64)) == 1064992);
  assert(unsigned(flip_mask(0x10402220, 64)) == 272638496);
  assert(unsigned(flip_mask(0x10402224, 64)) == 272638500);
  assert(unsigned(flip_mask(0x10402228, 64)) == 272638504);
  assert(unsigned(flip_mask(0x1040222c, 64)) == 272638508);
  assert(unsigned(flip_mask(0x10402230, 64)) == 272638512);
  assert(unsigned(flip_mask(0x10402234, 64)) == 272638516);
  assert(unsigned(flip_mask(0x10402238, 64)) == 272638520);
  assert(unsigned(flip_mask(0x104024, 64)) == 1064996);
  assert(unsigned(flip_mask(0x104028, 64)) == 1065000);
  assert(unsigned(flip_mask(0x10402c, 64)) == 1065004);
  assert(unsigned(flip_mask(0x104030, 64)) == 1065008);
  assert(unsigned(flip_mask(0x104034, 64)) == 1065012);
  assert(unsigned(flip_mask(0x104038, 64)) == 1065016);
  assert(unsigned(flip_mask(0x10403c, 64)) == 1065020);
  assert(unsigned(flip_mask(0x104040, 64)) == 1065024);
  assert(unsigned(flip_mask(0x104044, 64)) == 1065028);
  assert(unsigned(flip_mask(0x104048, 64)) == 1065032);
  assert(unsigned(flip_mask(0x10404c, 64)) == 1065036);
  assert(unsigned(flip_mask(0x104050, 64)) == 1065040);
  assert(unsigned(flip_mask(0x104054, 64)) == 1065044);
  assert(unsigned(flip_mask(0x104058, 64)) == 1065048);
  assert(unsigned(flip_mask(0x10405c, 64)) == 1065052);
  assert(unsigned(flip_mask(0x104060, 64)) == 1065056);
  assert(unsigned(flip_mask(0x104064, 64)) == 1065060);
  assert(unsigned(flip_mask(0x104068, 64)) == 1065064);
  assert(unsigned(flip_mask(0x10406c, 64)) == 1065068);
  assert(unsigned(flip_mask(0x104070, 64)) == 1065072);
  assert(unsigned(flip_mask(0x104074, 64)) == 1065076);
  assert(unsigned(flip_mask(0x104078, 64)) == 1065080);
  assert(unsigned(flip_mask(0x10407c, 64)) == 1065084);
  assert(unsigned(flip_mask(0x104080, 64)) == 1065088);
  assert(unsigned(flip_mask(0x104088, 64)) == 1065096);
  assert(unsigned(flip_mask(0x10408c, 64)) == 1065100);
  assert(unsigned(flip_mask(0x104090, 64)) == 1065104);
  assert(unsigned(flip_mask(0x104094, 64)) == 1065108);
  assert(unsigned(flip_mask(0x104098, 64)) == 1065112);
  assert(unsigned(flip_mask(0x10409c, 64)) == 1065116);
  assert(unsigned(flip_mask(0x1040a0, 64)) == 1065120);
  assert(unsigned(flip_mask(0x1040ac, 64)) == 1065132);
  assert(unsigned(flip_mask(0x1040b0, 64)) == 1065136);
  assert(unsigned(flip_mask(0x1040b4, 64)) == 1065140);
  assert(unsigned(flip_mask(0x1040b8, 64)) == 1065144);
  assert(unsigned(flip_mask(0x1040c0, 64)) == 1065152);
  assert(unsigned(flip_mask(0x1040c4, 64)) == 1065156);
  assert(unsigned(flip_mask(0x1040c8, 64)) == 1065160);
  assert(unsigned(flip_mask(0x1040cc, 64)) == 1065164);
  assert(unsigned(flip_mask(0x1040d0, 64)) == 1065168);
  assert(unsigned(flip_mask(0x1040d4, 64)) == 1065172);
  assert(unsigned(flip_mask(0x1040d8, 64)) == 1065176);
  assert(unsigned(flip_mask(0x1040dc, 64)) == 1065180);
  assert(unsigned(flip_mask(0x1040e0, 64)) == 1065184);
  assert(unsigned(flip_mask(0x1040e4, 64)) == 1065188);
  assert(unsigned(flip_mask(0x1040e8, 64)) == 1065192);
  assert(unsigned(flip_mask(0x1040ec, 64)) == 1065196);
  assert(unsigned(flip_mask(0x1040f0, 64)) == 1065200);
  assert(unsigned(flip_mask(0x1040f4, 64)) == 1065204);
  assert(unsigned(flip_mask(0x1040f8, 64)) == 1065208);
  assert(unsigned(flip_mask(0x1040fc, 64)) == 1065212);
  assert(unsigned(flip_mask(0x104100, 64)) == 1065216);
  assert(unsigned(flip_mask(0x104104, 64)) == 1065220);
  assert(unsigned(flip_mask(0x104108, 64)) == 1065224);
  assert(unsigned(flip_mask(0x10410c, 64)) == 1065228);
  assert(unsigned(flip_mask(0x104110, 64)) == 1065232);
  assert(unsigned(flip_mask(0x104114, 64)) == 1065236);
  assert(unsigned(flip_mask(0x104118, 64)) == 1065240);
  assert(unsigned(flip_mask(0x10411c, 64)) == 1065244);
  assert(unsigned(flip_mask(0x104120, 64)) == 1065248);
  assert(unsigned(flip_mask(0x104124, 64)) == 1065252);
  assert(unsigned(flip_mask(0x104128, 64)) == 1065256);
  assert(unsigned(flip_mask(0x10412c, 64)) == 1065260);
  assert(unsigned(flip_mask(0x104130, 64)) == 1065264);
  assert(unsigned(flip_mask(0x104134, 64)) == 1065268);
  assert(unsigned(flip_mask(0x104138, 64)) == 1065272);
  assert(unsigned(flip_mask(0x10413c, 64)) == 1065276);
  assert(unsigned(flip_mask(0x104140, 64)) == 1065280);
  assert(unsigned(flip_mask(0x104144, 64)) == 1065284);
  assert(unsigned(flip_mask(0x104148, 64)) == 1065288);
  assert(unsigned(flip_mask(0x10414c, 64)) == 1065292);
  assert(unsigned(flip_mask(0x104150, 64)) == 1065296);
  assert(unsigned(flip_mask(0x104154, 64)) == 1065300);
  assert(unsigned(flip_mask(0x104158, 64)) == 1065304);
  assert(unsigned(flip_mask(0x10415c, 64)) == 1065308);
  assert(unsigned(flip_mask(0x104160, 64)) == 1065312);
  assert(unsigned(flip_mask(0x104164, 64)) == 1065316);
  assert(unsigned(flip_mask(0x104168, 64)) == 1065320);
  assert(unsigned(flip_mask(0x10416c, 64)) == 1065324);
  assert(unsigned(flip_mask(0x104170, 64)) == 1065328);
  assert(unsigned(flip_mask(0x104174, 64)) == 1065332);
  assert(unsigned(flip_mask(0x104178, 64)) == 1065336);
  assert(unsigned(flip_mask(0x10417c, 64)) == 1065340);
  assert(unsigned(flip_mask(0x104180, 64)) == 1065344);
  assert(unsigned(flip_mask(0x104184, 64)) == 1065348);
  assert(unsigned(flip_mask(0x104188, 64)) == 1065352);
  assert(unsigned(flip_mask(0x10418c, 64)) == 1065356);
  assert(unsigned(flip_mask(0x104190, 64)) == 1065360);
  assert(unsigned(flip_mask(0x104194, 64)) == 1065364);
  assert(unsigned(flip_mask(0x104198, 64)) == 1065368);
  assert(unsigned(flip_mask(0x10419c, 64)) == 1065372);
  assert(unsigned(flip_mask(0x1041a0, 64)) == 1065376);
  assert(unsigned(flip_mask(0x1041a4, 64)) == 1065380);
  assert(unsigned(flip_mask(0x1041a8, 64)) == 1065384);
  assert(unsigned(flip_mask(0x1041ac, 64)) == 1065388);
  assert(unsigned(flip_mask(0x1041b0, 64)) == 1065392);
  assert(unsigned(flip_mask(0x1041b4, 64)) == 1065396);
  assert(unsigned(flip_mask(0x1041b8, 64)) == 1065400);
  assert(unsigned(flip_mask(0x1041bc, 64)) == 1065404);
  assert(unsigned(flip_mask(0x1041c0, 64)) == 1065408);
  assert(unsigned(flip_mask(0x104200, 64)) == 1065472);
  assert(unsigned(flip_mask(0x104204, 64)) == 1065476);
  assert(unsigned(flip_mask(0x104208, 64)) == 1065480);
  assert(unsigned(flip_mask(0x10420c, 64)) == 1065484);
  assert(unsigned(flip_mask(0x104210, 64)) == 1065488);
  assert(unsigned(flip_mask(0x104214, 64)) == 1065492);
  assert(unsigned(flip_mask(0x104218, 64)) == 1065496);
  assert(unsigned(flip_mask(0x10421c, 64)) == 1065500);
  assert(unsigned(flip_mask(0x104220, 64)) == 1065504);
  assert(unsigned(flip_mask(0x104224, 64)) == 1065508);
  assert(unsigned(flip_mask(0x104228, 64)) == 1065512);
  assert(unsigned(flip_mask(0x10422c, 64)) == 1065516);
  assert(unsigned(flip_mask(0x104250, 64)) == 1065552);
  assert(unsigned(flip_mask(0x104258, 64)) == 1065560);
  assert(unsigned(flip_mask(0x104260, 64)) == 1065568);
  assert(unsigned(flip_mask(0x104268, 64)) == 1065576);
  assert(unsigned(flip_mask(0x104270, 64)) == 1065584);
  assert(unsigned(flip_mask(0x104278, 64)) == 1065592);
  assert(unsigned(flip_mask(0x10427c, 64)) == 1065596);
  assert(unsigned(flip_mask(0x104280, 64)) == 1065600);
  assert(unsigned(flip_mask(0x104284, 64)) == 1065604);
  assert(unsigned(flip_mask(0x1042b8, 64)) == 1065656);
  assert(unsigned(flip_mask(0x1042bc, 64)) == 1065660);
  assert(unsigned(flip_mask(0x1042d4, 64)) == 1065684);
  assert(unsigned(flip_mask(0x1042e0, 64)) == 1065696);
  assert(unsigned(flip_mask(0x104300, 64)) == 1065728);
  assert(unsigned(flip_mask(0x104308, 64)) == 1065736);
  assert(unsigned(flip_mask(0x104310, 64)) == 1065744);
  assert(unsigned(flip_mask(0x104320, 64)) == 1065760);
  assert(unsigned(flip_mask(0x104328, 64)) == 1065768);
  assert(unsigned(flip_mask(0x104330, 64)) == 1065776);
  assert(unsigned(flip_mask(0x104338, 64)) == 1065784);
  assert(unsigned(flip_mask(0x104340, 64)) == 1065792);
  assert(unsigned(flip_mask(0x104360, 64)) == 1065824);
  assert(unsigned(flip_mask(0x104368, 64)) == 1065832);
  assert(unsigned(flip_mask(0x104410, 64)) == 1066000);
  assert(unsigned(flip_mask(0x104418, 64)) == 1066008);
  assert(unsigned(flip_mask(0x104420, 64)) == 1066016);
  assert(unsigned(flip_mask(0x104428, 64)) == 1066024);
  assert(unsigned(flip_mask(0x104550, 64)) == 1066320);
  assert(unsigned(flip_mask(0x1045a0, 64)) == 1066400);
  assert(unsigned(flip_mask(0x1045a4, 64)) == 1066404);
  assert(unsigned(flip_mask(0x1045b0, 64)) == 1066416);
  assert(unsigned(flip_mask(0x1045b8, 64)) == 1066424);
  assert(unsigned(flip_mask(0x1045c0, 64)) == 1066432);
  assert(unsigned(flip_mask(0x1045c4, 64)) == 1066436);
  assert(unsigned(flip_mask(0x1045c8, 64)) == 1066440);
  assert(unsigned(flip_mask(0x1045d0, 64)) == 1066448);
  assert(unsigned(flip_mask(0x1045d8, 64)) == 1066456);
  assert(unsigned(flip_mask(0x1045e0, 64)) == 1066464);
  assert(unsigned(flip_mask(0x1045e8, 64)) == 1066472);
  assert(unsigned(flip_mask(0x1045f0, 64)) == 1066480);
  assert(unsigned(flip_mask(0x1045f8, 64)) == 1066488);
  assert(unsigned(flip_mask(0x104600, 64)) == 1066496);
  assert(unsigned(flip_mask(0x104608, 64)) == 1066504);
  assert(unsigned(flip_mask(0x104610, 64)) == 1066512);
  assert(unsigned(flip_mask(0x104618, 64)) == 1066520);
  assert(unsigned(flip_mask(0x104620, 64)) == 1066528);
  assert(unsigned(flip_mask(0x104628, 64)) == 1066536);
  assert(unsigned(flip_mask(0x104630, 64)) == 1066544);
  assert(unsigned(flip_mask(0x104638, 64)) == 1066552);
  assert(unsigned(flip_mask(0x104640, 64)) == 1066560);
  assert(unsigned(flip_mask(0x104648, 64)) == 1066568);
  assert(unsigned(flip_mask(0x104650, 64)) == 1066576);
  assert(unsigned(flip_mask(0x104658, 64)) == 1066584);
  assert(unsigned(flip_mask(0x104660, 64)) == 1066592);
  assert(unsigned(flip_mask(0x104668, 64)) == 1066600);
  assert(unsigned(flip_mask(0x104670, 64)) == 1066608);
  assert(unsigned(flip_mask(0x104678, 64)) == 1066616);
  assert(unsigned(flip_mask(0x104680, 64)) == 1066624);
  assert(unsigned(flip_mask(0x104688, 64)) == 1066632);
  assert(unsigned(flip_mask(0x104690, 64)) == 1066640);
  assert(unsigned(flip_mask(0x1046a0, 64)) == 1066656);
  assert(unsigned(flip_mask(0x1046a8, 64)) == 1066664);
  assert(unsigned(flip_mask(0x1046b0, 64)) == 1066672);
  assert(unsigned(flip_mask(0x1046b8, 64)) == 1066680);
  assert(unsigned(flip_mask(0x1046c0, 64)) == 1066688);
  assert(unsigned(flip_mask(0x1046c8, 64)) == 1066696);
  assert(unsigned(flip_mask(0x1046d0, 64)) == 1066704);
  assert(unsigned(flip_mask(0x1046d8, 64)) == 1066712);
  assert(unsigned(flip_mask(0x1046e0, 64)) == 1066720);
  assert(unsigned(flip_mask(0x1046e8, 64)) == 1066728);
  assert(unsigned(flip_mask(0x1046f0, 64)) == 1066736);
  assert(unsigned(flip_mask(0x1046f8, 64)) == 1066744);
  assert(unsigned(flip_mask(0x104700, 64)) == 1066752);
  assert(unsigned(flip_mask(0x104708, 64)) == 1066760);
  assert(unsigned(flip_mask(0x104710, 64)) == 1066768);
  assert(unsigned(flip_mask(0x104718, 64)) == 1066776);
  assert(unsigned(flip_mask(0x104720, 64)) == 1066784);
  assert(unsigned(flip_mask(0x104728, 64)) == 1066792);
  assert(unsigned(flip_mask(0x104730, 64)) == 1066800);
  assert(unsigned(flip_mask(0x104738, 64)) == 1066808);
  assert(unsigned(flip_mask(0x104740, 64)) == 1066816);
  assert(unsigned(flip_mask(0x104750, 64)) == 1066832);
  assert(unsigned(flip_mask(0x104d50, 64)) == 1068368);
  assert(unsigned(flip_mask(0x104d54, 64)) == 1068372);
  assert(unsigned(flip_mask(0x104d58, 64)) == 1068376);
  assert(unsigned(flip_mask(0x104d5c, 64)) == 1068380);
  assert(unsigned(flip_mask(0x104d60, 64)) == 1068384);
  assert(unsigned(flip_mask(0x104d64, 64)) == 1068388);
  assert(unsigned(flip_mask(0x104d68, 64)) == 1068392);
  assert(unsigned(flip_mask(0x104d6c, 64)) == 1068396);
  assert(unsigned(flip_mask(0x104d70, 64)) == 1068400);
  assert(unsigned(flip_mask(0x104d74, 64)) == 1068404);
  assert(unsigned(flip_mask(0x104d78, 64)) == 1068408);
  assert(unsigned(flip_mask(0x104d7c, 64)) == 1068412);
  assert(unsigned(flip_mask(0x104d80, 64)) == 1068416);
  assert(unsigned(flip_mask(0x104d84, 64)) == 1068420);
  assert(unsigned(flip_mask(0x104d88, 64)) == 1068424);
  assert(unsigned(flip_mask(0x104d8c, 64)) == 1068428);
  assert(unsigned(flip_mask(0x104d90, 64)) == 1068432);
  assert(unsigned(flip_mask(0x104d94, 64)) == 1068436);
  assert(unsigned(flip_mask(0x104d98, 64)) == 1068440);
  assert(unsigned(flip_mask(0x104d9c, 64)) == 1068444);
  assert(unsigned(flip_mask(0x104da0, 64)) == 1068448);
  assert(unsigned(flip_mask(0x104da4, 64)) == 1068452);
  assert(unsigned(flip_mask(0x104da8, 64)) == 1068456);
  assert(unsigned(flip_mask(0x104dac, 64)) == 1068460);
  assert(unsigned(flip_mask(0x104db0, 64)) == 1068464);
  assert(unsigned(flip_mask(0x104db4, 64)) == 1068468);
  assert(unsigned(flip_mask(0x104db8, 64)) == 1068472);
  assert(unsigned(flip_mask(0x104dbc, 64)) == 1068476);
  assert(unsigned(flip_mask(0x104dc0, 64)) == 1068480);
  assert(unsigned(flip_mask(0x104dc8, 64)) == 1068488);
  assert(unsigned(flip_mask(0x104dcc, 64)) == 1068492);
  assert(unsigned(flip_mask(0x104dd0, 64)) == 1068496);
  assert(unsigned(flip_mask(0x104dd4, 64)) == 1068500);
  assert(unsigned(flip_mask(0x104dd8, 64)) == 1068504);
  assert(unsigned(flip_mask(0x104ddc, 64)) == 1068508);
  assert(unsigned(flip_mask(0x104de0, 64)) == 1068512);
  assert(unsigned(flip_mask(0x104de4, 64)) == 1068516);
  assert(unsigned(flip_mask(0x104de8, 64)) == 1068520);
  assert(unsigned(flip_mask(0x104df4, 64)) == 1068532);
  assert(unsigned(flip_mask(0x104df8, 64)) == 1068536);
  assert(unsigned(flip_mask(0x104dfc, 64)) == 1068540);
  assert(unsigned(flip_mask(0x104e00, 64)) == 1068544);
  assert(unsigned(flip_mask(0x104e04, 64)) == 1068548);
  assert(unsigned(flip_mask(0x104e08, 64)) == 1068552);
  assert(unsigned(flip_mask(0x104e0c, 64)) == 1068556);
  assert(unsigned(flip_mask(0x104e10, 64)) == 1068560);
  assert(unsigned(flip_mask(0x104e14, 64)) == 1068564);
  assert(unsigned(flip_mask(0x104e18, 64)) == 1068568);
  assert(unsigned(flip_mask(0x104e1c, 64)) == 1068572);
  assert(unsigned(flip_mask(0x104e20, 64)) == 1068576);
  assert(unsigned(flip_mask(0x104e24, 64)) == 1068580);
  assert(unsigned(flip_mask(0x104e28, 64)) == 1068584);
  assert(unsigned(flip_mask(0x104e2c, 64)) == 1068588);
  assert(unsigned(flip_mask(0x104e30, 64)) == 1068592);
  assert(unsigned(flip_mask(0x104e34, 64)) == 1068596);
  assert(unsigned(flip_mask(0x104e38, 64)) == 1068600);
  assert(unsigned(flip_mask(0x104e3c, 64)) == 1068604);
  assert(unsigned(flip_mask(0x104e40, 64)) == 1068608);
  assert(unsigned(flip_mask(0x104e44, 64)) == 1068612);
  assert(unsigned(flip_mask(0x104e48, 64)) == 1068616);
  assert(unsigned(flip_mask(0x104e4c, 64)) == 1068620);
  assert(unsigned(flip_mask(0x104e50, 64)) == 1068624);
  assert(unsigned(flip_mask(0x104e54, 64)) == 1068628);
  assert(unsigned(flip_mask(0x104e58, 64)) == 1068632);
  assert(unsigned(flip_mask(0x104e5c, 64)) == 1068636);
  assert(unsigned(flip_mask(0x104e60, 64)) == 1068640);
  assert(unsigned(flip_mask(0x104e64, 64)) == 1068644);
  assert(unsigned(flip_mask(0x104e68, 64)) == 1068648);
  assert(unsigned(flip_mask(0x104e6c, 64)) == 1068652);
  assert(unsigned(flip_mask(0x104e70, 64)) == 1068656);
  assert(unsigned(flip_mask(0x104e74, 64)) == 1068660);
  assert(unsigned(flip_mask(0x104e78, 64)) == 1068664);
  assert(unsigned(flip_mask(0x104e7c, 64)) == 1068668);
  assert(unsigned(flip_mask(0x104e80, 64)) == 1068672);
  assert(unsigned(flip_mask(0x104e84, 64)) == 1068676);
  assert(unsigned(flip_mask(0x104e88, 64)) == 1068680);
  assert(unsigned(flip_mask(0x104e8c, 64)) == 1068684);
  assert(unsigned(flip_mask(0x104e90, 64)) == 1068688);
  assert(unsigned(flip_mask(0x104e94, 64)) == 1068692);
  assert(unsigned(flip_mask(0x104e98, 64)) == 1068696);
  assert(unsigned(flip_mask(0x104e9c, 64)) == 1068700);
  assert(unsigned(flip_mask(0x104ea0, 64)) == 1068704);
  assert(unsigned(flip_mask(0x104ea4, 64)) == 1068708);
  assert(unsigned(flip_mask(0x104ea8, 64)) == 1068712);
  assert(unsigned(flip_mask(0x104eac, 64)) == 1068716);
  assert(unsigned(flip_mask(0x104eb0, 64)) == 1068720);
  assert(unsigned(flip_mask(0x104eb4, 64)) == 1068724);
  assert(unsigned(flip_mask(0x104eb8, 64)) == 1068728);
  assert(unsigned(flip_mask(0x104ebc, 64)) == 1068732);
  assert(unsigned(flip_mask(0x104ec0, 64)) == 1068736);
  assert(unsigned(flip_mask(0x104ec4, 64)) == 1068740);
  assert(unsigned(flip_mask(0x104ec8, 64)) == 1068744);
  assert(unsigned(flip_mask(0x104ecc, 64)) == 1068748);
}