File: unsigned7.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (1659 lines) | stat: -rw-r--r-- 94,947 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
default Order dec

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

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

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);
}