1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709
|
default Order dec
$include <exception_basic.sail>
$include <vector_dec.sail>
overload zero_extend = {sail_zero_extend}
function main (() : unit) -> unit = {
assert(signed(zero_extend(0x0, 32)) == 0);
assert(signed(zero_extend(0x1, 32)) == 1);
assert(signed(zero_extend(0x10, 32)) == 16);
assert(signed(zero_extend(0x10000, 32)) == 65536);
assert(signed(zero_extend(0x10001, 32)) == 65537);
assert(signed(zero_extend(0x11, 32)) == 17);
assert(signed(zero_extend(0x11223344, 32)) == 287454020);
assert(signed(zero_extend(0x118, 32)) == 280);
assert(signed(zero_extend(0x12, 32)) == 18);
assert(signed(zero_extend(0x1234, 32)) == 4660);
assert(signed(zero_extend(0x12345678, 32)) == 305419896);
assert(signed(zero_extend(0x13, 32)) == 19);
assert(signed(zero_extend(0x14, 32)) == 20);
assert(signed(zero_extend(0x15, 32)) == 21);
assert(signed(zero_extend(0x16, 32)) == 22);
assert(signed(zero_extend(0x17, 32)) == 23);
assert(signed(zero_extend(0x17ffe, 32)) == 98302);
assert(signed(zero_extend(0x17fff, 32)) == 98303);
assert(signed(zero_extend(0x18, 32)) == 24);
assert(signed(zero_extend(0x18000, 32)) == 98304);
assert(signed(zero_extend(0x19, 32)) == 25);
assert(signed(zero_extend(0x1a, 32)) == 26);
assert(signed(zero_extend(0x1b, 32)) == 27);
assert(signed(zero_extend(0x1c, 32)) == 28);
assert(signed(zero_extend(0x1d, 32)) == 29);
assert(signed(zero_extend(0x1e, 32)) == 30);
assert(signed(zero_extend(0x1f, 32)) == 31);
assert(signed(zero_extend(0x2, 32)) == 2);
assert(signed(zero_extend(0x20, 32)) == 32);
assert(signed(zero_extend(0x20000, 32)) == 131072);
assert(signed(zero_extend(0x21, 32)) == 33);
assert(signed(zero_extend(0x23, 32)) == 35);
assert(signed(zero_extend(0x230, 32)) == 560);
assert(signed(zero_extend(0x25, 32)) == 37);
assert(signed(zero_extend(0x26, 32)) == 38);
assert(signed(zero_extend(0x27, 32)) == 39);
assert(signed(zero_extend(0x28, 32)) == 40);
assert(signed(zero_extend(0x29, 32)) == 41);
assert(signed(zero_extend(0x2a, 32)) == 42);
assert(signed(zero_extend(0x2a0, 32)) == 672);
assert(signed(zero_extend(0x2b, 32)) == 43);
assert(signed(zero_extend(0x2d, 32)) == 45);
assert(signed(zero_extend(0x2e, 32)) == 46);
assert(signed(zero_extend(0x2f, 32)) == 47);
assert(signed(zero_extend(0x3, 32)) == 3);
assert(signed(zero_extend(0x30, 32)) == 48);
assert(signed(zero_extend(0x31, 32)) == 49);
assert(signed(zero_extend(0x32, 32)) == 50);
assert(signed(zero_extend(0x33, 32)) == 51);
assert(signed(zero_extend(0x34, 32)) == 52);
assert(signed(zero_extend(0x35, 32)) == 53);
assert(signed(zero_extend(0x36, 32)) == 54);
assert(signed(zero_extend(0x37, 32)) == 55);
assert(signed(zero_extend(0x38, 32)) == 56);
assert(signed(zero_extend(0x39, 32)) == 57);
assert(signed(zero_extend(0x3a, 32)) == 58);
assert(signed(zero_extend(0x3c, 32)) == 60);
assert(signed(zero_extend(0x3e, 32)) == 62);
assert(signed(zero_extend(0x3f, 32)) == 63);
assert(signed(zero_extend(0x4, 32)) == 4);
assert(signed(zero_extend(0x40, 32)) == 64);
assert(signed(zero_extend(0x41, 32)) == 65);
assert(signed(zero_extend(0x43, 32)) == 67);
assert(signed(zero_extend(0x44, 32)) == 68);
assert(signed(zero_extend(0x45, 32)) == 69);
assert(signed(zero_extend(0x46, 32)) == 70);
assert(signed(zero_extend(0x460, 32)) == 1120);
assert(signed(zero_extend(0x47, 32)) == 71);
assert(signed(zero_extend(0x48, 32)) == 72);
assert(signed(zero_extend(0x4a, 32)) == 74);
assert(signed(zero_extend(0x4b, 32)) == 75);
assert(signed(zero_extend(0x4c, 32)) == 76);
assert(signed(zero_extend(0x4d, 32)) == 77);
assert(signed(zero_extend(0x4e, 32)) == 78);
assert(signed(zero_extend(0x4f, 32)) == 79);
assert(signed(zero_extend(0x5, 32)) == 5);
assert(signed(zero_extend(0x50, 32)) == 80);
assert(signed(zero_extend(0x52, 32)) == 82);
assert(signed(zero_extend(0x53, 32)) == 83);
assert(signed(zero_extend(0x54, 32)) == 84);
assert(signed(zero_extend(0x55, 32)) == 85);
assert(signed(zero_extend(0x5a5a, 32)) == 23130);
assert(signed(zero_extend(0x5a5a5a59, 32)) == 1515870809);
assert(signed(zero_extend(0x5a5a5a5a, 32)) == 1515870810);
assert(signed(zero_extend(0x5f, 32)) == 95);
assert(signed(zero_extend(0x6, 32)) == 6);
assert(signed(zero_extend(0x60000000, 32)) == 1610612736);
assert(signed(zero_extend(0x61, 32)) == 97);
assert(signed(zero_extend(0x62, 32)) == 98);
assert(signed(zero_extend(0x63, 32)) == 99);
assert(signed(zero_extend(0x64, 32)) == 100);
assert(signed(zero_extend(0x65, 32)) == 101);
assert(signed(zero_extend(0x66, 32)) == 102);
assert(signed(zero_extend(0x68, 32)) == 104);
assert(signed(zero_extend(0x69, 32)) == 105);
assert(signed(zero_extend(0x6b7c8d9f, 32)) == 1803324831);
assert(signed(zero_extend(0x6c, 32)) == 108);
assert(signed(zero_extend(0x6d, 32)) == 109);
assert(signed(zero_extend(0x6e, 32)) == 110);
assert(signed(zero_extend(0x6f, 32)) == 111);
assert(signed(zero_extend(0x7, 32)) == 7);
assert(signed(zero_extend(0x70, 32)) == 112);
assert(signed(zero_extend(0x72, 32)) == 114);
assert(signed(zero_extend(0x73, 32)) == 115);
assert(signed(zero_extend(0x74, 32)) == 116);
assert(signed(zero_extend(0x75, 32)) == 117);
assert(signed(zero_extend(0x76, 32)) == 118);
assert(signed(zero_extend(0x764c321, 32)) == 124044065);
assert(signed(zero_extend(0x78, 32)) == 120);
assert(signed(zero_extend(0x7ffe, 32)) == 32766);
assert(signed(zero_extend(0x7fff, 32)) == 32767);
assert(signed(zero_extend(0x7fff7fff, 32)) == 2147450879);
assert(signed(zero_extend(0x7ffffffe, 32)) == 2147483646);
assert(signed(zero_extend(0x7fffffff, 32)) == 2147483647);
assert(signed(zero_extend(0x8, 32)) == 8);
assert(signed(zero_extend(0x8000, 32)) == 32768);
assert(signed(zero_extend(0x80000000, 32)) == -2147483648);
assert(signed(zero_extend(0x80000001, 32)) == -2147483647);
assert(signed(zero_extend(0x80000002, 32)) == -2147483646);
assert(signed(zero_extend(0x80000003, 32)) == -2147483645);
assert(signed(zero_extend(0x80008000, 32)) == -2147450880);
assert(signed(zero_extend(0x8001, 32)) == 32769);
assert(signed(zero_extend(0x8002, 32)) == 32770);
assert(signed(zero_extend(0x8003, 32)) == 32771);
assert(signed(zero_extend(0x87654321, 32)) == -2023406815);
assert(signed(zero_extend(0x8899aabb, 32)) == -2003195205);
assert(signed(zero_extend(0x89ab, 32)) == 35243);
assert(signed(zero_extend(0x8fffffff, 32)) == -1879048193);
assert(signed(zero_extend(0x9, 32)) == 9);
assert(signed(zero_extend(0x90000000, 32)) == -1879048192);
assert(signed(zero_extend(0x90000001, 32)) == -1879048191);
assert(signed(zero_extend(0x9234567a, 32)) == -1842063750);
assert(signed(zero_extend(0x9be0, 32)) == 39904);
assert(signed(zero_extend(0xa, 32)) == 10);
assert(signed(zero_extend(0xa5a5, 32)) == 42405);
assert(signed(zero_extend(0xa5a5a5a5, 32)) == -1515870811);
assert(signed(zero_extend(0xb, 32)) == 11);
assert(signed(zero_extend(0xc, 32)) == 12);
assert(signed(zero_extend(0xc000, 32)) == 49152);
assert(signed(zero_extend(0xd, 32)) == 13);
assert(signed(zero_extend(0xe, 32)) == 14);
assert(signed(zero_extend(0xe0000000, 32)) == -536870912);
assert(signed(zero_extend(0xf, 32)) == 15);
assert(signed(zero_extend(0xff, 32)) == 255);
assert(signed(zero_extend(0xfffe, 32)) == 65534);
assert(signed(zero_extend(0xffff, 32)) == 65535);
assert(signed(zero_extend(0xffff8000, 32)) == -32768);
assert(signed(zero_extend(0xffffff00, 32)) == -256);
assert(signed(zero_extend(0xffffff87, 32)) == -121);
assert(signed(zero_extend(0xffffff8c, 32)) == -116);
assert(signed(zero_extend(0xffffff93, 32)) == -109);
assert(signed(zero_extend(0xffffff9b, 32)) == -101);
assert(signed(zero_extend(0xffffffa7, 32)) == -89);
assert(signed(zero_extend(0xffffffd0, 32)) == -48);
assert(signed(zero_extend(0xffffffd8, 32)) == -40);
assert(signed(zero_extend(0xffffffda, 32)) == -38);
assert(signed(zero_extend(0xffffffdf, 32)) == -33);
assert(signed(zero_extend(0xffffffe0, 32)) == -32);
assert(signed(zero_extend(0xffffffe1, 32)) == -31);
assert(signed(zero_extend(0xffffffe2, 32)) == -30);
assert(signed(zero_extend(0xffffffe3, 32)) == -29);
assert(signed(zero_extend(0xffffffe4, 32)) == -28);
assert(signed(zero_extend(0xffffffe5, 32)) == -27);
assert(signed(zero_extend(0xffffffe6, 32)) == -26);
assert(signed(zero_extend(0xffffffe7, 32)) == -25);
assert(signed(zero_extend(0xffffffe8, 32)) == -24);
assert(signed(zero_extend(0xffffffe9, 32)) == -23);
assert(signed(zero_extend(0xffffffea, 32)) == -22);
assert(signed(zero_extend(0xffffffeb, 32)) == -21);
assert(signed(zero_extend(0xffffffec, 32)) == -20);
assert(signed(zero_extend(0xffffffed, 32)) == -19);
assert(signed(zero_extend(0xffffffee, 32)) == -18);
assert(signed(zero_extend(0xffffffef, 32)) == -17);
assert(signed(zero_extend(0xfffffff, 32)) == 268435455);
assert(signed(zero_extend(0xfffffff0, 32)) == -16);
assert(signed(zero_extend(0xfffffff1, 32)) == -15);
assert(signed(zero_extend(0xfffffff2, 32)) == -14);
assert(signed(zero_extend(0xfffffff3, 32)) == -13);
assert(signed(zero_extend(0xfffffff4, 32)) == -12);
assert(signed(zero_extend(0xfffffff5, 32)) == -11);
assert(signed(zero_extend(0xfffffff6, 32)) == -10);
assert(signed(zero_extend(0xfffffff7, 32)) == -9);
assert(signed(zero_extend(0xfffffff8, 32)) == -8);
assert(signed(zero_extend(0xfffffff9, 32)) == -7);
assert(signed(zero_extend(0xfffffffa, 32)) == -6);
assert(signed(zero_extend(0xfffffffb, 32)) == -5);
assert(signed(zero_extend(0xfffffffc, 32)) == -4);
assert(signed(zero_extend(0xfffffffd, 32)) == -3);
assert(signed(zero_extend(0xfffffffe, 32)) == -2);
assert(signed(zero_extend(0xffffffff, 32)) == -1);
assert(signed(zero_extend(0x0, 64)) == 0);
assert(signed(zero_extend(0x1, 64)) == 1);
assert(signed(zero_extend(0x10, 64)) == 16);
assert(signed(zero_extend(0x100, 64)) == 256);
assert(signed(zero_extend(0x10000, 64)) == 65536);
assert(signed(zero_extend(0x100000000, 64)) == 4294967296);
assert(signed(zero_extend(0x100000000000, 64)) == 17592186044416);
assert(signed(zero_extend(0x100000001, 64)) == 4294967297);
assert(signed(zero_extend(0x10001, 64)) == 65537);
assert(signed(zero_extend(0x1000100010001, 64)) == 281479271743489);
assert(signed(zero_extend(0x101000, 64)) == 1052672);
assert(signed(zero_extend(0x101220, 64)) == 1053216);
assert(signed(zero_extend(0x102000, 64)) == 1056768);
assert(signed(zero_extend(0x102220, 64)) == 1057312);
assert(signed(zero_extend(0x104000, 64)) == 1064960);
assert(signed(zero_extend(0x10400000, 64)) == 272629760);
assert(signed(zero_extend(0x1040022c, 64)) == 272630316);
assert(signed(zero_extend(0x10401220, 64)) == 272634400);
assert(signed(zero_extend(0x10402220, 64)) == 272638496);
assert(signed(zero_extend(0x10422c, 64)) == 1065516);
assert(signed(zero_extend(0x104320, 64)) == 1065760);
assert(signed(zero_extend(0x104368, 64)) == 1065832);
assert(signed(zero_extend(0x104410, 64)) == 1066000);
assert(signed(zero_extend(0x104418, 64)) == 1066008);
assert(signed(zero_extend(0x104420, 64)) == 1066016);
assert(signed(zero_extend(0x104428, 64)) == 1066024);
assert(signed(zero_extend(0x104550, 64)) == 1066320);
assert(signed(zero_extend(0x1045a0, 64)) == 1066400);
assert(signed(zero_extend(0x1045b0, 64)) == 1066416);
assert(signed(zero_extend(0x1045c0, 64)) == 1066432);
assert(signed(zero_extend(0x104660, 64)) == 1066592);
assert(signed(zero_extend(0x104670, 64)) == 1066608);
assert(signed(zero_extend(0x104690, 64)) == 1066640);
assert(signed(zero_extend(0x104730, 64)) == 1066800);
assert(signed(zero_extend(0x104740, 64)) == 1066816);
assert(signed(zero_extend(0x104750, 64)) == 1066832);
assert(signed(zero_extend(0x10764c321, 64)) == 4419011361);
assert(signed(zero_extend(0x108, 64)) == 264);
assert(signed(zero_extend(0x11, 64)) == 17);
assert(signed(zero_extend(0x110, 64)) == 272);
assert(signed(zero_extend(0x11223344, 64)) == 287454020);
assert(signed(zero_extend(0x1122334411223344, 64)) == 1234605615291183940);
assert(signed(zero_extend(0x118, 64)) == 280);
assert(signed(zero_extend(0x12, 64)) == 18);
assert(signed(zero_extend(0x120, 64)) == 288);
assert(signed(zero_extend(0x1200, 64)) == 4608);
assert(signed(zero_extend(0x120005c, 64)) == 18874460);
assert(signed(zero_extend(0x1200060, 64)) == 18874464);
assert(signed(zero_extend(0x1200064, 64)) == 18874468);
assert(signed(zero_extend(0x1220, 64)) == 4640);
assert(signed(zero_extend(0x12200078, 64)) == 304087160);
assert(signed(zero_extend(0x1220007c, 64)) == 304087164);
assert(signed(zero_extend(0x12200080, 64)) == 304087168);
assert(signed(zero_extend(0x1234, 64)) == 4660);
assert(signed(zero_extend(0x12345678, 64)) == 305419896);
assert(signed(zero_extend(0x123456789abcdef0, 64)) == 1311768467463790320);
assert(signed(zero_extend(0x123456789abcdef1, 64)) == 1311768467463790321);
assert(signed(zero_extend(0x123c, 64)) == 4668);
assert(signed(zero_extend(0x12500054, 64)) == 307232852);
assert(signed(zero_extend(0x1250006c, 64)) == 307232876);
assert(signed(zero_extend(0x12500070, 64)) == 307232880);
assert(signed(zero_extend(0x12600064, 64)) == 308281444);
assert(signed(zero_extend(0x1260007c, 64)) == 308281468);
assert(signed(zero_extend(0x12600080, 64)) == 308281472);
assert(signed(zero_extend(0x13, 64)) == 19);
assert(signed(zero_extend(0x1300368, 64)) == 19923816);
assert(signed(zero_extend(0x130036c, 64)) == 19923820);
assert(signed(zero_extend(0x1300370, 64)) == 19923824);
assert(signed(zero_extend(0x13004b8, 64)) == 19924152);
assert(signed(zero_extend(0x13004bc, 64)) == 19924156);
assert(signed(zero_extend(0x13004c0, 64)) == 19924160);
assert(signed(zero_extend(0x1300608, 64)) == 19924488);
assert(signed(zero_extend(0x130060c, 64)) == 19924492);
assert(signed(zero_extend(0x1300610, 64)) == 19924496);
assert(signed(zero_extend(0x1300910, 64)) == 19925264);
assert(signed(zero_extend(0x1300914, 64)) == 19925268);
assert(signed(zero_extend(0x1300918, 64)) == 19925272);
assert(signed(zero_extend(0x13f8754, 64)) == 20940628);
assert(signed(zero_extend(0x13f8758, 64)) == 20940632);
assert(signed(zero_extend(0x13f875c, 64)) == 20940636);
assert(signed(zero_extend(0x13f88a4, 64)) == 20940964);
assert(signed(zero_extend(0x13f88a8, 64)) == 20940968);
assert(signed(zero_extend(0x13f88ac, 64)) == 20940972);
assert(signed(zero_extend(0x14, 64)) == 20);
assert(signed(zero_extend(0x140, 64)) == 320);
assert(signed(zero_extend(0x14000ac, 64)) == 20971692);
assert(signed(zero_extend(0x14000c0, 64)) == 20971712);
assert(signed(zero_extend(0x14000c4, 64)) == 20971716);
assert(signed(zero_extend(0x14000ec, 64)) == 20971756);
assert(signed(zero_extend(0x1400100, 64)) == 20971776);
assert(signed(zero_extend(0x1400104, 64)) == 20971780);
assert(signed(zero_extend(0x140012c, 64)) == 20971820);
assert(signed(zero_extend(0x140013c, 64)) == 20971836);
assert(signed(zero_extend(0x1400140, 64)) == 20971840);
assert(signed(zero_extend(0x1400178, 64)) == 20971896);
assert(signed(zero_extend(0x1400190, 64)) == 20971920);
assert(signed(zero_extend(0x1400194, 64)) == 20971924);
assert(signed(zero_extend(0x14002dc, 64)) == 20972252);
assert(signed(zero_extend(0x14002fc, 64)) == 20972284);
assert(signed(zero_extend(0x1400300, 64)) == 20972288);
assert(signed(zero_extend(0x1400348, 64)) == 20972360);
assert(signed(zero_extend(0x1400368, 64)) == 20972392);
assert(signed(zero_extend(0x140036c, 64)) == 20972396);
assert(signed(zero_extend(0x1400438, 64)) == 20972600);
assert(signed(zero_extend(0x1400454, 64)) == 20972628);
assert(signed(zero_extend(0x1400458, 64)) == 20972632);
assert(signed(zero_extend(0x140049c, 64)) == 20972700);
assert(signed(zero_extend(0x14004b8, 64)) == 20972728);
assert(signed(zero_extend(0x14004bc, 64)) == 20972732);
assert(signed(zero_extend(0x1400588, 64)) == 20972936);
assert(signed(zero_extend(0x14005a4, 64)) == 20972964);
assert(signed(zero_extend(0x14005a8, 64)) == 20972968);
assert(signed(zero_extend(0x14005ec, 64)) == 20973036);
assert(signed(zero_extend(0x1400608, 64)) == 20973064);
assert(signed(zero_extend(0x140060c, 64)) == 20973068);
assert(signed(zero_extend(0x14006d8, 64)) == 20973272);
assert(signed(zero_extend(0x14006f4, 64)) == 20973300);
assert(signed(zero_extend(0x14006f8, 64)) == 20973304);
assert(signed(zero_extend(0x1400738, 64)) == 20973368);
assert(signed(zero_extend(0x1400754, 64)) == 20973396);
assert(signed(zero_extend(0x1400758, 64)) == 20973400);
assert(signed(zero_extend(0x1400824, 64)) == 20973604);
assert(signed(zero_extend(0x1400840, 64)) == 20973632);
assert(signed(zero_extend(0x1400844, 64)) == 20973636);
assert(signed(zero_extend(0x1400888, 64)) == 20973704);
assert(signed(zero_extend(0x14008a4, 64)) == 20973732);
assert(signed(zero_extend(0x14008a8, 64)) == 20973736);
assert(signed(zero_extend(0x14008f0, 64)) == 20973808);
assert(signed(zero_extend(0x1400910, 64)) == 20973840);
assert(signed(zero_extend(0x1400914, 64)) == 20973844);
assert(signed(zero_extend(0x14086f0, 64)) == 21006064);
assert(signed(zero_extend(0x14086f4, 64)) == 21006068);
assert(signed(zero_extend(0x14086f8, 64)) == 21006072);
assert(signed(zero_extend(0x140883c, 64)) == 21006396);
assert(signed(zero_extend(0x1408840, 64)) == 21006400);
assert(signed(zero_extend(0x1408844, 64)) == 21006404);
assert(signed(zero_extend(0x148, 64)) == 328);
assert(signed(zero_extend(0x15, 64)) == 21);
assert(signed(zero_extend(0x150, 64)) == 336);
assert(signed(zero_extend(0x15002f8, 64)) == 22020856);
assert(signed(zero_extend(0x15002fc, 64)) == 22020860);
assert(signed(zero_extend(0x1500300, 64)) == 22020864);
assert(signed(zero_extend(0x1500450, 64)) == 22021200);
assert(signed(zero_extend(0x1500454, 64)) == 22021204);
assert(signed(zero_extend(0x1500458, 64)) == 22021208);
assert(signed(zero_extend(0x15005a0, 64)) == 22021536);
assert(signed(zero_extend(0x15005a4, 64)) == 22021540);
assert(signed(zero_extend(0x15005a8, 64)) == 22021544);
assert(signed(zero_extend(0x16, 64)) == 22);
assert(signed(zero_extend(0x160, 64)) == 352);
assert(signed(zero_extend(0x168, 64)) == 360);
assert(signed(zero_extend(0x17, 64)) == 23);
assert(signed(zero_extend(0x170, 64)) == 368);
assert(signed(zero_extend(0x17ffe, 64)) == 98302);
assert(signed(zero_extend(0x17fff, 64)) == 98303);
assert(signed(zero_extend(0x17fffffff, 64)) == 6442450943);
assert(signed(zero_extend(0x18, 64)) == 24);
assert(signed(zero_extend(0x180, 64)) == 384);
assert(signed(zero_extend(0x18000, 64)) == 98304);
assert(signed(zero_extend(0x180000000, 64)) == 6442450944);
assert(signed(zero_extend(0x18001, 64)) == 98305);
assert(signed(zero_extend(0x18899aabb, 64)) == 6586739387);
assert(signed(zero_extend(0x19, 64)) == 25);
assert(signed(zero_extend(0x1a, 64)) == 26);
assert(signed(zero_extend(0x1a0, 64)) == 416);
assert(signed(zero_extend(0x1a600078, 64)) == 442499192);
assert(signed(zero_extend(0x1a60007c, 64)) == 442499196);
assert(signed(zero_extend(0x1a600080, 64)) == 442499200);
assert(signed(zero_extend(0x1b, 64)) == 27);
assert(signed(zero_extend(0x1c, 64)) == 28);
assert(signed(zero_extend(0x1c0, 64)) == 448);
assert(signed(zero_extend(0x1d, 64)) == 29);
assert(signed(zero_extend(0x1e, 64)) == 30);
assert(signed(zero_extend(0x1e0, 64)) == 480);
assert(signed(zero_extend(0x1e0ac, 64)) == 123052);
assert(signed(zero_extend(0x1e0ad, 64)) == 123053);
assert(signed(zero_extend(0x1e0ae, 64)) == 123054);
assert(signed(zero_extend(0x1e0af, 64)) == 123055);
assert(signed(zero_extend(0x1e0b0, 64)) == 123056);
assert(signed(zero_extend(0x1e0b1, 64)) == 123057);
assert(signed(zero_extend(0x1e0b2, 64)) == 123058);
assert(signed(zero_extend(0x1e0b3, 64)) == 123059);
assert(signed(zero_extend(0x1e0b4, 64)) == 123060);
assert(signed(zero_extend(0x1e0b5, 64)) == 123061);
assert(signed(zero_extend(0x1e0b6, 64)) == 123062);
assert(signed(zero_extend(0x1e0b7, 64)) == 123063);
assert(signed(zero_extend(0x1e0b8, 64)) == 123064);
assert(signed(zero_extend(0x1e0b9, 64)) == 123065);
assert(signed(zero_extend(0x1e0ba, 64)) == 123066);
assert(signed(zero_extend(0x1e0bb, 64)) == 123067);
assert(signed(zero_extend(0x1e0bc, 64)) == 123068);
assert(signed(zero_extend(0x1e0bd, 64)) == 123069);
assert(signed(zero_extend(0x1e0be, 64)) == 123070);
assert(signed(zero_extend(0x1e0bf, 64)) == 123071);
assert(signed(zero_extend(0x1e0c0, 64)) == 123072);
assert(signed(zero_extend(0x1e0c1, 64)) == 123073);
assert(signed(zero_extend(0x1e0c2, 64)) == 123074);
assert(signed(zero_extend(0x1e0c3, 64)) == 123075);
assert(signed(zero_extend(0x1e0c4, 64)) == 123076);
assert(signed(zero_extend(0x1e0c5, 64)) == 123077);
assert(signed(zero_extend(0x1e0c6, 64)) == 123078);
assert(signed(zero_extend(0x1e0ec, 64)) == 123116);
assert(signed(zero_extend(0x1e0ed, 64)) == 123117);
assert(signed(zero_extend(0x1e0ee, 64)) == 123118);
assert(signed(zero_extend(0x1e0ef, 64)) == 123119);
assert(signed(zero_extend(0x1e0f0, 64)) == 123120);
assert(signed(zero_extend(0x1e0f1, 64)) == 123121);
assert(signed(zero_extend(0x1e0f2, 64)) == 123122);
assert(signed(zero_extend(0x1e0f3, 64)) == 123123);
assert(signed(zero_extend(0x1e0f4, 64)) == 123124);
assert(signed(zero_extend(0x1e0f5, 64)) == 123125);
assert(signed(zero_extend(0x1e0f6, 64)) == 123126);
assert(signed(zero_extend(0x1e0f7, 64)) == 123127);
assert(signed(zero_extend(0x1e0f8, 64)) == 123128);
assert(signed(zero_extend(0x1e0f9, 64)) == 123129);
assert(signed(zero_extend(0x1e0fa, 64)) == 123130);
assert(signed(zero_extend(0x1e0fb, 64)) == 123131);
assert(signed(zero_extend(0x1e0fc, 64)) == 123132);
assert(signed(zero_extend(0x1e0fd, 64)) == 123133);
assert(signed(zero_extend(0x1e0fe, 64)) == 123134);
assert(signed(zero_extend(0x1e0ff, 64)) == 123135);
assert(signed(zero_extend(0x1e100, 64)) == 123136);
assert(signed(zero_extend(0x1e101, 64)) == 123137);
assert(signed(zero_extend(0x1e102, 64)) == 123138);
assert(signed(zero_extend(0x1e103, 64)) == 123139);
assert(signed(zero_extend(0x1e104, 64)) == 123140);
assert(signed(zero_extend(0x1e105, 64)) == 123141);
assert(signed(zero_extend(0x1e106, 64)) == 123142);
assert(signed(zero_extend(0x1e107, 64)) == 123143);
assert(signed(zero_extend(0x1e108, 64)) == 123144);
assert(signed(zero_extend(0x1e109, 64)) == 123145);
assert(signed(zero_extend(0x1e10a, 64)) == 123146);
assert(signed(zero_extend(0x1e10b, 64)) == 123147);
assert(signed(zero_extend(0x1e10c, 64)) == 123148);
assert(signed(zero_extend(0x1e10d, 64)) == 123149);
assert(signed(zero_extend(0x1e10e, 64)) == 123150);
assert(signed(zero_extend(0x1e10f, 64)) == 123151);
assert(signed(zero_extend(0x1e110, 64)) == 123152);
assert(signed(zero_extend(0x1e111, 64)) == 123153);
assert(signed(zero_extend(0x1e112, 64)) == 123154);
assert(signed(zero_extend(0x1e113, 64)) == 123155);
assert(signed(zero_extend(0x1e114, 64)) == 123156);
assert(signed(zero_extend(0x1e115, 64)) == 123157);
assert(signed(zero_extend(0x1e116, 64)) == 123158);
assert(signed(zero_extend(0x1e117, 64)) == 123159);
assert(signed(zero_extend(0x1e118, 64)) == 123160);
assert(signed(zero_extend(0x1e119, 64)) == 123161);
assert(signed(zero_extend(0x1e11a, 64)) == 123162);
assert(signed(zero_extend(0x1e11b, 64)) == 123163);
assert(signed(zero_extend(0x1e11c, 64)) == 123164);
assert(signed(zero_extend(0x1e11d, 64)) == 123165);
assert(signed(zero_extend(0x1e11e, 64)) == 123166);
assert(signed(zero_extend(0x1e140, 64)) == 123200);
assert(signed(zero_extend(0x1e141, 64)) == 123201);
assert(signed(zero_extend(0x1e142, 64)) == 123202);
assert(signed(zero_extend(0x1e143, 64)) == 123203);
assert(signed(zero_extend(0x1e144, 64)) == 123204);
assert(signed(zero_extend(0x1e145, 64)) == 123205);
assert(signed(zero_extend(0x1e146, 64)) == 123206);
assert(signed(zero_extend(0x1e147, 64)) == 123207);
assert(signed(zero_extend(0x1e148, 64)) == 123208);
assert(signed(zero_extend(0x1e149, 64)) == 123209);
assert(signed(zero_extend(0x1e14a, 64)) == 123210);
assert(signed(zero_extend(0x1e14b, 64)) == 123211);
assert(signed(zero_extend(0x1e14c, 64)) == 123212);
assert(signed(zero_extend(0x1e14d, 64)) == 123213);
assert(signed(zero_extend(0x1e14e, 64)) == 123214);
assert(signed(zero_extend(0x1e14f, 64)) == 123215);
assert(signed(zero_extend(0x1e150, 64)) == 123216);
assert(signed(zero_extend(0x1e151, 64)) == 123217);
assert(signed(zero_extend(0x1e152, 64)) == 123218);
assert(signed(zero_extend(0x1e153, 64)) == 123219);
assert(signed(zero_extend(0x1e154, 64)) == 123220);
assert(signed(zero_extend(0x1e155, 64)) == 123221);
assert(signed(zero_extend(0x1e156, 64)) == 123222);
assert(signed(zero_extend(0x1e157, 64)) == 123223);
assert(signed(zero_extend(0x1e158, 64)) == 123224);
assert(signed(zero_extend(0x1e159, 64)) == 123225);
assert(signed(zero_extend(0x1e15a, 64)) == 123226);
assert(signed(zero_extend(0x1e15b, 64)) == 123227);
assert(signed(zero_extend(0x1e15c, 64)) == 123228);
assert(signed(zero_extend(0x1e198, 64)) == 123288);
assert(signed(zero_extend(0x1e199, 64)) == 123289);
assert(signed(zero_extend(0x1e19a, 64)) == 123290);
assert(signed(zero_extend(0x1e19b, 64)) == 123291);
assert(signed(zero_extend(0x1e19c, 64)) == 123292);
assert(signed(zero_extend(0x1e19d, 64)) == 123293);
assert(signed(zero_extend(0x1e19e, 64)) == 123294);
assert(signed(zero_extend(0x1e19f, 64)) == 123295);
assert(signed(zero_extend(0x1e1a0, 64)) == 123296);
assert(signed(zero_extend(0x1e1a1, 64)) == 123297);
assert(signed(zero_extend(0x1e1a2, 64)) == 123298);
assert(signed(zero_extend(0x1e1a3, 64)) == 123299);
assert(signed(zero_extend(0x1e1a4, 64)) == 123300);
assert(signed(zero_extend(0x1e1a5, 64)) == 123301);
assert(signed(zero_extend(0x1e1a6, 64)) == 123302);
assert(signed(zero_extend(0x1e1a7, 64)) == 123303);
assert(signed(zero_extend(0x1e1a8, 64)) == 123304);
assert(signed(zero_extend(0x1e1a9, 64)) == 123305);
assert(signed(zero_extend(0x1e1aa, 64)) == 123306);
assert(signed(zero_extend(0x1e1ab, 64)) == 123307);
assert(signed(zero_extend(0x1e1ac, 64)) == 123308);
assert(signed(zero_extend(0x1e1ad, 64)) == 123309);
assert(signed(zero_extend(0x1e1ae, 64)) == 123310);
assert(signed(zero_extend(0x1e1af, 64)) == 123311);
assert(signed(zero_extend(0x1e1b0, 64)) == 123312);
assert(signed(zero_extend(0x1ec24, 64)) == 125988);
assert(signed(zero_extend(0x1ec25, 64)) == 125989);
assert(signed(zero_extend(0x1ec26, 64)) == 125990);
assert(signed(zero_extend(0x1ec27, 64)) == 125991);
assert(signed(zero_extend(0x1ec28, 64)) == 125992);
assert(signed(zero_extend(0x1ec29, 64)) == 125993);
assert(signed(zero_extend(0x1ec2a, 64)) == 125994);
assert(signed(zero_extend(0x1ec2b, 64)) == 125995);
assert(signed(zero_extend(0x1ec2c, 64)) == 125996);
assert(signed(zero_extend(0x1ec2d, 64)) == 125997);
assert(signed(zero_extend(0x1ec2e, 64)) == 125998);
assert(signed(zero_extend(0x1ec2f, 64)) == 125999);
assert(signed(zero_extend(0x1ec30, 64)) == 126000);
assert(signed(zero_extend(0x1ec31, 64)) == 126001);
assert(signed(zero_extend(0x1ec32, 64)) == 126002);
assert(signed(zero_extend(0x1ec33, 64)) == 126003);
assert(signed(zero_extend(0x1ec34, 64)) == 126004);
assert(signed(zero_extend(0x1ec35, 64)) == 126005);
assert(signed(zero_extend(0x1ec36, 64)) == 126006);
assert(signed(zero_extend(0x1ec37, 64)) == 126007);
assert(signed(zero_extend(0x1ec38, 64)) == 126008);
assert(signed(zero_extend(0x1ec39, 64)) == 126009);
assert(signed(zero_extend(0x1ec3a, 64)) == 126010);
assert(signed(zero_extend(0x1ec7c, 64)) == 126076);
assert(signed(zero_extend(0x1ec7d, 64)) == 126077);
assert(signed(zero_extend(0x1ec7e, 64)) == 126078);
assert(signed(zero_extend(0x1ec7f, 64)) == 126079);
assert(signed(zero_extend(0x1ec80, 64)) == 126080);
assert(signed(zero_extend(0x1ec81, 64)) == 126081);
assert(signed(zero_extend(0x1ec82, 64)) == 126082);
assert(signed(zero_extend(0x1ec83, 64)) == 126083);
assert(signed(zero_extend(0x1ec84, 64)) == 126084);
assert(signed(zero_extend(0x1ec85, 64)) == 126085);
assert(signed(zero_extend(0x1ec86, 64)) == 126086);
assert(signed(zero_extend(0x1ec87, 64)) == 126087);
assert(signed(zero_extend(0x1ec88, 64)) == 126088);
assert(signed(zero_extend(0x1ec89, 64)) == 126089);
assert(signed(zero_extend(0x1ec8a, 64)) == 126090);
assert(signed(zero_extend(0x1ec8b, 64)) == 126091);
assert(signed(zero_extend(0x1ec8c, 64)) == 126092);
assert(signed(zero_extend(0x1ec8d, 64)) == 126093);
assert(signed(zero_extend(0x1ec8e, 64)) == 126094);
assert(signed(zero_extend(0x1ec8f, 64)) == 126095);
assert(signed(zero_extend(0x1ec90, 64)) == 126096);
assert(signed(zero_extend(0x1ec91, 64)) == 126097);
assert(signed(zero_extend(0x1ec92, 64)) == 126098);
assert(signed(zero_extend(0x1f, 64)) == 31);
assert(signed(zero_extend(0x2, 64)) == 2);
assert(signed(zero_extend(0x20, 64)) == 32);
assert(signed(zero_extend(0x200, 64)) == 512);
assert(signed(zero_extend(0x2000, 64)) == 8192);
assert(signed(zero_extend(0x20000, 64)) == 131072);
assert(signed(zero_extend(0x20000000, 64)) == 536870912);
assert(signed(zero_extend(0x208, 64)) == 520);
assert(signed(zero_extend(0x20800, 64)) == 133120);
assert(signed(zero_extend(0x21, 64)) == 33);
assert(signed(zero_extend(0x21750, 64)) == 137040);
assert(signed(zero_extend(0x21751, 64)) == 137041);
assert(signed(zero_extend(0x21752, 64)) == 137042);
assert(signed(zero_extend(0x21753, 64)) == 137043);
assert(signed(zero_extend(0x21754, 64)) == 137044);
assert(signed(zero_extend(0x21755, 64)) == 137045);
assert(signed(zero_extend(0x21756, 64)) == 137046);
assert(signed(zero_extend(0x21757, 64)) == 137047);
assert(signed(zero_extend(0x21758, 64)) == 137048);
assert(signed(zero_extend(0x21759, 64)) == 137049);
assert(signed(zero_extend(0x2175a, 64)) == 137050);
assert(signed(zero_extend(0x2175b, 64)) == 137051);
assert(signed(zero_extend(0x2175c, 64)) == 137052);
assert(signed(zero_extend(0x2175d, 64)) == 137053);
assert(signed(zero_extend(0x2175e, 64)) == 137054);
assert(signed(zero_extend(0x2175f, 64)) == 137055);
assert(signed(zero_extend(0x21760, 64)) == 137056);
assert(signed(zero_extend(0x21761, 64)) == 137057);
assert(signed(zero_extend(0x21764, 64)) == 137060);
assert(signed(zero_extend(0x21765, 64)) == 137061);
assert(signed(zero_extend(0x21766, 64)) == 137062);
assert(signed(zero_extend(0x21767, 64)) == 137063);
assert(signed(zero_extend(0x21768, 64)) == 137064);
assert(signed(zero_extend(0x21769, 64)) == 137065);
assert(signed(zero_extend(0x2176a, 64)) == 137066);
assert(signed(zero_extend(0x217a8, 64)) == 137128);
assert(signed(zero_extend(0x217a9, 64)) == 137129);
assert(signed(zero_extend(0x217aa, 64)) == 137130);
assert(signed(zero_extend(0x217ab, 64)) == 137131);
assert(signed(zero_extend(0x217ac, 64)) == 137132);
assert(signed(zero_extend(0x217ad, 64)) == 137133);
assert(signed(zero_extend(0x217ae, 64)) == 137134);
assert(signed(zero_extend(0x217af, 64)) == 137135);
assert(signed(zero_extend(0x217b0, 64)) == 137136);
assert(signed(zero_extend(0x217b1, 64)) == 137137);
assert(signed(zero_extend(0x217b2, 64)) == 137138);
assert(signed(zero_extend(0x217b3, 64)) == 137139);
assert(signed(zero_extend(0x217b4, 64)) == 137140);
assert(signed(zero_extend(0x217b5, 64)) == 137141);
assert(signed(zero_extend(0x217b6, 64)) == 137142);
assert(signed(zero_extend(0x217b7, 64)) == 137143);
assert(signed(zero_extend(0x217b8, 64)) == 137144);
assert(signed(zero_extend(0x217b9, 64)) == 137145);
assert(signed(zero_extend(0x217bc, 64)) == 137148);
assert(signed(zero_extend(0x217bd, 64)) == 137149);
assert(signed(zero_extend(0x217be, 64)) == 137150);
assert(signed(zero_extend(0x217bf, 64)) == 137151);
assert(signed(zero_extend(0x217c0, 64)) == 137152);
assert(signed(zero_extend(0x217c1, 64)) == 137153);
assert(signed(zero_extend(0x217c2, 64)) == 137154);
assert(signed(zero_extend(0x2196c, 64)) == 137580);
assert(signed(zero_extend(0x2196d, 64)) == 137581);
assert(signed(zero_extend(0x2196e, 64)) == 137582);
assert(signed(zero_extend(0x2196f, 64)) == 137583);
assert(signed(zero_extend(0x21970, 64)) == 137584);
assert(signed(zero_extend(0x21971, 64)) == 137585);
assert(signed(zero_extend(0x21972, 64)) == 137586);
assert(signed(zero_extend(0x21973, 64)) == 137587);
assert(signed(zero_extend(0x21974, 64)) == 137588);
assert(signed(zero_extend(0x21975, 64)) == 137589);
assert(signed(zero_extend(0x21976, 64)) == 137590);
assert(signed(zero_extend(0x21977, 64)) == 137591);
assert(signed(zero_extend(0x21978, 64)) == 137592);
assert(signed(zero_extend(0x21979, 64)) == 137593);
assert(signed(zero_extend(0x2197a, 64)) == 137594);
assert(signed(zero_extend(0x2197b, 64)) == 137595);
assert(signed(zero_extend(0x2197c, 64)) == 137596);
assert(signed(zero_extend(0x2197d, 64)) == 137597);
assert(signed(zero_extend(0x2197e, 64)) == 137598);
assert(signed(zero_extend(0x2197f, 64)) == 137599);
assert(signed(zero_extend(0x21980, 64)) == 137600);
assert(signed(zero_extend(0x21981, 64)) == 137601);
assert(signed(zero_extend(0x21982, 64)) == 137602);
assert(signed(zero_extend(0x21983, 64)) == 137603);
assert(signed(zero_extend(0x219c4, 64)) == 137668);
assert(signed(zero_extend(0x219c5, 64)) == 137669);
assert(signed(zero_extend(0x219c6, 64)) == 137670);
assert(signed(zero_extend(0x219c7, 64)) == 137671);
assert(signed(zero_extend(0x219c8, 64)) == 137672);
assert(signed(zero_extend(0x219c9, 64)) == 137673);
assert(signed(zero_extend(0x219ca, 64)) == 137674);
assert(signed(zero_extend(0x219cb, 64)) == 137675);
assert(signed(zero_extend(0x219cc, 64)) == 137676);
assert(signed(zero_extend(0x219cd, 64)) == 137677);
assert(signed(zero_extend(0x219ce, 64)) == 137678);
assert(signed(zero_extend(0x219cf, 64)) == 137679);
assert(signed(zero_extend(0x219d0, 64)) == 137680);
assert(signed(zero_extend(0x219d1, 64)) == 137681);
assert(signed(zero_extend(0x219d2, 64)) == 137682);
assert(signed(zero_extend(0x219d3, 64)) == 137683);
assert(signed(zero_extend(0x219d4, 64)) == 137684);
assert(signed(zero_extend(0x219d5, 64)) == 137685);
assert(signed(zero_extend(0x219d6, 64)) == 137686);
assert(signed(zero_extend(0x219d7, 64)) == 137687);
assert(signed(zero_extend(0x219d8, 64)) == 137688);
assert(signed(zero_extend(0x219d9, 64)) == 137689);
assert(signed(zero_extend(0x219da, 64)) == 137690);
assert(signed(zero_extend(0x219db, 64)) == 137691);
assert(signed(zero_extend(0x21a90, 64)) == 137872);
assert(signed(zero_extend(0x21a91, 64)) == 137873);
assert(signed(zero_extend(0x21a92, 64)) == 137874);
assert(signed(zero_extend(0x21a93, 64)) == 137875);
assert(signed(zero_extend(0x21a94, 64)) == 137876);
assert(signed(zero_extend(0x21a95, 64)) == 137877);
assert(signed(zero_extend(0x21a96, 64)) == 137878);
assert(signed(zero_extend(0x21a97, 64)) == 137879);
assert(signed(zero_extend(0x21a98, 64)) == 137880);
assert(signed(zero_extend(0x21a99, 64)) == 137881);
assert(signed(zero_extend(0x21a9a, 64)) == 137882);
assert(signed(zero_extend(0x21a9b, 64)) == 137883);
assert(signed(zero_extend(0x21a9c, 64)) == 137884);
assert(signed(zero_extend(0x21a9d, 64)) == 137885);
assert(signed(zero_extend(0x21a9e, 64)) == 137886);
assert(signed(zero_extend(0x21a9f, 64)) == 137887);
assert(signed(zero_extend(0x21aa0, 64)) == 137888);
assert(signed(zero_extend(0x21aa1, 64)) == 137889);
assert(signed(zero_extend(0x21aa2, 64)) == 137890);
assert(signed(zero_extend(0x21aa3, 64)) == 137891);
assert(signed(zero_extend(0x21aa4, 64)) == 137892);
assert(signed(zero_extend(0x21aa5, 64)) == 137893);
assert(signed(zero_extend(0x21aa6, 64)) == 137894);
assert(signed(zero_extend(0x21aa7, 64)) == 137895);
assert(signed(zero_extend(0x21aa8, 64)) == 137896);
assert(signed(zero_extend(0x21aa9, 64)) == 137897);
assert(signed(zero_extend(0x21aaa, 64)) == 137898);
assert(signed(zero_extend(0x21ae8, 64)) == 137960);
assert(signed(zero_extend(0x21ae9, 64)) == 137961);
assert(signed(zero_extend(0x21aea, 64)) == 137962);
assert(signed(zero_extend(0x21aeb, 64)) == 137963);
assert(signed(zero_extend(0x21aec, 64)) == 137964);
assert(signed(zero_extend(0x21aed, 64)) == 137965);
assert(signed(zero_extend(0x21aee, 64)) == 137966);
assert(signed(zero_extend(0x21aef, 64)) == 137967);
assert(signed(zero_extend(0x21af0, 64)) == 137968);
assert(signed(zero_extend(0x21af1, 64)) == 137969);
assert(signed(zero_extend(0x21af2, 64)) == 137970);
assert(signed(zero_extend(0x21af3, 64)) == 137971);
assert(signed(zero_extend(0x21af4, 64)) == 137972);
assert(signed(zero_extend(0x21af5, 64)) == 137973);
assert(signed(zero_extend(0x21af6, 64)) == 137974);
assert(signed(zero_extend(0x21af7, 64)) == 137975);
assert(signed(zero_extend(0x21af8, 64)) == 137976);
assert(signed(zero_extend(0x21af9, 64)) == 137977);
assert(signed(zero_extend(0x21afa, 64)) == 137978);
assert(signed(zero_extend(0x21afb, 64)) == 137979);
assert(signed(zero_extend(0x21afc, 64)) == 137980);
assert(signed(zero_extend(0x21afd, 64)) == 137981);
assert(signed(zero_extend(0x21afe, 64)) == 137982);
assert(signed(zero_extend(0x21aff, 64)) == 137983);
assert(signed(zero_extend(0x21b00, 64)) == 137984);
assert(signed(zero_extend(0x21b01, 64)) == 137985);
assert(signed(zero_extend(0x21b02, 64)) == 137986);
assert(signed(zero_extend(0x21d08, 64)) == 138504);
assert(signed(zero_extend(0x21d09, 64)) == 138505);
assert(signed(zero_extend(0x21d0a, 64)) == 138506);
assert(signed(zero_extend(0x21d0b, 64)) == 138507);
assert(signed(zero_extend(0x21d0c, 64)) == 138508);
assert(signed(zero_extend(0x21d0d, 64)) == 138509);
assert(signed(zero_extend(0x21d0e, 64)) == 138510);
assert(signed(zero_extend(0x21d0f, 64)) == 138511);
assert(signed(zero_extend(0x21d10, 64)) == 138512);
assert(signed(zero_extend(0x21d11, 64)) == 138513);
assert(signed(zero_extend(0x21d14, 64)) == 138516);
assert(signed(zero_extend(0x21d15, 64)) == 138517);
assert(signed(zero_extend(0x21d16, 64)) == 138518);
assert(signed(zero_extend(0x21d17, 64)) == 138519);
assert(signed(zero_extend(0x21d18, 64)) == 138520);
assert(signed(zero_extend(0x21d19, 64)) == 138521);
assert(signed(zero_extend(0x21d1a, 64)) == 138522);
assert(signed(zero_extend(0x21d1b, 64)) == 138523);
assert(signed(zero_extend(0x21d1c, 64)) == 138524);
assert(signed(zero_extend(0x21d1d, 64)) == 138525);
assert(signed(zero_extend(0x21d1e, 64)) == 138526);
assert(signed(zero_extend(0x21d1f, 64)) == 138527);
assert(signed(zero_extend(0x21d20, 64)) == 138528);
assert(signed(zero_extend(0x21d21, 64)) == 138529);
assert(signed(zero_extend(0x21d22, 64)) == 138530);
assert(signed(zero_extend(0x21d23, 64)) == 138531);
assert(signed(zero_extend(0x21d24, 64)) == 138532);
assert(signed(zero_extend(0x21d25, 64)) == 138533);
assert(signed(zero_extend(0x21d26, 64)) == 138534);
assert(signed(zero_extend(0x21d27, 64)) == 138535);
assert(signed(zero_extend(0x21d28, 64)) == 138536);
assert(signed(zero_extend(0x21d29, 64)) == 138537);
assert(signed(zero_extend(0x21d2a, 64)) == 138538);
assert(signed(zero_extend(0x21d2b, 64)) == 138539);
assert(signed(zero_extend(0x21d2c, 64)) == 138540);
assert(signed(zero_extend(0x21d2d, 64)) == 138541);
assert(signed(zero_extend(0x21d30, 64)) == 138544);
assert(signed(zero_extend(0x21d31, 64)) == 138545);
assert(signed(zero_extend(0x21d32, 64)) == 138546);
assert(signed(zero_extend(0x21d33, 64)) == 138547);
assert(signed(zero_extend(0x21d34, 64)) == 138548);
assert(signed(zero_extend(0x21d35, 64)) == 138549);
assert(signed(zero_extend(0x21d36, 64)) == 138550);
assert(signed(zero_extend(0x21d37, 64)) == 138551);
assert(signed(zero_extend(0x21d38, 64)) == 138552);
assert(signed(zero_extend(0x21d39, 64)) == 138553);
assert(signed(zero_extend(0x21d3c, 64)) == 138556);
assert(signed(zero_extend(0x21d3d, 64)) == 138557);
assert(signed(zero_extend(0x21d3e, 64)) == 138558);
assert(signed(zero_extend(0x21d3f, 64)) == 138559);
assert(signed(zero_extend(0x21d40, 64)) == 138560);
assert(signed(zero_extend(0x21d41, 64)) == 138561);
assert(signed(zero_extend(0x21d42, 64)) == 138562);
assert(signed(zero_extend(0x21d43, 64)) == 138563);
assert(signed(zero_extend(0x21d44, 64)) == 138564);
assert(signed(zero_extend(0x21d45, 64)) == 138565);
assert(signed(zero_extend(0x21d48, 64)) == 138568);
assert(signed(zero_extend(0x21d49, 64)) == 138569);
assert(signed(zero_extend(0x21d4a, 64)) == 138570);
assert(signed(zero_extend(0x21d4b, 64)) == 138571);
assert(signed(zero_extend(0x21d4c, 64)) == 138572);
assert(signed(zero_extend(0x21d4d, 64)) == 138573);
assert(signed(zero_extend(0x21d4e, 64)) == 138574);
assert(signed(zero_extend(0x21d4f, 64)) == 138575);
assert(signed(zero_extend(0x21d50, 64)) == 138576);
assert(signed(zero_extend(0x21d51, 64)) == 138577);
assert(signed(zero_extend(0x21d54, 64)) == 138580);
assert(signed(zero_extend(0x21d55, 64)) == 138581);
assert(signed(zero_extend(0x21d56, 64)) == 138582);
assert(signed(zero_extend(0x21d57, 64)) == 138583);
assert(signed(zero_extend(0x21d58, 64)) == 138584);
assert(signed(zero_extend(0x21d59, 64)) == 138585);
assert(signed(zero_extend(0x21d5a, 64)) == 138586);
assert(signed(zero_extend(0x21d5b, 64)) == 138587);
assert(signed(zero_extend(0x21d5c, 64)) == 138588);
assert(signed(zero_extend(0x21d5d, 64)) == 138589);
assert(signed(zero_extend(0x21d60, 64)) == 138592);
assert(signed(zero_extend(0x21d61, 64)) == 138593);
assert(signed(zero_extend(0x21d62, 64)) == 138594);
assert(signed(zero_extend(0x21d63, 64)) == 138595);
assert(signed(zero_extend(0x21d64, 64)) == 138596);
assert(signed(zero_extend(0x21d65, 64)) == 138597);
assert(signed(zero_extend(0x21d66, 64)) == 138598);
assert(signed(zero_extend(0x21d67, 64)) == 138599);
assert(signed(zero_extend(0x21d68, 64)) == 138600);
assert(signed(zero_extend(0x21d69, 64)) == 138601);
assert(signed(zero_extend(0x21d6c, 64)) == 138604);
assert(signed(zero_extend(0x21d6d, 64)) == 138605);
assert(signed(zero_extend(0x21d6e, 64)) == 138606);
assert(signed(zero_extend(0x21d6f, 64)) == 138607);
assert(signed(zero_extend(0x21d70, 64)) == 138608);
assert(signed(zero_extend(0x21d71, 64)) == 138609);
assert(signed(zero_extend(0x21d72, 64)) == 138610);
assert(signed(zero_extend(0x21d73, 64)) == 138611);
assert(signed(zero_extend(0x21d74, 64)) == 138612);
assert(signed(zero_extend(0x21d75, 64)) == 138613);
assert(signed(zero_extend(0x21d76, 64)) == 138614);
assert(signed(zero_extend(0x21d77, 64)) == 138615);
assert(signed(zero_extend(0x21d78, 64)) == 138616);
assert(signed(zero_extend(0x21d79, 64)) == 138617);
assert(signed(zero_extend(0x21d7a, 64)) == 138618);
assert(signed(zero_extend(0x21d7b, 64)) == 138619);
assert(signed(zero_extend(0x21d7c, 64)) == 138620);
assert(signed(zero_extend(0x21d7d, 64)) == 138621);
assert(signed(zero_extend(0x21d7e, 64)) == 138622);
assert(signed(zero_extend(0x21d7f, 64)) == 138623);
assert(signed(zero_extend(0x21d80, 64)) == 138624);
assert(signed(zero_extend(0x21d81, 64)) == 138625);
assert(signed(zero_extend(0x21d82, 64)) == 138626);
assert(signed(zero_extend(0x21d83, 64)) == 138627);
assert(signed(zero_extend(0x21d84, 64)) == 138628);
assert(signed(zero_extend(0x21d85, 64)) == 138629);
assert(signed(zero_extend(0x21d88, 64)) == 138632);
assert(signed(zero_extend(0x21d89, 64)) == 138633);
assert(signed(zero_extend(0x21d8a, 64)) == 138634);
assert(signed(zero_extend(0x21d8b, 64)) == 138635);
assert(signed(zero_extend(0x21d8c, 64)) == 138636);
assert(signed(zero_extend(0x21d8d, 64)) == 138637);
assert(signed(zero_extend(0x21d8e, 64)) == 138638);
assert(signed(zero_extend(0x21d8f, 64)) == 138639);
assert(signed(zero_extend(0x21d90, 64)) == 138640);
assert(signed(zero_extend(0x21d91, 64)) == 138641);
assert(signed(zero_extend(0x21d94, 64)) == 138644);
assert(signed(zero_extend(0x21d95, 64)) == 138645);
assert(signed(zero_extend(0x21d96, 64)) == 138646);
assert(signed(zero_extend(0x21d97, 64)) == 138647);
assert(signed(zero_extend(0x21d98, 64)) == 138648);
assert(signed(zero_extend(0x21d99, 64)) == 138649);
assert(signed(zero_extend(0x21d9a, 64)) == 138650);
assert(signed(zero_extend(0x21d9b, 64)) == 138651);
assert(signed(zero_extend(0x21d9c, 64)) == 138652);
assert(signed(zero_extend(0x21d9d, 64)) == 138653);
assert(signed(zero_extend(0x21da0, 64)) == 138656);
assert(signed(zero_extend(0x21da1, 64)) == 138657);
assert(signed(zero_extend(0x21da2, 64)) == 138658);
assert(signed(zero_extend(0x21da3, 64)) == 138659);
assert(signed(zero_extend(0x21da4, 64)) == 138660);
assert(signed(zero_extend(0x21da5, 64)) == 138661);
assert(signed(zero_extend(0x21da6, 64)) == 138662);
assert(signed(zero_extend(0x21da7, 64)) == 138663);
assert(signed(zero_extend(0x21da8, 64)) == 138664);
assert(signed(zero_extend(0x21da9, 64)) == 138665);
assert(signed(zero_extend(0x21dac, 64)) == 138668);
assert(signed(zero_extend(0x21dad, 64)) == 138669);
assert(signed(zero_extend(0x21dae, 64)) == 138670);
assert(signed(zero_extend(0x21daf, 64)) == 138671);
assert(signed(zero_extend(0x21db0, 64)) == 138672);
assert(signed(zero_extend(0x21db1, 64)) == 138673);
assert(signed(zero_extend(0x21db2, 64)) == 138674);
assert(signed(zero_extend(0x21db3, 64)) == 138675);
assert(signed(zero_extend(0x21db4, 64)) == 138676);
assert(signed(zero_extend(0x21db5, 64)) == 138677);
assert(signed(zero_extend(0x22, 64)) == 34);
assert(signed(zero_extend(0x220, 64)) == 544);
assert(signed(zero_extend(0x2200, 64)) == 8704);
assert(signed(zero_extend(0x22000, 64)) == 139264);
assert(signed(zero_extend(0x22088, 64)) == 139400);
assert(signed(zero_extend(0x220e0, 64)) == 139488);
assert(signed(zero_extend(0x2220, 64)) == 8736);
assert(signed(zero_extend(0x2222222222222223, 64)) == 2459565876494606883);
assert(signed(zero_extend(0x223c, 64)) == 8764);
assert(signed(zero_extend(0x22c, 64)) == 556);
assert(signed(zero_extend(0x23, 64)) == 35);
assert(signed(zero_extend(0x235e0, 64)) == 144864);
assert(signed(zero_extend(0x235e1, 64)) == 144865);
assert(signed(zero_extend(0x235e2, 64)) == 144866);
assert(signed(zero_extend(0x235e3, 64)) == 144867);
assert(signed(zero_extend(0x235e4, 64)) == 144868);
assert(signed(zero_extend(0x235e5, 64)) == 144869);
assert(signed(zero_extend(0x235e6, 64)) == 144870);
assert(signed(zero_extend(0x235e7, 64)) == 144871);
assert(signed(zero_extend(0x235e8, 64)) == 144872);
assert(signed(zero_extend(0x235e9, 64)) == 144873);
assert(signed(zero_extend(0x235ea, 64)) == 144874);
assert(signed(zero_extend(0x235eb, 64)) == 144875);
assert(signed(zero_extend(0x235ec, 64)) == 144876);
assert(signed(zero_extend(0x235ed, 64)) == 144877);
assert(signed(zero_extend(0x235ee, 64)) == 144878);
assert(signed(zero_extend(0x235ef, 64)) == 144879);
assert(signed(zero_extend(0x235f0, 64)) == 144880);
assert(signed(zero_extend(0x235f1, 64)) == 144881);
assert(signed(zero_extend(0x235f2, 64)) == 144882);
assert(signed(zero_extend(0x235f3, 64)) == 144883);
assert(signed(zero_extend(0x235f4, 64)) == 144884);
assert(signed(zero_extend(0x235f5, 64)) == 144885);
assert(signed(zero_extend(0x235f6, 64)) == 144886);
assert(signed(zero_extend(0x235f7, 64)) == 144887);
assert(signed(zero_extend(0x235f8, 64)) == 144888);
assert(signed(zero_extend(0x23638, 64)) == 144952);
assert(signed(zero_extend(0x23639, 64)) == 144953);
assert(signed(zero_extend(0x2363a, 64)) == 144954);
assert(signed(zero_extend(0x2363b, 64)) == 144955);
assert(signed(zero_extend(0x2363c, 64)) == 144956);
assert(signed(zero_extend(0x2363d, 64)) == 144957);
assert(signed(zero_extend(0x2363e, 64)) == 144958);
assert(signed(zero_extend(0x2363f, 64)) == 144959);
assert(signed(zero_extend(0x23640, 64)) == 144960);
assert(signed(zero_extend(0x23641, 64)) == 144961);
assert(signed(zero_extend(0x23642, 64)) == 144962);
assert(signed(zero_extend(0x23643, 64)) == 144963);
assert(signed(zero_extend(0x23644, 64)) == 144964);
assert(signed(zero_extend(0x23645, 64)) == 144965);
assert(signed(zero_extend(0x23646, 64)) == 144966);
assert(signed(zero_extend(0x23647, 64)) == 144967);
assert(signed(zero_extend(0x23648, 64)) == 144968);
assert(signed(zero_extend(0x23649, 64)) == 144969);
assert(signed(zero_extend(0x2364a, 64)) == 144970);
assert(signed(zero_extend(0x2364b, 64)) == 144971);
assert(signed(zero_extend(0x2364c, 64)) == 144972);
assert(signed(zero_extend(0x2364d, 64)) == 144973);
assert(signed(zero_extend(0x2364e, 64)) == 144974);
assert(signed(zero_extend(0x2364f, 64)) == 144975);
assert(signed(zero_extend(0x23650, 64)) == 144976);
assert(signed(zero_extend(0x24, 64)) == 36);
assert(signed(zero_extend(0x24c, 64)) == 588);
assert(signed(zero_extend(0x25, 64)) == 37);
assert(signed(zero_extend(0x26, 64)) == 38);
assert(signed(zero_extend(0x27, 64)) == 39);
assert(signed(zero_extend(0x270, 64)) == 624);
assert(signed(zero_extend(0x28, 64)) == 40);
assert(signed(zero_extend(0x288, 64)) == 648);
assert(signed(zero_extend(0x29, 64)) == 41);
assert(signed(zero_extend(0x2a, 64)) == 42);
assert(signed(zero_extend(0x2b, 64)) == 43);
assert(signed(zero_extend(0x2c, 64)) == 44);
assert(signed(zero_extend(0x2c000, 64)) == 180224);
assert(signed(zero_extend(0x2d, 64)) == 45);
assert(signed(zero_extend(0x2e, 64)) == 46);
assert(signed(zero_extend(0x2eb0000, 64)) == 48955392);
assert(signed(zero_extend(0x2ec0000, 64)) == 49020928);
assert(signed(zero_extend(0x2ee0000, 64)) == 49152000);
assert(signed(zero_extend(0x2ef0000, 64)) == 49217536);
assert(signed(zero_extend(0x2ef0040, 64)) == 49217600);
assert(signed(zero_extend(0x2f, 64)) == 47);
assert(signed(zero_extend(0x2f0, 64)) == 752);
assert(signed(zero_extend(0x2f00000, 64)) == 49283072);
assert(signed(zero_extend(0x2f00008, 64)) == 49283080);
assert(signed(zero_extend(0x2f00018, 64)) == 49283096);
assert(signed(zero_extend(0x2f00200, 64)) == 49283584);
assert(signed(zero_extend(0x2f00538, 64)) == 49284408);
assert(signed(zero_extend(0x2f10000, 64)) == 49348608);
assert(signed(zero_extend(0x2f10800, 64)) == 49350656);
assert(signed(zero_extend(0x2f40000, 64)) == 49545216);
assert(signed(zero_extend(0x2f50000, 64)) == 49610752);
assert(signed(zero_extend(0x2f50040, 64)) == 49610816);
assert(signed(zero_extend(0x2f60000, 64)) == 49676288);
assert(signed(zero_extend(0x2f60200, 64)) == 49676800);
assert(signed(zero_extend(0x2f70000, 64)) == 49741824);
assert(signed(zero_extend(0x2f70800, 64)) == 49743872);
assert(signed(zero_extend(0x3, 64)) == 3);
assert(signed(zero_extend(0x30, 64)) == 48);
assert(signed(zero_extend(0x3000, 64)) == 12288);
assert(signed(zero_extend(0x30000, 64)) == 196608);
assert(signed(zero_extend(0x300001c, 64)) == 50331676);
assert(signed(zero_extend(0x3000020, 64)) == 50331680);
assert(signed(zero_extend(0x3000024, 64)) == 50331684);
assert(signed(zero_extend(0x3000054, 64)) == 50331732);
assert(signed(zero_extend(0x3000058, 64)) == 50331736);
assert(signed(zero_extend(0x300005c, 64)) == 50331740);
assert(signed(zero_extend(0x3000068, 64)) == 50331752);
assert(signed(zero_extend(0x30000c4, 64)) == 50331844);
assert(signed(zero_extend(0x30000c8, 64)) == 50331848);
assert(signed(zero_extend(0x30000cc, 64)) == 50331852);
assert(signed(zero_extend(0x3000288, 64)) == 50332296);
assert(signed(zero_extend(0x30002a0, 64)) == 50332320);
assert(signed(zero_extend(0x3006b10, 64)) == 50359056);
assert(signed(zero_extend(0x3006b1c, 64)) == 50359068);
assert(signed(zero_extend(0x3006e40, 64)) == 50359872);
assert(signed(zero_extend(0x3008d20, 64)) == 50367776);
assert(signed(zero_extend(0x3008d30, 64)) == 50367792);
assert(signed(zero_extend(0x3008d40, 64)) == 50367808);
assert(signed(zero_extend(0x3008d50, 64)) == 50367824);
assert(signed(zero_extend(0x3008d60, 64)) == 50367840);
assert(signed(zero_extend(0x3008d70, 64)) == 50367856);
assert(signed(zero_extend(0x3008d80, 64)) == 50367872);
assert(signed(zero_extend(0x3008d90, 64)) == 50367888);
assert(signed(zero_extend(0x3008d98, 64)) == 50367896);
assert(signed(zero_extend(0x3008da0, 64)) == 50367904);
assert(signed(zero_extend(0x3008db0, 64)) == 50367920);
assert(signed(zero_extend(0x3008db8, 64)) == 50367928);
assert(signed(zero_extend(0x3008dc0, 64)) == 50367936);
assert(signed(zero_extend(0x3008dc8, 64)) == 50367944);
assert(signed(zero_extend(0x3008dd0, 64)) == 50367952);
assert(signed(zero_extend(0x3008de0, 64)) == 50367968);
assert(signed(zero_extend(0x3008de8, 64)) == 50367976);
assert(signed(zero_extend(0x3008df0, 64)) == 50367984);
assert(signed(zero_extend(0x3008df8, 64)) == 50367992);
assert(signed(zero_extend(0x3008e00, 64)) == 50368000);
assert(signed(zero_extend(0x3008e10, 64)) == 50368016);
assert(signed(zero_extend(0x3008e20, 64)) == 50368032);
assert(signed(zero_extend(0x3008e28, 64)) == 50368040);
assert(signed(zero_extend(0x3008e30, 64)) == 50368048);
assert(signed(zero_extend(0x3008e40, 64)) == 50368064);
assert(signed(zero_extend(0x3010e40, 64)) == 50400832);
assert(signed(zero_extend(0x30e0000, 64)) == 51249152);
assert(signed(zero_extend(0x30f0000, 64)) == 51314688);
assert(signed(zero_extend(0x31, 64)) == 49);
assert(signed(zero_extend(0x3100000, 64)) == 51380224);
assert(signed(zero_extend(0x3100040, 64)) == 51380288);
assert(signed(zero_extend(0x3110000, 64)) == 51445760);
assert(signed(zero_extend(0x3110208, 64)) == 51446280);
assert(signed(zero_extend(0x3120000, 64)) == 51511296);
assert(signed(zero_extend(0x3120800, 64)) == 51513344);
assert(signed(zero_extend(0x31d0000, 64)) == 52232192);
assert(signed(zero_extend(0x31d0200, 64)) == 52232704);
assert(signed(zero_extend(0x31d0208, 64)) == 52232712);
assert(signed(zero_extend(0x31d02f0, 64)) == 52232944);
assert(signed(zero_extend(0x31d02f8, 64)) == 52232952);
assert(signed(zero_extend(0x31d0300, 64)) == 52232960);
assert(signed(zero_extend(0x31d0308, 64)) == 52232968);
assert(signed(zero_extend(0x31d0318, 64)) == 52232984);
assert(signed(zero_extend(0x31d0320, 64)) == 52232992);
assert(signed(zero_extend(0x31d0328, 64)) == 52233000);
assert(signed(zero_extend(0x31d04d0, 64)) == 52233424);
assert(signed(zero_extend(0x31d04d8, 64)) == 52233432);
assert(signed(zero_extend(0x31d04e4, 64)) == 52233444);
assert(signed(zero_extend(0x31d04ec, 64)) == 52233452);
assert(signed(zero_extend(0x31d04f8, 64)) == 52233464);
assert(signed(zero_extend(0x31d0500, 64)) == 52233472);
assert(signed(zero_extend(0x31d050c, 64)) == 52233484);
assert(signed(zero_extend(0x31d0518, 64)) == 52233496);
assert(signed(zero_extend(0x31d0524, 64)) == 52233508);
assert(signed(zero_extend(0x31d052c, 64)) == 52233516);
assert(signed(zero_extend(0x31d0538, 64)) == 52233528);
assert(signed(zero_extend(0x31d0540, 64)) == 52233536);
assert(signed(zero_extend(0x31d054c, 64)) == 52233548);
assert(signed(zero_extend(0x31d0554, 64)) == 52233556);
assert(signed(zero_extend(0x31d0560, 64)) == 52233568);
assert(signed(zero_extend(0x31d0568, 64)) == 52233576);
assert(signed(zero_extend(0x31d0584, 64)) == 52233604);
assert(signed(zero_extend(0x31d058c, 64)) == 52233612);
assert(signed(zero_extend(0x31d0598, 64)) == 52233624);
assert(signed(zero_extend(0x31d05a0, 64)) == 52233632);
assert(signed(zero_extend(0x31d05ac, 64)) == 52233644);
assert(signed(zero_extend(0x31d05b4, 64)) == 52233652);
assert(signed(zero_extend(0x31d05c0, 64)) == 52233664);
assert(signed(zero_extend(0x31d05c8, 64)) == 52233672);
assert(signed(zero_extend(0x31d05d4, 64)) == 52233684);
assert(signed(zero_extend(0x31d05dc, 64)) == 52233692);
assert(signed(zero_extend(0x31d05e8, 64)) == 52233704);
assert(signed(zero_extend(0x31d05f0, 64)) == 52233712);
assert(signed(zero_extend(0x31d05fc, 64)) == 52233724);
assert(signed(zero_extend(0x31d0604, 64)) == 52233732);
assert(signed(zero_extend(0x31d0610, 64)) == 52233744);
assert(signed(zero_extend(0x31d0618, 64)) == 52233752);
assert(signed(zero_extend(0x31d0624, 64)) == 52233764);
assert(signed(zero_extend(0x31d062c, 64)) == 52233772);
assert(signed(zero_extend(0x31d0638, 64)) == 52233784);
assert(signed(zero_extend(0x31d0640, 64)) == 52233792);
assert(signed(zero_extend(0x31d064c, 64)) == 52233804);
assert(signed(zero_extend(0x31d0654, 64)) == 52233812);
assert(signed(zero_extend(0x31d0660, 64)) == 52233824);
assert(signed(zero_extend(0x31d0668, 64)) == 52233832);
assert(signed(zero_extend(0x31d0674, 64)) == 52233844);
assert(signed(zero_extend(0x31d067c, 64)) == 52233852);
assert(signed(zero_extend(0x31d0688, 64)) == 52233864);
assert(signed(zero_extend(0x31d0690, 64)) == 52233872);
assert(signed(zero_extend(0x31d06b0, 64)) == 52233904);
assert(signed(zero_extend(0x31d06b8, 64)) == 52233912);
assert(signed(zero_extend(0x31d06c4, 64)) == 52233924);
assert(signed(zero_extend(0x31d06cc, 64)) == 52233932);
assert(signed(zero_extend(0x31d06d8, 64)) == 52233944);
assert(signed(zero_extend(0x31d06e0, 64)) == 52233952);
assert(signed(zero_extend(0x31d0700, 64)) == 52233984);
assert(signed(zero_extend(0x31d0708, 64)) == 52233992);
assert(signed(zero_extend(0x31d0714, 64)) == 52234004);
assert(signed(zero_extend(0x31d071c, 64)) == 52234012);
assert(signed(zero_extend(0x31d073c, 64)) == 52234044);
assert(signed(zero_extend(0x31d0744, 64)) == 52234052);
assert(signed(zero_extend(0x31d0750, 64)) == 52234064);
assert(signed(zero_extend(0x31d0758, 64)) == 52234072);
assert(signed(zero_extend(0x31d0764, 64)) == 52234084);
assert(signed(zero_extend(0x31d076c, 64)) == 52234092);
assert(signed(zero_extend(0x31d0780, 64)) == 52234112);
assert(signed(zero_extend(0x31d0788, 64)) == 52234120);
assert(signed(zero_extend(0x31d1398, 64)) == 52237208);
assert(signed(zero_extend(0x31d13b8, 64)) == 52237240);
assert(signed(zero_extend(0x31d13d8, 64)) == 52237272);
assert(signed(zero_extend(0x31d13f8, 64)) == 52237304);
assert(signed(zero_extend(0x31d1418, 64)) == 52237336);
assert(signed(zero_extend(0x31d1438, 64)) == 52237368);
assert(signed(zero_extend(0x31d1458, 64)) == 52237400);
assert(signed(zero_extend(0x31d1478, 64)) == 52237432);
assert(signed(zero_extend(0x31d1498, 64)) == 52237464);
assert(signed(zero_extend(0x31d14b8, 64)) == 52237496);
assert(signed(zero_extend(0x31d14d8, 64)) == 52237528);
assert(signed(zero_extend(0x31d14f8, 64)) == 52237560);
assert(signed(zero_extend(0x31d1518, 64)) == 52237592);
assert(signed(zero_extend(0x31d1538, 64)) == 52237624);
assert(signed(zero_extend(0x31d1558, 64)) == 52237656);
assert(signed(zero_extend(0x31d1578, 64)) == 52237688);
assert(signed(zero_extend(0x31d1598, 64)) == 52237720);
assert(signed(zero_extend(0x31d15b8, 64)) == 52237752);
assert(signed(zero_extend(0x31d15d8, 64)) == 52237784);
assert(signed(zero_extend(0x31d15f8, 64)) == 52237816);
assert(signed(zero_extend(0x31d1618, 64)) == 52237848);
assert(signed(zero_extend(0x31d1638, 64)) == 52237880);
assert(signed(zero_extend(0x31d1658, 64)) == 52237912);
assert(signed(zero_extend(0x31d1678, 64)) == 52237944);
assert(signed(zero_extend(0x31d1698, 64)) == 52237976);
assert(signed(zero_extend(0x31d16b8, 64)) == 52238008);
assert(signed(zero_extend(0x31d16d8, 64)) == 52238040);
assert(signed(zero_extend(0x31d16f8, 64)) == 52238072);
assert(signed(zero_extend(0x31d1718, 64)) == 52238104);
assert(signed(zero_extend(0x31d1738, 64)) == 52238136);
assert(signed(zero_extend(0x31d1758, 64)) == 52238168);
assert(signed(zero_extend(0x31d1780, 64)) == 52238208);
assert(signed(zero_extend(0x31d17d0, 64)) == 52238288);
assert(signed(zero_extend(0x31d17e0, 64)) == 52238304);
assert(signed(zero_extend(0x31d17f0, 64)) == 52238320);
assert(signed(zero_extend(0x31d1890, 64)) == 52238480);
assert(signed(zero_extend(0x31d18a0, 64)) == 52238496);
assert(signed(zero_extend(0x31d18c0, 64)) == 52238528);
assert(signed(zero_extend(0x31d1920, 64)) == 52238624);
assert(signed(zero_extend(0x31d1938, 64)) == 52238648);
assert(signed(zero_extend(0x31d1950, 64)) == 52238672);
assert(signed(zero_extend(0x31d1960, 64)) == 52238688);
assert(signed(zero_extend(0x31d1968, 64)) == 52238696);
assert(signed(zero_extend(0x31d1970, 64)) == 52238704);
assert(signed(zero_extend(0x31d1980, 64)) == 52238720);
assert(signed(zero_extend(0x32, 64)) == 50);
assert(signed(zero_extend(0x320, 64)) == 800);
assert(signed(zero_extend(0x33, 64)) == 51);
assert(signed(zero_extend(0x34, 64)) == 52);
assert(signed(zero_extend(0x34000, 64)) == 212992);
assert(signed(zero_extend(0x34040, 64)) == 213056);
assert(signed(zero_extend(0x35, 64)) == 53);
assert(signed(zero_extend(0x36, 64)) == 54);
assert(signed(zero_extend(0x368, 64)) == 872);
assert(signed(zero_extend(0x37, 64)) == 55);
assert(signed(zero_extend(0x38, 64)) == 56);
assert(signed(zero_extend(0x3800000, 64)) == 58720256);
assert(signed(zero_extend(0x380000a, 64)) == 58720266);
assert(signed(zero_extend(0x3800010, 64)) == 58720272);
assert(signed(zero_extend(0x3800038, 64)) == 58720312);
assert(signed(zero_extend(0x380003a, 64)) == 58720314);
assert(signed(zero_extend(0x380004b, 64)) == 58720331);
assert(signed(zero_extend(0x3800060, 64)) == 58720352);
assert(signed(zero_extend(0x38002c0, 64)) == 58720960);
assert(signed(zero_extend(0x38002f8, 64)) == 58721016);
assert(signed(zero_extend(0x3800310, 64)) == 58721040);
assert(signed(zero_extend(0x3800330, 64)) == 58721072);
assert(signed(zero_extend(0x3800338, 64)) == 58721080);
assert(signed(zero_extend(0x3800350, 64)) == 58721104);
assert(signed(zero_extend(0x3800360, 64)) == 58721120);
assert(signed(zero_extend(0x38003a0, 64)) == 58721184);
assert(signed(zero_extend(0x38003b0, 64)) == 58721200);
assert(signed(zero_extend(0x38003c0, 64)) == 58721216);
assert(signed(zero_extend(0x38003d0, 64)) == 58721232);
assert(signed(zero_extend(0x38003e0, 64)) == 58721248);
assert(signed(zero_extend(0x38003f0, 64)) == 58721264);
assert(signed(zero_extend(0x38003f8, 64)) == 58721272);
assert(signed(zero_extend(0x3800410, 64)) == 58721296);
assert(signed(zero_extend(0x3800420, 64)) == 58721312);
assert(signed(zero_extend(0x3800430, 64)) == 58721328);
assert(signed(zero_extend(0x3800440, 64)) == 58721344);
assert(signed(zero_extend(0x3800448, 64)) == 58721352);
assert(signed(zero_extend(0x3800450, 64)) == 58721360);
assert(signed(zero_extend(0x3800460, 64)) == 58721376);
assert(signed(zero_extend(0x3808060, 64)) == 58753120);
assert(signed(zero_extend(0x3808064, 64)) == 58753124);
assert(signed(zero_extend(0x3808068, 64)) == 58753128);
assert(signed(zero_extend(0x3808070, 64)) == 58753136);
assert(signed(zero_extend(0x3808078, 64)) == 58753144);
assert(signed(zero_extend(0x3808080, 64)) == 58753152);
assert(signed(zero_extend(0x3808140, 64)) == 58753344);
assert(signed(zero_extend(0x3808258, 64)) == 58753624);
assert(signed(zero_extend(0x3808a00, 64)) == 58755584);
assert(signed(zero_extend(0x3808a04, 64)) == 58755588);
assert(signed(zero_extend(0x3808a08, 64)) == 58755592);
assert(signed(zero_extend(0x3808a10, 64)) == 58755600);
assert(signed(zero_extend(0x3808a18, 64)) == 58755608);
assert(signed(zero_extend(0x3808a20, 64)) == 58755616);
assert(signed(zero_extend(0x3808a70, 64)) == 58755696);
assert(signed(zero_extend(0x3808a78, 64)) == 58755704);
assert(signed(zero_extend(0x3808b78, 64)) == 58755960);
assert(signed(zero_extend(0x3808b80, 64)) == 58755968);
assert(signed(zero_extend(0x380d000, 64)) == 58773504);
assert(signed(zero_extend(0x380d610, 64)) == 58775056);
assert(signed(zero_extend(0x380d880, 64)) == 58775680);
assert(signed(zero_extend(0x380d8c0, 64)) == 58775744);
assert(signed(zero_extend(0x380d8d0, 64)) == 58775760);
assert(signed(zero_extend(0x380d8e0, 64)) == 58775776);
assert(signed(zero_extend(0x380d8e8, 64)) == 58775784);
assert(signed(zero_extend(0x380d8f0, 64)) == 58775792);
assert(signed(zero_extend(0x380d900, 64)) == 58775808);
assert(signed(zero_extend(0x380d910, 64)) == 58775824);
assert(signed(zero_extend(0x380d960, 64)) == 58775904);
assert(signed(zero_extend(0x380d970, 64)) == 58775920);
assert(signed(zero_extend(0x380d980, 64)) == 58775936);
assert(signed(zero_extend(0x380d990, 64)) == 58775952);
assert(signed(zero_extend(0x380d9a0, 64)) == 58775968);
assert(signed(zero_extend(0x380d9b0, 64)) == 58775984);
assert(signed(zero_extend(0x380d9b8, 64)) == 58775992);
assert(signed(zero_extend(0x380d9d0, 64)) == 58776016);
assert(signed(zero_extend(0x380d9e0, 64)) == 58776032);
assert(signed(zero_extend(0x380d9f0, 64)) == 58776048);
assert(signed(zero_extend(0x380da00, 64)) == 58776064);
assert(signed(zero_extend(0x380da10, 64)) == 58776080);
assert(signed(zero_extend(0x3811610, 64)) == 58791440);
assert(signed(zero_extend(0x3813610, 64)) == 58799632);
assert(signed(zero_extend(0x3815610, 64)) == 58807824);
assert(signed(zero_extend(0x3815618, 64)) == 58807832);
assert(signed(zero_extend(0x3815624, 64)) == 58807844);
assert(signed(zero_extend(0x3815628, 64)) == 58807848);
assert(signed(zero_extend(0x3815630, 64)) == 58807856);
assert(signed(zero_extend(0x3815638, 64)) == 58807864);
assert(signed(zero_extend(0x381563c, 64)) == 58807868);
assert(signed(zero_extend(0x3815640, 64)) == 58807872);
assert(signed(zero_extend(0x3815648, 64)) == 58807880);
assert(signed(zero_extend(0x3815650, 64)) == 58807888);
assert(signed(zero_extend(0x3815658, 64)) == 58807896);
assert(signed(zero_extend(0x3815668, 64)) == 58807912);
assert(signed(zero_extend(0x3815670, 64)) == 58807920);
assert(signed(zero_extend(0x3815678, 64)) == 58807928);
assert(signed(zero_extend(0x3815778, 64)) == 58808184);
assert(signed(zero_extend(0x3815780, 64)) == 58808192);
assert(signed(zero_extend(0x3815b50, 64)) == 58809168);
assert(signed(zero_extend(0x3815b58, 64)) == 58809176);
assert(signed(zero_extend(0x3815c58, 64)) == 58809432);
assert(signed(zero_extend(0x3815c60, 64)) == 58809440);
assert(signed(zero_extend(0x3815d80, 64)) == 58809728);
assert(signed(zero_extend(0x3817d80, 64)) == 58817920);
assert(signed(zero_extend(0x3819d80, 64)) == 58826112);
assert(signed(zero_extend(0x3819d84, 64)) == 58826116);
assert(signed(zero_extend(0x3819d88, 64)) == 58826120);
assert(signed(zero_extend(0x3819d8c, 64)) == 58826124);
assert(signed(zero_extend(0x3819d90, 64)) == 58826128);
assert(signed(zero_extend(0x3819d98, 64)) == 58826136);
assert(signed(zero_extend(0x3819da0, 64)) == 58826144);
assert(signed(zero_extend(0x3819da8, 64)) == 58826152);
assert(signed(zero_extend(0x3819db8, 64)) == 58826168);
assert(signed(zero_extend(0x3819dc0, 64)) == 58826176);
assert(signed(zero_extend(0x3819dc8, 64)) == 58826184);
assert(signed(zero_extend(0x3819ed0, 64)) == 58826448);
assert(signed(zero_extend(0x381a000, 64)) == 58826752);
assert(signed(zero_extend(0x381a280, 64)) == 58827392);
assert(signed(zero_extend(0x381a284, 64)) == 58827396);
assert(signed(zero_extend(0x381a288, 64)) == 58827400);
assert(signed(zero_extend(0x381a28c, 64)) == 58827404);
assert(signed(zero_extend(0x381a290, 64)) == 58827408);
assert(signed(zero_extend(0x381a298, 64)) == 58827416);
assert(signed(zero_extend(0x381a2a0, 64)) == 58827424);
assert(signed(zero_extend(0x381a2a8, 64)) == 58827432);
assert(signed(zero_extend(0x381a2b8, 64)) == 58827448);
assert(signed(zero_extend(0x381a2c0, 64)) == 58827456);
assert(signed(zero_extend(0x381a2c8, 64)) == 58827464);
assert(signed(zero_extend(0x381a3c8, 64)) == 58827720);
assert(signed(zero_extend(0x381a3d0, 64)) == 58827728);
assert(signed(zero_extend(0x381a780, 64)) == 58828672);
assert(signed(zero_extend(0x381a784, 64)) == 58828676);
assert(signed(zero_extend(0x381a788, 64)) == 58828680);
assert(signed(zero_extend(0x381a790, 64)) == 58828688);
assert(signed(zero_extend(0x381a798, 64)) == 58828696);
assert(signed(zero_extend(0x381a7a0, 64)) == 58828704);
assert(signed(zero_extend(0x381a7a4, 64)) == 58828708);
assert(signed(zero_extend(0x381a7ac, 64)) == 58828716);
assert(signed(zero_extend(0x381a7b0, 64)) == 58828720);
assert(signed(zero_extend(0x381a7b8, 64)) == 58828728);
assert(signed(zero_extend(0x381a7c0, 64)) == 58828736);
assert(signed(zero_extend(0x381a7c8, 64)) == 58828744);
assert(signed(zero_extend(0x381a7d8, 64)) == 58828760);
assert(signed(zero_extend(0x381a7e0, 64)) == 58828768);
assert(signed(zero_extend(0x381a8e0, 64)) == 58829024);
assert(signed(zero_extend(0x381a8e8, 64)) == 58829032);
assert(signed(zero_extend(0x381acb0, 64)) == 58830000);
assert(signed(zero_extend(0x381acb8, 64)) == 58830008);
assert(signed(zero_extend(0x381adb8, 64)) == 58830264);
assert(signed(zero_extend(0x381adc0, 64)) == 58830272);
assert(signed(zero_extend(0x381aee0, 64)) == 58830560);
assert(signed(zero_extend(0x381af00, 64)) == 58830592);
assert(signed(zero_extend(0x381b150, 64)) == 58831184);
assert(signed(zero_extend(0x381b188, 64)) == 58831240);
assert(signed(zero_extend(0x381b1a0, 64)) == 58831264);
assert(signed(zero_extend(0x381b1d0, 64)) == 58831312);
assert(signed(zero_extend(0x381b1d8, 64)) == 58831320);
assert(signed(zero_extend(0x381b1e0, 64)) == 58831328);
assert(signed(zero_extend(0x381b1f0, 64)) == 58831344);
assert(signed(zero_extend(0x381b200, 64)) == 58831360);
assert(signed(zero_extend(0x381b240, 64)) == 58831424);
assert(signed(zero_extend(0x381b250, 64)) == 58831440);
assert(signed(zero_extend(0x381b260, 64)) == 58831456);
assert(signed(zero_extend(0x381b270, 64)) == 58831472);
assert(signed(zero_extend(0x381b278, 64)) == 58831480);
assert(signed(zero_extend(0x381b280, 64)) == 58831488);
assert(signed(zero_extend(0x381b290, 64)) == 58831504);
assert(signed(zero_extend(0x381b298, 64)) == 58831512);
assert(signed(zero_extend(0x381b2b0, 64)) == 58831536);
assert(signed(zero_extend(0x381b2c0, 64)) == 58831552);
assert(signed(zero_extend(0x381b2d0, 64)) == 58831568);
assert(signed(zero_extend(0x381b2e0, 64)) == 58831584);
assert(signed(zero_extend(0x381b2e8, 64)) == 58831592);
assert(signed(zero_extend(0x381b2f0, 64)) == 58831600);
assert(signed(zero_extend(0x381b300, 64)) == 58831616);
assert(signed(zero_extend(0x39, 64)) == 57);
assert(signed(zero_extend(0x3a, 64)) == 58);
assert(signed(zero_extend(0x3b, 64)) == 59);
assert(signed(zero_extend(0x3c, 64)) == 60);
assert(signed(zero_extend(0x3d, 64)) == 61);
assert(signed(zero_extend(0x3e, 64)) == 62);
assert(signed(zero_extend(0x3f, 64)) == 63);
assert(signed(zero_extend(0x3ff83ff83ff83ff8, 64)) == 4609504554071375864);
assert(signed(zero_extend(0x3fff, 64)) == 16383);
assert(signed(zero_extend(0x3ffffffff, 64)) == 17179869183);
assert(signed(zero_extend(0x4, 64)) == 4);
assert(signed(zero_extend(0x40, 64)) == 64);
assert(signed(zero_extend(0x400, 64)) == 1024);
assert(signed(zero_extend(0x4000, 64)) == 16384);
assert(signed(zero_extend(0x400000000, 64)) == 17179869184);
assert(signed(zero_extend(0x41, 64)) == 65);
assert(signed(zero_extend(0x42, 64)) == 66);
assert(signed(zero_extend(0x43, 64)) == 67);
assert(signed(zero_extend(0x44, 64)) == 68);
assert(signed(zero_extend(0x45, 64)) == 69);
assert(signed(zero_extend(0x46, 64)) == 70);
assert(signed(zero_extend(0x47, 64)) == 71);
assert(signed(zero_extend(0x48, 64)) == 72);
assert(signed(zero_extend(0x49, 64)) == 73);
assert(signed(zero_extend(0x4a, 64)) == 74);
assert(signed(zero_extend(0x4b, 64)) == 75);
assert(signed(zero_extend(0x4c, 64)) == 76);
assert(signed(zero_extend(0x4c000, 64)) == 311296);
assert(signed(zero_extend(0x4c800, 64)) == 313344);
assert(signed(zero_extend(0x4d, 64)) == 77);
assert(signed(zero_extend(0x4e, 64)) == 78);
assert(signed(zero_extend(0x4f, 64)) == 79);
assert(signed(zero_extend(0x5, 64)) == 5);
assert(signed(zero_extend(0x50, 64)) == 80);
assert(signed(zero_extend(0x51, 64)) == 81);
assert(signed(zero_extend(0x52, 64)) == 82);
assert(signed(zero_extend(0x53, 64)) == 83);
assert(signed(zero_extend(0x530, 64)) == 1328);
assert(signed(zero_extend(0x54, 64)) == 84);
assert(signed(zero_extend(0x54000, 64)) == 344064);
assert(signed(zero_extend(0x55, 64)) == 85);
assert(signed(zero_extend(0x56, 64)) == 86);
assert(signed(zero_extend(0x57, 64)) == 87);
assert(signed(zero_extend(0x58, 64)) == 88);
assert(signed(zero_extend(0x58000, 64)) == 360448);
assert(signed(zero_extend(0x59, 64)) == 89);
assert(signed(zero_extend(0x5a, 64)) == 90);
assert(signed(zero_extend(0x5a5a, 64)) == 23130);
assert(signed(zero_extend(0x5a5a5a59, 64)) == 1515870809);
assert(signed(zero_extend(0x5a5a5a5a, 64)) == 1515870810);
assert(signed(zero_extend(0x5a5a5a5a5a5a5a59, 64)) == 6510615555426900569);
assert(signed(zero_extend(0x5a5a5a5a5a5a5a5a, 64)) == 6510615555426900570);
assert(signed(zero_extend(0x5b, 64)) == 91);
assert(signed(zero_extend(0x5c, 64)) == 92);
assert(signed(zero_extend(0x5c000, 64)) == 376832);
assert(signed(zero_extend(0x5c040, 64)) == 376896);
assert(signed(zero_extend(0x5d, 64)) == 93);
assert(signed(zero_extend(0x5e, 64)) == 94);
assert(signed(zero_extend(0x5f, 64)) == 95);
assert(signed(zero_extend(0x6, 64)) == 6);
assert(signed(zero_extend(0x60, 64)) == 96);
assert(signed(zero_extend(0x61, 64)) == 97);
assert(signed(zero_extend(0x610, 64)) == 1552);
assert(signed(zero_extend(0x62, 64)) == 98);
assert(signed(zero_extend(0x620e000, 64)) == 102817792);
assert(signed(zero_extend(0x620e010, 64)) == 102817808);
assert(signed(zero_extend(0x6216000, 64)) == 102850560);
assert(signed(zero_extend(0x6216004, 64)) == 102850564);
assert(signed(zero_extend(0x6216008, 64)) == 102850568);
assert(signed(zero_extend(0x621600c, 64)) == 102850572);
assert(signed(zero_extend(0x6216030, 64)) == 102850608);
assert(signed(zero_extend(0x6216034, 64)) == 102850612);
assert(signed(zero_extend(0x6216038, 64)) == 102850616);
assert(signed(zero_extend(0x621603c, 64)) == 102850620);
assert(signed(zero_extend(0x6216040, 64)) == 102850624);
assert(signed(zero_extend(0x6216044, 64)) == 102850628);
assert(signed(zero_extend(0x6216048, 64)) == 102850632);
assert(signed(zero_extend(0x621604c, 64)) == 102850636);
assert(signed(zero_extend(0x6216054, 64)) == 102850644);
assert(signed(zero_extend(0x6216058, 64)) == 102850648);
assert(signed(zero_extend(0x6216064, 64)) == 102850660);
assert(signed(zero_extend(0x6216069, 64)) == 102850665);
assert(signed(zero_extend(0x62160aa, 64)) == 102850730);
assert(signed(zero_extend(0x63, 64)) == 99);
assert(signed(zero_extend(0x64, 64)) == 100);
assert(signed(zero_extend(0x65, 64)) == 101);
assert(signed(zero_extend(0x66, 64)) == 102);
assert(signed(zero_extend(0x67, 64)) == 103);
assert(signed(zero_extend(0x68, 64)) == 104);
assert(signed(zero_extend(0x69, 64)) == 105);
assert(signed(zero_extend(0x6a, 64)) == 106);
assert(signed(zero_extend(0x6b, 64)) == 107);
assert(signed(zero_extend(0x6b7c8d9f, 64)) == 1803324831);
assert(signed(zero_extend(0x6c, 64)) == 108);
assert(signed(zero_extend(0x6d, 64)) == 109);
assert(signed(zero_extend(0x6e, 64)) == 110);
assert(signed(zero_extend(0x6ede4cbc6ede4cbb, 64)) == 7988907161199463611);
assert(signed(zero_extend(0x6f, 64)) == 111);
assert(signed(zero_extend(0x6ffffffffffffffe, 64)) == 8070450532247928830);
assert(signed(zero_extend(0x6fffffffffffffff, 64)) == 8070450532247928831);
assert(signed(zero_extend(0x7, 64)) == 7);
assert(signed(zero_extend(0x70, 64)) == 112);
assert(signed(zero_extend(0x71, 64)) == 113);
assert(signed(zero_extend(0x72, 64)) == 114);
assert(signed(zero_extend(0x73, 64)) == 115);
assert(signed(zero_extend(0x74, 64)) == 116);
assert(signed(zero_extend(0x75, 64)) == 117);
assert(signed(zero_extend(0x76, 64)) == 118);
assert(signed(zero_extend(0x764c321, 64)) == 124044065);
assert(signed(zero_extend(0x77, 64)) == 119);
assert(signed(zero_extend(0x7765554377655542, 64)) == 8603376411415500098);
assert(signed(zero_extend(0x7766554477665542, 64)) == 8603657890687243586);
assert(signed(zero_extend(0x78, 64)) == 120);
assert(signed(zero_extend(0x789abcdef0123456, 64)) == 8690466096661279830);
assert(signed(zero_extend(0x79, 64)) == 121);
assert(signed(zero_extend(0x7a, 64)) == 122);
assert(signed(zero_extend(0x7b, 64)) == 123);
assert(signed(zero_extend(0x7c, 64)) == 124);
assert(signed(zero_extend(0x7d, 64)) == 125);
assert(signed(zero_extend(0x7e, 64)) == 126);
assert(signed(zero_extend(0x7f, 64)) == 127);
assert(signed(zero_extend(0x7ff, 64)) == 2047);
assert(signed(zero_extend(0x7ffc, 64)) == 32764);
assert(signed(zero_extend(0x7ffe, 64)) == 32766);
assert(signed(zero_extend(0x7fff, 64)) == 32767);
assert(signed(zero_extend(0x7fff7fff, 64)) == 2147450879);
assert(signed(zero_extend(0x7fff7fff7fff7ffd, 64)) == 9223231297218904061);
assert(signed(zero_extend(0x7fff7fff7fff7fff, 64)) == 9223231297218904063);
assert(signed(zero_extend(0x7fffffc, 64)) == 134217724);
assert(signed(zero_extend(0x7ffffffe, 64)) == 2147483646);
assert(signed(zero_extend(0x7fffffff, 64)) == 2147483647);
assert(signed(zero_extend(0x7fffffff00000000, 64)) == 9223372032559808512);
assert(signed(zero_extend(0x7fffffff00000001, 64)) == 9223372032559808513);
assert(signed(zero_extend(0x7fffffff7ffffffe, 64)) == 9223372034707292158);
assert(signed(zero_extend(0x7fffffff7fffffff, 64)) == 9223372034707292159);
assert(signed(zero_extend(0x7fffffff80000000, 64)) == 9223372034707292160);
assert(signed(zero_extend(0x7fffffff80000001, 64)) == 9223372034707292161);
assert(signed(zero_extend(0x7fffffffffff0000, 64)) == 9223372036854710272);
assert(signed(zero_extend(0x7fffffffffff0001, 64)) == 9223372036854710273);
assert(signed(zero_extend(0x7fffffffffff7ffe, 64)) == 9223372036854743038);
assert(signed(zero_extend(0x7fffffffffff7fff, 64)) == 9223372036854743039);
assert(signed(zero_extend(0x7fffffffffff8000, 64)) == 9223372036854743040);
assert(signed(zero_extend(0x7fffffffffff8001, 64)) == 9223372036854743041);
assert(signed(zero_extend(0x7ffffffffffffffc, 64)) == 9223372036854775804);
assert(signed(zero_extend(0x7ffffffffffffffd, 64)) == 9223372036854775805);
assert(signed(zero_extend(0x7ffffffffffffffe, 64)) == 9223372036854775806);
assert(signed(zero_extend(0x7fffffffffffffff, 64)) == 9223372036854775807);
assert(signed(zero_extend(0x8, 64)) == 8);
assert(signed(zero_extend(0x80, 64)) == 128);
assert(signed(zero_extend(0x800, 64)) == 2048);
assert(signed(zero_extend(0x8000, 64)) == 32768);
assert(signed(zero_extend(0x80000000, 64)) == 2147483648);
assert(signed(zero_extend(0x8000000000000000, 64)) == -9223372036854775808);
assert(signed(zero_extend(0x8000000000000001, 64)) == -9223372036854775807);
assert(signed(zero_extend(0x8000000000000002, 64)) == -9223372036854775806);
assert(signed(zero_extend(0x8000000000000003, 64)) == -9223372036854775805);
assert(signed(zero_extend(0x8000000000007ffe, 64)) == -9223372036854743042);
assert(signed(zero_extend(0x8000000000007fff, 64)) == -9223372036854743041);
assert(signed(zero_extend(0x8000000000008000, 64)) == -9223372036854743040);
assert(signed(zero_extend(0x8000000000008001, 64)) == -9223372036854743039);
assert(signed(zero_extend(0x800000000000fffe, 64)) == -9223372036854710274);
assert(signed(zero_extend(0x800000000000ffff, 64)) == -9223372036854710273);
assert(signed(zero_extend(0x800000007ffffffe, 64)) == -9223372034707292162);
assert(signed(zero_extend(0x800000007fffffff, 64)) == -9223372034707292161);
assert(signed(zero_extend(0x8000000080000000, 64)) == -9223372034707292160);
assert(signed(zero_extend(0x8000000080000001, 64)) == -9223372034707292159);
assert(signed(zero_extend(0x80000000fffffffe, 64)) == -9223372032559808514);
assert(signed(zero_extend(0x80000000ffffffff, 64)) == -9223372032559808513);
assert(signed(zero_extend(0x80000001, 64)) == 2147483649);
assert(signed(zero_extend(0x80000002, 64)) == 2147483650);
assert(signed(zero_extend(0x80000003, 64)) == 2147483651);
assert(signed(zero_extend(0x80008000, 64)) == 2147516416);
assert(signed(zero_extend(0x8000800080008000, 64)) == -9223231297218904064);
assert(signed(zero_extend(0x8000800080008002, 64)) == -9223231297218904062);
assert(signed(zero_extend(0x8001, 64)) == 32769);
assert(signed(zero_extend(0x80010003, 64)) == 2147549187);
assert(signed(zero_extend(0x8002, 64)) == 32770);
assert(signed(zero_extend(0x8003, 64)) == 32771);
assert(signed(zero_extend(0x8004, 64)) == 32772);
assert(signed(zero_extend(0x8008, 64)) == 32776);
assert(signed(zero_extend(0x800c, 64)) == 32780);
assert(signed(zero_extend(0x8030, 64)) == 32816);
assert(signed(zero_extend(0x8034, 64)) == 32820);
assert(signed(zero_extend(0x8038, 64)) == 32824);
assert(signed(zero_extend(0x803c, 64)) == 32828);
assert(signed(zero_extend(0x8040, 64)) == 32832);
assert(signed(zero_extend(0x8054, 64)) == 32852);
assert(signed(zero_extend(0x8058, 64)) == 32856);
assert(signed(zero_extend(0x8064, 64)) == 32868);
assert(signed(zero_extend(0x8069, 64)) == 32873);
assert(signed(zero_extend(0x80aa, 64)) == 32938);
assert(signed(zero_extend(0x81, 64)) == 129);
assert(signed(zero_extend(0x82, 64)) == 130);
assert(signed(zero_extend(0x83, 64)) == 131);
assert(signed(zero_extend(0x84, 64)) == 132);
assert(signed(zero_extend(0x84000, 64)) == 540672);
assert(signed(zero_extend(0x84800, 64)) == 542720);
assert(signed(zero_extend(0x85, 64)) == 133);
assert(signed(zero_extend(0x86, 64)) == 134);
assert(signed(zero_extend(0x87, 64)) == 135);
assert(signed(zero_extend(0x87654321, 64)) == 2271560481);
assert(signed(zero_extend(0x876543210fedcba9, 64)) == -8690466096661279831);
assert(signed(zero_extend(0x88, 64)) == 136);
assert(signed(zero_extend(0x8899aabb, 64)) == 2291772091);
assert(signed(zero_extend(0x8899aabb8899aabb, 64)) == -8603657890687243589);
assert(signed(zero_extend(0x8899aabb8899aabd, 64)) == -8603657890687243587);
assert(signed(zero_extend(0x889aaabc889aaabd, 64)) == -8603376411415500099);
assert(signed(zero_extend(0x89, 64)) == 137);
assert(signed(zero_extend(0x89ab, 64)) == 35243);
assert(signed(zero_extend(0x8a, 64)) == 138);
assert(signed(zero_extend(0x8b, 64)) == 139);
assert(signed(zero_extend(0x8c, 64)) == 140);
assert(signed(zero_extend(0x8d, 64)) == 141);
assert(signed(zero_extend(0x8fffffffffffffff, 64)) == -8070450532247928833);
assert(signed(zero_extend(0x9, 64)) == 9);
assert(signed(zero_extend(0x90, 64)) == 144);
assert(signed(zero_extend(0x90000000, 64)) == 2415919104);
assert(signed(zero_extend(0x9000000000000000, 64)) == -8070450532247928832);
assert(signed(zero_extend(0x9000000000000001, 64)) == -8070450532247928831);
assert(signed(zero_extend(0x90000001, 64)) == 2415919105);
assert(signed(zero_extend(0x9121b3439121b344, 64)) == -7988907161199463612);
assert(signed(zero_extend(0x9200040, 64)) == 153092160);
assert(signed(zero_extend(0x920005c, 64)) == 153092188);
assert(signed(zero_extend(0x9200060, 64)) == 153092192);
assert(signed(zero_extend(0x9234567a, 64)) == 2452903546);
assert(signed(zero_extend(0x9be0, 64)) == 39904);
assert(signed(zero_extend(0xa, 64)) == 10);
assert(signed(zero_extend(0xa0, 64)) == 160);
assert(signed(zero_extend(0xa000, 64)) == 40960);
assert(signed(zero_extend(0xa0000000, 64)) == 2684354560);
assert(signed(zero_extend(0xa200060, 64)) == 169869408);
assert(signed(zero_extend(0xa20007c, 64)) == 169869436);
assert(signed(zero_extend(0xa200080, 64)) == 169869440);
assert(signed(zero_extend(0xa50006c, 64)) == 173015148);
assert(signed(zero_extend(0xa500070, 64)) == 173015152);
assert(signed(zero_extend(0xa500074, 64)) == 173015156);
assert(signed(zero_extend(0xa5a5, 64)) == 42405);
assert(signed(zero_extend(0xa5a5a5a5, 64)) == 2779096485);
assert(signed(zero_extend(0xa5a5a5a5a5a5a5a5, 64)) == -6510615555426900571);
assert(signed(zero_extend(0xa8, 64)) == 168);
assert(signed(zero_extend(0xb, 64)) == 11);
assert(signed(zero_extend(0xb0, 64)) == 176);
assert(signed(zero_extend(0xb8, 64)) == 184);
assert(signed(zero_extend(0xc, 64)) == 12);
assert(signed(zero_extend(0xc0, 64)) == 192);
assert(signed(zero_extend(0xc00fefff, 64)) == 3222269951);
assert(signed(zero_extend(0xd, 64)) == 13);
assert(signed(zero_extend(0xd0, 64)) == 208);
assert(signed(zero_extend(0xdddddddddddddddc, 64)) == -2459565876494606884);
assert(signed(zero_extend(0xe, 64)) == 14);
assert(signed(zero_extend(0xe0, 64)) == 224);
assert(signed(zero_extend(0xedcba9876543210e, 64)) == -1311768467463790322);
assert(signed(zero_extend(0xf, 64)) == 15);
assert(signed(zero_extend(0xf00, 64)) == 3840);
assert(signed(zero_extend(0xf000000000000000, 64)) == -1152921504606846976);
assert(signed(zero_extend(0xff, 64)) == 255);
assert(signed(zero_extend(0xfffe, 64)) == 65534);
assert(signed(zero_extend(0xffff, 64)) == 65535);
assert(signed(zero_extend(0xffff8000, 64)) == 4294934528);
assert(signed(zero_extend(0xffffc, 64)) == 1048572);
assert(signed(zero_extend(0xffffe000ffffe000, 64)) == -35180077129728);
assert(signed(zero_extend(0xfffffff, 64)) == 268435455);
assert(signed(zero_extend(0xfffffffe, 64)) == 4294967294);
assert(signed(zero_extend(0xfffffffe77665544, 64)) == -6586739388);
assert(signed(zero_extend(0xfffffffe7fffffff, 64)) == -6442450945);
assert(signed(zero_extend(0xfffffffe80000000, 64)) == -6442450944);
assert(signed(zero_extend(0xfffffffef89b3cde, 64)) == -4419011362);
assert(signed(zero_extend(0xfffffffefffffffe, 64)) == -4294967298);
assert(signed(zero_extend(0xfffffffeffffffff, 64)) == -4294967297);
assert(signed(zero_extend(0xffffffff, 64)) == 4294967295);
assert(signed(zero_extend(0xffffffff00000000, 64)) == -4294967296);
assert(signed(zero_extend(0xffffffff00000001, 64)) == -4294967295);
assert(signed(zero_extend(0xffffffff00007fff, 64)) == -4294934529);
assert(signed(zero_extend(0xffffffff3ff01000, 64)) == -3222269952);
assert(signed(zero_extend(0xffffffff5fffffff, 64)) == -2684354561);
assert(signed(zero_extend(0xffffffff6dcba985, 64)) == -2452903547);
assert(signed(zero_extend(0xffffffff6ffffffe, 64)) == -2415919106);
assert(signed(zero_extend(0xffffffff6fffffff, 64)) == -2415919105);
assert(signed(zero_extend(0xffffffff77665544, 64)) == -2291772092);
assert(signed(zero_extend(0xffffffff7ffefffc, 64)) == -2147549188);
assert(signed(zero_extend(0xffffffff7ffffffc, 64)) == -2147483652);
assert(signed(zero_extend(0xffffffff7ffffffd, 64)) == -2147483651);
assert(signed(zero_extend(0xffffffff7ffffffe, 64)) == -2147483650);
assert(signed(zero_extend(0xffffffff7fffffff, 64)) == -2147483649);
assert(signed(zero_extend(0xffffffff80000000, 64)) == -2147483648);
assert(signed(zero_extend(0xffffffff80000001, 64)) == -2147483647);
assert(signed(zero_extend(0xffffffff94837260, 64)) == -1803324832);
assert(signed(zero_extend(0xffffffffdfffffff, 64)) == -536870913);
assert(signed(zero_extend(0xffffffffed9fff7f, 64)) == -308281473);
assert(signed(zero_extend(0xffffffffedafff8f, 64)) == -307232881);
assert(signed(zero_extend(0xfffffffff0000000, 64)) == -268435456);
assert(signed(zero_extend(0xfffffffff7ffffff, 64)) == -134217729);
assert(signed(zero_extend(0xfffffffff89b3cde, 64)) == -124044066);
assert(signed(zero_extend(0xfffffffffcefffff, 64)) == -51380225);
assert(signed(zero_extend(0xfffffffffcf0ffff, 64)) == -51314689);
assert(signed(zero_extend(0xfffffffffcf1ffff, 64)) == -51249153);
assert(signed(zero_extend(0xfffffffffcf84000, 64)) == -50839552);
assert(signed(zero_extend(0xfffffffffcf94000, 64)) == -50774016);
assert(signed(zero_extend(0xfffffffffcfa4000, 64)) == -50708480);
assert(signed(zero_extend(0xfffffffffd0affff, 64)) == -49610753);
assert(signed(zero_extend(0xfffffffffd0bffff, 64)) == -49545217);
assert(signed(zero_extend(0xfffffffffd0fc000, 64)) == -49299456);
assert(signed(zero_extend(0xfffffffffd10c000, 64)) == -49233920);
assert(signed(zero_extend(0xfffffffffd10ffff, 64)) == -49217537);
assert(signed(zero_extend(0xfffffffffd11ffff, 64)) == -49152001);
assert(signed(zero_extend(0xfffffffffd130000, 64)) == -49086464);
assert(signed(zero_extend(0xfffffffffd13ffff, 64)) == -49020929);
assert(signed(zero_extend(0xfffffffffd140000, 64)) == -49020928);
assert(signed(zero_extend(0xfffffffffd14ffff, 64)) == -48955393);
assert(signed(zero_extend(0xfffffffffd170000, 64)) == -48824320);
assert(signed(zero_extend(0xfffffffffd18c000, 64)) == -48709632);
assert(signed(zero_extend(0xfffffffffebffe6b, 64)) == -20971925);
assert(signed(zero_extend(0xfffffffffebffefb, 64)) == -20971781);
assert(signed(zero_extend(0xfffffffffebfff3b, 64)) == -20971717);
assert(signed(zero_extend(0xffffffffffefffff, 64)) == -1048577);
assert(signed(zero_extend(0xfffffffffff, 64)) == 17592186044415);
assert(signed(zero_extend(0xfffffffffff70000, 64)) == -589824);
assert(signed(zero_extend(0xfffffffffff80000, 64)) == -524288);
assert(signed(zero_extend(0xfffffffffffc0000, 64)) == -262144);
assert(signed(zero_extend(0xfffffffffffd0000, 64)) == -196608);
assert(signed(zero_extend(0xfffffffffffdffff, 64)) == -131073);
assert(signed(zero_extend(0xfffffffffffe0000, 64)) == -131072);
assert(signed(zero_extend(0xfffffffffffe7ffe, 64)) == -98306);
assert(signed(zero_extend(0xfffffffffffe7fff, 64)) == -98305);
assert(signed(zero_extend(0xfffffffffffe8000, 64)) == -98304);
assert(signed(zero_extend(0xfffffffffffe8001, 64)) == -98303);
assert(signed(zero_extend(0xfffffffffffefffe, 64)) == -65538);
assert(signed(zero_extend(0xfffffffffffeffff, 64)) == -65537);
assert(signed(zero_extend(0xffffffffffff0000, 64)) == -65536);
assert(signed(zero_extend(0xffffffffffff0001, 64)) == -65535);
assert(signed(zero_extend(0xffffffffffff641f, 64)) == -39905);
assert(signed(zero_extend(0xffffffffffff7ffc, 64)) == -32772);
assert(signed(zero_extend(0xffffffffffff7ffd, 64)) == -32771);
assert(signed(zero_extend(0xffffffffffff7ffe, 64)) == -32770);
assert(signed(zero_extend(0xffffffffffff7fff, 64)) == -32769);
assert(signed(zero_extend(0xffffffffffff8000, 64)) == -32768);
assert(signed(zero_extend(0xffffffffffff8001, 64)) == -32767);
assert(signed(zero_extend(0xffffffffffffbeff, 64)) == -16641);
assert(signed(zero_extend(0xffffffffffffbf40, 64)) == -16576);
assert(signed(zero_extend(0xffffffffffffbf41, 64)) == -16575);
assert(signed(zero_extend(0xffffffffffffbfff, 64)) == -16385);
assert(signed(zero_extend(0xffffffffffffc22c, 64)) == -15828);
assert(signed(zero_extend(0xffffffffffffc24c, 64)) == -15796);
assert(signed(zero_extend(0xffffffffffffd220, 64)) == -11744);
assert(signed(zero_extend(0xffffffffffffd23c, 64)) == -11716);
assert(signed(zero_extend(0xffffffffffffe220, 64)) == -7648);
assert(signed(zero_extend(0xffffffffffffe23c, 64)) == -7620);
assert(signed(zero_extend(0xffffffffffffefff, 64)) == -4097);
assert(signed(zero_extend(0xfffffffffffffeef, 64)) == -273);
assert(signed(zero_extend(0xfffffffffffffeff, 64)) == -257);
assert(signed(zero_extend(0xffffffffffffff1f, 64)) == -225);
assert(signed(zero_extend(0xffffffffffffff2f, 64)) == -209);
assert(signed(zero_extend(0xffffffffffffff4f, 64)) == -177);
assert(signed(zero_extend(0xffffffffffffff6f, 64)) == -145);
assert(signed(zero_extend(0xffffffffffffff80, 64)) == -128);
assert(signed(zero_extend(0xffffffffffffff8f, 64)) == -113);
assert(signed(zero_extend(0xffffffffffffff9f, 64)) == -97);
assert(signed(zero_extend(0xffffffffffffffa0, 64)) == -96);
assert(signed(zero_extend(0xffffffffffffffaf, 64)) == -81);
assert(signed(zero_extend(0xffffffffffffffbf, 64)) == -65);
assert(signed(zero_extend(0xffffffffffffffc2, 64)) == -62);
assert(signed(zero_extend(0xffffffffffffffc4, 64)) == -60);
assert(signed(zero_extend(0xffffffffffffffc6, 64)) == -58);
assert(signed(zero_extend(0xffffffffffffffc8, 64)) == -56);
assert(signed(zero_extend(0xffffffffffffffca, 64)) == -54);
assert(signed(zero_extend(0xffffffffffffffcc, 64)) == -52);
assert(signed(zero_extend(0xffffffffffffffce, 64)) == -50);
assert(signed(zero_extend(0xffffffffffffffcf, 64)) == -49);
assert(signed(zero_extend(0xffffffffffffffd0, 64)) == -48);
assert(signed(zero_extend(0xffffffffffffffd2, 64)) == -46);
assert(signed(zero_extend(0xffffffffffffffd4, 64)) == -44);
assert(signed(zero_extend(0xffffffffffffffd6, 64)) == -42);
assert(signed(zero_extend(0xffffffffffffffd8, 64)) == -40);
assert(signed(zero_extend(0xffffffffffffffda, 64)) == -38);
assert(signed(zero_extend(0xffffffffffffffdb, 64)) == -37);
assert(signed(zero_extend(0xffffffffffffffdc, 64)) == -36);
assert(signed(zero_extend(0xffffffffffffffde, 64)) == -34);
assert(signed(zero_extend(0xffffffffffffffdf, 64)) == -33);
assert(signed(zero_extend(0xffffffffffffffe0, 64)) == -32);
assert(signed(zero_extend(0xffffffffffffffe2, 64)) == -30);
assert(signed(zero_extend(0xffffffffffffffe4, 64)) == -28);
assert(signed(zero_extend(0xffffffffffffffe6, 64)) == -26);
assert(signed(zero_extend(0xffffffffffffffe7, 64)) == -25);
assert(signed(zero_extend(0xffffffffffffffe8, 64)) == -24);
assert(signed(zero_extend(0xffffffffffffffea, 64)) == -22);
assert(signed(zero_extend(0xffffffffffffffec, 64)) == -20);
assert(signed(zero_extend(0xffffffffffffffee, 64)) == -18);
assert(signed(zero_extend(0xffffffffffffffef, 64)) == -17);
assert(signed(zero_extend(0xfffffffffffffff, 64)) == 1152921504606846975);
assert(signed(zero_extend(0xfffffffffffffff0, 64)) == -16);
assert(signed(zero_extend(0xfffffffffffffff1, 64)) == -15);
assert(signed(zero_extend(0xfffffffffffffff2, 64)) == -14);
assert(signed(zero_extend(0xfffffffffffffff4, 64)) == -12);
assert(signed(zero_extend(0xfffffffffffffff6, 64)) == -10);
assert(signed(zero_extend(0xfffffffffffffff7, 64)) == -9);
assert(signed(zero_extend(0xfffffffffffffff8, 64)) == -8);
assert(signed(zero_extend(0xfffffffffffffffa, 64)) == -6);
assert(signed(zero_extend(0xfffffffffffffffb, 64)) == -5);
assert(signed(zero_extend(0xfffffffffffffffc, 64)) == -4);
assert(signed(zero_extend(0xfffffffffffffffd, 64)) == -3);
assert(signed(zero_extend(0xfffffffffffffffe, 64)) == -2);
assert(signed(zero_extend(0xffffffffffffffff, 64)) == -1);
}
|