summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/builtins/add_bits.sail129
-rw-r--r--test/builtins/append.sail260
-rw-r--r--test/builtins/get_slice_int.sail468
-rw-r--r--test/builtins/mult_int.sail3038
-rw-r--r--test/builtins/not_bool.sail9
-rw-r--r--test/builtins/replicate_bits.sail93
-rwxr-xr-xtest/builtins/run_tests.sh92
-rw-r--r--test/builtins/set_slice_bits.sail683
-rw-r--r--test/builtins/shl_int.sail18
-rw-r--r--test/builtins/signed.sail1707
-rw-r--r--test/builtins/sub_int.sail249
-rw-r--r--test/builtins/unsigned1.sail3005
-rw-r--r--test/builtins/unsigned2.sail3001
-rw-r--r--test/builtins/unsigned3.sail3005
-rw-r--r--test/builtins/unsigned4.sail3001
-rw-r--r--test/builtins/unsigned5.sail2001
-rw-r--r--test/builtins/unsigned6.sail2575
-rw-r--r--test/builtins/vector_update_subrange.sail15
-rw-r--r--test/builtins/zeros.sail72
-rwxr-xr-xtest/run_tests.sh6
20 files changed, 23427 insertions, 0 deletions
diff --git a/test/builtins/add_bits.sail b/test/builtins/add_bits.sail
new file mode 100644
index 00000000..5b161e86
--- /dev/null
+++ b/test/builtins/add_bits.sail
@@ -0,0 +1,129 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(64^0x0 + 64^0x0 == 64^0x0);
+ assert(64^0x0 + 64^0x1 == 64^0x1);
+ assert(64^0x0 + 64^0x3000020 == 64^0x3000020);
+ assert(64^0x0 + 64^0x3000058 == 64^0x3000058);
+ assert(64^0x0 + 64^0x3000068 == 64^0x3000068);
+ assert(64^0x0 + 64^0x30000c8 == 64^0x30000c8);
+ assert(64^0x0 + 64^0x30002a0 == 64^0x30002a0);
+ assert(64^0x0 + 64^0x3006b10 == 64^0x3006b10);
+ assert(64^0x0 + 64^0x3808064 == 64^0x3808064);
+ assert(64^0x0 + 64^0x3808068 == 64^0x3808068);
+ assert(64^0x0 + 64^0x3808070 == 64^0x3808070);
+ assert(64^0x0 + 64^0x3808078 == 64^0x3808078);
+ assert(64^0x0 + 64^0x3808080 == 64^0x3808080);
+ assert(64^0x0 + 64^0x3808140 == 64^0x3808140);
+ assert(64^0x0 + 64^0x3808a04 == 64^0x3808a04);
+ assert(64^0x0 + 64^0x3808a08 == 64^0x3808a08);
+ assert(64^0x0 + 64^0x3808a10 == 64^0x3808a10);
+ assert(64^0x0 + 64^0x3808a18 == 64^0x3808a18);
+ assert(64^0x0 + 64^0x3808a20 == 64^0x3808a20);
+ assert(64^0x0 + 64^0x3808a78 == 64^0x3808a78);
+ assert(64^0x0 + 64^0x3808b78 == 64^0x3808b78);
+ assert(64^0x0 + 64^0x3808b80 == 64^0x3808b80);
+ assert(64^0x0 + 64^0x3815618 == 64^0x3815618);
+ assert(64^0x0 + 64^0x3815624 == 64^0x3815624);
+ assert(64^0x0 + 64^0x3815628 == 64^0x3815628);
+ assert(64^0x1 + 64^0x1 == 64^0x2);
+ assert(64^0x10 + 64^0x1 == 64^0x11);
+ assert(64^0x100 + 64^0x1 == 64^0x101);
+ assert(64^0x1000 + 64^0x1 == 64^0x1001);
+ assert(64^0x10000 + 64^0x1 == 64^0x10001);
+ assert(64^0x10000 + 64^0x12000 == 64^0x22000);
+ assert(64^0x10000 + 64^0x380a000 == 64^0x381a000);
+ assert(64^0x1000078 + 64^0x10 == 64^0x1000088);
+ assert(64^0x1000080 + 64^0x10 == 64^0x1000090);
+ assert(64^0x1000088 + 64^0x0 == 64^0x1000088);
+ assert(64^0x1000090 + 64^0x4 == 64^0x1000094);
+ assert(64^0x1000090 + 64^0xffffffffff023458 == 64^0x234e8);
+ assert(64^0x1000094 + 64^0xc == 64^0x10000a0);
+ assert(64^0x100009c + 64^0x10 == 64^0x10000ac);
+ assert(64^0x100009c + 64^0xc == 64^0x10000a8);
+ assert(64^0x10000a0 + 64^0x0 == 64^0x10000a0);
+ assert(64^0x10000a8 + 64^0x10 == 64^0x10000b8);
+ assert(64^0x10000b0 + 64^0x4 == 64^0x10000b4);
+ assert(64^0x10000b0 + 64^0xffffffffff021770 == 64^0x21820);
+ assert(64^0x10000b4 + 64^0xffffffffffffffec == 64^0x10000a0);
+ assert(64^0x10000bc + 64^0x4 == 64^0x10000c0);
+ assert(64^0x10000bc + 64^0xffffffffff021764 == 64^0x21820);
+ assert(64^0x10000c0 + 64^0xffffffffffffffe0 == 64^0x10000a0);
+ assert(64^0x10001 + 64^0x1 == 64^0x10002);
+ assert(64^0x10056 + 64^0x1 == 64^0x10057);
+ assert(64^0x10057 + 64^0x1 == 64^0x10058);
+ assert(64^0x10058 + 64^0x1 == 64^0x10059);
+ assert(64^0x10059 + 64^0x1 == 64^0x1005a);
+ assert(64^0x1005a + 64^0x1 == 64^0x1005b);
+ assert(64^0x1018c + 64^0x1 == 64^0x1018d);
+ assert(64^0x14001d0 + 64^0xfffffffffffffffc == 64^0x14001cc);
+ assert(64^0x14001dc + 64^0x8 == 64^0x14001e4);
+ assert(64^0x14001f0 + 64^0x4 == 64^0x14001f4);
+ assert(64^0x14001f0 + 64^0xfffffffffec217f0 == 64^0x219e0);
+ assert(64^0x158f + 64^0x1 == 64^0x1590);
+ assert(64^0x1bdf8 + 64^0xffffffffffffffe0 == 64^0x1bdd8);
+ assert(64^0x1be + 64^0x1 == 64^0x1bf);
+ assert(64^0x1c4cc + 64^0x4 == 64^0x1c4d0);
+ assert(64^0x1c4cc + 64^0xffffffffffff9f54 == 64^0x16420);
+ assert(64^0x1c4d + 64^0x1 == 64^0x1c4e);
+ assert(64^0x1e180 + 64^0xffffffffffff8190 == 64^0x16310);
+ assert(64^0x1e19 + 64^0x1 == 64^0x1e1a);
+ assert(64^0x1e194 + 64^0xffffffffffffe88c == 64^0x1ca20);
+ assert(64^0x21d8e + 64^0x1 == 64^0x21d8f);
+ assert(64^0x22050 + 64^0xffffffffffffc680 == 64^0x1e6d0);
+ assert(64^0x2206 + 64^0x1 == 64^0x2207);
+ assert(64^0x2209 + 64^0x1 == 64^0x220a);
+ assert(64^0x22090 + 64^0xffffffffffffd0a8 == 64^0x1f138);
+ assert(64^0x220a + 64^0x1 == 64^0x220b);
+ assert(64^0x220b + 64^0x1 == 64^0x220c);
+ assert(64^0x220e + 64^0x1 == 64^0x220f);
+ assert(64^0x220e0 + 64^0x10 == 64^0x220f0);
+ assert(64^0x220e8 + 64^0xffffffffffffd0a8 == 64^0x1f190);
+ assert(64^0x220f + 64^0x1 == 64^0x2210);
+ assert(64^0x221 + 64^0x1 == 64^0x222);
+ assert(64^0x2212 + 64^0x1 == 64^0x2213);
+ assert(64^0x2b87 + 64^0x1 == 64^0x2b88);
+ assert(64^0x2ccf + 64^0x1 == 64^0x2cd0);
+ assert(64^0x2e01828 + 64^0x8 == 64^0x2e01830);
+ assert(64^0x2f00ba0 + 64^0x8 == 64^0x2f00ba8);
+ assert(64^0x2f00ba8 + 64^0x8 == 64^0x2f00bb0);
+ assert(64^0x31d084c + 64^0x60 == 64^0x31d08ac);
+ assert(64^0x31d0858 + 64^0x4 == 64^0x31d085c);
+ assert(64^0x31d0858 + 64^0xfffffffffffffd1c == 64^0x31d0574);
+ assert(64^0x31d085c + 64^0x4 == 64^0x31d0860);
+ assert(64^0x31d085c + 64^0xfffffffffffffdf8 == 64^0x31d0654);
+ assert(64^0x31d0860 + 64^0x4 == 64^0x31d0864);
+ assert(64^0x31d0860 + 64^0xfffffffffffffd1c == 64^0x31d057c);
+ assert(64^0x31d0874 + 64^0xfffffffffffffdcc == 64^0x31d0640);
+ assert(64^0x31d08cc + 64^0x8c == 64^0x31d0958);
+ assert(64^0x31d08f0 + 64^0x4 == 64^0x31d08f4);
+ assert(64^0x31d08f4 + 64^0x8 == 64^0x31d08fc);
+ assert(64^0x31d0950 + 64^0x4 == 64^0x31d0954);
+ assert(64^0x31d095c + 64^0xffffffffffffff74 == 64^0x31d08d0);
+ assert(64^0x31d09d4 + 64^0x8 == 64^0x31d09dc);
+ assert(64^0x31d09f0 + 64^0x4 == 64^0x31d09f4);
+ assert(64^0x3800440 + 64^0x8 == 64^0x3800448);
+ assert(64^0x3800440 + 64^0xfffffffffffffff0 == 64^0x3800430);
+ assert(64^0x3800450 + 64^0x0 == 64^0x3800450);
+ assert(64^0x3800450 + 64^0x10 == 64^0x3800460);
+ assert(64^0x3800450 + 64^0x8 == 64^0x3800458);
+ assert(64^0x3800450 + 64^0xfffffffffffffff0 == 64^0x3800440);
+ assert(64^0x3800460 + 64^0xfffffffffffffff0 == 64^0x3800450);
+ assert(64^0x3801 + 64^0x1 == 64^0x3802);
+ assert(64^0x3802 + 64^0x1 == 64^0x3803);
+ assert(64^0x40a9 + 64^0x1 == 64^0x40aa);
+ assert(64^0x6216008 + 64^0x3 == 64^0x621600b);
+ assert(64^0x621600c + 64^0x0 == 64^0x621600c);
+ assert(64^0x6643 + 64^0x1 == 64^0x6644);
+ assert(64^0x8f + 64^0x1 == 64^0x90);
+ assert(64^0x8f0 + 64^0x1 == 64^0x8f1);
+ assert(64^0xc0c + 64^0x1 == 64^0xc0d);
+ assert(64^0xc0c0 + 64^0x1 == 64^0xc0c1);
+ assert(64^0xfffd + 64^0x1 == 64^0xfffe);
+ assert(64^0xfffe + 64^0x1 == 64^0xffff);
+ assert(64^0xffff + 64^0x1 == 64^0x10000);
+} \ No newline at end of file
diff --git a/test/builtins/append.sail b/test/builtins/append.sail
new file mode 100644
index 00000000..aae60da6
--- /dev/null
+++ b/test/builtins/append.sail
@@ -0,0 +1,260 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(0^0x0 @ 128^0x0 == 128^0x0);
+ assert(0^0x0 @ 64^0x10000cc == 64^0x10000cc);
+ assert(0^0x0 @ 64^0x1000254 == 64^0x1000254);
+ assert(0^0x0 @ 64^0x101070 == 64^0x101070);
+ assert(0^0x0 @ 64^0x10200c == 64^0x10200c);
+ assert(0^0x0 @ 64^0x1021ac == 64^0x1021ac);
+ assert(0^0x0 @ 64^0x1040d8 == 64^0x1040d8);
+ assert(0^0x0 @ 64^0x104550 == 64^0x104550);
+ assert(0^0x0 @ 64^0x104e10 == 64^0x104e10);
+ assert(0^0x0 @ 64^0x104fc0 == 64^0x104fc0);
+ assert(0^0x0 @ 64^0x105190 == 64^0x105190);
+ assert(0^0x0 @ 64^0x1054a0 == 64^0x1054a0);
+ assert(0^0x0 @ 64^0x1056d4 == 64^0x1056d4);
+ assert(0^0x0 @ 64^0x10ef8 == 64^0x10ef8);
+ assert(0^0x0 @ 64^0x125a8 == 64^0x125a8);
+ assert(0^0x0 @ 64^0x140000c == 64^0x140000c);
+ assert(0^0x0 @ 64^0x14001b0 == 64^0x14001b0);
+ assert(0^0x0 @ 64^0x1400354 == 64^0x1400354);
+ assert(0^0x0 @ 64^0x14004f8 == 64^0x14004f8);
+ assert(0^0x0 @ 64^0x14006b0 == 64^0x14006b0);
+ assert(0^0x0 @ 64^0x1400860 == 64^0x1400860);
+ assert(0^0x0 @ 64^0x14d80 == 64^0x14d80);
+ assert(0^0x0 @ 64^0x164a8 == 64^0x164a8);
+ assert(0^0x0 @ 64^0x1a778 == 64^0x1a778);
+ assert(0^0x0 @ 64^0x1a9b8 == 64^0x1a9b8);
+ assert(0^0x0 @ 64^0x1ad3c == 64^0x1ad3c);
+ assert(0^0x0 @ 64^0x1af4c == 64^0x1af4c);
+ assert(0^0x0 @ 64^0x1b0e4 == 64^0x1b0e4);
+ assert(0^0x0 @ 64^0x1b2a0 == 64^0x1b2a0);
+ assert(0^0x0 @ 64^0x1b874 == 64^0x1b874);
+ assert(0^0x0 @ 64^0x1baf0 == 64^0x1baf0);
+ assert(0^0x0 @ 64^0x1beb8 == 64^0x1beb8);
+ assert(0^0x0 @ 64^0x1c0c0 == 64^0x1c0c0);
+ assert(0^0x0 @ 64^0x1c464 == 64^0x1c464);
+ assert(0^0x0 @ 64^0x1c624 == 64^0x1c624);
+ assert(0^0x0 @ 64^0x1c7c0 == 64^0x1c7c0);
+ assert(0^0x0 @ 64^0x1c9b8 == 64^0x1c9b8);
+ assert(0^0x0 @ 64^0x1cb50 == 64^0x1cb50);
+ assert(0^0x0 @ 64^0x1ccf0 == 64^0x1ccf0);
+ assert(0^0x0 @ 64^0x1cef4 == 64^0x1cef4);
+ assert(0^0x0 @ 64^0x1d0c8 == 64^0x1d0c8);
+ assert(0^0x0 @ 64^0x1d66c == 64^0x1d66c);
+ assert(0^0x0 @ 64^0x1e118 == 64^0x1e118);
+ assert(0^0x0 @ 64^0x1e644 == 64^0x1e644);
+ assert(0^0x0 @ 64^0x1ec33 == 64^0x1ec33);
+ assert(0^0x0 @ 64^0x1f600 == 64^0x1f600);
+ assert(0^0x0 @ 64^0x215c8 == 64^0x215c8);
+ assert(0^0x0 @ 64^0x217c2 == 64^0x217c2);
+ assert(0^0x0 @ 64^0x2197c == 64^0x2197c);
+ assert(0^0x0 @ 64^0x21a97 == 64^0x21a97);
+ assert(0^0x0 @ 64^0x21cd8 == 64^0x21cd8);
+ assert(0^0x0 @ 64^0x21d6e == 64^0x21d6e);
+ assert(0^0x0 @ 64^0x22348 == 64^0x22348);
+ assert(0^0x0 @ 64^0x2311c == 64^0x2311c);
+ assert(0^0x0 @ 64^0x23590 == 64^0x23590);
+ assert(0^0x0 @ 64^0x2e == 64^0x2e);
+ assert(0^0x0 @ 64^0x2e00310 == 64^0x2e00310);
+ assert(0^0x0 @ 64^0x2e010f8 == 64^0x2e010f8);
+ assert(0^0x0 @ 64^0x2e01418 == 64^0x2e01418);
+ assert(0^0x0 @ 64^0x2e01738 == 64^0x2e01738);
+ assert(0^0x0 @ 64^0x2f00110 == 64^0x2f00110);
+ assert(0^0x0 @ 64^0x2f00430 == 64^0x2f00430);
+ assert(0^0x0 @ 64^0x2f00750 == 64^0x2f00750);
+ assert(0^0x0 @ 64^0x2f00a70 == 64^0x2f00a70);
+ assert(0^0x0 @ 64^0x2f00d90 == 64^0x2f00d90);
+ assert(0^0x0 @ 64^0x3008d8c == 64^0x3008d8c);
+ assert(0^0x0 @ 64^0x31d00c0 == 64^0x31d00c0);
+ assert(0^0x0 @ 64^0x31d0594 == 64^0x31d0594);
+ assert(0^0x0 @ 64^0x31d0760 == 64^0x31d0760);
+ assert(0^0x0 @ 64^0x31d095c == 64^0x31d095c);
+ assert(0^0x0 @ 64^0x31d0af8 == 64^0x31d0af8);
+ assert(0^0x0 @ 64^0x31d0cc8 == 64^0x31d0cc8);
+ assert(0^0x0 @ 64^0x31d0e88 == 64^0x31d0e88);
+ assert(0^0x0 @ 64^0x31d11a4 == 64^0x31d11a4);
+ assert(0^0x0 @ 64^0x31d13e8 == 64^0x31d13e8);
+ assert(0^0x0 @ 64^0x31d1708 == 64^0x31d1708);
+ assert(0^0x0 @ 64^0x31d1c4c == 64^0x31d1c4c);
+ assert(0^0x0 @ 64^0x3808068 == 64^0x3808068);
+ assert(0^0x0 @ 64^0x3819d98 == 64^0x3819d98);
+ assert(0^0x0 @ 64^0x381b2f8 == 64^0x381b2f8);
+ assert(0^0x0 @ 64^0x600003c0 == 64^0x600003c0);
+ assert(0^0x0 @ 64^0x7c == 64^0x7c);
+ assert(0^0x0 @ 64^0x9 == 64^0x9);
+ assert(0^0x0 @ 64^0xc00fefff == 64^0xc00fefff);
+ assert(1^0x0 @ 5^0x1e == 6^0x1e);
+ assert(10^0x202 @ 1^0x0 == 11^0x404);
+ assert(14^0x0 @ 64^0x5c003 == 78^0x5c003);
+ assert(19^0x33 @ 2^0x0 == 21^0xcc);
+ assert(19^0x9f @ 2^0x0 == 21^0x27c);
+ assert(24^0x0 @ 32^0x8 == 56^0x8);
+ assert(26^0x1 @ 2^0x0 == 28^0x4);
+ assert(26^0x3b08414 @ 2^0x0 == 28^0xec21050);
+ assert(26^0x3ffdc6b @ 2^0x0 == 28^0xfff71ac);
+ assert(26^0x3ffe79d @ 2^0x0 == 28^0xfff9e74);
+ assert(26^0x3ffee69 @ 2^0x0 == 28^0xfffb9a4);
+ assert(26^0x56d @ 2^0x0 == 28^0x15b4);
+ assert(31^0x0 @ 33^0x37fb000 == 64^0x37fb000);
+ assert(32^0x0 @ 32^0x4b == 64^0x4b);
+ assert(32^0x0 @ 32^0xffffff80 == 64^0xffffff80);
+ assert(32^0x5 @ 8^0x0 == 40^0x500);
+ assert(34^0x1cd @ 14^0x754 == 48^0x734754);
+ assert(34^0xc44 @ 14^0x0 == 48^0x3110000);
+ assert(36^0x0 @ 28^0x6f8 == 64^0x6f8);
+ assert(36^0xfffffffff @ 28^0xec2138c == 64^0xfffffffffec2138c);
+ assert(36^0xfffffffff @ 28^0xfff8a40 == 64^0xffffffffffff8a40);
+ assert(36^0xfffffffff @ 28^0xfffa3b8 == 64^0xffffffffffffa3b8);
+ assert(36^0xfffffffff @ 28^0xfffee18 == 64^0xffffffffffffee18);
+ assert(38^0x100 @ 14^0xb == 52^0x40000b);
+ assert(38^0x182 @ 14^0x38 == 52^0x608038);
+ assert(38^0x182 @ 14^0xe0 == 52^0x6080e0);
+ assert(38^0x1ce @ 14^0x21c == 52^0x73821c);
+ assert(38^0x1ce @ 14^0x3a0 == 52^0x7383a0);
+ assert(38^0x1ce @ 14^0x530 == 52^0x738530);
+ assert(38^0x1ce @ 14^0x6c4 == 52^0x7386c4);
+ assert(38^0x1ce @ 14^0x85c == 52^0x73885c);
+ assert(38^0x1d1 @ 14^0x454 == 52^0x744454);
+ assert(38^0x55a @ 14^0x11b0 == 52^0x15691b0);
+ assert(38^0x55a @ 14^0x14a0 == 52^0x15694a0);
+ assert(38^0x55a @ 14^0x1790 == 52^0x1569790);
+ assert(38^0x55a @ 14^0x350 == 52^0x1568350);
+ assert(38^0x59a @ 14^0x168 == 52^0x1668168);
+ assert(38^0x59a @ 14^0x458 == 52^0x1668458);
+ assert(38^0x59a @ 14^0x748 == 52^0x1668748);
+ assert(38^0x59a @ 14^0xa38 == 52^0x1668a38);
+ assert(38^0x59a @ 14^0xd28 == 52^0x1668d28);
+ assert(38^0x602 @ 14^0xe38 == 52^0x1808e38);
+ assert(38^0x803 @ 14^0x18f8 == 52^0x200d8f8);
+ assert(38^0x806 @ 14^0x2ee0 == 52^0x201aee0);
+ assert(38^0x84 @ 14^0xecc == 52^0x210ecc);
+ assert(38^0x85 @ 14^0x24dc == 52^0x2164dc);
+ assert(38^0x85 @ 14^0xdac == 52^0x214dac);
+ assert(38^0x86 @ 14^0x28f8 == 52^0x21a8f8);
+ assert(38^0x86 @ 14^0x2c7c == 52^0x21ac7c);
+ assert(38^0x86 @ 14^0x2e0c == 52^0x21ae0c);
+ assert(38^0x86 @ 14^0x301c == 52^0x21b01c);
+ assert(38^0x86 @ 14^0x31b8 == 52^0x21b1b8);
+ assert(38^0x86 @ 14^0x3768 == 52^0x21b768);
+ assert(38^0x86 @ 14^0x398c == 52^0x21b98c);
+ assert(38^0x86 @ 14^0x3df0 == 52^0x21bdf0);
+ assert(38^0x87 @ 14^0x100 == 52^0x21c100);
+ assert(38^0x87 @ 14^0x14d8 == 52^0x21d4d8);
+ assert(38^0x87 @ 14^0x20a4 == 52^0x21e0a4);
+ assert(38^0x87 @ 14^0x2142 == 52^0x21e142);
+ assert(38^0x87 @ 14^0x2660 == 52^0x21e660);
+ assert(38^0x87 @ 14^0x2c38 == 52^0x21ec38);
+ assert(38^0x87 @ 14^0x3f0 == 52^0x21c3f0);
+ assert(38^0x87 @ 14^0x570 == 52^0x21c570);
+ assert(38^0x87 @ 14^0x714 == 52^0x21c714);
+ assert(38^0x87 @ 14^0x8ec == 52^0x21c8ec);
+ assert(38^0x87 @ 14^0xa68 == 52^0x21ca68);
+ assert(38^0x87 @ 14^0xbe4 == 52^0x21cbe4);
+ assert(38^0x87 @ 14^0xdb0 == 52^0x21cdb0);
+ assert(38^0x87 @ 14^0xf58 == 52^0x21cf58);
+ assert(38^0x88 @ 14^0x1568 == 52^0x221568);
+ assert(38^0x88 @ 14^0x17ae == 52^0x2217ae);
+ assert(38^0x88 @ 14^0x1964 == 52^0x221964);
+ assert(38^0x88 @ 14^0x1a64 == 52^0x221a64);
+ assert(38^0x88 @ 14^0x1c90 == 52^0x221c90);
+ assert(38^0x88 @ 14^0x1d58 == 52^0x221d58);
+ assert(38^0x88 @ 14^0x208c == 52^0x22208c);
+ assert(38^0x88 @ 14^0x3100 == 52^0x223100);
+ assert(38^0x88 @ 14^0x3574 == 52^0x223574);
+ assert(38^0xb11 @ 14^0x2008 == 52^0x2c46008);
+ assert(38^0xb8d @ 14^0x70 == 52^0x2e34070);
+ assert(4^0x0 @ 48^0x10423c == 52^0x10423c);
+ assert(4^0x0 @ 48^0x608094 == 52^0x608094);
+ assert(4^0x0 @ 52^0x10111c == 56^0x10111c);
+ assert(4^0x0 @ 52^0x102098 == 56^0x102098);
+ assert(4^0x0 @ 52^0x10400c == 56^0x10400c);
+ assert(4^0x0 @ 52^0x1041ac == 56^0x1041ac);
+ assert(4^0x0 @ 52^0x104728 == 56^0x104728);
+ assert(4^0x0 @ 52^0x104edc == 56^0x104edc);
+ assert(4^0x0 @ 52^0x1050ac == 56^0x1050ac);
+ assert(4^0x0 @ 52^0x105270 == 56^0x105270);
+ assert(4^0x0 @ 52^0x10558c == 56^0x10558c);
+ assert(4^0x0 @ 52^0x1057e8 == 56^0x1057e8);
+ assert(4^0x0 @ 52^0x1568200 == 56^0x1568200);
+ assert(4^0x0 @ 52^0x1568520 == 56^0x1568520);
+ assert(4^0x0 @ 52^0x1569310 == 56^0x1569310);
+ assert(4^0x0 @ 52^0x1569630 == 56^0x1569630);
+ assert(4^0x0 @ 52^0x1668090 == 56^0x1668090);
+ assert(4^0x0 @ 52^0x16683b0 == 56^0x16683b0);
+ assert(4^0x0 @ 52^0x16686d0 == 56^0x16686d0);
+ assert(4^0x0 @ 52^0x16689f0 == 56^0x16689f0);
+ assert(4^0x0 @ 52^0x1668d10 == 56^0x1668d10);
+ assert(4^0x0 @ 52^0x1808e28 == 56^0x1808e28);
+ assert(4^0x0 @ 52^0x200d8e0 == 56^0x200d8e0);
+ assert(4^0x0 @ 52^0x201acb8 == 56^0x201acb8);
+ assert(4^0x0 @ 52^0x210f64 == 56^0x210f64);
+ assert(4^0x0 @ 52^0x214db0 == 56^0x214db0);
+ assert(4^0x0 @ 52^0x2165e4 == 56^0x2165e4);
+ assert(4^0x0 @ 52^0x21a8d4 == 56^0x21a8d4);
+ assert(4^0x0 @ 52^0x21aa84 == 56^0x21aa84);
+ assert(4^0x0 @ 52^0x21ade8 == 56^0x21ade8);
+ assert(4^0x0 @ 52^0x21aff8 == 56^0x21aff8);
+ assert(4^0x0 @ 52^0x21b194 == 56^0x21b194);
+ assert(4^0x0 @ 52^0x21b744 == 56^0x21b744);
+ assert(4^0x0 @ 52^0x21b968 == 56^0x21b968);
+ assert(4^0x0 @ 52^0x21bdcc == 56^0x21bdcc);
+ assert(4^0x0 @ 52^0x21bfe4 == 56^0x21bfe4);
+ assert(4^0x0 @ 52^0x21c18c == 56^0x21c18c);
+ assert(4^0x0 @ 52^0x21c524 == 56^0x21c524);
+ assert(4^0x0 @ 52^0x21c6d8 == 56^0x21c6d8);
+ assert(4^0x0 @ 52^0x21c8dc == 56^0x21c8dc);
+ assert(4^0x0 @ 52^0x21ca70 == 56^0x21ca70);
+ assert(4^0x0 @ 52^0x21cc04 == 56^0x21cc04);
+ assert(4^0x0 @ 52^0x21cdf0 == 56^0x21cdf0);
+ assert(4^0x0 @ 52^0x21cfb8 == 56^0x21cfb8);
+ assert(4^0x0 @ 52^0x21d4e4 == 56^0x21d4e4);
+ assert(4^0x0 @ 52^0x21e0c8 == 56^0x21e0c8);
+ assert(4^0x0 @ 52^0x21e16c == 56^0x21e16c);
+ assert(4^0x0 @ 52^0x21e704 == 56^0x21e704);
+ assert(4^0x0 @ 52^0x21f1a4 == 56^0x21f1a4);
+ assert(4^0x0 @ 52^0x221528 == 56^0x221528);
+ assert(4^0x0 @ 52^0x22176c == 56^0x22176c);
+ assert(4^0x0 @ 52^0x221940 == 56^0x221940);
+ assert(4^0x0 @ 52^0x221a40 == 56^0x221a40);
+ assert(4^0x0 @ 52^0x221c6c == 56^0x221c6c);
+ assert(4^0x0 @ 52^0x221d4d == 56^0x221d4d);
+ assert(4^0x0 @ 52^0x221fc4 == 56^0x221fc4);
+ assert(4^0x0 @ 52^0x2230d4 == 56^0x2230d4);
+ assert(4^0x0 @ 52^0x223548 == 56^0x223548);
+ assert(4^0x0 @ 52^0x22364f == 56^0x22364f);
+ assert(4^0x0 @ 52^0x2e34018 == 56^0x2e34018);
+ assert(4^0x0 @ 52^0x2e50078 == 56^0x2e50078);
+ assert(4^0x0 @ 52^0x31d0144 == 56^0x31d0144);
+ assert(4^0x0 @ 52^0x31d05f8 == 56^0x31d05f8);
+ assert(4^0x0 @ 52^0x31d0808 == 56^0x31d0808);
+ assert(4^0x0 @ 52^0x31d09c0 == 56^0x31d09c0);
+ assert(4^0x0 @ 52^0x31d0b7c == 56^0x31d0b7c);
+ assert(4^0x0 @ 52^0x31d0d38 == 56^0x31d0d38);
+ assert(4^0x0 @ 52^0x31d0fb0 == 56^0x31d0fb0);
+ assert(4^0x0 @ 52^0x31d1224 == 56^0x31d1224);
+ assert(4^0x0 @ 52^0x31d14b0 == 56^0x31d14b0);
+ assert(4^0x0 @ 52^0x31d1818 == 56^0x31d1818);
+ assert(4^0x0 @ 52^0x400003 == 56^0x400003);
+ assert(4^0x0 @ 52^0x608118 == 56^0x608118);
+ assert(4^0x0 @ 52^0x60849c == 56^0x60849c);
+ assert(4^0x0 @ 52^0x738018 == 56^0x738018);
+ assert(4^0x0 @ 52^0x7381cc == 56^0x7381cc);
+ assert(4^0x0 @ 52^0x738370 == 56^0x738370);
+ assert(4^0x0 @ 52^0x73851c == 56^0x73851c);
+ assert(4^0x0 @ 52^0x7386cc == 56^0x7386cc);
+ assert(4^0x0 @ 52^0x73887c == 56^0x73887c);
+ assert(4^0xc @ 5^0x1 == 9^0x181);
+ assert(43^0x0 @ 21^0x324 == 64^0x324);
+ assert(43^0x7ffffffffff @ 21^0x1fffe0 == 64^0xffffffffffffffe0);
+ assert(48^0x31d183 @ 4^0x0 == 52^0x31d1830);
+ assert(52^0x0 @ 12^0xa == 64^0xa);
+ assert(64^0x2 @ 5^0x0 == 69^0x40);
+ assert(64^0x381a7d8 @ 0^0x0 == 64^0x381a7d8);
+ assert(9^0x182 @ 1^0x0 == 10^0x304);
+}
diff --git a/test/builtins/get_slice_int.sail b/test/builtins/get_slice_int.sail
new file mode 100644
index 00000000..70894155
--- /dev/null
+++ b/test/builtins/get_slice_int.sail
@@ -0,0 +1,468 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(get_slice_int(1, -10, 6) == 1^0x1, "get_slice_int(1, -10, 6) == 1^0x1");
+ assert(get_slice_int(1, -1, 6) == 1^0x1, "get_slice_int(1, -1, 6) == 1^0x1");
+ assert(get_slice_int(1, -11, 6) == 1^0x1, "get_slice_int(1, -11, 6) == 1^0x1");
+ assert(get_slice_int(1, -12, 6) == 1^0x1, "get_slice_int(1, -12, 6) == 1^0x1");
+ assert(get_slice_int(1, -14, 6) == 1^0x1, "get_slice_int(1, -14, 6) == 1^0x1");
+ assert(get_slice_int(1, -15, 6) == 1^0x1, "get_slice_int(1, -15, 6) == 1^0x1");
+ assert(get_slice_int(1, -16, 6) == 1^0x1, "get_slice_int(1, -16, 6) == 1^0x1");
+ assert(get_slice_int(1, -17, 6) == 1^0x1, "get_slice_int(1, -17, 6) == 1^0x1");
+ assert(get_slice_int(1, -19, 6) == 1^0x1, "get_slice_int(1, -19, 6) == 1^0x1");
+ assert(get_slice_int(1, -2, 6) == 1^0x1, "get_slice_int(1, -2, 6) == 1^0x1");
+ assert(get_slice_int(1, -20, 6) == 1^0x1, "get_slice_int(1, -20, 6) == 1^0x1");
+ assert(get_slice_int(1, -23, 6) == 1^0x1, "get_slice_int(1, -23, 6) == 1^0x1");
+ assert(get_slice_int(1, -27, 6) == 1^0x1, "get_slice_int(1, -27, 6) == 1^0x1");
+ assert(get_slice_int(1, -29, 6) == 1^0x1, "get_slice_int(1, -29, 6) == 1^0x1");
+ assert(get_slice_int(1, -3, 6) == 1^0x1, "get_slice_int(1, -3, 6) == 1^0x1");
+ assert(get_slice_int(1, -30, 6) == 1^0x1, "get_slice_int(1, -30, 6) == 1^0x1");
+ assert(get_slice_int(1, -32, 6) == 1^0x1, "get_slice_int(1, -32, 6) == 1^0x1");
+ assert(get_slice_int(1, -33, 6) == 1^0x1, "get_slice_int(1, -33, 6) == 1^0x1");
+ assert(get_slice_int(1, -38, 6) == 1^0x1, "get_slice_int(1, -38, 6) == 1^0x1");
+ assert(get_slice_int(1, -4, 6) == 1^0x1, "get_slice_int(1, -4, 6) == 1^0x1");
+ assert(get_slice_int(1, -41, 6) == 1^0x1, "get_slice_int(1, -41, 6) == 1^0x1");
+ assert(get_slice_int(1, -45, 6) == 1^0x1, "get_slice_int(1, -45, 6) == 1^0x1");
+ assert(get_slice_int(1, -46, 6) == 1^0x1, "get_slice_int(1, -46, 6) == 1^0x1");
+ assert(get_slice_int(1, -49, 6) == 1^0x1, "get_slice_int(1, -49, 6) == 1^0x1");
+ assert(get_slice_int(1, -5, 6) == 1^0x1, "get_slice_int(1, -5, 6) == 1^0x1");
+ assert(get_slice_int(1, -50, 6) == 1^0x1, "get_slice_int(1, -50, 6) == 1^0x1");
+ assert(get_slice_int(1, -52, 6) == 1^0x1, "get_slice_int(1, -52, 6) == 1^0x1");
+ assert(get_slice_int(1, -56, 6) == 1^0x1, "get_slice_int(1, -56, 6) == 1^0x1");
+ assert(get_slice_int(1, -59, 6) == 1^0x1, "get_slice_int(1, -59, 6) == 1^0x1");
+ assert(get_slice_int(1, -6, 6) == 1^0x1, "get_slice_int(1, -6, 6) == 1^0x1");
+ assert(get_slice_int(1, -7, 6) == 1^0x1, "get_slice_int(1, -7, 6) == 1^0x1");
+ assert(get_slice_int(1, -8, 6) == 1^0x1, "get_slice_int(1, -8, 6) == 1^0x1");
+ assert(get_slice_int(1, -9, 6) == 1^0x1, "get_slice_int(1, -9, 6) == 1^0x1");
+ assert(get_slice_int(1, 0, 6) == 1^0x0, "get_slice_int(1, 0, 6) == 1^0x0");
+ assert(get_slice_int(1, 1, 0) == 1^0x1, "get_slice_int(1, 1, 0) == 1^0x1");
+ assert(get_slice_int(1, 1, 6) == 1^0x0, "get_slice_int(1, 1, 6) == 1^0x0");
+ assert(get_slice_int(1, 10, 6) == 1^0x0, "get_slice_int(1, 10, 6) == 1^0x0");
+ assert(get_slice_int(1, 12, 6) == 1^0x0, "get_slice_int(1, 12, 6) == 1^0x0");
+ assert(get_slice_int(1, 13, 6) == 1^0x0, "get_slice_int(1, 13, 6) == 1^0x0");
+ assert(get_slice_int(1, 14, 6) == 1^0x0, "get_slice_int(1, 14, 6) == 1^0x0");
+ assert(get_slice_int(1, 15, 6) == 1^0x0, "get_slice_int(1, 15, 6) == 1^0x0");
+ assert(get_slice_int(1, 19, 6) == 1^0x0, "get_slice_int(1, 19, 6) == 1^0x0");
+ assert(get_slice_int(1, 2, 6) == 1^0x0, "get_slice_int(1, 2, 6) == 1^0x0");
+ assert(get_slice_int(1, 20, 6) == 1^0x0, "get_slice_int(1, 20, 6) == 1^0x0");
+ assert(get_slice_int(1, 23, 6) == 1^0x0, "get_slice_int(1, 23, 6) == 1^0x0");
+ assert(get_slice_int(1, 24, 6) == 1^0x0, "get_slice_int(1, 24, 6) == 1^0x0");
+ assert(get_slice_int(1, 26, 6) == 1^0x0, "get_slice_int(1, 26, 6) == 1^0x0");
+ assert(get_slice_int(1, 3, 6) == 1^0x0, "get_slice_int(1, 3, 6) == 1^0x0");
+ assert(get_slice_int(1, 31, 6) == 1^0x0, "get_slice_int(1, 31, 6) == 1^0x0");
+ assert(get_slice_int(1, 35, 6) == 1^0x0, "get_slice_int(1, 35, 6) == 1^0x0");
+ assert(get_slice_int(1, 4, 6) == 1^0x0, "get_slice_int(1, 4, 6) == 1^0x0");
+ assert(get_slice_int(1, 44, 6) == 1^0x0, "get_slice_int(1, 44, 6) == 1^0x0");
+ assert(get_slice_int(1, 45, 6) == 1^0x0, "get_slice_int(1, 45, 6) == 1^0x0");
+ assert(get_slice_int(1, 46, 6) == 1^0x0, "get_slice_int(1, 46, 6) == 1^0x0");
+ assert(get_slice_int(1, 47, 6) == 1^0x0, "get_slice_int(1, 47, 6) == 1^0x0");
+ assert(get_slice_int(1, 49, 6) == 1^0x0, "get_slice_int(1, 49, 6) == 1^0x0");
+ assert(get_slice_int(1, 5, 6) == 1^0x0, "get_slice_int(1, 5, 6) == 1^0x0");
+ assert(get_slice_int(1, 6, 6) == 1^0x0, "get_slice_int(1, 6, 6) == 1^0x0");
+ assert(get_slice_int(1, 7, 6) == 1^0x0, "get_slice_int(1, 7, 6) == 1^0x0");
+ assert(get_slice_int(11, 1024, 0) == 11^0x400, "get_slice_int(11, 1024, 0) == 11^0x400");
+ assert(get_slice_int(2, 1, 0) == 2^0x1, "get_slice_int(2, 1, 0) == 2^0x1");
+ assert(get_slice_int(2, 3, 0) == 2^0x3, "get_slice_int(2, 3, 0) == 2^0x3");
+ assert(get_slice_int(3, 0, 0) == 3^0x0, "get_slice_int(3, 0, 0) == 3^0x0");
+ assert(get_slice_int(3, 1, 0) == 3^0x1, "get_slice_int(3, 1, 0) == 3^0x1");
+ assert(get_slice_int(3, 2, 0) == 3^0x2, "get_slice_int(3, 2, 0) == 3^0x2");
+ assert(get_slice_int(3, 3, 0) == 3^0x3, "get_slice_int(3, 3, 0) == 3^0x3");
+ assert(get_slice_int(3, 4, 0) == 3^0x4, "get_slice_int(3, 4, 0) == 3^0x4");
+ assert(get_slice_int(3, 5, 0) == 3^0x5, "get_slice_int(3, 5, 0) == 3^0x5");
+ assert(get_slice_int(3, 6, 0) == 3^0x6, "get_slice_int(3, 6, 0) == 3^0x6");
+ assert(get_slice_int(3, 7, 0) == 3^0x7, "get_slice_int(3, 7, 0) == 3^0x7");
+ assert(get_slice_int(32, 0, 0) == 32^0x0, "get_slice_int(32, 0, 0) == 32^0x0");
+ assert(get_slice_int(32, 1, 0) == 32^0x1, "get_slice_int(32, 1, 0) == 32^0x1");
+ assert(get_slice_int(32, 10, 0) == 32^0xa, "get_slice_int(32, 10, 0) == 32^0xa");
+ assert(get_slice_int(32, 1056964608, 0) == 32^0x3f000000, "get_slice_int(32, 1056964608, 0) == 32^0x3f000000");
+ assert(get_slice_int(32, 1057423360, 0) == 32^0x3f070000, "get_slice_int(32, 1057423360, 0) == 32^0x3f070000");
+ assert(get_slice_int(32, 1073741824, 0) == 32^0x40000000, "get_slice_int(32, 1073741824, 0) == 32^0x40000000");
+ assert(get_slice_int(32, 11, 0) == 32^0xb, "get_slice_int(32, 11, 0) == 32^0xb");
+ assert(get_slice_int(32, 12, 0) == 32^0xc, "get_slice_int(32, 12, 0) == 32^0xc");
+ assert(get_slice_int(32, 13, 0) == 32^0xd, "get_slice_int(32, 13, 0) == 32^0xd");
+ assert(get_slice_int(32, 1342177280, 0) == 32^0x50000000, "get_slice_int(32, 1342177280, 0) == 32^0x50000000");
+ assert(get_slice_int(32, 14, 0) == 32^0xe, "get_slice_int(32, 14, 0) == 32^0xe");
+ assert(get_slice_int(32, 15, 0) == 32^0xf, "get_slice_int(32, 15, 0) == 32^0xf");
+ assert(get_slice_int(32, 16, 0) == 32^0x10, "get_slice_int(32, 16, 0) == 32^0x10");
+ assert(get_slice_int(32, 17, 0) == 32^0x11, "get_slice_int(32, 17, 0) == 32^0x11");
+ assert(get_slice_int(32, 18, 0) == 32^0x12, "get_slice_int(32, 18, 0) == 32^0x12");
+ assert(get_slice_int(32, 19, 0) == 32^0x13, "get_slice_int(32, 19, 0) == 32^0x13");
+ assert(get_slice_int(32, 2, 0) == 32^0x2, "get_slice_int(32, 2, 0) == 32^0x2");
+ assert(get_slice_int(32, 20, 0) == 32^0x14, "get_slice_int(32, 20, 0) == 32^0x14");
+ assert(get_slice_int(32, 21, 0) == 32^0x15, "get_slice_int(32, 21, 0) == 32^0x15");
+ assert(get_slice_int(32, 22, 0) == 32^0x16, "get_slice_int(32, 22, 0) == 32^0x16");
+ assert(get_slice_int(32, 23, 0) == 32^0x17, "get_slice_int(32, 23, 0) == 32^0x17");
+ assert(get_slice_int(32, 24, 0) == 32^0x18, "get_slice_int(32, 24, 0) == 32^0x18");
+ assert(get_slice_int(32, 25, 0) == 32^0x19, "get_slice_int(32, 25, 0) == 32^0x19");
+ assert(get_slice_int(32, 255, 0) == 32^0xff, "get_slice_int(32, 255, 0) == 32^0xff");
+ assert(get_slice_int(32, 26, 0) == 32^0x1a, "get_slice_int(32, 26, 0) == 32^0x1a");
+ assert(get_slice_int(32, 267386880, 0) == 32^0xff00000, "get_slice_int(32, 267386880, 0) == 32^0xff00000");
+ assert(get_slice_int(32, 27, 0) == 32^0x1b, "get_slice_int(32, 27, 0) == 32^0x1b");
+ assert(get_slice_int(32, 28, 0) == 32^0x1c, "get_slice_int(32, 28, 0) == 32^0x1c");
+ assert(get_slice_int(32, 29, 0) == 32^0x1d, "get_slice_int(32, 29, 0) == 32^0x1d");
+ assert(get_slice_int(32, 3, 0) == 32^0x3, "get_slice_int(32, 3, 0) == 32^0x3");
+ assert(get_slice_int(32, 30, 0) == 32^0x1e, "get_slice_int(32, 30, 0) == 32^0x1e");
+ assert(get_slice_int(32, 31, 0) == 32^0x1f, "get_slice_int(32, 31, 0) == 32^0x1f");
+ assert(get_slice_int(32, 35, 0) == 32^0x23, "get_slice_int(32, 35, 0) == 32^0x23");
+ assert(get_slice_int(32, 4, 0) == 32^0x4, "get_slice_int(32, 4, 0) == 32^0x4");
+ assert(get_slice_int(32, 4027580415, 0) == 32^0xf00fffff, "get_slice_int(32, 4027580415, 0) == 32^0xf00fffff");
+ assert(get_slice_int(32, 4294967256, 0) == 32^0xffffffd8, "get_slice_int(32, 4294967256, 0) == 32^0xffffffd8");
+ assert(get_slice_int(32, 4294967264, 0) == 32^0xffffffe0, "get_slice_int(32, 4294967264, 0) == 32^0xffffffe0");
+ assert(get_slice_int(32, 4294967268, 0) == 32^0xffffffe4, "get_slice_int(32, 4294967268, 0) == 32^0xffffffe4");
+ assert(get_slice_int(32, 4294967269, 0) == 32^0xffffffe5, "get_slice_int(32, 4294967269, 0) == 32^0xffffffe5");
+ assert(get_slice_int(32, 4294967273, 0) == 32^0xffffffe9, "get_slice_int(32, 4294967273, 0) == 32^0xffffffe9");
+ assert(get_slice_int(32, 4294967276, 0) == 32^0xffffffec, "get_slice_int(32, 4294967276, 0) == 32^0xffffffec");
+ assert(get_slice_int(32, 4294967277, 0) == 32^0xffffffed, "get_slice_int(32, 4294967277, 0) == 32^0xffffffed");
+ assert(get_slice_int(32, 4294967278, 0) == 32^0xffffffee, "get_slice_int(32, 4294967278, 0) == 32^0xffffffee");
+ assert(get_slice_int(32, 4294967279, 0) == 32^0xffffffef, "get_slice_int(32, 4294967279, 0) == 32^0xffffffef");
+ assert(get_slice_int(32, 4294967280, 0) == 32^0xfffffff0, "get_slice_int(32, 4294967280, 0) == 32^0xfffffff0");
+ assert(get_slice_int(32, 4294967281, 0) == 32^0xfffffff1, "get_slice_int(32, 4294967281, 0) == 32^0xfffffff1");
+ assert(get_slice_int(32, 4294967282, 0) == 32^0xfffffff2, "get_slice_int(32, 4294967282, 0) == 32^0xfffffff2");
+ assert(get_slice_int(32, 4294967283, 0) == 32^0xfffffff3, "get_slice_int(32, 4294967283, 0) == 32^0xfffffff3");
+ assert(get_slice_int(32, 4294967284, 0) == 32^0xfffffff4, "get_slice_int(32, 4294967284, 0) == 32^0xfffffff4");
+ assert(get_slice_int(32, 4294967285, 0) == 32^0xfffffff5, "get_slice_int(32, 4294967285, 0) == 32^0xfffffff5");
+ assert(get_slice_int(32, 4294967286, 0) == 32^0xfffffff6, "get_slice_int(32, 4294967286, 0) == 32^0xfffffff6");
+ assert(get_slice_int(32, 4294967287, 0) == 32^0xfffffff7, "get_slice_int(32, 4294967287, 0) == 32^0xfffffff7");
+ assert(get_slice_int(32, 4294967288, 0) == 32^0xfffffff8, "get_slice_int(32, 4294967288, 0) == 32^0xfffffff8");
+ assert(get_slice_int(32, 4294967289, 0) == 32^0xfffffff9, "get_slice_int(32, 4294967289, 0) == 32^0xfffffff9");
+ assert(get_slice_int(32, 4294967290, 0) == 32^0xfffffffa, "get_slice_int(32, 4294967290, 0) == 32^0xfffffffa");
+ assert(get_slice_int(32, 4294967291, 0) == 32^0xfffffffb, "get_slice_int(32, 4294967291, 0) == 32^0xfffffffb");
+ assert(get_slice_int(32, 4294967292, 0) == 32^0xfffffffc, "get_slice_int(32, 4294967292, 0) == 32^0xfffffffc");
+ assert(get_slice_int(32, 4294967293, 0) == 32^0xfffffffd, "get_slice_int(32, 4294967293, 0) == 32^0xfffffffd");
+ assert(get_slice_int(32, 4294967294, 0) == 32^0xfffffffe, "get_slice_int(32, 4294967294, 0) == 32^0xfffffffe");
+ assert(get_slice_int(32, 4294967295, 0) == 32^0xffffffff, "get_slice_int(32, 4294967295, 0) == 32^0xffffffff");
+ assert(get_slice_int(32, 4294967296, 0) == 32^0x0, "get_slice_int(32, 4294967296, 0) == 32^0x0");
+ assert(get_slice_int(32, 4294967297, 0) == 32^0x1, "get_slice_int(32, 4294967297, 0) == 32^0x1");
+ assert(get_slice_int(32, 4294967298, 0) == 32^0x2, "get_slice_int(32, 4294967298, 0) == 32^0x2");
+ assert(get_slice_int(32, 4294967299, 0) == 32^0x3, "get_slice_int(32, 4294967299, 0) == 32^0x3");
+ assert(get_slice_int(32, 4294967300, 0) == 32^0x4, "get_slice_int(32, 4294967300, 0) == 32^0x4");
+ assert(get_slice_int(32, 4294967301, 0) == 32^0x5, "get_slice_int(32, 4294967301, 0) == 32^0x5");
+ assert(get_slice_int(32, 4294967304, 0) == 32^0x8, "get_slice_int(32, 4294967304, 0) == 32^0x8");
+ assert(get_slice_int(32, 4294967305, 0) == 32^0x9, "get_slice_int(32, 4294967305, 0) == 32^0x9");
+ assert(get_slice_int(32, 4294967306, 0) == 32^0xa, "get_slice_int(32, 4294967306, 0) == 32^0xa");
+ assert(get_slice_int(32, 4294967307, 0) == 32^0xb, "get_slice_int(32, 4294967307, 0) == 32^0xb");
+ assert(get_slice_int(32, 4294967308, 0) == 32^0xc, "get_slice_int(32, 4294967308, 0) == 32^0xc");
+ assert(get_slice_int(32, 4294967309, 0) == 32^0xd, "get_slice_int(32, 4294967309, 0) == 32^0xd");
+ assert(get_slice_int(32, 4294967310, 0) == 32^0xe, "get_slice_int(32, 4294967310, 0) == 32^0xe");
+ assert(get_slice_int(32, 4294967311, 0) == 32^0xf, "get_slice_int(32, 4294967311, 0) == 32^0xf");
+ assert(get_slice_int(32, 4294967313, 0) == 32^0x11, "get_slice_int(32, 4294967313, 0) == 32^0x11");
+ assert(get_slice_int(32, 4294967316, 0) == 32^0x14, "get_slice_int(32, 4294967316, 0) == 32^0x14");
+ assert(get_slice_int(32, 4294967317, 0) == 32^0x15, "get_slice_int(32, 4294967317, 0) == 32^0x15");
+ assert(get_slice_int(32, 4294967321, 0) == 32^0x19, "get_slice_int(32, 4294967321, 0) == 32^0x19");
+ assert(get_slice_int(32, 4294967324, 0) == 32^0x1c, "get_slice_int(32, 4294967324, 0) == 32^0x1c");
+ assert(get_slice_int(32, 4294967326, 0) == 32^0x1e, "get_slice_int(32, 4294967326, 0) == 32^0x1e");
+ assert(get_slice_int(32, 4294967327, 0) == 32^0x1f, "get_slice_int(32, 4294967327, 0) == 32^0x1f");
+ assert(get_slice_int(32, 4294967328, 0) == 32^0x20, "get_slice_int(32, 4294967328, 0) == 32^0x20");
+ assert(get_slice_int(32, 4294967329, 0) == 32^0x21, "get_slice_int(32, 4294967329, 0) == 32^0x21");
+ assert(get_slice_int(32, 4294967333, 0) == 32^0x25, "get_slice_int(32, 4294967333, 0) == 32^0x25");
+ assert(get_slice_int(32, 4294967334, 0) == 32^0x26, "get_slice_int(32, 4294967334, 0) == 32^0x26");
+ assert(get_slice_int(32, 4294967335, 0) == 32^0x27, "get_slice_int(32, 4294967335, 0) == 32^0x27");
+ assert(get_slice_int(32, 4294967336, 0) == 32^0x28, "get_slice_int(32, 4294967336, 0) == 32^0x28");
+ assert(get_slice_int(32, 4294967337, 0) == 32^0x29, "get_slice_int(32, 4294967337, 0) == 32^0x29");
+ assert(get_slice_int(32, 4294967338, 0) == 32^0x2a, "get_slice_int(32, 4294967338, 0) == 32^0x2a");
+ assert(get_slice_int(32, 4294967339, 0) == 32^0x2b, "get_slice_int(32, 4294967339, 0) == 32^0x2b");
+ assert(get_slice_int(32, 4294967341, 0) == 32^0x2d, "get_slice_int(32, 4294967341, 0) == 32^0x2d");
+ assert(get_slice_int(32, 4294967342, 0) == 32^0x2e, "get_slice_int(32, 4294967342, 0) == 32^0x2e");
+ assert(get_slice_int(32, 4294967343, 0) == 32^0x2f, "get_slice_int(32, 4294967343, 0) == 32^0x2f");
+ assert(get_slice_int(32, 4294967344, 0) == 32^0x30, "get_slice_int(32, 4294967344, 0) == 32^0x30");
+ assert(get_slice_int(32, 4294967345, 0) == 32^0x31, "get_slice_int(32, 4294967345, 0) == 32^0x31");
+ assert(get_slice_int(32, 4294967346, 0) == 32^0x32, "get_slice_int(32, 4294967346, 0) == 32^0x32");
+ assert(get_slice_int(32, 4294967347, 0) == 32^0x33, "get_slice_int(32, 4294967347, 0) == 32^0x33");
+ assert(get_slice_int(32, 4294967348, 0) == 32^0x34, "get_slice_int(32, 4294967348, 0) == 32^0x34");
+ assert(get_slice_int(32, 4294967350, 0) == 32^0x36, "get_slice_int(32, 4294967350, 0) == 32^0x36");
+ assert(get_slice_int(32, 4294967352, 0) == 32^0x38, "get_slice_int(32, 4294967352, 0) == 32^0x38");
+ assert(get_slice_int(32, 4294967354, 0) == 32^0x3a, "get_slice_int(32, 4294967354, 0) == 32^0x3a");
+ assert(get_slice_int(32, 4294967356, 0) == 32^0x3c, "get_slice_int(32, 4294967356, 0) == 32^0x3c");
+ assert(get_slice_int(32, 4294967358, 0) == 32^0x3e, "get_slice_int(32, 4294967358, 0) == 32^0x3e");
+ assert(get_slice_int(32, 4294967359, 0) == 32^0x3f, "get_slice_int(32, 4294967359, 0) == 32^0x3f");
+ assert(get_slice_int(32, 4294967360, 0) == 32^0x40, "get_slice_int(32, 4294967360, 0) == 32^0x40");
+ assert(get_slice_int(32, 4294967361, 0) == 32^0x41, "get_slice_int(32, 4294967361, 0) == 32^0x41");
+ assert(get_slice_int(32, 4294967363, 0) == 32^0x43, "get_slice_int(32, 4294967363, 0) == 32^0x43");
+ assert(get_slice_int(32, 4294967364, 0) == 32^0x44, "get_slice_int(32, 4294967364, 0) == 32^0x44");
+ assert(get_slice_int(32, 4294967365, 0) == 32^0x45, "get_slice_int(32, 4294967365, 0) == 32^0x45");
+ assert(get_slice_int(32, 8589934591, 0) == 32^0xffffffff, "get_slice_int(32, 8589934591, 0) == 32^0xffffffff");
+ assert(get_slice_int(32, 9, 0) == 32^0x9, "get_slice_int(32, 9, 0) == 32^0x9");
+ assert(get_slice_int(4, 0, 0) == 4^0x0, "get_slice_int(4, 0, 0) == 4^0x0");
+ assert(get_slice_int(4, 1, 0) == 4^0x1, "get_slice_int(4, 1, 0) == 4^0x1");
+ assert(get_slice_int(4, 10, 0) == 4^0xa, "get_slice_int(4, 10, 0) == 4^0xa");
+ assert(get_slice_int(4, 12, 0) == 4^0xc, "get_slice_int(4, 12, 0) == 4^0xc");
+ assert(get_slice_int(4, 13, 0) == 4^0xd, "get_slice_int(4, 13, 0) == 4^0xd");
+ assert(get_slice_int(4, 14, 0) == 4^0xe, "get_slice_int(4, 14, 0) == 4^0xe");
+ assert(get_slice_int(4, 2, 0) == 4^0x2, "get_slice_int(4, 2, 0) == 4^0x2");
+ assert(get_slice_int(4, 3, 0) == 4^0x3, "get_slice_int(4, 3, 0) == 4^0x3");
+ assert(get_slice_int(4, 4, 0) == 4^0x4, "get_slice_int(4, 4, 0) == 4^0x4");
+ assert(get_slice_int(4, 5, 0) == 4^0x5, "get_slice_int(4, 5, 0) == 4^0x5");
+ assert(get_slice_int(4, 6, 0) == 4^0x6, "get_slice_int(4, 6, 0) == 4^0x6");
+ assert(get_slice_int(4, 7, 0) == 4^0x7, "get_slice_int(4, 7, 0) == 4^0x7");
+ assert(get_slice_int(4, 8, 0) == 4^0x8, "get_slice_int(4, 8, 0) == 4^0x8");
+ assert(get_slice_int(4, undefined, 0) == 4^0x0, "get_slice_int(4, undefined, 0) == 4^0x0");
+ assert(get_slice_int(5, 0, 0) == 5^0x0, "get_slice_int(5, 0, 0) == 5^0x0");
+ assert(get_slice_int(5, 1, 0) == 5^0x1, "get_slice_int(5, 1, 0) == 5^0x1");
+ assert(get_slice_int(5, 17, 0) == 5^0x11, "get_slice_int(5, 17, 0) == 5^0x11");
+ assert(get_slice_int(5, 18, 0) == 5^0x12, "get_slice_int(5, 18, 0) == 5^0x12");
+ assert(get_slice_int(5, 19, 0) == 5^0x13, "get_slice_int(5, 19, 0) == 5^0x13");
+ assert(get_slice_int(5, 2, 0) == 5^0x2, "get_slice_int(5, 2, 0) == 5^0x2");
+ assert(get_slice_int(5, 20, 0) == 5^0x14, "get_slice_int(5, 20, 0) == 5^0x14");
+ assert(get_slice_int(5, 21, 0) == 5^0x15, "get_slice_int(5, 21, 0) == 5^0x15");
+ assert(get_slice_int(5, 22, 0) == 5^0x16, "get_slice_int(5, 22, 0) == 5^0x16");
+ assert(get_slice_int(5, 23, 0) == 5^0x17, "get_slice_int(5, 23, 0) == 5^0x17");
+ assert(get_slice_int(5, 24, 0) == 5^0x18, "get_slice_int(5, 24, 0) == 5^0x18");
+ assert(get_slice_int(5, 27, 0) == 5^0x1b, "get_slice_int(5, 27, 0) == 5^0x1b");
+ assert(get_slice_int(5, 3, 0) == 5^0x3, "get_slice_int(5, 3, 0) == 5^0x3");
+ assert(get_slice_int(5, 30, 0) == 5^0x1e, "get_slice_int(5, 30, 0) == 5^0x1e");
+ assert(get_slice_int(5, 4, 0) == 5^0x4, "get_slice_int(5, 4, 0) == 5^0x4");
+ assert(get_slice_int(5, 5, 0) == 5^0x5, "get_slice_int(5, 5, 0) == 5^0x5");
+ assert(get_slice_int(5, 6, 0) == 5^0x6, "get_slice_int(5, 6, 0) == 5^0x6");
+ assert(get_slice_int(5, 7, 0) == 5^0x7, "get_slice_int(5, 7, 0) == 5^0x7");
+ assert(get_slice_int(5, 8, 0) == 5^0x8, "get_slice_int(5, 8, 0) == 5^0x8");
+ assert(get_slice_int(52, 318767104, 0) == 52^0x13000000, "get_slice_int(52, 318767104, 0) == 52^0x13000000");
+ assert(get_slice_int(52, 4503599627304960, 0) == 52^0xfffffffff0000, "get_slice_int(52, 4503599627304960, 0) == 52^0xfffffffff0000");
+ assert(get_slice_int(6, -1, 0) == 6^0x3f, "get_slice_int(6, -1, 0) == 6^0x3f");
+ assert(get_slice_int(6, -10, 0) == 6^0x36, "get_slice_int(6, -10, 0) == 6^0x36");
+ assert(get_slice_int(6, -11, 0) == 6^0x35, "get_slice_int(6, -11, 0) == 6^0x35");
+ assert(get_slice_int(6, -12, 0) == 6^0x34, "get_slice_int(6, -12, 0) == 6^0x34");
+ assert(get_slice_int(6, -14, 0) == 6^0x32, "get_slice_int(6, -14, 0) == 6^0x32");
+ assert(get_slice_int(6, -15, 0) == 6^0x31, "get_slice_int(6, -15, 0) == 6^0x31");
+ assert(get_slice_int(6, -16, 0) == 6^0x30, "get_slice_int(6, -16, 0) == 6^0x30");
+ assert(get_slice_int(6, -17, 0) == 6^0x2f, "get_slice_int(6, -17, 0) == 6^0x2f");
+ assert(get_slice_int(6, -19, 0) == 6^0x2d, "get_slice_int(6, -19, 0) == 6^0x2d");
+ assert(get_slice_int(6, -2, 0) == 6^0x3e, "get_slice_int(6, -2, 0) == 6^0x3e");
+ assert(get_slice_int(6, -20, 0) == 6^0x2c, "get_slice_int(6, -20, 0) == 6^0x2c");
+ assert(get_slice_int(6, -23, 0) == 6^0x29, "get_slice_int(6, -23, 0) == 6^0x29");
+ assert(get_slice_int(6, -27, 0) == 6^0x25, "get_slice_int(6, -27, 0) == 6^0x25");
+ assert(get_slice_int(6, -29, 0) == 6^0x23, "get_slice_int(6, -29, 0) == 6^0x23");
+ assert(get_slice_int(6, -3, 0) == 6^0x3d, "get_slice_int(6, -3, 0) == 6^0x3d");
+ assert(get_slice_int(6, -30, 0) == 6^0x22, "get_slice_int(6, -30, 0) == 6^0x22");
+ assert(get_slice_int(6, -32, 0) == 6^0x20, "get_slice_int(6, -32, 0) == 6^0x20");
+ assert(get_slice_int(6, -33, 0) == 6^0x1f, "get_slice_int(6, -33, 0) == 6^0x1f");
+ assert(get_slice_int(6, -38, 0) == 6^0x1a, "get_slice_int(6, -38, 0) == 6^0x1a");
+ assert(get_slice_int(6, -4, 0) == 6^0x3c, "get_slice_int(6, -4, 0) == 6^0x3c");
+ assert(get_slice_int(6, -41, 0) == 6^0x17, "get_slice_int(6, -41, 0) == 6^0x17");
+ assert(get_slice_int(6, -45, 0) == 6^0x13, "get_slice_int(6, -45, 0) == 6^0x13");
+ assert(get_slice_int(6, -46, 0) == 6^0x12, "get_slice_int(6, -46, 0) == 6^0x12");
+ assert(get_slice_int(6, -49, 0) == 6^0xf, "get_slice_int(6, -49, 0) == 6^0xf");
+ assert(get_slice_int(64, 169869480, 0) == 64^0xa2000a8, "get_slice_int(64, 169869480, 0) == 64^0xa2000a8");
+ assert(get_slice_int(64, 169869484, 0) == 64^0xa2000ac, "get_slice_int(64, 169869484, 0) == 64^0xa2000ac");
+ assert(get_slice_int(64, 173015148, 0) == 64^0xa50006c, "get_slice_int(64, 173015148, 0) == 64^0xa50006c");
+ assert(get_slice_int(64, 173015152, 0) == 64^0xa500070, "get_slice_int(64, 173015152, 0) == 64^0xa500070");
+ assert(get_slice_int(64, 173015156, 0) == 64^0xa500074, "get_slice_int(64, 173015156, 0) == 64^0xa500074");
+ assert(get_slice_int(64, 180224, 0) == 64^0x2c000, "get_slice_int(64, 180224, 0) == 64^0x2c000");
+ assert(get_slice_int(64, 18446708893632421888, 0) == 64^0xffffe000ffffe000, "get_slice_int(64, 18446708893632421888, 0) == 64^0xffffe000ffffe000");
+ assert(get_slice_int(64, 18446744073658712064, 0) == 64^0xfffffffffcf84000, "get_slice_int(64, 18446744073658712064, 0) == 64^0xfffffffffcf84000");
+ assert(get_slice_int(64, 18446744073658777600, 0) == 64^0xfffffffffcf94000, "get_slice_int(64, 18446744073658777600, 0) == 64^0xfffffffffcf94000");
+ assert(get_slice_int(64, 18446744073658843136, 0) == 64^0xfffffffffcfa4000, "get_slice_int(64, 18446744073658843136, 0) == 64^0xfffffffffcfa4000");
+ assert(get_slice_int(64, 18446744073660252160, 0) == 64^0xfffffffffd0fc000, "get_slice_int(64, 18446744073660252160, 0) == 64^0xfffffffffd0fc000");
+ assert(get_slice_int(64, 18446744073660317696, 0) == 64^0xfffffffffd10c000, "get_slice_int(64, 18446744073660317696, 0) == 64^0xfffffffffd10c000");
+ assert(get_slice_int(64, 18446744073660465152, 0) == 64^0xfffffffffd130000, "get_slice_int(64, 18446744073660465152, 0) == 64^0xfffffffffd130000");
+ assert(get_slice_int(64, 18446744073660530688, 0) == 64^0xfffffffffd140000, "get_slice_int(64, 18446744073660530688, 0) == 64^0xfffffffffd140000");
+ assert(get_slice_int(64, 18446744073660727296, 0) == 64^0xfffffffffd170000, "get_slice_int(64, 18446744073660727296, 0) == 64^0xfffffffffd170000");
+ assert(get_slice_int(64, 18446744073660841984, 0) == 64^0xfffffffffd18c000, "get_slice_int(64, 18446744073660841984, 0) == 64^0xfffffffffd18c000");
+ assert(get_slice_int(64, 18446744073708961792, 0) == 64^0xfffffffffff70000, "get_slice_int(64, 18446744073708961792, 0) == 64^0xfffffffffff70000");
+ assert(get_slice_int(64, 18446744073709027328, 0) == 64^0xfffffffffff80000, "get_slice_int(64, 18446744073709027328, 0) == 64^0xfffffffffff80000");
+ assert(get_slice_int(64, 18446744073709289472, 0) == 64^0xfffffffffffc0000, "get_slice_int(64, 18446744073709289472, 0) == 64^0xfffffffffffc0000");
+ assert(get_slice_int(64, 18446744073709355008, 0) == 64^0xfffffffffffd0000, "get_slice_int(64, 18446744073709355008, 0) == 64^0xfffffffffffd0000");
+ assert(get_slice_int(64, 75248, 0) == 64^0x125f0, "get_slice_int(64, 75248, 0) == 64^0x125f0");
+ assert(get_slice_int(64, 75252, 0) == 64^0x125f4, "get_slice_int(64, 75252, 0) == 64^0x125f4");
+ assert(get_slice_int(64, 75256, 0) == 64^0x125f8, "get_slice_int(64, 75256, 0) == 64^0x125f8");
+ assert(get_slice_int(64, 75260, 0) == 64^0x125fc, "get_slice_int(64, 75260, 0) == 64^0x125fc");
+ assert(get_slice_int(64, 75264, 0) == 64^0x12600, "get_slice_int(64, 75264, 0) == 64^0x12600");
+ assert(get_slice_int(64, 75268, 0) == 64^0x12604, "get_slice_int(64, 75268, 0) == 64^0x12604");
+ assert(get_slice_int(64, 75272, 0) == 64^0x12608, "get_slice_int(64, 75272, 0) == 64^0x12608");
+ assert(get_slice_int(64, 75276, 0) == 64^0x1260c, "get_slice_int(64, 75276, 0) == 64^0x1260c");
+ assert(get_slice_int(64, 75280, 0) == 64^0x12610, "get_slice_int(64, 75280, 0) == 64^0x12610");
+ assert(get_slice_int(64, 75296, 0) == 64^0x12620, "get_slice_int(64, 75296, 0) == 64^0x12620");
+ assert(get_slice_int(64, 75872, 0) == 64^0x12860, "get_slice_int(64, 75872, 0) == 64^0x12860");
+ assert(get_slice_int(64, 8, 0) == 64^0x8, "get_slice_int(64, 8, 0) == 64^0x8");
+ assert(get_slice_int(64, 82944, 0) == 64^0x14400, "get_slice_int(64, 82944, 0) == 64^0x14400");
+ assert(get_slice_int(64, 84660, 0) == 64^0x14ab4, "get_slice_int(64, 84660, 0) == 64^0x14ab4");
+ assert(get_slice_int(64, 84664, 0) == 64^0x14ab8, "get_slice_int(64, 84664, 0) == 64^0x14ab8");
+ assert(get_slice_int(64, 84668, 0) == 64^0x14abc, "get_slice_int(64, 84668, 0) == 64^0x14abc");
+ assert(get_slice_int(64, 84672, 0) == 64^0x14ac0, "get_slice_int(64, 84672, 0) == 64^0x14ac0");
+ assert(get_slice_int(64, 84676, 0) == 64^0x14ac4, "get_slice_int(64, 84676, 0) == 64^0x14ac4");
+ assert(get_slice_int(64, 84680, 0) == 64^0x14ac8, "get_slice_int(64, 84680, 0) == 64^0x14ac8");
+ assert(get_slice_int(64, 84692, 0) == 64^0x14ad4, "get_slice_int(64, 84692, 0) == 64^0x14ad4");
+ assert(get_slice_int(64, 84696, 0) == 64^0x14ad8, "get_slice_int(64, 84696, 0) == 64^0x14ad8");
+ assert(get_slice_int(64, 84700, 0) == 64^0x14adc, "get_slice_int(64, 84700, 0) == 64^0x14adc");
+ assert(get_slice_int(64, 84704, 0) == 64^0x14ae0, "get_slice_int(64, 84704, 0) == 64^0x14ae0");
+ assert(get_slice_int(64, 84708, 0) == 64^0x14ae4, "get_slice_int(64, 84708, 0) == 64^0x14ae4");
+ assert(get_slice_int(64, 84712, 0) == 64^0x14ae8, "get_slice_int(64, 84712, 0) == 64^0x14ae8");
+ assert(get_slice_int(64, 84716, 0) == 64^0x14aec, "get_slice_int(64, 84716, 0) == 64^0x14aec");
+ assert(get_slice_int(64, 84720, 0) == 64^0x14af0, "get_slice_int(64, 84720, 0) == 64^0x14af0");
+ assert(get_slice_int(64, 84724, 0) == 64^0x14af4, "get_slice_int(64, 84724, 0) == 64^0x14af4");
+ assert(get_slice_int(64, 84728, 0) == 64^0x14af8, "get_slice_int(64, 84728, 0) == 64^0x14af8");
+ assert(get_slice_int(64, 84732, 0) == 64^0x14afc, "get_slice_int(64, 84732, 0) == 64^0x14afc");
+ assert(get_slice_int(64, 84736, 0) == 64^0x14b00, "get_slice_int(64, 84736, 0) == 64^0x14b00");
+ assert(get_slice_int(64, 84740, 0) == 64^0x14b04, "get_slice_int(64, 84740, 0) == 64^0x14b04");
+ assert(get_slice_int(64, 84872, 0) == 64^0x14b88, "get_slice_int(64, 84872, 0) == 64^0x14b88");
+ assert(get_slice_int(64, 84876, 0) == 64^0x14b8c, "get_slice_int(64, 84876, 0) == 64^0x14b8c");
+ assert(get_slice_int(64, 84880, 0) == 64^0x14b90, "get_slice_int(64, 84880, 0) == 64^0x14b90");
+ assert(get_slice_int(64, 84884, 0) == 64^0x14b94, "get_slice_int(64, 84884, 0) == 64^0x14b94");
+ assert(get_slice_int(64, 84888, 0) == 64^0x14b98, "get_slice_int(64, 84888, 0) == 64^0x14b98");
+ assert(get_slice_int(64, 84892, 0) == 64^0x14b9c, "get_slice_int(64, 84892, 0) == 64^0x14b9c");
+ assert(get_slice_int(64, 84896, 0) == 64^0x14ba0, "get_slice_int(64, 84896, 0) == 64^0x14ba0");
+ assert(get_slice_int(64, 84900, 0) == 64^0x14ba4, "get_slice_int(64, 84900, 0) == 64^0x14ba4");
+ assert(get_slice_int(64, 84904, 0) == 64^0x14ba8, "get_slice_int(64, 84904, 0) == 64^0x14ba8");
+ assert(get_slice_int(64, 84908, 0) == 64^0x14bac, "get_slice_int(64, 84908, 0) == 64^0x14bac");
+ assert(get_slice_int(64, 84912, 0) == 64^0x14bb0, "get_slice_int(64, 84912, 0) == 64^0x14bb0");
+ assert(get_slice_int(64, 84916, 0) == 64^0x14bb4, "get_slice_int(64, 84916, 0) == 64^0x14bb4");
+ assert(get_slice_int(64, 84920, 0) == 64^0x14bb8, "get_slice_int(64, 84920, 0) == 64^0x14bb8");
+ assert(get_slice_int(64, 84924, 0) == 64^0x14bbc, "get_slice_int(64, 84924, 0) == 64^0x14bbc");
+ assert(get_slice_int(64, 85348, 0) == 64^0x14d64, "get_slice_int(64, 85348, 0) == 64^0x14d64");
+ assert(get_slice_int(64, 85352, 0) == 64^0x14d68, "get_slice_int(64, 85352, 0) == 64^0x14d68");
+ assert(get_slice_int(64, 85356, 0) == 64^0x14d6c, "get_slice_int(64, 85356, 0) == 64^0x14d6c");
+ assert(get_slice_int(64, 85360, 0) == 64^0x14d70, "get_slice_int(64, 85360, 0) == 64^0x14d70");
+ assert(get_slice_int(64, 85364, 0) == 64^0x14d74, "get_slice_int(64, 85364, 0) == 64^0x14d74");
+ assert(get_slice_int(64, 85368, 0) == 64^0x14d78, "get_slice_int(64, 85368, 0) == 64^0x14d78");
+ assert(get_slice_int(64, 85372, 0) == 64^0x14d7c, "get_slice_int(64, 85372, 0) == 64^0x14d7c");
+ assert(get_slice_int(64, 85376, 0) == 64^0x14d80, "get_slice_int(64, 85376, 0) == 64^0x14d80");
+ assert(get_slice_int(64, 85380, 0) == 64^0x14d84, "get_slice_int(64, 85380, 0) == 64^0x14d84");
+ assert(get_slice_int(64, 85384, 0) == 64^0x14d88, "get_slice_int(64, 85384, 0) == 64^0x14d88");
+ assert(get_slice_int(64, 85388, 0) == 64^0x14d8c, "get_slice_int(64, 85388, 0) == 64^0x14d8c");
+ assert(get_slice_int(64, 85392, 0) == 64^0x14d90, "get_slice_int(64, 85392, 0) == 64^0x14d90");
+ assert(get_slice_int(64, 85396, 0) == 64^0x14d94, "get_slice_int(64, 85396, 0) == 64^0x14d94");
+ assert(get_slice_int(64, 85400, 0) == 64^0x14d98, "get_slice_int(64, 85400, 0) == 64^0x14d98");
+ assert(get_slice_int(64, 85404, 0) == 64^0x14d9c, "get_slice_int(64, 85404, 0) == 64^0x14d9c");
+ assert(get_slice_int(64, 85408, 0) == 64^0x14da0, "get_slice_int(64, 85408, 0) == 64^0x14da0");
+ assert(get_slice_int(64, 85412, 0) == 64^0x14da4, "get_slice_int(64, 85412, 0) == 64^0x14da4");
+ assert(get_slice_int(64, 85416, 0) == 64^0x14da8, "get_slice_int(64, 85416, 0) == 64^0x14da8");
+ assert(get_slice_int(64, 85420, 0) == 64^0x14dac, "get_slice_int(64, 85420, 0) == 64^0x14dac");
+ assert(get_slice_int(64, 85424, 0) == 64^0x14db0, "get_slice_int(64, 85424, 0) == 64^0x14db0");
+ assert(get_slice_int(64, 85428, 0) == 64^0x14db4, "get_slice_int(64, 85428, 0) == 64^0x14db4");
+ assert(get_slice_int(64, 85432, 0) == 64^0x14db8, "get_slice_int(64, 85432, 0) == 64^0x14db8");
+ assert(get_slice_int(64, 85436, 0) == 64^0x14dbc, "get_slice_int(64, 85436, 0) == 64^0x14dbc");
+ assert(get_slice_int(64, 85440, 0) == 64^0x14dc0, "get_slice_int(64, 85440, 0) == 64^0x14dc0");
+ assert(get_slice_int(64, 85444, 0) == 64^0x14dc4, "get_slice_int(64, 85444, 0) == 64^0x14dc4");
+ assert(get_slice_int(64, 85448, 0) == 64^0x14dc8, "get_slice_int(64, 85448, 0) == 64^0x14dc8");
+ assert(get_slice_int(64, 85452, 0) == 64^0x14dcc, "get_slice_int(64, 85452, 0) == 64^0x14dcc");
+ assert(get_slice_int(64, 85456, 0) == 64^0x14dd0, "get_slice_int(64, 85456, 0) == 64^0x14dd0");
+ assert(get_slice_int(64, 85460, 0) == 64^0x14dd4, "get_slice_int(64, 85460, 0) == 64^0x14dd4");
+ assert(get_slice_int(64, 85464, 0) == 64^0x14dd8, "get_slice_int(64, 85464, 0) == 64^0x14dd8");
+ assert(get_slice_int(64, 85468, 0) == 64^0x14ddc, "get_slice_int(64, 85468, 0) == 64^0x14ddc");
+ assert(get_slice_int(64, 85472, 0) == 64^0x14de0, "get_slice_int(64, 85472, 0) == 64^0x14de0");
+ assert(get_slice_int(64, 85476, 0) == 64^0x14de4, "get_slice_int(64, 85476, 0) == 64^0x14de4");
+ assert(get_slice_int(64, 85480, 0) == 64^0x14de8, "get_slice_int(64, 85480, 0) == 64^0x14de8");
+ assert(get_slice_int(64, 85484, 0) == 64^0x14dec, "get_slice_int(64, 85484, 0) == 64^0x14dec");
+ assert(get_slice_int(64, 85488, 0) == 64^0x14df0, "get_slice_int(64, 85488, 0) == 64^0x14df0");
+ assert(get_slice_int(64, 85492, 0) == 64^0x14df4, "get_slice_int(64, 85492, 0) == 64^0x14df4");
+ assert(get_slice_int(64, 85496, 0) == 64^0x14df8, "get_slice_int(64, 85496, 0) == 64^0x14df8");
+ assert(get_slice_int(64, 85500, 0) == 64^0x14dfc, "get_slice_int(64, 85500, 0) == 64^0x14dfc");
+ assert(get_slice_int(64, 85504, 0) == 64^0x14e00, "get_slice_int(64, 85504, 0) == 64^0x14e00");
+ assert(get_slice_int(64, 85508, 0) == 64^0x14e04, "get_slice_int(64, 85508, 0) == 64^0x14e04");
+ assert(get_slice_int(64, 85512, 0) == 64^0x14e08, "get_slice_int(64, 85512, 0) == 64^0x14e08");
+ assert(get_slice_int(64, 8736, 0) == 64^0x2220, "get_slice_int(64, 8736, 0) == 64^0x2220");
+ assert(get_slice_int(64, 8764, 0) == 64^0x223c, "get_slice_int(64, 8764, 0) == 64^0x223c");
+ assert(get_slice_int(64, 9, 0) == 64^0x9, "get_slice_int(64, 9, 0) == 64^0x9");
+ assert(get_slice_int(64, 90688, 0) == 64^0x16240, "get_slice_int(64, 90688, 0) == 64^0x16240");
+ assert(get_slice_int(64, 90692, 0) == 64^0x16244, "get_slice_int(64, 90692, 0) == 64^0x16244");
+ assert(get_slice_int(64, 90896, 0) == 64^0x16310, "get_slice_int(64, 90896, 0) == 64^0x16310");
+ assert(get_slice_int(64, 90900, 0) == 64^0x16314, "get_slice_int(64, 90900, 0) == 64^0x16314");
+ assert(get_slice_int(64, 90904, 0) == 64^0x16318, "get_slice_int(64, 90904, 0) == 64^0x16318");
+ assert(get_slice_int(64, 90908, 0) == 64^0x1631c, "get_slice_int(64, 90908, 0) == 64^0x1631c");
+ assert(get_slice_int(64, 90912, 0) == 64^0x16320, "get_slice_int(64, 90912, 0) == 64^0x16320");
+ assert(get_slice_int(64, 90916, 0) == 64^0x16324, "get_slice_int(64, 90916, 0) == 64^0x16324");
+ assert(get_slice_int(64, 90920, 0) == 64^0x16328, "get_slice_int(64, 90920, 0) == 64^0x16328");
+ assert(get_slice_int(64, 90924, 0) == 64^0x1632c, "get_slice_int(64, 90924, 0) == 64^0x1632c");
+ assert(get_slice_int(64, 90928, 0) == 64^0x16330, "get_slice_int(64, 90928, 0) == 64^0x16330");
+ assert(get_slice_int(64, 90932, 0) == 64^0x16334, "get_slice_int(64, 90932, 0) == 64^0x16334");
+ assert(get_slice_int(64, 90984, 0) == 64^0x16368, "get_slice_int(64, 90984, 0) == 64^0x16368");
+ assert(get_slice_int(64, 90988, 0) == 64^0x1636c, "get_slice_int(64, 90988, 0) == 64^0x1636c");
+ assert(get_slice_int(64, 91012, 0) == 64^0x16384, "get_slice_int(64, 91012, 0) == 64^0x16384");
+ assert(get_slice_int(64, 91016, 0) == 64^0x16388, "get_slice_int(64, 91016, 0) == 64^0x16388");
+ assert(get_slice_int(64, 91072, 0) == 64^0x163c0, "get_slice_int(64, 91072, 0) == 64^0x163c0");
+ assert(get_slice_int(64, 91076, 0) == 64^0x163c4, "get_slice_int(64, 91076, 0) == 64^0x163c4");
+ assert(get_slice_int(64, 91088, 0) == 64^0x163d0, "get_slice_int(64, 91088, 0) == 64^0x163d0");
+ assert(get_slice_int(64, 91092, 0) == 64^0x163d4, "get_slice_int(64, 91092, 0) == 64^0x163d4");
+ assert(get_slice_int(64, 91104, 0) == 64^0x163e0, "get_slice_int(64, 91104, 0) == 64^0x163e0");
+ assert(get_slice_int(64, 91108, 0) == 64^0x163e4, "get_slice_int(64, 91108, 0) == 64^0x163e4");
+ assert(get_slice_int(64, 91120, 0) == 64^0x163f0, "get_slice_int(64, 91120, 0) == 64^0x163f0");
+ assert(get_slice_int(64, 91124, 0) == 64^0x163f4, "get_slice_int(64, 91124, 0) == 64^0x163f4");
+ assert(get_slice_int(64, 91128, 0) == 64^0x163f8, "get_slice_int(64, 91128, 0) == 64^0x163f8");
+ assert(get_slice_int(64, 91132, 0) == 64^0x163fc, "get_slice_int(64, 91132, 0) == 64^0x163fc");
+ assert(get_slice_int(64, 91136, 0) == 64^0x16400, "get_slice_int(64, 91136, 0) == 64^0x16400");
+ assert(get_slice_int(64, 91140, 0) == 64^0x16404, "get_slice_int(64, 91140, 0) == 64^0x16404");
+ assert(get_slice_int(64, 91144, 0) == 64^0x16408, "get_slice_int(64, 91144, 0) == 64^0x16408");
+ assert(get_slice_int(64, 91148, 0) == 64^0x1640c, "get_slice_int(64, 91148, 0) == 64^0x1640c");
+ assert(get_slice_int(64, 91168, 0) == 64^0x16420, "get_slice_int(64, 91168, 0) == 64^0x16420");
+ assert(get_slice_int(64, 91172, 0) == 64^0x16424, "get_slice_int(64, 91172, 0) == 64^0x16424");
+ assert(get_slice_int(64, 91176, 0) == 64^0x16428, "get_slice_int(64, 91176, 0) == 64^0x16428");
+ assert(get_slice_int(64, 91180, 0) == 64^0x1642c, "get_slice_int(64, 91180, 0) == 64^0x1642c");
+ assert(get_slice_int(64, 91212, 0) == 64^0x1644c, "get_slice_int(64, 91212, 0) == 64^0x1644c");
+ assert(get_slice_int(64, 91216, 0) == 64^0x16450, "get_slice_int(64, 91216, 0) == 64^0x16450");
+ assert(get_slice_int(64, 91228, 0) == 64^0x1645c, "get_slice_int(64, 91228, 0) == 64^0x1645c");
+ assert(get_slice_int(64, 91232, 0) == 64^0x16460, "get_slice_int(64, 91232, 0) == 64^0x16460");
+ assert(get_slice_int(64, 91236, 0) == 64^0x16464, "get_slice_int(64, 91236, 0) == 64^0x16464");
+ assert(get_slice_int(64, 91252, 0) == 64^0x16474, "get_slice_int(64, 91252, 0) == 64^0x16474");
+ assert(get_slice_int(64, 91256, 0) == 64^0x16478, "get_slice_int(64, 91256, 0) == 64^0x16478");
+ assert(get_slice_int(64, 91260, 0) == 64^0x1647c, "get_slice_int(64, 91260, 0) == 64^0x1647c");
+ assert(get_slice_int(64, 91264, 0) == 64^0x16480, "get_slice_int(64, 91264, 0) == 64^0x16480");
+ assert(get_slice_int(64, 91268, 0) == 64^0x16484, "get_slice_int(64, 91268, 0) == 64^0x16484");
+ assert(get_slice_int(64, 91272, 0) == 64^0x16488, "get_slice_int(64, 91272, 0) == 64^0x16488");
+ assert(get_slice_int(64, 91276, 0) == 64^0x1648c, "get_slice_int(64, 91276, 0) == 64^0x1648c");
+ assert(get_slice_int(64, 91280, 0) == 64^0x16490, "get_slice_int(64, 91280, 0) == 64^0x16490");
+ assert(get_slice_int(64, 91284, 0) == 64^0x16494, "get_slice_int(64, 91284, 0) == 64^0x16494");
+ assert(get_slice_int(64, 91288, 0) == 64^0x16498, "get_slice_int(64, 91288, 0) == 64^0x16498");
+ assert(get_slice_int(64, 91292, 0) == 64^0x1649c, "get_slice_int(64, 91292, 0) == 64^0x1649c");
+ assert(get_slice_int(64, 91296, 0) == 64^0x164a0, "get_slice_int(64, 91296, 0) == 64^0x164a0");
+ assert(get_slice_int(64, 91300, 0) == 64^0x164a4, "get_slice_int(64, 91300, 0) == 64^0x164a4");
+ assert(get_slice_int(64, 91304, 0) == 64^0x164a8, "get_slice_int(64, 91304, 0) == 64^0x164a8");
+ assert(get_slice_int(64, 91308, 0) == 64^0x164ac, "get_slice_int(64, 91308, 0) == 64^0x164ac");
+ assert(get_slice_int(64, 91312, 0) == 64^0x164b0, "get_slice_int(64, 91312, 0) == 64^0x164b0");
+ assert(get_slice_int(64, 91316, 0) == 64^0x164b4, "get_slice_int(64, 91316, 0) == 64^0x164b4");
+ assert(get_slice_int(64, 91320, 0) == 64^0x164b8, "get_slice_int(64, 91320, 0) == 64^0x164b8");
+ assert(get_slice_int(64, 91348, 0) == 64^0x164d4, "get_slice_int(64, 91348, 0) == 64^0x164d4");
+ assert(get_slice_int(64, 91352, 0) == 64^0x164d8, "get_slice_int(64, 91352, 0) == 64^0x164d8");
+ assert(get_slice_int(64, 91356, 0) == 64^0x164dc, "get_slice_int(64, 91356, 0) == 64^0x164dc");
+ assert(get_slice_int(64, 91360, 0) == 64^0x164e0, "get_slice_int(64, 91360, 0) == 64^0x164e0");
+ assert(get_slice_int(64, 91408, 0) == 64^0x16510, "get_slice_int(64, 91408, 0) == 64^0x16510");
+ assert(get_slice_int(64, 91412, 0) == 64^0x16514, "get_slice_int(64, 91412, 0) == 64^0x16514");
+ assert(get_slice_int(64, 91416, 0) == 64^0x16518, "get_slice_int(64, 91416, 0) == 64^0x16518");
+ assert(get_slice_int(64, 91420, 0) == 64^0x1651c, "get_slice_int(64, 91420, 0) == 64^0x1651c");
+ assert(get_slice_int(64, 91432, 0) == 64^0x16528, "get_slice_int(64, 91432, 0) == 64^0x16528");
+ assert(get_slice_int(64, 91436, 0) == 64^0x1652c, "get_slice_int(64, 91436, 0) == 64^0x1652c");
+ assert(get_slice_int(64, 91536, 0) == 64^0x16590, "get_slice_int(64, 91536, 0) == 64^0x16590");
+ assert(get_slice_int(64, 91540, 0) == 64^0x16594, "get_slice_int(64, 91540, 0) == 64^0x16594");
+ assert(get_slice_int(64, 91544, 0) == 64^0x16598, "get_slice_int(64, 91544, 0) == 64^0x16598");
+ assert(get_slice_int(64, 91572, 0) == 64^0x165b4, "get_slice_int(64, 91572, 0) == 64^0x165b4");
+ assert(get_slice_int(64, 91576, 0) == 64^0x165b8, "get_slice_int(64, 91576, 0) == 64^0x165b8");
+ assert(get_slice_int(64, 91580, 0) == 64^0x165bc, "get_slice_int(64, 91580, 0) == 64^0x165bc");
+ assert(get_slice_int(64, 91592, 0) == 64^0x165c8, "get_slice_int(64, 91592, 0) == 64^0x165c8");
+ assert(get_slice_int(64, 91596, 0) == 64^0x165cc, "get_slice_int(64, 91596, 0) == 64^0x165cc");
+ assert(get_slice_int(64, 91600, 0) == 64^0x165d0, "get_slice_int(64, 91600, 0) == 64^0x165d0");
+ assert(get_slice_int(64, 91616, 0) == 64^0x165e0, "get_slice_int(64, 91616, 0) == 64^0x165e0");
+ assert(get_slice_int(64, 91620, 0) == 64^0x165e4, "get_slice_int(64, 91620, 0) == 64^0x165e4");
+ assert(get_slice_int(64, 91624, 0) == 64^0x165e8, "get_slice_int(64, 91624, 0) == 64^0x165e8");
+ assert(get_slice_int(64, 91628, 0) == 64^0x165ec, "get_slice_int(64, 91628, 0) == 64^0x165ec");
+ assert(get_slice_int(64, 91632, 0) == 64^0x165f0, "get_slice_int(64, 91632, 0) == 64^0x165f0");
+ assert(get_slice_int(64, 91636, 0) == 64^0x165f4, "get_slice_int(64, 91636, 0) == 64^0x165f4");
+ assert(get_slice_int(64, 91640, 0) == 64^0x165f8, "get_slice_int(64, 91640, 0) == 64^0x165f8");
+ assert(get_slice_int(64, 91644, 0) == 64^0x165fc, "get_slice_int(64, 91644, 0) == 64^0x165fc");
+ assert(get_slice_int(64, 91648, 0) == 64^0x16600, "get_slice_int(64, 91648, 0) == 64^0x16600");
+ assert(get_slice_int(64, 91660, 0) == 64^0x1660c, "get_slice_int(64, 91660, 0) == 64^0x1660c");
+ assert(get_slice_int(64, 91664, 0) == 64^0x16610, "get_slice_int(64, 91664, 0) == 64^0x16610");
+ assert(get_slice_int(64, 91668, 0) == 64^0x16614, "get_slice_int(64, 91668, 0) == 64^0x16614");
+ assert(get_slice_int(64, 91708, 0) == 64^0x1663c, "get_slice_int(64, 91708, 0) == 64^0x1663c");
+ assert(get_slice_int(64, 91712, 0) == 64^0x16640, "get_slice_int(64, 91712, 0) == 64^0x16640");
+ assert(get_slice_int(64, 91716, 0) == 64^0x16644, "get_slice_int(64, 91716, 0) == 64^0x16644");
+ assert(get_slice_int(64, 91720, 0) == 64^0x16648, "get_slice_int(64, 91720, 0) == 64^0x16648");
+ assert(get_slice_int(64, 91724, 0) == 64^0x1664c, "get_slice_int(64, 91724, 0) == 64^0x1664c");
+ assert(get_slice_int(64, 91728, 0) == 64^0x16650, "get_slice_int(64, 91728, 0) == 64^0x16650");
+ assert(get_slice_int(64, 91732, 0) == 64^0x16654, "get_slice_int(64, 91732, 0) == 64^0x16654");
+ assert(get_slice_int(64, 91736, 0) == 64^0x16658, "get_slice_int(64, 91736, 0) == 64^0x16658");
+ assert(get_slice_int(64, 91740, 0) == 64^0x1665c, "get_slice_int(64, 91740, 0) == 64^0x1665c");
+ assert(get_slice_int(64, 91752, 0) == 64^0x16668, "get_slice_int(64, 91752, 0) == 64^0x16668");
+ assert(get_slice_int(64, 91756, 0) == 64^0x1666c, "get_slice_int(64, 91756, 0) == 64^0x1666c");
+ assert(get_slice_int(64, 91768, 0) == 64^0x16678, "get_slice_int(64, 91768, 0) == 64^0x16678");
+ assert(get_slice_int(64, 91772, 0) == 64^0x1667c, "get_slice_int(64, 91772, 0) == 64^0x1667c");
+ assert(get_slice_int(64, 91776, 0) == 64^0x16680, "get_slice_int(64, 91776, 0) == 64^0x16680");
+ assert(get_slice_int(64, 91780, 0) == 64^0x16684, "get_slice_int(64, 91780, 0) == 64^0x16684");
+ assert(get_slice_int(64, 91808, 0) == 64^0x166a0, "get_slice_int(64, 91808, 0) == 64^0x166a0");
+ assert(get_slice_int(64, 91812, 0) == 64^0x166a4, "get_slice_int(64, 91812, 0) == 64^0x166a4");
+ assert(get_slice_int(64, 91816, 0) == 64^0x166a8, "get_slice_int(64, 91816, 0) == 64^0x166a8");
+ assert(get_slice_int(64, 91820, 0) == 64^0x166ac, "get_slice_int(64, 91820, 0) == 64^0x166ac");
+ assert(get_slice_int(64, 91824, 0) == 64^0x166b0, "get_slice_int(64, 91824, 0) == 64^0x166b0");
+ assert(get_slice_int(64, 91828, 0) == 64^0x166b4, "get_slice_int(64, 91828, 0) == 64^0x166b4");
+} \ No newline at end of file
diff --git a/test/builtins/mult_int.sail b/test/builtins/mult_int.sail
new file mode 100644
index 00000000..18667c50
--- /dev/null
+++ b/test/builtins/mult_int.sail
@@ -0,0 +1,3038 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+$include <arith.sail>
+
+function main (() : unit) -> unit = {
+ assert(mult_int(0, 11) == 0);
+ assert(mult_int(0, 112) == 0);
+ assert(mult_int(0, 1120) == 0);
+ assert(mult_int(0, 12) == 0);
+ assert(mult_int(0, 2384) == 0);
+ assert(mult_int(0, 24) == 0);
+ assert(mult_int(0, 24576) == 0);
+ assert(mult_int(0, 28) == 0);
+ assert(mult_int(0, 280) == 0);
+ assert(mult_int(0, 3) == 0);
+ assert(mult_int(0, 48) == 0);
+ assert(mult_int(0, 49152) == 0);
+ assert(mult_int(0, 56) == 0);
+ assert(mult_int(0, 560) == 0);
+ assert(mult_int(0, 6) == 0);
+ assert(mult_int(0, 640) == 0);
+ assert(mult_int(0, 664) == 0);
+ assert(mult_int(0, 672) == 0);
+ assert(mult_int(1, 102850560) == 102850560);
+ assert(mult_int(1, 102850561) == 102850561);
+ assert(mult_int(1, 102850562) == 102850562);
+ assert(mult_int(1, 102850563) == 102850563);
+ assert(mult_int(1, 102850564) == 102850564);
+ assert(mult_int(1, 102850565) == 102850565);
+ assert(mult_int(1, 102850566) == 102850566);
+ assert(mult_int(1, 102850567) == 102850567);
+ assert(mult_int(1, 102850568) == 102850568);
+ assert(mult_int(1, 102850569) == 102850569);
+ assert(mult_int(1, 102850570) == 102850570);
+ assert(mult_int(1, 102850571) == 102850571);
+ assert(mult_int(1, 102850572) == 102850572);
+ assert(mult_int(1, 102850573) == 102850573);
+ assert(mult_int(1, 102850574) == 102850574);
+ assert(mult_int(1, 102850575) == 102850575);
+ assert(mult_int(1, 102850608) == 102850608);
+ assert(mult_int(1, 102850609) == 102850609);
+ assert(mult_int(1, 102850610) == 102850610);
+ assert(mult_int(1, 102850611) == 102850611);
+ assert(mult_int(1, 102850612) == 102850612);
+ assert(mult_int(1, 102850613) == 102850613);
+ assert(mult_int(1, 11) == 11);
+ assert(mult_int(1, 123052) == 123052);
+ assert(mult_int(1, 123053) == 123053);
+ assert(mult_int(1, 123054) == 123054);
+ assert(mult_int(1, 123055) == 123055);
+ assert(mult_int(1, 123056) == 123056);
+ assert(mult_int(1, 123057) == 123057);
+ assert(mult_int(1, 123058) == 123058);
+ assert(mult_int(1, 123059) == 123059);
+ assert(mult_int(1, 123060) == 123060);
+ assert(mult_int(1, 123119) == 123119);
+ assert(mult_int(1, 123120) == 123120);
+ assert(mult_int(1, 123121) == 123121);
+ assert(mult_int(1, 123122) == 123122);
+ assert(mult_int(1, 123123) == 123123);
+ assert(mult_int(1, 123124) == 123124);
+ assert(mult_int(1, 123125) == 123125);
+ assert(mult_int(1, 123126) == 123126);
+ assert(mult_int(1, 123127) == 123127);
+ assert(mult_int(1, 123128) == 123128);
+ assert(mult_int(1, 123129) == 123129);
+ assert(mult_int(1, 123130) == 123130);
+ assert(mult_int(1, 123131) == 123131);
+ assert(mult_int(1, 123132) == 123132);
+ assert(mult_int(1, 123133) == 123133);
+ assert(mult_int(1, 123134) == 123134);
+ assert(mult_int(1, 123135) == 123135);
+ assert(mult_int(1, 123136) == 123136);
+ assert(mult_int(1, 123137) == 123137);
+ assert(mult_int(1, 123138) == 123138);
+ assert(mult_int(1, 123139) == 123139);
+ assert(mult_int(1, 123140) == 123140);
+ assert(mult_int(1, 123141) == 123141);
+ assert(mult_int(1, 123142) == 123142);
+ assert(mult_int(1, 123143) == 123143);
+ assert(mult_int(1, 123144) == 123144);
+ assert(mult_int(1, 123145) == 123145);
+ assert(mult_int(1, 123146) == 123146);
+ assert(mult_int(1, 123147) == 123147);
+ assert(mult_int(1, 123148) == 123148);
+ assert(mult_int(1, 123149) == 123149);
+ assert(mult_int(1, 123150) == 123150);
+ assert(mult_int(1, 123151) == 123151);
+ assert(mult_int(1, 123152) == 123152);
+ assert(mult_int(1, 123153) == 123153);
+ assert(mult_int(1, 123154) == 123154);
+ assert(mult_int(1, 123155) == 123155);
+ assert(mult_int(1, 123156) == 123156);
+ assert(mult_int(1, 123157) == 123157);
+ assert(mult_int(1, 123158) == 123158);
+ assert(mult_int(1, 123159) == 123159);
+ assert(mult_int(1, 123160) == 123160);
+ assert(mult_int(1, 123161) == 123161);
+ assert(mult_int(1, 123162) == 123162);
+ assert(mult_int(1, 123163) == 123163);
+ assert(mult_int(1, 123164) == 123164);
+ assert(mult_int(1, 123165) == 123165);
+ assert(mult_int(1, 123166) == 123166);
+ assert(mult_int(1, 123200) == 123200);
+ assert(mult_int(1, 123201) == 123201);
+ assert(mult_int(1, 123202) == 123202);
+ assert(mult_int(1, 123203) == 123203);
+ assert(mult_int(1, 123204) == 123204);
+ assert(mult_int(1, 123205) == 123205);
+ assert(mult_int(1, 123206) == 123206);
+ assert(mult_int(1, 123207) == 123207);
+ assert(mult_int(1, 123208) == 123208);
+ assert(mult_int(1, 123209) == 123209);
+ assert(mult_int(1, 123210) == 123210);
+ assert(mult_int(1, 123211) == 123211);
+ assert(mult_int(1, 123212) == 123212);
+ assert(mult_int(1, 123213) == 123213);
+ assert(mult_int(1, 123214) == 123214);
+ assert(mult_int(1, 123215) == 123215);
+ assert(mult_int(1, 123216) == 123216);
+ assert(mult_int(1, 123217) == 123217);
+ assert(mult_int(1, 123218) == 123218);
+ assert(mult_int(1, 123219) == 123219);
+ assert(mult_int(1, 123220) == 123220);
+ assert(mult_int(1, 123221) == 123221);
+ assert(mult_int(1, 123222) == 123222);
+ assert(mult_int(1, 123223) == 123223);
+ assert(mult_int(1, 123224) == 123224);
+ assert(mult_int(1, 123225) == 123225);
+ assert(mult_int(1, 123226) == 123226);
+ assert(mult_int(1, 123227) == 123227);
+ assert(mult_int(1, 123228) == 123228);
+ assert(mult_int(1, 123288) == 123288);
+ assert(mult_int(1, 123289) == 123289);
+ assert(mult_int(1, 123290) == 123290);
+ assert(mult_int(1, 123291) == 123291);
+ assert(mult_int(1, 123292) == 123292);
+ assert(mult_int(1, 123293) == 123293);
+ assert(mult_int(1, 123294) == 123294);
+ assert(mult_int(1, 123295) == 123295);
+ assert(mult_int(1, 123296) == 123296);
+ assert(mult_int(1, 123297) == 123297);
+ assert(mult_int(1, 123298) == 123298);
+ assert(mult_int(1, 123299) == 123299);
+ assert(mult_int(1, 123300) == 123300);
+ assert(mult_int(1, 123301) == 123301);
+ assert(mult_int(1, 123302) == 123302);
+ assert(mult_int(1, 123303) == 123303);
+ assert(mult_int(1, 123304) == 123304);
+ assert(mult_int(1, 123305) == 123305);
+ assert(mult_int(1, 123306) == 123306);
+ assert(mult_int(1, 123307) == 123307);
+ assert(mult_int(1, 123308) == 123308);
+ assert(mult_int(1, 123309) == 123309);
+ assert(mult_int(1, 123310) == 123310);
+ assert(mult_int(1, 123311) == 123311);
+ assert(mult_int(1, 123312) == 123312);
+ assert(mult_int(1, 125988) == 125988);
+ assert(mult_int(1, 125989) == 125989);
+ assert(mult_int(1, 125990) == 125990);
+ assert(mult_int(1, 125991) == 125991);
+ assert(mult_int(1, 125992) == 125992);
+ assert(mult_int(1, 125993) == 125993);
+ assert(mult_int(1, 125994) == 125994);
+ assert(mult_int(1, 125995) == 125995);
+ assert(mult_int(1, 125996) == 125996);
+ assert(mult_int(1, 125997) == 125997);
+ assert(mult_int(1, 125998) == 125998);
+ assert(mult_int(1, 125999) == 125999);
+ assert(mult_int(1, 126000) == 126000);
+ assert(mult_int(1, 126001) == 126001);
+ assert(mult_int(1, 126002) == 126002);
+ assert(mult_int(1, 126003) == 126003);
+ assert(mult_int(1, 126004) == 126004);
+ assert(mult_int(1, 126005) == 126005);
+ assert(mult_int(1, 126006) == 126006);
+ assert(mult_int(1, 126007) == 126007);
+ assert(mult_int(1, 126008) == 126008);
+ assert(mult_int(1, 126009) == 126009);
+ assert(mult_int(1, 126010) == 126010);
+ assert(mult_int(1, 126076) == 126076);
+ assert(mult_int(1, 126077) == 126077);
+ assert(mult_int(1, 126078) == 126078);
+ assert(mult_int(1, 126079) == 126079);
+ assert(mult_int(1, 126080) == 126080);
+ assert(mult_int(1, 126081) == 126081);
+ assert(mult_int(1, 126082) == 126082);
+ assert(mult_int(1, 126083) == 126083);
+ assert(mult_int(1, 126084) == 126084);
+ assert(mult_int(1, 126085) == 126085);
+ assert(mult_int(1, 126086) == 126086);
+ assert(mult_int(1, 126087) == 126087);
+ assert(mult_int(1, 126088) == 126088);
+ assert(mult_int(1, 126089) == 126089);
+ assert(mult_int(1, 126090) == 126090);
+ assert(mult_int(1, 126091) == 126091);
+ assert(mult_int(1, 126092) == 126092);
+ assert(mult_int(1, 126093) == 126093);
+ assert(mult_int(1, 126094) == 126094);
+ assert(mult_int(1, 126095) == 126095);
+ assert(mult_int(1, 126096) == 126096);
+ assert(mult_int(1, 126097) == 126097);
+ assert(mult_int(1, 126098) == 126098);
+ assert(mult_int(1, 137040) == 137040);
+ assert(mult_int(1, 137041) == 137041);
+ assert(mult_int(1, 137042) == 137042);
+ assert(mult_int(1, 137043) == 137043);
+ assert(mult_int(1, 137044) == 137044);
+ assert(mult_int(1, 137045) == 137045);
+ assert(mult_int(1, 137046) == 137046);
+ assert(mult_int(1, 137047) == 137047);
+ assert(mult_int(1, 137048) == 137048);
+ assert(mult_int(1, 137049) == 137049);
+ assert(mult_int(1, 137050) == 137050);
+ assert(mult_int(1, 137051) == 137051);
+ assert(mult_int(1, 137052) == 137052);
+ assert(mult_int(1, 137053) == 137053);
+ assert(mult_int(1, 137054) == 137054);
+ assert(mult_int(1, 137055) == 137055);
+ assert(mult_int(1, 137056) == 137056);
+ assert(mult_int(1, 137057) == 137057);
+ assert(mult_int(1, 137060) == 137060);
+ assert(mult_int(1, 137061) == 137061);
+ assert(mult_int(1, 137062) == 137062);
+ assert(mult_int(1, 137063) == 137063);
+ assert(mult_int(1, 137064) == 137064);
+ assert(mult_int(1, 137065) == 137065);
+ assert(mult_int(1, 137066) == 137066);
+ assert(mult_int(1, 137128) == 137128);
+ assert(mult_int(1, 137129) == 137129);
+ assert(mult_int(1, 137130) == 137130);
+ assert(mult_int(1, 137131) == 137131);
+ assert(mult_int(1, 137132) == 137132);
+ assert(mult_int(1, 137133) == 137133);
+ assert(mult_int(1, 137134) == 137134);
+ assert(mult_int(1, 137135) == 137135);
+ assert(mult_int(1, 137136) == 137136);
+ assert(mult_int(1, 137137) == 137137);
+ assert(mult_int(1, 137138) == 137138);
+ assert(mult_int(1, 137139) == 137139);
+ assert(mult_int(1, 137140) == 137140);
+ assert(mult_int(1, 137141) == 137141);
+ assert(mult_int(1, 137142) == 137142);
+ assert(mult_int(1, 137143) == 137143);
+ assert(mult_int(1, 137144) == 137144);
+ assert(mult_int(1, 137145) == 137145);
+ assert(mult_int(1, 137148) == 137148);
+ assert(mult_int(1, 137149) == 137149);
+ assert(mult_int(1, 137150) == 137150);
+ assert(mult_int(1, 137151) == 137151);
+ assert(mult_int(1, 137152) == 137152);
+ assert(mult_int(1, 137153) == 137153);
+ assert(mult_int(1, 137154) == 137154);
+ assert(mult_int(1, 137580) == 137580);
+ assert(mult_int(1, 137581) == 137581);
+ assert(mult_int(1, 137582) == 137582);
+ assert(mult_int(1, 137583) == 137583);
+ assert(mult_int(1, 137584) == 137584);
+ assert(mult_int(1, 137585) == 137585);
+ assert(mult_int(1, 137586) == 137586);
+ assert(mult_int(1, 137587) == 137587);
+ assert(mult_int(1, 137588) == 137588);
+ assert(mult_int(1, 137589) == 137589);
+ assert(mult_int(1, 137590) == 137590);
+ assert(mult_int(1, 137591) == 137591);
+ assert(mult_int(1, 137592) == 137592);
+ assert(mult_int(1, 137593) == 137593);
+ assert(mult_int(1, 137594) == 137594);
+ assert(mult_int(1, 137595) == 137595);
+ assert(mult_int(1, 137596) == 137596);
+ assert(mult_int(1, 137597) == 137597);
+ assert(mult_int(1, 137598) == 137598);
+ assert(mult_int(1, 137599) == 137599);
+ assert(mult_int(1, 137600) == 137600);
+ assert(mult_int(1, 137601) == 137601);
+ assert(mult_int(1, 137602) == 137602);
+ assert(mult_int(1, 137603) == 137603);
+ assert(mult_int(1, 137668) == 137668);
+ assert(mult_int(1, 137669) == 137669);
+ assert(mult_int(1, 137670) == 137670);
+ assert(mult_int(1, 137671) == 137671);
+ assert(mult_int(1, 137672) == 137672);
+ assert(mult_int(1, 137673) == 137673);
+ assert(mult_int(1, 137674) == 137674);
+ assert(mult_int(1, 137675) == 137675);
+ assert(mult_int(1, 137676) == 137676);
+ assert(mult_int(1, 137677) == 137677);
+ assert(mult_int(1, 137678) == 137678);
+ assert(mult_int(1, 137679) == 137679);
+ assert(mult_int(1, 137680) == 137680);
+ assert(mult_int(1, 137681) == 137681);
+ assert(mult_int(1, 137682) == 137682);
+ assert(mult_int(1, 137683) == 137683);
+ assert(mult_int(1, 137684) == 137684);
+ assert(mult_int(1, 137685) == 137685);
+ assert(mult_int(1, 137686) == 137686);
+ assert(mult_int(1, 137687) == 137687);
+ assert(mult_int(1, 137688) == 137688);
+ assert(mult_int(1, 137689) == 137689);
+ assert(mult_int(1, 137690) == 137690);
+ assert(mult_int(1, 137691) == 137691);
+ assert(mult_int(1, 137872) == 137872);
+ assert(mult_int(1, 137873) == 137873);
+ assert(mult_int(1, 137874) == 137874);
+ assert(mult_int(1, 137875) == 137875);
+ assert(mult_int(1, 137876) == 137876);
+ assert(mult_int(1, 137877) == 137877);
+ assert(mult_int(1, 137878) == 137878);
+ assert(mult_int(1, 137879) == 137879);
+ assert(mult_int(1, 137880) == 137880);
+ assert(mult_int(1, 137881) == 137881);
+ assert(mult_int(1, 137882) == 137882);
+ assert(mult_int(1, 137883) == 137883);
+ assert(mult_int(1, 137884) == 137884);
+ assert(mult_int(1, 137885) == 137885);
+ assert(mult_int(1, 137886) == 137886);
+ assert(mult_int(1, 137887) == 137887);
+ assert(mult_int(1, 137888) == 137888);
+ assert(mult_int(1, 137889) == 137889);
+ assert(mult_int(1, 137890) == 137890);
+ assert(mult_int(1, 137891) == 137891);
+ assert(mult_int(1, 137892) == 137892);
+ assert(mult_int(1, 137893) == 137893);
+ assert(mult_int(1, 137894) == 137894);
+ assert(mult_int(1, 137895) == 137895);
+ assert(mult_int(1, 137896) == 137896);
+ assert(mult_int(1, 137897) == 137897);
+ assert(mult_int(1, 137898) == 137898);
+ assert(mult_int(1, 137960) == 137960);
+ assert(mult_int(1, 137961) == 137961);
+ assert(mult_int(1, 137962) == 137962);
+ assert(mult_int(1, 137963) == 137963);
+ assert(mult_int(1, 137964) == 137964);
+ assert(mult_int(1, 137965) == 137965);
+ assert(mult_int(1, 137966) == 137966);
+ assert(mult_int(1, 137967) == 137967);
+ assert(mult_int(1, 137968) == 137968);
+ assert(mult_int(1, 137969) == 137969);
+ assert(mult_int(1, 137970) == 137970);
+ assert(mult_int(1, 137971) == 137971);
+ assert(mult_int(1, 137972) == 137972);
+ assert(mult_int(1, 137973) == 137973);
+ assert(mult_int(1, 137974) == 137974);
+ assert(mult_int(1, 137975) == 137975);
+ assert(mult_int(1, 137976) == 137976);
+ assert(mult_int(1, 137977) == 137977);
+ assert(mult_int(1, 137978) == 137978);
+ assert(mult_int(1, 137979) == 137979);
+ assert(mult_int(1, 137980) == 137980);
+ assert(mult_int(1, 137981) == 137981);
+ assert(mult_int(1, 137982) == 137982);
+ assert(mult_int(1, 137983) == 137983);
+ assert(mult_int(1, 137984) == 137984);
+ assert(mult_int(1, 137985) == 137985);
+ assert(mult_int(1, 137986) == 137986);
+ assert(mult_int(1, 138504) == 138504);
+ assert(mult_int(1, 138505) == 138505);
+ assert(mult_int(1, 138506) == 138506);
+ assert(mult_int(1, 138507) == 138507);
+ assert(mult_int(1, 138508) == 138508);
+ assert(mult_int(1, 138509) == 138509);
+ assert(mult_int(1, 138510) == 138510);
+ assert(mult_int(1, 138511) == 138511);
+ assert(mult_int(1, 138512) == 138512);
+ assert(mult_int(1, 138513) == 138513);
+ assert(mult_int(1, 138516) == 138516);
+ assert(mult_int(1, 138517) == 138517);
+ assert(mult_int(1, 138518) == 138518);
+ assert(mult_int(1, 138519) == 138519);
+ assert(mult_int(1, 138520) == 138520);
+ assert(mult_int(1, 138521) == 138521);
+ assert(mult_int(1, 138522) == 138522);
+ assert(mult_int(1, 138523) == 138523);
+ assert(mult_int(1, 138524) == 138524);
+ assert(mult_int(1, 138525) == 138525);
+ assert(mult_int(1, 138526) == 138526);
+ assert(mult_int(1, 138527) == 138527);
+ assert(mult_int(1, 138528) == 138528);
+ assert(mult_int(1, 138529) == 138529);
+ assert(mult_int(1, 138530) == 138530);
+ assert(mult_int(1, 138531) == 138531);
+ assert(mult_int(1, 138532) == 138532);
+ assert(mult_int(1, 138533) == 138533);
+ assert(mult_int(1, 138534) == 138534);
+ assert(mult_int(1, 138535) == 138535);
+ assert(mult_int(1, 138536) == 138536);
+ assert(mult_int(1, 138537) == 138537);
+ assert(mult_int(1, 138538) == 138538);
+ assert(mult_int(1, 138539) == 138539);
+ assert(mult_int(1, 138540) == 138540);
+ assert(mult_int(1, 138541) == 138541);
+ assert(mult_int(1, 138544) == 138544);
+ assert(mult_int(1, 138545) == 138545);
+ assert(mult_int(1, 138546) == 138546);
+ assert(mult_int(1, 138547) == 138547);
+ assert(mult_int(1, 138548) == 138548);
+ assert(mult_int(1, 138549) == 138549);
+ assert(mult_int(1, 138550) == 138550);
+ assert(mult_int(1, 138551) == 138551);
+ assert(mult_int(1, 138552) == 138552);
+ assert(mult_int(1, 138553) == 138553);
+ assert(mult_int(1, 138556) == 138556);
+ assert(mult_int(1, 138557) == 138557);
+ assert(mult_int(1, 138558) == 138558);
+ assert(mult_int(1, 138559) == 138559);
+ assert(mult_int(1, 138560) == 138560);
+ assert(mult_int(1, 138561) == 138561);
+ assert(mult_int(1, 138562) == 138562);
+ assert(mult_int(1, 138563) == 138563);
+ assert(mult_int(1, 138564) == 138564);
+ assert(mult_int(1, 138565) == 138565);
+ assert(mult_int(1, 138568) == 138568);
+ assert(mult_int(1, 138569) == 138569);
+ assert(mult_int(1, 138570) == 138570);
+ assert(mult_int(1, 138571) == 138571);
+ assert(mult_int(1, 138572) == 138572);
+ assert(mult_int(1, 138573) == 138573);
+ assert(mult_int(1, 138574) == 138574);
+ assert(mult_int(1, 138575) == 138575);
+ assert(mult_int(1, 138576) == 138576);
+ assert(mult_int(1, 138577) == 138577);
+ assert(mult_int(1, 138580) == 138580);
+ assert(mult_int(1, 138581) == 138581);
+ assert(mult_int(1, 138582) == 138582);
+ assert(mult_int(1, 138583) == 138583);
+ assert(mult_int(1, 138584) == 138584);
+ assert(mult_int(1, 138585) == 138585);
+ assert(mult_int(1, 138586) == 138586);
+ assert(mult_int(1, 138587) == 138587);
+ assert(mult_int(1, 138588) == 138588);
+ assert(mult_int(1, 138589) == 138589);
+ assert(mult_int(1, 138592) == 138592);
+ assert(mult_int(1, 138593) == 138593);
+ assert(mult_int(1, 138594) == 138594);
+ assert(mult_int(1, 138595) == 138595);
+ assert(mult_int(1, 138596) == 138596);
+ assert(mult_int(1, 138597) == 138597);
+ assert(mult_int(1, 138598) == 138598);
+ assert(mult_int(1, 138599) == 138599);
+ assert(mult_int(1, 138600) == 138600);
+ assert(mult_int(1, 138601) == 138601);
+ assert(mult_int(1, 138604) == 138604);
+ assert(mult_int(1, 138605) == 138605);
+ assert(mult_int(1, 138606) == 138606);
+ assert(mult_int(1, 138607) == 138607);
+ assert(mult_int(1, 138608) == 138608);
+ assert(mult_int(1, 138609) == 138609);
+ assert(mult_int(1, 138610) == 138610);
+ assert(mult_int(1, 138611) == 138611);
+ assert(mult_int(1, 138612) == 138612);
+ assert(mult_int(1, 138613) == 138613);
+ assert(mult_int(1, 138614) == 138614);
+ assert(mult_int(1, 138615) == 138615);
+ assert(mult_int(1, 138616) == 138616);
+ assert(mult_int(1, 138617) == 138617);
+ assert(mult_int(1, 138618) == 138618);
+ assert(mult_int(1, 138619) == 138619);
+ assert(mult_int(1, 138620) == 138620);
+ assert(mult_int(1, 138621) == 138621);
+ assert(mult_int(1, 138622) == 138622);
+ assert(mult_int(1, 138623) == 138623);
+ assert(mult_int(1, 138624) == 138624);
+ assert(mult_int(1, 138625) == 138625);
+ assert(mult_int(1, 138626) == 138626);
+ assert(mult_int(1, 138627) == 138627);
+ assert(mult_int(1, 138628) == 138628);
+ assert(mult_int(1, 138629) == 138629);
+ assert(mult_int(1, 138632) == 138632);
+ assert(mult_int(1, 138633) == 138633);
+ assert(mult_int(1, 138634) == 138634);
+ assert(mult_int(1, 138635) == 138635);
+ assert(mult_int(1, 138636) == 138636);
+ assert(mult_int(1, 138637) == 138637);
+ assert(mult_int(1, 138638) == 138638);
+ assert(mult_int(1, 138639) == 138639);
+ assert(mult_int(1, 138640) == 138640);
+ assert(mult_int(1, 138641) == 138641);
+ assert(mult_int(1, 138644) == 138644);
+ assert(mult_int(1, 138645) == 138645);
+ assert(mult_int(1, 138646) == 138646);
+ assert(mult_int(1, 138647) == 138647);
+ assert(mult_int(1, 138648) == 138648);
+ assert(mult_int(1, 138649) == 138649);
+ assert(mult_int(1, 138650) == 138650);
+ assert(mult_int(1, 138651) == 138651);
+ assert(mult_int(1, 138652) == 138652);
+ assert(mult_int(1, 138653) == 138653);
+ assert(mult_int(1, 138656) == 138656);
+ assert(mult_int(1, 138657) == 138657);
+ assert(mult_int(1, 138658) == 138658);
+ assert(mult_int(1, 138659) == 138659);
+ assert(mult_int(1, 138660) == 138660);
+ assert(mult_int(1, 138661) == 138661);
+ assert(mult_int(1, 138662) == 138662);
+ assert(mult_int(1, 138663) == 138663);
+ assert(mult_int(1, 138664) == 138664);
+ assert(mult_int(1, 138665) == 138665);
+ assert(mult_int(1, 138668) == 138668);
+ assert(mult_int(1, 138669) == 138669);
+ assert(mult_int(1, 138670) == 138670);
+ assert(mult_int(1, 138671) == 138671);
+ assert(mult_int(1, 138672) == 138672);
+ assert(mult_int(1, 138673) == 138673);
+ assert(mult_int(1, 138674) == 138674);
+ assert(mult_int(1, 138675) == 138675);
+ assert(mult_int(1, 138676) == 138676);
+ assert(mult_int(1, 138677) == 138677);
+ assert(mult_int(1, 144864) == 144864);
+ assert(mult_int(1, 144865) == 144865);
+ assert(mult_int(1, 144866) == 144866);
+ assert(mult_int(1, 144867) == 144867);
+ assert(mult_int(1, 144868) == 144868);
+ assert(mult_int(1, 144869) == 144869);
+ assert(mult_int(1, 144870) == 144870);
+ assert(mult_int(1, 144871) == 144871);
+ assert(mult_int(1, 144872) == 144872);
+ assert(mult_int(1, 144873) == 144873);
+ assert(mult_int(1, 144874) == 144874);
+ assert(mult_int(1, 144875) == 144875);
+ assert(mult_int(1, 144876) == 144876);
+ assert(mult_int(1, 144877) == 144877);
+ assert(mult_int(1, 144878) == 144878);
+ assert(mult_int(1, 144879) == 144879);
+ assert(mult_int(1, 144880) == 144880);
+ assert(mult_int(1, 144881) == 144881);
+ assert(mult_int(1, 144882) == 144882);
+ assert(mult_int(1, 144883) == 144883);
+ assert(mult_int(1, 144884) == 144884);
+ assert(mult_int(1, 144885) == 144885);
+ assert(mult_int(1, 144886) == 144886);
+ assert(mult_int(1, 144887) == 144887);
+ assert(mult_int(1, 144888) == 144888);
+ assert(mult_int(1, 144952) == 144952);
+ assert(mult_int(1, 144953) == 144953);
+ assert(mult_int(1, 144954) == 144954);
+ assert(mult_int(1, 144955) == 144955);
+ assert(mult_int(1, 144956) == 144956);
+ assert(mult_int(1, 144957) == 144957);
+ assert(mult_int(1, 144958) == 144958);
+ assert(mult_int(1, 144959) == 144959);
+ assert(mult_int(1, 144960) == 144960);
+ assert(mult_int(1, 144961) == 144961);
+ assert(mult_int(1, 144962) == 144962);
+ assert(mult_int(1, 144963) == 144963);
+ assert(mult_int(1, 144964) == 144964);
+ assert(mult_int(1, 144965) == 144965);
+ assert(mult_int(1, 144966) == 144966);
+ assert(mult_int(1, 144967) == 144967);
+ assert(mult_int(1, 144968) == 144968);
+ assert(mult_int(1, 144969) == 144969);
+ assert(mult_int(1, 144970) == 144970);
+ assert(mult_int(1, 144971) == 144971);
+ assert(mult_int(1, 144972) == 144972);
+ assert(mult_int(1, 144973) == 144973);
+ assert(mult_int(1, 144974) == 144974);
+ assert(mult_int(1, 144975) == 144975);
+ assert(mult_int(1, 144976) == 144976);
+ assert(mult_int(1, 20971524) == 20971524);
+ assert(mult_int(1, 20971525) == 20971525);
+ assert(mult_int(1, 20971526) == 20971526);
+ assert(mult_int(1, 20971527) == 20971527);
+ assert(mult_int(1, 20971528) == 20971528);
+ assert(mult_int(1, 20971529) == 20971529);
+ assert(mult_int(1, 20971530) == 20971530);
+ assert(mult_int(1, 20971531) == 20971531);
+ assert(mult_int(1, 20971532) == 20971532);
+ assert(mult_int(1, 20971533) == 20971533);
+ assert(mult_int(1, 20971534) == 20971534);
+ assert(mult_int(1, 20971535) == 20971535);
+ assert(mult_int(1, 20971536) == 20971536);
+ assert(mult_int(1, 20971537) == 20971537);
+ assert(mult_int(1, 3145728) == 3145728);
+ assert(mult_int(1, 3145729) == 3145729);
+ assert(mult_int(1, 3145730) == 3145730);
+ assert(mult_int(1, 3145731) == 3145731);
+ assert(mult_int(1, 3145732) == 3145732);
+ assert(mult_int(1, 3145733) == 3145733);
+ assert(mult_int(1, 3145734) == 3145734);
+ assert(mult_int(1, 3145735) == 3145735);
+ assert(mult_int(1, 3145736) == 3145736);
+ assert(mult_int(1, 3145737) == 3145737);
+ assert(mult_int(1, 3145738) == 3145738);
+ assert(mult_int(1, 3145739) == 3145739);
+ assert(mult_int(1, 3145740) == 3145740);
+ assert(mult_int(1, 3145741) == 3145741);
+ assert(mult_int(1, 3145742) == 3145742);
+ assert(mult_int(1, 318767104) == 318767104);
+ assert(mult_int(1, 50367776) == 50367776);
+ assert(mult_int(1, 50367777) == 50367777);
+ assert(mult_int(1, 50367824) == 50367824);
+ assert(mult_int(1, 50367825) == 50367825);
+ assert(mult_int(1, 50367872) == 50367872);
+ assert(mult_int(1, 58720273) == 58720273);
+ assert(mult_int(1, 58720274) == 58720274);
+ assert(mult_int(1, 58720275) == 58720275);
+ assert(mult_int(1, 58720315) == 58720315);
+ assert(mult_int(1, 58720316) == 58720316);
+ assert(mult_int(1, 58720317) == 58720317);
+ assert(mult_int(1, 58720332) == 58720332);
+ assert(mult_int(1, 58720333) == 58720333);
+ assert(mult_int(1, 58720334) == 58720334);
+ assert(mult_int(1, 6) == 6);
+ assert(mult_int(1, 8) == 8);
+ assert(mult_int(10, 0) == 0);
+ assert(mult_int(10, 1) == 10);
+ assert(mult_int(10, 2) == 20);
+ assert(mult_int(10, 3) == 30);
+ assert(mult_int(1024, 1) == 1024);
+ assert(mult_int(16, 0) == 0);
+ assert(mult_int(16, 3147986) == 50367776);
+ assert(mult_int(16, 3147988) == 50367808);
+ assert(mult_int(16, 3147989) == 50367824);
+ assert(mult_int(16, 3147991) == 50367856);
+ assert(mult_int(16, 3147992) == 50367872);
+ assert(mult_int(16, 3147994) == 50367904);
+ assert(mult_int(16, 3147995) == 50367920);
+ assert(mult_int(16, 3147998) == 50367968);
+ assert(mult_int(16, 3147999) == 50367984);
+ assert(mult_int(16, 3148000) == 50368000);
+ assert(mult_int(16, 3148001) == 50368016);
+ assert(mult_int(16, 3148002) == 50368032);
+ assert(mult_int(16, 3670060) == 58720960);
+ assert(mult_int(16, 3670065) == 58721040);
+ assert(mult_int(16, 3670067) == 58721072);
+ assert(mult_int(16, 3670069) == 58721104);
+ assert(mult_int(16, 3670070) == 58721120);
+ assert(mult_int(16, 3670074) == 58721184);
+ assert(mult_int(16, 3670075) == 58721200);
+ assert(mult_int(16, 3670077) == 58721232);
+ assert(mult_int(16, 3670079) == 58721264);
+ assert(mult_int(16, 3670082) == 58721312);
+ assert(mult_int(16, 3670083) == 58721328);
+ assert(mult_int(16, 3670084) == 58721344);
+ assert(mult_int(16, 3670085) == 58721360);
+ assert(mult_int(16, 3670086) == 58721376);
+ assert(mult_int(16, 66650) == 1066400);
+ assert(mult_int(16, 66652) == 1066432);
+ assert(mult_int(16, 66663) == 1066608);
+ assert(mult_int(16, 66676) == 1066816);
+ assert(mult_int(2, 0) == 0);
+ assert(mult_int(2, 11) == 22);
+ assert(mult_int(3, 11) == 33);
+ assert(mult_int(4, 110624798) == 442499192);
+ assert(mult_int(4, 110624799) == 442499196);
+ assert(mult_int(4, 110624800) == 442499200);
+ assert(mult_int(4, 12582917) == 50331668);
+ assert(mult_int(4, 12582918) == 50331672);
+ assert(mult_int(4, 12582919) == 50331676);
+ assert(mult_int(4, 12582920) == 50331680);
+ assert(mult_int(4, 12582924) == 50331696);
+ assert(mult_int(4, 12582933) == 50331732);
+ assert(mult_int(4, 12582934) == 50331736);
+ assert(mult_int(4, 12582938) == 50331752);
+ assert(mult_int(4, 12582962) == 50331848);
+ assert(mult_int(4, 12589764) == 50359056);
+ assert(mult_int(4, 12589765) == 50359060);
+ assert(mult_int(4, 12591944) == 50367776);
+ assert(mult_int(4, 12591945) == 50367780);
+ assert(mult_int(4, 12591946) == 50367784);
+ assert(mult_int(4, 12591956) == 50367824);
+ assert(mult_int(4, 12591957) == 50367828);
+ assert(mult_int(4, 12591958) == 50367832);
+ assert(mult_int(4, 12591959) == 50367836);
+ assert(mult_int(4, 12591960) == 50367840);
+ assert(mult_int(4, 12591961) == 50367844);
+ assert(mult_int(4, 12591962) == 50367848);
+ assert(mult_int(4, 12591963) == 50367852);
+ assert(mult_int(4, 12591964) == 50367856);
+ assert(mult_int(4, 12591965) == 50367860);
+ assert(mult_int(4, 12591966) == 50367864);
+ assert(mult_int(4, 12591967) == 50367868);
+ assert(mult_int(4, 12591968) == 50367872);
+ assert(mult_int(4, 12591969) == 50367876);
+ assert(mult_int(4, 12591970) == 50367880);
+ assert(mult_int(4, 12591971) == 50367884);
+ assert(mult_int(4, 12591972) == 50367888);
+ assert(mult_int(4, 12591973) == 50367892);
+ assert(mult_int(4, 12591974) == 50367896);
+ assert(mult_int(4, 12591975) == 50367900);
+ assert(mult_int(4, 12591976) == 50367904);
+ assert(mult_int(4, 12591977) == 50367908);
+ assert(mult_int(4, 12591978) == 50367912);
+ assert(mult_int(4, 12591979) == 50367916);
+ assert(mult_int(4, 12591980) == 50367920);
+ assert(mult_int(4, 12591981) == 50367924);
+ assert(mult_int(4, 12591982) == 50367928);
+ assert(mult_int(4, 12591983) == 50367932);
+ assert(mult_int(4, 12591984) == 50367936);
+ assert(mult_int(4, 12591985) == 50367940);
+ assert(mult_int(4, 12591986) == 50367944);
+ assert(mult_int(4, 12591987) == 50367948);
+ assert(mult_int(4, 12591988) == 50367952);
+ assert(mult_int(4, 12591989) == 50367956);
+ assert(mult_int(4, 12591990) == 50367960);
+ assert(mult_int(4, 12591991) == 50367964);
+ assert(mult_int(4, 12591992) == 50367968);
+ assert(mult_int(4, 12591993) == 50367972);
+ assert(mult_int(4, 12591994) == 50367976);
+ assert(mult_int(4, 12591995) == 50367980);
+ assert(mult_int(4, 13058048) == 52232192);
+ assert(mult_int(4, 13058049) == 52232196);
+ assert(mult_int(4, 13058050) == 52232200);
+ assert(mult_int(4, 13058051) == 52232204);
+ assert(mult_int(4, 13058052) == 52232208);
+ assert(mult_int(4, 13058053) == 52232212);
+ assert(mult_int(4, 13058054) == 52232216);
+ assert(mult_int(4, 13058055) == 52232220);
+ assert(mult_int(4, 13058056) == 52232224);
+ assert(mult_int(4, 13058064) == 52232256);
+ assert(mult_int(4, 13058065) == 52232260);
+ assert(mult_int(4, 13058066) == 52232264);
+ assert(mult_int(4, 13058067) == 52232268);
+ assert(mult_int(4, 13058068) == 52232272);
+ assert(mult_int(4, 13058069) == 52232276);
+ assert(mult_int(4, 13058070) == 52232280);
+ assert(mult_int(4, 13058071) == 52232284);
+ assert(mult_int(4, 13058072) == 52232288);
+ assert(mult_int(4, 13058073) == 52232292);
+ assert(mult_int(4, 13058074) == 52232296);
+ assert(mult_int(4, 13058075) == 52232300);
+ assert(mult_int(4, 13058076) == 52232304);
+ assert(mult_int(4, 13058077) == 52232308);
+ assert(mult_int(4, 13058078) == 52232312);
+ assert(mult_int(4, 13058079) == 52232316);
+ assert(mult_int(4, 13058080) == 52232320);
+ assert(mult_int(4, 13058081) == 52232324);
+ assert(mult_int(4, 13058082) == 52232328);
+ assert(mult_int(4, 13058083) == 52232332);
+ assert(mult_int(4, 13058084) == 52232336);
+ assert(mult_int(4, 13058085) == 52232340);
+ assert(mult_int(4, 13058086) == 52232344);
+ assert(mult_int(4, 13058087) == 52232348);
+ assert(mult_int(4, 13058088) == 52232352);
+ assert(mult_int(4, 13058089) == 52232356);
+ assert(mult_int(4, 13058090) == 52232360);
+ assert(mult_int(4, 13058091) == 52232364);
+ assert(mult_int(4, 13058092) == 52232368);
+ assert(mult_int(4, 13058093) == 52232372);
+ assert(mult_int(4, 13058094) == 52232376);
+ assert(mult_int(4, 13058095) == 52232380);
+ assert(mult_int(4, 13058096) == 52232384);
+ assert(mult_int(4, 13058097) == 52232388);
+ assert(mult_int(4, 13058098) == 52232392);
+ assert(mult_int(4, 13058099) == 52232396);
+ assert(mult_int(4, 13058100) == 52232400);
+ assert(mult_int(4, 13058101) == 52232404);
+ assert(mult_int(4, 13058102) == 52232408);
+ assert(mult_int(4, 13058103) == 52232412);
+ assert(mult_int(4, 13058104) == 52232416);
+ assert(mult_int(4, 13058105) == 52232420);
+ assert(mult_int(4, 13058106) == 52232424);
+ assert(mult_int(4, 13058107) == 52232428);
+ assert(mult_int(4, 13058108) == 52232432);
+ assert(mult_int(4, 13058109) == 52232436);
+ assert(mult_int(4, 13058110) == 52232440);
+ assert(mult_int(4, 13058111) == 52232444);
+ assert(mult_int(4, 13058112) == 52232448);
+ assert(mult_int(4, 13058113) == 52232452);
+ assert(mult_int(4, 13058114) == 52232456);
+ assert(mult_int(4, 13058115) == 52232460);
+ assert(mult_int(4, 13058116) == 52232464);
+ assert(mult_int(4, 13058126) == 52232504);
+ assert(mult_int(4, 13058127) == 52232508);
+ assert(mult_int(4, 13058128) == 52232512);
+ assert(mult_int(4, 13058129) == 52232516);
+ assert(mult_int(4, 13058142) == 52232568);
+ assert(mult_int(4, 13058143) == 52232572);
+ assert(mult_int(4, 13058149) == 52232596);
+ assert(mult_int(4, 13058232) == 52232928);
+ assert(mult_int(4, 13058356) == 52233424);
+ assert(mult_int(4, 13058357) == 52233428);
+ assert(mult_int(4, 13058358) == 52233432);
+ assert(mult_int(4, 13058359) == 52233436);
+ assert(mult_int(4, 13058360) == 52233440);
+ assert(mult_int(4, 13058361) == 52233444);
+ assert(mult_int(4, 13058362) == 52233448);
+ assert(mult_int(4, 13058363) == 52233452);
+ assert(mult_int(4, 13058364) == 52233456);
+ assert(mult_int(4, 13058365) == 52233460);
+ assert(mult_int(4, 13058366) == 52233464);
+ assert(mult_int(4, 13058367) == 52233468);
+ assert(mult_int(4, 13058368) == 52233472);
+ assert(mult_int(4, 13058369) == 52233476);
+ assert(mult_int(4, 13058370) == 52233480);
+ assert(mult_int(4, 13058371) == 52233484);
+ assert(mult_int(4, 13058372) == 52233488);
+ assert(mult_int(4, 13058373) == 52233492);
+ assert(mult_int(4, 13058374) == 52233496);
+ assert(mult_int(4, 13058375) == 52233500);
+ assert(mult_int(4, 13058376) == 52233504);
+ assert(mult_int(4, 13058377) == 52233508);
+ assert(mult_int(4, 13058378) == 52233512);
+ assert(mult_int(4, 13058379) == 52233516);
+ assert(mult_int(4, 13058380) == 52233520);
+ assert(mult_int(4, 13058381) == 52233524);
+ assert(mult_int(4, 13058382) == 52233528);
+ assert(mult_int(4, 13058383) == 52233532);
+ assert(mult_int(4, 13058384) == 52233536);
+ assert(mult_int(4, 13058385) == 52233540);
+ assert(mult_int(4, 13058386) == 52233544);
+ assert(mult_int(4, 13058387) == 52233548);
+ assert(mult_int(4, 13058388) == 52233552);
+ assert(mult_int(4, 13058389) == 52233556);
+ assert(mult_int(4, 13058390) == 52233560);
+ assert(mult_int(4, 13058391) == 52233564);
+ assert(mult_int(4, 13058392) == 52233568);
+ assert(mult_int(4, 13058393) == 52233572);
+ assert(mult_int(4, 13058394) == 52233576);
+ assert(mult_int(4, 13058395) == 52233580);
+ assert(mult_int(4, 13058396) == 52233584);
+ assert(mult_int(4, 13058397) == 52233588);
+ assert(mult_int(4, 13058398) == 52233592);
+ assert(mult_int(4, 13058399) == 52233596);
+ assert(mult_int(4, 13058400) == 52233600);
+ assert(mult_int(4, 13058401) == 52233604);
+ assert(mult_int(4, 13058402) == 52233608);
+ assert(mult_int(4, 13058403) == 52233612);
+ assert(mult_int(4, 13058404) == 52233616);
+ assert(mult_int(4, 13058405) == 52233620);
+ assert(mult_int(4, 13058406) == 52233624);
+ assert(mult_int(4, 13058407) == 52233628);
+ assert(mult_int(4, 13058408) == 52233632);
+ assert(mult_int(4, 13058409) == 52233636);
+ assert(mult_int(4, 13058410) == 52233640);
+ assert(mult_int(4, 13058411) == 52233644);
+ assert(mult_int(4, 13058412) == 52233648);
+ assert(mult_int(4, 13058413) == 52233652);
+ assert(mult_int(4, 13058414) == 52233656);
+ assert(mult_int(4, 13058415) == 52233660);
+ assert(mult_int(4, 13058416) == 52233664);
+ assert(mult_int(4, 13058417) == 52233668);
+ assert(mult_int(4, 13058418) == 52233672);
+ assert(mult_int(4, 13058419) == 52233676);
+ assert(mult_int(4, 13058420) == 52233680);
+ assert(mult_int(4, 13058421) == 52233684);
+ assert(mult_int(4, 13058422) == 52233688);
+ assert(mult_int(4, 13058423) == 52233692);
+ assert(mult_int(4, 13058424) == 52233696);
+ assert(mult_int(4, 13058425) == 52233700);
+ assert(mult_int(4, 13058426) == 52233704);
+ assert(mult_int(4, 13058427) == 52233708);
+ assert(mult_int(4, 13058428) == 52233712);
+ assert(mult_int(4, 13058429) == 52233716);
+ assert(mult_int(4, 13058430) == 52233720);
+ assert(mult_int(4, 13058431) == 52233724);
+ assert(mult_int(4, 13058432) == 52233728);
+ assert(mult_int(4, 13058433) == 52233732);
+ assert(mult_int(4, 13058434) == 52233736);
+ assert(mult_int(4, 13058435) == 52233740);
+ assert(mult_int(4, 13058436) == 52233744);
+ assert(mult_int(4, 13058437) == 52233748);
+ assert(mult_int(4, 13058438) == 52233752);
+ assert(mult_int(4, 13058439) == 52233756);
+ assert(mult_int(4, 13058440) == 52233760);
+ assert(mult_int(4, 13058441) == 52233764);
+ assert(mult_int(4, 13058442) == 52233768);
+ assert(mult_int(4, 13058443) == 52233772);
+ assert(mult_int(4, 13058444) == 52233776);
+ assert(mult_int(4, 13058445) == 52233780);
+ assert(mult_int(4, 13058446) == 52233784);
+ assert(mult_int(4, 13058447) == 52233788);
+ assert(mult_int(4, 13058448) == 52233792);
+ assert(mult_int(4, 13058449) == 52233796);
+ assert(mult_int(4, 13058450) == 52233800);
+ assert(mult_int(4, 13058451) == 52233804);
+ assert(mult_int(4, 13058452) == 52233808);
+ assert(mult_int(4, 13058453) == 52233812);
+ assert(mult_int(4, 13058454) == 52233816);
+ assert(mult_int(4, 13058455) == 52233820);
+ assert(mult_int(4, 13058456) == 52233824);
+ assert(mult_int(4, 13058457) == 52233828);
+ assert(mult_int(4, 13058458) == 52233832);
+ assert(mult_int(4, 13058459) == 52233836);
+ assert(mult_int(4, 13058460) == 52233840);
+ assert(mult_int(4, 13058461) == 52233844);
+ assert(mult_int(4, 13058462) == 52233848);
+ assert(mult_int(4, 13058463) == 52233852);
+ assert(mult_int(4, 13058464) == 52233856);
+ assert(mult_int(4, 13058465) == 52233860);
+ assert(mult_int(4, 13058466) == 52233864);
+ assert(mult_int(4, 13058467) == 52233868);
+ assert(mult_int(4, 13058468) == 52233872);
+ assert(mult_int(4, 13058469) == 52233876);
+ assert(mult_int(4, 13058470) == 52233880);
+ assert(mult_int(4, 13058476) == 52233904);
+ assert(mult_int(4, 13058477) == 52233908);
+ assert(mult_int(4, 13058478) == 52233912);
+ assert(mult_int(4, 13058479) == 52233916);
+ assert(mult_int(4, 13058480) == 52233920);
+ assert(mult_int(4, 13058481) == 52233924);
+ assert(mult_int(4, 13058482) == 52233928);
+ assert(mult_int(4, 13058483) == 52233932);
+ assert(mult_int(4, 13058484) == 52233936);
+ assert(mult_int(4, 13058485) == 52233940);
+ assert(mult_int(4, 13058486) == 52233944);
+ assert(mult_int(4, 13058487) == 52233948);
+ assert(mult_int(4, 13058488) == 52233952);
+ assert(mult_int(4, 13058489) == 52233956);
+ assert(mult_int(4, 13058490) == 52233960);
+ assert(mult_int(4, 13058496) == 52233984);
+ assert(mult_int(4, 13058497) == 52233988);
+ assert(mult_int(4, 13058498) == 52233992);
+ assert(mult_int(4, 13058499) == 52233996);
+ assert(mult_int(4, 13058500) == 52234000);
+ assert(mult_int(4, 13058501) == 52234004);
+ assert(mult_int(4, 13058502) == 52234008);
+ assert(mult_int(4, 13058503) == 52234012);
+ assert(mult_int(4, 13058504) == 52234016);
+ assert(mult_int(4, 13058505) == 52234020);
+ assert(mult_int(4, 13058511) == 52234044);
+ assert(mult_int(4, 13058512) == 52234048);
+ assert(mult_int(4, 13058513) == 52234052);
+ assert(mult_int(4, 13058514) == 52234056);
+ assert(mult_int(4, 13058515) == 52234060);
+ assert(mult_int(4, 13058516) == 52234064);
+ assert(mult_int(4, 13058517) == 52234068);
+ assert(mult_int(4, 13058518) == 52234072);
+ assert(mult_int(4, 13058519) == 52234076);
+ assert(mult_int(4, 13058520) == 52234080);
+ assert(mult_int(4, 13058521) == 52234084);
+ assert(mult_int(4, 13058522) == 52234088);
+ assert(mult_int(4, 13058523) == 52234092);
+ assert(mult_int(4, 13058524) == 52234096);
+ assert(mult_int(4, 13058525) == 52234100);
+ assert(mult_int(4, 13058526) == 52234104);
+ assert(mult_int(4, 13058527) == 52234108);
+ assert(mult_int(4, 13058528) == 52234112);
+ assert(mult_int(4, 13058529) == 52234116);
+ assert(mult_int(4, 13058530) == 52234120);
+ assert(mult_int(4, 13058531) == 52234124);
+ assert(mult_int(4, 13058532) == 52234128);
+ assert(mult_int(4, 13058550) == 52234200);
+ assert(mult_int(4, 13058551) == 52234204);
+ assert(mult_int(4, 13058552) == 52234208);
+ assert(mult_int(4, 13058553) == 52234212);
+ assert(mult_int(4, 13058554) == 52234216);
+ assert(mult_int(4, 13058555) == 52234220);
+ assert(mult_int(4, 13058556) == 52234224);
+ assert(mult_int(4, 13058557) == 52234228);
+ assert(mult_int(4, 13058558) == 52234232);
+ assert(mult_int(4, 13058559) == 52234236);
+ assert(mult_int(4, 13058560) == 52234240);
+ assert(mult_int(4, 13058561) == 52234244);
+ assert(mult_int(4, 13058562) == 52234248);
+ assert(mult_int(4, 13058563) == 52234252);
+ assert(mult_int(4, 13058564) == 52234256);
+ assert(mult_int(4, 13058565) == 52234260);
+ assert(mult_int(4, 13058566) == 52234264);
+ assert(mult_int(4, 13058567) == 52234268);
+ assert(mult_int(4, 13058568) == 52234272);
+ assert(mult_int(4, 13058569) == 52234276);
+ assert(mult_int(4, 13058570) == 52234280);
+ assert(mult_int(4, 13058571) == 52234284);
+ assert(mult_int(4, 13058572) == 52234288);
+ assert(mult_int(4, 13058573) == 52234292);
+ assert(mult_int(4, 13058574) == 52234296);
+ assert(mult_int(4, 13058575) == 52234300);
+ assert(mult_int(4, 13058576) == 52234304);
+ assert(mult_int(4, 13058577) == 52234308);
+ assert(mult_int(4, 13058578) == 52234312);
+ assert(mult_int(4, 13058579) == 52234316);
+ assert(mult_int(4, 13058580) == 52234320);
+ assert(mult_int(4, 13058581) == 52234324);
+ assert(mult_int(4, 13058582) == 52234328);
+ assert(mult_int(4, 13058583) == 52234332);
+ assert(mult_int(4, 13058584) == 52234336);
+ assert(mult_int(4, 13058585) == 52234340);
+ assert(mult_int(4, 13058586) == 52234344);
+ assert(mult_int(4, 13058587) == 52234348);
+ assert(mult_int(4, 13058588) == 52234352);
+ assert(mult_int(4, 13058589) == 52234356);
+ assert(mult_int(4, 13058602) == 52234408);
+ assert(mult_int(4, 13058603) == 52234412);
+ assert(mult_int(4, 13058604) == 52234416);
+ assert(mult_int(4, 13058605) == 52234420);
+ assert(mult_int(4, 13058606) == 52234424);
+ assert(mult_int(4, 13058607) == 52234428);
+ assert(mult_int(4, 13058608) == 52234432);
+ assert(mult_int(4, 13058609) == 52234436);
+ assert(mult_int(4, 13058610) == 52234440);
+ assert(mult_int(4, 13058611) == 52234444);
+ assert(mult_int(4, 13058612) == 52234448);
+ assert(mult_int(4, 13058613) == 52234452);
+ assert(mult_int(4, 13058614) == 52234456);
+ assert(mult_int(4, 13058615) == 52234460);
+ assert(mult_int(4, 13058616) == 52234464);
+ assert(mult_int(4, 13058617) == 52234468);
+ assert(mult_int(4, 13058618) == 52234472);
+ assert(mult_int(4, 13058619) == 52234476);
+ assert(mult_int(4, 13058620) == 52234480);
+ assert(mult_int(4, 13058621) == 52234484);
+ assert(mult_int(4, 13058623) == 52234492);
+ assert(mult_int(4, 13058624) == 52234496);
+ assert(mult_int(4, 13058625) == 52234500);
+ assert(mult_int(4, 13058626) == 52234504);
+ assert(mult_int(4, 13058627) == 52234508);
+ assert(mult_int(4, 13058628) == 52234512);
+ assert(mult_int(4, 13058629) == 52234516);
+ assert(mult_int(4, 13058630) == 52234520);
+ assert(mult_int(4, 13058631) == 52234524);
+ assert(mult_int(4, 13058632) == 52234528);
+ assert(mult_int(4, 13058633) == 52234532);
+ assert(mult_int(4, 13058634) == 52234536);
+ assert(mult_int(4, 13058635) == 52234540);
+ assert(mult_int(4, 13058636) == 52234544);
+ assert(mult_int(4, 13058637) == 52234548);
+ assert(mult_int(4, 13058638) == 52234552);
+ assert(mult_int(4, 13058639) == 52234556);
+ assert(mult_int(4, 13058640) == 52234560);
+ assert(mult_int(4, 13058641) == 52234564);
+ assert(mult_int(4, 13058642) == 52234568);
+ assert(mult_int(4, 13058643) == 52234572);
+ assert(mult_int(4, 13058644) == 52234576);
+ assert(mult_int(4, 13058645) == 52234580);
+ assert(mult_int(4, 13058646) == 52234584);
+ assert(mult_int(4, 13058647) == 52234588);
+ assert(mult_int(4, 13058648) == 52234592);
+ assert(mult_int(4, 13058649) == 52234596);
+ assert(mult_int(4, 13058650) == 52234600);
+ assert(mult_int(4, 13058651) == 52234604);
+ assert(mult_int(4, 13058652) == 52234608);
+ assert(mult_int(4, 13058653) == 52234612);
+ assert(mult_int(4, 13058654) == 52234616);
+ assert(mult_int(4, 13058655) == 52234620);
+ assert(mult_int(4, 13058656) == 52234624);
+ assert(mult_int(4, 13058657) == 52234628);
+ assert(mult_int(4, 13058658) == 52234632);
+ assert(mult_int(4, 13058659) == 52234636);
+ assert(mult_int(4, 13058660) == 52234640);
+ assert(mult_int(4, 13058661) == 52234644);
+ assert(mult_int(4, 13058662) == 52234648);
+ assert(mult_int(4, 13058663) == 52234652);
+ assert(mult_int(4, 13058664) == 52234656);
+ assert(mult_int(4, 13058665) == 52234660);
+ assert(mult_int(4, 13058666) == 52234664);
+ assert(mult_int(4, 13058667) == 52234668);
+ assert(mult_int(4, 13058668) == 52234672);
+ assert(mult_int(4, 13058669) == 52234676);
+ assert(mult_int(4, 13058670) == 52234680);
+ assert(mult_int(4, 13058671) == 52234684);
+ assert(mult_int(4, 13058672) == 52234688);
+ assert(mult_int(4, 13058673) == 52234692);
+ assert(mult_int(4, 13058674) == 52234696);
+ assert(mult_int(4, 13058675) == 52234700);
+ assert(mult_int(4, 13058676) == 52234704);
+ assert(mult_int(4, 13058677) == 52234708);
+ assert(mult_int(4, 13058679) == 52234716);
+ assert(mult_int(4, 13058680) == 52234720);
+ assert(mult_int(4, 13058681) == 52234724);
+ assert(mult_int(4, 13058682) == 52234728);
+ assert(mult_int(4, 13058683) == 52234732);
+ assert(mult_int(4, 13058684) == 52234736);
+ assert(mult_int(4, 13058685) == 52234740);
+ assert(mult_int(4, 13058686) == 52234744);
+ assert(mult_int(4, 13058687) == 52234748);
+ assert(mult_int(4, 13058690) == 52234760);
+ assert(mult_int(4, 13058691) == 52234764);
+ assert(mult_int(4, 13058692) == 52234768);
+ assert(mult_int(4, 13058693) == 52234772);
+ assert(mult_int(4, 13058694) == 52234776);
+ assert(mult_int(4, 13058695) == 52234780);
+ assert(mult_int(4, 13058696) == 52234784);
+ assert(mult_int(4, 13058697) == 52234788);
+ assert(mult_int(4, 13058698) == 52234792);
+ assert(mult_int(4, 13058699) == 52234796);
+ assert(mult_int(4, 13058700) == 52234800);
+ assert(mult_int(4, 13058701) == 52234804);
+ assert(mult_int(4, 13058702) == 52234808);
+ assert(mult_int(4, 13058703) == 52234812);
+ assert(mult_int(4, 13058704) == 52234816);
+ assert(mult_int(4, 13058705) == 52234820);
+ assert(mult_int(4, 13058706) == 52234824);
+ assert(mult_int(4, 13058707) == 52234828);
+ assert(mult_int(4, 13058708) == 52234832);
+ assert(mult_int(4, 13058709) == 52234836);
+ assert(mult_int(4, 13058710) == 52234840);
+ assert(mult_int(4, 13058711) == 52234844);
+ assert(mult_int(4, 13058712) == 52234848);
+ assert(mult_int(4, 13058713) == 52234852);
+ assert(mult_int(4, 13058714) == 52234856);
+ assert(mult_int(4, 13058715) == 52234860);
+ assert(mult_int(4, 13058716) == 52234864);
+ assert(mult_int(4, 13058717) == 52234868);
+ assert(mult_int(4, 13058718) == 52234872);
+ assert(mult_int(4, 13058719) == 52234876);
+ assert(mult_int(4, 13058720) == 52234880);
+ assert(mult_int(4, 13058721) == 52234884);
+ assert(mult_int(4, 13058722) == 52234888);
+ assert(mult_int(4, 13058723) == 52234892);
+ assert(mult_int(4, 13058724) == 52234896);
+ assert(mult_int(4, 13058725) == 52234900);
+ assert(mult_int(4, 13058726) == 52234904);
+ assert(mult_int(4, 13058727) == 52234908);
+ assert(mult_int(4, 13058728) == 52234912);
+ assert(mult_int(4, 13058729) == 52234916);
+ assert(mult_int(4, 13058730) == 52234920);
+ assert(mult_int(4, 13058731) == 52234924);
+ assert(mult_int(4, 13058732) == 52234928);
+ assert(mult_int(4, 13058733) == 52234932);
+ assert(mult_int(4, 13058734) == 52234936);
+ assert(mult_int(4, 13058735) == 52234940);
+ assert(mult_int(4, 13058736) == 52234944);
+ assert(mult_int(4, 13058737) == 52234948);
+ assert(mult_int(4, 13058738) == 52234952);
+ assert(mult_int(4, 13058739) == 52234956);
+ assert(mult_int(4, 13058740) == 52234960);
+ assert(mult_int(4, 13058741) == 52234964);
+ assert(mult_int(4, 13058742) == 52234968);
+ assert(mult_int(4, 13058743) == 52234972);
+ assert(mult_int(4, 13058744) == 52234976);
+ assert(mult_int(4, 13058745) == 52234980);
+ assert(mult_int(4, 13058746) == 52234984);
+ assert(mult_int(4, 13058747) == 52234988);
+ assert(mult_int(4, 13058748) == 52234992);
+ assert(mult_int(4, 13058749) == 52234996);
+ assert(mult_int(4, 13058750) == 52235000);
+ assert(mult_int(4, 13058754) == 52235016);
+ assert(mult_int(4, 13058755) == 52235020);
+ assert(mult_int(4, 13058756) == 52235024);
+ assert(mult_int(4, 13058757) == 52235028);
+ assert(mult_int(4, 13058758) == 52235032);
+ assert(mult_int(4, 13058759) == 52235036);
+ assert(mult_int(4, 13058760) == 52235040);
+ assert(mult_int(4, 13058761) == 52235044);
+ assert(mult_int(4, 13058762) == 52235048);
+ assert(mult_int(4, 13058765) == 52235060);
+ assert(mult_int(4, 13058766) == 52235064);
+ assert(mult_int(4, 13058767) == 52235068);
+ assert(mult_int(4, 13058768) == 52235072);
+ assert(mult_int(4, 13058772) == 52235088);
+ assert(mult_int(4, 13058773) == 52235092);
+ assert(mult_int(4, 13058774) == 52235096);
+ assert(mult_int(4, 13058775) == 52235100);
+ assert(mult_int(4, 13058776) == 52235104);
+ assert(mult_int(4, 13058777) == 52235108);
+ assert(mult_int(4, 13058778) == 52235112);
+ assert(mult_int(4, 13058779) == 52235116);
+ assert(mult_int(4, 13058780) == 52235120);
+ assert(mult_int(4, 13058781) == 52235124);
+ assert(mult_int(4, 13058782) == 52235128);
+ assert(mult_int(4, 13058783) == 52235132);
+ assert(mult_int(4, 13058784) == 52235136);
+ assert(mult_int(4, 13058785) == 52235140);
+ assert(mult_int(4, 13058786) == 52235144);
+ assert(mult_int(4, 13058787) == 52235148);
+ assert(mult_int(4, 13058788) == 52235152);
+ assert(mult_int(4, 13058789) == 52235156);
+ assert(mult_int(4, 13058790) == 52235160);
+ assert(mult_int(4, 13058791) == 52235164);
+ assert(mult_int(4, 13058792) == 52235168);
+ assert(mult_int(4, 13058793) == 52235172);
+ assert(mult_int(4, 13058794) == 52235176);
+ assert(mult_int(4, 13058795) == 52235180);
+ assert(mult_int(4, 13058796) == 52235184);
+ assert(mult_int(4, 13058797) == 52235188);
+ assert(mult_int(4, 13058798) == 52235192);
+ assert(mult_int(4, 13058799) == 52235196);
+ assert(mult_int(4, 13058800) == 52235200);
+ assert(mult_int(4, 13058801) == 52235204);
+ assert(mult_int(4, 13058802) == 52235208);
+ assert(mult_int(4, 13058803) == 52235212);
+ assert(mult_int(4, 13058804) == 52235216);
+ assert(mult_int(4, 13058805) == 52235220);
+ assert(mult_int(4, 13058806) == 52235224);
+ assert(mult_int(4, 13058807) == 52235228);
+ assert(mult_int(4, 13058808) == 52235232);
+ assert(mult_int(4, 13058809) == 52235236);
+ assert(mult_int(4, 13058810) == 52235240);
+ assert(mult_int(4, 13058811) == 52235244);
+ assert(mult_int(4, 13058812) == 52235248);
+ assert(mult_int(4, 13058813) == 52235252);
+ assert(mult_int(4, 13058814) == 52235256);
+ assert(mult_int(4, 13058815) == 52235260);
+ assert(mult_int(4, 13058816) == 52235264);
+ assert(mult_int(4, 13058817) == 52235268);
+ assert(mult_int(4, 13058818) == 52235272);
+ assert(mult_int(4, 13058819) == 52235276);
+ assert(mult_int(4, 13058823) == 52235292);
+ assert(mult_int(4, 13058824) == 52235296);
+ assert(mult_int(4, 13058825) == 52235300);
+ assert(mult_int(4, 13058826) == 52235304);
+ assert(mult_int(4, 13058827) == 52235308);
+ assert(mult_int(4, 13058828) == 52235312);
+ assert(mult_int(4, 13058829) == 52235316);
+ assert(mult_int(4, 13058830) == 52235320);
+ assert(mult_int(4, 13058831) == 52235324);
+ assert(mult_int(4, 13058834) == 52235336);
+ assert(mult_int(4, 13058835) == 52235340);
+ assert(mult_int(4, 13058836) == 52235344);
+ assert(mult_int(4, 13058837) == 52235348);
+ assert(mult_int(4, 13058841) == 52235364);
+ assert(mult_int(4, 13058842) == 52235368);
+ assert(mult_int(4, 13058843) == 52235372);
+ assert(mult_int(4, 13058844) == 52235376);
+ assert(mult_int(4, 13058845) == 52235380);
+ assert(mult_int(4, 13058846) == 52235384);
+ assert(mult_int(4, 13058847) == 52235388);
+ assert(mult_int(4, 13058848) == 52235392);
+ assert(mult_int(4, 13058849) == 52235396);
+ assert(mult_int(4, 13058850) == 52235400);
+ assert(mult_int(4, 13058851) == 52235404);
+ assert(mult_int(4, 13058852) == 52235408);
+ assert(mult_int(4, 13058853) == 52235412);
+ assert(mult_int(4, 13058854) == 52235416);
+ assert(mult_int(4, 13058855) == 52235420);
+ assert(mult_int(4, 13058856) == 52235424);
+ assert(mult_int(4, 13058857) == 52235428);
+ assert(mult_int(4, 13058858) == 52235432);
+ assert(mult_int(4, 13058859) == 52235436);
+ assert(mult_int(4, 13058860) == 52235440);
+ assert(mult_int(4, 13058861) == 52235444);
+ assert(mult_int(4, 13058862) == 52235448);
+ assert(mult_int(4, 13058863) == 52235452);
+ assert(mult_int(4, 13058864) == 52235456);
+ assert(mult_int(4, 13058865) == 52235460);
+ assert(mult_int(4, 13058866) == 52235464);
+ assert(mult_int(4, 13058867) == 52235468);
+ assert(mult_int(4, 13058868) == 52235472);
+ assert(mult_int(4, 13058869) == 52235476);
+ assert(mult_int(4, 13058870) == 52235480);
+ assert(mult_int(4, 13058871) == 52235484);
+ assert(mult_int(4, 13058872) == 52235488);
+ assert(mult_int(4, 13058873) == 52235492);
+ assert(mult_int(4, 13058874) == 52235496);
+ assert(mult_int(4, 13058875) == 52235500);
+ assert(mult_int(4, 13058876) == 52235504);
+ assert(mult_int(4, 13058877) == 52235508);
+ assert(mult_int(4, 13058878) == 52235512);
+ assert(mult_int(4, 13058879) == 52235516);
+ assert(mult_int(4, 13058880) == 52235520);
+ assert(mult_int(4, 13058881) == 52235524);
+ assert(mult_int(4, 13058882) == 52235528);
+ assert(mult_int(4, 13058883) == 52235532);
+ assert(mult_int(4, 13058884) == 52235536);
+ assert(mult_int(4, 13058885) == 52235540);
+ assert(mult_int(4, 13058889) == 52235556);
+ assert(mult_int(4, 13058890) == 52235560);
+ assert(mult_int(4, 13058891) == 52235564);
+ assert(mult_int(4, 13058892) == 52235568);
+ assert(mult_int(4, 13058893) == 52235572);
+ assert(mult_int(4, 13058894) == 52235576);
+ assert(mult_int(4, 13058895) == 52235580);
+ assert(mult_int(4, 13058898) == 52235592);
+ assert(mult_int(4, 13058899) == 52235596);
+ assert(mult_int(4, 13058900) == 52235600);
+ assert(mult_int(4, 13058901) == 52235604);
+ assert(mult_int(4, 13058905) == 52235620);
+ assert(mult_int(4, 13058906) == 52235624);
+ assert(mult_int(4, 13058907) == 52235628);
+ assert(mult_int(4, 13058908) == 52235632);
+ assert(mult_int(4, 13058909) == 52235636);
+ assert(mult_int(4, 13058910) == 52235640);
+ assert(mult_int(4, 13058911) == 52235644);
+ assert(mult_int(4, 13058912) == 52235648);
+ assert(mult_int(4, 13058913) == 52235652);
+ assert(mult_int(4, 13058914) == 52235656);
+ assert(mult_int(4, 13058915) == 52235660);
+ assert(mult_int(4, 13058916) == 52235664);
+ assert(mult_int(4, 13058917) == 52235668);
+ assert(mult_int(4, 13058918) == 52235672);
+ assert(mult_int(4, 13058919) == 52235676);
+ assert(mult_int(4, 13058920) == 52235680);
+ assert(mult_int(4, 13058921) == 52235684);
+ assert(mult_int(4, 13058922) == 52235688);
+ assert(mult_int(4, 13058923) == 52235692);
+ assert(mult_int(4, 13058924) == 52235696);
+ assert(mult_int(4, 13058925) == 52235700);
+ assert(mult_int(4, 13058926) == 52235704);
+ assert(mult_int(4, 13058927) == 52235708);
+ assert(mult_int(4, 13058928) == 52235712);
+ assert(mult_int(4, 13058929) == 52235716);
+ assert(mult_int(4, 13058930) == 52235720);
+ assert(mult_int(4, 13058931) == 52235724);
+ assert(mult_int(4, 13058932) == 52235728);
+ assert(mult_int(4, 13058933) == 52235732);
+ assert(mult_int(4, 13058934) == 52235736);
+ assert(mult_int(4, 13058935) == 52235740);
+ assert(mult_int(4, 13058936) == 52235744);
+ assert(mult_int(4, 13058937) == 52235748);
+ assert(mult_int(4, 13058938) == 52235752);
+ assert(mult_int(4, 13058939) == 52235756);
+ assert(mult_int(4, 13058940) == 52235760);
+ assert(mult_int(4, 13058941) == 52235764);
+ assert(mult_int(4, 13058942) == 52235768);
+ assert(mult_int(4, 13058943) == 52235772);
+ assert(mult_int(4, 13058944) == 52235776);
+ assert(mult_int(4, 13058945) == 52235780);
+ assert(mult_int(4, 13058946) == 52235784);
+ assert(mult_int(4, 13058947) == 52235788);
+ assert(mult_int(4, 13058948) == 52235792);
+ assert(mult_int(4, 13058949) == 52235796);
+ assert(mult_int(4, 13058950) == 52235800);
+ assert(mult_int(4, 13058951) == 52235804);
+ assert(mult_int(4, 13058952) == 52235808);
+ assert(mult_int(4, 13058953) == 52235812);
+ assert(mult_int(4, 13058954) == 52235816);
+ assert(mult_int(4, 13058955) == 52235820);
+ assert(mult_int(4, 13058956) == 52235824);
+ assert(mult_int(4, 13058957) == 52235828);
+ assert(mult_int(4, 13058958) == 52235832);
+ assert(mult_int(4, 13058966) == 52235864);
+ assert(mult_int(4, 13058967) == 52235868);
+ assert(mult_int(4, 13058968) == 52235872);
+ assert(mult_int(4, 13058969) == 52235876);
+ assert(mult_int(4, 13058970) == 52235880);
+ assert(mult_int(4, 13058971) == 52235884);
+ assert(mult_int(4, 13058972) == 52235888);
+ assert(mult_int(4, 13058973) == 52235892);
+ assert(mult_int(4, 13058974) == 52235896);
+ assert(mult_int(4, 13058975) == 52235900);
+ assert(mult_int(4, 13058976) == 52235904);
+ assert(mult_int(4, 13058977) == 52235908);
+ assert(mult_int(4, 13058978) == 52235912);
+ assert(mult_int(4, 13058979) == 52235916);
+ assert(mult_int(4, 13059023) == 52236092);
+ assert(mult_int(4, 13059024) == 52236096);
+ assert(mult_int(4, 13059025) == 52236100);
+ assert(mult_int(4, 13059026) == 52236104);
+ assert(mult_int(4, 13059027) == 52236108);
+ assert(mult_int(4, 13059028) == 52236112);
+ assert(mult_int(4, 13059029) == 52236116);
+ assert(mult_int(4, 13059030) == 52236120);
+ assert(mult_int(4, 13059031) == 52236124);
+ assert(mult_int(4, 13059032) == 52236128);
+ assert(mult_int(4, 13059033) == 52236132);
+ assert(mult_int(4, 13059034) == 52236136);
+ assert(mult_int(4, 13059035) == 52236140);
+ assert(mult_int(4, 13059036) == 52236144);
+ assert(mult_int(4, 13059037) == 52236148);
+ assert(mult_int(4, 13059038) == 52236152);
+ assert(mult_int(4, 13059039) == 52236156);
+ assert(mult_int(4, 13059043) == 52236172);
+ assert(mult_int(4, 13059044) == 52236176);
+ assert(mult_int(4, 13059045) == 52236180);
+ assert(mult_int(4, 13059046) == 52236184);
+ assert(mult_int(4, 13059047) == 52236188);
+ assert(mult_int(4, 13059048) == 52236192);
+ assert(mult_int(4, 13059052) == 52236208);
+ assert(mult_int(4, 13059053) == 52236212);
+ assert(mult_int(4, 13059054) == 52236216);
+ assert(mult_int(4, 13059055) == 52236220);
+ assert(mult_int(4, 13059056) == 52236224);
+ assert(mult_int(4, 13059057) == 52236228);
+ assert(mult_int(4, 13059095) == 52236380);
+ assert(mult_int(4, 13059096) == 52236384);
+ assert(mult_int(4, 13059097) == 52236388);
+ assert(mult_int(4, 13059098) == 52236392);
+ assert(mult_int(4, 13059099) == 52236396);
+ assert(mult_int(4, 13059102) == 52236408);
+ assert(mult_int(4, 13059103) == 52236412);
+ assert(mult_int(4, 13059104) == 52236416);
+ assert(mult_int(4, 13059105) == 52236420);
+ assert(mult_int(4, 13059106) == 52236424);
+ assert(mult_int(4, 13059107) == 52236428);
+ assert(mult_int(4, 13059108) == 52236432);
+ assert(mult_int(4, 13059109) == 52236436);
+ assert(mult_int(4, 13059112) == 52236448);
+ assert(mult_int(4, 13059113) == 52236452);
+ assert(mult_int(4, 13059118) == 52236472);
+ assert(mult_int(4, 13059119) == 52236476);
+ assert(mult_int(4, 13059120) == 52236480);
+ assert(mult_int(4, 13059121) == 52236484);
+ assert(mult_int(4, 13059122) == 52236488);
+ assert(mult_int(4, 13059123) == 52236492);
+ assert(mult_int(4, 13059124) == 52236496);
+ assert(mult_int(4, 13059125) == 52236500);
+ assert(mult_int(4, 13059126) == 52236504);
+ assert(mult_int(4, 13059127) == 52236508);
+ assert(mult_int(4, 13059128) == 52236512);
+ assert(mult_int(4, 13059129) == 52236516);
+ assert(mult_int(4, 13059130) == 52236520);
+ assert(mult_int(4, 13059131) == 52236524);
+ assert(mult_int(4, 13059132) == 52236528);
+ assert(mult_int(4, 13059133) == 52236532);
+ assert(mult_int(4, 13059142) == 52236568);
+ assert(mult_int(4, 13059143) == 52236572);
+ assert(mult_int(4, 13059144) == 52236576);
+ assert(mult_int(4, 13059145) == 52236580);
+ assert(mult_int(4, 13059146) == 52236584);
+ assert(mult_int(4, 13059147) == 52236588);
+ assert(mult_int(4, 13059148) == 52236592);
+ assert(mult_int(4, 13059149) == 52236596);
+ assert(mult_int(4, 13059150) == 52236600);
+ assert(mult_int(4, 13059151) == 52236604);
+ assert(mult_int(4, 13059152) == 52236608);
+ assert(mult_int(4, 13059153) == 52236612);
+ assert(mult_int(4, 13059154) == 52236616);
+ assert(mult_int(4, 13059155) == 52236620);
+ assert(mult_int(4, 13059156) == 52236624);
+ assert(mult_int(4, 13059157) == 52236628);
+ assert(mult_int(4, 13059158) == 52236632);
+ assert(mult_int(4, 13059159) == 52236636);
+ assert(mult_int(4, 13059160) == 52236640);
+ assert(mult_int(4, 13059161) == 52236644);
+ assert(mult_int(4, 13059168) == 52236672);
+ assert(mult_int(4, 13059169) == 52236676);
+ assert(mult_int(4, 13059170) == 52236680);
+ assert(mult_int(4, 13059171) == 52236684);
+ assert(mult_int(4, 13059172) == 52236688);
+ assert(mult_int(4, 13059173) == 52236692);
+ assert(mult_int(4, 13059174) == 52236696);
+ assert(mult_int(4, 13059175) == 52236700);
+ assert(mult_int(4, 13059176) == 52236704);
+ assert(mult_int(4, 13059177) == 52236708);
+ assert(mult_int(4, 13059178) == 52236712);
+ assert(mult_int(4, 13059179) == 52236716);
+ assert(mult_int(4, 13059180) == 52236720);
+ assert(mult_int(4, 13059181) == 52236724);
+ assert(mult_int(4, 13059182) == 52236728);
+ assert(mult_int(4, 13059183) == 52236732);
+ assert(mult_int(4, 13059184) == 52236736);
+ assert(mult_int(4, 13059185) == 52236740);
+ assert(mult_int(4, 13059186) == 52236744);
+ assert(mult_int(4, 13059187) == 52236748);
+ assert(mult_int(4, 13059188) == 52236752);
+ assert(mult_int(4, 13059189) == 52236756);
+ assert(mult_int(4, 13059190) == 52236760);
+ assert(mult_int(4, 13059191) == 52236764);
+ assert(mult_int(4, 13059192) == 52236768);
+ assert(mult_int(4, 13059195) == 52236780);
+ assert(mult_int(4, 13059196) == 52236784);
+ assert(mult_int(4, 13059198) == 52236792);
+ assert(mult_int(4, 13059199) == 52236796);
+ assert(mult_int(4, 13059200) == 52236800);
+ assert(mult_int(4, 13059201) == 52236804);
+ assert(mult_int(4, 13059202) == 52236808);
+ assert(mult_int(4, 13059203) == 52236812);
+ assert(mult_int(4, 13059208) == 52236832);
+ assert(mult_int(4, 13059209) == 52236836);
+ assert(mult_int(4, 13059221) == 52236884);
+ assert(mult_int(4, 13059222) == 52236888);
+ assert(mult_int(4, 13059223) == 52236892);
+ assert(mult_int(4, 13059239) == 52236956);
+ assert(mult_int(4, 13059240) == 52236960);
+ assert(mult_int(4, 13059241) == 52236964);
+ assert(mult_int(4, 13059242) == 52236968);
+ assert(mult_int(4, 13059243) == 52236972);
+ assert(mult_int(4, 13059244) == 52236976);
+ assert(mult_int(4, 13059245) == 52236980);
+ assert(mult_int(4, 13059246) == 52236984);
+ assert(mult_int(4, 13059247) == 52236988);
+ assert(mult_int(4, 13059248) == 52236992);
+ assert(mult_int(4, 13059249) == 52236996);
+ assert(mult_int(4, 13059250) == 52237000);
+ assert(mult_int(4, 13059251) == 52237004);
+ assert(mult_int(4, 13059252) == 52237008);
+ assert(mult_int(4, 13059253) == 52237012);
+ assert(mult_int(4, 13059254) == 52237016);
+ assert(mult_int(4, 13059255) == 52237020);
+ assert(mult_int(4, 13059256) == 52237024);
+ assert(mult_int(4, 13059257) == 52237028);
+ assert(mult_int(4, 13059258) == 52237032);
+ assert(mult_int(4, 13059259) == 52237036);
+ assert(mult_int(4, 13059260) == 52237040);
+ assert(mult_int(4, 13059261) == 52237044);
+ assert(mult_int(4, 13059262) == 52237048);
+ assert(mult_int(4, 13059263) == 52237052);
+ assert(mult_int(4, 13059264) == 52237056);
+ assert(mult_int(4, 13059265) == 52237060);
+ assert(mult_int(4, 13059266) == 52237064);
+ assert(mult_int(4, 13059267) == 52237068);
+ assert(mult_int(4, 13059268) == 52237072);
+ assert(mult_int(4, 13059269) == 52237076);
+ assert(mult_int(4, 13059270) == 52237080);
+ assert(mult_int(4, 13059271) == 52237084);
+ assert(mult_int(4, 13059272) == 52237088);
+ assert(mult_int(4, 13059273) == 52237092);
+ assert(mult_int(4, 13059274) == 52237096);
+ assert(mult_int(4, 13059275) == 52237100);
+ assert(mult_int(4, 13059276) == 52237104);
+ assert(mult_int(4, 13059277) == 52237108);
+ assert(mult_int(4, 13059278) == 52237112);
+ assert(mult_int(4, 13059279) == 52237116);
+ assert(mult_int(4, 13059280) == 52237120);
+ assert(mult_int(4, 13059281) == 52237124);
+ assert(mult_int(4, 13059282) == 52237128);
+ assert(mult_int(4, 13059283) == 52237132);
+ assert(mult_int(4, 13059284) == 52237136);
+ assert(mult_int(4, 13059285) == 52237140);
+ assert(mult_int(4, 13059286) == 52237144);
+ assert(mult_int(4, 13059287) == 52237148);
+ assert(mult_int(4, 13059288) == 52237152);
+ assert(mult_int(4, 13059289) == 52237156);
+ assert(mult_int(4, 13059290) == 52237160);
+ assert(mult_int(4, 13059291) == 52237164);
+ assert(mult_int(4, 13059292) == 52237168);
+ assert(mult_int(4, 13059293) == 52237172);
+ assert(mult_int(4, 13059294) == 52237176);
+ assert(mult_int(4, 13059295) == 52237180);
+ assert(mult_int(4, 13059296) == 52237184);
+ assert(mult_int(4, 13059297) == 52237188);
+ assert(mult_int(4, 13059298) == 52237192);
+ assert(mult_int(4, 13059550) == 52238200);
+ assert(mult_int(4, 13059572) == 52238288);
+ assert(mult_int(4, 13059573) == 52238292);
+ assert(mult_int(4, 13059580) == 52238320);
+ assert(mult_int(4, 13059581) == 52238324);
+ assert(mult_int(4, 13059638) == 52238552);
+ assert(mult_int(4, 13059850) == 52239400);
+ assert(mult_int(4, 13059851) == 52239404);
+ assert(mult_int(4, 13059852) == 52239408);
+ assert(mult_int(4, 13059853) == 52239412);
+ assert(mult_int(4, 13059854) == 52239416);
+ assert(mult_int(4, 13059855) == 52239420);
+ assert(mult_int(4, 13059856) == 52239424);
+ assert(mult_int(4, 13059857) == 52239428);
+ assert(mult_int(4, 13059858) == 52239432);
+ assert(mult_int(4, 13059859) == 52239436);
+ assert(mult_int(4, 13059860) == 52239440);
+ assert(mult_int(4, 13059861) == 52239444);
+ assert(mult_int(4, 13059862) == 52239448);
+ assert(mult_int(4, 13059863) == 52239452);
+ assert(mult_int(4, 13059864) == 52239456);
+ assert(mult_int(4, 13059865) == 52239460);
+ assert(mult_int(4, 13059866) == 52239464);
+ assert(mult_int(4, 13059867) == 52239468);
+ assert(mult_int(4, 13059868) == 52239472);
+ assert(mult_int(4, 13059869) == 52239476);
+ assert(mult_int(4, 13059870) == 52239480);
+ assert(mult_int(4, 14680070) == 58720280);
+ assert(mult_int(4, 14680080) == 58720320);
+ assert(mult_int(4, 14680084) == 58720336);
+ assert(mult_int(4, 14680300) == 58721200);
+ assert(mult_int(4, 14680301) == 58721204);
+ assert(mult_int(4, 14680302) == 58721208);
+ assert(mult_int(4, 14680303) == 58721212);
+ assert(mult_int(4, 14680304) == 58721216);
+ assert(mult_int(4, 14680305) == 58721220);
+ assert(mult_int(4, 14680306) == 58721224);
+ assert(mult_int(4, 14680307) == 58721228);
+ assert(mult_int(4, 14680308) == 58721232);
+ assert(mult_int(4, 14680309) == 58721236);
+ assert(mult_int(4, 14680310) == 58721240);
+ assert(mult_int(4, 14680311) == 58721244);
+ assert(mult_int(4, 14680312) == 58721248);
+ assert(mult_int(4, 14680313) == 58721252);
+ assert(mult_int(4, 14680314) == 58721256);
+ assert(mult_int(4, 14680315) == 58721260);
+ assert(mult_int(4, 14688280) == 58753120);
+ assert(mult_int(4, 14688281) == 58753124);
+ assert(mult_int(4, 14688404) == 58753616);
+ assert(mult_int(4, 14688896) == 58755584);
+ assert(mult_int(4, 14688897) == 58755588);
+ assert(mult_int(4, 14688992) == 58755968);
+ assert(mult_int(4, 14693980) == 58775920);
+ assert(mult_int(4, 14693981) == 58775924);
+ assert(mult_int(4, 14693982) == 58775928);
+ assert(mult_int(4, 14693983) == 58775932);
+ assert(mult_int(4, 14693984) == 58775936);
+ assert(mult_int(4, 14693985) == 58775940);
+ assert(mult_int(4, 14693986) == 58775944);
+ assert(mult_int(4, 14693987) == 58775948);
+ assert(mult_int(4, 14693988) == 58775952);
+ assert(mult_int(4, 14693989) == 58775956);
+ assert(mult_int(4, 14693990) == 58775960);
+ assert(mult_int(4, 14693991) == 58775964);
+ assert(mult_int(4, 14693992) == 58775968);
+ assert(mult_int(4, 14693993) == 58775972);
+ assert(mult_int(4, 14693994) == 58775976);
+ assert(mult_int(4, 14693995) == 58775980);
+ assert(mult_int(4, 14701956) == 58807824);
+ assert(mult_int(4, 14701961) == 58807844);
+ assert(mult_int(4, 14701966) == 58807864);
+ assert(mult_int(4, 14701967) == 58807868);
+ assert(mult_int(4, 14702048) == 58808192);
+ assert(mult_int(4, 14702360) == 58809440);
+ assert(mult_int(4, 14706528) == 58826112);
+ assert(mult_int(4, 14706529) == 58826116);
+ assert(mult_int(4, 14706530) == 58826120);
+ assert(mult_int(4, 14706531) == 58826124);
+ assert(mult_int(4, 14706612) == 58826448);
+ assert(mult_int(4, 14706848) == 58827392);
+ assert(mult_int(4, 14706849) == 58827396);
+ assert(mult_int(4, 14706850) == 58827400);
+ assert(mult_int(4, 14706851) == 58827404);
+ assert(mult_int(4, 14706932) == 58827728);
+ assert(mult_int(4, 14707168) == 58828672);
+ assert(mult_int(4, 14707169) == 58828676);
+ assert(mult_int(4, 14707170) == 58828680);
+ assert(mult_int(4, 14707172) == 58828688);
+ assert(mult_int(4, 14707176) == 58828704);
+ assert(mult_int(4, 14707177) == 58828708);
+ assert(mult_int(4, 14707179) == 58828716);
+ assert(mult_int(4, 14707180) == 58828720);
+ assert(mult_int(4, 14707258) == 58829032);
+ assert(mult_int(4, 14707568) == 58830272);
+ assert(mult_int(4, 14707640) == 58830560);
+ assert(mult_int(4, 14707641) == 58830564);
+ assert(mult_int(4, 14707642) == 58830568);
+ assert(mult_int(4, 14707860) == 58831440);
+ assert(mult_int(4, 14707861) == 58831444);
+ assert(mult_int(4, 14707862) == 58831448);
+ assert(mult_int(4, 14707863) == 58831452);
+ assert(mult_int(4, 14707864) == 58831456);
+ assert(mult_int(4, 14707865) == 58831460);
+ assert(mult_int(4, 14707866) == 58831464);
+ assert(mult_int(4, 14707867) == 58831468);
+ assert(mult_int(4, 14707868) == 58831472);
+ assert(mult_int(4, 14707869) == 58831476);
+ assert(mult_int(4, 14707870) == 58831480);
+ assert(mult_int(4, 14707871) == 58831484);
+ assert(mult_int(4, 14707872) == 58831488);
+ assert(mult_int(4, 14707873) == 58831492);
+ assert(mult_int(4, 14707874) == 58831496);
+ assert(mult_int(4, 14707875) == 58831500);
+ assert(mult_int(4, 14707876) == 58831504);
+ assert(mult_int(4, 17329) == 69316);
+ assert(mult_int(4, 17330) == 69320);
+ assert(mult_int(4, 17331) == 69324);
+ assert(mult_int(4, 17332) == 69328);
+ assert(mult_int(4, 17333) == 69332);
+ assert(mult_int(4, 17334) == 69336);
+ assert(mult_int(4, 17335) == 69340);
+ assert(mult_int(4, 17336) == 69344);
+ assert(mult_int(4, 17337) == 69348);
+ assert(mult_int(4, 17338) == 69352);
+ assert(mult_int(4, 17339) == 69356);
+ assert(mult_int(4, 17340) == 69360);
+ assert(mult_int(4, 17341) == 69364);
+ assert(mult_int(4, 17342) == 69368);
+ assert(mult_int(4, 17343) == 69372);
+ assert(mult_int(4, 17344) == 69376);
+ assert(mult_int(4, 17345) == 69380);
+ assert(mult_int(4, 17346) == 69384);
+ assert(mult_int(4, 17347) == 69388);
+ assert(mult_int(4, 17348) == 69392);
+ assert(mult_int(4, 17349) == 69396);
+ assert(mult_int(4, 17350) == 69400);
+ assert(mult_int(4, 17351) == 69404);
+ assert(mult_int(4, 17352) == 69408);
+ assert(mult_int(4, 17353) == 69412);
+ assert(mult_int(4, 17354) == 69416);
+ assert(mult_int(4, 17355) == 69420);
+ assert(mult_int(4, 17356) == 69424);
+ assert(mult_int(4, 17357) == 69428);
+ assert(mult_int(4, 17358) == 69432);
+ assert(mult_int(4, 17359) == 69436);
+ assert(mult_int(4, 17360) == 69440);
+ assert(mult_int(4, 17361) == 69444);
+ assert(mult_int(4, 17362) == 69448);
+ assert(mult_int(4, 17363) == 69452);
+ assert(mult_int(4, 17364) == 69456);
+ assert(mult_int(4, 17365) == 69460);
+ assert(mult_int(4, 17366) == 69464);
+ assert(mult_int(4, 17367) == 69468);
+ assert(mult_int(4, 17368) == 69472);
+ assert(mult_int(4, 17369) == 69476);
+ assert(mult_int(4, 17370) == 69480);
+ assert(mult_int(4, 17371) == 69484);
+ assert(mult_int(4, 18780) == 75120);
+ assert(mult_int(4, 18781) == 75124);
+ assert(mult_int(4, 18782) == 75128);
+ assert(mult_int(4, 18783) == 75132);
+ assert(mult_int(4, 18784) == 75136);
+ assert(mult_int(4, 18785) == 75140);
+ assert(mult_int(4, 18786) == 75144);
+ assert(mult_int(4, 18787) == 75148);
+ assert(mult_int(4, 18788) == 75152);
+ assert(mult_int(4, 18789) == 75156);
+ assert(mult_int(4, 18790) == 75160);
+ assert(mult_int(4, 18791) == 75164);
+ assert(mult_int(4, 18792) == 75168);
+ assert(mult_int(4, 18793) == 75172);
+ assert(mult_int(4, 18794) == 75176);
+ assert(mult_int(4, 18795) == 75180);
+ assert(mult_int(4, 18796) == 75184);
+ assert(mult_int(4, 18797) == 75188);
+ assert(mult_int(4, 18798) == 75192);
+ assert(mult_int(4, 18799) == 75196);
+ assert(mult_int(4, 18800) == 75200);
+ assert(mult_int(4, 18801) == 75204);
+ assert(mult_int(4, 18802) == 75208);
+ assert(mult_int(4, 18803) == 75212);
+ assert(mult_int(4, 18804) == 75216);
+ assert(mult_int(4, 18805) == 75220);
+ assert(mult_int(4, 18806) == 75224);
+ assert(mult_int(4, 18807) == 75228);
+ assert(mult_int(4, 18808) == 75232);
+ assert(mult_int(4, 18809) == 75236);
+ assert(mult_int(4, 18810) == 75240);
+ assert(mult_int(4, 18811) == 75244);
+ assert(mult_int(4, 18812) == 75248);
+ assert(mult_int(4, 18813) == 75252);
+ assert(mult_int(4, 18814) == 75256);
+ assert(mult_int(4, 18815) == 75260);
+ assert(mult_int(4, 18816) == 75264);
+ assert(mult_int(4, 18817) == 75268);
+ assert(mult_int(4, 18818) == 75272);
+ assert(mult_int(4, 18819) == 75276);
+ assert(mult_int(4, 18820) == 75280);
+ assert(mult_int(4, 20736) == 82944);
+ assert(mult_int(4, 21165) == 84660);
+ assert(mult_int(4, 21166) == 84664);
+ assert(mult_int(4, 21167) == 84668);
+ assert(mult_int(4, 21168) == 84672);
+ assert(mult_int(4, 21169) == 84676);
+ assert(mult_int(4, 21170) == 84680);
+ assert(mult_int(4, 21173) == 84692);
+ assert(mult_int(4, 21174) == 84696);
+ assert(mult_int(4, 21175) == 84700);
+ assert(mult_int(4, 21176) == 84704);
+ assert(mult_int(4, 21177) == 84708);
+ assert(mult_int(4, 21178) == 84712);
+ assert(mult_int(4, 21179) == 84716);
+ assert(mult_int(4, 21180) == 84720);
+ assert(mult_int(4, 21181) == 84724);
+ assert(mult_int(4, 21182) == 84728);
+ assert(mult_int(4, 21183) == 84732);
+ assert(mult_int(4, 21184) == 84736);
+ assert(mult_int(4, 21185) == 84740);
+ assert(mult_int(4, 21218) == 84872);
+ assert(mult_int(4, 21219) == 84876);
+ assert(mult_int(4, 21220) == 84880);
+ assert(mult_int(4, 21221) == 84884);
+ assert(mult_int(4, 21222) == 84888);
+ assert(mult_int(4, 21223) == 84892);
+ assert(mult_int(4, 21224) == 84896);
+ assert(mult_int(4, 21225) == 84900);
+ assert(mult_int(4, 21226) == 84904);
+ assert(mult_int(4, 21227) == 84908);
+ assert(mult_int(4, 21228) == 84912);
+ assert(mult_int(4, 21229) == 84916);
+ assert(mult_int(4, 21230) == 84920);
+ assert(mult_int(4, 21231) == 84924);
+ assert(mult_int(4, 21337) == 85348);
+ assert(mult_int(4, 21338) == 85352);
+ assert(mult_int(4, 21339) == 85356);
+ assert(mult_int(4, 21340) == 85360);
+ assert(mult_int(4, 21341) == 85364);
+ assert(mult_int(4, 21342) == 85368);
+ assert(mult_int(4, 21343) == 85372);
+ assert(mult_int(4, 21344) == 85376);
+ assert(mult_int(4, 21345) == 85380);
+ assert(mult_int(4, 21346) == 85384);
+ assert(mult_int(4, 21347) == 85388);
+ assert(mult_int(4, 21348) == 85392);
+ assert(mult_int(4, 21349) == 85396);
+ assert(mult_int(4, 21350) == 85400);
+ assert(mult_int(4, 21351) == 85404);
+ assert(mult_int(4, 21352) == 85408);
+ assert(mult_int(4, 21353) == 85412);
+ assert(mult_int(4, 21354) == 85416);
+ assert(mult_int(4, 21355) == 85420);
+ assert(mult_int(4, 21356) == 85424);
+ assert(mult_int(4, 21357) == 85428);
+ assert(mult_int(4, 21358) == 85432);
+ assert(mult_int(4, 21359) == 85436);
+ assert(mult_int(4, 21360) == 85440);
+ assert(mult_int(4, 21361) == 85444);
+ assert(mult_int(4, 21362) == 85448);
+ assert(mult_int(4, 21363) == 85452);
+ assert(mult_int(4, 21364) == 85456);
+ assert(mult_int(4, 21365) == 85460);
+ assert(mult_int(4, 21366) == 85464);
+ assert(mult_int(4, 21367) == 85468);
+ assert(mult_int(4, 21368) == 85472);
+ assert(mult_int(4, 21369) == 85476);
+ assert(mult_int(4, 21370) == 85480);
+ assert(mult_int(4, 21371) == 85484);
+ assert(mult_int(4, 21372) == 85488);
+ assert(mult_int(4, 21373) == 85492);
+ assert(mult_int(4, 21374) == 85496);
+ assert(mult_int(4, 21375) == 85500);
+ assert(mult_int(4, 21376) == 85504);
+ assert(mult_int(4, 21377) == 85508);
+ assert(mult_int(4, 21378) == 85512);
+ assert(mult_int(4, 22672) == 90688);
+ assert(mult_int(4, 22673) == 90692);
+ assert(mult_int(4, 22724) == 90896);
+ assert(mult_int(4, 22725) == 90900);
+ assert(mult_int(4, 22726) == 90904);
+ assert(mult_int(4, 22727) == 90908);
+ assert(mult_int(4, 22728) == 90912);
+ assert(mult_int(4, 22729) == 90916);
+ assert(mult_int(4, 22730) == 90920);
+ assert(mult_int(4, 22731) == 90924);
+ assert(mult_int(4, 22732) == 90928);
+ assert(mult_int(4, 22733) == 90932);
+ assert(mult_int(4, 22746) == 90984);
+ assert(mult_int(4, 22747) == 90988);
+ assert(mult_int(4, 22753) == 91012);
+ assert(mult_int(4, 22768) == 91072);
+ assert(mult_int(4, 22769) == 91076);
+ assert(mult_int(4, 22772) == 91088);
+ assert(mult_int(4, 22773) == 91092);
+ assert(mult_int(4, 22776) == 91104);
+ assert(mult_int(4, 22777) == 91108);
+ assert(mult_int(4, 22780) == 91120);
+ assert(mult_int(4, 22781) == 91124);
+ assert(mult_int(4, 22782) == 91128);
+ assert(mult_int(4, 22783) == 91132);
+ assert(mult_int(4, 22784) == 91136);
+ assert(mult_int(4, 22785) == 91140);
+ assert(mult_int(4, 22786) == 91144);
+ assert(mult_int(4, 22787) == 91148);
+ assert(mult_int(4, 22792) == 91168);
+ assert(mult_int(4, 22793) == 91172);
+ assert(mult_int(4, 22794) == 91176);
+ assert(mult_int(4, 22795) == 91180);
+ assert(mult_int(4, 22803) == 91212);
+ assert(mult_int(4, 22804) == 91216);
+ assert(mult_int(4, 22807) == 91228);
+ assert(mult_int(4, 22808) == 91232);
+ assert(mult_int(4, 22809) == 91236);
+ assert(mult_int(4, 22813) == 91252);
+ assert(mult_int(4, 22814) == 91256);
+ assert(mult_int(4, 22815) == 91260);
+ assert(mult_int(4, 22816) == 91264);
+ assert(mult_int(4, 22817) == 91268);
+ assert(mult_int(4, 22818) == 91272);
+ assert(mult_int(4, 22819) == 91276);
+ assert(mult_int(4, 22820) == 91280);
+ assert(mult_int(4, 22821) == 91284);
+ assert(mult_int(4, 22822) == 91288);
+ assert(mult_int(4, 22823) == 91292);
+ assert(mult_int(4, 22824) == 91296);
+ assert(mult_int(4, 22825) == 91300);
+ assert(mult_int(4, 22826) == 91304);
+ assert(mult_int(4, 22827) == 91308);
+ assert(mult_int(4, 22828) == 91312);
+ assert(mult_int(4, 22829) == 91316);
+ assert(mult_int(4, 22830) == 91320);
+ assert(mult_int(4, 22837) == 91348);
+ assert(mult_int(4, 22838) == 91352);
+ assert(mult_int(4, 22839) == 91356);
+ assert(mult_int(4, 22840) == 91360);
+ assert(mult_int(4, 22852) == 91408);
+ assert(mult_int(4, 22853) == 91412);
+ assert(mult_int(4, 22854) == 91416);
+ assert(mult_int(4, 22855) == 91420);
+ assert(mult_int(4, 22858) == 91432);
+ assert(mult_int(4, 22859) == 91436);
+ assert(mult_int(4, 22884) == 91536);
+ assert(mult_int(4, 22885) == 91540);
+ assert(mult_int(4, 22886) == 91544);
+ assert(mult_int(4, 22893) == 91572);
+ assert(mult_int(4, 22894) == 91576);
+ assert(mult_int(4, 22895) == 91580);
+ assert(mult_int(4, 22898) == 91592);
+ assert(mult_int(4, 22899) == 91596);
+ assert(mult_int(4, 22900) == 91600);
+ assert(mult_int(4, 22904) == 91616);
+ assert(mult_int(4, 22905) == 91620);
+ assert(mult_int(4, 22906) == 91624);
+ assert(mult_int(4, 22907) == 91628);
+ assert(mult_int(4, 22908) == 91632);
+ assert(mult_int(4, 22909) == 91636);
+ assert(mult_int(4, 22910) == 91640);
+ assert(mult_int(4, 22911) == 91644);
+ assert(mult_int(4, 22912) == 91648);
+ assert(mult_int(4, 22915) == 91660);
+ assert(mult_int(4, 22916) == 91664);
+ assert(mult_int(4, 22917) == 91668);
+ assert(mult_int(4, 22927) == 91708);
+ assert(mult_int(4, 22928) == 91712);
+ assert(mult_int(4, 22929) == 91716);
+ assert(mult_int(4, 22930) == 91720);
+ assert(mult_int(4, 22931) == 91724);
+ assert(mult_int(4, 22932) == 91728);
+ assert(mult_int(4, 22933) == 91732);
+ assert(mult_int(4, 22934) == 91736);
+ assert(mult_int(4, 22935) == 91740);
+ assert(mult_int(4, 22938) == 91752);
+ assert(mult_int(4, 22939) == 91756);
+ assert(mult_int(4, 22942) == 91768);
+ assert(mult_int(4, 22943) == 91772);
+ assert(mult_int(4, 22944) == 91776);
+ assert(mult_int(4, 22945) == 91780);
+ assert(mult_int(4, 22952) == 91808);
+ assert(mult_int(4, 22953) == 91812);
+ assert(mult_int(4, 22954) == 91816);
+ assert(mult_int(4, 22955) == 91820);
+ assert(mult_int(4, 22956) == 91824);
+ assert(mult_int(4, 22957) == 91828);
+ assert(mult_int(4, 25712660) == 102850640);
+ assert(mult_int(4, 25712661) == 102850644);
+ assert(mult_int(4, 25712662) == 102850648);
+ assert(mult_int(4, 25712663) == 102850652);
+ assert(mult_int(4, 263168) == 1052672);
+ assert(mult_int(4, 263169) == 1052676);
+ assert(mult_int(4, 263170) == 1052680);
+ assert(mult_int(4, 263171) == 1052684);
+ assert(mult_int(4, 263172) == 1052688);
+ assert(mult_int(4, 263173) == 1052692);
+ assert(mult_int(4, 263174) == 1052696);
+ assert(mult_int(4, 263175) == 1052700);
+ assert(mult_int(4, 263176) == 1052704);
+ assert(mult_int(4, 263177) == 1052708);
+ assert(mult_int(4, 263178) == 1052712);
+ assert(mult_int(4, 263179) == 1052716);
+ assert(mult_int(4, 263180) == 1052720);
+ assert(mult_int(4, 263181) == 1052724);
+ assert(mult_int(4, 263182) == 1052728);
+ assert(mult_int(4, 263183) == 1052732);
+ assert(mult_int(4, 263184) == 1052736);
+ assert(mult_int(4, 263185) == 1052740);
+ assert(mult_int(4, 263186) == 1052744);
+ assert(mult_int(4, 263187) == 1052748);
+ assert(mult_int(4, 263188) == 1052752);
+ assert(mult_int(4, 263189) == 1052756);
+ assert(mult_int(4, 263190) == 1052760);
+ assert(mult_int(4, 263191) == 1052764);
+ assert(mult_int(4, 263192) == 1052768);
+ assert(mult_int(4, 263193) == 1052772);
+ assert(mult_int(4, 263194) == 1052776);
+ assert(mult_int(4, 263195) == 1052780);
+ assert(mult_int(4, 263196) == 1052784);
+ assert(mult_int(4, 263197) == 1052788);
+ assert(mult_int(4, 263198) == 1052792);
+ assert(mult_int(4, 263199) == 1052796);
+ assert(mult_int(4, 263200) == 1052800);
+ assert(mult_int(4, 263202) == 1052808);
+ assert(mult_int(4, 263203) == 1052812);
+ assert(mult_int(4, 263204) == 1052816);
+ assert(mult_int(4, 263205) == 1052820);
+ assert(mult_int(4, 263206) == 1052824);
+ assert(mult_int(4, 263207) == 1052828);
+ assert(mult_int(4, 263208) == 1052832);
+ assert(mult_int(4, 263211) == 1052844);
+ assert(mult_int(4, 263212) == 1052848);
+ assert(mult_int(4, 263213) == 1052852);
+ assert(mult_int(4, 263214) == 1052856);
+ assert(mult_int(4, 263216) == 1052864);
+ assert(mult_int(4, 263217) == 1052868);
+ assert(mult_int(4, 263218) == 1052872);
+ assert(mult_int(4, 263219) == 1052876);
+ assert(mult_int(4, 263220) == 1052880);
+ assert(mult_int(4, 263221) == 1052884);
+ assert(mult_int(4, 263222) == 1052888);
+ assert(mult_int(4, 263223) == 1052892);
+ assert(mult_int(4, 263224) == 1052896);
+ assert(mult_int(4, 263225) == 1052900);
+ assert(mult_int(4, 263226) == 1052904);
+ assert(mult_int(4, 263227) == 1052908);
+ assert(mult_int(4, 263228) == 1052912);
+ assert(mult_int(4, 263229) == 1052916);
+ assert(mult_int(4, 263230) == 1052920);
+ assert(mult_int(4, 263231) == 1052924);
+ assert(mult_int(4, 263232) == 1052928);
+ assert(mult_int(4, 263233) == 1052932);
+ assert(mult_int(4, 263234) == 1052936);
+ assert(mult_int(4, 263235) == 1052940);
+ assert(mult_int(4, 263236) == 1052944);
+ assert(mult_int(4, 263237) == 1052948);
+ assert(mult_int(4, 263238) == 1052952);
+ assert(mult_int(4, 263239) == 1052956);
+ assert(mult_int(4, 263240) == 1052960);
+ assert(mult_int(4, 263241) == 1052964);
+ assert(mult_int(4, 263242) == 1052968);
+ assert(mult_int(4, 263243) == 1052972);
+ assert(mult_int(4, 263244) == 1052976);
+ assert(mult_int(4, 263245) == 1052980);
+ assert(mult_int(4, 263246) == 1052984);
+ assert(mult_int(4, 263247) == 1052988);
+ assert(mult_int(4, 263248) == 1052992);
+ assert(mult_int(4, 263249) == 1052996);
+ assert(mult_int(4, 263250) == 1053000);
+ assert(mult_int(4, 263251) == 1053004);
+ assert(mult_int(4, 263252) == 1053008);
+ assert(mult_int(4, 263253) == 1053012);
+ assert(mult_int(4, 263254) == 1053016);
+ assert(mult_int(4, 263255) == 1053020);
+ assert(mult_int(4, 263256) == 1053024);
+ assert(mult_int(4, 263257) == 1053028);
+ assert(mult_int(4, 263258) == 1053032);
+ assert(mult_int(4, 263259) == 1053036);
+ assert(mult_int(4, 263260) == 1053040);
+ assert(mult_int(4, 263261) == 1053044);
+ assert(mult_int(4, 263262) == 1053048);
+ assert(mult_int(4, 263263) == 1053052);
+ assert(mult_int(4, 263264) == 1053056);
+ assert(mult_int(4, 263265) == 1053060);
+ assert(mult_int(4, 263266) == 1053064);
+ assert(mult_int(4, 263267) == 1053068);
+ assert(mult_int(4, 263268) == 1053072);
+ assert(mult_int(4, 263269) == 1053076);
+ assert(mult_int(4, 263270) == 1053080);
+ assert(mult_int(4, 263271) == 1053084);
+ assert(mult_int(4, 263272) == 1053088);
+ assert(mult_int(4, 263273) == 1053092);
+ assert(mult_int(4, 263274) == 1053096);
+ assert(mult_int(4, 263275) == 1053100);
+ assert(mult_int(4, 263276) == 1053104);
+ assert(mult_int(4, 263277) == 1053108);
+ assert(mult_int(4, 263278) == 1053112);
+ assert(mult_int(4, 263296) == 1053184);
+ assert(mult_int(4, 263297) == 1053188);
+ assert(mult_int(4, 263298) == 1053192);
+ assert(mult_int(4, 263299) == 1053196);
+ assert(mult_int(4, 263300) == 1053200);
+ assert(mult_int(4, 263301) == 1053204);
+ assert(mult_int(4, 263302) == 1053208);
+ assert(mult_int(4, 263303) == 1053212);
+ assert(mult_int(4, 264192) == 1056768);
+ assert(mult_int(4, 264193) == 1056772);
+ assert(mult_int(4, 264194) == 1056776);
+ assert(mult_int(4, 264195) == 1056780);
+ assert(mult_int(4, 264196) == 1056784);
+ assert(mult_int(4, 264197) == 1056788);
+ assert(mult_int(4, 264198) == 1056792);
+ assert(mult_int(4, 264199) == 1056796);
+ assert(mult_int(4, 264200) == 1056800);
+ assert(mult_int(4, 264201) == 1056804);
+ assert(mult_int(4, 264202) == 1056808);
+ assert(mult_int(4, 264203) == 1056812);
+ assert(mult_int(4, 264204) == 1056816);
+ assert(mult_int(4, 264205) == 1056820);
+ assert(mult_int(4, 264206) == 1056824);
+ assert(mult_int(4, 264207) == 1056828);
+ assert(mult_int(4, 264208) == 1056832);
+ assert(mult_int(4, 264209) == 1056836);
+ assert(mult_int(4, 264210) == 1056840);
+ assert(mult_int(4, 264211) == 1056844);
+ assert(mult_int(4, 264212) == 1056848);
+ assert(mult_int(4, 264213) == 1056852);
+ assert(mult_int(4, 264214) == 1056856);
+ assert(mult_int(4, 264215) == 1056860);
+ assert(mult_int(4, 264216) == 1056864);
+ assert(mult_int(4, 264217) == 1056868);
+ assert(mult_int(4, 264218) == 1056872);
+ assert(mult_int(4, 264219) == 1056876);
+ assert(mult_int(4, 264220) == 1056880);
+ assert(mult_int(4, 264221) == 1056884);
+ assert(mult_int(4, 264222) == 1056888);
+ assert(mult_int(4, 264223) == 1056892);
+ assert(mult_int(4, 264224) == 1056896);
+ assert(mult_int(4, 264225) == 1056900);
+ assert(mult_int(4, 264226) == 1056904);
+ assert(mult_int(4, 264227) == 1056908);
+ assert(mult_int(4, 264228) == 1056912);
+ assert(mult_int(4, 264230) == 1056920);
+ assert(mult_int(4, 264231) == 1056924);
+ assert(mult_int(4, 264232) == 1056928);
+ assert(mult_int(4, 264233) == 1056932);
+ assert(mult_int(4, 264234) == 1056936);
+ assert(mult_int(4, 264235) == 1056940);
+ assert(mult_int(4, 264236) == 1056944);
+ assert(mult_int(4, 264239) == 1056956);
+ assert(mult_int(4, 264240) == 1056960);
+ assert(mult_int(4, 264241) == 1056964);
+ assert(mult_int(4, 264242) == 1056968);
+ assert(mult_int(4, 264244) == 1056976);
+ assert(mult_int(4, 264245) == 1056980);
+ assert(mult_int(4, 264246) == 1056984);
+ assert(mult_int(4, 264247) == 1056988);
+ assert(mult_int(4, 264248) == 1056992);
+ assert(mult_int(4, 264249) == 1056996);
+ assert(mult_int(4, 264250) == 1057000);
+ assert(mult_int(4, 264251) == 1057004);
+ assert(mult_int(4, 264252) == 1057008);
+ assert(mult_int(4, 264253) == 1057012);
+ assert(mult_int(4, 264254) == 1057016);
+ assert(mult_int(4, 264255) == 1057020);
+ assert(mult_int(4, 264256) == 1057024);
+ assert(mult_int(4, 264257) == 1057028);
+ assert(mult_int(4, 264258) == 1057032);
+ assert(mult_int(4, 264259) == 1057036);
+ assert(mult_int(4, 264260) == 1057040);
+ assert(mult_int(4, 264261) == 1057044);
+ assert(mult_int(4, 264262) == 1057048);
+ assert(mult_int(4, 264263) == 1057052);
+ assert(mult_int(4, 264264) == 1057056);
+ assert(mult_int(4, 264265) == 1057060);
+ assert(mult_int(4, 264266) == 1057064);
+ assert(mult_int(4, 264267) == 1057068);
+ assert(mult_int(4, 264268) == 1057072);
+ assert(mult_int(4, 264269) == 1057076);
+ assert(mult_int(4, 264270) == 1057080);
+ assert(mult_int(4, 264271) == 1057084);
+ assert(mult_int(4, 264272) == 1057088);
+ assert(mult_int(4, 264273) == 1057092);
+ assert(mult_int(4, 264274) == 1057096);
+ assert(mult_int(4, 264275) == 1057100);
+ assert(mult_int(4, 264276) == 1057104);
+ assert(mult_int(4, 264277) == 1057108);
+ assert(mult_int(4, 264278) == 1057112);
+ assert(mult_int(4, 264279) == 1057116);
+ assert(mult_int(4, 264280) == 1057120);
+ assert(mult_int(4, 264281) == 1057124);
+ assert(mult_int(4, 264282) == 1057128);
+ assert(mult_int(4, 264283) == 1057132);
+ assert(mult_int(4, 264284) == 1057136);
+ assert(mult_int(4, 264285) == 1057140);
+ assert(mult_int(4, 264286) == 1057144);
+ assert(mult_int(4, 264287) == 1057148);
+ assert(mult_int(4, 264288) == 1057152);
+ assert(mult_int(4, 264289) == 1057156);
+ assert(mult_int(4, 264290) == 1057160);
+ assert(mult_int(4, 264291) == 1057164);
+ assert(mult_int(4, 264292) == 1057168);
+ assert(mult_int(4, 264293) == 1057172);
+ assert(mult_int(4, 264294) == 1057176);
+ assert(mult_int(4, 264295) == 1057180);
+ assert(mult_int(4, 264296) == 1057184);
+ assert(mult_int(4, 264297) == 1057188);
+ assert(mult_int(4, 264298) == 1057192);
+ assert(mult_int(4, 264299) == 1057196);
+ assert(mult_int(4, 264300) == 1057200);
+ assert(mult_int(4, 27197) == 108788);
+ assert(mult_int(4, 27198) == 108792);
+ assert(mult_int(4, 27199) == 108796);
+ assert(mult_int(4, 27200) == 108800);
+ assert(mult_int(4, 27201) == 108804);
+ assert(mult_int(4, 27202) == 108808);
+ assert(mult_int(4, 27203) == 108812);
+ assert(mult_int(4, 27204) == 108816);
+ assert(mult_int(4, 27205) == 108820);
+ assert(mult_int(4, 27206) == 108824);
+ assert(mult_int(4, 27207) == 108828);
+ assert(mult_int(4, 27208) == 108832);
+ assert(mult_int(4, 27209) == 108836);
+ assert(mult_int(4, 27210) == 108840);
+ assert(mult_int(4, 27211) == 108844);
+ assert(mult_int(4, 27212) == 108848);
+ assert(mult_int(4, 38273058) == 153092232);
+ assert(mult_int(4, 38273059) == 153092236);
+ assert(mult_int(4, 4194304) == 16777216);
+ assert(mult_int(4, 4194305) == 16777220);
+ assert(mult_int(4, 4194306) == 16777224);
+ assert(mult_int(4, 4194307) == 16777228);
+ assert(mult_int(4, 4194308) == 16777232);
+ assert(mult_int(4, 4194309) == 16777236);
+ assert(mult_int(4, 4194310) == 16777240);
+ assert(mult_int(4, 4194311) == 16777244);
+ assert(mult_int(4, 4194312) == 16777248);
+ assert(mult_int(4, 4194313) == 16777252);
+ assert(mult_int(4, 4194314) == 16777256);
+ assert(mult_int(4, 4194315) == 16777260);
+ assert(mult_int(4, 4194316) == 16777264);
+ assert(mult_int(4, 4194317) == 16777268);
+ assert(mult_int(8, 14187) == 113496);
+ assert(mult_int(8, 14188) == 113504);
+ assert(mult_int(8, 14197) == 113576);
+ assert(mult_int(8, 14318) == 114544);
+ assert(mult_int(8, 14329) == 114632);
+ assert(mult_int(8, 14505) == 116040);
+ assert(mult_int(8, 14506) == 116048);
+ assert(mult_int(8, 14507) == 116056);
+ assert(mult_int(8, 14508) == 116064);
+ assert(mult_int(8, 14509) == 116072);
+ assert(mult_int(8, 14510) == 116080);
+ assert(mult_int(8, 14511) == 116088);
+ assert(mult_int(8, 14512) == 116096);
+ assert(mult_int(8, 14515) == 116120);
+ assert(mult_int(8, 14516) == 116128);
+ assert(mult_int(8, 14517) == 116136);
+ assert(mult_int(8, 6029845) == 48238760);
+ assert(mult_int(8, 6029846) == 48238768);
+ assert(mult_int(8, 6029847) == 48238776);
+ assert(mult_int(8, 6029848) == 48238784);
+ assert(mult_int(8, 6029849) == 48238792);
+ assert(mult_int(8, 6029850) == 48238800);
+ assert(mult_int(8, 6029851) == 48238808);
+ assert(mult_int(8, 6029852) == 48238816);
+ assert(mult_int(8, 6029853) == 48238824);
+ assert(mult_int(8, 6029854) == 48238832);
+ assert(mult_int(8, 6029855) == 48238840);
+ assert(mult_int(8, 6029856) == 48238848);
+ assert(mult_int(8, 6029857) == 48238856);
+ assert(mult_int(8, 6029858) == 48238864);
+ assert(mult_int(8, 6029859) == 48238872);
+ assert(mult_int(8, 6029860) == 48238880);
+ assert(mult_int(8, 6029861) == 48238888);
+ assert(mult_int(8, 6029862) == 48238896);
+ assert(mult_int(8, 6029863) == 48238904);
+ assert(mult_int(8, 6029864) == 48238912);
+ assert(mult_int(8, 6029865) == 48238920);
+ assert(mult_int(8, 6029866) == 48238928);
+ assert(mult_int(8, 6029867) == 48238936);
+ assert(mult_int(8, 6029868) == 48238944);
+ assert(mult_int(8, 6029869) == 48238952);
+ assert(mult_int(8, 6029870) == 48238960);
+ assert(mult_int(8, 6029871) == 48238968);
+ assert(mult_int(8, 6029872) == 48238976);
+ assert(mult_int(8, 6029873) == 48238984);
+ assert(mult_int(8, 6029874) == 48238992);
+ assert(mult_int(8, 6029875) == 48239000);
+ assert(mult_int(8, 6029876) == 48239008);
+ assert(mult_int(8, 6029877) == 48239016);
+ assert(mult_int(8, 6029878) == 48239024);
+ assert(mult_int(8, 6029879) == 48239032);
+ assert(mult_int(8, 6029880) == 48239040);
+ assert(mult_int(8, 6029881) == 48239048);
+ assert(mult_int(8, 6029882) == 48239056);
+ assert(mult_int(8, 6029883) == 48239064);
+ assert(mult_int(8, 6029884) == 48239072);
+ assert(mult_int(8, 6029885) == 48239080);
+ assert(mult_int(8, 6029886) == 48239088);
+ assert(mult_int(8, 6029887) == 48239096);
+ assert(mult_int(8, 6029888) == 48239104);
+ assert(mult_int(8, 6029889) == 48239112);
+ assert(mult_int(8, 6029890) == 48239120);
+ assert(mult_int(8, 6029891) == 48239128);
+ assert(mult_int(8, 6029892) == 48239136);
+ assert(mult_int(8, 6029893) == 48239144);
+ assert(mult_int(8, 6029894) == 48239152);
+ assert(mult_int(8, 6029895) == 48239160);
+ assert(mult_int(8, 6029896) == 48239168);
+ assert(mult_int(8, 6029897) == 48239176);
+ assert(mult_int(8, 6029898) == 48239184);
+ assert(mult_int(8, 6029899) == 48239192);
+ assert(mult_int(8, 6029900) == 48239200);
+ assert(mult_int(8, 6029901) == 48239208);
+ assert(mult_int(8, 6029902) == 48239216);
+ assert(mult_int(8, 6029903) == 48239224);
+ assert(mult_int(8, 6029904) == 48239232);
+ assert(mult_int(8, 6029905) == 48239240);
+ assert(mult_int(8, 6029906) == 48239248);
+ assert(mult_int(8, 6029907) == 48239256);
+ assert(mult_int(8, 6029908) == 48239264);
+ assert(mult_int(8, 6029909) == 48239272);
+ assert(mult_int(8, 6029910) == 48239280);
+ assert(mult_int(8, 6029911) == 48239288);
+ assert(mult_int(8, 6029912) == 48239296);
+ assert(mult_int(8, 6029913) == 48239304);
+ assert(mult_int(8, 6029914) == 48239312);
+ assert(mult_int(8, 6029915) == 48239320);
+ assert(mult_int(8, 6029916) == 48239328);
+ assert(mult_int(8, 6029917) == 48239336);
+ assert(mult_int(8, 6029918) == 48239344);
+ assert(mult_int(8, 6029919) == 48239352);
+ assert(mult_int(8, 6029920) == 48239360);
+ assert(mult_int(8, 6029921) == 48239368);
+ assert(mult_int(8, 6029922) == 48239376);
+ assert(mult_int(8, 6029923) == 48239384);
+ assert(mult_int(8, 6029924) == 48239392);
+ assert(mult_int(8, 6029925) == 48239400);
+ assert(mult_int(8, 6029926) == 48239408);
+ assert(mult_int(8, 6029927) == 48239416);
+ assert(mult_int(8, 6029928) == 48239424);
+ assert(mult_int(8, 6029929) == 48239432);
+ assert(mult_int(8, 6029930) == 48239440);
+ assert(mult_int(8, 6029931) == 48239448);
+ assert(mult_int(8, 6029932) == 48239456);
+ assert(mult_int(8, 6029933) == 48239464);
+ assert(mult_int(8, 6029934) == 48239472);
+ assert(mult_int(8, 6029935) == 48239480);
+ assert(mult_int(8, 6029936) == 48239488);
+ assert(mult_int(8, 6029937) == 48239496);
+ assert(mult_int(8, 6029938) == 48239504);
+ assert(mult_int(8, 6029939) == 48239512);
+ assert(mult_int(8, 6029940) == 48239520);
+ assert(mult_int(8, 6029941) == 48239528);
+ assert(mult_int(8, 6029942) == 48239536);
+ assert(mult_int(8, 6029943) == 48239544);
+ assert(mult_int(8, 6029944) == 48239552);
+ assert(mult_int(8, 6029945) == 48239560);
+ assert(mult_int(8, 6029946) == 48239568);
+ assert(mult_int(8, 6029947) == 48239576);
+ assert(mult_int(8, 6029948) == 48239584);
+ assert(mult_int(8, 6029949) == 48239592);
+ assert(mult_int(8, 6029950) == 48239600);
+ assert(mult_int(8, 6029951) == 48239608);
+ assert(mult_int(8, 6029952) == 48239616);
+ assert(mult_int(8, 6029953) == 48239624);
+ assert(mult_int(8, 6029954) == 48239632);
+ assert(mult_int(8, 6029955) == 48239640);
+ assert(mult_int(8, 6029956) == 48239648);
+ assert(mult_int(8, 6029957) == 48239656);
+ assert(mult_int(8, 6029958) == 48239664);
+ assert(mult_int(8, 6029959) == 48239672);
+ assert(mult_int(8, 6029960) == 48239680);
+ assert(mult_int(8, 6029961) == 48239688);
+ assert(mult_int(8, 6029962) == 48239696);
+ assert(mult_int(8, 6029963) == 48239704);
+ assert(mult_int(8, 6029964) == 48239712);
+ assert(mult_int(8, 6029965) == 48239720);
+ assert(mult_int(8, 6029966) == 48239728);
+ assert(mult_int(8, 6029967) == 48239736);
+ assert(mult_int(8, 6029968) == 48239744);
+ assert(mult_int(8, 6029969) == 48239752);
+ assert(mult_int(8, 6029970) == 48239760);
+ assert(mult_int(8, 6029971) == 48239768);
+ assert(mult_int(8, 6029972) == 48239776);
+ assert(mult_int(8, 6029973) == 48239784);
+ assert(mult_int(8, 6029974) == 48239792);
+ assert(mult_int(8, 6029975) == 48239800);
+ assert(mult_int(8, 6029976) == 48239808);
+ assert(mult_int(8, 6029977) == 48239816);
+ assert(mult_int(8, 6029978) == 48239824);
+ assert(mult_int(8, 6029979) == 48239832);
+ assert(mult_int(8, 6029980) == 48239840);
+ assert(mult_int(8, 6029981) == 48239848);
+ assert(mult_int(8, 6029982) == 48239856);
+ assert(mult_int(8, 6029983) == 48239864);
+ assert(mult_int(8, 6029984) == 48239872);
+ assert(mult_int(8, 6029985) == 48239880);
+ assert(mult_int(8, 6029986) == 48239888);
+ assert(mult_int(8, 6029987) == 48239896);
+ assert(mult_int(8, 6029988) == 48239904);
+ assert(mult_int(8, 6029989) == 48239912);
+ assert(mult_int(8, 6029990) == 48239920);
+ assert(mult_int(8, 6029991) == 48239928);
+ assert(mult_int(8, 6029992) == 48239936);
+ assert(mult_int(8, 6029993) == 48239944);
+ assert(mult_int(8, 6029994) == 48239952);
+ assert(mult_int(8, 6029995) == 48239960);
+ assert(mult_int(8, 6029996) == 48239968);
+ assert(mult_int(8, 6029997) == 48239976);
+ assert(mult_int(8, 6029998) == 48239984);
+ assert(mult_int(8, 6029999) == 48239992);
+ assert(mult_int(8, 6030000) == 48240000);
+ assert(mult_int(8, 6030001) == 48240008);
+ assert(mult_int(8, 6030002) == 48240016);
+ assert(mult_int(8, 6030003) == 48240024);
+ assert(mult_int(8, 6030004) == 48240032);
+ assert(mult_int(8, 6030005) == 48240040);
+ assert(mult_int(8, 6030006) == 48240048);
+ assert(mult_int(8, 6030007) == 48240056);
+ assert(mult_int(8, 6030008) == 48240064);
+ assert(mult_int(8, 6030009) == 48240072);
+ assert(mult_int(8, 6030010) == 48240080);
+ assert(mult_int(8, 6030011) == 48240088);
+ assert(mult_int(8, 6030012) == 48240096);
+ assert(mult_int(8, 6030013) == 48240104);
+ assert(mult_int(8, 6030014) == 48240112);
+ assert(mult_int(8, 6030015) == 48240120);
+ assert(mult_int(8, 6030016) == 48240128);
+ assert(mult_int(8, 6030017) == 48240136);
+ assert(mult_int(8, 6030018) == 48240144);
+ assert(mult_int(8, 6030019) == 48240152);
+ assert(mult_int(8, 6030020) == 48240160);
+ assert(mult_int(8, 6030021) == 48240168);
+ assert(mult_int(8, 6030022) == 48240176);
+ assert(mult_int(8, 6030023) == 48240184);
+ assert(mult_int(8, 6030024) == 48240192);
+ assert(mult_int(8, 6030025) == 48240200);
+ assert(mult_int(8, 6030026) == 48240208);
+ assert(mult_int(8, 6030027) == 48240216);
+ assert(mult_int(8, 6030028) == 48240224);
+ assert(mult_int(8, 6030029) == 48240232);
+ assert(mult_int(8, 6030030) == 48240240);
+ assert(mult_int(8, 6030031) == 48240248);
+ assert(mult_int(8, 6030032) == 48240256);
+ assert(mult_int(8, 6030033) == 48240264);
+ assert(mult_int(8, 6030034) == 48240272);
+ assert(mult_int(8, 6030035) == 48240280);
+ assert(mult_int(8, 6030036) == 48240288);
+ assert(mult_int(8, 6030037) == 48240296);
+ assert(mult_int(8, 6030038) == 48240304);
+ assert(mult_int(8, 6030039) == 48240312);
+ assert(mult_int(8, 6030040) == 48240320);
+ assert(mult_int(8, 6030041) == 48240328);
+ assert(mult_int(8, 6030042) == 48240336);
+ assert(mult_int(8, 6030043) == 48240344);
+ assert(mult_int(8, 6030044) == 48240352);
+ assert(mult_int(8, 6030045) == 48240360);
+ assert(mult_int(8, 6030046) == 48240368);
+ assert(mult_int(8, 6030047) == 48240376);
+ assert(mult_int(8, 6030048) == 48240384);
+ assert(mult_int(8, 6030049) == 48240392);
+ assert(mult_int(8, 6030050) == 48240400);
+ assert(mult_int(8, 6030051) == 48240408);
+ assert(mult_int(8, 6030052) == 48240416);
+ assert(mult_int(8, 6030053) == 48240424);
+ assert(mult_int(8, 6030054) == 48240432);
+ assert(mult_int(8, 6030055) == 48240440);
+ assert(mult_int(8, 6030056) == 48240448);
+ assert(mult_int(8, 6030057) == 48240456);
+ assert(mult_int(8, 6030058) == 48240464);
+ assert(mult_int(8, 6030059) == 48240472);
+ assert(mult_int(8, 6030060) == 48240480);
+ assert(mult_int(8, 6030061) == 48240488);
+ assert(mult_int(8, 6030062) == 48240496);
+ assert(mult_int(8, 6030063) == 48240504);
+ assert(mult_int(8, 6030064) == 48240512);
+ assert(mult_int(8, 6030065) == 48240520);
+ assert(mult_int(8, 6030066) == 48240528);
+ assert(mult_int(8, 6030067) == 48240536);
+ assert(mult_int(8, 6030068) == 48240544);
+ assert(mult_int(8, 6030069) == 48240552);
+ assert(mult_int(8, 6030070) == 48240560);
+ assert(mult_int(8, 6030071) == 48240568);
+ assert(mult_int(8, 6030072) == 48240576);
+ assert(mult_int(8, 6030073) == 48240584);
+ assert(mult_int(8, 6030074) == 48240592);
+ assert(mult_int(8, 6030075) == 48240600);
+ assert(mult_int(8, 6030076) == 48240608);
+ assert(mult_int(8, 6030077) == 48240616);
+ assert(mult_int(8, 6030078) == 48240624);
+ assert(mult_int(8, 6030079) == 48240632);
+ assert(mult_int(8, 6030080) == 48240640);
+ assert(mult_int(8, 6030081) == 48240648);
+ assert(mult_int(8, 6030082) == 48240656);
+ assert(mult_int(8, 6030083) == 48240664);
+ assert(mult_int(8, 6030084) == 48240672);
+ assert(mult_int(8, 6030085) == 48240680);
+ assert(mult_int(8, 6030086) == 48240688);
+ assert(mult_int(8, 6030087) == 48240696);
+ assert(mult_int(8, 6030088) == 48240704);
+ assert(mult_int(8, 6030089) == 48240712);
+ assert(mult_int(8, 6030090) == 48240720);
+ assert(mult_int(8, 6030091) == 48240728);
+ assert(mult_int(8, 6030092) == 48240736);
+ assert(mult_int(8, 6030093) == 48240744);
+ assert(mult_int(8, 6030094) == 48240752);
+ assert(mult_int(8, 6030095) == 48240760);
+ assert(mult_int(8, 6030096) == 48240768);
+ assert(mult_int(8, 6030097) == 48240776);
+ assert(mult_int(8, 6030098) == 48240784);
+ assert(mult_int(8, 6030099) == 48240792);
+ assert(mult_int(8, 6030100) == 48240800);
+ assert(mult_int(8, 6030101) == 48240808);
+ assert(mult_int(8, 6030102) == 48240816);
+ assert(mult_int(8, 6030103) == 48240824);
+ assert(mult_int(8, 6119424) == 48955392);
+ assert(mult_int(8, 6127616) == 49020928);
+ assert(mult_int(8, 6144000) == 49152000);
+ assert(mult_int(8, 6152192) == 49217536);
+ assert(mult_int(8, 6152200) == 49217600);
+ assert(mult_int(8, 6160385) == 49283080);
+ assert(mult_int(8, 6160386) == 49283088);
+ assert(mult_int(8, 6160387) == 49283096);
+ assert(mult_int(8, 6160388) == 49283104);
+ assert(mult_int(8, 6160389) == 49283112);
+ assert(mult_int(8, 6160390) == 49283120);
+ assert(mult_int(8, 6160391) == 49283128);
+ assert(mult_int(8, 6160392) == 49283136);
+ assert(mult_int(8, 6160393) == 49283144);
+ assert(mult_int(8, 6160394) == 49283152);
+ assert(mult_int(8, 6160395) == 49283160);
+ assert(mult_int(8, 6160396) == 49283168);
+ assert(mult_int(8, 6160397) == 49283176);
+ assert(mult_int(8, 6160398) == 49283184);
+ assert(mult_int(8, 6160399) == 49283192);
+ assert(mult_int(8, 6160400) == 49283200);
+ assert(mult_int(8, 6160401) == 49283208);
+ assert(mult_int(8, 6160402) == 49283216);
+ assert(mult_int(8, 6160403) == 49283224);
+ assert(mult_int(8, 6160404) == 49283232);
+ assert(mult_int(8, 6160405) == 49283240);
+ assert(mult_int(8, 6160406) == 49283248);
+ assert(mult_int(8, 6160407) == 49283256);
+ assert(mult_int(8, 6160408) == 49283264);
+ assert(mult_int(8, 6160409) == 49283272);
+ assert(mult_int(8, 6160410) == 49283280);
+ assert(mult_int(8, 6160411) == 49283288);
+ assert(mult_int(8, 6160412) == 49283296);
+ assert(mult_int(8, 6160413) == 49283304);
+ assert(mult_int(8, 6160414) == 49283312);
+ assert(mult_int(8, 6160415) == 49283320);
+ assert(mult_int(8, 6160416) == 49283328);
+ assert(mult_int(8, 6160506) == 49284048);
+ assert(mult_int(8, 6160507) == 49284056);
+ assert(mult_int(8, 6160508) == 49284064);
+ assert(mult_int(8, 6160509) == 49284072);
+ assert(mult_int(8, 6160510) == 49284080);
+ assert(mult_int(8, 6160511) == 49284088);
+ assert(mult_int(8, 6160512) == 49284096);
+ assert(mult_int(8, 6160513) == 49284104);
+ assert(mult_int(8, 6160514) == 49284112);
+ assert(mult_int(8, 6160515) == 49284120);
+ assert(mult_int(8, 6160516) == 49284128);
+ assert(mult_int(8, 6160517) == 49284136);
+ assert(mult_int(8, 6160518) == 49284144);
+ assert(mult_int(8, 6160519) == 49284152);
+ assert(mult_int(8, 6160520) == 49284160);
+ assert(mult_int(8, 6160521) == 49284168);
+ assert(mult_int(8, 6160522) == 49284176);
+ assert(mult_int(8, 6160523) == 49284184);
+ assert(mult_int(8, 6160524) == 49284192);
+ assert(mult_int(8, 6160525) == 49284200);
+ assert(mult_int(8, 6160526) == 49284208);
+ assert(mult_int(8, 6160527) == 49284216);
+ assert(mult_int(8, 6160528) == 49284224);
+ assert(mult_int(8, 6160529) == 49284232);
+ assert(mult_int(8, 6160530) == 49284240);
+ assert(mult_int(8, 6160531) == 49284248);
+ assert(mult_int(8, 6160532) == 49284256);
+ assert(mult_int(8, 6160533) == 49284264);
+ assert(mult_int(8, 6160534) == 49284272);
+ assert(mult_int(8, 6160535) == 49284280);
+ assert(mult_int(8, 6160536) == 49284288);
+ assert(mult_int(8, 6160537) == 49284296);
+ assert(mult_int(8, 6160538) == 49284304);
+ assert(mult_int(8, 6160539) == 49284312);
+ assert(mult_int(8, 6160540) == 49284320);
+ assert(mult_int(8, 6160541) == 49284328);
+ assert(mult_int(8, 6160542) == 49284336);
+ assert(mult_int(8, 6160543) == 49284344);
+ assert(mult_int(8, 6160544) == 49284352);
+ assert(mult_int(8, 6160545) == 49284360);
+ assert(mult_int(8, 6160546) == 49284368);
+ assert(mult_int(8, 6160547) == 49284376);
+ assert(mult_int(8, 6160548) == 49284384);
+ assert(mult_int(8, 6160549) == 49284392);
+ assert(mult_int(8, 6160550) == 49284400);
+ assert(mult_int(8, 6160551) == 49284408);
+ assert(mult_int(8, 6160552) == 49284416);
+ assert(mult_int(8, 6160553) == 49284424);
+ assert(mult_int(8, 6160554) == 49284432);
+ assert(mult_int(8, 6160555) == 49284440);
+ assert(mult_int(8, 6160556) == 49284448);
+ assert(mult_int(8, 6160557) == 49284456);
+ assert(mult_int(8, 6160558) == 49284464);
+ assert(mult_int(8, 6160559) == 49284472);
+ assert(mult_int(8, 6160560) == 49284480);
+ assert(mult_int(8, 6160561) == 49284488);
+ assert(mult_int(8, 6160562) == 49284496);
+ assert(mult_int(8, 6160563) == 49284504);
+ assert(mult_int(8, 6160564) == 49284512);
+ assert(mult_int(8, 6160565) == 49284520);
+ assert(mult_int(8, 6160566) == 49284528);
+ assert(mult_int(8, 6160567) == 49284536);
+ assert(mult_int(8, 6160568) == 49284544);
+ assert(mult_int(8, 6160569) == 49284552);
+ assert(mult_int(8, 6160570) == 49284560);
+ assert(mult_int(8, 6160571) == 49284568);
+ assert(mult_int(8, 6160572) == 49284576);
+ assert(mult_int(8, 6160573) == 49284584);
+ assert(mult_int(8, 6160574) == 49284592);
+ assert(mult_int(8, 6160575) == 49284600);
+ assert(mult_int(8, 6160576) == 49284608);
+ assert(mult_int(8, 6160577) == 49284616);
+ assert(mult_int(8, 6160578) == 49284624);
+ assert(mult_int(8, 6160579) == 49284632);
+ assert(mult_int(8, 6160580) == 49284640);
+ assert(mult_int(8, 6160581) == 49284648);
+ assert(mult_int(8, 6160582) == 49284656);
+ assert(mult_int(8, 6160583) == 49284664);
+ assert(mult_int(8, 6160584) == 49284672);
+ assert(mult_int(8, 6160585) == 49284680);
+ assert(mult_int(8, 6160586) == 49284688);
+ assert(mult_int(8, 6160587) == 49284696);
+ assert(mult_int(8, 6160588) == 49284704);
+ assert(mult_int(8, 6160589) == 49284712);
+ assert(mult_int(8, 6160590) == 49284720);
+ assert(mult_int(8, 6160591) == 49284728);
+ assert(mult_int(8, 6160592) == 49284736);
+ assert(mult_int(8, 6160593) == 49284744);
+ assert(mult_int(8, 6160594) == 49284752);
+ assert(mult_int(8, 6160595) == 49284760);
+ assert(mult_int(8, 6160596) == 49284768);
+ assert(mult_int(8, 6160597) == 49284776);
+ assert(mult_int(8, 6160598) == 49284784);
+ assert(mult_int(8, 6160599) == 49284792);
+ assert(mult_int(8, 6160600) == 49284800);
+ assert(mult_int(8, 6160601) == 49284808);
+ assert(mult_int(8, 6160602) == 49284816);
+ assert(mult_int(8, 6160603) == 49284824);
+ assert(mult_int(8, 6160604) == 49284832);
+ assert(mult_int(8, 6160605) == 49284840);
+ assert(mult_int(8, 6160606) == 49284848);
+ assert(mult_int(8, 6160607) == 49284856);
+ assert(mult_int(8, 6160608) == 49284864);
+ assert(mult_int(8, 6160609) == 49284872);
+ assert(mult_int(8, 6160610) == 49284880);
+ assert(mult_int(8, 6160611) == 49284888);
+ assert(mult_int(8, 6160612) == 49284896);
+ assert(mult_int(8, 6160613) == 49284904);
+ assert(mult_int(8, 6160614) == 49284912);
+ assert(mult_int(8, 6160615) == 49284920);
+ assert(mult_int(8, 6160616) == 49284928);
+ assert(mult_int(8, 6160617) == 49284936);
+ assert(mult_int(8, 6160618) == 49284944);
+ assert(mult_int(8, 6160619) == 49284952);
+ assert(mult_int(8, 6160620) == 49284960);
+ assert(mult_int(8, 6160621) == 49284968);
+ assert(mult_int(8, 6160622) == 49284976);
+ assert(mult_int(8, 6160623) == 49284984);
+ assert(mult_int(8, 6160624) == 49284992);
+ assert(mult_int(8, 6160625) == 49285000);
+ assert(mult_int(8, 6160626) == 49285008);
+ assert(mult_int(8, 6160627) == 49285016);
+ assert(mult_int(8, 6160628) == 49285024);
+ assert(mult_int(8, 6160629) == 49285032);
+ assert(mult_int(8, 6160630) == 49285040);
+ assert(mult_int(8, 6160631) == 49285048);
+ assert(mult_int(8, 6160632) == 49285056);
+ assert(mult_int(8, 6160633) == 49285064);
+ assert(mult_int(8, 6160634) == 49285072);
+ assert(mult_int(8, 6160635) == 49285080);
+ assert(mult_int(8, 6160636) == 49285088);
+ assert(mult_int(8, 6160637) == 49285096);
+ assert(mult_int(8, 6160638) == 49285104);
+ assert(mult_int(8, 6160639) == 49285112);
+ assert(mult_int(8, 6160640) == 49285120);
+ assert(mult_int(8, 6160641) == 49285128);
+ assert(mult_int(8, 6160642) == 49285136);
+ assert(mult_int(8, 6160643) == 49285144);
+ assert(mult_int(8, 6160644) == 49285152);
+ assert(mult_int(8, 6160645) == 49285160);
+ assert(mult_int(8, 6160646) == 49285168);
+ assert(mult_int(8, 6160647) == 49285176);
+ assert(mult_int(8, 6160648) == 49285184);
+ assert(mult_int(8, 6160649) == 49285192);
+ assert(mult_int(8, 6160650) == 49285200);
+ assert(mult_int(8, 6160651) == 49285208);
+ assert(mult_int(8, 6160652) == 49285216);
+ assert(mult_int(8, 6160653) == 49285224);
+ assert(mult_int(8, 6160654) == 49285232);
+ assert(mult_int(8, 6160655) == 49285240);
+ assert(mult_int(8, 6160656) == 49285248);
+ assert(mult_int(8, 6160657) == 49285256);
+ assert(mult_int(8, 6160658) == 49285264);
+ assert(mult_int(8, 6160659) == 49285272);
+ assert(mult_int(8, 6160660) == 49285280);
+ assert(mult_int(8, 6160661) == 49285288);
+ assert(mult_int(8, 6160662) == 49285296);
+ assert(mult_int(8, 6160663) == 49285304);
+ assert(mult_int(8, 6160664) == 49285312);
+ assert(mult_int(8, 6160665) == 49285320);
+ assert(mult_int(8, 6160666) == 49285328);
+ assert(mult_int(8, 6160667) == 49285336);
+ assert(mult_int(8, 6160668) == 49285344);
+ assert(mult_int(8, 6160669) == 49285352);
+ assert(mult_int(8, 6160670) == 49285360);
+ assert(mult_int(8, 6160671) == 49285368);
+ assert(mult_int(8, 6160672) == 49285376);
+ assert(mult_int(8, 6160673) == 49285384);
+ assert(mult_int(8, 6160674) == 49285392);
+ assert(mult_int(8, 6160675) == 49285400);
+ assert(mult_int(8, 6160676) == 49285408);
+ assert(mult_int(8, 6160677) == 49285416);
+ assert(mult_int(8, 6160678) == 49285424);
+ assert(mult_int(8, 6160679) == 49285432);
+ assert(mult_int(8, 6160680) == 49285440);
+ assert(mult_int(8, 6160681) == 49285448);
+ assert(mult_int(8, 6160682) == 49285456);
+ assert(mult_int(8, 6160683) == 49285464);
+ assert(mult_int(8, 6160684) == 49285472);
+ assert(mult_int(8, 6160685) == 49285480);
+ assert(mult_int(8, 6160686) == 49285488);
+ assert(mult_int(8, 6160687) == 49285496);
+ assert(mult_int(8, 6160688) == 49285504);
+ assert(mult_int(8, 6160689) == 49285512);
+ assert(mult_int(8, 6160690) == 49285520);
+ assert(mult_int(8, 6160691) == 49285528);
+ assert(mult_int(8, 6160692) == 49285536);
+ assert(mult_int(8, 6160693) == 49285544);
+ assert(mult_int(8, 6160694) == 49285552);
+ assert(mult_int(8, 6160695) == 49285560);
+ assert(mult_int(8, 6160696) == 49285568);
+ assert(mult_int(8, 6160697) == 49285576);
+ assert(mult_int(8, 6160698) == 49285584);
+ assert(mult_int(8, 6160699) == 49285592);
+ assert(mult_int(8, 6160700) == 49285600);
+ assert(mult_int(8, 6160701) == 49285608);
+ assert(mult_int(8, 6160702) == 49285616);
+ assert(mult_int(8, 6160703) == 49285624);
+ assert(mult_int(8, 6160704) == 49285632);
+ assert(mult_int(8, 6160705) == 49285640);
+ assert(mult_int(8, 6160706) == 49285648);
+ assert(mult_int(8, 6160707) == 49285656);
+ assert(mult_int(8, 6160708) == 49285664);
+ assert(mult_int(8, 6160709) == 49285672);
+ assert(mult_int(8, 6160710) == 49285680);
+ assert(mult_int(8, 6160711) == 49285688);
+ assert(mult_int(8, 6160712) == 49285696);
+ assert(mult_int(8, 6160713) == 49285704);
+ assert(mult_int(8, 6160714) == 49285712);
+ assert(mult_int(8, 6160715) == 49285720);
+ assert(mult_int(8, 6160716) == 49285728);
+ assert(mult_int(8, 6160717) == 49285736);
+ assert(mult_int(8, 6160718) == 49285744);
+ assert(mult_int(8, 6160719) == 49285752);
+ assert(mult_int(8, 6160720) == 49285760);
+ assert(mult_int(8, 6160721) == 49285768);
+ assert(mult_int(8, 6160722) == 49285776);
+ assert(mult_int(8, 6160723) == 49285784);
+ assert(mult_int(8, 6160724) == 49285792);
+ assert(mult_int(8, 6160725) == 49285800);
+ assert(mult_int(8, 6160726) == 49285808);
+ assert(mult_int(8, 6160727) == 49285816);
+ assert(mult_int(8, 6160728) == 49285824);
+ assert(mult_int(8, 6160729) == 49285832);
+ assert(mult_int(8, 6160730) == 49285840);
+ assert(mult_int(8, 6160731) == 49285848);
+ assert(mult_int(8, 6160732) == 49285856);
+ assert(mult_int(8, 6160733) == 49285864);
+ assert(mult_int(8, 6160734) == 49285872);
+ assert(mult_int(8, 6160735) == 49285880);
+ assert(mult_int(8, 6160736) == 49285888);
+ assert(mult_int(8, 6160737) == 49285896);
+ assert(mult_int(8, 6160738) == 49285904);
+ assert(mult_int(8, 6160739) == 49285912);
+ assert(mult_int(8, 6160740) == 49285920);
+ assert(mult_int(8, 6160741) == 49285928);
+ assert(mult_int(8, 6160742) == 49285936);
+ assert(mult_int(8, 6160743) == 49285944);
+ assert(mult_int(8, 6160744) == 49285952);
+ assert(mult_int(8, 6160745) == 49285960);
+ assert(mult_int(8, 6160746) == 49285968);
+ assert(mult_int(8, 6160747) == 49285976);
+ assert(mult_int(8, 6160748) == 49285984);
+ assert(mult_int(8, 6160749) == 49285992);
+ assert(mult_int(8, 6160750) == 49286000);
+ assert(mult_int(8, 6160751) == 49286008);
+ assert(mult_int(8, 6160752) == 49286016);
+ assert(mult_int(8, 6160753) == 49286024);
+ assert(mult_int(8, 6160754) == 49286032);
+ assert(mult_int(8, 6160755) == 49286040);
+ assert(mult_int(8, 6160756) == 49286048);
+ assert(mult_int(8, 6160757) == 49286056);
+ assert(mult_int(8, 6160758) == 49286064);
+ assert(mult_int(8, 6160759) == 49286072);
+ assert(mult_int(8, 6160760) == 49286080);
+ assert(mult_int(8, 6160761) == 49286088);
+ assert(mult_int(8, 6160762) == 49286096);
+ assert(mult_int(8, 6160763) == 49286104);
+ assert(mult_int(8, 6160764) == 49286112);
+ assert(mult_int(8, 6160765) == 49286120);
+ assert(mult_int(8, 6160766) == 49286128);
+ assert(mult_int(8, 6160767) == 49286136);
+ assert(mult_int(8, 6160768) == 49286144);
+ assert(mult_int(8, 6160769) == 49286152);
+ assert(mult_int(8, 6160770) == 49286160);
+ assert(mult_int(8, 6160771) == 49286168);
+ assert(mult_int(8, 6160772) == 49286176);
+ assert(mult_int(8, 6160773) == 49286184);
+ assert(mult_int(8, 6160774) == 49286192);
+ assert(mult_int(8, 6160775) == 49286200);
+ assert(mult_int(8, 6160776) == 49286208);
+ assert(mult_int(8, 6160777) == 49286216);
+ assert(mult_int(8, 6160778) == 49286224);
+ assert(mult_int(8, 6160779) == 49286232);
+ assert(mult_int(8, 6160780) == 49286240);
+ assert(mult_int(8, 6160781) == 49286248);
+ assert(mult_int(8, 6160782) == 49286256);
+ assert(mult_int(8, 6160783) == 49286264);
+ assert(mult_int(8, 6160784) == 49286272);
+ assert(mult_int(8, 6160785) == 49286280);
+ assert(mult_int(8, 6160786) == 49286288);
+ assert(mult_int(8, 6160787) == 49286296);
+ assert(mult_int(8, 6160788) == 49286304);
+ assert(mult_int(8, 6160789) == 49286312);
+ assert(mult_int(8, 6160790) == 49286320);
+ assert(mult_int(8, 6160791) == 49286328);
+ assert(mult_int(8, 6160792) == 49286336);
+ assert(mult_int(8, 6160793) == 49286344);
+ assert(mult_int(8, 6160794) == 49286352);
+ assert(mult_int(8, 6160795) == 49286360);
+ assert(mult_int(8, 6160796) == 49286368);
+ assert(mult_int(8, 6160797) == 49286376);
+ assert(mult_int(8, 6160798) == 49286384);
+ assert(mult_int(8, 6160799) == 49286392);
+ assert(mult_int(8, 6160800) == 49286400);
+ assert(mult_int(8, 6160801) == 49286408);
+ assert(mult_int(8, 6160802) == 49286416);
+ assert(mult_int(8, 6160803) == 49286424);
+ assert(mult_int(8, 6160804) == 49286432);
+ assert(mult_int(8, 6160805) == 49286440);
+ assert(mult_int(8, 6160806) == 49286448);
+ assert(mult_int(8, 6160807) == 49286456);
+ assert(mult_int(8, 6160808) == 49286464);
+ assert(mult_int(8, 6160809) == 49286472);
+ assert(mult_int(8, 6160810) == 49286480);
+ assert(mult_int(8, 6160811) == 49286488);
+ assert(mult_int(8, 6160812) == 49286496);
+ assert(mult_int(8, 6160813) == 49286504);
+ assert(mult_int(8, 6160814) == 49286512);
+ assert(mult_int(8, 6160815) == 49286520);
+ assert(mult_int(8, 6160816) == 49286528);
+ assert(mult_int(8, 6160817) == 49286536);
+ assert(mult_int(8, 6160818) == 49286544);
+ assert(mult_int(8, 6160819) == 49286552);
+ assert(mult_int(8, 6160820) == 49286560);
+ assert(mult_int(8, 6160821) == 49286568);
+ assert(mult_int(8, 6160822) == 49286576);
+ assert(mult_int(8, 6160823) == 49286584);
+ assert(mult_int(8, 6160824) == 49286592);
+ assert(mult_int(8, 6160825) == 49286600);
+ assert(mult_int(8, 6160826) == 49286608);
+ assert(mult_int(8, 6160827) == 49286616);
+ assert(mult_int(8, 6160828) == 49286624);
+ assert(mult_int(8, 6160829) == 49286632);
+ assert(mult_int(8, 6160830) == 49286640);
+ assert(mult_int(8, 6168832) == 49350656);
+ assert(mult_int(8, 6193152) == 49545216);
+ assert(mult_int(8, 6201344) == 49610752);
+ assert(mult_int(8, 6201352) == 49610816);
+ assert(mult_int(8, 6209600) == 49676800);
+ assert(mult_int(8, 6217984) == 49743872);
+ assert(mult_int(8, 6291540) == 50332320);
+ assert(mult_int(8, 6292776) == 50342208);
+ assert(mult_int(8, 6295974) == 50367792);
+ assert(mult_int(8, 6295975) == 50367800);
+ assert(mult_int(8, 6295976) == 50367808);
+ assert(mult_int(8, 6295977) == 50367816);
+ assert(mult_int(8, 6295978) == 50367824);
+ assert(mult_int(8, 6295979) == 50367832);
+ assert(mult_int(8, 6295980) == 50367840);
+ assert(mult_int(8, 6295981) == 50367848);
+ assert(mult_int(8, 6295982) == 50367856);
+ assert(mult_int(8, 6295983) == 50367864);
+ assert(mult_int(8, 6295984) == 50367872);
+ assert(mult_int(8, 6295985) == 50367880);
+ assert(mult_int(8, 6295986) == 50367888);
+ assert(mult_int(8, 6295987) == 50367896);
+ assert(mult_int(8, 6295988) == 50367904);
+ assert(mult_int(8, 6295989) == 50367912);
+ assert(mult_int(8, 6295990) == 50367920);
+ assert(mult_int(8, 6295991) == 50367928);
+ assert(mult_int(8, 6295992) == 50367936);
+ assert(mult_int(8, 6295993) == 50367944);
+ assert(mult_int(8, 6295994) == 50367952);
+ assert(mult_int(8, 6295995) == 50367960);
+ assert(mult_int(8, 6295996) == 50367968);
+ assert(mult_int(8, 6295997) == 50367976);
+ assert(mult_int(8, 6295998) == 50367984);
+ assert(mult_int(8, 6295999) == 50367992);
+ assert(mult_int(8, 6296000) == 50368000);
+ assert(mult_int(8, 6296001) == 50368008);
+ assert(mult_int(8, 6296002) == 50368016);
+ assert(mult_int(8, 6296003) == 50368024);
+ assert(mult_int(8, 6296004) == 50368032);
+ assert(mult_int(8, 6296005) == 50368040);
+ assert(mult_int(8, 6296006) == 50368048);
+ assert(mult_int(8, 6296007) == 50368056);
+ assert(mult_int(8, 6406144) == 51249152);
+ assert(mult_int(8, 6414336) == 51314688);
+ assert(mult_int(8, 6422528) == 51380224);
+ assert(mult_int(8, 6422536) == 51380288);
+ assert(mult_int(8, 6430785) == 51446280);
+ assert(mult_int(8, 6439168) == 51513344);
+ assert(mult_int(8, 6529076) == 52232608);
+ assert(mult_int(8, 6529080) == 52232640);
+ assert(mult_int(8, 6529084) == 52232672);
+ assert(mult_int(8, 6529085) == 52232680);
+ assert(mult_int(8, 6529086) == 52232688);
+ assert(mult_int(8, 6529088) == 52232704);
+ assert(mult_int(8, 6529089) == 52232712);
+ assert(mult_int(8, 6529091) == 52232728);
+ assert(mult_int(8, 6529092) == 52232736);
+ assert(mult_int(8, 6529093) == 52232744);
+ assert(mult_int(8, 6529094) == 52232752);
+ assert(mult_int(8, 6529097) == 52232776);
+ assert(mult_int(8, 6529098) == 52232784);
+ assert(mult_int(8, 6529099) == 52232792);
+ assert(mult_int(8, 6529100) == 52232800);
+ assert(mult_int(8, 6529119) == 52232952);
+ assert(mult_int(8, 6529120) == 52232960);
+ assert(mult_int(8, 6529121) == 52232968);
+ assert(mult_int(8, 6529123) == 52232984);
+ assert(mult_int(8, 6529124) == 52232992);
+ assert(mult_int(8, 6529125) == 52233000);
+ assert(mult_int(8, 6529298) == 52234384);
+ assert(mult_int(8, 6529299) == 52234392);
+ assert(mult_int(8, 6529300) == 52234400);
+ assert(mult_int(8, 6529480) == 52235840);
+ assert(mult_int(8, 6529481) == 52235848);
+ assert(mult_int(8, 6529482) == 52235856);
+ assert(mult_int(8, 6529557) == 52236456);
+ assert(mult_int(8, 6529558) == 52236464);
+ assert(mult_int(8, 6529567) == 52236536);
+ assert(mult_int(8, 6529568) == 52236544);
+ assert(mult_int(8, 6529569) == 52236552);
+ assert(mult_int(8, 6529570) == 52236560);
+ assert(mult_int(8, 6529581) == 52236648);
+ assert(mult_int(8, 6529582) == 52236656);
+ assert(mult_int(8, 6529583) == 52236664);
+ assert(mult_int(8, 6529650) == 52237200);
+ assert(mult_int(8, 6529651) == 52237208);
+ assert(mult_int(8, 6529652) == 52237216);
+ assert(mult_int(8, 6529653) == 52237224);
+ assert(mult_int(8, 6529654) == 52237232);
+ assert(mult_int(8, 6529655) == 52237240);
+ assert(mult_int(8, 6529656) == 52237248);
+ assert(mult_int(8, 6529657) == 52237256);
+ assert(mult_int(8, 6529658) == 52237264);
+ assert(mult_int(8, 6529659) == 52237272);
+ assert(mult_int(8, 6529660) == 52237280);
+ assert(mult_int(8, 6529661) == 52237288);
+ assert(mult_int(8, 6529662) == 52237296);
+ assert(mult_int(8, 6529663) == 52237304);
+ assert(mult_int(8, 6529664) == 52237312);
+ assert(mult_int(8, 6529665) == 52237320);
+ assert(mult_int(8, 6529666) == 52237328);
+ assert(mult_int(8, 6529667) == 52237336);
+ assert(mult_int(8, 6529668) == 52237344);
+ assert(mult_int(8, 6529669) == 52237352);
+ assert(mult_int(8, 6529670) == 52237360);
+ assert(mult_int(8, 6529671) == 52237368);
+ assert(mult_int(8, 6529672) == 52237376);
+ assert(mult_int(8, 6529673) == 52237384);
+ assert(mult_int(8, 6529674) == 52237392);
+ assert(mult_int(8, 6529675) == 52237400);
+ assert(mult_int(8, 6529676) == 52237408);
+ assert(mult_int(8, 6529677) == 52237416);
+ assert(mult_int(8, 6529678) == 52237424);
+ assert(mult_int(8, 6529679) == 52237432);
+ assert(mult_int(8, 6529680) == 52237440);
+ assert(mult_int(8, 6529681) == 52237448);
+ assert(mult_int(8, 6529682) == 52237456);
+ assert(mult_int(8, 6529683) == 52237464);
+ assert(mult_int(8, 6529684) == 52237472);
+ assert(mult_int(8, 6529685) == 52237480);
+ assert(mult_int(8, 6529686) == 52237488);
+ assert(mult_int(8, 6529687) == 52237496);
+ assert(mult_int(8, 6529688) == 52237504);
+ assert(mult_int(8, 6529689) == 52237512);
+ assert(mult_int(8, 6529690) == 52237520);
+ assert(mult_int(8, 6529691) == 52237528);
+ assert(mult_int(8, 6529692) == 52237536);
+ assert(mult_int(8, 6529693) == 52237544);
+ assert(mult_int(8, 6529694) == 52237552);
+ assert(mult_int(8, 6529695) == 52237560);
+ assert(mult_int(8, 6529696) == 52237568);
+ assert(mult_int(8, 6529697) == 52237576);
+ assert(mult_int(8, 6529698) == 52237584);
+ assert(mult_int(8, 6529699) == 52237592);
+ assert(mult_int(8, 6529700) == 52237600);
+ assert(mult_int(8, 6529701) == 52237608);
+ assert(mult_int(8, 6529702) == 52237616);
+ assert(mult_int(8, 6529703) == 52237624);
+ assert(mult_int(8, 6529704) == 52237632);
+ assert(mult_int(8, 6529705) == 52237640);
+ assert(mult_int(8, 6529706) == 52237648);
+ assert(mult_int(8, 6529707) == 52237656);
+ assert(mult_int(8, 6529708) == 52237664);
+ assert(mult_int(8, 6529709) == 52237672);
+ assert(mult_int(8, 6529710) == 52237680);
+ assert(mult_int(8, 6529711) == 52237688);
+ assert(mult_int(8, 6529712) == 52237696);
+ assert(mult_int(8, 6529713) == 52237704);
+ assert(mult_int(8, 6529714) == 52237712);
+ assert(mult_int(8, 6529715) == 52237720);
+ assert(mult_int(8, 6529716) == 52237728);
+ assert(mult_int(8, 6529717) == 52237736);
+ assert(mult_int(8, 6529718) == 52237744);
+ assert(mult_int(8, 6529719) == 52237752);
+ assert(mult_int(8, 6529720) == 52237760);
+ assert(mult_int(8, 6529721) == 52237768);
+ assert(mult_int(8, 6529722) == 52237776);
+ assert(mult_int(8, 6529723) == 52237784);
+ assert(mult_int(8, 6529724) == 52237792);
+ assert(mult_int(8, 6529725) == 52237800);
+ assert(mult_int(8, 6529726) == 52237808);
+ assert(mult_int(8, 6529727) == 52237816);
+ assert(mult_int(8, 6529728) == 52237824);
+ assert(mult_int(8, 6529729) == 52237832);
+ assert(mult_int(8, 6529730) == 52237840);
+ assert(mult_int(8, 6529731) == 52237848);
+ assert(mult_int(8, 6529732) == 52237856);
+ assert(mult_int(8, 6529733) == 52237864);
+ assert(mult_int(8, 6529734) == 52237872);
+ assert(mult_int(8, 6529735) == 52237880);
+ assert(mult_int(8, 6529736) == 52237888);
+ assert(mult_int(8, 6529737) == 52237896);
+ assert(mult_int(8, 6529738) == 52237904);
+ assert(mult_int(8, 6529739) == 52237912);
+ assert(mult_int(8, 6529740) == 52237920);
+ assert(mult_int(8, 6529741) == 52237928);
+ assert(mult_int(8, 6529742) == 52237936);
+ assert(mult_int(8, 6529743) == 52237944);
+ assert(mult_int(8, 6529744) == 52237952);
+ assert(mult_int(8, 6529745) == 52237960);
+ assert(mult_int(8, 6529746) == 52237968);
+ assert(mult_int(8, 6529747) == 52237976);
+ assert(mult_int(8, 6529748) == 52237984);
+ assert(mult_int(8, 6529749) == 52237992);
+ assert(mult_int(8, 6529750) == 52238000);
+ assert(mult_int(8, 6529751) == 52238008);
+ assert(mult_int(8, 6529752) == 52238016);
+ assert(mult_int(8, 6529753) == 52238024);
+ assert(mult_int(8, 6529754) == 52238032);
+ assert(mult_int(8, 6529755) == 52238040);
+ assert(mult_int(8, 6529756) == 52238048);
+ assert(mult_int(8, 6529757) == 52238056);
+ assert(mult_int(8, 6529758) == 52238064);
+ assert(mult_int(8, 6529759) == 52238072);
+ assert(mult_int(8, 6529760) == 52238080);
+ assert(mult_int(8, 6529761) == 52238088);
+ assert(mult_int(8, 6529762) == 52238096);
+ assert(mult_int(8, 6529763) == 52238104);
+ assert(mult_int(8, 6529764) == 52238112);
+ assert(mult_int(8, 6529765) == 52238120);
+ assert(mult_int(8, 6529766) == 52238128);
+ assert(mult_int(8, 6529767) == 52238136);
+ assert(mult_int(8, 6529768) == 52238144);
+ assert(mult_int(8, 6529769) == 52238152);
+ assert(mult_int(8, 6529770) == 52238160);
+ assert(mult_int(8, 6529771) == 52238168);
+ assert(mult_int(8, 6529772) == 52238176);
+ assert(mult_int(8, 6529773) == 52238184);
+ assert(mult_int(8, 6529774) == 52238192);
+ assert(mult_int(8, 6529786) == 52238288);
+ assert(mult_int(8, 6529788) == 52238304);
+ assert(mult_int(8, 6529789) == 52238312);
+ assert(mult_int(8, 6529790) == 52238320);
+ assert(mult_int(8, 6529791) == 52238328);
+ assert(mult_int(8, 6529792) == 52238336);
+ assert(mult_int(8, 7340133) == 58721064);
+ assert(mult_int(8, 7340134) == 58721072);
+ assert(mult_int(8, 7340135) == 58721080);
+ assert(mult_int(8, 7340136) == 58721088);
+ assert(mult_int(8, 7340138) == 58721104);
+ assert(mult_int(8, 7340139) == 58721112);
+ assert(mult_int(8, 7340140) == 58721120);
+ assert(mult_int(8, 7340141) == 58721128);
+ assert(mult_int(8, 7340148) == 58721184);
+ assert(mult_int(8, 7340149) == 58721192);
+ assert(mult_int(8, 7340150) == 58721200);
+ assert(mult_int(8, 7340151) == 58721208);
+ assert(mult_int(8, 7340152) == 58721216);
+ assert(mult_int(8, 7340154) == 58721232);
+ assert(mult_int(8, 7340155) == 58721240);
+ assert(mult_int(8, 7340156) == 58721248);
+ assert(mult_int(8, 7340157) == 58721256);
+ assert(mult_int(8, 7340158) == 58721264);
+ assert(mult_int(8, 7353913) == 58831304);
+ assert(mult_int(8, 7353914) == 58831312);
+ assert(mult_int(8, 7353915) == 58831320);
+ assert(mult_int(8, 7353916) == 58831328);
+ assert(mult_int(8, 7353917) == 58831336);
+ assert(mult_int(8, 7353918) == 58831344);
+ assert(mult_int(8, 7353919) == 58831352);
+ assert(mult_int(8, 7353928) == 58831424);
+ assert(mult_int(8, 7353929) == 58831432);
+ assert(mult_int(8, 7353930) == 58831440);
+ assert(mult_int(8, 7353931) == 58831448);
+ assert(mult_int(8, 7353932) == 58831456);
+ assert(mult_int(8, 7353934) == 58831472);
+ assert(mult_int(8, 7353935) == 58831480);
+ assert(mult_int(8, 7353936) == 58831488);
+ assert(mult_int(8, 7353937) == 58831496);
+ assert(mult_int(8, 7353938) == 58831504);
+ assert(mult_int(8, 7353939) == 58831512);
+ assert(mult_int(8, 7353940) == 58831520);
+ assert(mult_int(8, 7353941) == 58831528);
+ assert(mult_int(8, 7353942) == 58831536);
+ assert(mult_int(8, 7353943) == 58831544);
+ assert(mult_int(8, 7353944) == 58831552);
+ assert(mult_int(8, 7353945) == 58831560);
+ assert(mult_int(8, 7353946) == 58831568);
+ assert(mult_int(8, 7353947) == 58831576);
+ assert(mult_int(8, 7353948) == 58831584);
+ assert(mult_int(8, 7353949) == 58831592);
+ assert(mult_int(8, 7353950) == 58831600);
+ assert(mult_int(8, 7353951) == 58831608);
+ assert(mult_int(8, 8) == 64);
+ assert(mult_int(8, 8746) == 69968);
+ assert(mult_int(8, 9412) == 75296);
+ assert(mult_int(8, 9484) == 75872);
+} \ No newline at end of file
diff --git a/test/builtins/not_bool.sail b/test/builtins/not_bool.sail
new file mode 100644
index 00000000..5bd8dd47
--- /dev/null
+++ b/test/builtins/not_bool.sail
@@ -0,0 +1,9 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+
+function main (() : unit) -> unit = {
+ assert(not_bool(false) == true);
+ assert(not_bool(true) == false);
+} \ No newline at end of file
diff --git a/test/builtins/replicate_bits.sail b/test/builtins/replicate_bits.sail
new file mode 100644
index 00000000..3e26943a
--- /dev/null
+++ b/test/builtins/replicate_bits.sail
@@ -0,0 +1,93 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(replicate_bits(1^0x0, 0) == 0^0x0, "replicate_bits(1^0x0, 0) == 0^0x0");
+ assert(replicate_bits(1^0x0, 1) == 1^0x0, "replicate_bits(1^0x0, 1) == 1^0x0");
+ assert(replicate_bits(1^0x0, 10) == 10^0x0, "replicate_bits(1^0x0, 10) == 10^0x0");
+ assert(replicate_bits(1^0x0, 11) == 11^0x0, "replicate_bits(1^0x0, 11) == 11^0x0");
+ assert(replicate_bits(1^0x0, 12) == 12^0x0, "replicate_bits(1^0x0, 12) == 12^0x0");
+ assert(replicate_bits(1^0x0, 13) == 13^0x0, "replicate_bits(1^0x0, 13) == 13^0x0");
+ assert(replicate_bits(1^0x0, 14) == 14^0x0, "replicate_bits(1^0x0, 14) == 14^0x0");
+ assert(replicate_bits(1^0x0, 16) == 16^0x0, "replicate_bits(1^0x0, 16) == 16^0x0");
+ assert(replicate_bits(1^0x0, 18) == 18^0x0, "replicate_bits(1^0x0, 18) == 18^0x0");
+ assert(replicate_bits(1^0x0, 2) == 2^0x0, "replicate_bits(1^0x0, 2) == 2^0x0");
+ assert(replicate_bits(1^0x0, 20) == 20^0x0, "replicate_bits(1^0x0, 20) == 20^0x0");
+ assert(replicate_bits(1^0x0, 21) == 21^0x0, "replicate_bits(1^0x0, 21) == 21^0x0");
+ assert(replicate_bits(1^0x0, 22) == 22^0x0, "replicate_bits(1^0x0, 22) == 22^0x0");
+ assert(replicate_bits(1^0x0, 24) == 24^0x0, "replicate_bits(1^0x0, 24) == 24^0x0");
+ assert(replicate_bits(1^0x0, 25) == 25^0x0, "replicate_bits(1^0x0, 25) == 25^0x0");
+ assert(replicate_bits(1^0x0, 26) == 26^0x0, "replicate_bits(1^0x0, 26) == 26^0x0");
+ assert(replicate_bits(1^0x0, 28) == 28^0x0, "replicate_bits(1^0x0, 28) == 28^0x0");
+ assert(replicate_bits(1^0x0, 29) == 29^0x0, "replicate_bits(1^0x0, 29) == 29^0x0");
+ assert(replicate_bits(1^0x0, 3) == 3^0x0, "replicate_bits(1^0x0, 3) == 3^0x0");
+ assert(replicate_bits(1^0x0, 30) == 30^0x0, "replicate_bits(1^0x0, 30) == 30^0x0");
+ assert(replicate_bits(1^0x0, 31) == 31^0x0, "replicate_bits(1^0x0, 31) == 31^0x0");
+ assert(replicate_bits(1^0x0, 32) == 32^0x0, "replicate_bits(1^0x0, 32) == 32^0x0");
+ assert(replicate_bits(1^0x0, 34) == 34^0x0, "replicate_bits(1^0x0, 34) == 34^0x0");
+ assert(replicate_bits(1^0x0, 36) == 36^0x0, "replicate_bits(1^0x0, 36) == 36^0x0");
+ assert(replicate_bits(1^0x0, 38) == 38^0x0, "replicate_bits(1^0x0, 38) == 38^0x0");
+ assert(replicate_bits(1^0x0, 4) == 4^0x0, "replicate_bits(1^0x0, 4) == 4^0x0");
+ assert(replicate_bits(1^0x0, 40) == 40^0x0, "replicate_bits(1^0x0, 40) == 40^0x0");
+ assert(replicate_bits(1^0x0, 42) == 42^0x0, "replicate_bits(1^0x0, 42) == 42^0x0");
+ assert(replicate_bits(1^0x0, 43) == 43^0x0, "replicate_bits(1^0x0, 43) == 43^0x0");
+ assert(replicate_bits(1^0x0, 44) == 44^0x0, "replicate_bits(1^0x0, 44) == 44^0x0");
+ assert(replicate_bits(1^0x0, 46) == 46^0x0, "replicate_bits(1^0x0, 46) == 46^0x0");
+ assert(replicate_bits(1^0x0, 47) == 47^0x0, "replicate_bits(1^0x0, 47) == 47^0x0");
+ assert(replicate_bits(1^0x0, 48) == 48^0x0, "replicate_bits(1^0x0, 48) == 48^0x0");
+ assert(replicate_bits(1^0x0, 5) == 5^0x0, "replicate_bits(1^0x0, 5) == 5^0x0");
+ assert(replicate_bits(1^0x0, 50) == 50^0x0, "replicate_bits(1^0x0, 50) == 50^0x0");
+ assert(replicate_bits(1^0x0, 52) == 52^0x0, "replicate_bits(1^0x0, 52) == 52^0x0");
+ assert(replicate_bits(1^0x0, 54) == 54^0x0, "replicate_bits(1^0x0, 54) == 54^0x0");
+ assert(replicate_bits(1^0x0, 55) == 55^0x0, "replicate_bits(1^0x0, 55) == 55^0x0");
+ assert(replicate_bits(1^0x0, 56) == 56^0x0, "replicate_bits(1^0x0, 56) == 56^0x0");
+ assert(replicate_bits(1^0x0, 57) == 57^0x0, "replicate_bits(1^0x0, 57) == 57^0x0");
+ assert(replicate_bits(1^0x0, 58) == 58^0x0, "replicate_bits(1^0x0, 58) == 58^0x0");
+ assert(replicate_bits(1^0x0, 6) == 6^0x0, "replicate_bits(1^0x0, 6) == 6^0x0");
+ assert(replicate_bits(1^0x0, 60) == 60^0x0, "replicate_bits(1^0x0, 60) == 60^0x0");
+ assert(replicate_bits(1^0x0, 62) == 62^0x0, "replicate_bits(1^0x0, 62) == 62^0x0");
+ assert(replicate_bits(1^0x0, 64) == 64^0x0, "replicate_bits(1^0x0, 64) == 64^0x0");
+ assert(replicate_bits(1^0x0, 7) == 7^0x0, "replicate_bits(1^0x0, 7) == 7^0x0");
+ assert(replicate_bits(1^0x0, 8) == 8^0x0, "replicate_bits(1^0x0, 8) == 8^0x0");
+ assert(replicate_bits(1^0x1, 1) == 1^0x1, "replicate_bits(1^0x1, 1) == 1^0x1");
+ assert(replicate_bits(1^0x1, 16) == 16^0xffff, "replicate_bits(1^0x1, 16) == 16^0xffff");
+ assert(replicate_bits(1^0x1, 2) == 2^0x3, "replicate_bits(1^0x1, 2) == 2^0x3");
+ assert(replicate_bits(1^0x1, 3) == 3^0x7, "replicate_bits(1^0x1, 3) == 3^0x7");
+ assert(replicate_bits(1^0x1, 32) == 32^0xffffffff, "replicate_bits(1^0x1, 32) == 32^0xffffffff");
+ assert(replicate_bits(1^0x1, 36) == 36^0xfffffffff, "replicate_bits(1^0x1, 36) == 36^0xfffffffff");
+ assert(replicate_bits(1^0x1, 4) == 4^0xf, "replicate_bits(1^0x1, 4) == 4^0xf");
+ assert(replicate_bits(1^0x1, 43) == 43^0x7ffffffffff, "replicate_bits(1^0x1, 43) == 43^0x7ffffffffff");
+ assert(replicate_bits(1^0x1, 48) == 48^0xffffffffffff, "replicate_bits(1^0x1, 48) == 48^0xffffffffffff");
+ assert(replicate_bits(1^0x1, 5) == 5^0x1f, "replicate_bits(1^0x1, 5) == 5^0x1f");
+ assert(replicate_bits(1^0x1, 57) == 57^0x1ffffffffffffff, "replicate_bits(1^0x1, 57) == 57^0x1ffffffffffffff");
+ assert(replicate_bits(1^0x1, 6) == 6^0x3f, "replicate_bits(1^0x1, 6) == 6^0x3f");
+ assert(replicate_bits(1^0x1, 64) == 64^0xffffffffffffffff, "replicate_bits(1^0x1, 64) == 64^0xffffffffffffffff");
+ assert(replicate_bits(1^0x1, 8) == 8^0xff, "replicate_bits(1^0x1, 8) == 8^0xff");
+ assert(replicate_bits(16^0x0, 4) == 64^0x0, "replicate_bits(16^0x0, 4) == 64^0x0");
+ assert(replicate_bits(16^0xff, 4) == 64^0xff00ff00ff00ff, "replicate_bits(16^0xff, 4) == 64^0xff00ff00ff00ff");
+ assert(replicate_bits(16^0xff00, 4) == 64^0xff00ff00ff00ff00, "replicate_bits(16^0xff00, 4) == 64^0xff00ff00ff00ff00");
+ assert(replicate_bits(16^0xffff, 4) == 64^0xffffffffffffffff, "replicate_bits(16^0xffff, 4) == 64^0xffffffffffffffff");
+ assert(replicate_bits(2^0x0, 32) == 64^0x0, "replicate_bits(2^0x0, 32) == 64^0x0");
+ assert(replicate_bits(2^0x1, 32) == 64^0x5555555555555555, "replicate_bits(2^0x1, 32) == 64^0x5555555555555555");
+ assert(replicate_bits(2^0x2, 32) == 64^0xaaaaaaaaaaaaaaaa, "replicate_bits(2^0x2, 32) == 64^0xaaaaaaaaaaaaaaaa");
+ assert(replicate_bits(2^0x3, 32) == 64^0xffffffffffffffff, "replicate_bits(2^0x3, 32) == 64^0xffffffffffffffff");
+ assert(replicate_bits(32^0x0, 2) == 64^0x0, "replicate_bits(32^0x0, 2) == 64^0x0");
+ assert(replicate_bits(32^0xffff, 2) == 64^0xffff0000ffff, "replicate_bits(32^0xffff, 2) == 64^0xffff0000ffff");
+ assert(replicate_bits(32^0xffff0000, 2) == 64^0xffff0000ffff0000, "replicate_bits(32^0xffff0000, 2) == 64^0xffff0000ffff0000");
+ assert(replicate_bits(32^0xffffffff, 2) == 64^0xffffffffffffffff, "replicate_bits(32^0xffffffff, 2) == 64^0xffffffffffffffff");
+ assert(replicate_bits(4^0x0, 16) == 64^0x0, "replicate_bits(4^0x0, 16) == 64^0x0");
+ assert(replicate_bits(4^0x3, 16) == 64^0x3333333333333333, "replicate_bits(4^0x3, 16) == 64^0x3333333333333333");
+ assert(replicate_bits(4^0xc, 16) == 64^0xcccccccccccccccc, "replicate_bits(4^0xc, 16) == 64^0xcccccccccccccccc");
+ assert(replicate_bits(4^0xf, 16) == 64^0xffffffffffffffff, "replicate_bits(4^0xf, 16) == 64^0xffffffffffffffff");
+ assert(replicate_bits(64^0x0, 1) == 64^0x0, "replicate_bits(64^0x0, 1) == 64^0x0");
+ assert(replicate_bits(64^0xffffffff, 1) == 64^0xffffffff, "replicate_bits(64^0xffffffff, 1) == 64^0xffffffff");
+ assert(replicate_bits(64^0xffffffff00000000, 1) == 64^0xffffffff00000000, "replicate_bits(64^0xffffffff00000000, 1) == 64^0xffffffff00000000");
+ assert(replicate_bits(64^0xffffffffffffffff, 1) == 64^0xffffffffffffffff, "replicate_bits(64^0xffffffffffffffff, 1) == 64^0xffffffffffffffff");
+ assert(replicate_bits(8^0x0, 8) == 64^0x0, "replicate_bits(8^0x0, 8) == 64^0x0");
+ assert(replicate_bits(8^0xf, 8) == 64^0xf0f0f0f0f0f0f0f, "replicate_bits(8^0xf, 8) == 64^0xf0f0f0f0f0f0f0f");
+ assert(replicate_bits(8^0xf0, 8) == 64^0xf0f0f0f0f0f0f0f0, "replicate_bits(8^0xf0, 8) == 64^0xf0f0f0f0f0f0f0f0");
+ assert(replicate_bits(8^0xff, 8) == 64^0xffffffffffffffff, "replicate_bits(8^0xff, 8) == 64^0xffffffffffffffff");
+} \ No newline at end of file
diff --git a/test/builtins/run_tests.sh b/test/builtins/run_tests.sh
new file mode 100755
index 00000000..b1d19639
--- /dev/null
+++ b/test/builtins/run_tests.sh
@@ -0,0 +1,92 @@
+
+#!/usr/bin/env bash
+set -e
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd $DIR
+SAILDIR="$DIR/../.."
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[0;33m'
+NC='\033[0m'
+
+rm -f $DIR/tests.xml
+
+pass=0
+fail=0
+XML=""
+
+function green {
+ (( pass += 1 ))
+ printf "$1: ${GREEN}$2${NC}\n"
+ XML+=" <testcase name=\"$1\"/>\n"
+}
+
+function yellow {
+ (( fail += 1 ))
+ printf "$1: ${YELLOW}$2${NC}\n"
+ XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
+}
+
+function red {
+ (( fail += 1 ))
+ printf "$1: ${RED}$2${NC}\n"
+ XML+=" <testcase name=\"$1\">\n <error message=\"$2\">$2</error>\n </testcase>\n"
+}
+
+function finish_suite {
+ printf "$1: Passed ${pass} out of $(( pass + fail ))\n\n"
+ XML=" <testsuite name=\"$1\" tests=\"$(( pass + fail ))\" failures=\"${fail}\" timestamp=\"$(date)\">\n$XML </testsuite>\n"
+ printf "$XML" >> $DIR/tests.xml
+ XML=""
+ pass=0
+ fail=0
+}
+
+printf "<testsuites>\n" >> $DIR/tests.xml
+
+shopt -s nullglob;
+for file in $DIR/*.sail;
+do
+ if $SAILDIR/sail -no_warn -c $file 1> ${file%.sail}.c 2> /dev/null;
+ then
+ green "compiling $(basename $file) (C)" "ok";
+ if gcc -I $SAILDIR/lib/ ${file%.sail}.c -lgmp;
+ then
+ green "compiling $(basename ${file%.sail}.c)" "ok";
+ if $DIR/a.out;
+ then
+ green "tested $(basename ${file%.sail}) (C)" "ok"
+ else
+ red "tested $(basename ${file%.sail}) (C)" "fail"
+ fi
+ else
+ red "compiling $file" "fail"
+ fi
+ else
+ red "compiling $file" "fail"
+ fi;
+
+ if $SAILDIR/sail -no_warn -o out -ocaml $file 1> /dev/null 2> /dev/null;
+ then
+ green "compiling $(basename $file) (OCaml)" "ok"
+ if $DIR/out;
+ then
+ green "tested $(basename ${file%.sail}) (OCaml)" "ok"
+ else
+ red "tested $(basename ${file%.sail}) (OCaml)" "fail"
+ fi
+ else
+ red "compiling $(basename $file) (OCaml)" "fail"
+ fi;
+
+ rm -rf $DIR/_sbuild/;
+ rm -f ${file%.sail}.c;
+ rm -f a.out;
+ rm -f out
+done
+
+finish_suite "builtin testing"
+
+printf "</testsuites>\n" >> $DIR/tests.xml
diff --git a/test/builtins/set_slice_bits.sail b/test/builtins/set_slice_bits.sail
new file mode 100644
index 00000000..67b11cdf
--- /dev/null
+++ b/test/builtins/set_slice_bits.sail
@@ -0,0 +1,683 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(set_slice_bits(2, 1, 2^0x0, 0, 1^0x0) == 2^0x0, "set_slice_bits(2, 1, 2^0x0, 0, 1^0x0) == 2^0x0");
+ assert(set_slice_bits(2, 1, 2^0x0, 1, 1^0x0) == 2^0x0, "set_slice_bits(2, 1, 2^0x0, 1, 1^0x0) == 2^0x0");
+ assert(set_slice_bits(25, 16, 25^0x0, 0, 16^0x9) == 25^0x9, "set_slice_bits(25, 16, 25^0x0, 0, 16^0x9) == 25^0x9");
+ assert(set_slice_bits(3, 1, 3^0x0, 0, 1^0x1) == 3^0x1, "set_slice_bits(3, 1, 3^0x0, 0, 1^0x1) == 3^0x1");
+ assert(set_slice_bits(3, 1, 3^0x0, 1, 1^0x0) == 3^0x0, "set_slice_bits(3, 1, 3^0x0, 1, 1^0x0) == 3^0x0");
+ assert(set_slice_bits(3, 1, 3^0x0, 1, 1^0x1) == 3^0x2, "set_slice_bits(3, 1, 3^0x0, 1, 1^0x1) == 3^0x2");
+ assert(set_slice_bits(3, 1, 3^0x0, 2, 1^0x0) == 3^0x0, "set_slice_bits(3, 1, 3^0x0, 2, 1^0x0) == 3^0x0");
+ assert(set_slice_bits(3, 1, 3^0x0, 2, 1^0x1) == 3^0x4, "set_slice_bits(3, 1, 3^0x0, 2, 1^0x1) == 3^0x4");
+ assert(set_slice_bits(3, 1, 3^0x2, 0, 1^0x1) == 3^0x3, "set_slice_bits(3, 1, 3^0x2, 0, 1^0x1) == 3^0x3");
+ assert(set_slice_bits(3, 1, 3^0x4, 1, 1^0x1) == 3^0x6, "set_slice_bits(3, 1, 3^0x4, 1, 1^0x1) == 3^0x6");
+ assert(set_slice_bits(3, 1, 3^0x6, 0, 1^0x1) == 3^0x7, "set_slice_bits(3, 1, 3^0x6, 0, 1^0x1) == 3^0x7");
+ assert(set_slice_bits(32, 1, 32^0x0, 0, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 0, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 1, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 1, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 1, 1^0x1) == 32^0x2, "set_slice_bits(32, 1, 32^0x0, 1, 1^0x1) == 32^0x2");
+ assert(set_slice_bits(32, 1, 32^0x0, 10, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 10, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 11, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 11, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 11, 1^0x1) == 32^0x800, "set_slice_bits(32, 1, 32^0x0, 11, 1^0x1) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x0, 12, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 12, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 12, 1^0x1) == 32^0x1000, "set_slice_bits(32, 1, 32^0x0, 12, 1^0x1) == 32^0x1000");
+ assert(set_slice_bits(32, 1, 32^0x0, 13, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 13, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 14, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 14, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 15, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 15, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 16, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 16, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 17, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 17, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 18, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 18, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 19, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 19, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 2, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 2, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 20, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 20, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 21, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 21, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 22, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 22, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 22, undefined) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 22, undefined) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 23, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 23, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 23, 1^0x1) == 32^0x800000, "set_slice_bits(32, 1, 32^0x0, 23, 1^0x1) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x0, 23, undefined) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 23, undefined) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 24, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 24, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 25, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 25, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 26, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 26, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 27, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 27, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 28, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 28, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 28, 1^0x1) == 32^0x10000000, "set_slice_bits(32, 1, 32^0x0, 28, 1^0x1) == 32^0x10000000");
+ assert(set_slice_bits(32, 1, 32^0x0, 29, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 29, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 29, 1^0x1) == 32^0x20000000, "set_slice_bits(32, 1, 32^0x0, 29, 1^0x1) == 32^0x20000000");
+ assert(set_slice_bits(32, 1, 32^0x0, 3, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 3, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 3, 1^0x1) == 32^0x8, "set_slice_bits(32, 1, 32^0x0, 3, 1^0x1) == 32^0x8");
+ assert(set_slice_bits(32, 1, 32^0x0, 30, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 30, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 31, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 31, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 31, 1^0x1) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x0, 31, 1^0x1) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x0, 4, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 4, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 4, 1^0x1) == 32^0x10, "set_slice_bits(32, 1, 32^0x0, 4, 1^0x1) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x0, 5, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 5, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 6, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 6, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 6, 1^0x1) == 32^0x40, "set_slice_bits(32, 1, 32^0x0, 6, 1^0x1) == 32^0x40");
+ assert(set_slice_bits(32, 1, 32^0x0, 7, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 7, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 8, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 8, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x0, 9, 1^0x0) == 32^0x0, "set_slice_bits(32, 1, 32^0x0, 9, 1^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 1, 32^0x1, 0, 1^0x1) == 32^0x1, "set_slice_bits(32, 1, 32^0x1, 0, 1^0x1) == 32^0x1");
+ assert(set_slice_bits(32, 1, 32^0x1, 1, 1^0x0) == 32^0x1, "set_slice_bits(32, 1, 32^0x1, 1, 1^0x0) == 32^0x1");
+ assert(set_slice_bits(32, 1, 32^0x10, 22, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 22, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 23, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 23, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 24, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 24, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 27, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 27, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 28, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 28, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 29, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 29, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 30, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 30, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 31, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 31, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 4, 1^0x1) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 4, 1^0x1) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 5, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 5, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 6, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 6, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 7, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 7, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 8, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 8, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x10, 9, 1^0x0) == 32^0x10, "set_slice_bits(32, 1, 32^0x10, 9, 1^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 1, 32^0x1000, 13, 1^0x0) == 32^0x1000, "set_slice_bits(32, 1, 32^0x1000, 13, 1^0x0) == 32^0x1000");
+ assert(set_slice_bits(32, 1, 32^0x1000, 14, 1^0x0) == 32^0x1000, "set_slice_bits(32, 1, 32^0x1000, 14, 1^0x0) == 32^0x1000");
+ assert(set_slice_bits(32, 1, 32^0x1000, 15, 1^0x1) == 32^0x9000, "set_slice_bits(32, 1, 32^0x1000, 15, 1^0x1) == 32^0x9000");
+ assert(set_slice_bits(32, 1, 32^0x10000000, 29, 1^0x0) == 32^0x10000000, "set_slice_bits(32, 1, 32^0x10000000, 29, 1^0x0) == 32^0x10000000");
+ assert(set_slice_bits(32, 1, 32^0x10000000, 30, 1^0x0) == 32^0x10000000, "set_slice_bits(32, 1, 32^0x10000000, 30, 1^0x0) == 32^0x10000000");
+ assert(set_slice_bits(32, 1, 32^0x10000000, 31, 1^0x1) == 32^0x90000000, "set_slice_bits(32, 1, 32^0x10000000, 31, 1^0x1) == 32^0x90000000");
+ assert(set_slice_bits(32, 1, 32^0x100800, 21, 1^0x0) == 32^0x100800, "set_slice_bits(32, 1, 32^0x100800, 21, 1^0x0) == 32^0x100800");
+ assert(set_slice_bits(32, 1, 32^0x100800, 22, 1^0x1) == 32^0x500800, "set_slice_bits(32, 1, 32^0x100800, 22, 1^0x1) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x100818, 21, 1^0x0) == 32^0x100818, "set_slice_bits(32, 1, 32^0x100818, 21, 1^0x0) == 32^0x100818");
+ assert(set_slice_bits(32, 1, 32^0x100818, 22, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x100818, 22, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x10500818, 28, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x10500818, 28, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x10830, 17, 1^0x0) == 32^0x10830, "set_slice_bits(32, 1, 32^0x10830, 17, 1^0x0) == 32^0x10830");
+ assert(set_slice_bits(32, 1, 32^0x10830, 18, 1^0x1) == 32^0x50830, "set_slice_bits(32, 1, 32^0x10830, 18, 1^0x1) == 32^0x50830");
+ assert(set_slice_bits(32, 1, 32^0x11169000, 12, 1^0x1) == 32^0x11169000, "set_slice_bits(32, 1, 32^0x11169000, 12, 1^0x1) == 32^0x11169000");
+ assert(set_slice_bits(32, 1, 32^0x11169000, 13, 1^0x0) == 32^0x11169000, "set_slice_bits(32, 1, 32^0x11169000, 13, 1^0x0) == 32^0x11169000");
+ assert(set_slice_bits(32, 1, 32^0x11169000, 14, 1^0x0) == 32^0x11169000, "set_slice_bits(32, 1, 32^0x11169000, 14, 1^0x0) == 32^0x11169000");
+ assert(set_slice_bits(32, 1, 32^0x11169000, 15, 1^0x1) == 32^0x11169000, "set_slice_bits(32, 1, 32^0x11169000, 15, 1^0x1) == 32^0x11169000");
+ assert(set_slice_bits(32, 1, 32^0x18, 11, 1^0x1) == 32^0x818, "set_slice_bits(32, 1, 32^0x18, 11, 1^0x1) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x18, 5, 1^0x0) == 32^0x18, "set_slice_bits(32, 1, 32^0x18, 5, 1^0x0) == 32^0x18");
+ assert(set_slice_bits(32, 1, 32^0x18, 6, 1^0x0) == 32^0x18, "set_slice_bits(32, 1, 32^0x18, 6, 1^0x0) == 32^0x18");
+ assert(set_slice_bits(32, 1, 32^0x18, 7, 1^0x0) == 32^0x18, "set_slice_bits(32, 1, 32^0x18, 7, 1^0x0) == 32^0x18");
+ assert(set_slice_bits(32, 1, 32^0x18, 8, 1^0x0) == 32^0x18, "set_slice_bits(32, 1, 32^0x18, 8, 1^0x0) == 32^0x18");
+ assert(set_slice_bits(32, 1, 32^0x1c0, 9, 1^0x1) == 32^0x3c0, "set_slice_bits(32, 1, 32^0x1c0, 9, 1^0x1) == 32^0x3c0");
+ assert(set_slice_bits(32, 1, 32^0x2, 0, 1^0x0) == 32^0x2, "set_slice_bits(32, 1, 32^0x2, 0, 1^0x0) == 32^0x2");
+ assert(set_slice_bits(32, 1, 32^0x2, 1, 1^0x1) == 32^0x2, "set_slice_bits(32, 1, 32^0x2, 1, 1^0x1) == 32^0x2");
+ assert(set_slice_bits(32, 1, 32^0x2, 2, 1^0x0) == 32^0x2, "set_slice_bits(32, 1, 32^0x2, 2, 1^0x0) == 32^0x2");
+ assert(set_slice_bits(32, 1, 32^0x2, 3, 1^0x1) == 32^0xa, "set_slice_bits(32, 1, 32^0x2, 3, 1^0x1) == 32^0xa");
+ assert(set_slice_bits(32, 1, 32^0x20000000, 30, 1^0x0) == 32^0x20000000, "set_slice_bits(32, 1, 32^0x20000000, 30, 1^0x0) == 32^0x20000000");
+ assert(set_slice_bits(32, 1, 32^0x20000000, 30, 1^0x1) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x20000000, 30, 1^0x1) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x20000000, 31, 1^0x0) == 32^0x20000000, "set_slice_bits(32, 1, 32^0x20000000, 31, 1^0x0) == 32^0x20000000");
+ assert(set_slice_bits(32, 1, 32^0x20000000, 31, 1^0x1) == 32^0xa0000000, "set_slice_bits(32, 1, 32^0x20000000, 31, 1^0x1) == 32^0xa0000000");
+ assert(set_slice_bits(32, 1, 32^0x30, 11, 1^0x1) == 32^0x830, "set_slice_bits(32, 1, 32^0x30, 11, 1^0x1) == 32^0x830");
+ assert(set_slice_bits(32, 1, 32^0x30, 14, 1^0x0) == 32^0x30, "set_slice_bits(32, 1, 32^0x30, 14, 1^0x0) == 32^0x30");
+ assert(set_slice_bits(32, 1, 32^0x30, 16, 1^0x0) == 32^0x30, "set_slice_bits(32, 1, 32^0x30, 16, 1^0x0) == 32^0x30");
+ assert(set_slice_bits(32, 1, 32^0x30, 17, 1^0x0) == 32^0x30, "set_slice_bits(32, 1, 32^0x30, 17, 1^0x0) == 32^0x30");
+ assert(set_slice_bits(32, 1, 32^0x30, 6, 1^0x0) == 32^0x30, "set_slice_bits(32, 1, 32^0x30, 6, 1^0x0) == 32^0x30");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 0, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 0, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 1, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 1, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 11, 1^0x1) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 11, 1^0x1) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 12, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 12, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 13, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 13, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 16, 1^0x1) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 16, 1^0x1) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 17, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 17, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 18, 1^0x1) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 18, 1^0x1) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 19, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 19, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 2, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 2, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 20, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 20, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 21, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 21, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 24, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 24, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 25, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 25, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 26, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 26, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 27, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 27, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 3, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 3, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 30, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 30, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x30c50830, 31, 1^0x0) == 32^0x30c50830, "set_slice_bits(32, 1, 32^0x30c50830, 31, 1^0x0) == 32^0x30c50830");
+ assert(set_slice_bits(32, 1, 32^0x33ff, 10, 1^0x0) == 32^0x33ff, "set_slice_bits(32, 1, 32^0x33ff, 10, 1^0x0) == 32^0x33ff");
+ assert(set_slice_bits(32, 1, 32^0x33ff, 11, 1^0x0) == 32^0x33ff, "set_slice_bits(32, 1, 32^0x33ff, 11, 1^0x0) == 32^0x33ff");
+ assert(set_slice_bits(32, 1, 32^0x33ff, 15, 1^0x0) == 32^0x33ff, "set_slice_bits(32, 1, 32^0x33ff, 15, 1^0x0) == 32^0x33ff");
+ assert(set_slice_bits(32, 1, 32^0x33ff, 28, 1^0x0) == 32^0x33ff, "set_slice_bits(32, 1, 32^0x33ff, 28, 1^0x0) == 32^0x33ff");
+ assert(set_slice_bits(32, 1, 32^0x33ff, 31, 1^0x0) == 32^0x33ff, "set_slice_bits(32, 1, 32^0x33ff, 31, 1^0x0) == 32^0x33ff");
+ assert(set_slice_bits(32, 1, 32^0x4, 4, 1^0x0) == 32^0x4, "set_slice_bits(32, 1, 32^0x4, 4, 1^0x0) == 32^0x4");
+ assert(set_slice_bits(32, 1, 32^0x40, 7, 1^0x1) == 32^0xc0, "set_slice_bits(32, 1, 32^0x40, 7, 1^0x1) == 32^0xc0");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 0, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 0, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 1, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 1, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 2, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 2, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 26, 1^0x1) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 26, 1^0x1) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 27, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 27, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 28, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 28, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 29, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 29, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 3, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 3, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 30, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 30, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 31, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 31, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 4, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 4, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x4000700, 7, 1^0x0) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x4000700, 7, 1^0x0) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x400818, 20, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x400818, 20, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x400818, 23, 1^0x1) == 32^0xc00818, "set_slice_bits(32, 1, 32^0x400818, 23, 1^0x1) == 32^0xc00818");
+ assert(set_slice_bits(32, 1, 32^0x444c004, 31, 1^0x1) == 32^0x8444c004, "set_slice_bits(32, 1, 32^0x444c004, 31, 1^0x1) == 32^0x8444c004");
+ assert(set_slice_bits(32, 1, 32^0x500800, 0, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 0, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 1, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 1, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 10, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 10, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 11, 1^0x1) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 11, 1^0x1) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 12, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 12, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 13, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 13, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 14, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 14, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 15, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 15, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 16, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 16, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 17, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 17, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 18, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 18, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 19, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 19, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 2, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 2, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 20, 1^0x1) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 20, 1^0x1) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 21, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 21, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 22, 1^0x1) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 22, 1^0x1) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 23, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 23, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 24, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 24, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 25, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 25, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 26, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 26, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 27, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 27, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 28, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 28, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 29, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 29, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 3, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 3, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 30, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 30, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 31, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 31, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 4, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 4, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 5, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 5, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 6, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 6, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 7, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 7, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 8, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 8, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500800, 9, 1^0x0) == 32^0x500800, "set_slice_bits(32, 1, 32^0x500800, 9, 1^0x0) == 32^0x500800");
+ assert(set_slice_bits(32, 1, 32^0x500818, 0, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 0, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 1, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 1, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 11, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 11, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 12, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 12, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 13, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 13, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 14, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 14, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 15, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 15, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 16, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 16, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 17, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 17, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 18, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 18, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 19, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 19, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 2, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 2, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 20, 1^0x0) == 32^0x400818, "set_slice_bits(32, 1, 32^0x500818, 20, 1^0x0) == 32^0x400818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 21, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 21, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 22, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 22, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 23, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 23, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 24, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 24, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 25, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 25, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 26, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 26, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 28, 1^0x1) == 32^0x10500818, "set_slice_bits(32, 1, 32^0x500818, 28, 1^0x1) == 32^0x10500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 29, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 29, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 3, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 3, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 30, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 30, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 31, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 31, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 4, 1^0x1) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 4, 1^0x1) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 5, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 5, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 6, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 6, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 7, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 7, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x500818, 8, 1^0x0) == 32^0x500818, "set_slice_bits(32, 1, 32^0x500818, 8, 1^0x0) == 32^0x500818");
+ assert(set_slice_bits(32, 1, 32^0x50830, 19, 1^0x0) == 32^0x50830, "set_slice_bits(32, 1, 32^0x50830, 19, 1^0x0) == 32^0x50830");
+ assert(set_slice_bits(32, 1, 32^0x50830, 20, 1^0x0) == 32^0x50830, "set_slice_bits(32, 1, 32^0x50830, 20, 1^0x0) == 32^0x50830");
+ assert(set_slice_bits(32, 1, 32^0x50830, 21, 1^0x0) == 32^0x50830, "set_slice_bits(32, 1, 32^0x50830, 21, 1^0x0) == 32^0x50830");
+ assert(set_slice_bits(32, 1, 32^0x60000000, 20, 1^0x0) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x60000000, 20, 1^0x0) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x60000000, 21, 1^0x0) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x60000000, 21, 1^0x0) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x60000000, 22, 1^0x0) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x60000000, 22, 1^0x0) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x60000000, 23, 1^0x0) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x60000000, 23, 1^0x0) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x60000000, 31, 1^0x0) == 32^0x60000000, "set_slice_bits(32, 1, 32^0x60000000, 31, 1^0x0) == 32^0x60000000");
+ assert(set_slice_bits(32, 1, 32^0x600003c0, 0, 1^0x0) == 32^0x600003c0, "set_slice_bits(32, 1, 32^0x600003c0, 0, 1^0x0) == 32^0x600003c0");
+ assert(set_slice_bits(32, 1, 32^0x600003c0, 4, 1^0x0) == 32^0x600003c0, "set_slice_bits(32, 1, 32^0x600003c0, 4, 1^0x0) == 32^0x600003c0");
+ assert(set_slice_bits(32, 1, 32^0x700, 26, 1^0x1) == 32^0x4000700, "set_slice_bits(32, 1, 32^0x700, 26, 1^0x1) == 32^0x4000700");
+ assert(set_slice_bits(32, 1, 32^0x8, 2, 1^0x1) == 32^0xc, "set_slice_bits(32, 1, 32^0x8, 2, 1^0x1) == 32^0xc");
+ assert(set_slice_bits(32, 1, 32^0x8, 4, 1^0x1) == 32^0x18, "set_slice_bits(32, 1, 32^0x8, 4, 1^0x1) == 32^0x18");
+ assert(set_slice_bits(32, 1, 32^0x800, 12, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 12, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 13, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 13, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 14, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 14, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 15, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 15, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 16, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 16, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 17, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 17, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 18, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 18, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 19, 1^0x0) == 32^0x800, "set_slice_bits(32, 1, 32^0x800, 19, 1^0x0) == 32^0x800");
+ assert(set_slice_bits(32, 1, 32^0x800, 20, 1^0x1) == 32^0x100800, "set_slice_bits(32, 1, 32^0x800, 20, 1^0x1) == 32^0x100800");
+ assert(set_slice_bits(32, 1, 32^0x800000, 24, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 24, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 25, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 25, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 26, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 26, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 27, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 27, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 28, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 28, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 29, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 29, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 30, 1^0x0) == 32^0x800000, "set_slice_bits(32, 1, 32^0x800000, 30, 1^0x0) == 32^0x800000");
+ assert(set_slice_bits(32, 1, 32^0x800000, 31, 1^0x1) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x800000, 31, 1^0x1) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 0, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 0, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 1, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 1, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 25, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 25, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 26, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 26, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 27, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 27, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 28, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 28, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 31, 1^0x1) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 31, 1^0x1) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80000000, 5, 1^0x0) == 32^0x80000000, "set_slice_bits(32, 1, 32^0x80000000, 5, 1^0x0) == 32^0x80000000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 19, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 19, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 21, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 21, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 22, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 22, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 23, 1^0x1) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 23, 1^0x1) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 24, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 24, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 25, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 25, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 26, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 26, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 27, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 27, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 28, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 28, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 29, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 29, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 30, 1^0x0) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 30, 1^0x0) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x80800000, 31, 1^0x1) == 32^0x80800000, "set_slice_bits(32, 1, 32^0x80800000, 31, 1^0x1) == 32^0x80800000");
+ assert(set_slice_bits(32, 1, 32^0x818, 12, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 12, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 13, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 13, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 14, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 14, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 15, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 15, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 16, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 16, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 17, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 17, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 18, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 18, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 19, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 19, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 20, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 20, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 20, 1^0x1) == 32^0x100818, "set_slice_bits(32, 1, 32^0x818, 20, 1^0x1) == 32^0x100818");
+ assert(set_slice_bits(32, 1, 32^0x818, 21, 1^0x0) == 32^0x818, "set_slice_bits(32, 1, 32^0x818, 21, 1^0x0) == 32^0x818");
+ assert(set_slice_bits(32, 1, 32^0x818, 22, 1^0x1) == 32^0x400818, "set_slice_bits(32, 1, 32^0x818, 22, 1^0x1) == 32^0x400818");
+ assert(set_slice_bits(32, 1, 32^0x830, 12, 1^0x0) == 32^0x830, "set_slice_bits(32, 1, 32^0x830, 12, 1^0x0) == 32^0x830");
+ assert(set_slice_bits(32, 1, 32^0x830, 13, 1^0x0) == 32^0x830, "set_slice_bits(32, 1, 32^0x830, 13, 1^0x0) == 32^0x830");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x118) == 32^0x118, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x118) == 32^0x118");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x18) == 32^0x18, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x18) == 32^0x18");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x1c) == 32^0x1c, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x1c) == 32^0x1c");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x2) == 32^0x2, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x2) == 32^0x2");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x230) == 32^0x230, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x230) == 32^0x230");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x280) == 32^0x280, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x280) == 32^0x280");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x298) == 32^0x298, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x298) == 32^0x298");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x2a0) == 32^0x2a0, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x2a0) == 32^0x2a0");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x2f) == 32^0x2f, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x2f) == 32^0x2f");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x3) == 32^0x3, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x3) == 32^0x3");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x30) == 32^0x30, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x30) == 32^0x30");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x38) == 32^0x38, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x38) == 32^0x38");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x4) == 32^0x4, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x4) == 32^0x4");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x400) == 32^0x400, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x400) == 32^0x400");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x401) == 32^0x401, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x401) == 32^0x401");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x460) == 32^0x460, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x460) == 32^0x460");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x5) == 32^0x5, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x5) == 32^0x5");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x6000) == 32^0x6000, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x6000) == 32^0x6000");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x61) == 32^0x61, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x61) == 32^0x61");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x70) == 32^0x70, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x70) == 32^0x70");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x7f) == 32^0x7f, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x7f) == 32^0x7f");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x80) == 32^0x80, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x80) == 32^0x80");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x9) == 32^0x9, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x9) == 32^0x9");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0x950) == 32^0x950, "set_slice_bits(32, 16, 32^0x0, 0, 16^0x950) == 32^0x950");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xa) == 32^0xa, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xa) == 32^0xa");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xc) == 32^0xc, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xc) == 32^0xc");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xc000) == 32^0xc000, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xc000) == 32^0xc000");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xe) == 32^0xe, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xe) == 32^0xe");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xe0) == 32^0xe0, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xe0) == 32^0xe0");
+ assert(set_slice_bits(32, 16, 32^0x0, 0, 16^0xff) == 32^0xff, "set_slice_bits(32, 16, 32^0x0, 0, 16^0xff) == 32^0xff");
+ assert(set_slice_bits(32, 16, 32^0x0, 16, 16^0x0) == 32^0x0, "set_slice_bits(32, 16, 32^0x0, 16, 16^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 16, 32^0x0, 16, 16^0x8000) == 32^0x80000000, "set_slice_bits(32, 16, 32^0x0, 16, 16^0x8000) == 32^0x80000000");
+ assert(set_slice_bits(32, 16, 32^0x0, 16, 16^0xe000) == 32^0xe0000000, "set_slice_bits(32, 16, 32^0x0, 16, 16^0xe000) == 32^0xe0000000");
+ assert(set_slice_bits(32, 16, 32^0x0, 16, 16^0xff00) == 32^0xff000000, "set_slice_bits(32, 16, 32^0x0, 16, 16^0xff00) == 32^0xff000000");
+ assert(set_slice_bits(32, 16, 32^0x18, 16, 16^0x5) == 32^0x50018, "set_slice_bits(32, 16, 32^0x18, 16, 16^0x5) == 32^0x50018");
+ assert(set_slice_bits(32, 16, undefined, 0, 16^0x0) == 32^0x0, "set_slice_bits(32, 16, undefined, 0, 16^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 17, 32^0x0, 8, 17^0x0) == 32^0x0, "set_slice_bits(32, 17, 32^0x0, 8, 17^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 2, 32^0x0, 0, 2^0x0) == 32^0x0, "set_slice_bits(32, 2, 32^0x0, 0, 2^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 2, 32^0x0, 10, 2^0x0) == 32^0x0, "set_slice_bits(32, 2, 32^0x0, 10, 2^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 2, 32^0x0, 12, 2^0x0) == 32^0x0, "set_slice_bits(32, 2, 32^0x0, 12, 2^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 28, 32^0x0, 4, 28^0x0) == 32^0x0, "set_slice_bits(32, 28, 32^0x0, 4, 28^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 28, 32^0x2, 4, 28^0x0) == 32^0x2, "set_slice_bits(32, 28, 32^0x2, 4, 28^0x0) == 32^0x2");
+ assert(set_slice_bits(32, 28, undefined, 4, 28^0x0) == 32^0x0, "set_slice_bits(32, 28, undefined, 4, 28^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 29, 32^0x0, 0, 29^0x0) == 32^0x0, "set_slice_bits(32, 29, 32^0x0, 0, 29^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 29, 32^0x0, 3, 29^0x0) == 32^0x0, "set_slice_bits(32, 29, 32^0x0, 3, 29^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 29, 32^0x2, 3, 29^0x0) == 32^0x2, "set_slice_bits(32, 29, 32^0x2, 3, 29^0x0) == 32^0x2");
+ assert(set_slice_bits(32, 29, undefined, 0, 29^0x0) == 32^0x0, "set_slice_bits(32, 29, undefined, 0, 29^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 29, undefined, 3, 29^0x0) == 32^0x0, "set_slice_bits(32, 29, undefined, 3, 29^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 0, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 0, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 12, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 12, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 13, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 13, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 16, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 16, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 3, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 3, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 6, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, 32^0x0, 6, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, 32^0x0, 8, 3^0x7) == 32^0x700, "set_slice_bits(32, 3, 32^0x0, 8, 3^0x7) == 32^0x700");
+ assert(set_slice_bits(32, 3, 32^0x4000700, 8, 3^0x7) == 32^0x4000700, "set_slice_bits(32, 3, 32^0x4000700, 8, 3^0x7) == 32^0x4000700");
+ assert(set_slice_bits(32, 3, 32^0x444c004, 28, 3^0x0) == 32^0x444c004, "set_slice_bits(32, 3, 32^0x444c004, 28, 3^0x0) == 32^0x444c004");
+ assert(set_slice_bits(32, 3, 32^0x8444c004, 28, 3^0x0) == 32^0x8444c004, "set_slice_bits(32, 3, 32^0x8444c004, 28, 3^0x0) == 32^0x8444c004");
+ assert(set_slice_bits(32, 3, undefined, 0, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, undefined, 0, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, undefined, 3, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, undefined, 3, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 3, undefined, 6, 3^0x0) == 32^0x0, "set_slice_bits(32, 3, undefined, 6, 3^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 30, 32^0x0, 2, 30^0x0) == 32^0x0, "set_slice_bits(32, 30, 32^0x0, 2, 30^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 30, 32^0x1, 2, 30^0x0) == 32^0x1, "set_slice_bits(32, 30, 32^0x1, 2, 30^0x0) == 32^0x1");
+ assert(set_slice_bits(32, 31, 32^0x0, 0, 31^0x0) == 32^0x0, "set_slice_bits(32, 31, 32^0x0, 0, 31^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 31, 32^0x0, 1, 31^0x0) == 32^0x0, "set_slice_bits(32, 31, 32^0x0, 1, 31^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 31, undefined, 0, 31^0x0) == 32^0x0, "set_slice_bits(32, 31, undefined, 0, 31^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 31, undefined, 1, 31^0x0) == 32^0x0, "set_slice_bits(32, 31, undefined, 1, 31^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x0) == 32^0x0, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x1) == 32^0x1, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x1) == 32^0x1");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x3f000000) == 32^0x3f000000, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x3f000000) == 32^0x3f000000");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x3f070000) == 32^0x3f070000, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x3f070000) == 32^0x3f070000");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x40000000) == 32^0x40000000, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x40000000) == 32^0x40000000");
+ assert(set_slice_bits(32, 32, 32^0x0, 0, 32^0x50000000) == 32^0x50000000, "set_slice_bits(32, 32, 32^0x0, 0, 32^0x50000000) == 32^0x50000000");
+ assert(set_slice_bits(32, 32, 32^0x1, 0, 32^0x1) == 32^0x1, "set_slice_bits(32, 32, 32^0x1, 0, 32^0x1) == 32^0x1");
+ assert(set_slice_bits(32, 32, 32^0x1121110, 0, 32^0x1121110) == 32^0x1121110, "set_slice_bits(32, 32, 32^0x1121110, 0, 32^0x1121110) == 32^0x1121110");
+ assert(set_slice_bits(32, 32, 32^0x121110, 0, 32^0x1121110) == 32^0x1121110, "set_slice_bits(32, 32, 32^0x121110, 0, 32^0x1121110) == 32^0x1121110");
+ assert(set_slice_bits(32, 32, 32^0x12111111, 0, 32^0x13111111) == 32^0x13111111, "set_slice_bits(32, 32, 32^0x12111111, 0, 32^0x13111111) == 32^0x13111111");
+ assert(set_slice_bits(32, 32, 32^0x13111111, 0, 32^0x13211111) == 32^0x13211111, "set_slice_bits(32, 32, 32^0x13111111, 0, 32^0x13211111) == 32^0x13211111");
+ assert(set_slice_bits(32, 32, 32^0x13211111, 0, 32^0x13211111) == 32^0x13211111, "set_slice_bits(32, 32, 32^0x13211111, 0, 32^0x13211111) == 32^0x13211111");
+ assert(set_slice_bits(32, 32, undefined, 0, 32^0x0) == 32^0x0, "set_slice_bits(32, 32, undefined, 0, 32^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 0, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 0, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 0, 4^0x1) == 32^0x1, "set_slice_bits(32, 4, 32^0x0, 0, 4^0x1) == 32^0x1");
+ assert(set_slice_bits(32, 4, 32^0x0, 12, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 12, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 12, 4^0x1) == 32^0x1000, "set_slice_bits(32, 4, 32^0x0, 12, 4^0x1) == 32^0x1000");
+ assert(set_slice_bits(32, 4, 32^0x0, 15, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 15, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 16, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 16, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 16, 4^0x6) == 32^0x60000, "set_slice_bits(32, 4, 32^0x0, 16, 4^0x6) == 32^0x60000");
+ assert(set_slice_bits(32, 4, 32^0x0, 2, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 2, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 20, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 20, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 24, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 24, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 28, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 28, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 28, 4^0x4) == 32^0x40000000, "set_slice_bits(32, 4, 32^0x0, 28, 4^0x4) == 32^0x40000000");
+ assert(set_slice_bits(32, 4, 32^0x0, 28, 4^0x6) == 32^0x60000000, "set_slice_bits(32, 4, 32^0x0, 28, 4^0x6) == 32^0x60000000");
+ assert(set_slice_bits(32, 4, 32^0x0, 4, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 4, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 4, 4^0x1) == 32^0x10, "set_slice_bits(32, 4, 32^0x0, 4, 4^0x1) == 32^0x10");
+ assert(set_slice_bits(32, 4, 32^0x0, 7, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 7, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x0, 8, 4^0x0) == 32^0x0, "set_slice_bits(32, 4, 32^0x0, 8, 4^0x0) == 32^0x0");
+ assert(set_slice_bits(32, 4, 32^0x1, 0, 4^0x1) == 32^0x1, "set_slice_bits(32, 4, 32^0x1, 0, 4^0x1) == 32^0x1");
+ assert(set_slice_bits(32, 4, 32^0x1, 4, 4^0x1) == 32^0x11, "set_slice_bits(32, 4, 32^0x1, 4, 4^0x1) == 32^0x11");
+ assert(set_slice_bits(32, 4, 32^0x1, 4, 4^0x2) == 32^0x21, "set_slice_bits(32, 4, 32^0x1, 4, 4^0x2) == 32^0x21");
+ assert(set_slice_bits(32, 4, 32^0x1, 4, 4^0x3) == 32^0x31, "set_slice_bits(32, 4, 32^0x1, 4, 4^0x3) == 32^0x31");
+ assert(set_slice_bits(32, 4, 32^0x10, 0, 4^0x0) == 32^0x10, "set_slice_bits(32, 4, 32^0x10, 0, 4^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 4, 32^0x10, 16, 4^0x0) == 32^0x10, "set_slice_bits(32, 4, 32^0x10, 16, 4^0x0) == 32^0x10");
+ assert(set_slice_bits(32, 4, 32^0x10, 8, 4^0x1) == 32^0x110, "set_slice_bits(32, 4, 32^0x10, 8, 4^0x1) == 32^0x110");
+ assert(set_slice_bits(32, 4, 32^0x1000, 8, 4^0x1) == 32^0x1100, "set_slice_bits(32, 4, 32^0x1000, 8, 4^0x1) == 32^0x1100");
+ assert(set_slice_bits(32, 4, 32^0x10066, 20, 4^0x0) == 32^0x10066, "set_slice_bits(32, 4, 32^0x10066, 20, 4^0x0) == 32^0x10066");
+ assert(set_slice_bits(32, 4, 32^0x10066, 24, 4^0x3) == 32^0x3010066, "set_slice_bits(32, 4, 32^0x10066, 24, 4^0x3) == 32^0x3010066");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 0, 4^0x5) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 0, 4^0x5) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 12, 4^0x1) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 12, 4^0x1) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 16, 4^0x0) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 16, 4^0x0) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 20, 4^0x1) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 20, 4^0x1) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 24, 4^0x0) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 24, 4^0x0) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 28, 4^0x1) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 28, 4^0x1) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 4, 4^0x0) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 4, 4^0x0) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x10101105, 8, 4^0x1) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x10101105, 8, 4^0x1) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x1011, 16, 4^0x1) == 32^0x11011, "set_slice_bits(32, 4, 32^0x1011, 16, 4^0x1) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x101105, 24, 4^0x0) == 32^0x101105, "set_slice_bits(32, 4, 32^0x101105, 24, 4^0x0) == 32^0x101105");
+ assert(set_slice_bits(32, 4, 32^0x101105, 28, 4^0x1) == 32^0x10101105, "set_slice_bits(32, 4, 32^0x101105, 28, 4^0x1) == 32^0x10101105");
+ assert(set_slice_bits(32, 4, 32^0x101110, 24, 4^0x2) == 32^0x2101110, "set_slice_bits(32, 4, 32^0x101110, 24, 4^0x2) == 32^0x2101110");
+ assert(set_slice_bits(32, 4, 32^0x1011121, 16, 4^0x1) == 32^0x1011121, "set_slice_bits(32, 4, 32^0x1011121, 16, 4^0x1) == 32^0x1011121");
+ assert(set_slice_bits(32, 4, 32^0x1011121, 24, 4^0x1) == 32^0x1011121, "set_slice_bits(32, 4, 32^0x1011121, 24, 4^0x1) == 32^0x1011121");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 0, 4^0x2) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 0, 4^0x2) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 12, 4^0x1) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 12, 4^0x1) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 16, 4^0x1) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 16, 4^0x1) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 20, 4^0x1) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 20, 4^0x1) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 24, 4^0x0) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 24, 4^0x0) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 28, 4^0x1) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 28, 4^0x1) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 4, 4^0x2) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 4, 4^0x2) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x10111222, 8, 4^0x2) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x10111222, 8, 4^0x2) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x102211, 24, 4^0x2) == 32^0x2102211, "set_slice_bits(32, 4, 32^0x102211, 24, 4^0x2) == 32^0x2102211");
+ assert(set_slice_bits(32, 4, 32^0x105, 12, 4^0x1) == 32^0x1105, "set_slice_bits(32, 4, 32^0x105, 12, 4^0x1) == 32^0x1105");
+ assert(set_slice_bits(32, 4, 32^0x11, 12, 4^0x1) == 32^0x1011, "set_slice_bits(32, 4, 32^0x11, 12, 4^0x1) == 32^0x1011");
+ assert(set_slice_bits(32, 4, 32^0x11, 8, 4^0x0) == 32^0x11, "set_slice_bits(32, 4, 32^0x11, 8, 4^0x0) == 32^0x11");
+ assert(set_slice_bits(32, 4, 32^0x11, 8, 4^0x1) == 32^0x111, "set_slice_bits(32, 4, 32^0x11, 8, 4^0x1) == 32^0x111");
+ assert(set_slice_bits(32, 4, 32^0x11, 8, 4^0x2) == 32^0x211, "set_slice_bits(32, 4, 32^0x11, 8, 4^0x2) == 32^0x211");
+ assert(set_slice_bits(32, 4, 32^0x110, 12, 4^0x1) == 32^0x1110, "set_slice_bits(32, 4, 32^0x110, 12, 4^0x1) == 32^0x1110");
+ assert(set_slice_bits(32, 4, 32^0x1100, 16, 4^0x2) == 32^0x21100, "set_slice_bits(32, 4, 32^0x1100, 16, 4^0x2) == 32^0x21100");
+ assert(set_slice_bits(32, 4, 32^0x11011, 0, 4^0x1) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 0, 4^0x1) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 12, 4^0x1) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 12, 4^0x1) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 16, 4^0x1) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 16, 4^0x1) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 20, 4^0x0) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 20, 4^0x0) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 24, 4^0x0) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 24, 4^0x0) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 28, 4^0x0) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 28, 4^0x0) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 4, 4^0x1) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 4, 4^0x1) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x11011, 8, 4^0x0) == 32^0x11011, "set_slice_bits(32, 4, 32^0x11011, 8, 4^0x0) == 32^0x11011");
+ assert(set_slice_bits(32, 4, 32^0x1105, 16, 4^0x0) == 32^0x1105, "set_slice_bits(32, 4, 32^0x1105, 16, 4^0x0) == 32^0x1105");
+ assert(set_slice_bits(32, 4, 32^0x1105, 20, 4^0x1) == 32^0x101105, "set_slice_bits(32, 4, 32^0x1105, 20, 4^0x1) == 32^0x101105");
+ assert(set_slice_bits(32, 4, 32^0x111, 12, 4^0x1) == 32^0x1111, "set_slice_bits(32, 4, 32^0x111, 12, 4^0x1) == 32^0x1111");
+ assert(set_slice_bits(32, 4, 32^0x111, 12, 4^0x2) == 32^0x2111, "set_slice_bits(32, 4, 32^0x111, 12, 4^0x2) == 32^0x2111");
+ assert(set_slice_bits(32, 4, 32^0x1110, 16, 4^0x0) == 32^0x1110, "set_slice_bits(32, 4, 32^0x1110, 16, 4^0x0) == 32^0x1110");
+ assert(set_slice_bits(32, 4, 32^0x1110, 20, 4^0x1) == 32^0x101110, "set_slice_bits(32, 4, 32^0x1110, 20, 4^0x1) == 32^0x101110");
+ assert(set_slice_bits(32, 4, 32^0x1111, 16, 4^0x1) == 32^0x11111, "set_slice_bits(32, 4, 32^0x1111, 16, 4^0x1) == 32^0x11111");
+ assert(set_slice_bits(32, 4, 32^0x11111, 20, 4^0x1) == 32^0x111111, "set_slice_bits(32, 4, 32^0x11111, 20, 4^0x1) == 32^0x111111");
+ assert(set_slice_bits(32, 4, 32^0x111111, 24, 4^0x2) == 32^0x2111111, "set_slice_bits(32, 4, 32^0x111111, 24, 4^0x2) == 32^0x2111111");
+ assert(set_slice_bits(32, 4, 32^0x11121, 24, 4^0x1) == 32^0x1011121, "set_slice_bits(32, 4, 32^0x11121, 24, 4^0x1) == 32^0x1011121");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 0, 4^0x1) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 0, 4^0x1) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 12, 4^0x2) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 12, 4^0x2) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 16, 4^0x1) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 16, 4^0x1) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 20, 4^0x1) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 20, 4^0x1) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 24, 4^0x1) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 24, 4^0x1) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 28, 4^0x0) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 28, 4^0x0) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 4, 4^0x3) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 4, 4^0x3) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x1112131, 8, 4^0x1) == 32^0x1112131, "set_slice_bits(32, 4, 32^0x1112131, 8, 4^0x1) == 32^0x1112131");
+ assert(set_slice_bits(32, 4, 32^0x111222, 24, 4^0x0) == 32^0x111222, "set_slice_bits(32, 4, 32^0x111222, 24, 4^0x0) == 32^0x111222");
+ assert(set_slice_bits(32, 4, 32^0x111222, 28, 4^0x1) == 32^0x10111222, "set_slice_bits(32, 4, 32^0x111222, 28, 4^0x1) == 32^0x10111222");
+ assert(set_slice_bits(32, 4, 32^0x11142, 0, 4^0x2) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 0, 4^0x2) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 12, 4^0x1) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 12, 4^0x1) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 16, 4^0x1) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 16, 4^0x1) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 20, 4^0x0) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 20, 4^0x0) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 24, 4^0x0) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 24, 4^0x0) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 28, 4^0x0) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 28, 4^0x0) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 4, 4^0x4) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 4, 4^0x4) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11142, 8, 4^0x1) == 32^0x11142, "set_slice_bits(32, 4, 32^0x11142, 8, 4^0x1) == 32^0x11142");
+ assert(set_slice_bits(32, 4, 32^0x11169000, 16, 4^0x6) == 32^0x11169000, "set_slice_bits(32, 4, 32^0x11169000, 16, 4^0x6) == 32^0x11169000");
+ assert(set_slice_bits(32, 4, 32^0x11169000, 20, 4^0x1) == 32^0x11169000, "set_slice_bits(32, 4, 32^0x11169000, 20, 4^0x1) == 32^0x11169000");
+ assert(set_slice_bits(32, 4, 32^0x11169000, 24, 4^0x1) == 32^0x11169000, "set_slice_bits(32, 4, 32^0x11169000, 24, 4^0x1) == 32^0x11169000");
+ assert(set_slice_bits(32, 4, 32^0x11169000, 28, 4^0x1) == 32^0x11169000, "set_slice_bits(32, 4, 32^0x11169000, 28, 4^0x1) == 32^0x11169000");
+ assert(set_slice_bits(32, 4, 32^0x1121, 0, 4^0x1) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 0, 4^0x1) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 12, 4^0x1) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 12, 4^0x1) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 16, 4^0x0) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 16, 4^0x0) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 16, 4^0x1) == 32^0x11121, "set_slice_bits(32, 4, 32^0x1121, 16, 4^0x1) == 32^0x11121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 20, 4^0x0) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 20, 4^0x0) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 24, 4^0x0) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 24, 4^0x0) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 28, 4^0x0) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 28, 4^0x0) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 4, 4^0x2) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 4, 4^0x2) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x1121, 8, 4^0x1) == 32^0x1121, "set_slice_bits(32, 4, 32^0x1121, 8, 4^0x1) == 32^0x1121");
+ assert(set_slice_bits(32, 4, 32^0x112111, 24, 4^0x3) == 32^0x3112111, "set_slice_bits(32, 4, 32^0x112111, 24, 4^0x3) == 32^0x3112111");
+ assert(set_slice_bits(32, 9, undefined, 0, 9^0x0) == 32^0x0, "set_slice_bits(32, 9, undefined, 0, 9^0x0) == 32^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 0, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 0, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 1, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 1, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 11, 1^0x1) == 64^0x800, "set_slice_bits(64, 1, 64^0x0, 11, 1^0x1) == 64^0x800");
+ assert(set_slice_bits(64, 1, 64^0x0, 12, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 12, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 13, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 13, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 14, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 14, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 15, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 15, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 16, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 16, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 17, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 17, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 18, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 18, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 19, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 19, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 2, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 2, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 20, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 20, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 21, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 21, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 22, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 22, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 23, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 23, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 23, 1^0x1) == 64^0x800000, "set_slice_bits(64, 1, 64^0x0, 23, 1^0x1) == 64^0x800000");
+ assert(set_slice_bits(64, 1, 64^0x0, 24, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 24, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 25, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 25, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 26, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 26, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 27, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 27, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 28, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 28, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 29, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 29, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 3, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 3, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 30, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 30, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 31, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 31, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 31, 1^0x1) == 64^0x80000000, "set_slice_bits(64, 1, 64^0x0, 31, 1^0x1) == 64^0x80000000");
+ assert(set_slice_bits(64, 1, 64^0x0, 32, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 32, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 33, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 33, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 36, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 36, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 37, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 37, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 38, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 38, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 4, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 4, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 41, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 41, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 42, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 42, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 43, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 43, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 44, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 44, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 45, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 45, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 46, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 46, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 47, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 47, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 48, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 48, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 49, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 49, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 5, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 5, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 50, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 50, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 1, 64^0x0, 52, 1^0x0) == 64^0x0, "set_slice_bits(64, 1, 64^0x0, 52, 1^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x1d) == 64^0x1d, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x1d) == 64^0x1d");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x1e) == 64^0x1e, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x1e) == 64^0x1e");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x1f) == 64^0x1f, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x1f) == 64^0x1f");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x2) == 64^0x2, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x2) == 64^0x2");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x20) == 64^0x20, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x20) == 64^0x20");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x200) == 64^0x200, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x200) == 64^0x200");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x2100) == 64^0x2100, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x2100) == 64^0x2100");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x2200) == 64^0x2200, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x2200) == 64^0x2200");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x2300) == 64^0x2300, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x2300) == 64^0x2300");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x24) == 64^0x24, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x24) == 64^0x24");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x270) == 64^0x270, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x270) == 64^0x270");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x288) == 64^0x288, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x288) == 64^0x288");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x2f) == 64^0x2f, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x2f) == 64^0x2f");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0x3) == 64^0x3, "set_slice_bits(64, 16, 64^0x0, 0, 16^0x3) == 64^0x3");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xd) == 64^0xd, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xd) == 64^0xd");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xe) == 64^0xe, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xe) == 64^0xe");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xe0) == 64^0xe0, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xe0) == 64^0xe0");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xee) == 64^0xee, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xee) == 64^0xee");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xf) == 64^0xf, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xf) == 64^0xf");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xff) == 64^0xff, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xff) == 64^0xff");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xfff) == 64^0xfff, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xfff) == 64^0xfff");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xfffa) == 64^0xfffa, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xfffa) == 64^0xfffa");
+ assert(set_slice_bits(64, 16, 64^0x0, 0, 16^0xffff) == 64^0xffff, "set_slice_bits(64, 16, 64^0x0, 0, 16^0xffff) == 64^0xffff");
+ assert(set_slice_bits(64, 16, 64^0x0, 16, 16^0x0) == 64^0x0, "set_slice_bits(64, 16, 64^0x0, 16, 16^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 16, 64^0x0, 16, 16^0x10) == 64^0x100000, "set_slice_bits(64, 16, 64^0x0, 16, 16^0x10) == 64^0x100000");
+ assert(set_slice_bits(64, 16, 64^0x0, 16, 16^0x2e0) == 64^0x2e00000, "set_slice_bits(64, 16, 64^0x0, 16, 16^0x2e0) == 64^0x2e00000");
+ assert(set_slice_bits(64, 16, 64^0x0, 16, 16^0x800) == 64^0x8000000, "set_slice_bits(64, 16, 64^0x0, 16, 16^0x800) == 64^0x8000000");
+ assert(set_slice_bits(64, 16, 64^0x0, 32, 16^0x0) == 64^0x0, "set_slice_bits(64, 16, 64^0x0, 32, 16^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 16, 64^0x0, 40, 16^0x0) == 64^0x0, "set_slice_bits(64, 16, 64^0x0, 40, 16^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 16, 64^0x0, 48, 16^0x0) == 64^0x0, "set_slice_bits(64, 16, 64^0x0, 48, 16^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 16, 64^0x10, 16, 16^0x0) == 64^0x10, "set_slice_bits(64, 16, 64^0x10, 16, 16^0x0) == 64^0x10");
+ assert(set_slice_bits(64, 16, 64^0x10, 32, 16^0x0) == 64^0x10, "set_slice_bits(64, 16, 64^0x10, 32, 16^0x0) == 64^0x10");
+ assert(set_slice_bits(64, 16, 64^0x10, 48, 16^0x0) == 64^0x10, "set_slice_bits(64, 16, 64^0x10, 48, 16^0x0) == 64^0x10");
+ assert(set_slice_bits(64, 2, 64^0x0, 34, 2^0x0) == 64^0x0, "set_slice_bits(64, 2, 64^0x0, 34, 2^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 2, 64^0x0, 8, 2^0x0) == 64^0x0, "set_slice_bits(64, 2, 64^0x0, 8, 2^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 20, 64^0x0, 44, 20^0x0) == 64^0x0, "set_slice_bits(64, 20, 64^0x0, 44, 20^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 21, 64^0xa200023, 0, 21^0x23) == 64^0xa200023, "set_slice_bits(64, 21, 64^0xa200023, 0, 21^0x23) == 64^0xa200023");
+ assert(set_slice_bits(64, 21, undefined, 0, 21^0x23) == 64^0x23, "set_slice_bits(64, 21, undefined, 0, 21^0x23) == 64^0x23");
+ assert(set_slice_bits(64, 24, 64^0x0, 32, 24^0x0) == 64^0x0, "set_slice_bits(64, 24, 64^0x0, 32, 24^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 24, 64^0x80000000, 40, 24^0x0) == 64^0x80000000, "set_slice_bits(64, 24, 64^0x80000000, 40, 24^0x0) == 64^0x80000000");
+ assert(set_slice_bits(64, 25, 64^0x0, 39, 25^0x0) == 64^0x0, "set_slice_bits(64, 25, 64^0x0, 39, 25^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 25, 64^0x0, 6, 25^0x0) == 64^0x0, "set_slice_bits(64, 25, 64^0x0, 6, 25^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 26, 64^0x0, 38, 26^0x0) == 64^0x0, "set_slice_bits(64, 26, 64^0x0, 38, 26^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 28, 64^0x0, 36, 28^0x0) == 64^0x0, "set_slice_bits(64, 28, 64^0x0, 36, 28^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 28, 64^0x10101106, 36, 28^0x0) == 64^0x10101106, "set_slice_bits(64, 28, 64^0x10101106, 36, 28^0x0) == 64^0x10101106");
+ assert(set_slice_bits(64, 28, 64^0x2222, 36, 28^0x0) == 64^0x2222, "set_slice_bits(64, 28, 64^0x2222, 36, 28^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 3, 64^0x0, 3, 3^0x0) == 64^0x0, "set_slice_bits(64, 3, 64^0x0, 3, 3^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 3, 64^0x0, 53, 3^0x0) == 64^0x0, "set_slice_bits(64, 3, 64^0x0, 53, 3^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 3, 64^0x0, 56, 3^0x0) == 64^0x0, "set_slice_bits(64, 3, 64^0x0, 56, 3^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 3, 64^0x0, 59, 3^0x0) == 64^0x0, "set_slice_bits(64, 3, 64^0x0, 59, 3^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 3, 64^0x200023, 24, 3^0x2) == 64^0x2200023, "set_slice_bits(64, 3, 64^0x200023, 24, 3^0x2) == 64^0x2200023");
+ assert(set_slice_bits(64, 3, 64^0x2200023, 27, 3^0x1) == 64^0xa200023, "set_slice_bits(64, 3, 64^0x2200023, 27, 3^0x1) == 64^0xa200023");
+ assert(set_slice_bits(64, 3, 64^0x23, 21, 3^0x1) == 64^0x200023, "set_slice_bits(64, 3, 64^0x23, 21, 3^0x1) == 64^0x200023");
+ assert(set_slice_bits(64, 3, 64^0xa200023, 21, 3^0x1) == 64^0xa200023, "set_slice_bits(64, 3, 64^0xa200023, 21, 3^0x1) == 64^0xa200023");
+ assert(set_slice_bits(64, 3, 64^0xa200023, 24, 3^0x2) == 64^0xa200023, "set_slice_bits(64, 3, 64^0xa200023, 24, 3^0x2) == 64^0xa200023");
+ assert(set_slice_bits(64, 3, 64^0xa200023, 27, 3^0x1) == 64^0xa200023, "set_slice_bits(64, 3, 64^0xa200023, 27, 3^0x1) == 64^0xa200023");
+ assert(set_slice_bits(64, 3, 64^0xa200023, 30, 3^0x0) == 64^0xa200023, "set_slice_bits(64, 3, 64^0xa200023, 30, 3^0x0) == 64^0xa200023");
+ assert(set_slice_bits(64, 3, undefined, 3, 3^0x0) == 64^0x0, "set_slice_bits(64, 3, undefined, 3, 3^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 31, 64^0xa200023, 33, 31^0x0) == 64^0xa200023, "set_slice_bits(64, 31, 64^0xa200023, 33, 31^0x0) == 64^0xa200023");
+ assert(set_slice_bits(64, 32, 64^0x0, 0, 32^0x0) == 64^0x0, "set_slice_bits(64, 32, 64^0x0, 0, 32^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 32, 64^0x0, 32, 32^0x0) == 64^0x0, "set_slice_bits(64, 32, 64^0x0, 32, 32^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 32, 64^0x1125, 32, 32^0x0) == 64^0x1125, "set_slice_bits(64, 32, 64^0x1125, 32, 32^0x0) == 64^0x1125");
+ assert(set_slice_bits(64, 32, 64^0x80800000, 32, 32^0x0) == 64^0x80800000, "set_slice_bits(64, 32, 64^0x80800000, 32, 32^0x0) == 64^0x80800000");
+ assert(set_slice_bits(64, 32, undefined, 0, 32^0x0) == 64^0x0, "set_slice_bits(64, 32, undefined, 0, 32^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 36, 64^0x0, 12, 36^0x0) == 64^0x0, "set_slice_bits(64, 36, 64^0x0, 12, 36^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 36, 64^0x0, 28, 36^0x0) == 64^0x0, "set_slice_bits(64, 36, 64^0x0, 28, 36^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 36, 64^0x800, 12, 36^0x0) == 64^0x800, "set_slice_bits(64, 36, 64^0x800, 12, 36^0x0) == 64^0x800");
+ assert(set_slice_bits(64, 4, 64^0x0, 0, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 0, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 0, 4^0x1) == 64^0x1, "set_slice_bits(64, 4, 64^0x0, 0, 4^0x1) == 64^0x1");
+ assert(set_slice_bits(64, 4, 64^0x0, 1, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 1, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 12, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 12, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 16, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 16, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 20, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 20, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 20, 4^0x1) == 64^0x100000, "set_slice_bits(64, 4, 64^0x0, 20, 4^0x1) == 64^0x100000");
+ assert(set_slice_bits(64, 4, 64^0x0, 24, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 24, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 28, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 28, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 32, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 32, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 4, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 4, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 4, 4^0x2) == 64^0x20, "set_slice_bits(64, 4, 64^0x0, 4, 4^0x2) == 64^0x20");
+ assert(set_slice_bits(64, 4, 64^0x0, 40, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 40, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 48, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 48, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 7, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 7, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x0, 8, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, 64^0x0, 8, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, 64^0x1, 4, 4^0x1) == 64^0x11, "set_slice_bits(64, 4, 64^0x1, 4, 4^0x1) == 64^0x11");
+ assert(set_slice_bits(64, 4, 64^0x100000, 16, 4^0x1) == 64^0x110000, "set_slice_bits(64, 4, 64^0x100000, 16, 4^0x1) == 64^0x110000");
+ assert(set_slice_bits(64, 4, 64^0x1000011, 12, 4^0x1) == 64^0x1001011, "set_slice_bits(64, 4, 64^0x1000011, 12, 4^0x1) == 64^0x1001011");
+ assert(set_slice_bits(64, 4, 64^0x1000011, 28, 4^0x0) == 64^0x1000011, "set_slice_bits(64, 4, 64^0x1000011, 28, 4^0x0) == 64^0x1000011");
+ assert(set_slice_bits(64, 4, 64^0x1001011, 20, 4^0x1) == 64^0x1101011, "set_slice_bits(64, 4, 64^0x1001011, 20, 4^0x1) == 64^0x1101011");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 0, 4^0x6) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 0, 4^0x6) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 12, 4^0x1) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 12, 4^0x1) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 16, 4^0x0) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 16, 4^0x0) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 20, 4^0x1) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 20, 4^0x1) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 24, 4^0x0) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 24, 4^0x0) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 28, 4^0x1) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 28, 4^0x1) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 32, 4^0x0) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 32, 4^0x0) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 4, 4^0x0) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 4, 4^0x0) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10101106, 8, 4^0x1) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x10101106, 8, 4^0x1) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x101106, 24, 4^0x0) == 64^0x101106, "set_slice_bits(64, 4, 64^0x101106, 24, 4^0x0) == 64^0x101106");
+ assert(set_slice_bits(64, 4, 64^0x101106, 28, 4^0x1) == 64^0x10101106, "set_slice_bits(64, 4, 64^0x101106, 28, 4^0x1) == 64^0x10101106");
+ assert(set_slice_bits(64, 4, 64^0x10111, 12, 4^0x1) == 64^0x11111, "set_slice_bits(64, 4, 64^0x10111, 12, 4^0x1) == 64^0x11111");
+ assert(set_slice_bits(64, 4, 64^0x10111122, 0, 4^0x2) == 64^0x10111122, "set_slice_bits(64, 4, 64^0x10111122, 0, 4^0x2) == 64^0x10111122");
+ assert(set_slice_bits(64, 4, 64^0x10111122, 12, 4^0x2) == 64^0x10112122, "set_slice_bits(64, 4, 64^0x10111122, 12, 4^0x2) == 64^0x10112122");
+ assert(set_slice_bits(64, 4, 64^0x10111122, 28, 4^0x1) == 64^0x10111122, "set_slice_bits(64, 4, 64^0x10111122, 28, 4^0x1) == 64^0x10111122");
+ assert(set_slice_bits(64, 4, 64^0x10111122, 4, 4^0x2) == 64^0x10111122, "set_slice_bits(64, 4, 64^0x10111122, 4, 4^0x2) == 64^0x10111122");
+ assert(set_slice_bits(64, 4, 64^0x10111122, 8, 4^0x1) == 64^0x10111122, "set_slice_bits(64, 4, 64^0x10111122, 8, 4^0x1) == 64^0x10111122");
+ assert(set_slice_bits(64, 4, 64^0x10112122, 12, 4^0x1) == 64^0x10111122, "set_slice_bits(64, 4, 64^0x10112122, 12, 4^0x1) == 64^0x10111122");
+ assert(set_slice_bits(64, 4, 64^0x10112122, 16, 4^0x1) == 64^0x10112122, "set_slice_bits(64, 4, 64^0x10112122, 16, 4^0x1) == 64^0x10112122");
+ assert(set_slice_bits(64, 4, 64^0x10112122, 20, 4^0x2) == 64^0x10212122, "set_slice_bits(64, 4, 64^0x10112122, 20, 4^0x2) == 64^0x10212122");
+ assert(set_slice_bits(64, 4, 64^0x10211120, 16, 4^0x1) == 64^0x10211120, "set_slice_bits(64, 4, 64^0x10211120, 16, 4^0x1) == 64^0x10211120");
+ assert(set_slice_bits(64, 4, 64^0x10211120, 20, 4^0x2) == 64^0x10211120, "set_slice_bits(64, 4, 64^0x10211120, 20, 4^0x2) == 64^0x10211120");
+ assert(set_slice_bits(64, 4, 64^0x10211120, 28, 4^0x1) == 64^0x10211120, "set_slice_bits(64, 4, 64^0x10211120, 28, 4^0x1) == 64^0x10211120");
+ assert(set_slice_bits(64, 4, 64^0x10212122, 20, 4^0x1) == 64^0x10112122, "set_slice_bits(64, 4, 64^0x10212122, 20, 4^0x1) == 64^0x10112122");
+ assert(set_slice_bits(64, 4, 64^0x106, 12, 4^0x1) == 64^0x1106, "set_slice_bits(64, 4, 64^0x106, 12, 4^0x1) == 64^0x1106");
+ assert(set_slice_bits(64, 4, 64^0x11, 24, 4^0x1) == 64^0x1000011, "set_slice_bits(64, 4, 64^0x11, 24, 4^0x1) == 64^0x1000011");
+ assert(set_slice_bits(64, 4, 64^0x11, 8, 4^0x0) == 64^0x11, "set_slice_bits(64, 4, 64^0x11, 8, 4^0x0) == 64^0x11");
+ assert(set_slice_bits(64, 4, 64^0x11, 8, 4^0x1) == 64^0x111, "set_slice_bits(64, 4, 64^0x11, 8, 4^0x1) == 64^0x111");
+ assert(set_slice_bits(64, 4, 64^0x1125, 24, 4^0x0) == 64^0x1125, "set_slice_bits(64, 4, 64^0x1125, 24, 4^0x0) == 64^0x1125");
+ assert(set_slice_bits(64, 4, 64^0x1125, 28, 4^0x0) == 64^0x1125, "set_slice_bits(64, 4, 64^0x1125, 28, 4^0x0) == 64^0x1125");
+ assert(set_slice_bits(64, 4, 64^0x1125, 4, 4^0x2) == 64^0x1125, "set_slice_bits(64, 4, 64^0x1125, 4, 4^0x2) == 64^0x1125");
+ assert(set_slice_bits(64, 4, 64^0x1125, 8, 4^0x1) == 64^0x1125, "set_slice_bits(64, 4, 64^0x1125, 8, 4^0x1) == 64^0x1125");
+ assert(set_slice_bits(64, 4, 64^0x1126, 0, 4^0x6) == 64^0x1126, "set_slice_bits(64, 4, 64^0x1126, 0, 4^0x6) == 64^0x1126");
+ assert(set_slice_bits(64, 4, 64^0x120, 12, 4^0x1) == 64^0x1120, "set_slice_bits(64, 4, 64^0x120, 12, 4^0x1) == 64^0x1120");
+ assert(set_slice_bits(64, 4, 64^0x12222, 20, 4^0x1) == 64^0x112222, "set_slice_bits(64, 4, 64^0x12222, 20, 4^0x1) == 64^0x112222");
+ assert(set_slice_bits(64, 4, 64^0x125, 12, 4^0x1) == 64^0x1125, "set_slice_bits(64, 4, 64^0x125, 12, 4^0x1) == 64^0x1125");
+ assert(set_slice_bits(64, 4, 64^0x20, 8, 4^0x1) == 64^0x120, "set_slice_bits(64, 4, 64^0x20, 8, 4^0x1) == 64^0x120");
+ assert(set_slice_bits(64, 4, 64^0x2000, 8, 4^0x2) == 64^0x2200, "set_slice_bits(64, 4, 64^0x2000, 8, 4^0x2) == 64^0x2200");
+ assert(set_slice_bits(64, 4, 64^0x211120, 28, 4^0x1) == 64^0x10211120, "set_slice_bits(64, 4, 64^0x211120, 28, 4^0x1) == 64^0x10211120");
+ assert(set_slice_bits(64, 4, 64^0x2200, 4, 4^0x2) == 64^0x2220, "set_slice_bits(64, 4, 64^0x2200, 4, 4^0x2) == 64^0x2220");
+ assert(set_slice_bits(64, 4, 64^0x2220, 0, 4^0x2) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2220, 0, 4^0x2) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 0, 4^0x2) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 0, 4^0x2) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 12, 4^0x2) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 12, 4^0x2) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 16, 4^0x0) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 16, 4^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 16, 4^0x1) == 64^0x12222, "set_slice_bits(64, 4, 64^0x2222, 16, 4^0x1) == 64^0x12222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 20, 4^0x0) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 20, 4^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 24, 4^0x0) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 24, 4^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 28, 4^0x0) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 28, 4^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 32, 4^0x0) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 32, 4^0x0) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 4, 4^0x2) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 4, 4^0x2) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x2222, 8, 4^0x2) == 64^0x2222, "set_slice_bits(64, 4, 64^0x2222, 8, 4^0x2) == 64^0x2222");
+ assert(set_slice_bits(64, 4, 64^0x25, 8, 4^0x1) == 64^0x125, "set_slice_bits(64, 4, 64^0x25, 8, 4^0x1) == 64^0x125");
+ assert(set_slice_bits(64, 4, 64^0x5, 4, 4^0x2) == 64^0x25, "set_slice_bits(64, 4, 64^0x5, 4, 4^0x2) == 64^0x25");
+ assert(set_slice_bits(64, 4, 64^0x6, 4, 4^0x0) == 64^0x6, "set_slice_bits(64, 4, 64^0x6, 4, 4^0x0) == 64^0x6");
+ assert(set_slice_bits(64, 4, 64^0x6, 8, 4^0x1) == 64^0x106, "set_slice_bits(64, 4, 64^0x6, 8, 4^0x1) == 64^0x106");
+ assert(set_slice_bits(64, 4, 64^0x800, 7, 4^0x0) == 64^0x800, "set_slice_bits(64, 4, 64^0x800, 7, 4^0x0) == 64^0x800");
+ assert(set_slice_bits(64, 4, undefined, 0, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, undefined, 0, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 4, undefined, 0, 4^0x5) == 64^0x5, "set_slice_bits(64, 4, undefined, 0, 4^0x5) == 64^0x5");
+ assert(set_slice_bits(64, 4, undefined, 0, 4^0x6) == 64^0x6, "set_slice_bits(64, 4, undefined, 0, 4^0x6) == 64^0x6");
+ assert(set_slice_bits(64, 4, undefined, 12, 4^0x2) == 64^0x2000, "set_slice_bits(64, 4, undefined, 12, 4^0x2) == 64^0x2000");
+ assert(set_slice_bits(64, 4, undefined, 20, 4^0x0) == 64^0x0, "set_slice_bits(64, 4, undefined, 20, 4^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 40, 64^0x0, 12, 40^0x0) == 64^0x0, "set_slice_bits(64, 40, 64^0x0, 12, 40^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 40, 64^0x0, 24, 40^0x0) == 64^0x0, "set_slice_bits(64, 40, 64^0x0, 24, 40^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 44, 64^0x0, 20, 44^0x0) == 64^0x0, "set_slice_bits(64, 44, 64^0x0, 20, 44^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 48, 64^0x0, 0, 48^0x0) == 64^0x0, "set_slice_bits(64, 48, 64^0x0, 0, 48^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 48, 64^0x0, 16, 48^0x0) == 64^0x0, "set_slice_bits(64, 48, 64^0x0, 16, 48^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 48, undefined, 0, 48^0x0) == 64^0x0, "set_slice_bits(64, 48, undefined, 0, 48^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 5, 64^0x0, 13, 5^0x0) == 64^0x0, "set_slice_bits(64, 5, 64^0x0, 13, 5^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 5, 64^0x0, 25, 5^0x0) == 64^0x0, "set_slice_bits(64, 5, 64^0x0, 25, 5^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 8, 64^0x0, 16, 8^0x0) == 64^0x0, "set_slice_bits(64, 8, 64^0x0, 16, 8^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 8, 64^0x0, 24, 8^0x0) == 64^0x0, "set_slice_bits(64, 8, 64^0x0, 24, 8^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 8, 64^0x0, 56, 8^0x0) == 64^0x0, "set_slice_bits(64, 8, 64^0x0, 56, 8^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 8, 64^0x0, 8, 8^0x0) == 64^0x0, "set_slice_bits(64, 8, 64^0x0, 8, 8^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 8, 64^0x80000000, 0, 8^0x0) == 64^0x80000000, "set_slice_bits(64, 8, 64^0x80000000, 0, 8^0x0) == 64^0x80000000");
+ assert(set_slice_bits(64, 8, 64^0x80000000, 16, 8^0x0) == 64^0x80000000, "set_slice_bits(64, 8, 64^0x80000000, 16, 8^0x0) == 64^0x80000000");
+ assert(set_slice_bits(64, 8, 64^0x80000000, 32, 8^0x0) == 64^0x80000000, "set_slice_bits(64, 8, 64^0x80000000, 32, 8^0x0) == 64^0x80000000");
+ assert(set_slice_bits(64, 8, 64^0x80000000, 8, 8^0x0) == 64^0x80000000, "set_slice_bits(64, 8, 64^0x80000000, 8, 8^0x0) == 64^0x80000000");
+ assert(set_slice_bits(64, 8, undefined, 0, 8^0x0) == 64^0x0, "set_slice_bits(64, 8, undefined, 0, 8^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 9, 64^0x0, 14, 9^0x0) == 64^0x0, "set_slice_bits(64, 9, 64^0x0, 14, 9^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 9, 64^0x0, 32, 9^0x0) == 64^0x0, "set_slice_bits(64, 9, 64^0x0, 32, 9^0x0) == 64^0x0");
+ assert(set_slice_bits(64, 9, 64^0x80800000, 14, 9^0x0) == 64^0x80800000, "set_slice_bits(64, 9, 64^0x80800000, 14, 9^0x0) == 64^0x80800000");
+} \ No newline at end of file
diff --git a/test/builtins/shl_int.sail b/test/builtins/shl_int.sail
new file mode 100644
index 00000000..c65baefc
--- /dev/null
+++ b/test/builtins/shl_int.sail
@@ -0,0 +1,18 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+$include <arith.sail>
+
+function main (() : unit) -> unit = {
+ assert(shl_int(1, 10) == 1024);
+ assert(shl_int(1, 2) == 4);
+ assert(shl_int(1, 3) == 8);
+ assert(shl_int(1, 4) == 16);
+ assert(shl_int(1, 5) == 32);
+ assert(shl_int(1, 6) == 64);
+ assert(shl_int(8, 0) == 8);
+ assert(shl_int(8, 2) == 32);
+ assert(shl_int(8, 3) == 64);
+} \ No newline at end of file
diff --git a/test/builtins/signed.sail b/test/builtins/signed.sail
new file mode 100644
index 00000000..7b9160f7
--- /dev/null
+++ b/test/builtins/signed.sail
@@ -0,0 +1,1707 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+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);
+} \ No newline at end of file
diff --git a/test/builtins/sub_int.sail b/test/builtins/sub_int.sail
new file mode 100644
index 00000000..083bae4f
--- /dev/null
+++ b/test/builtins/sub_int.sail
@@ -0,0 +1,249 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+$include <arith.sail>
+
+function main (() : unit) -> unit = {
+ assert(sub_int(0, 0) == 0);
+ assert(sub_int(0, 14) == -14);
+ assert(sub_int(0, 17) == -17);
+ assert(sub_int(0, 29) == -29);
+ assert(sub_int(0, 30) == -30);
+ assert(sub_int(0, 33) == -33);
+ assert(sub_int(0, 38) == -38);
+ assert(sub_int(0, 52) == -52);
+ assert(sub_int(0, 56) == -56);
+ assert(sub_int(1, 0) == 1);
+ assert(sub_int(1, 1) == 0);
+ assert(sub_int(1, 14) == -13);
+ assert(sub_int(1, 30) == -29);
+ assert(sub_int(1, 5) == -4);
+ assert(sub_int(1, 50) == -49);
+ assert(sub_int(10, 10) == 0);
+ assert(sub_int(10, 13) == -3);
+ assert(sub_int(10, 17) == -7);
+ assert(sub_int(10, 9) == 1);
+ assert(sub_int(100, 64) == 36);
+ assert(sub_int(1024, 1) == 1023);
+ assert(sub_int(11, 1) == 10);
+ assert(sub_int(11, 10) == 1);
+ assert(sub_int(11, 11) == 0);
+ assert(sub_int(11, 14) == -3);
+ assert(sub_int(11, 21) == -10);
+ assert(sub_int(11, 30) == -19);
+ assert(sub_int(111, 64) == 47);
+ assert(sub_int(12, 1) == 11);
+ assert(sub_int(12, 10) == 2);
+ assert(sub_int(12, 14) == -2);
+ assert(sub_int(128, 128) == 0);
+ assert(sub_int(13, 10) == 3);
+ assert(sub_int(13, 3) == 10);
+ assert(sub_int(13, 59) == -46);
+ assert(sub_int(14, 0) == 14);
+ assert(sub_int(14, 1) == 13);
+ assert(sub_int(14, 10) == 4);
+ assert(sub_int(14, 26) == -12);
+ assert(sub_int(14, 3) == 11);
+ assert(sub_int(14, 59) == -45);
+ assert(sub_int(14, 8) == 6);
+ assert(sub_int(15, 0) == 15);
+ assert(sub_int(15, 10) == 5);
+ assert(sub_int(15, 16) == -1);
+ assert(sub_int(16, 1) == 15);
+ assert(sub_int(16, 10) == 6);
+ assert(sub_int(16, 22) == -6);
+ assert(sub_int(16, 36) == -20);
+ assert(sub_int(17, 10) == 7);
+ assert(sub_int(17, 22) == -5);
+ assert(sub_int(17, 40) == -23);
+ assert(sub_int(17, 62) == -45);
+ assert(sub_int(18, 10) == 8);
+ assert(sub_int(18, 11) == 7);
+ assert(sub_int(18, 19) == -1);
+ assert(sub_int(18, 24) == -6);
+ assert(sub_int(19, 10) == 9);
+ assert(sub_int(2, 0) == 2);
+ assert(sub_int(2, 2) == 0);
+ assert(sub_int(2, 5) == -3);
+ assert(sub_int(20, 20) == 0);
+ assert(sub_int(21, 1) == 20);
+ assert(sub_int(21, 18) == 3);
+ assert(sub_int(21, 2) == 19);
+ assert(sub_int(21, 20) == 1);
+ assert(sub_int(22, 10) == 12);
+ assert(sub_int(22, 20) == 2);
+ assert(sub_int(23, 11) == 12);
+ assert(sub_int(23, 20) == 3);
+ assert(sub_int(23, 39) == -16);
+ assert(sub_int(24, 1) == 23);
+ assert(sub_int(24, 14) == 10);
+ assert(sub_int(24, 20) == 4);
+ assert(sub_int(24, 25) == -1);
+ assert(sub_int(24, 62) == -38);
+ assert(sub_int(25, 1) == 24);
+ assert(sub_int(25, 10) == 15);
+ assert(sub_int(25, 20) == 5);
+ assert(sub_int(25, 45) == -20);
+ assert(sub_int(256, 1) == 255);
+ assert(sub_int(26, 1) == 25);
+ assert(sub_int(26, 20) == 6);
+ assert(sub_int(26, 27) == -1);
+ assert(sub_int(27, 20) == 7);
+ assert(sub_int(27, 22) == 5);
+ assert(sub_int(27, 3) == 24);
+ assert(sub_int(27, 56) == -29);
+ assert(sub_int(27, 59) == -32);
+ assert(sub_int(28, 1) == 27);
+ assert(sub_int(28, 15) == 13);
+ assert(sub_int(28, 16) == 12);
+ assert(sub_int(28, 20) == 8);
+ assert(sub_int(28, 8) == 20);
+ assert(sub_int(29, 20) == 9);
+ assert(sub_int(29, 6) == 23);
+ assert(sub_int(3, 0) == 3);
+ assert(sub_int(3, 1) == 2);
+ assert(sub_int(3, 2) == 1);
+ assert(sub_int(3, 3) == 0);
+ assert(sub_int(3, 44) == -41);
+ assert(sub_int(3, 62) == -59);
+ assert(sub_int(30, 30) == 0);
+ assert(sub_int(31, 0) == 31);
+ assert(sub_int(31, 16) == 15);
+ assert(sub_int(31, 24) == 7);
+ assert(sub_int(31, 26) == 5);
+ assert(sub_int(31, 30) == 1);
+ assert(sub_int(31, 8) == 23);
+ assert(sub_int(32, 1) == 31);
+ assert(sub_int(32, 11) == 21);
+ assert(sub_int(32, 12) == 20);
+ assert(sub_int(32, 16) == 16);
+ assert(sub_int(32, 24) == 8);
+ assert(sub_int(32, 26) == 6);
+ assert(sub_int(32, 32) == 0);
+ assert(sub_int(32, 53) == -21);
+ assert(sub_int(32, 7) == 25);
+ assert(sub_int(32, 8) == 24);
+ assert(sub_int(33, 1) == 32);
+ assert(sub_int(33, 39) == -6);
+ assert(sub_int(34, 1) == 33);
+ assert(sub_int(35, 0) == 35);
+ assert(sub_int(35, 1) == 34);
+ assert(sub_int(35, 25) == 10);
+ assert(sub_int(35, 36) == -1);
+ assert(sub_int(35, 48) == -13);
+ assert(sub_int(36, 1) == 35);
+ assert(sub_int(36, 10) == 26);
+ assert(sub_int(36, 59) == -23);
+ assert(sub_int(39, 32) == 7);
+ assert(sub_int(4, 0) == 4);
+ assert(sub_int(4, 1) == 3);
+ assert(sub_int(4, 2) == 2);
+ assert(sub_int(4, 4) == 0);
+ assert(sub_int(4, 5) == -1);
+ assert(sub_int(4, 54) == -50);
+ assert(sub_int(4, 7) == -3);
+ assert(sub_int(4, 9) == -5);
+ assert(sub_int(40, 28) == 12);
+ assert(sub_int(40, 32) == 8);
+ assert(sub_int(42, 22) == 20);
+ assert(sub_int(42, 39) == 3);
+ assert(sub_int(42, 54) == -12);
+ assert(sub_int(43, 29) == 14);
+ assert(sub_int(43, 32) == 11);
+ assert(sub_int(44, 34) == 10);
+ assert(sub_int(45, 19) == 26);
+ assert(sub_int(46, 36) == 10);
+ assert(sub_int(46, 61) == -15);
+ assert(sub_int(47, 0) == 47);
+ assert(sub_int(47, 1) == 46);
+ assert(sub_int(47, 15) == 32);
+ assert(sub_int(47, 47) == 0);
+ assert(sub_int(48, 1) == 47);
+ assert(sub_int(48, 14) == 34);
+ assert(sub_int(48, 32) == 16);
+ assert(sub_int(48, 47) == 1);
+ assert(sub_int(49, 6) == 43);
+ assert(sub_int(5, 0) == 5);
+ assert(sub_int(5, 11) == -6);
+ assert(sub_int(5, 14) == -9);
+ assert(sub_int(5, 2) == 3);
+ assert(sub_int(5, 7) == -2);
+ assert(sub_int(51, 47) == 4);
+ assert(sub_int(51, 5) == 46);
+ assert(sub_int(51, 63) == -12);
+ assert(sub_int(52, 14) == 38);
+ assert(sub_int(52, 4) == 48);
+ assert(sub_int(52, 48) == 4);
+ assert(sub_int(52, 59) == -7);
+ assert(sub_int(54, 34) == 20);
+ assert(sub_int(54, 47) == 7);
+ assert(sub_int(55, 60) == -5);
+ assert(sub_int(55, 7) == 48);
+ assert(sub_int(56, 12) == 44);
+ assert(sub_int(56, 32) == 24);
+ assert(sub_int(56, 52) == 4);
+ assert(sub_int(57, 12) == 45);
+ assert(sub_int(58, 32) == 26);
+ assert(sub_int(58, 34) == 24);
+ assert(sub_int(58, 62) == -4);
+ assert(sub_int(59, 60) == -1);
+ assert(sub_int(6, 0) == 6);
+ assert(sub_int(6, 1) == 5);
+ assert(sub_int(6, 10) == -4);
+ assert(sub_int(6, 2) == 4);
+ assert(sub_int(6, 3) == 3);
+ assert(sub_int(6, 33) == -27);
+ assert(sub_int(6, 4) == 2);
+ assert(sub_int(6, 5) == 1);
+ assert(sub_int(6, 6) == 0);
+ assert(sub_int(6, 7) == -1);
+ assert(sub_int(61, 13) == 48);
+ assert(sub_int(62, 31) == 31);
+ assert(sub_int(62, 56) == 6);
+ assert(sub_int(62, 63) == -1);
+ assert(sub_int(63, 14) == 49);
+ assert(sub_int(63, 48) == 15);
+ assert(sub_int(64, 0) == 64);
+ assert(sub_int(64, 1) == 63);
+ assert(sub_int(64, 12) == 52);
+ assert(sub_int(64, 14) == 50);
+ assert(sub_int(64, 16) == 48);
+ assert(sub_int(64, 2) == 62);
+ assert(sub_int(64, 21) == 43);
+ assert(sub_int(64, 24) == 40);
+ assert(sub_int(64, 28) == 36);
+ assert(sub_int(64, 3) == 61);
+ assert(sub_int(64, 32) == 32);
+ assert(sub_int(64, 33) == 31);
+ assert(sub_int(64, 34) == 30);
+ assert(sub_int(64, 35) == 29);
+ assert(sub_int(64, 36) == 28);
+ assert(sub_int(64, 39) == 25);
+ assert(sub_int(64, 52) == 12);
+ assert(sub_int(64, 64) == 0);
+ assert(sub_int(64, 7) == 57);
+ assert(sub_int(64, 8) == 56);
+ assert(sub_int(64, 9) == 55);
+ assert(sub_int(68, 64) == 4);
+ assert(sub_int(7, 0) == 7);
+ assert(sub_int(7, 1) == 6);
+ assert(sub_int(7, 19) == -12);
+ assert(sub_int(7, 34) == -27);
+ assert(sub_int(7, 41) == -34);
+ assert(sub_int(72, 64) == 8);
+ assert(sub_int(76, 64) == 12);
+ assert(sub_int(78, 64) == 14);
+ assert(sub_int(8, 0) == 8);
+ assert(sub_int(8, 1) == 7);
+ assert(sub_int(8, 16) == -8);
+ assert(sub_int(8, 19) == -11);
+ assert(sub_int(8, 26) == -18);
+ assert(sub_int(89, 64) == 25);
+ assert(sub_int(9, 0) == 9);
+ assert(sub_int(9, 1) == 8);
+ assert(sub_int(9, 13) == -4);
+ assert(sub_int(9, 6) == 3);
+ assert(sub_int(9, 8) == 1);
+} \ No newline at end of file
diff --git a/test/builtins/unsigned1.sail b/test/builtins/unsigned1.sail
new file mode 100644
index 00000000..1a65a06c
--- /dev/null
+++ b/test/builtins/unsigned1.sail
@@ -0,0 +1,3005 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+val flip_mask : forall 'len 'v, 'v >= 0. (vector('v, dec, bit), atom('len)) -> vector('len, dec, bit)
+
+function flip_mask(v, len) = len ^ v
+
+function main (() : unit) -> unit = {
+ assert(unsigned(flip_mask(0x0, 1)) == 0);
+ assert(unsigned(flip_mask(0x1, 1)) == 1);
+ assert(unsigned(flip_mask(0x0, 10)) == 0);
+ assert(unsigned(flip_mask(0x1, 10)) == 1);
+ assert(unsigned(flip_mask(0x100, 10)) == 256);
+ assert(unsigned(flip_mask(0x102, 10)) == 258);
+ assert(unsigned(flip_mask(0x140, 10)) == 320);
+ assert(unsigned(flip_mask(0x180, 10)) == 384);
+ assert(unsigned(flip_mask(0x2, 10)) == 2);
+ assert(unsigned(flip_mask(0x200, 10)) == 512);
+ assert(unsigned(flip_mask(0x202, 10)) == 514);
+ assert(unsigned(flip_mask(0x203, 10)) == 515);
+ assert(unsigned(flip_mask(0x205, 10)) == 517);
+ assert(unsigned(flip_mask(0x206, 10)) == 518);
+ assert(unsigned(flip_mask(0x380, 10)) == 896);
+ assert(unsigned(flip_mask(0x3c0, 10)) == 960);
+ assert(unsigned(flip_mask(0x4, 10)) == 4);
+ assert(unsigned(flip_mask(0x40, 10)) == 64);
+ assert(unsigned(flip_mask(0x41, 10)) == 65);
+ assert(unsigned(flip_mask(0x5, 10)) == 5);
+ assert(unsigned(flip_mask(0x6, 10)) == 6);
+ assert(unsigned(flip_mask(0x7, 10)) == 7);
+ assert(unsigned(flip_mask(0x8, 10)) == 8);
+ assert(unsigned(flip_mask(0x80, 10)) == 128);
+ assert(unsigned(flip_mask(0x85, 10)) == 133);
+ assert(unsigned(flip_mask(0xc0, 10)) == 192);
+ assert(unsigned(flip_mask(0xfe, 10)) == 254);
+ assert(unsigned(flip_mask(0x0, 16)) == 0);
+ assert(unsigned(flip_mask(0x0, 2)) == 0);
+ assert(unsigned(flip_mask(0x1, 2)) == 1);
+ assert(unsigned(flip_mask(0x2, 2)) == 2);
+ assert(unsigned(flip_mask(0x3, 2)) == 3);
+ assert(unsigned(flip_mask(0x0, 3)) == 0);
+ assert(unsigned(flip_mask(0x1, 3)) == 1);
+ assert(unsigned(flip_mask(0x2, 3)) == 2);
+ assert(unsigned(flip_mask(0x3, 3)) == 3);
+ assert(unsigned(flip_mask(0x4, 3)) == 4);
+ assert(unsigned(flip_mask(0x5, 3)) == 5);
+ assert(unsigned(flip_mask(0x6, 3)) == 6);
+ assert(unsigned(flip_mask(0x7, 3)) == 7);
+ assert(unsigned(flip_mask(0x0, 32)) == 0);
+ assert(unsigned(flip_mask(0x1, 32)) == 1);
+ assert(unsigned(flip_mask(0x10, 32)) == 16);
+ assert(unsigned(flip_mask(0x10000, 32)) == 65536);
+ assert(unsigned(flip_mask(0x10001, 32)) == 65537);
+ assert(unsigned(flip_mask(0x11, 32)) == 17);
+ assert(unsigned(flip_mask(0x11223344, 32)) == 287454020);
+ assert(unsigned(flip_mask(0x118, 32)) == 280);
+ assert(unsigned(flip_mask(0x12, 32)) == 18);
+ assert(unsigned(flip_mask(0x1234, 32)) == 4660);
+ assert(unsigned(flip_mask(0x12345678, 32)) == 305419896);
+ assert(unsigned(flip_mask(0x13, 32)) == 19);
+ assert(unsigned(flip_mask(0x14, 32)) == 20);
+ assert(unsigned(flip_mask(0x15, 32)) == 21);
+ assert(unsigned(flip_mask(0x16, 32)) == 22);
+ assert(unsigned(flip_mask(0x17, 32)) == 23);
+ assert(unsigned(flip_mask(0x17ffe, 32)) == 98302);
+ assert(unsigned(flip_mask(0x17fff, 32)) == 98303);
+ assert(unsigned(flip_mask(0x18, 32)) == 24);
+ assert(unsigned(flip_mask(0x18000, 32)) == 98304);
+ assert(unsigned(flip_mask(0x19, 32)) == 25);
+ assert(unsigned(flip_mask(0x1a, 32)) == 26);
+ assert(unsigned(flip_mask(0x1b, 32)) == 27);
+ assert(unsigned(flip_mask(0x1c, 32)) == 28);
+ assert(unsigned(flip_mask(0x1d, 32)) == 29);
+ assert(unsigned(flip_mask(0x1e, 32)) == 30);
+ assert(unsigned(flip_mask(0x1f, 32)) == 31);
+ assert(unsigned(flip_mask(0x2, 32)) == 2);
+ assert(unsigned(flip_mask(0x20, 32)) == 32);
+ assert(unsigned(flip_mask(0x20000, 32)) == 131072);
+ assert(unsigned(flip_mask(0x21, 32)) == 33);
+ assert(unsigned(flip_mask(0x23, 32)) == 35);
+ assert(unsigned(flip_mask(0x230, 32)) == 560);
+ assert(unsigned(flip_mask(0x25, 32)) == 37);
+ assert(unsigned(flip_mask(0x26, 32)) == 38);
+ assert(unsigned(flip_mask(0x27, 32)) == 39);
+ assert(unsigned(flip_mask(0x28, 32)) == 40);
+ assert(unsigned(flip_mask(0x280, 32)) == 640);
+ assert(unsigned(flip_mask(0x29, 32)) == 41);
+ assert(unsigned(flip_mask(0x298, 32)) == 664);
+ assert(unsigned(flip_mask(0x2a, 32)) == 42);
+ assert(unsigned(flip_mask(0x2a0, 32)) == 672);
+ assert(unsigned(flip_mask(0x2b, 32)) == 43);
+ assert(unsigned(flip_mask(0x2d, 32)) == 45);
+ assert(unsigned(flip_mask(0x2e, 32)) == 46);
+ assert(unsigned(flip_mask(0x2f, 32)) == 47);
+ assert(unsigned(flip_mask(0x3, 32)) == 3);
+ assert(unsigned(flip_mask(0x30, 32)) == 48);
+ assert(unsigned(flip_mask(0x31, 32)) == 49);
+ assert(unsigned(flip_mask(0x32, 32)) == 50);
+ assert(unsigned(flip_mask(0x33, 32)) == 51);
+ assert(unsigned(flip_mask(0x34, 32)) == 52);
+ assert(unsigned(flip_mask(0x35, 32)) == 53);
+ assert(unsigned(flip_mask(0x36, 32)) == 54);
+ assert(unsigned(flip_mask(0x37, 32)) == 55);
+ assert(unsigned(flip_mask(0x38, 32)) == 56);
+ assert(unsigned(flip_mask(0x39, 32)) == 57);
+ assert(unsigned(flip_mask(0x3a, 32)) == 58);
+ assert(unsigned(flip_mask(0x3c, 32)) == 60);
+ assert(unsigned(flip_mask(0x3e, 32)) == 62);
+ assert(unsigned(flip_mask(0x3f, 32)) == 63);
+ assert(unsigned(flip_mask(0x4, 32)) == 4);
+ assert(unsigned(flip_mask(0x40, 32)) == 64);
+ assert(unsigned(flip_mask(0x41, 32)) == 65);
+ assert(unsigned(flip_mask(0x43, 32)) == 67);
+ assert(unsigned(flip_mask(0x44, 32)) == 68);
+ assert(unsigned(flip_mask(0x45, 32)) == 69);
+ assert(unsigned(flip_mask(0x46, 32)) == 70);
+ assert(unsigned(flip_mask(0x47, 32)) == 71);
+ assert(unsigned(flip_mask(0x48, 32)) == 72);
+ assert(unsigned(flip_mask(0x4a, 32)) == 74);
+ assert(unsigned(flip_mask(0x4b, 32)) == 75);
+ assert(unsigned(flip_mask(0x4c, 32)) == 76);
+ assert(unsigned(flip_mask(0x4d, 32)) == 77);
+ assert(unsigned(flip_mask(0x4e, 32)) == 78);
+ assert(unsigned(flip_mask(0x4f, 32)) == 79);
+ assert(unsigned(flip_mask(0x5, 32)) == 5);
+ assert(unsigned(flip_mask(0x50, 32)) == 80);
+ assert(unsigned(flip_mask(0x52, 32)) == 82);
+ assert(unsigned(flip_mask(0x53, 32)) == 83);
+ assert(unsigned(flip_mask(0x54, 32)) == 84);
+ assert(unsigned(flip_mask(0x55, 32)) == 85);
+ assert(unsigned(flip_mask(0x5a5a, 32)) == 23130);
+ assert(unsigned(flip_mask(0x5a5a5a59, 32)) == 1515870809);
+ assert(unsigned(flip_mask(0x5a5a5a5a, 32)) == 1515870810);
+ assert(unsigned(flip_mask(0x5f, 32)) == 95);
+ assert(unsigned(flip_mask(0x6, 32)) == 6);
+ assert(unsigned(flip_mask(0x6000, 32)) == 24576);
+ assert(unsigned(flip_mask(0x60000000, 32)) == 1610612736);
+ assert(unsigned(flip_mask(0x61, 32)) == 97);
+ assert(unsigned(flip_mask(0x62, 32)) == 98);
+ assert(unsigned(flip_mask(0x63, 32)) == 99);
+ assert(unsigned(flip_mask(0x64, 32)) == 100);
+ assert(unsigned(flip_mask(0x65, 32)) == 101);
+ assert(unsigned(flip_mask(0x66, 32)) == 102);
+ assert(unsigned(flip_mask(0x68, 32)) == 104);
+ assert(unsigned(flip_mask(0x69, 32)) == 105);
+ assert(unsigned(flip_mask(0x6b7c8d9f, 32)) == 1803324831);
+ assert(unsigned(flip_mask(0x6c, 32)) == 108);
+ assert(unsigned(flip_mask(0x6d, 32)) == 109);
+ assert(unsigned(flip_mask(0x6e, 32)) == 110);
+ assert(unsigned(flip_mask(0x6f, 32)) == 111);
+ assert(unsigned(flip_mask(0x7, 32)) == 7);
+ assert(unsigned(flip_mask(0x70, 32)) == 112);
+ assert(unsigned(flip_mask(0x72, 32)) == 114);
+ assert(unsigned(flip_mask(0x73, 32)) == 115);
+ assert(unsigned(flip_mask(0x74, 32)) == 116);
+ assert(unsigned(flip_mask(0x75, 32)) == 117);
+ assert(unsigned(flip_mask(0x76, 32)) == 118);
+ assert(unsigned(flip_mask(0x764c321, 32)) == 124044065);
+ assert(unsigned(flip_mask(0x78, 32)) == 120);
+ assert(unsigned(flip_mask(0x7ffe, 32)) == 32766);
+ assert(unsigned(flip_mask(0x7fff, 32)) == 32767);
+ assert(unsigned(flip_mask(0x7fff7fff, 32)) == 2147450879);
+ assert(unsigned(flip_mask(0x7ffffffe, 32)) == 2147483646);
+ assert(unsigned(flip_mask(0x7fffffff, 32)) == 2147483647);
+ assert(unsigned(flip_mask(0x8, 32)) == 8);
+ assert(unsigned(flip_mask(0x8000, 32)) == 32768);
+ assert(unsigned(flip_mask(0x80000000, 32)) == 2147483648);
+ assert(unsigned(flip_mask(0x80000001, 32)) == 2147483649);
+ assert(unsigned(flip_mask(0x80000002, 32)) == 2147483650);
+ assert(unsigned(flip_mask(0x80000003, 32)) == 2147483651);
+ assert(unsigned(flip_mask(0x80008000, 32)) == 2147516416);
+ assert(unsigned(flip_mask(0x8001, 32)) == 32769);
+ assert(unsigned(flip_mask(0x8002, 32)) == 32770);
+ assert(unsigned(flip_mask(0x8003, 32)) == 32771);
+ assert(unsigned(flip_mask(0x87654321, 32)) == 2271560481);
+ assert(unsigned(flip_mask(0x8899aabb, 32)) == 2291772091);
+ assert(unsigned(flip_mask(0x89ab, 32)) == 35243);
+ assert(unsigned(flip_mask(0x8fffffff, 32)) == 2415919103);
+ assert(unsigned(flip_mask(0x9, 32)) == 9);
+ assert(unsigned(flip_mask(0x90000000, 32)) == 2415919104);
+ assert(unsigned(flip_mask(0x90000001, 32)) == 2415919105);
+ assert(unsigned(flip_mask(0x9234567a, 32)) == 2452903546);
+ assert(unsigned(flip_mask(0x950, 32)) == 2384);
+ assert(unsigned(flip_mask(0x9be0, 32)) == 39904);
+ assert(unsigned(flip_mask(0xa, 32)) == 10);
+ assert(unsigned(flip_mask(0xa5a5, 32)) == 42405);
+ assert(unsigned(flip_mask(0xa5a5a5a5, 32)) == 2779096485);
+ assert(unsigned(flip_mask(0xb, 32)) == 11);
+ assert(unsigned(flip_mask(0xc, 32)) == 12);
+ assert(unsigned(flip_mask(0xd, 32)) == 13);
+ assert(unsigned(flip_mask(0xe, 32)) == 14);
+ assert(unsigned(flip_mask(0xe0000000, 32)) == 3758096384);
+ assert(unsigned(flip_mask(0xf, 32)) == 15);
+ assert(unsigned(flip_mask(0xff, 32)) == 255);
+ assert(unsigned(flip_mask(0xfffe, 32)) == 65534);
+ assert(unsigned(flip_mask(0xffff, 32)) == 65535);
+ assert(unsigned(flip_mask(0xffff8000, 32)) == 4294934528);
+ assert(unsigned(flip_mask(0xffffff00, 32)) == 4294967040);
+ assert(unsigned(flip_mask(0xffffff87, 32)) == 4294967175);
+ assert(unsigned(flip_mask(0xffffff8c, 32)) == 4294967180);
+ assert(unsigned(flip_mask(0xffffff93, 32)) == 4294967187);
+ assert(unsigned(flip_mask(0xffffff9b, 32)) == 4294967195);
+ assert(unsigned(flip_mask(0xffffffa7, 32)) == 4294967207);
+ assert(unsigned(flip_mask(0xffffffd0, 32)) == 4294967248);
+ assert(unsigned(flip_mask(0xffffffd8, 32)) == 4294967256);
+ assert(unsigned(flip_mask(0xffffffda, 32)) == 4294967258);
+ assert(unsigned(flip_mask(0xffffffdf, 32)) == 4294967263);
+ assert(unsigned(flip_mask(0xffffffe0, 32)) == 4294967264);
+ assert(unsigned(flip_mask(0xffffffe1, 32)) == 4294967265);
+ assert(unsigned(flip_mask(0xffffffe2, 32)) == 4294967266);
+ assert(unsigned(flip_mask(0xffffffe3, 32)) == 4294967267);
+ assert(unsigned(flip_mask(0xffffffe4, 32)) == 4294967268);
+ assert(unsigned(flip_mask(0xffffffe5, 32)) == 4294967269);
+ assert(unsigned(flip_mask(0xffffffe6, 32)) == 4294967270);
+ assert(unsigned(flip_mask(0xffffffe7, 32)) == 4294967271);
+ assert(unsigned(flip_mask(0xffffffe8, 32)) == 4294967272);
+ assert(unsigned(flip_mask(0xffffffe9, 32)) == 4294967273);
+ assert(unsigned(flip_mask(0xffffffea, 32)) == 4294967274);
+ assert(unsigned(flip_mask(0xffffffeb, 32)) == 4294967275);
+ assert(unsigned(flip_mask(0xffffffec, 32)) == 4294967276);
+ assert(unsigned(flip_mask(0xffffffed, 32)) == 4294967277);
+ assert(unsigned(flip_mask(0xffffffee, 32)) == 4294967278);
+ assert(unsigned(flip_mask(0xffffffef, 32)) == 4294967279);
+ assert(unsigned(flip_mask(0xfffffff, 32)) == 268435455);
+ assert(unsigned(flip_mask(0xfffffff0, 32)) == 4294967280);
+ assert(unsigned(flip_mask(0xfffffff1, 32)) == 4294967281);
+ assert(unsigned(flip_mask(0xfffffff2, 32)) == 4294967282);
+ assert(unsigned(flip_mask(0xfffffff3, 32)) == 4294967283);
+ assert(unsigned(flip_mask(0xfffffff4, 32)) == 4294967284);
+ assert(unsigned(flip_mask(0xfffffff5, 32)) == 4294967285);
+ assert(unsigned(flip_mask(0xfffffff6, 32)) == 4294967286);
+ assert(unsigned(flip_mask(0xfffffff7, 32)) == 4294967287);
+ assert(unsigned(flip_mask(0xfffffff8, 32)) == 4294967288);
+ assert(unsigned(flip_mask(0xfffffff9, 32)) == 4294967289);
+ assert(unsigned(flip_mask(0xfffffffa, 32)) == 4294967290);
+ assert(unsigned(flip_mask(0xfffffffb, 32)) == 4294967291);
+ assert(unsigned(flip_mask(0xfffffffc, 32)) == 4294967292);
+ assert(unsigned(flip_mask(0xfffffffd, 32)) == 4294967293);
+ assert(unsigned(flip_mask(0xfffffffe, 32)) == 4294967294);
+ assert(unsigned(flip_mask(0xffffffff, 32)) == 4294967295);
+ assert(unsigned(flip_mask(0x0, 4)) == 0);
+ assert(unsigned(flip_mask(0x1, 4)) == 1);
+ assert(unsigned(flip_mask(0x2, 4)) == 2);
+ assert(unsigned(flip_mask(0x3, 4)) == 3);
+ assert(unsigned(flip_mask(0x4, 4)) == 4);
+ assert(unsigned(flip_mask(0x5, 4)) == 5);
+ assert(unsigned(flip_mask(0x6, 4)) == 6);
+ assert(unsigned(flip_mask(0x7, 4)) == 7);
+ assert(unsigned(flip_mask(0x8, 4)) == 8);
+ assert(unsigned(flip_mask(0xa, 4)) == 10);
+ assert(unsigned(flip_mask(0xc, 4)) == 12);
+ assert(unsigned(flip_mask(0xd, 4)) == 13);
+ assert(unsigned(flip_mask(0xe, 4)) == 14);
+ assert(unsigned(flip_mask(0x0, 5)) == 0);
+ assert(unsigned(flip_mask(0x1, 5)) == 1);
+ assert(unsigned(flip_mask(0x10, 5)) == 16);
+ assert(unsigned(flip_mask(0x11, 5)) == 17);
+ assert(unsigned(flip_mask(0x12, 5)) == 18);
+ assert(unsigned(flip_mask(0x13, 5)) == 19);
+ assert(unsigned(flip_mask(0x14, 5)) == 20);
+ assert(unsigned(flip_mask(0x15, 5)) == 21);
+ assert(unsigned(flip_mask(0x16, 5)) == 22);
+ assert(unsigned(flip_mask(0x17, 5)) == 23);
+ assert(unsigned(flip_mask(0x18, 5)) == 24);
+ assert(unsigned(flip_mask(0x19, 5)) == 25);
+ assert(unsigned(flip_mask(0x1a, 5)) == 26);
+ assert(unsigned(flip_mask(0x1b, 5)) == 27);
+ assert(unsigned(flip_mask(0x1c, 5)) == 28);
+ assert(unsigned(flip_mask(0x1d, 5)) == 29);
+ assert(unsigned(flip_mask(0x1e, 5)) == 30);
+ assert(unsigned(flip_mask(0x1f, 5)) == 31);
+ assert(unsigned(flip_mask(0x2, 5)) == 2);
+ assert(unsigned(flip_mask(0x3, 5)) == 3);
+ assert(unsigned(flip_mask(0x4, 5)) == 4);
+ assert(unsigned(flip_mask(0x5, 5)) == 5);
+ assert(unsigned(flip_mask(0x6, 5)) == 6);
+ assert(unsigned(flip_mask(0x7, 5)) == 7);
+ assert(unsigned(flip_mask(0x8, 5)) == 8);
+ assert(unsigned(flip_mask(0x9, 5)) == 9);
+ assert(unsigned(flip_mask(0xa, 5)) == 10);
+ assert(unsigned(flip_mask(0xb, 5)) == 11);
+ assert(unsigned(flip_mask(0xc, 5)) == 12);
+ assert(unsigned(flip_mask(0xd, 5)) == 13);
+ assert(unsigned(flip_mask(0xe, 5)) == 14);
+ assert(unsigned(flip_mask(0xf, 5)) == 15);
+ assert(unsigned(flip_mask(0x0, 52)) == 0);
+ assert(unsigned(flip_mask(0x101000, 52)) == 1052672);
+ assert(unsigned(flip_mask(0x101004, 52)) == 1052676);
+ assert(unsigned(flip_mask(0x101008, 52)) == 1052680);
+ assert(unsigned(flip_mask(0x10100c, 52)) == 1052684);
+ assert(unsigned(flip_mask(0x101010, 52)) == 1052688);
+ assert(unsigned(flip_mask(0x101014, 52)) == 1052692);
+ assert(unsigned(flip_mask(0x101018, 52)) == 1052696);
+ assert(unsigned(flip_mask(0x10101c, 52)) == 1052700);
+ assert(unsigned(flip_mask(0x101020, 52)) == 1052704);
+ assert(unsigned(flip_mask(0x101024, 52)) == 1052708);
+ assert(unsigned(flip_mask(0x101028, 52)) == 1052712);
+ assert(unsigned(flip_mask(0x10102c, 52)) == 1052716);
+ assert(unsigned(flip_mask(0x101030, 52)) == 1052720);
+ assert(unsigned(flip_mask(0x101034, 52)) == 1052724);
+ assert(unsigned(flip_mask(0x101038, 52)) == 1052728);
+ assert(unsigned(flip_mask(0x10103c, 52)) == 1052732);
+ assert(unsigned(flip_mask(0x101040, 52)) == 1052736);
+ assert(unsigned(flip_mask(0x101044, 52)) == 1052740);
+ assert(unsigned(flip_mask(0x101048, 52)) == 1052744);
+ assert(unsigned(flip_mask(0x10104c, 52)) == 1052748);
+ assert(unsigned(flip_mask(0x101050, 52)) == 1052752);
+ assert(unsigned(flip_mask(0x101054, 52)) == 1052756);
+ assert(unsigned(flip_mask(0x101058, 52)) == 1052760);
+ assert(unsigned(flip_mask(0x10105c, 52)) == 1052764);
+ assert(unsigned(flip_mask(0x101060, 52)) == 1052768);
+ assert(unsigned(flip_mask(0x101064, 52)) == 1052772);
+ assert(unsigned(flip_mask(0x101068, 52)) == 1052776);
+ assert(unsigned(flip_mask(0x10106c, 52)) == 1052780);
+ assert(unsigned(flip_mask(0x101070, 52)) == 1052784);
+ assert(unsigned(flip_mask(0x101074, 52)) == 1052788);
+ assert(unsigned(flip_mask(0x101078, 52)) == 1052792);
+ assert(unsigned(flip_mask(0x10107c, 52)) == 1052796);
+ assert(unsigned(flip_mask(0x101080, 52)) == 1052800);
+ assert(unsigned(flip_mask(0x101088, 52)) == 1052808);
+ assert(unsigned(flip_mask(0x10108c, 52)) == 1052812);
+ assert(unsigned(flip_mask(0x101090, 52)) == 1052816);
+ assert(unsigned(flip_mask(0x101094, 52)) == 1052820);
+ assert(unsigned(flip_mask(0x101098, 52)) == 1052824);
+ assert(unsigned(flip_mask(0x10109c, 52)) == 1052828);
+ assert(unsigned(flip_mask(0x1010a0, 52)) == 1052832);
+ assert(unsigned(flip_mask(0x1010ac, 52)) == 1052844);
+ assert(unsigned(flip_mask(0x1010b0, 52)) == 1052848);
+ assert(unsigned(flip_mask(0x1010b4, 52)) == 1052852);
+ assert(unsigned(flip_mask(0x1010b8, 52)) == 1052856);
+ assert(unsigned(flip_mask(0x1010c0, 52)) == 1052864);
+ assert(unsigned(flip_mask(0x1010c4, 52)) == 1052868);
+ assert(unsigned(flip_mask(0x1010c8, 52)) == 1052872);
+ assert(unsigned(flip_mask(0x1010cc, 52)) == 1052876);
+ assert(unsigned(flip_mask(0x1010d0, 52)) == 1052880);
+ assert(unsigned(flip_mask(0x1010d4, 52)) == 1052884);
+ assert(unsigned(flip_mask(0x1010d8, 52)) == 1052888);
+ assert(unsigned(flip_mask(0x1010dc, 52)) == 1052892);
+ assert(unsigned(flip_mask(0x1010e0, 52)) == 1052896);
+ assert(unsigned(flip_mask(0x1010e4, 52)) == 1052900);
+ assert(unsigned(flip_mask(0x1010e8, 52)) == 1052904);
+ assert(unsigned(flip_mask(0x1010ec, 52)) == 1052908);
+ assert(unsigned(flip_mask(0x1010f0, 52)) == 1052912);
+ assert(unsigned(flip_mask(0x1010f4, 52)) == 1052916);
+ assert(unsigned(flip_mask(0x1010f8, 52)) == 1052920);
+ assert(unsigned(flip_mask(0x1010fc, 52)) == 1052924);
+ assert(unsigned(flip_mask(0x101100, 52)) == 1052928);
+ assert(unsigned(flip_mask(0x101104, 52)) == 1052932);
+ assert(unsigned(flip_mask(0x101108, 52)) == 1052936);
+ assert(unsigned(flip_mask(0x10110c, 52)) == 1052940);
+ assert(unsigned(flip_mask(0x101110, 52)) == 1052944);
+ assert(unsigned(flip_mask(0x101114, 52)) == 1052948);
+ assert(unsigned(flip_mask(0x101118, 52)) == 1052952);
+ assert(unsigned(flip_mask(0x10111c, 52)) == 1052956);
+ assert(unsigned(flip_mask(0x101120, 52)) == 1052960);
+ assert(unsigned(flip_mask(0x101124, 52)) == 1052964);
+ assert(unsigned(flip_mask(0x101128, 52)) == 1052968);
+ assert(unsigned(flip_mask(0x10112c, 52)) == 1052972);
+ assert(unsigned(flip_mask(0x101130, 52)) == 1052976);
+ assert(unsigned(flip_mask(0x101134, 52)) == 1052980);
+ assert(unsigned(flip_mask(0x101138, 52)) == 1052984);
+ assert(unsigned(flip_mask(0x10113c, 52)) == 1052988);
+ assert(unsigned(flip_mask(0x101140, 52)) == 1052992);
+ assert(unsigned(flip_mask(0x101144, 52)) == 1052996);
+ assert(unsigned(flip_mask(0x101148, 52)) == 1053000);
+ assert(unsigned(flip_mask(0x10114c, 52)) == 1053004);
+ assert(unsigned(flip_mask(0x101150, 52)) == 1053008);
+ assert(unsigned(flip_mask(0x101154, 52)) == 1053012);
+ assert(unsigned(flip_mask(0x101158, 52)) == 1053016);
+ assert(unsigned(flip_mask(0x10115c, 52)) == 1053020);
+ assert(unsigned(flip_mask(0x101160, 52)) == 1053024);
+ assert(unsigned(flip_mask(0x101164, 52)) == 1053028);
+ assert(unsigned(flip_mask(0x101168, 52)) == 1053032);
+ assert(unsigned(flip_mask(0x10116c, 52)) == 1053036);
+ assert(unsigned(flip_mask(0x101170, 52)) == 1053040);
+ assert(unsigned(flip_mask(0x101174, 52)) == 1053044);
+ assert(unsigned(flip_mask(0x101178, 52)) == 1053048);
+ assert(unsigned(flip_mask(0x10117c, 52)) == 1053052);
+ assert(unsigned(flip_mask(0x101180, 52)) == 1053056);
+ assert(unsigned(flip_mask(0x101184, 52)) == 1053060);
+ assert(unsigned(flip_mask(0x101188, 52)) == 1053064);
+ assert(unsigned(flip_mask(0x10118c, 52)) == 1053068);
+ assert(unsigned(flip_mask(0x101190, 52)) == 1053072);
+ assert(unsigned(flip_mask(0x101194, 52)) == 1053076);
+ assert(unsigned(flip_mask(0x101198, 52)) == 1053080);
+ assert(unsigned(flip_mask(0x10119c, 52)) == 1053084);
+ assert(unsigned(flip_mask(0x1011a0, 52)) == 1053088);
+ assert(unsigned(flip_mask(0x1011a4, 52)) == 1053092);
+ assert(unsigned(flip_mask(0x1011a8, 52)) == 1053096);
+ assert(unsigned(flip_mask(0x1011ac, 52)) == 1053100);
+ assert(unsigned(flip_mask(0x1011b0, 52)) == 1053104);
+ assert(unsigned(flip_mask(0x1011b4, 52)) == 1053108);
+ assert(unsigned(flip_mask(0x1011b8, 52)) == 1053112);
+ assert(unsigned(flip_mask(0x101200, 52)) == 1053184);
+ assert(unsigned(flip_mask(0x101204, 52)) == 1053188);
+ assert(unsigned(flip_mask(0x101208, 52)) == 1053192);
+ assert(unsigned(flip_mask(0x10120c, 52)) == 1053196);
+ assert(unsigned(flip_mask(0x101210, 52)) == 1053200);
+ assert(unsigned(flip_mask(0x101214, 52)) == 1053204);
+ assert(unsigned(flip_mask(0x101218, 52)) == 1053208);
+ assert(unsigned(flip_mask(0x10121c, 52)) == 1053212);
+ assert(unsigned(flip_mask(0x101220, 52)) == 1053216);
+ assert(unsigned(flip_mask(0x101224, 52)) == 1053220);
+ assert(unsigned(flip_mask(0x101228, 52)) == 1053224);
+ assert(unsigned(flip_mask(0x10122c, 52)) == 1053228);
+ assert(unsigned(flip_mask(0x101230, 52)) == 1053232);
+ assert(unsigned(flip_mask(0x101234, 52)) == 1053236);
+ assert(unsigned(flip_mask(0x101238, 52)) == 1053240);
+ assert(unsigned(flip_mask(0x101240, 52)) == 1053248);
+ assert(unsigned(flip_mask(0x101248, 52)) == 1053256);
+ assert(unsigned(flip_mask(0x101250, 52)) == 1053264);
+ assert(unsigned(flip_mask(0x101258, 52)) == 1053272);
+ assert(unsigned(flip_mask(0x101260, 52)) == 1053280);
+ assert(unsigned(flip_mask(0x101270, 52)) == 1053296);
+ assert(unsigned(flip_mask(0x101278, 52)) == 1053304);
+ assert(unsigned(flip_mask(0x101280, 52)) == 1053312);
+ assert(unsigned(flip_mask(0x102000, 52)) == 1056768);
+ assert(unsigned(flip_mask(0x102004, 52)) == 1056772);
+ assert(unsigned(flip_mask(0x102008, 52)) == 1056776);
+ assert(unsigned(flip_mask(0x10200c, 52)) == 1056780);
+ assert(unsigned(flip_mask(0x102010, 52)) == 1056784);
+ assert(unsigned(flip_mask(0x102014, 52)) == 1056788);
+ assert(unsigned(flip_mask(0x102018, 52)) == 1056792);
+ assert(unsigned(flip_mask(0x10201c, 52)) == 1056796);
+ assert(unsigned(flip_mask(0x102020, 52)) == 1056800);
+ assert(unsigned(flip_mask(0x102024, 52)) == 1056804);
+ assert(unsigned(flip_mask(0x102028, 52)) == 1056808);
+ assert(unsigned(flip_mask(0x10202c, 52)) == 1056812);
+ assert(unsigned(flip_mask(0x102030, 52)) == 1056816);
+ assert(unsigned(flip_mask(0x102034, 52)) == 1056820);
+ assert(unsigned(flip_mask(0x102038, 52)) == 1056824);
+ assert(unsigned(flip_mask(0x10203c, 52)) == 1056828);
+ assert(unsigned(flip_mask(0x102040, 52)) == 1056832);
+ assert(unsigned(flip_mask(0x102044, 52)) == 1056836);
+ assert(unsigned(flip_mask(0x102048, 52)) == 1056840);
+ assert(unsigned(flip_mask(0x10204c, 52)) == 1056844);
+ assert(unsigned(flip_mask(0x102050, 52)) == 1056848);
+ assert(unsigned(flip_mask(0x102054, 52)) == 1056852);
+ assert(unsigned(flip_mask(0x102058, 52)) == 1056856);
+ assert(unsigned(flip_mask(0x10205c, 52)) == 1056860);
+ assert(unsigned(flip_mask(0x102060, 52)) == 1056864);
+ assert(unsigned(flip_mask(0x102064, 52)) == 1056868);
+ assert(unsigned(flip_mask(0x102068, 52)) == 1056872);
+ assert(unsigned(flip_mask(0x10206c, 52)) == 1056876);
+ assert(unsigned(flip_mask(0x102070, 52)) == 1056880);
+ assert(unsigned(flip_mask(0x102074, 52)) == 1056884);
+ assert(unsigned(flip_mask(0x102078, 52)) == 1056888);
+ assert(unsigned(flip_mask(0x10207c, 52)) == 1056892);
+ assert(unsigned(flip_mask(0x102080, 52)) == 1056896);
+ assert(unsigned(flip_mask(0x102084, 52)) == 1056900);
+ assert(unsigned(flip_mask(0x102088, 52)) == 1056904);
+ assert(unsigned(flip_mask(0x10208c, 52)) == 1056908);
+ assert(unsigned(flip_mask(0x102090, 52)) == 1056912);
+ assert(unsigned(flip_mask(0x102098, 52)) == 1056920);
+ assert(unsigned(flip_mask(0x10209c, 52)) == 1056924);
+ assert(unsigned(flip_mask(0x1020a0, 52)) == 1056928);
+ assert(unsigned(flip_mask(0x1020a4, 52)) == 1056932);
+ assert(unsigned(flip_mask(0x1020a8, 52)) == 1056936);
+ assert(unsigned(flip_mask(0x1020ac, 52)) == 1056940);
+ assert(unsigned(flip_mask(0x1020b0, 52)) == 1056944);
+ assert(unsigned(flip_mask(0x1020bc, 52)) == 1056956);
+ assert(unsigned(flip_mask(0x1020c0, 52)) == 1056960);
+ assert(unsigned(flip_mask(0x1020c4, 52)) == 1056964);
+ assert(unsigned(flip_mask(0x1020c8, 52)) == 1056968);
+ assert(unsigned(flip_mask(0x1020d0, 52)) == 1056976);
+ assert(unsigned(flip_mask(0x1020d4, 52)) == 1056980);
+ assert(unsigned(flip_mask(0x1020d8, 52)) == 1056984);
+ assert(unsigned(flip_mask(0x1020dc, 52)) == 1056988);
+ assert(unsigned(flip_mask(0x1020e0, 52)) == 1056992);
+ assert(unsigned(flip_mask(0x1020e4, 52)) == 1056996);
+ assert(unsigned(flip_mask(0x1020e8, 52)) == 1057000);
+ assert(unsigned(flip_mask(0x1020ec, 52)) == 1057004);
+ assert(unsigned(flip_mask(0x1020f0, 52)) == 1057008);
+ assert(unsigned(flip_mask(0x1020f4, 52)) == 1057012);
+ assert(unsigned(flip_mask(0x1020f8, 52)) == 1057016);
+ assert(unsigned(flip_mask(0x1020fc, 52)) == 1057020);
+ assert(unsigned(flip_mask(0x102100, 52)) == 1057024);
+ assert(unsigned(flip_mask(0x102104, 52)) == 1057028);
+ assert(unsigned(flip_mask(0x102108, 52)) == 1057032);
+ assert(unsigned(flip_mask(0x10210c, 52)) == 1057036);
+ assert(unsigned(flip_mask(0x102110, 52)) == 1057040);
+ assert(unsigned(flip_mask(0x102114, 52)) == 1057044);
+ assert(unsigned(flip_mask(0x102118, 52)) == 1057048);
+ assert(unsigned(flip_mask(0x10211c, 52)) == 1057052);
+ assert(unsigned(flip_mask(0x102120, 52)) == 1057056);
+ assert(unsigned(flip_mask(0x102124, 52)) == 1057060);
+ assert(unsigned(flip_mask(0x102128, 52)) == 1057064);
+ assert(unsigned(flip_mask(0x10212c, 52)) == 1057068);
+ assert(unsigned(flip_mask(0x102130, 52)) == 1057072);
+ assert(unsigned(flip_mask(0x102134, 52)) == 1057076);
+ assert(unsigned(flip_mask(0x102138, 52)) == 1057080);
+ assert(unsigned(flip_mask(0x10213c, 52)) == 1057084);
+ assert(unsigned(flip_mask(0x102140, 52)) == 1057088);
+ assert(unsigned(flip_mask(0x102144, 52)) == 1057092);
+ assert(unsigned(flip_mask(0x102148, 52)) == 1057096);
+ assert(unsigned(flip_mask(0x10214c, 52)) == 1057100);
+ assert(unsigned(flip_mask(0x102150, 52)) == 1057104);
+ assert(unsigned(flip_mask(0x102154, 52)) == 1057108);
+ assert(unsigned(flip_mask(0x102158, 52)) == 1057112);
+ assert(unsigned(flip_mask(0x10215c, 52)) == 1057116);
+ assert(unsigned(flip_mask(0x102160, 52)) == 1057120);
+ assert(unsigned(flip_mask(0x102164, 52)) == 1057124);
+ assert(unsigned(flip_mask(0x102168, 52)) == 1057128);
+ assert(unsigned(flip_mask(0x10216c, 52)) == 1057132);
+ assert(unsigned(flip_mask(0x102170, 52)) == 1057136);
+ assert(unsigned(flip_mask(0x102174, 52)) == 1057140);
+ assert(unsigned(flip_mask(0x102178, 52)) == 1057144);
+ assert(unsigned(flip_mask(0x10217c, 52)) == 1057148);
+ assert(unsigned(flip_mask(0x102180, 52)) == 1057152);
+ assert(unsigned(flip_mask(0x102184, 52)) == 1057156);
+ assert(unsigned(flip_mask(0x102188, 52)) == 1057160);
+ assert(unsigned(flip_mask(0x10218c, 52)) == 1057164);
+ assert(unsigned(flip_mask(0x102190, 52)) == 1057168);
+ assert(unsigned(flip_mask(0x102194, 52)) == 1057172);
+ assert(unsigned(flip_mask(0x102198, 52)) == 1057176);
+ assert(unsigned(flip_mask(0x10219c, 52)) == 1057180);
+ assert(unsigned(flip_mask(0x1021a0, 52)) == 1057184);
+ assert(unsigned(flip_mask(0x1021a4, 52)) == 1057188);
+ assert(unsigned(flip_mask(0x1021a8, 52)) == 1057192);
+ assert(unsigned(flip_mask(0x1021ac, 52)) == 1057196);
+ assert(unsigned(flip_mask(0x1021b0, 52)) == 1057200);
+ assert(unsigned(flip_mask(0x1021b4, 52)) == 1057204);
+ assert(unsigned(flip_mask(0x1021b8, 52)) == 1057208);
+ assert(unsigned(flip_mask(0x102200, 52)) == 1057280);
+ assert(unsigned(flip_mask(0x102204, 52)) == 1057284);
+ assert(unsigned(flip_mask(0x102208, 52)) == 1057288);
+ assert(unsigned(flip_mask(0x10220c, 52)) == 1057292);
+ assert(unsigned(flip_mask(0x102210, 52)) == 1057296);
+ assert(unsigned(flip_mask(0x102214, 52)) == 1057300);
+ assert(unsigned(flip_mask(0x102218, 52)) == 1057304);
+ assert(unsigned(flip_mask(0x10221c, 52)) == 1057308);
+ assert(unsigned(flip_mask(0x102220, 52)) == 1057312);
+ assert(unsigned(flip_mask(0x102224, 52)) == 1057316);
+ assert(unsigned(flip_mask(0x102228, 52)) == 1057320);
+ assert(unsigned(flip_mask(0x10222c, 52)) == 1057324);
+ assert(unsigned(flip_mask(0x102230, 52)) == 1057328);
+ assert(unsigned(flip_mask(0x102234, 52)) == 1057332);
+ assert(unsigned(flip_mask(0x102238, 52)) == 1057336);
+ assert(unsigned(flip_mask(0x102240, 52)) == 1057344);
+ assert(unsigned(flip_mask(0x102248, 52)) == 1057352);
+ assert(unsigned(flip_mask(0x102250, 52)) == 1057360);
+ assert(unsigned(flip_mask(0x102258, 52)) == 1057368);
+ assert(unsigned(flip_mask(0x102260, 52)) == 1057376);
+ assert(unsigned(flip_mask(0x102270, 52)) == 1057392);
+ assert(unsigned(flip_mask(0x102278, 52)) == 1057400);
+ assert(unsigned(flip_mask(0x102280, 52)) == 1057408);
+ assert(unsigned(flip_mask(0x10300000, 52)) == 271581184);
+ assert(unsigned(flip_mask(0x10300004, 52)) == 271581188);
+ assert(unsigned(flip_mask(0x10300008, 52)) == 271581192);
+ assert(unsigned(flip_mask(0x10300010, 52)) == 271581200);
+ assert(unsigned(flip_mask(0x104000, 52)) == 1064960);
+ assert(unsigned(flip_mask(0x104004, 52)) == 1064964);
+ assert(unsigned(flip_mask(0x104008, 52)) == 1064968);
+ assert(unsigned(flip_mask(0x10400c, 52)) == 1064972);
+ assert(unsigned(flip_mask(0x104010, 52)) == 1064976);
+ assert(unsigned(flip_mask(0x104014, 52)) == 1064980);
+ assert(unsigned(flip_mask(0x104018, 52)) == 1064984);
+ assert(unsigned(flip_mask(0x10401c, 52)) == 1064988);
+ assert(unsigned(flip_mask(0x104020, 52)) == 1064992);
+ assert(unsigned(flip_mask(0x104024, 52)) == 1064996);
+ assert(unsigned(flip_mask(0x104028, 52)) == 1065000);
+ assert(unsigned(flip_mask(0x10402c, 52)) == 1065004);
+ assert(unsigned(flip_mask(0x104030, 52)) == 1065008);
+ assert(unsigned(flip_mask(0x104034, 52)) == 1065012);
+ assert(unsigned(flip_mask(0x104038, 52)) == 1065016);
+ assert(unsigned(flip_mask(0x10403c, 52)) == 1065020);
+ assert(unsigned(flip_mask(0x104040, 52)) == 1065024);
+ assert(unsigned(flip_mask(0x104044, 52)) == 1065028);
+ assert(unsigned(flip_mask(0x104048, 52)) == 1065032);
+ assert(unsigned(flip_mask(0x10404c, 52)) == 1065036);
+ assert(unsigned(flip_mask(0x104050, 52)) == 1065040);
+ assert(unsigned(flip_mask(0x104054, 52)) == 1065044);
+ assert(unsigned(flip_mask(0x104058, 52)) == 1065048);
+ assert(unsigned(flip_mask(0x10405c, 52)) == 1065052);
+ assert(unsigned(flip_mask(0x104060, 52)) == 1065056);
+ assert(unsigned(flip_mask(0x104064, 52)) == 1065060);
+ assert(unsigned(flip_mask(0x104068, 52)) == 1065064);
+ assert(unsigned(flip_mask(0x10406c, 52)) == 1065068);
+ assert(unsigned(flip_mask(0x104070, 52)) == 1065072);
+ assert(unsigned(flip_mask(0x104074, 52)) == 1065076);
+ assert(unsigned(flip_mask(0x104078, 52)) == 1065080);
+ assert(unsigned(flip_mask(0x10407c, 52)) == 1065084);
+ assert(unsigned(flip_mask(0x104080, 52)) == 1065088);
+ assert(unsigned(flip_mask(0x104088, 52)) == 1065096);
+ assert(unsigned(flip_mask(0x10408c, 52)) == 1065100);
+ assert(unsigned(flip_mask(0x104090, 52)) == 1065104);
+ assert(unsigned(flip_mask(0x104094, 52)) == 1065108);
+ assert(unsigned(flip_mask(0x104098, 52)) == 1065112);
+ assert(unsigned(flip_mask(0x10409c, 52)) == 1065116);
+ assert(unsigned(flip_mask(0x1040a0, 52)) == 1065120);
+ assert(unsigned(flip_mask(0x1040ac, 52)) == 1065132);
+ assert(unsigned(flip_mask(0x1040b0, 52)) == 1065136);
+ assert(unsigned(flip_mask(0x1040b4, 52)) == 1065140);
+ assert(unsigned(flip_mask(0x1040b8, 52)) == 1065144);
+ assert(unsigned(flip_mask(0x1040c0, 52)) == 1065152);
+ assert(unsigned(flip_mask(0x1040c4, 52)) == 1065156);
+ assert(unsigned(flip_mask(0x1040c8, 52)) == 1065160);
+ assert(unsigned(flip_mask(0x1040cc, 52)) == 1065164);
+ assert(unsigned(flip_mask(0x1040d0, 52)) == 1065168);
+ assert(unsigned(flip_mask(0x1040d4, 52)) == 1065172);
+ assert(unsigned(flip_mask(0x1040d8, 52)) == 1065176);
+ assert(unsigned(flip_mask(0x1040dc, 52)) == 1065180);
+ assert(unsigned(flip_mask(0x1040e0, 52)) == 1065184);
+ assert(unsigned(flip_mask(0x1040e4, 52)) == 1065188);
+ assert(unsigned(flip_mask(0x1040e8, 52)) == 1065192);
+ assert(unsigned(flip_mask(0x1040ec, 52)) == 1065196);
+ assert(unsigned(flip_mask(0x1040f0, 52)) == 1065200);
+ assert(unsigned(flip_mask(0x1040f4, 52)) == 1065204);
+ assert(unsigned(flip_mask(0x1040f8, 52)) == 1065208);
+ assert(unsigned(flip_mask(0x1040fc, 52)) == 1065212);
+ assert(unsigned(flip_mask(0x104100, 52)) == 1065216);
+ assert(unsigned(flip_mask(0x104104, 52)) == 1065220);
+ assert(unsigned(flip_mask(0x104108, 52)) == 1065224);
+ assert(unsigned(flip_mask(0x10410c, 52)) == 1065228);
+ assert(unsigned(flip_mask(0x104110, 52)) == 1065232);
+ assert(unsigned(flip_mask(0x104114, 52)) == 1065236);
+ assert(unsigned(flip_mask(0x104118, 52)) == 1065240);
+ assert(unsigned(flip_mask(0x10411c, 52)) == 1065244);
+ assert(unsigned(flip_mask(0x104120, 52)) == 1065248);
+ assert(unsigned(flip_mask(0x104124, 52)) == 1065252);
+ assert(unsigned(flip_mask(0x104128, 52)) == 1065256);
+ assert(unsigned(flip_mask(0x10412c, 52)) == 1065260);
+ assert(unsigned(flip_mask(0x104130, 52)) == 1065264);
+ assert(unsigned(flip_mask(0x104134, 52)) == 1065268);
+ assert(unsigned(flip_mask(0x104138, 52)) == 1065272);
+ assert(unsigned(flip_mask(0x10413c, 52)) == 1065276);
+ assert(unsigned(flip_mask(0x104140, 52)) == 1065280);
+ assert(unsigned(flip_mask(0x104144, 52)) == 1065284);
+ assert(unsigned(flip_mask(0x104148, 52)) == 1065288);
+ assert(unsigned(flip_mask(0x10414c, 52)) == 1065292);
+ assert(unsigned(flip_mask(0x104150, 52)) == 1065296);
+ assert(unsigned(flip_mask(0x104154, 52)) == 1065300);
+ assert(unsigned(flip_mask(0x104158, 52)) == 1065304);
+ assert(unsigned(flip_mask(0x10415c, 52)) == 1065308);
+ assert(unsigned(flip_mask(0x104160, 52)) == 1065312);
+ assert(unsigned(flip_mask(0x104164, 52)) == 1065316);
+ assert(unsigned(flip_mask(0x104168, 52)) == 1065320);
+ assert(unsigned(flip_mask(0x10416c, 52)) == 1065324);
+ assert(unsigned(flip_mask(0x104170, 52)) == 1065328);
+ assert(unsigned(flip_mask(0x104174, 52)) == 1065332);
+ assert(unsigned(flip_mask(0x104178, 52)) == 1065336);
+ assert(unsigned(flip_mask(0x10417c, 52)) == 1065340);
+ assert(unsigned(flip_mask(0x104180, 52)) == 1065344);
+ assert(unsigned(flip_mask(0x104184, 52)) == 1065348);
+ assert(unsigned(flip_mask(0x104188, 52)) == 1065352);
+ assert(unsigned(flip_mask(0x10418c, 52)) == 1065356);
+ assert(unsigned(flip_mask(0x104190, 52)) == 1065360);
+ assert(unsigned(flip_mask(0x104194, 52)) == 1065364);
+ assert(unsigned(flip_mask(0x104198, 52)) == 1065368);
+ assert(unsigned(flip_mask(0x10419c, 52)) == 1065372);
+ assert(unsigned(flip_mask(0x1041a0, 52)) == 1065376);
+ assert(unsigned(flip_mask(0x1041a4, 52)) == 1065380);
+ assert(unsigned(flip_mask(0x1041a8, 52)) == 1065384);
+ assert(unsigned(flip_mask(0x1041ac, 52)) == 1065388);
+ assert(unsigned(flip_mask(0x1041b0, 52)) == 1065392);
+ assert(unsigned(flip_mask(0x1041b4, 52)) == 1065396);
+ assert(unsigned(flip_mask(0x1041b8, 52)) == 1065400);
+ assert(unsigned(flip_mask(0x1041bc, 52)) == 1065404);
+ assert(unsigned(flip_mask(0x1041c0, 52)) == 1065408);
+ assert(unsigned(flip_mask(0x104200, 52)) == 1065472);
+ assert(unsigned(flip_mask(0x104204, 52)) == 1065476);
+ assert(unsigned(flip_mask(0x104208, 52)) == 1065480);
+ assert(unsigned(flip_mask(0x10420c, 52)) == 1065484);
+ assert(unsigned(flip_mask(0x104210, 52)) == 1065488);
+ assert(unsigned(flip_mask(0x104214, 52)) == 1065492);
+ assert(unsigned(flip_mask(0x104218, 52)) == 1065496);
+ assert(unsigned(flip_mask(0x10421c, 52)) == 1065500);
+ assert(unsigned(flip_mask(0x104220, 52)) == 1065504);
+ assert(unsigned(flip_mask(0x104224, 52)) == 1065508);
+ assert(unsigned(flip_mask(0x104228, 52)) == 1065512);
+ assert(unsigned(flip_mask(0x10422c, 52)) == 1065516);
+ assert(unsigned(flip_mask(0x104230, 52)) == 1065520);
+ assert(unsigned(flip_mask(0x104234, 52)) == 1065524);
+ assert(unsigned(flip_mask(0x104238, 52)) == 1065528);
+ assert(unsigned(flip_mask(0x10423c, 52)) == 1065532);
+ assert(unsigned(flip_mask(0x104240, 52)) == 1065536);
+ assert(unsigned(flip_mask(0x104244, 52)) == 1065540);
+ assert(unsigned(flip_mask(0x104248, 52)) == 1065544);
+ assert(unsigned(flip_mask(0x104250, 52)) == 1065552);
+ assert(unsigned(flip_mask(0x104258, 52)) == 1065560);
+ assert(unsigned(flip_mask(0x104260, 52)) == 1065568);
+ assert(unsigned(flip_mask(0x104268, 52)) == 1065576);
+ assert(unsigned(flip_mask(0x104270, 52)) == 1065584);
+ assert(unsigned(flip_mask(0x104278, 52)) == 1065592);
+ assert(unsigned(flip_mask(0x10427c, 52)) == 1065596);
+ assert(unsigned(flip_mask(0x104280, 52)) == 1065600);
+ assert(unsigned(flip_mask(0x104284, 52)) == 1065604);
+ assert(unsigned(flip_mask(0x1042b8, 52)) == 1065656);
+ assert(unsigned(flip_mask(0x1042bc, 52)) == 1065660);
+ assert(unsigned(flip_mask(0x1042d4, 52)) == 1065684);
+ assert(unsigned(flip_mask(0x1042e0, 52)) == 1065696);
+ assert(unsigned(flip_mask(0x104300, 52)) == 1065728);
+ assert(unsigned(flip_mask(0x104308, 52)) == 1065736);
+ assert(unsigned(flip_mask(0x104310, 52)) == 1065744);
+ assert(unsigned(flip_mask(0x104320, 52)) == 1065760);
+ assert(unsigned(flip_mask(0x104328, 52)) == 1065768);
+ assert(unsigned(flip_mask(0x104330, 52)) == 1065776);
+ assert(unsigned(flip_mask(0x104338, 52)) == 1065784);
+ assert(unsigned(flip_mask(0x104340, 52)) == 1065792);
+ assert(unsigned(flip_mask(0x104360, 52)) == 1065824);
+ assert(unsigned(flip_mask(0x104410, 52)) == 1066000);
+ assert(unsigned(flip_mask(0x104418, 52)) == 1066008);
+ assert(unsigned(flip_mask(0x104420, 52)) == 1066016);
+ assert(unsigned(flip_mask(0x104428, 52)) == 1066024);
+ assert(unsigned(flip_mask(0x1045a0, 52)) == 1066400);
+ assert(unsigned(flip_mask(0x1045a4, 52)) == 1066404);
+ assert(unsigned(flip_mask(0x1045b0, 52)) == 1066416);
+ assert(unsigned(flip_mask(0x1045b8, 52)) == 1066424);
+ assert(unsigned(flip_mask(0x1045c0, 52)) == 1066432);
+ assert(unsigned(flip_mask(0x1045c4, 52)) == 1066436);
+ assert(unsigned(flip_mask(0x1045c8, 52)) == 1066440);
+ assert(unsigned(flip_mask(0x1045d0, 52)) == 1066448);
+ assert(unsigned(flip_mask(0x1045d8, 52)) == 1066456);
+ assert(unsigned(flip_mask(0x1045e0, 52)) == 1066464);
+ assert(unsigned(flip_mask(0x1045e8, 52)) == 1066472);
+ assert(unsigned(flip_mask(0x1045f0, 52)) == 1066480);
+ assert(unsigned(flip_mask(0x1045f8, 52)) == 1066488);
+ assert(unsigned(flip_mask(0x104600, 52)) == 1066496);
+ assert(unsigned(flip_mask(0x104608, 52)) == 1066504);
+ assert(unsigned(flip_mask(0x104610, 52)) == 1066512);
+ assert(unsigned(flip_mask(0x104618, 52)) == 1066520);
+ assert(unsigned(flip_mask(0x104620, 52)) == 1066528);
+ assert(unsigned(flip_mask(0x104628, 52)) == 1066536);
+ assert(unsigned(flip_mask(0x104630, 52)) == 1066544);
+ assert(unsigned(flip_mask(0x104638, 52)) == 1066552);
+ assert(unsigned(flip_mask(0x104640, 52)) == 1066560);
+ assert(unsigned(flip_mask(0x104648, 52)) == 1066568);
+ assert(unsigned(flip_mask(0x104650, 52)) == 1066576);
+ assert(unsigned(flip_mask(0x104658, 52)) == 1066584);
+ assert(unsigned(flip_mask(0x104660, 52)) == 1066592);
+ assert(unsigned(flip_mask(0x104668, 52)) == 1066600);
+ assert(unsigned(flip_mask(0x104670, 52)) == 1066608);
+ assert(unsigned(flip_mask(0x104678, 52)) == 1066616);
+ assert(unsigned(flip_mask(0x104680, 52)) == 1066624);
+ assert(unsigned(flip_mask(0x104688, 52)) == 1066632);
+ assert(unsigned(flip_mask(0x104690, 52)) == 1066640);
+ assert(unsigned(flip_mask(0x1046a0, 52)) == 1066656);
+ assert(unsigned(flip_mask(0x1046a8, 52)) == 1066664);
+ assert(unsigned(flip_mask(0x1046b0, 52)) == 1066672);
+ assert(unsigned(flip_mask(0x1046b8, 52)) == 1066680);
+ assert(unsigned(flip_mask(0x1046c0, 52)) == 1066688);
+ assert(unsigned(flip_mask(0x1046c8, 52)) == 1066696);
+ assert(unsigned(flip_mask(0x1046d0, 52)) == 1066704);
+ assert(unsigned(flip_mask(0x1046d8, 52)) == 1066712);
+ assert(unsigned(flip_mask(0x1046e0, 52)) == 1066720);
+ assert(unsigned(flip_mask(0x1046e8, 52)) == 1066728);
+ assert(unsigned(flip_mask(0x1046f0, 52)) == 1066736);
+ assert(unsigned(flip_mask(0x1046f8, 52)) == 1066744);
+ assert(unsigned(flip_mask(0x104700, 52)) == 1066752);
+ assert(unsigned(flip_mask(0x104708, 52)) == 1066760);
+ assert(unsigned(flip_mask(0x104710, 52)) == 1066768);
+ assert(unsigned(flip_mask(0x104718, 52)) == 1066776);
+ assert(unsigned(flip_mask(0x104720, 52)) == 1066784);
+ assert(unsigned(flip_mask(0x104728, 52)) == 1066792);
+ assert(unsigned(flip_mask(0x104730, 52)) == 1066800);
+ assert(unsigned(flip_mask(0x104738, 52)) == 1066808);
+ assert(unsigned(flip_mask(0x104740, 52)) == 1066816);
+ assert(unsigned(flip_mask(0x104d50, 52)) == 1068368);
+ assert(unsigned(flip_mask(0x104d54, 52)) == 1068372);
+ assert(unsigned(flip_mask(0x104d58, 52)) == 1068376);
+ assert(unsigned(flip_mask(0x104d5c, 52)) == 1068380);
+ assert(unsigned(flip_mask(0x104d60, 52)) == 1068384);
+ assert(unsigned(flip_mask(0x104d64, 52)) == 1068388);
+ assert(unsigned(flip_mask(0x104d68, 52)) == 1068392);
+ assert(unsigned(flip_mask(0x104d6c, 52)) == 1068396);
+ assert(unsigned(flip_mask(0x104d70, 52)) == 1068400);
+ assert(unsigned(flip_mask(0x104d74, 52)) == 1068404);
+ assert(unsigned(flip_mask(0x104d78, 52)) == 1068408);
+ assert(unsigned(flip_mask(0x104d7c, 52)) == 1068412);
+ assert(unsigned(flip_mask(0x104d80, 52)) == 1068416);
+ assert(unsigned(flip_mask(0x104d84, 52)) == 1068420);
+ assert(unsigned(flip_mask(0x104d88, 52)) == 1068424);
+ assert(unsigned(flip_mask(0x104d8c, 52)) == 1068428);
+ assert(unsigned(flip_mask(0x104d90, 52)) == 1068432);
+ assert(unsigned(flip_mask(0x104d94, 52)) == 1068436);
+ assert(unsigned(flip_mask(0x104d98, 52)) == 1068440);
+ assert(unsigned(flip_mask(0x104d9c, 52)) == 1068444);
+ assert(unsigned(flip_mask(0x104da0, 52)) == 1068448);
+ assert(unsigned(flip_mask(0x104da4, 52)) == 1068452);
+ assert(unsigned(flip_mask(0x104da8, 52)) == 1068456);
+ assert(unsigned(flip_mask(0x104dac, 52)) == 1068460);
+ assert(unsigned(flip_mask(0x104db0, 52)) == 1068464);
+ assert(unsigned(flip_mask(0x104db4, 52)) == 1068468);
+ assert(unsigned(flip_mask(0x104db8, 52)) == 1068472);
+ assert(unsigned(flip_mask(0x104dbc, 52)) == 1068476);
+ assert(unsigned(flip_mask(0x104dc0, 52)) == 1068480);
+ assert(unsigned(flip_mask(0x104dc8, 52)) == 1068488);
+ assert(unsigned(flip_mask(0x104dcc, 52)) == 1068492);
+ assert(unsigned(flip_mask(0x104dd0, 52)) == 1068496);
+ assert(unsigned(flip_mask(0x104dd4, 52)) == 1068500);
+ assert(unsigned(flip_mask(0x104dd8, 52)) == 1068504);
+ assert(unsigned(flip_mask(0x104ddc, 52)) == 1068508);
+ assert(unsigned(flip_mask(0x104de0, 52)) == 1068512);
+ assert(unsigned(flip_mask(0x104de4, 52)) == 1068516);
+ assert(unsigned(flip_mask(0x104de8, 52)) == 1068520);
+ assert(unsigned(flip_mask(0x104df4, 52)) == 1068532);
+ assert(unsigned(flip_mask(0x104df8, 52)) == 1068536);
+ assert(unsigned(flip_mask(0x104dfc, 52)) == 1068540);
+ assert(unsigned(flip_mask(0x104e00, 52)) == 1068544);
+ assert(unsigned(flip_mask(0x104e04, 52)) == 1068548);
+ assert(unsigned(flip_mask(0x104e08, 52)) == 1068552);
+ assert(unsigned(flip_mask(0x104e0c, 52)) == 1068556);
+ assert(unsigned(flip_mask(0x104e10, 52)) == 1068560);
+ assert(unsigned(flip_mask(0x104e14, 52)) == 1068564);
+ assert(unsigned(flip_mask(0x104e18, 52)) == 1068568);
+ assert(unsigned(flip_mask(0x104e1c, 52)) == 1068572);
+ assert(unsigned(flip_mask(0x104e20, 52)) == 1068576);
+ assert(unsigned(flip_mask(0x104e24, 52)) == 1068580);
+ assert(unsigned(flip_mask(0x104e28, 52)) == 1068584);
+ assert(unsigned(flip_mask(0x104e2c, 52)) == 1068588);
+ assert(unsigned(flip_mask(0x104e30, 52)) == 1068592);
+ assert(unsigned(flip_mask(0x104e34, 52)) == 1068596);
+ assert(unsigned(flip_mask(0x104e38, 52)) == 1068600);
+ assert(unsigned(flip_mask(0x104e3c, 52)) == 1068604);
+ assert(unsigned(flip_mask(0x104e40, 52)) == 1068608);
+ assert(unsigned(flip_mask(0x104e44, 52)) == 1068612);
+ assert(unsigned(flip_mask(0x104e48, 52)) == 1068616);
+ assert(unsigned(flip_mask(0x104e4c, 52)) == 1068620);
+ assert(unsigned(flip_mask(0x104e50, 52)) == 1068624);
+ assert(unsigned(flip_mask(0x104e54, 52)) == 1068628);
+ assert(unsigned(flip_mask(0x104e58, 52)) == 1068632);
+ assert(unsigned(flip_mask(0x104e5c, 52)) == 1068636);
+ assert(unsigned(flip_mask(0x104e60, 52)) == 1068640);
+ assert(unsigned(flip_mask(0x104e64, 52)) == 1068644);
+ assert(unsigned(flip_mask(0x104e68, 52)) == 1068648);
+ assert(unsigned(flip_mask(0x104e6c, 52)) == 1068652);
+ assert(unsigned(flip_mask(0x104e70, 52)) == 1068656);
+ assert(unsigned(flip_mask(0x104e74, 52)) == 1068660);
+ assert(unsigned(flip_mask(0x104e78, 52)) == 1068664);
+ assert(unsigned(flip_mask(0x104e7c, 52)) == 1068668);
+ assert(unsigned(flip_mask(0x104e80, 52)) == 1068672);
+ assert(unsigned(flip_mask(0x104e84, 52)) == 1068676);
+ assert(unsigned(flip_mask(0x104e88, 52)) == 1068680);
+ assert(unsigned(flip_mask(0x104e8c, 52)) == 1068684);
+ assert(unsigned(flip_mask(0x104e90, 52)) == 1068688);
+ assert(unsigned(flip_mask(0x104e94, 52)) == 1068692);
+ assert(unsigned(flip_mask(0x104e98, 52)) == 1068696);
+ assert(unsigned(flip_mask(0x104e9c, 52)) == 1068700);
+ assert(unsigned(flip_mask(0x104ea0, 52)) == 1068704);
+ assert(unsigned(flip_mask(0x104ea4, 52)) == 1068708);
+ assert(unsigned(flip_mask(0x104ea8, 52)) == 1068712);
+ assert(unsigned(flip_mask(0x104eac, 52)) == 1068716);
+ assert(unsigned(flip_mask(0x104eb0, 52)) == 1068720);
+ assert(unsigned(flip_mask(0x104eb4, 52)) == 1068724);
+ assert(unsigned(flip_mask(0x104eb8, 52)) == 1068728);
+ assert(unsigned(flip_mask(0x104ebc, 52)) == 1068732);
+ assert(unsigned(flip_mask(0x104ec0, 52)) == 1068736);
+ assert(unsigned(flip_mask(0x104ec4, 52)) == 1068740);
+ assert(unsigned(flip_mask(0x104ec8, 52)) == 1068744);
+ assert(unsigned(flip_mask(0x104ecc, 52)) == 1068748);
+ assert(unsigned(flip_mask(0x104ed0, 52)) == 1068752);
+ assert(unsigned(flip_mask(0x104ed4, 52)) == 1068756);
+ assert(unsigned(flip_mask(0x104ed8, 52)) == 1068760);
+ assert(unsigned(flip_mask(0x104edc, 52)) == 1068764);
+ assert(unsigned(flip_mask(0x104ee0, 52)) == 1068768);
+ assert(unsigned(flip_mask(0x104ee4, 52)) == 1068772);
+ assert(unsigned(flip_mask(0x104ef4, 52)) == 1068788);
+ assert(unsigned(flip_mask(0x104ef8, 52)) == 1068792);
+ assert(unsigned(flip_mask(0x104efc, 52)) == 1068796);
+ assert(unsigned(flip_mask(0x104f00, 52)) == 1068800);
+ assert(unsigned(flip_mask(0x104f04, 52)) == 1068804);
+ assert(unsigned(flip_mask(0x104f08, 52)) == 1068808);
+ assert(unsigned(flip_mask(0x104f0c, 52)) == 1068812);
+ assert(unsigned(flip_mask(0x104f10, 52)) == 1068816);
+ assert(unsigned(flip_mask(0x104f14, 52)) == 1068820);
+ assert(unsigned(flip_mask(0x104f20, 52)) == 1068832);
+ assert(unsigned(flip_mask(0x104f24, 52)) == 1068836);
+ assert(unsigned(flip_mask(0x104f28, 52)) == 1068840);
+ assert(unsigned(flip_mask(0x104f2c, 52)) == 1068844);
+ assert(unsigned(flip_mask(0x104f3c, 52)) == 1068860);
+ assert(unsigned(flip_mask(0x104f40, 52)) == 1068864);
+ assert(unsigned(flip_mask(0x104f44, 52)) == 1068868);
+ assert(unsigned(flip_mask(0x104f48, 52)) == 1068872);
+ assert(unsigned(flip_mask(0x104f4c, 52)) == 1068876);
+ assert(unsigned(flip_mask(0x104f50, 52)) == 1068880);
+ assert(unsigned(flip_mask(0x104f54, 52)) == 1068884);
+ assert(unsigned(flip_mask(0x104f58, 52)) == 1068888);
+ assert(unsigned(flip_mask(0x104f5c, 52)) == 1068892);
+ assert(unsigned(flip_mask(0x104f60, 52)) == 1068896);
+ assert(unsigned(flip_mask(0x104f64, 52)) == 1068900);
+ assert(unsigned(flip_mask(0x104f68, 52)) == 1068904);
+ assert(unsigned(flip_mask(0x104f6c, 52)) == 1068908);
+ assert(unsigned(flip_mask(0x104f70, 52)) == 1068912);
+ assert(unsigned(flip_mask(0x104f74, 52)) == 1068916);
+ assert(unsigned(flip_mask(0x104f78, 52)) == 1068920);
+ assert(unsigned(flip_mask(0x104f7c, 52)) == 1068924);
+ assert(unsigned(flip_mask(0x104f80, 52)) == 1068928);
+ assert(unsigned(flip_mask(0x104f84, 52)) == 1068932);
+ assert(unsigned(flip_mask(0x104f88, 52)) == 1068936);
+ assert(unsigned(flip_mask(0x104f8c, 52)) == 1068940);
+ assert(unsigned(flip_mask(0x104f90, 52)) == 1068944);
+ assert(unsigned(flip_mask(0x104f94, 52)) == 1068948);
+ assert(unsigned(flip_mask(0x104f98, 52)) == 1068952);
+ assert(unsigned(flip_mask(0x104f9c, 52)) == 1068956);
+ assert(unsigned(flip_mask(0x104fa0, 52)) == 1068960);
+ assert(unsigned(flip_mask(0x104fa4, 52)) == 1068964);
+ assert(unsigned(flip_mask(0x104fa8, 52)) == 1068968);
+ assert(unsigned(flip_mask(0x104fac, 52)) == 1068972);
+ assert(unsigned(flip_mask(0x104fb0, 52)) == 1068976);
+ assert(unsigned(flip_mask(0x104fb4, 52)) == 1068980);
+ assert(unsigned(flip_mask(0x104fb8, 52)) == 1068984);
+ assert(unsigned(flip_mask(0x104fbc, 52)) == 1068988);
+ assert(unsigned(flip_mask(0x104fc0, 52)) == 1068992);
+ assert(unsigned(flip_mask(0x104fc4, 52)) == 1068996);
+ assert(unsigned(flip_mask(0x104fc8, 52)) == 1069000);
+ assert(unsigned(flip_mask(0x104fcc, 52)) == 1069004);
+ assert(unsigned(flip_mask(0x104fd0, 52)) == 1069008);
+ assert(unsigned(flip_mask(0x104fd4, 52)) == 1069012);
+ assert(unsigned(flip_mask(0x104fd8, 52)) == 1069016);
+ assert(unsigned(flip_mask(0x104fdc, 52)) == 1069020);
+ assert(unsigned(flip_mask(0x104fe0, 52)) == 1069024);
+ assert(unsigned(flip_mask(0x104fe4, 52)) == 1069028);
+ assert(unsigned(flip_mask(0x104fe8, 52)) == 1069032);
+ assert(unsigned(flip_mask(0x104fec, 52)) == 1069036);
+ assert(unsigned(flip_mask(0x104ff0, 52)) == 1069040);
+ assert(unsigned(flip_mask(0x104ff4, 52)) == 1069044);
+ assert(unsigned(flip_mask(0x104ff8, 52)) == 1069048);
+ assert(unsigned(flip_mask(0x105008, 52)) == 1069064);
+ assert(unsigned(flip_mask(0x10500c, 52)) == 1069068);
+ assert(unsigned(flip_mask(0x105010, 52)) == 1069072);
+ assert(unsigned(flip_mask(0x105014, 52)) == 1069076);
+ assert(unsigned(flip_mask(0x105018, 52)) == 1069080);
+ assert(unsigned(flip_mask(0x10501c, 52)) == 1069084);
+ assert(unsigned(flip_mask(0x105020, 52)) == 1069088);
+ assert(unsigned(flip_mask(0x105024, 52)) == 1069092);
+ assert(unsigned(flip_mask(0x105028, 52)) == 1069096);
+ assert(unsigned(flip_mask(0x105034, 52)) == 1069108);
+ assert(unsigned(flip_mask(0x105038, 52)) == 1069112);
+ assert(unsigned(flip_mask(0x10503c, 52)) == 1069116);
+ assert(unsigned(flip_mask(0x105040, 52)) == 1069120);
+ assert(unsigned(flip_mask(0x105050, 52)) == 1069136);
+ assert(unsigned(flip_mask(0x105054, 52)) == 1069140);
+ assert(unsigned(flip_mask(0x105058, 52)) == 1069144);
+ assert(unsigned(flip_mask(0x10505c, 52)) == 1069148);
+ assert(unsigned(flip_mask(0x105060, 52)) == 1069152);
+ assert(unsigned(flip_mask(0x105064, 52)) == 1069156);
+ assert(unsigned(flip_mask(0x105068, 52)) == 1069160);
+ assert(unsigned(flip_mask(0x10506c, 52)) == 1069164);
+ assert(unsigned(flip_mask(0x105070, 52)) == 1069168);
+ assert(unsigned(flip_mask(0x105074, 52)) == 1069172);
+ assert(unsigned(flip_mask(0x105078, 52)) == 1069176);
+ assert(unsigned(flip_mask(0x10507c, 52)) == 1069180);
+ assert(unsigned(flip_mask(0x105080, 52)) == 1069184);
+ assert(unsigned(flip_mask(0x105084, 52)) == 1069188);
+ assert(unsigned(flip_mask(0x105088, 52)) == 1069192);
+ assert(unsigned(flip_mask(0x10508c, 52)) == 1069196);
+ assert(unsigned(flip_mask(0x105090, 52)) == 1069200);
+ assert(unsigned(flip_mask(0x105094, 52)) == 1069204);
+ assert(unsigned(flip_mask(0x105098, 52)) == 1069208);
+ assert(unsigned(flip_mask(0x10509c, 52)) == 1069212);
+ assert(unsigned(flip_mask(0x1050a0, 52)) == 1069216);
+ assert(unsigned(flip_mask(0x1050a4, 52)) == 1069220);
+ assert(unsigned(flip_mask(0x1050a8, 52)) == 1069224);
+ assert(unsigned(flip_mask(0x1050ac, 52)) == 1069228);
+ assert(unsigned(flip_mask(0x1050b0, 52)) == 1069232);
+ assert(unsigned(flip_mask(0x1050b4, 52)) == 1069236);
+ assert(unsigned(flip_mask(0x1050b8, 52)) == 1069240);
+ assert(unsigned(flip_mask(0x1050bc, 52)) == 1069244);
+ assert(unsigned(flip_mask(0x1050c0, 52)) == 1069248);
+ assert(unsigned(flip_mask(0x1050c4, 52)) == 1069252);
+ assert(unsigned(flip_mask(0x1050c8, 52)) == 1069256);
+ assert(unsigned(flip_mask(0x1050cc, 52)) == 1069260);
+ assert(unsigned(flip_mask(0x1050d0, 52)) == 1069264);
+ assert(unsigned(flip_mask(0x1050d4, 52)) == 1069268);
+ assert(unsigned(flip_mask(0x1050d8, 52)) == 1069272);
+ assert(unsigned(flip_mask(0x1050dc, 52)) == 1069276);
+ assert(unsigned(flip_mask(0x1050e0, 52)) == 1069280);
+ assert(unsigned(flip_mask(0x1050e4, 52)) == 1069284);
+ assert(unsigned(flip_mask(0x1050e8, 52)) == 1069288);
+ assert(unsigned(flip_mask(0x1050ec, 52)) == 1069292);
+ assert(unsigned(flip_mask(0x1050f0, 52)) == 1069296);
+ assert(unsigned(flip_mask(0x1050f4, 52)) == 1069300);
+ assert(unsigned(flip_mask(0x1050f8, 52)) == 1069304);
+ assert(unsigned(flip_mask(0x1050fc, 52)) == 1069308);
+ assert(unsigned(flip_mask(0x105100, 52)) == 1069312);
+ assert(unsigned(flip_mask(0x105110, 52)) == 1069328);
+ assert(unsigned(flip_mask(0x105114, 52)) == 1069332);
+ assert(unsigned(flip_mask(0x105118, 52)) == 1069336);
+ assert(unsigned(flip_mask(0x10511c, 52)) == 1069340);
+ assert(unsigned(flip_mask(0x105120, 52)) == 1069344);
+ assert(unsigned(flip_mask(0x105124, 52)) == 1069348);
+ assert(unsigned(flip_mask(0x105128, 52)) == 1069352);
+ assert(unsigned(flip_mask(0x105134, 52)) == 1069364);
+ assert(unsigned(flip_mask(0x105138, 52)) == 1069368);
+ assert(unsigned(flip_mask(0x10513c, 52)) == 1069372);
+ assert(unsigned(flip_mask(0x105140, 52)) == 1069376);
+ assert(unsigned(flip_mask(0x105150, 52)) == 1069392);
+ assert(unsigned(flip_mask(0x105154, 52)) == 1069396);
+ assert(unsigned(flip_mask(0x105158, 52)) == 1069400);
+ assert(unsigned(flip_mask(0x10515c, 52)) == 1069404);
+ assert(unsigned(flip_mask(0x105160, 52)) == 1069408);
+ assert(unsigned(flip_mask(0x105164, 52)) == 1069412);
+ assert(unsigned(flip_mask(0x105168, 52)) == 1069416);
+ assert(unsigned(flip_mask(0x10516c, 52)) == 1069420);
+ assert(unsigned(flip_mask(0x105170, 52)) == 1069424);
+ assert(unsigned(flip_mask(0x105174, 52)) == 1069428);
+ assert(unsigned(flip_mask(0x105178, 52)) == 1069432);
+ assert(unsigned(flip_mask(0x10517c, 52)) == 1069436);
+ assert(unsigned(flip_mask(0x105180, 52)) == 1069440);
+ assert(unsigned(flip_mask(0x105184, 52)) == 1069444);
+ assert(unsigned(flip_mask(0x105188, 52)) == 1069448);
+ assert(unsigned(flip_mask(0x10518c, 52)) == 1069452);
+ assert(unsigned(flip_mask(0x105190, 52)) == 1069456);
+ assert(unsigned(flip_mask(0x105194, 52)) == 1069460);
+ assert(unsigned(flip_mask(0x105198, 52)) == 1069464);
+ assert(unsigned(flip_mask(0x10519c, 52)) == 1069468);
+ assert(unsigned(flip_mask(0x1051a0, 52)) == 1069472);
+ assert(unsigned(flip_mask(0x1051a4, 52)) == 1069476);
+ assert(unsigned(flip_mask(0x1051a8, 52)) == 1069480);
+ assert(unsigned(flip_mask(0x1051ac, 52)) == 1069484);
+ assert(unsigned(flip_mask(0x1051b0, 52)) == 1069488);
+ assert(unsigned(flip_mask(0x1051b4, 52)) == 1069492);
+ assert(unsigned(flip_mask(0x1051b8, 52)) == 1069496);
+ assert(unsigned(flip_mask(0x1051bc, 52)) == 1069500);
+ assert(unsigned(flip_mask(0x1051c0, 52)) == 1069504);
+ assert(unsigned(flip_mask(0x1051c4, 52)) == 1069508);
+ assert(unsigned(flip_mask(0x1051c8, 52)) == 1069512);
+ assert(unsigned(flip_mask(0x1051cc, 52)) == 1069516);
+ assert(unsigned(flip_mask(0x1051d0, 52)) == 1069520);
+ assert(unsigned(flip_mask(0x1051d4, 52)) == 1069524);
+ assert(unsigned(flip_mask(0x1051d8, 52)) == 1069528);
+ assert(unsigned(flip_mask(0x1051dc, 52)) == 1069532);
+ assert(unsigned(flip_mask(0x1051e0, 52)) == 1069536);
+ assert(unsigned(flip_mask(0x1051e4, 52)) == 1069540);
+ assert(unsigned(flip_mask(0x1051e8, 52)) == 1069544);
+ assert(unsigned(flip_mask(0x1051ec, 52)) == 1069548);
+ assert(unsigned(flip_mask(0x1051f0, 52)) == 1069552);
+ assert(unsigned(flip_mask(0x1051f4, 52)) == 1069556);
+ assert(unsigned(flip_mask(0x1051f8, 52)) == 1069560);
+ assert(unsigned(flip_mask(0x1051fc, 52)) == 1069564);
+ assert(unsigned(flip_mask(0x105200, 52)) == 1069568);
+ assert(unsigned(flip_mask(0x105208, 52)) == 1069576);
+ assert(unsigned(flip_mask(0x10520c, 52)) == 1069580);
+ assert(unsigned(flip_mask(0x105210, 52)) == 1069584);
+ assert(unsigned(flip_mask(0x105214, 52)) == 1069588);
+ assert(unsigned(flip_mask(0x105218, 52)) == 1069592);
+ assert(unsigned(flip_mask(0x10521c, 52)) == 1069596);
+ assert(unsigned(flip_mask(0x105220, 52)) == 1069600);
+ assert(unsigned(flip_mask(0x105224, 52)) == 1069604);
+ assert(unsigned(flip_mask(0x105228, 52)) == 1069608);
+ assert(unsigned(flip_mask(0x105230, 52)) == 1069616);
+ assert(unsigned(flip_mask(0x105238, 52)) == 1069624);
+ assert(unsigned(flip_mask(0x105240, 52)) == 1069632);
+ assert(unsigned(flip_mask(0x105248, 52)) == 1069640);
+ assert(unsigned(flip_mask(0x10524c, 52)) == 1069644);
+ assert(unsigned(flip_mask(0x105250, 52)) == 1069648);
+ assert(unsigned(flip_mask(0x105254, 52)) == 1069652);
+ assert(unsigned(flip_mask(0x105258, 52)) == 1069656);
+ assert(unsigned(flip_mask(0x10525c, 52)) == 1069660);
+ assert(unsigned(flip_mask(0x105260, 52)) == 1069664);
+ assert(unsigned(flip_mask(0x105264, 52)) == 1069668);
+ assert(unsigned(flip_mask(0x105268, 52)) == 1069672);
+ assert(unsigned(flip_mask(0x10526c, 52)) == 1069676);
+ assert(unsigned(flip_mask(0x105270, 52)) == 1069680);
+ assert(unsigned(flip_mask(0x105274, 52)) == 1069684);
+ assert(unsigned(flip_mask(0x105278, 52)) == 1069688);
+ assert(unsigned(flip_mask(0x10527c, 52)) == 1069692);
+ assert(unsigned(flip_mask(0x10532c, 52)) == 1069868);
+ assert(unsigned(flip_mask(0x105330, 52)) == 1069872);
+ assert(unsigned(flip_mask(0x105334, 52)) == 1069876);
+ assert(unsigned(flip_mask(0x105338, 52)) == 1069880);
+ assert(unsigned(flip_mask(0x10533c, 52)) == 1069884);
+ assert(unsigned(flip_mask(0x105340, 52)) == 1069888);
+ assert(unsigned(flip_mask(0x105344, 52)) == 1069892);
+ assert(unsigned(flip_mask(0x105348, 52)) == 1069896);
+ assert(unsigned(flip_mask(0x10534c, 52)) == 1069900);
+ assert(unsigned(flip_mask(0x105350, 52)) == 1069904);
+ assert(unsigned(flip_mask(0x105354, 52)) == 1069908);
+ assert(unsigned(flip_mask(0x105358, 52)) == 1069912);
+ assert(unsigned(flip_mask(0x10535c, 52)) == 1069916);
+ assert(unsigned(flip_mask(0x105360, 52)) == 1069920);
+ assert(unsigned(flip_mask(0x105364, 52)) == 1069924);
+ assert(unsigned(flip_mask(0x105368, 52)) == 1069928);
+ assert(unsigned(flip_mask(0x10536c, 52)) == 1069932);
+ assert(unsigned(flip_mask(0x10537c, 52)) == 1069948);
+ assert(unsigned(flip_mask(0x105380, 52)) == 1069952);
+ assert(unsigned(flip_mask(0x105384, 52)) == 1069956);
+ assert(unsigned(flip_mask(0x105388, 52)) == 1069960);
+ assert(unsigned(flip_mask(0x10538c, 52)) == 1069964);
+ assert(unsigned(flip_mask(0x105390, 52)) == 1069968);
+ assert(unsigned(flip_mask(0x1053a0, 52)) == 1069984);
+ assert(unsigned(flip_mask(0x1053a4, 52)) == 1069988);
+ assert(unsigned(flip_mask(0x1053a8, 52)) == 1069992);
+ assert(unsigned(flip_mask(0x1053ac, 52)) == 1069996);
+ assert(unsigned(flip_mask(0x1053b0, 52)) == 1070000);
+ assert(unsigned(flip_mask(0x1053b4, 52)) == 1070004);
+ assert(unsigned(flip_mask(0x10544c, 52)) == 1070156);
+ assert(unsigned(flip_mask(0x105450, 52)) == 1070160);
+ assert(unsigned(flip_mask(0x105454, 52)) == 1070164);
+ assert(unsigned(flip_mask(0x105458, 52)) == 1070168);
+ assert(unsigned(flip_mask(0x10545c, 52)) == 1070172);
+ assert(unsigned(flip_mask(0x105468, 52)) == 1070184);
+ assert(unsigned(flip_mask(0x10546c, 52)) == 1070188);
+ assert(unsigned(flip_mask(0x105470, 52)) == 1070192);
+ assert(unsigned(flip_mask(0x105474, 52)) == 1070196);
+ assert(unsigned(flip_mask(0x105478, 52)) == 1070200);
+ assert(unsigned(flip_mask(0x10547c, 52)) == 1070204);
+ assert(unsigned(flip_mask(0x105480, 52)) == 1070208);
+ assert(unsigned(flip_mask(0x105484, 52)) == 1070212);
+ assert(unsigned(flip_mask(0x105490, 52)) == 1070224);
+ assert(unsigned(flip_mask(0x105494, 52)) == 1070228);
+ assert(unsigned(flip_mask(0x105498, 52)) == 1070232);
+ assert(unsigned(flip_mask(0x1054a0, 52)) == 1070240);
+ assert(unsigned(flip_mask(0x1054a8, 52)) == 1070248);
+ assert(unsigned(flip_mask(0x1054ac, 52)) == 1070252);
+ assert(unsigned(flip_mask(0x1054b0, 52)) == 1070256);
+ assert(unsigned(flip_mask(0x1054b4, 52)) == 1070260);
+ assert(unsigned(flip_mask(0x1054b8, 52)) == 1070264);
+ assert(unsigned(flip_mask(0x1054bc, 52)) == 1070268);
+ assert(unsigned(flip_mask(0x1054c0, 52)) == 1070272);
+ assert(unsigned(flip_mask(0x1054c4, 52)) == 1070276);
+ assert(unsigned(flip_mask(0x1054c8, 52)) == 1070280);
+ assert(unsigned(flip_mask(0x1054cc, 52)) == 1070284);
+ assert(unsigned(flip_mask(0x1054d0, 52)) == 1070288);
+ assert(unsigned(flip_mask(0x1054d4, 52)) == 1070292);
+ assert(unsigned(flip_mask(0x1054d8, 52)) == 1070296);
+ assert(unsigned(flip_mask(0x1054dc, 52)) == 1070300);
+ assert(unsigned(flip_mask(0x1054e0, 52)) == 1070304);
+ assert(unsigned(flip_mask(0x1054e4, 52)) == 1070308);
+ assert(unsigned(flip_mask(0x1054e8, 52)) == 1070312);
+ assert(unsigned(flip_mask(0x1054f0, 52)) == 1070320);
+ assert(unsigned(flip_mask(0x1054f8, 52)) == 1070328);
+ assert(unsigned(flip_mask(0x105500, 52)) == 1070336);
+ assert(unsigned(flip_mask(0x105508, 52)) == 1070344);
+ assert(unsigned(flip_mask(0x10550c, 52)) == 1070348);
+ assert(unsigned(flip_mask(0x105510, 52)) == 1070352);
+ assert(unsigned(flip_mask(0x105514, 52)) == 1070356);
+ assert(unsigned(flip_mask(0x105518, 52)) == 1070360);
+ assert(unsigned(flip_mask(0x10551c, 52)) == 1070364);
+ assert(unsigned(flip_mask(0x105520, 52)) == 1070368);
+ assert(unsigned(flip_mask(0x105524, 52)) == 1070372);
+ assert(unsigned(flip_mask(0x105528, 52)) == 1070376);
+ assert(unsigned(flip_mask(0x10552c, 52)) == 1070380);
+ assert(unsigned(flip_mask(0x105530, 52)) == 1070384);
+ assert(unsigned(flip_mask(0x105534, 52)) == 1070388);
+ assert(unsigned(flip_mask(0x105538, 52)) == 1070392);
+ assert(unsigned(flip_mask(0x10553c, 52)) == 1070396);
+ assert(unsigned(flip_mask(0x105540, 52)) == 1070400);
+ assert(unsigned(flip_mask(0x105544, 52)) == 1070404);
+ assert(unsigned(flip_mask(0x105548, 52)) == 1070408);
+ assert(unsigned(flip_mask(0x10554c, 52)) == 1070412);
+ assert(unsigned(flip_mask(0x105550, 52)) == 1070416);
+ assert(unsigned(flip_mask(0x105554, 52)) == 1070420);
+ assert(unsigned(flip_mask(0x105558, 52)) == 1070424);
+ assert(unsigned(flip_mask(0x105560, 52)) == 1070432);
+ assert(unsigned(flip_mask(0x105568, 52)) == 1070440);
+ assert(unsigned(flip_mask(0x105570, 52)) == 1070448);
+ assert(unsigned(flip_mask(0x105574, 52)) == 1070452);
+ assert(unsigned(flip_mask(0x105578, 52)) == 1070456);
+ assert(unsigned(flip_mask(0x10557c, 52)) == 1070460);
+ assert(unsigned(flip_mask(0x105580, 52)) == 1070464);
+ assert(unsigned(flip_mask(0x105584, 52)) == 1070468);
+ assert(unsigned(flip_mask(0x105588, 52)) == 1070472);
+ assert(unsigned(flip_mask(0x10558c, 52)) == 1070476);
+ assert(unsigned(flip_mask(0x105590, 52)) == 1070480);
+ assert(unsigned(flip_mask(0x105594, 52)) == 1070484);
+ assert(unsigned(flip_mask(0x105598, 52)) == 1070488);
+ assert(unsigned(flip_mask(0x10559c, 52)) == 1070492);
+ assert(unsigned(flip_mask(0x1055a0, 52)) == 1070496);
+ assert(unsigned(flip_mask(0x1055a4, 52)) == 1070500);
+ assert(unsigned(flip_mask(0x1055a8, 52)) == 1070504);
+ assert(unsigned(flip_mask(0x1055ac, 52)) == 1070508);
+ assert(unsigned(flip_mask(0x1055b0, 52)) == 1070512);
+ assert(unsigned(flip_mask(0x1055b4, 52)) == 1070516);
+ assert(unsigned(flip_mask(0x1055b8, 52)) == 1070520);
+ assert(unsigned(flip_mask(0x1055bc, 52)) == 1070524);
+ assert(unsigned(flip_mask(0x1055c0, 52)) == 1070528);
+ assert(unsigned(flip_mask(0x1055c4, 52)) == 1070532);
+ assert(unsigned(flip_mask(0x1055c8, 52)) == 1070536);
+ assert(unsigned(flip_mask(0x1055cc, 52)) == 1070540);
+ assert(unsigned(flip_mask(0x1055d0, 52)) == 1070544);
+ assert(unsigned(flip_mask(0x1055dc, 52)) == 1070556);
+ assert(unsigned(flip_mask(0x1055e0, 52)) == 1070560);
+ assert(unsigned(flip_mask(0x1055e8, 52)) == 1070568);
+ assert(unsigned(flip_mask(0x1055ec, 52)) == 1070572);
+ assert(unsigned(flip_mask(0x1055f0, 52)) == 1070576);
+ assert(unsigned(flip_mask(0x1055f4, 52)) == 1070580);
+ assert(unsigned(flip_mask(0x1055f8, 52)) == 1070584);
+ assert(unsigned(flip_mask(0x1055fc, 52)) == 1070588);
+ assert(unsigned(flip_mask(0x105610, 52)) == 1070608);
+ assert(unsigned(flip_mask(0x105614, 52)) == 1070612);
+ assert(unsigned(flip_mask(0x105644, 52)) == 1070660);
+ assert(unsigned(flip_mask(0x105648, 52)) == 1070664);
+ assert(unsigned(flip_mask(0x10564c, 52)) == 1070668);
+ assert(unsigned(flip_mask(0x10568c, 52)) == 1070732);
+ assert(unsigned(flip_mask(0x105690, 52)) == 1070736);
+ assert(unsigned(flip_mask(0x105694, 52)) == 1070740);
+ assert(unsigned(flip_mask(0x105698, 52)) == 1070744);
+ assert(unsigned(flip_mask(0x10569c, 52)) == 1070748);
+ assert(unsigned(flip_mask(0x1056a0, 52)) == 1070752);
+ assert(unsigned(flip_mask(0x1056a4, 52)) == 1070756);
+ assert(unsigned(flip_mask(0x1056a8, 52)) == 1070760);
+ assert(unsigned(flip_mask(0x1056ac, 52)) == 1070764);
+ assert(unsigned(flip_mask(0x1056b0, 52)) == 1070768);
+ assert(unsigned(flip_mask(0x1056b4, 52)) == 1070772);
+ assert(unsigned(flip_mask(0x1056b8, 52)) == 1070776);
+ assert(unsigned(flip_mask(0x1056bc, 52)) == 1070780);
+ assert(unsigned(flip_mask(0x1056c0, 52)) == 1070784);
+ assert(unsigned(flip_mask(0x1056c4, 52)) == 1070788);
+ assert(unsigned(flip_mask(0x1056c8, 52)) == 1070792);
+ assert(unsigned(flip_mask(0x1056cc, 52)) == 1070796);
+ assert(unsigned(flip_mask(0x1056d0, 52)) == 1070800);
+ assert(unsigned(flip_mask(0x1056d4, 52)) == 1070804);
+ assert(unsigned(flip_mask(0x1056d8, 52)) == 1070808);
+ assert(unsigned(flip_mask(0x1056dc, 52)) == 1070812);
+ assert(unsigned(flip_mask(0x1056e0, 52)) == 1070816);
+ assert(unsigned(flip_mask(0x1056e4, 52)) == 1070820);
+ assert(unsigned(flip_mask(0x1056e8, 52)) == 1070824);
+ assert(unsigned(flip_mask(0x1056ec, 52)) == 1070828);
+ assert(unsigned(flip_mask(0x1056f0, 52)) == 1070832);
+ assert(unsigned(flip_mask(0x1056f4, 52)) == 1070836);
+ assert(unsigned(flip_mask(0x1056f8, 52)) == 1070840);
+ assert(unsigned(flip_mask(0x1056fc, 52)) == 1070844);
+ assert(unsigned(flip_mask(0x105700, 52)) == 1070848);
+ assert(unsigned(flip_mask(0x105704, 52)) == 1070852);
+ assert(unsigned(flip_mask(0x105708, 52)) == 1070856);
+ assert(unsigned(flip_mask(0x10570c, 52)) == 1070860);
+ assert(unsigned(flip_mask(0x105710, 52)) == 1070864);
+ assert(unsigned(flip_mask(0x105714, 52)) == 1070868);
+ assert(unsigned(flip_mask(0x105718, 52)) == 1070872);
+ assert(unsigned(flip_mask(0x10571c, 52)) == 1070876);
+ assert(unsigned(flip_mask(0x105720, 52)) == 1070880);
+ assert(unsigned(flip_mask(0x105724, 52)) == 1070884);
+ assert(unsigned(flip_mask(0x105728, 52)) == 1070888);
+ assert(unsigned(flip_mask(0x10572c, 52)) == 1070892);
+ assert(unsigned(flip_mask(0x105730, 52)) == 1070896);
+ assert(unsigned(flip_mask(0x105734, 52)) == 1070900);
+ assert(unsigned(flip_mask(0x105738, 52)) == 1070904);
+ assert(unsigned(flip_mask(0x10573c, 52)) == 1070908);
+ assert(unsigned(flip_mask(0x105740, 52)) == 1070912);
+ assert(unsigned(flip_mask(0x105744, 52)) == 1070916);
+ assert(unsigned(flip_mask(0x105748, 52)) == 1070920);
+ assert(unsigned(flip_mask(0x10574c, 52)) == 1070924);
+ assert(unsigned(flip_mask(0x105750, 52)) == 1070928);
+ assert(unsigned(flip_mask(0x105754, 52)) == 1070932);
+ assert(unsigned(flip_mask(0x105758, 52)) == 1070936);
+ assert(unsigned(flip_mask(0x10575c, 52)) == 1070940);
+ assert(unsigned(flip_mask(0x105760, 52)) == 1070944);
+ assert(unsigned(flip_mask(0x105764, 52)) == 1070948);
+ assert(unsigned(flip_mask(0x105768, 52)) == 1070952);
+ assert(unsigned(flip_mask(0x10576c, 52)) == 1070956);
+ assert(unsigned(flip_mask(0x105770, 52)) == 1070960);
+ assert(unsigned(flip_mask(0x105774, 52)) == 1070964);
+ assert(unsigned(flip_mask(0x105778, 52)) == 1070968);
+ assert(unsigned(flip_mask(0x105780, 52)) == 1070976);
+ assert(unsigned(flip_mask(0x1057a8, 52)) == 1071016);
+ assert(unsigned(flip_mask(0x1057b0, 52)) == 1071024);
+ assert(unsigned(flip_mask(0x1057b8, 52)) == 1071032);
+ assert(unsigned(flip_mask(0x1057c0, 52)) == 1071040);
+ assert(unsigned(flip_mask(0x1057c8, 52)) == 1071048);
+ assert(unsigned(flip_mask(0x1057d0, 52)) == 1071056);
+ assert(unsigned(flip_mask(0x1057d8, 52)) == 1071064);
+ assert(unsigned(flip_mask(0x1057e0, 52)) == 1071072);
+ assert(unsigned(flip_mask(0x1057e8, 52)) == 1071080);
+ assert(unsigned(flip_mask(0x1057f0, 52)) == 1071088);
+ assert(unsigned(flip_mask(0x1057f8, 52)) == 1071096);
+ assert(unsigned(flip_mask(0x105800, 52)) == 1071104);
+ assert(unsigned(flip_mask(0x105808, 52)) == 1071112);
+ assert(unsigned(flip_mask(0x105810, 52)) == 1071120);
+ assert(unsigned(flip_mask(0x105818, 52)) == 1071128);
+ assert(unsigned(flip_mask(0x105820, 52)) == 1071136);
+ assert(unsigned(flip_mask(0x105828, 52)) == 1071144);
+ assert(unsigned(flip_mask(0x105830, 52)) == 1071152);
+ assert(unsigned(flip_mask(0x105838, 52)) == 1071160);
+ assert(unsigned(flip_mask(0x105840, 52)) == 1071168);
+ assert(unsigned(flip_mask(0x105848, 52)) == 1071176);
+ assert(unsigned(flip_mask(0x105850, 52)) == 1071184);
+ assert(unsigned(flip_mask(0x105858, 52)) == 1071192);
+ assert(unsigned(flip_mask(0x10585c, 52)) == 1071196);
+ assert(unsigned(flip_mask(0x105860, 52)) == 1071200);
+ assert(unsigned(flip_mask(0x105864, 52)) == 1071204);
+ assert(unsigned(flip_mask(0x105868, 52)) == 1071208);
+ assert(unsigned(flip_mask(0x10586c, 52)) == 1071212);
+ assert(unsigned(flip_mask(0x105870, 52)) == 1071216);
+ assert(unsigned(flip_mask(0x105874, 52)) == 1071220);
+ assert(unsigned(flip_mask(0x105878, 52)) == 1071224);
+ assert(unsigned(flip_mask(0x10587c, 52)) == 1071228);
+ assert(unsigned(flip_mask(0x105880, 52)) == 1071232);
+ assert(unsigned(flip_mask(0x105884, 52)) == 1071236);
+ assert(unsigned(flip_mask(0x105888, 52)) == 1071240);
+ assert(unsigned(flip_mask(0x10588c, 52)) == 1071244);
+ assert(unsigned(flip_mask(0x105890, 52)) == 1071248);
+ assert(unsigned(flip_mask(0x105894, 52)) == 1071252);
+ assert(unsigned(flip_mask(0x105898, 52)) == 1071256);
+ assert(unsigned(flip_mask(0x10589c, 52)) == 1071260);
+ assert(unsigned(flip_mask(0x1058a0, 52)) == 1071264);
+ assert(unsigned(flip_mask(0x1058a4, 52)) == 1071268);
+ assert(unsigned(flip_mask(0x1058a8, 52)) == 1071272);
+ assert(unsigned(flip_mask(0x12000, 52)) == 73728);
+ assert(unsigned(flip_mask(0x13000000, 52)) == 318767104);
+ assert(unsigned(flip_mask(0x1568000, 52)) == 22446080);
+ assert(unsigned(flip_mask(0x1568008, 52)) == 22446088);
+ assert(unsigned(flip_mask(0x1568010, 52)) == 22446096);
+ assert(unsigned(flip_mask(0x1568018, 52)) == 22446104);
+ assert(unsigned(flip_mask(0x1568020, 52)) == 22446112);
+ assert(unsigned(flip_mask(0x1568028, 52)) == 22446120);
+ assert(unsigned(flip_mask(0x1568030, 52)) == 22446128);
+ assert(unsigned(flip_mask(0x1568038, 52)) == 22446136);
+ assert(unsigned(flip_mask(0x1568040, 52)) == 22446144);
+ assert(unsigned(flip_mask(0x1568048, 52)) == 22446152);
+ assert(unsigned(flip_mask(0x1568050, 52)) == 22446160);
+ assert(unsigned(flip_mask(0x1568058, 52)) == 22446168);
+ assert(unsigned(flip_mask(0x1568060, 52)) == 22446176);
+ assert(unsigned(flip_mask(0x1568068, 52)) == 22446184);
+ assert(unsigned(flip_mask(0x1568070, 52)) == 22446192);
+ assert(unsigned(flip_mask(0x1568078, 52)) == 22446200);
+ assert(unsigned(flip_mask(0x1568080, 52)) == 22446208);
+ assert(unsigned(flip_mask(0x1568088, 52)) == 22446216);
+ assert(unsigned(flip_mask(0x1568090, 52)) == 22446224);
+ assert(unsigned(flip_mask(0x1568098, 52)) == 22446232);
+ assert(unsigned(flip_mask(0x15680a0, 52)) == 22446240);
+ assert(unsigned(flip_mask(0x15680a8, 52)) == 22446248);
+ assert(unsigned(flip_mask(0x15680b0, 52)) == 22446256);
+ assert(unsigned(flip_mask(0x15680b8, 52)) == 22446264);
+ assert(unsigned(flip_mask(0x15680c0, 52)) == 22446272);
+ assert(unsigned(flip_mask(0x15680c8, 52)) == 22446280);
+ assert(unsigned(flip_mask(0x15680d0, 52)) == 22446288);
+ assert(unsigned(flip_mask(0x15680d8, 52)) == 22446296);
+ assert(unsigned(flip_mask(0x15680e0, 52)) == 22446304);
+ assert(unsigned(flip_mask(0x15680e8, 52)) == 22446312);
+ assert(unsigned(flip_mask(0x15680f0, 52)) == 22446320);
+ assert(unsigned(flip_mask(0x15680f8, 52)) == 22446328);
+ assert(unsigned(flip_mask(0x1568100, 52)) == 22446336);
+ assert(unsigned(flip_mask(0x1568108, 52)) == 22446344);
+ assert(unsigned(flip_mask(0x1568110, 52)) == 22446352);
+ assert(unsigned(flip_mask(0x1568118, 52)) == 22446360);
+ assert(unsigned(flip_mask(0x1568120, 52)) == 22446368);
+ assert(unsigned(flip_mask(0x1568128, 52)) == 22446376);
+ assert(unsigned(flip_mask(0x1568130, 52)) == 22446384);
+ assert(unsigned(flip_mask(0x1568138, 52)) == 22446392);
+ assert(unsigned(flip_mask(0x1568140, 52)) == 22446400);
+ assert(unsigned(flip_mask(0x1568148, 52)) == 22446408);
+ assert(unsigned(flip_mask(0x1568150, 52)) == 22446416);
+ assert(unsigned(flip_mask(0x1568158, 52)) == 22446424);
+ assert(unsigned(flip_mask(0x1568160, 52)) == 22446432);
+ assert(unsigned(flip_mask(0x1568168, 52)) == 22446440);
+ assert(unsigned(flip_mask(0x1568170, 52)) == 22446448);
+ assert(unsigned(flip_mask(0x1568178, 52)) == 22446456);
+ assert(unsigned(flip_mask(0x1568180, 52)) == 22446464);
+ assert(unsigned(flip_mask(0x1568188, 52)) == 22446472);
+ assert(unsigned(flip_mask(0x1568190, 52)) == 22446480);
+ assert(unsigned(flip_mask(0x1568198, 52)) == 22446488);
+ assert(unsigned(flip_mask(0x15681a0, 52)) == 22446496);
+ assert(unsigned(flip_mask(0x15681a8, 52)) == 22446504);
+ assert(unsigned(flip_mask(0x15681b0, 52)) == 22446512);
+ assert(unsigned(flip_mask(0x15681b8, 52)) == 22446520);
+ assert(unsigned(flip_mask(0x15681c0, 52)) == 22446528);
+ assert(unsigned(flip_mask(0x15681c8, 52)) == 22446536);
+ assert(unsigned(flip_mask(0x15681d0, 52)) == 22446544);
+ assert(unsigned(flip_mask(0x15681d8, 52)) == 22446552);
+ assert(unsigned(flip_mask(0x15681e0, 52)) == 22446560);
+ assert(unsigned(flip_mask(0x15681e8, 52)) == 22446568);
+ assert(unsigned(flip_mask(0x15681f0, 52)) == 22446576);
+ assert(unsigned(flip_mask(0x15681f8, 52)) == 22446584);
+ assert(unsigned(flip_mask(0x1568200, 52)) == 22446592);
+ assert(unsigned(flip_mask(0x1568208, 52)) == 22446600);
+ assert(unsigned(flip_mask(0x1568210, 52)) == 22446608);
+ assert(unsigned(flip_mask(0x1568218, 52)) == 22446616);
+ assert(unsigned(flip_mask(0x1568220, 52)) == 22446624);
+ assert(unsigned(flip_mask(0x1568228, 52)) == 22446632);
+ assert(unsigned(flip_mask(0x1568230, 52)) == 22446640);
+ assert(unsigned(flip_mask(0x1568238, 52)) == 22446648);
+ assert(unsigned(flip_mask(0x1568240, 52)) == 22446656);
+ assert(unsigned(flip_mask(0x1568248, 52)) == 22446664);
+ assert(unsigned(flip_mask(0x1568250, 52)) == 22446672);
+ assert(unsigned(flip_mask(0x1568258, 52)) == 22446680);
+ assert(unsigned(flip_mask(0x1568260, 52)) == 22446688);
+ assert(unsigned(flip_mask(0x1568268, 52)) == 22446696);
+ assert(unsigned(flip_mask(0x1568270, 52)) == 22446704);
+ assert(unsigned(flip_mask(0x1568278, 52)) == 22446712);
+ assert(unsigned(flip_mask(0x1568280, 52)) == 22446720);
+ assert(unsigned(flip_mask(0x1568288, 52)) == 22446728);
+ assert(unsigned(flip_mask(0x1568290, 52)) == 22446736);
+ assert(unsigned(flip_mask(0x1568298, 52)) == 22446744);
+ assert(unsigned(flip_mask(0x15682a0, 52)) == 22446752);
+ assert(unsigned(flip_mask(0x15682a8, 52)) == 22446760);
+ assert(unsigned(flip_mask(0x15682b0, 52)) == 22446768);
+ assert(unsigned(flip_mask(0x15682b8, 52)) == 22446776);
+ assert(unsigned(flip_mask(0x15682c0, 52)) == 22446784);
+ assert(unsigned(flip_mask(0x15682c8, 52)) == 22446792);
+ assert(unsigned(flip_mask(0x15682d0, 52)) == 22446800);
+ assert(unsigned(flip_mask(0x15682d8, 52)) == 22446808);
+ assert(unsigned(flip_mask(0x15682e0, 52)) == 22446816);
+ assert(unsigned(flip_mask(0x15682e8, 52)) == 22446824);
+ assert(unsigned(flip_mask(0x15682f0, 52)) == 22446832);
+ assert(unsigned(flip_mask(0x15682f8, 52)) == 22446840);
+ assert(unsigned(flip_mask(0x1568300, 52)) == 22446848);
+ assert(unsigned(flip_mask(0x1568308, 52)) == 22446856);
+ assert(unsigned(flip_mask(0x1568310, 52)) == 22446864);
+ assert(unsigned(flip_mask(0x1568318, 52)) == 22446872);
+ assert(unsigned(flip_mask(0x1568320, 52)) == 22446880);
+ assert(unsigned(flip_mask(0x1568328, 52)) == 22446888);
+ assert(unsigned(flip_mask(0x1568330, 52)) == 22446896);
+ assert(unsigned(flip_mask(0x1568338, 52)) == 22446904);
+ assert(unsigned(flip_mask(0x1568340, 52)) == 22446912);
+ assert(unsigned(flip_mask(0x1568348, 52)) == 22446920);
+ assert(unsigned(flip_mask(0x1568350, 52)) == 22446928);
+ assert(unsigned(flip_mask(0x1568358, 52)) == 22446936);
+ assert(unsigned(flip_mask(0x1568360, 52)) == 22446944);
+ assert(unsigned(flip_mask(0x1568368, 52)) == 22446952);
+ assert(unsigned(flip_mask(0x1568370, 52)) == 22446960);
+ assert(unsigned(flip_mask(0x1568378, 52)) == 22446968);
+ assert(unsigned(flip_mask(0x1568380, 52)) == 22446976);
+ assert(unsigned(flip_mask(0x1568388, 52)) == 22446984);
+ assert(unsigned(flip_mask(0x1568390, 52)) == 22446992);
+ assert(unsigned(flip_mask(0x1568398, 52)) == 22447000);
+ assert(unsigned(flip_mask(0x15683a0, 52)) == 22447008);
+ assert(unsigned(flip_mask(0x15683a8, 52)) == 22447016);
+ assert(unsigned(flip_mask(0x15683b0, 52)) == 22447024);
+ assert(unsigned(flip_mask(0x15683b8, 52)) == 22447032);
+ assert(unsigned(flip_mask(0x15683c0, 52)) == 22447040);
+ assert(unsigned(flip_mask(0x15683c8, 52)) == 22447048);
+ assert(unsigned(flip_mask(0x15683d0, 52)) == 22447056);
+ assert(unsigned(flip_mask(0x15683d8, 52)) == 22447064);
+ assert(unsigned(flip_mask(0x15683e0, 52)) == 22447072);
+ assert(unsigned(flip_mask(0x15683e8, 52)) == 22447080);
+ assert(unsigned(flip_mask(0x15683f0, 52)) == 22447088);
+ assert(unsigned(flip_mask(0x15683f8, 52)) == 22447096);
+ assert(unsigned(flip_mask(0x1568400, 52)) == 22447104);
+ assert(unsigned(flip_mask(0x1568408, 52)) == 22447112);
+ assert(unsigned(flip_mask(0x1568410, 52)) == 22447120);
+ assert(unsigned(flip_mask(0x1568418, 52)) == 22447128);
+ assert(unsigned(flip_mask(0x1568420, 52)) == 22447136);
+ assert(unsigned(flip_mask(0x1568428, 52)) == 22447144);
+ assert(unsigned(flip_mask(0x1568430, 52)) == 22447152);
+ assert(unsigned(flip_mask(0x1568438, 52)) == 22447160);
+ assert(unsigned(flip_mask(0x1568440, 52)) == 22447168);
+ assert(unsigned(flip_mask(0x1568448, 52)) == 22447176);
+ assert(unsigned(flip_mask(0x1568450, 52)) == 22447184);
+ assert(unsigned(flip_mask(0x1568458, 52)) == 22447192);
+ assert(unsigned(flip_mask(0x1568460, 52)) == 22447200);
+ assert(unsigned(flip_mask(0x1568468, 52)) == 22447208);
+ assert(unsigned(flip_mask(0x1568470, 52)) == 22447216);
+ assert(unsigned(flip_mask(0x1568478, 52)) == 22447224);
+ assert(unsigned(flip_mask(0x1568480, 52)) == 22447232);
+ assert(unsigned(flip_mask(0x1568488, 52)) == 22447240);
+ assert(unsigned(flip_mask(0x1568490, 52)) == 22447248);
+ assert(unsigned(flip_mask(0x1568498, 52)) == 22447256);
+ assert(unsigned(flip_mask(0x15684a0, 52)) == 22447264);
+ assert(unsigned(flip_mask(0x15684a8, 52)) == 22447272);
+ assert(unsigned(flip_mask(0x15684b0, 52)) == 22447280);
+ assert(unsigned(flip_mask(0x15684b8, 52)) == 22447288);
+ assert(unsigned(flip_mask(0x15684c0, 52)) == 22447296);
+ assert(unsigned(flip_mask(0x15684c8, 52)) == 22447304);
+ assert(unsigned(flip_mask(0x15684d0, 52)) == 22447312);
+ assert(unsigned(flip_mask(0x15684d8, 52)) == 22447320);
+ assert(unsigned(flip_mask(0x15684e0, 52)) == 22447328);
+ assert(unsigned(flip_mask(0x15684e8, 52)) == 22447336);
+ assert(unsigned(flip_mask(0x15684f0, 52)) == 22447344);
+ assert(unsigned(flip_mask(0x15684f8, 52)) == 22447352);
+ assert(unsigned(flip_mask(0x1568500, 52)) == 22447360);
+ assert(unsigned(flip_mask(0x1568508, 52)) == 22447368);
+ assert(unsigned(flip_mask(0x1568510, 52)) == 22447376);
+ assert(unsigned(flip_mask(0x1568518, 52)) == 22447384);
+ assert(unsigned(flip_mask(0x1568520, 52)) == 22447392);
+ assert(unsigned(flip_mask(0x1568528, 52)) == 22447400);
+ assert(unsigned(flip_mask(0x1569000, 52)) == 22450176);
+ assert(unsigned(flip_mask(0x1569008, 52)) == 22450184);
+ assert(unsigned(flip_mask(0x1569010, 52)) == 22450192);
+ assert(unsigned(flip_mask(0x1569018, 52)) == 22450200);
+ assert(unsigned(flip_mask(0x1569020, 52)) == 22450208);
+ assert(unsigned(flip_mask(0x1569028, 52)) == 22450216);
+ assert(unsigned(flip_mask(0x1569030, 52)) == 22450224);
+ assert(unsigned(flip_mask(0x1569038, 52)) == 22450232);
+ assert(unsigned(flip_mask(0x1569040, 52)) == 22450240);
+ assert(unsigned(flip_mask(0x1569048, 52)) == 22450248);
+ assert(unsigned(flip_mask(0x1569050, 52)) == 22450256);
+ assert(unsigned(flip_mask(0x1569058, 52)) == 22450264);
+ assert(unsigned(flip_mask(0x1569060, 52)) == 22450272);
+ assert(unsigned(flip_mask(0x1569068, 52)) == 22450280);
+ assert(unsigned(flip_mask(0x1569070, 52)) == 22450288);
+ assert(unsigned(flip_mask(0x1569078, 52)) == 22450296);
+ assert(unsigned(flip_mask(0x1569080, 52)) == 22450304);
+ assert(unsigned(flip_mask(0x1569088, 52)) == 22450312);
+ assert(unsigned(flip_mask(0x1569090, 52)) == 22450320);
+ assert(unsigned(flip_mask(0x1569098, 52)) == 22450328);
+ assert(unsigned(flip_mask(0x15690a0, 52)) == 22450336);
+ assert(unsigned(flip_mask(0x15690a8, 52)) == 22450344);
+ assert(unsigned(flip_mask(0x15690b0, 52)) == 22450352);
+ assert(unsigned(flip_mask(0x15690b8, 52)) == 22450360);
+ assert(unsigned(flip_mask(0x15690c0, 52)) == 22450368);
+ assert(unsigned(flip_mask(0x15690c8, 52)) == 22450376);
+ assert(unsigned(flip_mask(0x15690d0, 52)) == 22450384);
+ assert(unsigned(flip_mask(0x15690d8, 52)) == 22450392);
+ assert(unsigned(flip_mask(0x15690e0, 52)) == 22450400);
+ assert(unsigned(flip_mask(0x15690e8, 52)) == 22450408);
+ assert(unsigned(flip_mask(0x15690f0, 52)) == 22450416);
+ assert(unsigned(flip_mask(0x15690f8, 52)) == 22450424);
+ assert(unsigned(flip_mask(0x1569100, 52)) == 22450432);
+ assert(unsigned(flip_mask(0x1569108, 52)) == 22450440);
+ assert(unsigned(flip_mask(0x1569110, 52)) == 22450448);
+ assert(unsigned(flip_mask(0x1569118, 52)) == 22450456);
+ assert(unsigned(flip_mask(0x1569120, 52)) == 22450464);
+ assert(unsigned(flip_mask(0x1569128, 52)) == 22450472);
+ assert(unsigned(flip_mask(0x1569130, 52)) == 22450480);
+ assert(unsigned(flip_mask(0x1569138, 52)) == 22450488);
+ assert(unsigned(flip_mask(0x1569140, 52)) == 22450496);
+ assert(unsigned(flip_mask(0x1569148, 52)) == 22450504);
+ assert(unsigned(flip_mask(0x1569150, 52)) == 22450512);
+ assert(unsigned(flip_mask(0x1569158, 52)) == 22450520);
+ assert(unsigned(flip_mask(0x1569160, 52)) == 22450528);
+ assert(unsigned(flip_mask(0x1569168, 52)) == 22450536);
+ assert(unsigned(flip_mask(0x1569170, 52)) == 22450544);
+ assert(unsigned(flip_mask(0x1569178, 52)) == 22450552);
+ assert(unsigned(flip_mask(0x1569180, 52)) == 22450560);
+ assert(unsigned(flip_mask(0x1569188, 52)) == 22450568);
+ assert(unsigned(flip_mask(0x1569190, 52)) == 22450576);
+ assert(unsigned(flip_mask(0x1569198, 52)) == 22450584);
+ assert(unsigned(flip_mask(0x15691a0, 52)) == 22450592);
+ assert(unsigned(flip_mask(0x15691a8, 52)) == 22450600);
+ assert(unsigned(flip_mask(0x15691b0, 52)) == 22450608);
+ assert(unsigned(flip_mask(0x15691b8, 52)) == 22450616);
+ assert(unsigned(flip_mask(0x15691c0, 52)) == 22450624);
+ assert(unsigned(flip_mask(0x15691c8, 52)) == 22450632);
+ assert(unsigned(flip_mask(0x15691d0, 52)) == 22450640);
+ assert(unsigned(flip_mask(0x15691d8, 52)) == 22450648);
+ assert(unsigned(flip_mask(0x15691e0, 52)) == 22450656);
+ assert(unsigned(flip_mask(0x15691e8, 52)) == 22450664);
+ assert(unsigned(flip_mask(0x15691f0, 52)) == 22450672);
+ assert(unsigned(flip_mask(0x15691f8, 52)) == 22450680);
+ assert(unsigned(flip_mask(0x1569200, 52)) == 22450688);
+ assert(unsigned(flip_mask(0x1569208, 52)) == 22450696);
+ assert(unsigned(flip_mask(0x1569210, 52)) == 22450704);
+ assert(unsigned(flip_mask(0x1569218, 52)) == 22450712);
+ assert(unsigned(flip_mask(0x1569220, 52)) == 22450720);
+ assert(unsigned(flip_mask(0x1569228, 52)) == 22450728);
+ assert(unsigned(flip_mask(0x1569230, 52)) == 22450736);
+ assert(unsigned(flip_mask(0x1569238, 52)) == 22450744);
+ assert(unsigned(flip_mask(0x1569240, 52)) == 22450752);
+ assert(unsigned(flip_mask(0x1569248, 52)) == 22450760);
+ assert(unsigned(flip_mask(0x1569250, 52)) == 22450768);
+ assert(unsigned(flip_mask(0x1569258, 52)) == 22450776);
+ assert(unsigned(flip_mask(0x1569260, 52)) == 22450784);
+ assert(unsigned(flip_mask(0x1569268, 52)) == 22450792);
+ assert(unsigned(flip_mask(0x1569270, 52)) == 22450800);
+ assert(unsigned(flip_mask(0x1569278, 52)) == 22450808);
+ assert(unsigned(flip_mask(0x1569280, 52)) == 22450816);
+ assert(unsigned(flip_mask(0x1569288, 52)) == 22450824);
+ assert(unsigned(flip_mask(0x1569290, 52)) == 22450832);
+ assert(unsigned(flip_mask(0x1569298, 52)) == 22450840);
+ assert(unsigned(flip_mask(0x15692a0, 52)) == 22450848);
+ assert(unsigned(flip_mask(0x15692a8, 52)) == 22450856);
+ assert(unsigned(flip_mask(0x15692b0, 52)) == 22450864);
+ assert(unsigned(flip_mask(0x15692b8, 52)) == 22450872);
+ assert(unsigned(flip_mask(0x15692c0, 52)) == 22450880);
+ assert(unsigned(flip_mask(0x15692c8, 52)) == 22450888);
+ assert(unsigned(flip_mask(0x15692d0, 52)) == 22450896);
+ assert(unsigned(flip_mask(0x15692d8, 52)) == 22450904);
+ assert(unsigned(flip_mask(0x15692e0, 52)) == 22450912);
+ assert(unsigned(flip_mask(0x15692e8, 52)) == 22450920);
+ assert(unsigned(flip_mask(0x15692f0, 52)) == 22450928);
+ assert(unsigned(flip_mask(0x15692f8, 52)) == 22450936);
+ assert(unsigned(flip_mask(0x1569300, 52)) == 22450944);
+ assert(unsigned(flip_mask(0x1569308, 52)) == 22450952);
+ assert(unsigned(flip_mask(0x1569310, 52)) == 22450960);
+ assert(unsigned(flip_mask(0x1569318, 52)) == 22450968);
+ assert(unsigned(flip_mask(0x1569320, 52)) == 22450976);
+ assert(unsigned(flip_mask(0x1569328, 52)) == 22450984);
+ assert(unsigned(flip_mask(0x1569330, 52)) == 22450992);
+ assert(unsigned(flip_mask(0x1569338, 52)) == 22451000);
+ assert(unsigned(flip_mask(0x1569340, 52)) == 22451008);
+ assert(unsigned(flip_mask(0x1569348, 52)) == 22451016);
+ assert(unsigned(flip_mask(0x1569350, 52)) == 22451024);
+ assert(unsigned(flip_mask(0x1569358, 52)) == 22451032);
+ assert(unsigned(flip_mask(0x1569360, 52)) == 22451040);
+ assert(unsigned(flip_mask(0x1569368, 52)) == 22451048);
+ assert(unsigned(flip_mask(0x1569370, 52)) == 22451056);
+ assert(unsigned(flip_mask(0x1569378, 52)) == 22451064);
+ assert(unsigned(flip_mask(0x1569380, 52)) == 22451072);
+ assert(unsigned(flip_mask(0x1569388, 52)) == 22451080);
+ assert(unsigned(flip_mask(0x1569390, 52)) == 22451088);
+ assert(unsigned(flip_mask(0x1569398, 52)) == 22451096);
+ assert(unsigned(flip_mask(0x15693a0, 52)) == 22451104);
+ assert(unsigned(flip_mask(0x15693a8, 52)) == 22451112);
+ assert(unsigned(flip_mask(0x15693b0, 52)) == 22451120);
+ assert(unsigned(flip_mask(0x15693b8, 52)) == 22451128);
+ assert(unsigned(flip_mask(0x15693c0, 52)) == 22451136);
+ assert(unsigned(flip_mask(0x15693c8, 52)) == 22451144);
+ assert(unsigned(flip_mask(0x15693d0, 52)) == 22451152);
+ assert(unsigned(flip_mask(0x15693d8, 52)) == 22451160);
+ assert(unsigned(flip_mask(0x15693e0, 52)) == 22451168);
+ assert(unsigned(flip_mask(0x15693e8, 52)) == 22451176);
+ assert(unsigned(flip_mask(0x15693f0, 52)) == 22451184);
+ assert(unsigned(flip_mask(0x15693f8, 52)) == 22451192);
+ assert(unsigned(flip_mask(0x1569400, 52)) == 22451200);
+ assert(unsigned(flip_mask(0x1569408, 52)) == 22451208);
+ assert(unsigned(flip_mask(0x1569410, 52)) == 22451216);
+ assert(unsigned(flip_mask(0x1569418, 52)) == 22451224);
+ assert(unsigned(flip_mask(0x1569420, 52)) == 22451232);
+ assert(unsigned(flip_mask(0x1569428, 52)) == 22451240);
+ assert(unsigned(flip_mask(0x1569430, 52)) == 22451248);
+ assert(unsigned(flip_mask(0x1569438, 52)) == 22451256);
+ assert(unsigned(flip_mask(0x1569440, 52)) == 22451264);
+ assert(unsigned(flip_mask(0x1569448, 52)) == 22451272);
+ assert(unsigned(flip_mask(0x1569450, 52)) == 22451280);
+ assert(unsigned(flip_mask(0x1569458, 52)) == 22451288);
+ assert(unsigned(flip_mask(0x1569460, 52)) == 22451296);
+ assert(unsigned(flip_mask(0x1569468, 52)) == 22451304);
+ assert(unsigned(flip_mask(0x1569470, 52)) == 22451312);
+ assert(unsigned(flip_mask(0x1569478, 52)) == 22451320);
+ assert(unsigned(flip_mask(0x1569480, 52)) == 22451328);
+ assert(unsigned(flip_mask(0x1569488, 52)) == 22451336);
+ assert(unsigned(flip_mask(0x1569490, 52)) == 22451344);
+ assert(unsigned(flip_mask(0x1569498, 52)) == 22451352);
+ assert(unsigned(flip_mask(0x15694a0, 52)) == 22451360);
+ assert(unsigned(flip_mask(0x15694a8, 52)) == 22451368);
+ assert(unsigned(flip_mask(0x15694b0, 52)) == 22451376);
+ assert(unsigned(flip_mask(0x15694b8, 52)) == 22451384);
+ assert(unsigned(flip_mask(0x15694c0, 52)) == 22451392);
+ assert(unsigned(flip_mask(0x15694c8, 52)) == 22451400);
+ assert(unsigned(flip_mask(0x15694d0, 52)) == 22451408);
+ assert(unsigned(flip_mask(0x15694d8, 52)) == 22451416);
+ assert(unsigned(flip_mask(0x15694e0, 52)) == 22451424);
+ assert(unsigned(flip_mask(0x15694e8, 52)) == 22451432);
+ assert(unsigned(flip_mask(0x15694f0, 52)) == 22451440);
+ assert(unsigned(flip_mask(0x15694f8, 52)) == 22451448);
+ assert(unsigned(flip_mask(0x1569500, 52)) == 22451456);
+ assert(unsigned(flip_mask(0x1569508, 52)) == 22451464);
+ assert(unsigned(flip_mask(0x1569510, 52)) == 22451472);
+ assert(unsigned(flip_mask(0x1569518, 52)) == 22451480);
+ assert(unsigned(flip_mask(0x1569520, 52)) == 22451488);
+ assert(unsigned(flip_mask(0x1569528, 52)) == 22451496);
+ assert(unsigned(flip_mask(0x1569530, 52)) == 22451504);
+ assert(unsigned(flip_mask(0x1569538, 52)) == 22451512);
+ assert(unsigned(flip_mask(0x1569540, 52)) == 22451520);
+ assert(unsigned(flip_mask(0x1569548, 52)) == 22451528);
+ assert(unsigned(flip_mask(0x1569550, 52)) == 22451536);
+ assert(unsigned(flip_mask(0x1569558, 52)) == 22451544);
+ assert(unsigned(flip_mask(0x1569560, 52)) == 22451552);
+ assert(unsigned(flip_mask(0x1569568, 52)) == 22451560);
+ assert(unsigned(flip_mask(0x1569570, 52)) == 22451568);
+ assert(unsigned(flip_mask(0x1569578, 52)) == 22451576);
+ assert(unsigned(flip_mask(0x1569580, 52)) == 22451584);
+ assert(unsigned(flip_mask(0x1569588, 52)) == 22451592);
+ assert(unsigned(flip_mask(0x1569590, 52)) == 22451600);
+ assert(unsigned(flip_mask(0x1569598, 52)) == 22451608);
+ assert(unsigned(flip_mask(0x15695a0, 52)) == 22451616);
+ assert(unsigned(flip_mask(0x15695a8, 52)) == 22451624);
+ assert(unsigned(flip_mask(0x15695b0, 52)) == 22451632);
+ assert(unsigned(flip_mask(0x15695b8, 52)) == 22451640);
+ assert(unsigned(flip_mask(0x15695c0, 52)) == 22451648);
+ assert(unsigned(flip_mask(0x15695c8, 52)) == 22451656);
+ assert(unsigned(flip_mask(0x15695d0, 52)) == 22451664);
+ assert(unsigned(flip_mask(0x15695d8, 52)) == 22451672);
+ assert(unsigned(flip_mask(0x15695e0, 52)) == 22451680);
+ assert(unsigned(flip_mask(0x15695e8, 52)) == 22451688);
+ assert(unsigned(flip_mask(0x15695f0, 52)) == 22451696);
+ assert(unsigned(flip_mask(0x15695f8, 52)) == 22451704);
+ assert(unsigned(flip_mask(0x1569600, 52)) == 22451712);
+ assert(unsigned(flip_mask(0x1569608, 52)) == 22451720);
+ assert(unsigned(flip_mask(0x1569610, 52)) == 22451728);
+ assert(unsigned(flip_mask(0x1569618, 52)) == 22451736);
+ assert(unsigned(flip_mask(0x1569620, 52)) == 22451744);
+ assert(unsigned(flip_mask(0x1569628, 52)) == 22451752);
+ assert(unsigned(flip_mask(0x1569630, 52)) == 22451760);
+ assert(unsigned(flip_mask(0x1569638, 52)) == 22451768);
+ assert(unsigned(flip_mask(0x1569640, 52)) == 22451776);
+ assert(unsigned(flip_mask(0x1569648, 52)) == 22451784);
+ assert(unsigned(flip_mask(0x1569650, 52)) == 22451792);
+ assert(unsigned(flip_mask(0x1569658, 52)) == 22451800);
+ assert(unsigned(flip_mask(0x1569660, 52)) == 22451808);
+ assert(unsigned(flip_mask(0x1569668, 52)) == 22451816);
+ assert(unsigned(flip_mask(0x1569670, 52)) == 22451824);
+ assert(unsigned(flip_mask(0x1569678, 52)) == 22451832);
+ assert(unsigned(flip_mask(0x1569680, 52)) == 22451840);
+ assert(unsigned(flip_mask(0x1569688, 52)) == 22451848);
+ assert(unsigned(flip_mask(0x1569690, 52)) == 22451856);
+ assert(unsigned(flip_mask(0x1569698, 52)) == 22451864);
+ assert(unsigned(flip_mask(0x15696a0, 52)) == 22451872);
+ assert(unsigned(flip_mask(0x15696a8, 52)) == 22451880);
+ assert(unsigned(flip_mask(0x15696b0, 52)) == 22451888);
+ assert(unsigned(flip_mask(0x15696b8, 52)) == 22451896);
+ assert(unsigned(flip_mask(0x15696c0, 52)) == 22451904);
+ assert(unsigned(flip_mask(0x15696c8, 52)) == 22451912);
+ assert(unsigned(flip_mask(0x15696d0, 52)) == 22451920);
+ assert(unsigned(flip_mask(0x15696d8, 52)) == 22451928);
+ assert(unsigned(flip_mask(0x15696e0, 52)) == 22451936);
+ assert(unsigned(flip_mask(0x15696e8, 52)) == 22451944);
+ assert(unsigned(flip_mask(0x15696f0, 52)) == 22451952);
+ assert(unsigned(flip_mask(0x15696f8, 52)) == 22451960);
+ assert(unsigned(flip_mask(0x1569700, 52)) == 22451968);
+ assert(unsigned(flip_mask(0x1569708, 52)) == 22451976);
+ assert(unsigned(flip_mask(0x1569710, 52)) == 22451984);
+ assert(unsigned(flip_mask(0x1569718, 52)) == 22451992);
+ assert(unsigned(flip_mask(0x1569720, 52)) == 22452000);
+ assert(unsigned(flip_mask(0x1569728, 52)) == 22452008);
+ assert(unsigned(flip_mask(0x1569730, 52)) == 22452016);
+ assert(unsigned(flip_mask(0x1569738, 52)) == 22452024);
+ assert(unsigned(flip_mask(0x1569740, 52)) == 22452032);
+ assert(unsigned(flip_mask(0x1569748, 52)) == 22452040);
+ assert(unsigned(flip_mask(0x1569750, 52)) == 22452048);
+ assert(unsigned(flip_mask(0x1569758, 52)) == 22452056);
+ assert(unsigned(flip_mask(0x1569760, 52)) == 22452064);
+ assert(unsigned(flip_mask(0x1569768, 52)) == 22452072);
+ assert(unsigned(flip_mask(0x1569770, 52)) == 22452080);
+ assert(unsigned(flip_mask(0x1569778, 52)) == 22452088);
+ assert(unsigned(flip_mask(0x1569780, 52)) == 22452096);
+ assert(unsigned(flip_mask(0x1569788, 52)) == 22452104);
+ assert(unsigned(flip_mask(0x1569790, 52)) == 22452112);
+ assert(unsigned(flip_mask(0x1569798, 52)) == 22452120);
+ assert(unsigned(flip_mask(0x15697a0, 52)) == 22452128);
+ assert(unsigned(flip_mask(0x15697a8, 52)) == 22452136);
+ assert(unsigned(flip_mask(0x15697b0, 52)) == 22452144);
+ assert(unsigned(flip_mask(0x15697b8, 52)) == 22452152);
+ assert(unsigned(flip_mask(0x15697c0, 52)) == 22452160);
+ assert(unsigned(flip_mask(0x15697c8, 52)) == 22452168);
+ assert(unsigned(flip_mask(0x15697d0, 52)) == 22452176);
+ assert(unsigned(flip_mask(0x15697d8, 52)) == 22452184);
+ assert(unsigned(flip_mask(0x15697e0, 52)) == 22452192);
+ assert(unsigned(flip_mask(0x15697e8, 52)) == 22452200);
+ assert(unsigned(flip_mask(0x15697f0, 52)) == 22452208);
+ assert(unsigned(flip_mask(0x15697f8, 52)) == 22452216);
+ assert(unsigned(flip_mask(0x1569800, 52)) == 22452224);
+ assert(unsigned(flip_mask(0x1569808, 52)) == 22452232);
+ assert(unsigned(flip_mask(0x1569810, 52)) == 22452240);
+ assert(unsigned(flip_mask(0x1569818, 52)) == 22452248);
+ assert(unsigned(flip_mask(0x1569820, 52)) == 22452256);
+ assert(unsigned(flip_mask(0x1569828, 52)) == 22452264);
+ assert(unsigned(flip_mask(0x1569830, 52)) == 22452272);
+ assert(unsigned(flip_mask(0x1569838, 52)) == 22452280);
+ assert(unsigned(flip_mask(0x1569840, 52)) == 22452288);
+ assert(unsigned(flip_mask(0x1569848, 52)) == 22452296);
+ assert(unsigned(flip_mask(0x1569850, 52)) == 22452304);
+ assert(unsigned(flip_mask(0x1569858, 52)) == 22452312);
+ assert(unsigned(flip_mask(0x1569860, 52)) == 22452320);
+ assert(unsigned(flip_mask(0x1569868, 52)) == 22452328);
+ assert(unsigned(flip_mask(0x1569870, 52)) == 22452336);
+ assert(unsigned(flip_mask(0x1569878, 52)) == 22452344);
+ assert(unsigned(flip_mask(0x1569880, 52)) == 22452352);
+ assert(unsigned(flip_mask(0x1569888, 52)) == 22452360);
+ assert(unsigned(flip_mask(0x1569890, 52)) == 22452368);
+ assert(unsigned(flip_mask(0x1569898, 52)) == 22452376);
+ assert(unsigned(flip_mask(0x15698a0, 52)) == 22452384);
+ assert(unsigned(flip_mask(0x15698a8, 52)) == 22452392);
+ assert(unsigned(flip_mask(0x15698b0, 52)) == 22452400);
+ assert(unsigned(flip_mask(0x15698b8, 52)) == 22452408);
+ assert(unsigned(flip_mask(0x16000, 52)) == 90112);
+ assert(unsigned(flip_mask(0x1668008, 52)) == 23494664);
+ assert(unsigned(flip_mask(0x1668010, 52)) == 23494672);
+ assert(unsigned(flip_mask(0x1668018, 52)) == 23494680);
+ assert(unsigned(flip_mask(0x1668020, 52)) == 23494688);
+ assert(unsigned(flip_mask(0x1668028, 52)) == 23494696);
+ assert(unsigned(flip_mask(0x1668030, 52)) == 23494704);
+ assert(unsigned(flip_mask(0x1668038, 52)) == 23494712);
+ assert(unsigned(flip_mask(0x1668040, 52)) == 23494720);
+ assert(unsigned(flip_mask(0x1668048, 52)) == 23494728);
+ assert(unsigned(flip_mask(0x1668050, 52)) == 23494736);
+ assert(unsigned(flip_mask(0x1668058, 52)) == 23494744);
+ assert(unsigned(flip_mask(0x1668060, 52)) == 23494752);
+ assert(unsigned(flip_mask(0x1668068, 52)) == 23494760);
+ assert(unsigned(flip_mask(0x1668070, 52)) == 23494768);
+ assert(unsigned(flip_mask(0x1668078, 52)) == 23494776);
+ assert(unsigned(flip_mask(0x1668080, 52)) == 23494784);
+ assert(unsigned(flip_mask(0x1668088, 52)) == 23494792);
+ assert(unsigned(flip_mask(0x1668090, 52)) == 23494800);
+ assert(unsigned(flip_mask(0x1668098, 52)) == 23494808);
+ assert(unsigned(flip_mask(0x16680a0, 52)) == 23494816);
+ assert(unsigned(flip_mask(0x16680a8, 52)) == 23494824);
+ assert(unsigned(flip_mask(0x16680b0, 52)) == 23494832);
+ assert(unsigned(flip_mask(0x16680b8, 52)) == 23494840);
+ assert(unsigned(flip_mask(0x16680c0, 52)) == 23494848);
+ assert(unsigned(flip_mask(0x16680c8, 52)) == 23494856);
+ assert(unsigned(flip_mask(0x16680d0, 52)) == 23494864);
+ assert(unsigned(flip_mask(0x16680d8, 52)) == 23494872);
+ assert(unsigned(flip_mask(0x16680e0, 52)) == 23494880);
+ assert(unsigned(flip_mask(0x16680e8, 52)) == 23494888);
+ assert(unsigned(flip_mask(0x16680f0, 52)) == 23494896);
+ assert(unsigned(flip_mask(0x16680f8, 52)) == 23494904);
+ assert(unsigned(flip_mask(0x1668100, 52)) == 23494912);
+ assert(unsigned(flip_mask(0x1668108, 52)) == 23494920);
+ assert(unsigned(flip_mask(0x1668110, 52)) == 23494928);
+ assert(unsigned(flip_mask(0x1668118, 52)) == 23494936);
+ assert(unsigned(flip_mask(0x1668120, 52)) == 23494944);
+ assert(unsigned(flip_mask(0x1668128, 52)) == 23494952);
+ assert(unsigned(flip_mask(0x1668130, 52)) == 23494960);
+ assert(unsigned(flip_mask(0x1668138, 52)) == 23494968);
+ assert(unsigned(flip_mask(0x1668140, 52)) == 23494976);
+ assert(unsigned(flip_mask(0x1668148, 52)) == 23494984);
+ assert(unsigned(flip_mask(0x1668150, 52)) == 23494992);
+ assert(unsigned(flip_mask(0x1668158, 52)) == 23495000);
+ assert(unsigned(flip_mask(0x1668160, 52)) == 23495008);
+ assert(unsigned(flip_mask(0x1668168, 52)) == 23495016);
+ assert(unsigned(flip_mask(0x1668170, 52)) == 23495024);
+ assert(unsigned(flip_mask(0x1668178, 52)) == 23495032);
+ assert(unsigned(flip_mask(0x1668180, 52)) == 23495040);
+ assert(unsigned(flip_mask(0x1668188, 52)) == 23495048);
+ assert(unsigned(flip_mask(0x1668190, 52)) == 23495056);
+ assert(unsigned(flip_mask(0x1668198, 52)) == 23495064);
+ assert(unsigned(flip_mask(0x16681a0, 52)) == 23495072);
+ assert(unsigned(flip_mask(0x16681a8, 52)) == 23495080);
+ assert(unsigned(flip_mask(0x16681b0, 52)) == 23495088);
+ assert(unsigned(flip_mask(0x16681b8, 52)) == 23495096);
+ assert(unsigned(flip_mask(0x16681c0, 52)) == 23495104);
+ assert(unsigned(flip_mask(0x16681c8, 52)) == 23495112);
+ assert(unsigned(flip_mask(0x16681d0, 52)) == 23495120);
+ assert(unsigned(flip_mask(0x16681d8, 52)) == 23495128);
+ assert(unsigned(flip_mask(0x16681e0, 52)) == 23495136);
+ assert(unsigned(flip_mask(0x16681e8, 52)) == 23495144);
+ assert(unsigned(flip_mask(0x16681f0, 52)) == 23495152);
+ assert(unsigned(flip_mask(0x16681f8, 52)) == 23495160);
+ assert(unsigned(flip_mask(0x1668200, 52)) == 23495168);
+ assert(unsigned(flip_mask(0x1668208, 52)) == 23495176);
+ assert(unsigned(flip_mask(0x1668210, 52)) == 23495184);
+ assert(unsigned(flip_mask(0x1668218, 52)) == 23495192);
+ assert(unsigned(flip_mask(0x1668220, 52)) == 23495200);
+ assert(unsigned(flip_mask(0x1668228, 52)) == 23495208);
+ assert(unsigned(flip_mask(0x1668230, 52)) == 23495216);
+ assert(unsigned(flip_mask(0x1668238, 52)) == 23495224);
+ assert(unsigned(flip_mask(0x1668240, 52)) == 23495232);
+ assert(unsigned(flip_mask(0x1668248, 52)) == 23495240);
+ assert(unsigned(flip_mask(0x1668250, 52)) == 23495248);
+ assert(unsigned(flip_mask(0x1668258, 52)) == 23495256);
+ assert(unsigned(flip_mask(0x1668260, 52)) == 23495264);
+ assert(unsigned(flip_mask(0x1668268, 52)) == 23495272);
+ assert(unsigned(flip_mask(0x1668270, 52)) == 23495280);
+ assert(unsigned(flip_mask(0x1668278, 52)) == 23495288);
+ assert(unsigned(flip_mask(0x1668280, 52)) == 23495296);
+ assert(unsigned(flip_mask(0x1668288, 52)) == 23495304);
+ assert(unsigned(flip_mask(0x1668290, 52)) == 23495312);
+ assert(unsigned(flip_mask(0x1668298, 52)) == 23495320);
+ assert(unsigned(flip_mask(0x16682a0, 52)) == 23495328);
+ assert(unsigned(flip_mask(0x16682a8, 52)) == 23495336);
+ assert(unsigned(flip_mask(0x16682b0, 52)) == 23495344);
+ assert(unsigned(flip_mask(0x16682b8, 52)) == 23495352);
+ assert(unsigned(flip_mask(0x16682c0, 52)) == 23495360);
+ assert(unsigned(flip_mask(0x16682c8, 52)) == 23495368);
+ assert(unsigned(flip_mask(0x16682d0, 52)) == 23495376);
+ assert(unsigned(flip_mask(0x16682d8, 52)) == 23495384);
+ assert(unsigned(flip_mask(0x16682e0, 52)) == 23495392);
+ assert(unsigned(flip_mask(0x16682e8, 52)) == 23495400);
+ assert(unsigned(flip_mask(0x16682f0, 52)) == 23495408);
+ assert(unsigned(flip_mask(0x16682f8, 52)) == 23495416);
+ assert(unsigned(flip_mask(0x1668300, 52)) == 23495424);
+ assert(unsigned(flip_mask(0x1668308, 52)) == 23495432);
+ assert(unsigned(flip_mask(0x1668310, 52)) == 23495440);
+ assert(unsigned(flip_mask(0x1668318, 52)) == 23495448);
+ assert(unsigned(flip_mask(0x1668320, 52)) == 23495456);
+ assert(unsigned(flip_mask(0x1668328, 52)) == 23495464);
+ assert(unsigned(flip_mask(0x1668330, 52)) == 23495472);
+ assert(unsigned(flip_mask(0x1668338, 52)) == 23495480);
+ assert(unsigned(flip_mask(0x1668340, 52)) == 23495488);
+ assert(unsigned(flip_mask(0x1668348, 52)) == 23495496);
+ assert(unsigned(flip_mask(0x1668350, 52)) == 23495504);
+ assert(unsigned(flip_mask(0x1668358, 52)) == 23495512);
+ assert(unsigned(flip_mask(0x1668360, 52)) == 23495520);
+ assert(unsigned(flip_mask(0x1668368, 52)) == 23495528);
+ assert(unsigned(flip_mask(0x1668370, 52)) == 23495536);
+ assert(unsigned(flip_mask(0x1668378, 52)) == 23495544);
+ assert(unsigned(flip_mask(0x1668380, 52)) == 23495552);
+ assert(unsigned(flip_mask(0x1668388, 52)) == 23495560);
+ assert(unsigned(flip_mask(0x1668390, 52)) == 23495568);
+ assert(unsigned(flip_mask(0x1668398, 52)) == 23495576);
+ assert(unsigned(flip_mask(0x16683a0, 52)) == 23495584);
+ assert(unsigned(flip_mask(0x16683a8, 52)) == 23495592);
+ assert(unsigned(flip_mask(0x16683b0, 52)) == 23495600);
+ assert(unsigned(flip_mask(0x16683b8, 52)) == 23495608);
+ assert(unsigned(flip_mask(0x16683c0, 52)) == 23495616);
+ assert(unsigned(flip_mask(0x16683c8, 52)) == 23495624);
+ assert(unsigned(flip_mask(0x16683d0, 52)) == 23495632);
+ assert(unsigned(flip_mask(0x16683d8, 52)) == 23495640);
+ assert(unsigned(flip_mask(0x16683e0, 52)) == 23495648);
+ assert(unsigned(flip_mask(0x16683e8, 52)) == 23495656);
+ assert(unsigned(flip_mask(0x16683f0, 52)) == 23495664);
+ assert(unsigned(flip_mask(0x16683f8, 52)) == 23495672);
+ assert(unsigned(flip_mask(0x1668400, 52)) == 23495680);
+ assert(unsigned(flip_mask(0x1668408, 52)) == 23495688);
+ assert(unsigned(flip_mask(0x1668410, 52)) == 23495696);
+ assert(unsigned(flip_mask(0x1668418, 52)) == 23495704);
+ assert(unsigned(flip_mask(0x1668420, 52)) == 23495712);
+ assert(unsigned(flip_mask(0x1668428, 52)) == 23495720);
+ assert(unsigned(flip_mask(0x1668430, 52)) == 23495728);
+ assert(unsigned(flip_mask(0x1668438, 52)) == 23495736);
+ assert(unsigned(flip_mask(0x1668440, 52)) == 23495744);
+ assert(unsigned(flip_mask(0x1668448, 52)) == 23495752);
+ assert(unsigned(flip_mask(0x1668450, 52)) == 23495760);
+ assert(unsigned(flip_mask(0x1668458, 52)) == 23495768);
+ assert(unsigned(flip_mask(0x1668460, 52)) == 23495776);
+ assert(unsigned(flip_mask(0x1668468, 52)) == 23495784);
+ assert(unsigned(flip_mask(0x1668470, 52)) == 23495792);
+ assert(unsigned(flip_mask(0x1668478, 52)) == 23495800);
+ assert(unsigned(flip_mask(0x1668480, 52)) == 23495808);
+ assert(unsigned(flip_mask(0x1668488, 52)) == 23495816);
+ assert(unsigned(flip_mask(0x1668490, 52)) == 23495824);
+ assert(unsigned(flip_mask(0x1668498, 52)) == 23495832);
+ assert(unsigned(flip_mask(0x16684a0, 52)) == 23495840);
+ assert(unsigned(flip_mask(0x16684a8, 52)) == 23495848);
+ assert(unsigned(flip_mask(0x16684b0, 52)) == 23495856);
+ assert(unsigned(flip_mask(0x16684b8, 52)) == 23495864);
+ assert(unsigned(flip_mask(0x16684c0, 52)) == 23495872);
+ assert(unsigned(flip_mask(0x16684c8, 52)) == 23495880);
+ assert(unsigned(flip_mask(0x16684d0, 52)) == 23495888);
+ assert(unsigned(flip_mask(0x16684d8, 52)) == 23495896);
+ assert(unsigned(flip_mask(0x16684e0, 52)) == 23495904);
+ assert(unsigned(flip_mask(0x16684e8, 52)) == 23495912);
+ assert(unsigned(flip_mask(0x16684f0, 52)) == 23495920);
+ assert(unsigned(flip_mask(0x16684f8, 52)) == 23495928);
+ assert(unsigned(flip_mask(0x1668500, 52)) == 23495936);
+ assert(unsigned(flip_mask(0x1668508, 52)) == 23495944);
+ assert(unsigned(flip_mask(0x1668510, 52)) == 23495952);
+ assert(unsigned(flip_mask(0x1668518, 52)) == 23495960);
+ assert(unsigned(flip_mask(0x1668520, 52)) == 23495968);
+ assert(unsigned(flip_mask(0x1668528, 52)) == 23495976);
+ assert(unsigned(flip_mask(0x1668530, 52)) == 23495984);
+ assert(unsigned(flip_mask(0x1668538, 52)) == 23495992);
+ assert(unsigned(flip_mask(0x1668540, 52)) == 23496000);
+ assert(unsigned(flip_mask(0x1668548, 52)) == 23496008);
+ assert(unsigned(flip_mask(0x1668550, 52)) == 23496016);
+ assert(unsigned(flip_mask(0x1668558, 52)) == 23496024);
+ assert(unsigned(flip_mask(0x1668560, 52)) == 23496032);
+ assert(unsigned(flip_mask(0x1668568, 52)) == 23496040);
+ assert(unsigned(flip_mask(0x1668570, 52)) == 23496048);
+ assert(unsigned(flip_mask(0x1668578, 52)) == 23496056);
+ assert(unsigned(flip_mask(0x1668580, 52)) == 23496064);
+ assert(unsigned(flip_mask(0x1668588, 52)) == 23496072);
+ assert(unsigned(flip_mask(0x1668590, 52)) == 23496080);
+ assert(unsigned(flip_mask(0x1668598, 52)) == 23496088);
+ assert(unsigned(flip_mask(0x16685a0, 52)) == 23496096);
+ assert(unsigned(flip_mask(0x16685a8, 52)) == 23496104);
+ assert(unsigned(flip_mask(0x16685b0, 52)) == 23496112);
+ assert(unsigned(flip_mask(0x16685b8, 52)) == 23496120);
+ assert(unsigned(flip_mask(0x16685c0, 52)) == 23496128);
+ assert(unsigned(flip_mask(0x16685c8, 52)) == 23496136);
+ assert(unsigned(flip_mask(0x16685d0, 52)) == 23496144);
+ assert(unsigned(flip_mask(0x16685d8, 52)) == 23496152);
+ assert(unsigned(flip_mask(0x16685e0, 52)) == 23496160);
+ assert(unsigned(flip_mask(0x16685e8, 52)) == 23496168);
+ assert(unsigned(flip_mask(0x16685f0, 52)) == 23496176);
+ assert(unsigned(flip_mask(0x16685f8, 52)) == 23496184);
+ assert(unsigned(flip_mask(0x1668600, 52)) == 23496192);
+ assert(unsigned(flip_mask(0x1668608, 52)) == 23496200);
+ assert(unsigned(flip_mask(0x1668610, 52)) == 23496208);
+ assert(unsigned(flip_mask(0x1668618, 52)) == 23496216);
+ assert(unsigned(flip_mask(0x1668620, 52)) == 23496224);
+ assert(unsigned(flip_mask(0x1668628, 52)) == 23496232);
+ assert(unsigned(flip_mask(0x1668630, 52)) == 23496240);
+ assert(unsigned(flip_mask(0x1668638, 52)) == 23496248);
+ assert(unsigned(flip_mask(0x1668640, 52)) == 23496256);
+ assert(unsigned(flip_mask(0x1668648, 52)) == 23496264);
+ assert(unsigned(flip_mask(0x1668650, 52)) == 23496272);
+ assert(unsigned(flip_mask(0x1668658, 52)) == 23496280);
+ assert(unsigned(flip_mask(0x1668660, 52)) == 23496288);
+ assert(unsigned(flip_mask(0x1668668, 52)) == 23496296);
+ assert(unsigned(flip_mask(0x1668670, 52)) == 23496304);
+ assert(unsigned(flip_mask(0x1668678, 52)) == 23496312);
+ assert(unsigned(flip_mask(0x1668680, 52)) == 23496320);
+ assert(unsigned(flip_mask(0x1668688, 52)) == 23496328);
+ assert(unsigned(flip_mask(0x1668690, 52)) == 23496336);
+ assert(unsigned(flip_mask(0x1668698, 52)) == 23496344);
+ assert(unsigned(flip_mask(0x16686a0, 52)) == 23496352);
+ assert(unsigned(flip_mask(0x16686a8, 52)) == 23496360);
+ assert(unsigned(flip_mask(0x16686b0, 52)) == 23496368);
+ assert(unsigned(flip_mask(0x16686b8, 52)) == 23496376);
+ assert(unsigned(flip_mask(0x16686c0, 52)) == 23496384);
+ assert(unsigned(flip_mask(0x16686c8, 52)) == 23496392);
+ assert(unsigned(flip_mask(0x16686d0, 52)) == 23496400);
+ assert(unsigned(flip_mask(0x16686d8, 52)) == 23496408);
+ assert(unsigned(flip_mask(0x16686e0, 52)) == 23496416);
+ assert(unsigned(flip_mask(0x16686e8, 52)) == 23496424);
+ assert(unsigned(flip_mask(0x16686f0, 52)) == 23496432);
+ assert(unsigned(flip_mask(0x16686f8, 52)) == 23496440);
+ assert(unsigned(flip_mask(0x1668700, 52)) == 23496448);
+ assert(unsigned(flip_mask(0x1668708, 52)) == 23496456);
+ assert(unsigned(flip_mask(0x1668710, 52)) == 23496464);
+ assert(unsigned(flip_mask(0x1668718, 52)) == 23496472);
+ assert(unsigned(flip_mask(0x1668720, 52)) == 23496480);
+ assert(unsigned(flip_mask(0x1668728, 52)) == 23496488);
+ assert(unsigned(flip_mask(0x1668730, 52)) == 23496496);
+ assert(unsigned(flip_mask(0x1668738, 52)) == 23496504);
+ assert(unsigned(flip_mask(0x1668740, 52)) == 23496512);
+ assert(unsigned(flip_mask(0x1668748, 52)) == 23496520);
+ assert(unsigned(flip_mask(0x1668750, 52)) == 23496528);
+ assert(unsigned(flip_mask(0x1668758, 52)) == 23496536);
+ assert(unsigned(flip_mask(0x1668760, 52)) == 23496544);
+ assert(unsigned(flip_mask(0x1668768, 52)) == 23496552);
+ assert(unsigned(flip_mask(0x1668770, 52)) == 23496560);
+ assert(unsigned(flip_mask(0x1668778, 52)) == 23496568);
+ assert(unsigned(flip_mask(0x1668780, 52)) == 23496576);
+ assert(unsigned(flip_mask(0x1668788, 52)) == 23496584);
+ assert(unsigned(flip_mask(0x1668790, 52)) == 23496592);
+ assert(unsigned(flip_mask(0x1668798, 52)) == 23496600);
+ assert(unsigned(flip_mask(0x16687a0, 52)) == 23496608);
+ assert(unsigned(flip_mask(0x16687a8, 52)) == 23496616);
+ assert(unsigned(flip_mask(0x16687b0, 52)) == 23496624);
+ assert(unsigned(flip_mask(0x16687b8, 52)) == 23496632);
+ assert(unsigned(flip_mask(0x16687c0, 52)) == 23496640);
+ assert(unsigned(flip_mask(0x16687c8, 52)) == 23496648);
+ assert(unsigned(flip_mask(0x16687d0, 52)) == 23496656);
+ assert(unsigned(flip_mask(0x16687d8, 52)) == 23496664);
+ assert(unsigned(flip_mask(0x16687e0, 52)) == 23496672);
+ assert(unsigned(flip_mask(0x16687e8, 52)) == 23496680);
+ assert(unsigned(flip_mask(0x16687f0, 52)) == 23496688);
+ assert(unsigned(flip_mask(0x16687f8, 52)) == 23496696);
+ assert(unsigned(flip_mask(0x1668800, 52)) == 23496704);
+ assert(unsigned(flip_mask(0x1668808, 52)) == 23496712);
+ assert(unsigned(flip_mask(0x1668810, 52)) == 23496720);
+ assert(unsigned(flip_mask(0x1668818, 52)) == 23496728);
+ assert(unsigned(flip_mask(0x1668820, 52)) == 23496736);
+ assert(unsigned(flip_mask(0x1668828, 52)) == 23496744);
+ assert(unsigned(flip_mask(0x1668830, 52)) == 23496752);
+ assert(unsigned(flip_mask(0x1668838, 52)) == 23496760);
+ assert(unsigned(flip_mask(0x1668840, 52)) == 23496768);
+ assert(unsigned(flip_mask(0x1668848, 52)) == 23496776);
+ assert(unsigned(flip_mask(0x1668850, 52)) == 23496784);
+ assert(unsigned(flip_mask(0x1668858, 52)) == 23496792);
+ assert(unsigned(flip_mask(0x1668860, 52)) == 23496800);
+ assert(unsigned(flip_mask(0x1668868, 52)) == 23496808);
+ assert(unsigned(flip_mask(0x1668870, 52)) == 23496816);
+ assert(unsigned(flip_mask(0x1668878, 52)) == 23496824);
+ assert(unsigned(flip_mask(0x1668880, 52)) == 23496832);
+ assert(unsigned(flip_mask(0x1668888, 52)) == 23496840);
+ assert(unsigned(flip_mask(0x1668890, 52)) == 23496848);
+ assert(unsigned(flip_mask(0x1668898, 52)) == 23496856);
+ assert(unsigned(flip_mask(0x16688a0, 52)) == 23496864);
+ assert(unsigned(flip_mask(0x16688a8, 52)) == 23496872);
+ assert(unsigned(flip_mask(0x16688b0, 52)) == 23496880);
+ assert(unsigned(flip_mask(0x16688b8, 52)) == 23496888);
+ assert(unsigned(flip_mask(0x16688c0, 52)) == 23496896);
+ assert(unsigned(flip_mask(0x16688c8, 52)) == 23496904);
+ assert(unsigned(flip_mask(0x16688d0, 52)) == 23496912);
+ assert(unsigned(flip_mask(0x16688d8, 52)) == 23496920);
+ assert(unsigned(flip_mask(0x16688e0, 52)) == 23496928);
+ assert(unsigned(flip_mask(0x16688e8, 52)) == 23496936);
+ assert(unsigned(flip_mask(0x16688f0, 52)) == 23496944);
+ assert(unsigned(flip_mask(0x16688f8, 52)) == 23496952);
+ assert(unsigned(flip_mask(0x1668900, 52)) == 23496960);
+ assert(unsigned(flip_mask(0x1668908, 52)) == 23496968);
+ assert(unsigned(flip_mask(0x1668910, 52)) == 23496976);
+ assert(unsigned(flip_mask(0x1668918, 52)) == 23496984);
+ assert(unsigned(flip_mask(0x1668920, 52)) == 23496992);
+ assert(unsigned(flip_mask(0x1668928, 52)) == 23497000);
+ assert(unsigned(flip_mask(0x1668930, 52)) == 23497008);
+ assert(unsigned(flip_mask(0x1668938, 52)) == 23497016);
+ assert(unsigned(flip_mask(0x1668940, 52)) == 23497024);
+ assert(unsigned(flip_mask(0x1668948, 52)) == 23497032);
+ assert(unsigned(flip_mask(0x1668950, 52)) == 23497040);
+ assert(unsigned(flip_mask(0x1668958, 52)) == 23497048);
+ assert(unsigned(flip_mask(0x1668960, 52)) == 23497056);
+ assert(unsigned(flip_mask(0x1668968, 52)) == 23497064);
+ assert(unsigned(flip_mask(0x1668970, 52)) == 23497072);
+ assert(unsigned(flip_mask(0x1668978, 52)) == 23497080);
+ assert(unsigned(flip_mask(0x1668980, 52)) == 23497088);
+ assert(unsigned(flip_mask(0x1668988, 52)) == 23497096);
+ assert(unsigned(flip_mask(0x1668990, 52)) == 23497104);
+ assert(unsigned(flip_mask(0x1668998, 52)) == 23497112);
+ assert(unsigned(flip_mask(0x16689a0, 52)) == 23497120);
+ assert(unsigned(flip_mask(0x16689a8, 52)) == 23497128);
+ assert(unsigned(flip_mask(0x16689b0, 52)) == 23497136);
+ assert(unsigned(flip_mask(0x16689b8, 52)) == 23497144);
+ assert(unsigned(flip_mask(0x16689c0, 52)) == 23497152);
+ assert(unsigned(flip_mask(0x16689c8, 52)) == 23497160);
+ assert(unsigned(flip_mask(0x16689d0, 52)) == 23497168);
+ assert(unsigned(flip_mask(0x16689d8, 52)) == 23497176);
+ assert(unsigned(flip_mask(0x16689e0, 52)) == 23497184);
+ assert(unsigned(flip_mask(0x16689e8, 52)) == 23497192);
+ assert(unsigned(flip_mask(0x16689f0, 52)) == 23497200);
+ assert(unsigned(flip_mask(0x16689f8, 52)) == 23497208);
+ assert(unsigned(flip_mask(0x1668a00, 52)) == 23497216);
+ assert(unsigned(flip_mask(0x1668a08, 52)) == 23497224);
+ assert(unsigned(flip_mask(0x1668a10, 52)) == 23497232);
+ assert(unsigned(flip_mask(0x1668a18, 52)) == 23497240);
+ assert(unsigned(flip_mask(0x1668a20, 52)) == 23497248);
+ assert(unsigned(flip_mask(0x1668a28, 52)) == 23497256);
+ assert(unsigned(flip_mask(0x1668a30, 52)) == 23497264);
+ assert(unsigned(flip_mask(0x1668a38, 52)) == 23497272);
+ assert(unsigned(flip_mask(0x1668a40, 52)) == 23497280);
+ assert(unsigned(flip_mask(0x1668a48, 52)) == 23497288);
+ assert(unsigned(flip_mask(0x1668a50, 52)) == 23497296);
+ assert(unsigned(flip_mask(0x1668a58, 52)) == 23497304);
+ assert(unsigned(flip_mask(0x1668a60, 52)) == 23497312);
+ assert(unsigned(flip_mask(0x1668a68, 52)) == 23497320);
+ assert(unsigned(flip_mask(0x1668a70, 52)) == 23497328);
+ assert(unsigned(flip_mask(0x1668a78, 52)) == 23497336);
+ assert(unsigned(flip_mask(0x1668a80, 52)) == 23497344);
+ assert(unsigned(flip_mask(0x1668a88, 52)) == 23497352);
+ assert(unsigned(flip_mask(0x1668a90, 52)) == 23497360);
+ assert(unsigned(flip_mask(0x1668a98, 52)) == 23497368);
+ assert(unsigned(flip_mask(0x1668aa0, 52)) == 23497376);
+ assert(unsigned(flip_mask(0x1668aa8, 52)) == 23497384);
+ assert(unsigned(flip_mask(0x1668ab0, 52)) == 23497392);
+ assert(unsigned(flip_mask(0x1668ab8, 52)) == 23497400);
+ assert(unsigned(flip_mask(0x1668ac0, 52)) == 23497408);
+ assert(unsigned(flip_mask(0x1668ac8, 52)) == 23497416);
+ assert(unsigned(flip_mask(0x1668ad0, 52)) == 23497424);
+ assert(unsigned(flip_mask(0x1668ad8, 52)) == 23497432);
+ assert(unsigned(flip_mask(0x1668ae0, 52)) == 23497440);
+ assert(unsigned(flip_mask(0x1668ae8, 52)) == 23497448);
+ assert(unsigned(flip_mask(0x1668af0, 52)) == 23497456);
+ assert(unsigned(flip_mask(0x1668af8, 52)) == 23497464);
+ assert(unsigned(flip_mask(0x1668b00, 52)) == 23497472);
+ assert(unsigned(flip_mask(0x1668b08, 52)) == 23497480);
+ assert(unsigned(flip_mask(0x1668b10, 52)) == 23497488);
+ assert(unsigned(flip_mask(0x1668b18, 52)) == 23497496);
+ assert(unsigned(flip_mask(0x1668b20, 52)) == 23497504);
+ assert(unsigned(flip_mask(0x1668b28, 52)) == 23497512);
+ assert(unsigned(flip_mask(0x1668b30, 52)) == 23497520);
+ assert(unsigned(flip_mask(0x1668b38, 52)) == 23497528);
+ assert(unsigned(flip_mask(0x1668b40, 52)) == 23497536);
+ assert(unsigned(flip_mask(0x1668b48, 52)) == 23497544);
+ assert(unsigned(flip_mask(0x1668b50, 52)) == 23497552);
+ assert(unsigned(flip_mask(0x1668b58, 52)) == 23497560);
+ assert(unsigned(flip_mask(0x1668b60, 52)) == 23497568);
+ assert(unsigned(flip_mask(0x1668b68, 52)) == 23497576);
+ assert(unsigned(flip_mask(0x1668b70, 52)) == 23497584);
+ assert(unsigned(flip_mask(0x1668b78, 52)) == 23497592);
+ assert(unsigned(flip_mask(0x1668b80, 52)) == 23497600);
+ assert(unsigned(flip_mask(0x1668b88, 52)) == 23497608);
+ assert(unsigned(flip_mask(0x1668b90, 52)) == 23497616);
+ assert(unsigned(flip_mask(0x1668b98, 52)) == 23497624);
+ assert(unsigned(flip_mask(0x1668ba0, 52)) == 23497632);
+ assert(unsigned(flip_mask(0x1668ba8, 52)) == 23497640);
+ assert(unsigned(flip_mask(0x1668bb0, 52)) == 23497648);
+ assert(unsigned(flip_mask(0x1668bb8, 52)) == 23497656);
+ assert(unsigned(flip_mask(0x1668bc0, 52)) == 23497664);
+ assert(unsigned(flip_mask(0x1668bc8, 52)) == 23497672);
+ assert(unsigned(flip_mask(0x1668bd0, 52)) == 23497680);
+ assert(unsigned(flip_mask(0x1668bd8, 52)) == 23497688);
+ assert(unsigned(flip_mask(0x1668be0, 52)) == 23497696);
+ assert(unsigned(flip_mask(0x1668be8, 52)) == 23497704);
+ assert(unsigned(flip_mask(0x1668bf0, 52)) == 23497712);
+ assert(unsigned(flip_mask(0x1668bf8, 52)) == 23497720);
+ assert(unsigned(flip_mask(0x1668c00, 52)) == 23497728);
+ assert(unsigned(flip_mask(0x1668c08, 52)) == 23497736);
+ assert(unsigned(flip_mask(0x1668c10, 52)) == 23497744);
+ assert(unsigned(flip_mask(0x1668c18, 52)) == 23497752);
+ assert(unsigned(flip_mask(0x1668c20, 52)) == 23497760);
+ assert(unsigned(flip_mask(0x1668c28, 52)) == 23497768);
+ assert(unsigned(flip_mask(0x1668c30, 52)) == 23497776);
+ assert(unsigned(flip_mask(0x1668c38, 52)) == 23497784);
+ assert(unsigned(flip_mask(0x1668c40, 52)) == 23497792);
+ assert(unsigned(flip_mask(0x1668c48, 52)) == 23497800);
+ assert(unsigned(flip_mask(0x1668c50, 52)) == 23497808);
+ assert(unsigned(flip_mask(0x1668c58, 52)) == 23497816);
+ assert(unsigned(flip_mask(0x1668c60, 52)) == 23497824);
+ assert(unsigned(flip_mask(0x1668c68, 52)) == 23497832);
+ assert(unsigned(flip_mask(0x1668c70, 52)) == 23497840);
+ assert(unsigned(flip_mask(0x1668c78, 52)) == 23497848);
+ assert(unsigned(flip_mask(0x1668c80, 52)) == 23497856);
+ assert(unsigned(flip_mask(0x1668c88, 52)) == 23497864);
+ assert(unsigned(flip_mask(0x1668c90, 52)) == 23497872);
+ assert(unsigned(flip_mask(0x1668c98, 52)) == 23497880);
+ assert(unsigned(flip_mask(0x1668ca0, 52)) == 23497888);
+ assert(unsigned(flip_mask(0x1668ca8, 52)) == 23497896);
+ assert(unsigned(flip_mask(0x1668cb0, 52)) == 23497904);
+ assert(unsigned(flip_mask(0x1668cb8, 52)) == 23497912);
+ assert(unsigned(flip_mask(0x1668cc0, 52)) == 23497920);
+ assert(unsigned(flip_mask(0x1668cc8, 52)) == 23497928);
+ assert(unsigned(flip_mask(0x1668cd0, 52)) == 23497936);
+ assert(unsigned(flip_mask(0x1668cd8, 52)) == 23497944);
+ assert(unsigned(flip_mask(0x1668ce0, 52)) == 23497952);
+ assert(unsigned(flip_mask(0x1668ce8, 52)) == 23497960);
+ assert(unsigned(flip_mask(0x1668cf0, 52)) == 23497968);
+ assert(unsigned(flip_mask(0x1668cf8, 52)) == 23497976);
+ assert(unsigned(flip_mask(0x1668d00, 52)) == 23497984);
+ assert(unsigned(flip_mask(0x1668d08, 52)) == 23497992);
+ assert(unsigned(flip_mask(0x1668d10, 52)) == 23498000);
+ assert(unsigned(flip_mask(0x1668d18, 52)) == 23498008);
+ assert(unsigned(flip_mask(0x1668d20, 52)) == 23498016);
+ assert(unsigned(flip_mask(0x1668d28, 52)) == 23498024);
+ assert(unsigned(flip_mask(0x1668d30, 52)) == 23498032);
+ assert(unsigned(flip_mask(0x1668d38, 52)) == 23498040);
+ assert(unsigned(flip_mask(0x1668d40, 52)) == 23498048);
+ assert(unsigned(flip_mask(0x1668d48, 52)) == 23498056);
+ assert(unsigned(flip_mask(0x1668d50, 52)) == 23498064);
+ assert(unsigned(flip_mask(0x1668d58, 52)) == 23498072);
+ assert(unsigned(flip_mask(0x1668d60, 52)) == 23498080);
+ assert(unsigned(flip_mask(0x1668d68, 52)) == 23498088);
+ assert(unsigned(flip_mask(0x1668d70, 52)) == 23498096);
+ assert(unsigned(flip_mask(0x1668d78, 52)) == 23498104);
+ assert(unsigned(flip_mask(0x1668d80, 52)) == 23498112);
+ assert(unsigned(flip_mask(0x1668d88, 52)) == 23498120);
+ assert(unsigned(flip_mask(0x1668d90, 52)) == 23498128);
+ assert(unsigned(flip_mask(0x1668d98, 52)) == 23498136);
+ assert(unsigned(flip_mask(0x1668da0, 52)) == 23498144);
+ assert(unsigned(flip_mask(0x1668da8, 52)) == 23498152);
+ assert(unsigned(flip_mask(0x1668db0, 52)) == 23498160);
+ assert(unsigned(flip_mask(0x1668db8, 52)) == 23498168);
+ assert(unsigned(flip_mask(0x1668dc0, 52)) == 23498176);
+ assert(unsigned(flip_mask(0x1668dc8, 52)) == 23498184);
+ assert(unsigned(flip_mask(0x1668dd0, 52)) == 23498192);
+ assert(unsigned(flip_mask(0x1668dd8, 52)) == 23498200);
+ assert(unsigned(flip_mask(0x1668de0, 52)) == 23498208);
+ assert(unsigned(flip_mask(0x1668de8, 52)) == 23498216);
+ assert(unsigned(flip_mask(0x1668df0, 52)) == 23498224);
+ assert(unsigned(flip_mask(0x17000, 52)) == 94208);
+ assert(unsigned(flip_mask(0x17030, 52)) == 94256);
+ assert(unsigned(flip_mask(0x1800014, 52)) == 25165844);
+ assert(unsigned(flip_mask(0x1800018, 52)) == 25165848);
+ assert(unsigned(flip_mask(0x180001c, 52)) == 25165852);
+ assert(unsigned(flip_mask(0x1800020, 52)) == 25165856);
+ assert(unsigned(flip_mask(0x1800030, 52)) == 25165872);
+ assert(unsigned(flip_mask(0x1800054, 52)) == 25165908);
+ assert(unsigned(flip_mask(0x1800058, 52)) == 25165912);
+ assert(unsigned(flip_mask(0x1800068, 52)) == 25165928);
+ assert(unsigned(flip_mask(0x18000c8, 52)) == 25166024);
+ assert(unsigned(flip_mask(0x18002a0, 52)) == 25166496);
+ assert(unsigned(flip_mask(0x1802940, 52)) == 25176384);
+ assert(unsigned(flip_mask(0x1806b10, 52)) == 25193232);
+ assert(unsigned(flip_mask(0x1806b14, 52)) == 25193236);
+ assert(unsigned(flip_mask(0x1808d20, 52)) == 25201952);
+ assert(unsigned(flip_mask(0x1808d21, 52)) == 25201953);
+ assert(unsigned(flip_mask(0x1808d24, 52)) == 25201956);
+ assert(unsigned(flip_mask(0x1808d28, 52)) == 25201960);
+ assert(unsigned(flip_mask(0x1808d30, 52)) == 25201968);
+ assert(unsigned(flip_mask(0x1808d38, 52)) == 25201976);
+ assert(unsigned(flip_mask(0x1808d40, 52)) == 25201984);
+ assert(unsigned(flip_mask(0x1808d48, 52)) == 25201992);
+ assert(unsigned(flip_mask(0x1808d50, 52)) == 25202000);
+ assert(unsigned(flip_mask(0x1808d51, 52)) == 25202001);
+ assert(unsigned(flip_mask(0x1808d54, 52)) == 25202004);
+ assert(unsigned(flip_mask(0x1808d58, 52)) == 25202008);
+ assert(unsigned(flip_mask(0x1808d5c, 52)) == 25202012);
+ assert(unsigned(flip_mask(0x1808d60, 52)) == 25202016);
+ assert(unsigned(flip_mask(0x1808d64, 52)) == 25202020);
+ assert(unsigned(flip_mask(0x1808d68, 52)) == 25202024);
+ assert(unsigned(flip_mask(0x1808d6c, 52)) == 25202028);
+ assert(unsigned(flip_mask(0x1808d70, 52)) == 25202032);
+ assert(unsigned(flip_mask(0x1808d74, 52)) == 25202036);
+ assert(unsigned(flip_mask(0x1808d78, 52)) == 25202040);
+ assert(unsigned(flip_mask(0x1808d7c, 52)) == 25202044);
+ assert(unsigned(flip_mask(0x1808d80, 52)) == 25202048);
+ assert(unsigned(flip_mask(0x1808d84, 52)) == 25202052);
+ assert(unsigned(flip_mask(0x1808d88, 52)) == 25202056);
+ assert(unsigned(flip_mask(0x1808d8c, 52)) == 25202060);
+ assert(unsigned(flip_mask(0x1808d90, 52)) == 25202064);
+ assert(unsigned(flip_mask(0x1808d94, 52)) == 25202068);
+ assert(unsigned(flip_mask(0x1808d98, 52)) == 25202072);
+ assert(unsigned(flip_mask(0x1808d9c, 52)) == 25202076);
+ assert(unsigned(flip_mask(0x1808da0, 52)) == 25202080);
+ assert(unsigned(flip_mask(0x1808da4, 52)) == 25202084);
+ assert(unsigned(flip_mask(0x1808da8, 52)) == 25202088);
+ assert(unsigned(flip_mask(0x1808dac, 52)) == 25202092);
+ assert(unsigned(flip_mask(0x1808db0, 52)) == 25202096);
+ assert(unsigned(flip_mask(0x1808db4, 52)) == 25202100);
+ assert(unsigned(flip_mask(0x1808db8, 52)) == 25202104);
+ assert(unsigned(flip_mask(0x1808dbc, 52)) == 25202108);
+ assert(unsigned(flip_mask(0x1808dc0, 52)) == 25202112);
+ assert(unsigned(flip_mask(0x1808dc4, 52)) == 25202116);
+ assert(unsigned(flip_mask(0x1808dc8, 52)) == 25202120);
+ assert(unsigned(flip_mask(0x1808dcc, 52)) == 25202124);
+ assert(unsigned(flip_mask(0x1808dd0, 52)) == 25202128);
+ assert(unsigned(flip_mask(0x1808dd4, 52)) == 25202132);
+ assert(unsigned(flip_mask(0x1808dd8, 52)) == 25202136);
+ assert(unsigned(flip_mask(0x1808ddc, 52)) == 25202140);
+ assert(unsigned(flip_mask(0x1808de0, 52)) == 25202144);
+ assert(unsigned(flip_mask(0x1808de4, 52)) == 25202148);
+ assert(unsigned(flip_mask(0x1808de8, 52)) == 25202152);
+ assert(unsigned(flip_mask(0x1808dec, 52)) == 25202156);
+ assert(unsigned(flip_mask(0x1808df0, 52)) == 25202160);
+ assert(unsigned(flip_mask(0x1808df8, 52)) == 25202168);
+ assert(unsigned(flip_mask(0x1808e00, 52)) == 25202176);
+ assert(unsigned(flip_mask(0x1808e08, 52)) == 25202184);
+ assert(unsigned(flip_mask(0x1808e10, 52)) == 25202192);
+ assert(unsigned(flip_mask(0x1808e18, 52)) == 25202200);
+ assert(unsigned(flip_mask(0x1808e20, 52)) == 25202208);
+ assert(unsigned(flip_mask(0x1808e28, 52)) == 25202216);
+ assert(unsigned(flip_mask(0x1808e30, 52)) == 25202224);
+ assert(unsigned(flip_mask(0x1808e38, 52)) == 25202232);
+ assert(unsigned(flip_mask(0x1c428, 52)) == 115752);
+ assert(unsigned(flip_mask(0x2000011, 52)) == 33554449);
+ assert(unsigned(flip_mask(0x2000012, 52)) == 33554450);
+ assert(unsigned(flip_mask(0x2000013, 52)) == 33554451);
+ assert(unsigned(flip_mask(0x2000018, 52)) == 33554456);
+ assert(unsigned(flip_mask(0x200003b, 52)) == 33554491);
+ assert(unsigned(flip_mask(0x200003c, 52)) == 33554492);
+ assert(unsigned(flip_mask(0x200003d, 52)) == 33554493);
+ assert(unsigned(flip_mask(0x2000040, 52)) == 33554496);
+ assert(unsigned(flip_mask(0x200004c, 52)) == 33554508);
+ assert(unsigned(flip_mask(0x200004d, 52)) == 33554509);
+ assert(unsigned(flip_mask(0x200004e, 52)) == 33554510);
+ assert(unsigned(flip_mask(0x2000050, 52)) == 33554512);
+ assert(unsigned(flip_mask(0x20002c0, 52)) == 33555136);
+ assert(unsigned(flip_mask(0x20002c8, 52)) == 33555144);
+ assert(unsigned(flip_mask(0x20002d0, 52)) == 33555152);
+ assert(unsigned(flip_mask(0x20002d8, 52)) == 33555160);
+ assert(unsigned(flip_mask(0x20002e0, 52)) == 33555168);
+ assert(unsigned(flip_mask(0x20002e8, 52)) == 33555176);
+ assert(unsigned(flip_mask(0x20002f0, 52)) == 33555184);
+ assert(unsigned(flip_mask(0x20002f8, 52)) == 33555192);
+ assert(unsigned(flip_mask(0x2000300, 52)) == 33555200);
+ assert(unsigned(flip_mask(0x2000310, 52)) == 33555216);
+ assert(unsigned(flip_mask(0x2000318, 52)) == 33555224);
+ assert(unsigned(flip_mask(0x2000320, 52)) == 33555232);
+ assert(unsigned(flip_mask(0x2000328, 52)) == 33555240);
+ assert(unsigned(flip_mask(0x2000330, 52)) == 33555248);
+ assert(unsigned(flip_mask(0x2000338, 52)) == 33555256);
+ assert(unsigned(flip_mask(0x2000340, 52)) == 33555264);
+ assert(unsigned(flip_mask(0x2000350, 52)) == 33555280);
+ assert(unsigned(flip_mask(0x2000358, 52)) == 33555288);
+ assert(unsigned(flip_mask(0x2000360, 52)) == 33555296);
+ assert(unsigned(flip_mask(0x2000368, 52)) == 33555304);
+ assert(unsigned(flip_mask(0x20003a0, 52)) == 33555360);
+ assert(unsigned(flip_mask(0x20003a8, 52)) == 33555368);
+ assert(unsigned(flip_mask(0x20003b0, 52)) == 33555376);
+ assert(unsigned(flip_mask(0x20003b4, 52)) == 33555380);
+ assert(unsigned(flip_mask(0x20003b8, 52)) == 33555384);
+ assert(unsigned(flip_mask(0x20003bc, 52)) == 33555388);
+ assert(unsigned(flip_mask(0x20003c0, 52)) == 33555392);
+ assert(unsigned(flip_mask(0x20003c4, 52)) == 33555396);
+ assert(unsigned(flip_mask(0x20003c8, 52)) == 33555400);
+ assert(unsigned(flip_mask(0x20003cc, 52)) == 33555404);
+ assert(unsigned(flip_mask(0x20003d0, 52)) == 33555408);
+ assert(unsigned(flip_mask(0x20003d4, 52)) == 33555412);
+ assert(unsigned(flip_mask(0x20003d8, 52)) == 33555416);
+ assert(unsigned(flip_mask(0x20003dc, 52)) == 33555420);
+ assert(unsigned(flip_mask(0x20003e0, 52)) == 33555424);
+ assert(unsigned(flip_mask(0x20003e4, 52)) == 33555428);
+ assert(unsigned(flip_mask(0x20003e8, 52)) == 33555432);
+ assert(unsigned(flip_mask(0x20003ec, 52)) == 33555436);
+ assert(unsigned(flip_mask(0x20003f0, 52)) == 33555440);
+ assert(unsigned(flip_mask(0x20003f8, 52)) == 33555448);
+ assert(unsigned(flip_mask(0x2000400, 52)) == 33555456);
+ assert(unsigned(flip_mask(0x2000408, 52)) == 33555464);
+ assert(unsigned(flip_mask(0x2000410, 52)) == 33555472);
+ assert(unsigned(flip_mask(0x2000418, 52)) == 33555480);
+ assert(unsigned(flip_mask(0x2000420, 52)) == 33555488);
+ assert(unsigned(flip_mask(0x2000428, 52)) == 33555496);
+ assert(unsigned(flip_mask(0x2000430, 52)) == 33555504);
+ assert(unsigned(flip_mask(0x2000438, 52)) == 33555512);
+ assert(unsigned(flip_mask(0x2000440, 52)) == 33555520);
+ assert(unsigned(flip_mask(0x2000448, 52)) == 33555528);
+ assert(unsigned(flip_mask(0x2000450, 52)) == 33555536);
+ assert(unsigned(flip_mask(0x2000458, 52)) == 33555544);
+ assert(unsigned(flip_mask(0x2008060, 52)) == 33587296);
+ assert(unsigned(flip_mask(0x2008064, 52)) == 33587300);
+ assert(unsigned(flip_mask(0x2008068, 52)) == 33587304);
+ assert(unsigned(flip_mask(0x2008070, 52)) == 33587312);
+ assert(unsigned(flip_mask(0x2008078, 52)) == 33587320);
+ assert(unsigned(flip_mask(0x2008080, 52)) == 33587328);
+ assert(unsigned(flip_mask(0x2008140, 52)) == 33587520);
+ assert(unsigned(flip_mask(0x2008148, 52)) == 33587528);
+ assert(unsigned(flip_mask(0x2008248, 52)) == 33587784);
+ assert(unsigned(flip_mask(0x2008250, 52)) == 33587792);
+ assert(unsigned(flip_mask(0x2008a00, 52)) == 33589760);
+ assert(unsigned(flip_mask(0x2008a04, 52)) == 33589764);
+ assert(unsigned(flip_mask(0x2008a08, 52)) == 33589768);
+ assert(unsigned(flip_mask(0x2008a10, 52)) == 33589776);
+ assert(unsigned(flip_mask(0x2008a18, 52)) == 33589784);
+ assert(unsigned(flip_mask(0x2008a20, 52)) == 33589792);
+ assert(unsigned(flip_mask(0x2008a70, 52)) == 33589872);
+ assert(unsigned(flip_mask(0x2008a78, 52)) == 33589880);
+ assert(unsigned(flip_mask(0x2008b78, 52)) == 33590136);
+ assert(unsigned(flip_mask(0x2008b80, 52)) == 33590144);
+ assert(unsigned(flip_mask(0x200d880, 52)) == 33609856);
+ assert(unsigned(flip_mask(0x200d888, 52)) == 33609864);
+ assert(unsigned(flip_mask(0x200d890, 52)) == 33609872);
+ assert(unsigned(flip_mask(0x200d898, 52)) == 33609880);
+ assert(unsigned(flip_mask(0x200d8a0, 52)) == 33609888);
+ assert(unsigned(flip_mask(0x200d8a8, 52)) == 33609896);
+ assert(unsigned(flip_mask(0x200d8b0, 52)) == 33609904);
+ assert(unsigned(flip_mask(0x200d8b8, 52)) == 33609912);
+ assert(unsigned(flip_mask(0x200d8c0, 52)) == 33609920);
+ assert(unsigned(flip_mask(0x200d8c8, 52)) == 33609928);
+ assert(unsigned(flip_mask(0x200d8d0, 52)) == 33609936);
+ assert(unsigned(flip_mask(0x200d8d8, 52)) == 33609944);
+ assert(unsigned(flip_mask(0x200d8e0, 52)) == 33609952);
+ assert(unsigned(flip_mask(0x200d8e8, 52)) == 33609960);
+ assert(unsigned(flip_mask(0x200d8f0, 52)) == 33609968);
+ assert(unsigned(flip_mask(0x200d8f8, 52)) == 33609976);
+ assert(unsigned(flip_mask(0x200d900, 52)) == 33609984);
+ assert(unsigned(flip_mask(0x200d908, 52)) == 33609992);
+ assert(unsigned(flip_mask(0x200d960, 52)) == 33610080);
+ assert(unsigned(flip_mask(0x200d968, 52)) == 33610088);
+ assert(unsigned(flip_mask(0x200d970, 52)) == 33610096);
+ assert(unsigned(flip_mask(0x200d974, 52)) == 33610100);
+ assert(unsigned(flip_mask(0x200d978, 52)) == 33610104);
+ assert(unsigned(flip_mask(0x200d97c, 52)) == 33610108);
+ assert(unsigned(flip_mask(0x200d980, 52)) == 33610112);
+ assert(unsigned(flip_mask(0x200d984, 52)) == 33610116);
+ assert(unsigned(flip_mask(0x200d988, 52)) == 33610120);
+ assert(unsigned(flip_mask(0x200d98c, 52)) == 33610124);
+ assert(unsigned(flip_mask(0x200d990, 52)) == 33610128);
+ assert(unsigned(flip_mask(0x200d994, 52)) == 33610132);
+ assert(unsigned(flip_mask(0x200d998, 52)) == 33610136);
+ assert(unsigned(flip_mask(0x200d99c, 52)) == 33610140);
+ assert(unsigned(flip_mask(0x200d9a0, 52)) == 33610144);
+ assert(unsigned(flip_mask(0x200d9a4, 52)) == 33610148);
+ assert(unsigned(flip_mask(0x200d9a8, 52)) == 33610152);
+ assert(unsigned(flip_mask(0x200d9ac, 52)) == 33610156);
+ assert(unsigned(flip_mask(0x200d9b0, 52)) == 33610160);
+ assert(unsigned(flip_mask(0x200d9b8, 52)) == 33610168);
+ assert(unsigned(flip_mask(0x200d9c0, 52)) == 33610176);
+ assert(unsigned(flip_mask(0x200d9c8, 52)) == 33610184);
+ assert(unsigned(flip_mask(0x200d9d0, 52)) == 33610192);
+ assert(unsigned(flip_mask(0x200d9d8, 52)) == 33610200);
+ assert(unsigned(flip_mask(0x200d9e0, 52)) == 33610208);
+ assert(unsigned(flip_mask(0x200d9e8, 52)) == 33610216);
+ assert(unsigned(flip_mask(0x200d9f0, 52)) == 33610224);
+ assert(unsigned(flip_mask(0x200d9f8, 52)) == 33610232);
+ assert(unsigned(flip_mask(0x200da00, 52)) == 33610240);
+ assert(unsigned(flip_mask(0x200da08, 52)) == 33610248);
+ assert(unsigned(flip_mask(0x2015610, 52)) == 33642000);
+ assert(unsigned(flip_mask(0x2015618, 52)) == 33642008);
+ assert(unsigned(flip_mask(0x2015624, 52)) == 33642020);
+ assert(unsigned(flip_mask(0x2015628, 52)) == 33642024);
+ assert(unsigned(flip_mask(0x2015630, 52)) == 33642032);
+ assert(unsigned(flip_mask(0x2015638, 52)) == 33642040);
+ assert(unsigned(flip_mask(0x201563c, 52)) == 33642044);
+ assert(unsigned(flip_mask(0x2015640, 52)) == 33642048);
+ assert(unsigned(flip_mask(0x2015648, 52)) == 33642056);
+ assert(unsigned(flip_mask(0x2015650, 52)) == 33642064);
+ assert(unsigned(flip_mask(0x2015658, 52)) == 33642072);
+ assert(unsigned(flip_mask(0x2015668, 52)) == 33642088);
+ assert(unsigned(flip_mask(0x2015670, 52)) == 33642096);
+ assert(unsigned(flip_mask(0x2015678, 52)) == 33642104);
+ assert(unsigned(flip_mask(0x2015778, 52)) == 33642360);
+ assert(unsigned(flip_mask(0x2015780, 52)) == 33642368);
+ assert(unsigned(flip_mask(0x2015b50, 52)) == 33643344);
+ assert(unsigned(flip_mask(0x2015b58, 52)) == 33643352);
+ assert(unsigned(flip_mask(0x2015c58, 52)) == 33643608);
+ assert(unsigned(flip_mask(0x2015c60, 52)) == 33643616);
+ assert(unsigned(flip_mask(0x2019d80, 52)) == 33660288);
+ assert(unsigned(flip_mask(0x2019d84, 52)) == 33660292);
+ assert(unsigned(flip_mask(0x2019d88, 52)) == 33660296);
+ assert(unsigned(flip_mask(0x2019d8c, 52)) == 33660300);
+ assert(unsigned(flip_mask(0x2019d90, 52)) == 33660304);
+ assert(unsigned(flip_mask(0x2019d98, 52)) == 33660312);
+ assert(unsigned(flip_mask(0x2019da0, 52)) == 33660320);
+ assert(unsigned(flip_mask(0x2019da8, 52)) == 33660328);
+ assert(unsigned(flip_mask(0x2019db8, 52)) == 33660344);
+ assert(unsigned(flip_mask(0x2019dc0, 52)) == 33660352);
+ assert(unsigned(flip_mask(0x2019dc8, 52)) == 33660360);
+ assert(unsigned(flip_mask(0x2019ed0, 52)) == 33660624);
+ assert(unsigned(flip_mask(0x201a280, 52)) == 33661568);
+ assert(unsigned(flip_mask(0x201a284, 52)) == 33661572);
+ assert(unsigned(flip_mask(0x201a288, 52)) == 33661576);
+ assert(unsigned(flip_mask(0x201a28c, 52)) == 33661580);
+ assert(unsigned(flip_mask(0x201a290, 52)) == 33661584);
+ assert(unsigned(flip_mask(0x201a298, 52)) == 33661592);
+ assert(unsigned(flip_mask(0x201a2a0, 52)) == 33661600);
+ assert(unsigned(flip_mask(0x201a2a8, 52)) == 33661608);
+ assert(unsigned(flip_mask(0x201a2b8, 52)) == 33661624);
+ assert(unsigned(flip_mask(0x201a2c0, 52)) == 33661632);
+ assert(unsigned(flip_mask(0x201a2c8, 52)) == 33661640);
+ assert(unsigned(flip_mask(0x201a3c8, 52)) == 33661896);
+ assert(unsigned(flip_mask(0x201a3d0, 52)) == 33661904);
+ assert(unsigned(flip_mask(0x201a4f0, 52)) == 33662192);
+ assert(unsigned(flip_mask(0x201a780, 52)) == 33662848);
+ assert(unsigned(flip_mask(0x201a784, 52)) == 33662852);
+ assert(unsigned(flip_mask(0x201a788, 52)) == 33662856);
+ assert(unsigned(flip_mask(0x201a790, 52)) == 33662864);
+ assert(unsigned(flip_mask(0x201a798, 52)) == 33662872);
+ assert(unsigned(flip_mask(0x201a7a0, 52)) == 33662880);
+ assert(unsigned(flip_mask(0x201a7a4, 52)) == 33662884);
+ assert(unsigned(flip_mask(0x201a7ac, 52)) == 33662892);
+ assert(unsigned(flip_mask(0x201a7b0, 52)) == 33662896);
+ assert(unsigned(flip_mask(0x201a7b8, 52)) == 33662904);
+ assert(unsigned(flip_mask(0x201a7c0, 52)) == 33662912);
+ assert(unsigned(flip_mask(0x201a7c8, 52)) == 33662920);
+ assert(unsigned(flip_mask(0x201a7d8, 52)) == 33662936);
+ assert(unsigned(flip_mask(0x201a7e0, 52)) == 33662944);
+ assert(unsigned(flip_mask(0x201a8e0, 52)) == 33663200);
+ assert(unsigned(flip_mask(0x201a8e8, 52)) == 33663208);
+ assert(unsigned(flip_mask(0x201aa08, 52)) == 33663496);
+ assert(unsigned(flip_mask(0x201acb0, 52)) == 33664176);
+ assert(unsigned(flip_mask(0x201acb8, 52)) == 33664184);
+ assert(unsigned(flip_mask(0x201adb8, 52)) == 33664440);
+ assert(unsigned(flip_mask(0x201adc0, 52)) == 33664448);
+ assert(unsigned(flip_mask(0x201aee0, 52)) == 33664736);
+ assert(unsigned(flip_mask(0x201aee4, 52)) == 33664740);
+ assert(unsigned(flip_mask(0x201aee8, 52)) == 33664744);
+ assert(unsigned(flip_mask(0x201b150, 52)) == 33665360);
+ assert(unsigned(flip_mask(0x201b158, 52)) == 33665368);
+ assert(unsigned(flip_mask(0x201b160, 52)) == 33665376);
+ assert(unsigned(flip_mask(0x201b168, 52)) == 33665384);
+ assert(unsigned(flip_mask(0x201b170, 52)) == 33665392);
+ assert(unsigned(flip_mask(0x201b178, 52)) == 33665400);
+ assert(unsigned(flip_mask(0x201b180, 52)) == 33665408);
+ assert(unsigned(flip_mask(0x201b188, 52)) == 33665416);
+ assert(unsigned(flip_mask(0x201b190, 52)) == 33665424);
+ assert(unsigned(flip_mask(0x201b1a0, 52)) == 33665440);
+ assert(unsigned(flip_mask(0x201b1a8, 52)) == 33665448);
+ assert(unsigned(flip_mask(0x201b1b0, 52)) == 33665456);
+ assert(unsigned(flip_mask(0x201b1b8, 52)) == 33665464);
+ assert(unsigned(flip_mask(0x201b1c0, 52)) == 33665472);
+ assert(unsigned(flip_mask(0x201b1c8, 52)) == 33665480);
+ assert(unsigned(flip_mask(0x201b1d0, 52)) == 33665488);
+ assert(unsigned(flip_mask(0x201b1d8, 52)) == 33665496);
+ assert(unsigned(flip_mask(0x201b1e0, 52)) == 33665504);
+ assert(unsigned(flip_mask(0x201b1e8, 52)) == 33665512);
+ assert(unsigned(flip_mask(0x201b1f0, 52)) == 33665520);
+ assert(unsigned(flip_mask(0x201b1f8, 52)) == 33665528);
+ assert(unsigned(flip_mask(0x201b240, 52)) == 33665600);
+ assert(unsigned(flip_mask(0x201b248, 52)) == 33665608);
+ assert(unsigned(flip_mask(0x201b250, 52)) == 33665616);
+ assert(unsigned(flip_mask(0x201b254, 52)) == 33665620);
+ assert(unsigned(flip_mask(0x201b258, 52)) == 33665624);
+ assert(unsigned(flip_mask(0x201b25c, 52)) == 33665628);
+ assert(unsigned(flip_mask(0x201b260, 52)) == 33665632);
+ assert(unsigned(flip_mask(0x201b264, 52)) == 33665636);
+ assert(unsigned(flip_mask(0x201b268, 52)) == 33665640);
+ assert(unsigned(flip_mask(0x201b26c, 52)) == 33665644);
+ assert(unsigned(flip_mask(0x201b270, 52)) == 33665648);
+ assert(unsigned(flip_mask(0x201b274, 52)) == 33665652);
+ assert(unsigned(flip_mask(0x201b278, 52)) == 33665656);
+ assert(unsigned(flip_mask(0x201b27c, 52)) == 33665660);
+ assert(unsigned(flip_mask(0x201b280, 52)) == 33665664);
+ assert(unsigned(flip_mask(0x201b284, 52)) == 33665668);
+ assert(unsigned(flip_mask(0x201b288, 52)) == 33665672);
+ assert(unsigned(flip_mask(0x201b28c, 52)) == 33665676);
+ assert(unsigned(flip_mask(0x201b290, 52)) == 33665680);
+ assert(unsigned(flip_mask(0x201b298, 52)) == 33665688);
+ assert(unsigned(flip_mask(0x201b2a0, 52)) == 33665696);
+ assert(unsigned(flip_mask(0x201b2a8, 52)) == 33665704);
+ assert(unsigned(flip_mask(0x201b2b0, 52)) == 33665712);
+ assert(unsigned(flip_mask(0x201b2b8, 52)) == 33665720);
+ assert(unsigned(flip_mask(0x201b2c0, 52)) == 33665728);
+ assert(unsigned(flip_mask(0x201b2c8, 52)) == 33665736);
+ assert(unsigned(flip_mask(0x201b2d0, 52)) == 33665744);
+ assert(unsigned(flip_mask(0x201b2d8, 52)) == 33665752);
+ assert(unsigned(flip_mask(0x201b2e0, 52)) == 33665760);
+ assert(unsigned(flip_mask(0x201b2e8, 52)) == 33665768);
+ assert(unsigned(flip_mask(0x201b2f0, 52)) == 33665776);
+ assert(unsigned(flip_mask(0x201b2f8, 52)) == 33665784);
+ assert(unsigned(flip_mask(0x20800, 52)) == 133120);
+ assert(unsigned(flip_mask(0x210ec4, 52)) == 2166468);
+ assert(unsigned(flip_mask(0x210ec8, 52)) == 2166472);
+ assert(unsigned(flip_mask(0x210ecc, 52)) == 2166476);
+ assert(unsigned(flip_mask(0x210ed0, 52)) == 2166480);
+ assert(unsigned(flip_mask(0x210ed4, 52)) == 2166484);
+ assert(unsigned(flip_mask(0x210ed8, 52)) == 2166488);
+ assert(unsigned(flip_mask(0x210edc, 52)) == 2166492);
+ assert(unsigned(flip_mask(0x210ee0, 52)) == 2166496);
+ assert(unsigned(flip_mask(0x210ee4, 52)) == 2166500);
+ assert(unsigned(flip_mask(0x210ee8, 52)) == 2166504);
+ assert(unsigned(flip_mask(0x210eec, 52)) == 2166508);
+ assert(unsigned(flip_mask(0x210ef0, 52)) == 2166512);
+ assert(unsigned(flip_mask(0x210ef4, 52)) == 2166516);
+ assert(unsigned(flip_mask(0x210ef8, 52)) == 2166520);
+ assert(unsigned(flip_mask(0x210efc, 52)) == 2166524);
+ assert(unsigned(flip_mask(0x210f00, 52)) == 2166528);
+ assert(unsigned(flip_mask(0x210f04, 52)) == 2166532);
+ assert(unsigned(flip_mask(0x210f08, 52)) == 2166536);
+ assert(unsigned(flip_mask(0x210f0c, 52)) == 2166540);
+ assert(unsigned(flip_mask(0x210f10, 52)) == 2166544);
+ assert(unsigned(flip_mask(0x210f14, 52)) == 2166548);
+ assert(unsigned(flip_mask(0x210f18, 52)) == 2166552);
+ assert(unsigned(flip_mask(0x210f1c, 52)) == 2166556);
+ assert(unsigned(flip_mask(0x210f20, 52)) == 2166560);
+ assert(unsigned(flip_mask(0x210f24, 52)) == 2166564);
+ assert(unsigned(flip_mask(0x210f28, 52)) == 2166568);
+ assert(unsigned(flip_mask(0x210f2c, 52)) == 2166572);
+ assert(unsigned(flip_mask(0x210f30, 52)) == 2166576);
+ assert(unsigned(flip_mask(0x210f34, 52)) == 2166580);
+ assert(unsigned(flip_mask(0x210f38, 52)) == 2166584);
+ assert(unsigned(flip_mask(0x210f3c, 52)) == 2166588);
+ assert(unsigned(flip_mask(0x210f40, 52)) == 2166592);
+ assert(unsigned(flip_mask(0x210f44, 52)) == 2166596);
+ assert(unsigned(flip_mask(0x210f48, 52)) == 2166600);
+ assert(unsigned(flip_mask(0x210f4c, 52)) == 2166604);
+ assert(unsigned(flip_mask(0x210f50, 52)) == 2166608);
+ assert(unsigned(flip_mask(0x210f54, 52)) == 2166612);
+ assert(unsigned(flip_mask(0x210f58, 52)) == 2166616);
+ assert(unsigned(flip_mask(0x210f5c, 52)) == 2166620);
+ assert(unsigned(flip_mask(0x210f60, 52)) == 2166624);
+ assert(unsigned(flip_mask(0x210f64, 52)) == 2166628);
+ assert(unsigned(flip_mask(0x210f68, 52)) == 2166632);
+ assert(unsigned(flip_mask(0x210f6c, 52)) == 2166636);
+ assert(unsigned(flip_mask(0x211150, 52)) == 2167120);
+ assert(unsigned(flip_mask(0x212570, 52)) == 2172272);
+ assert(unsigned(flip_mask(0x212574, 52)) == 2172276);
+ assert(unsigned(flip_mask(0x212578, 52)) == 2172280);
+ assert(unsigned(flip_mask(0x21257c, 52)) == 2172284);
+ assert(unsigned(flip_mask(0x212580, 52)) == 2172288);
+ assert(unsigned(flip_mask(0x212584, 52)) == 2172292);
+ assert(unsigned(flip_mask(0x212588, 52)) == 2172296);
+ assert(unsigned(flip_mask(0x21258c, 52)) == 2172300);
+ assert(unsigned(flip_mask(0x212590, 52)) == 2172304);
+ assert(unsigned(flip_mask(0x212594, 52)) == 2172308);
+ assert(unsigned(flip_mask(0x212598, 52)) == 2172312);
+ assert(unsigned(flip_mask(0x21259c, 52)) == 2172316);
+ assert(unsigned(flip_mask(0x2125a0, 52)) == 2172320);
+ assert(unsigned(flip_mask(0x2125a4, 52)) == 2172324);
+ assert(unsigned(flip_mask(0x2125a8, 52)) == 2172328);
+ assert(unsigned(flip_mask(0x2125ac, 52)) == 2172332);
+ assert(unsigned(flip_mask(0x2125b0, 52)) == 2172336);
+ assert(unsigned(flip_mask(0x2125b4, 52)) == 2172340);
+ assert(unsigned(flip_mask(0x2125b8, 52)) == 2172344);
+ assert(unsigned(flip_mask(0x2125bc, 52)) == 2172348);
+ assert(unsigned(flip_mask(0x2125c0, 52)) == 2172352);
+ assert(unsigned(flip_mask(0x2125c4, 52)) == 2172356);
+ assert(unsigned(flip_mask(0x2125c8, 52)) == 2172360);
+ assert(unsigned(flip_mask(0x2125cc, 52)) == 2172364);
+ assert(unsigned(flip_mask(0x2125d0, 52)) == 2172368);
+ assert(unsigned(flip_mask(0x2125d4, 52)) == 2172372);
+ assert(unsigned(flip_mask(0x2125d8, 52)) == 2172376);
+ assert(unsigned(flip_mask(0x2125dc, 52)) == 2172380);
+ assert(unsigned(flip_mask(0x2125e0, 52)) == 2172384);
+ assert(unsigned(flip_mask(0x2125e4, 52)) == 2172388);
+ assert(unsigned(flip_mask(0x2125e8, 52)) == 2172392);
+ assert(unsigned(flip_mask(0x2125ec, 52)) == 2172396);
+ assert(unsigned(flip_mask(0x2125f0, 52)) == 2172400);
+ assert(unsigned(flip_mask(0x2125f4, 52)) == 2172404);
+ assert(unsigned(flip_mask(0x2125f8, 52)) == 2172408);
+ assert(unsigned(flip_mask(0x2125fc, 52)) == 2172412);
+ assert(unsigned(flip_mask(0x212600, 52)) == 2172416);
+ assert(unsigned(flip_mask(0x212604, 52)) == 2172420);
+ assert(unsigned(flip_mask(0x212608, 52)) == 2172424);
+ assert(unsigned(flip_mask(0x21260c, 52)) == 2172428);
+ assert(unsigned(flip_mask(0x212610, 52)) == 2172432);
+ assert(unsigned(flip_mask(0x212620, 52)) == 2172448);
+ assert(unsigned(flip_mask(0x212860, 52)) == 2173024);
+ assert(unsigned(flip_mask(0x214400, 52)) == 2180096);
+ assert(unsigned(flip_mask(0x214ab4, 52)) == 2181812);
+ assert(unsigned(flip_mask(0x214ab8, 52)) == 2181816);
+ assert(unsigned(flip_mask(0x214abc, 52)) == 2181820);
+ assert(unsigned(flip_mask(0x214ac0, 52)) == 2181824);
+ assert(unsigned(flip_mask(0x214ac4, 52)) == 2181828);
+ assert(unsigned(flip_mask(0x214ac8, 52)) == 2181832);
+ assert(unsigned(flip_mask(0x214ad4, 52)) == 2181844);
+ assert(unsigned(flip_mask(0x214ad8, 52)) == 2181848);
+ assert(unsigned(flip_mask(0x214adc, 52)) == 2181852);
+ assert(unsigned(flip_mask(0x214ae0, 52)) == 2181856);
+ assert(unsigned(flip_mask(0x214ae4, 52)) == 2181860);
+ assert(unsigned(flip_mask(0x214ae8, 52)) == 2181864);
+ assert(unsigned(flip_mask(0x214aec, 52)) == 2181868);
+ assert(unsigned(flip_mask(0x214af0, 52)) == 2181872);
+ assert(unsigned(flip_mask(0x214af4, 52)) == 2181876);
+ assert(unsigned(flip_mask(0x214af8, 52)) == 2181880);
+ assert(unsigned(flip_mask(0x214afc, 52)) == 2181884);
+ assert(unsigned(flip_mask(0x214b00, 52)) == 2181888);
+ assert(unsigned(flip_mask(0x214b04, 52)) == 2181892);
+ assert(unsigned(flip_mask(0x214b88, 52)) == 2182024);
+ assert(unsigned(flip_mask(0x214b8c, 52)) == 2182028);
+ assert(unsigned(flip_mask(0x214b90, 52)) == 2182032);
+ assert(unsigned(flip_mask(0x214b94, 52)) == 2182036);
+ assert(unsigned(flip_mask(0x214b98, 52)) == 2182040);
+ assert(unsigned(flip_mask(0x214b9c, 52)) == 2182044);
+ assert(unsigned(flip_mask(0x214ba0, 52)) == 2182048);
+ assert(unsigned(flip_mask(0x214ba4, 52)) == 2182052);
+ assert(unsigned(flip_mask(0x214ba8, 52)) == 2182056);
+ assert(unsigned(flip_mask(0x214bac, 52)) == 2182060);
+ assert(unsigned(flip_mask(0x214bb0, 52)) == 2182064);
+ assert(unsigned(flip_mask(0x214bb4, 52)) == 2182068);
+ assert(unsigned(flip_mask(0x214bb8, 52)) == 2182072);
+ assert(unsigned(flip_mask(0x214bbc, 52)) == 2182076);
+ assert(unsigned(flip_mask(0x214d64, 52)) == 2182500);
+ assert(unsigned(flip_mask(0x214d68, 52)) == 2182504);
+ assert(unsigned(flip_mask(0x214d6c, 52)) == 2182508);
+ assert(unsigned(flip_mask(0x214d70, 52)) == 2182512);
+ assert(unsigned(flip_mask(0x214d74, 52)) == 2182516);
+ assert(unsigned(flip_mask(0x214d78, 52)) == 2182520);
+ assert(unsigned(flip_mask(0x214d7c, 52)) == 2182524);
+ assert(unsigned(flip_mask(0x214d80, 52)) == 2182528);
+ assert(unsigned(flip_mask(0x214d84, 52)) == 2182532);
+ assert(unsigned(flip_mask(0x214d88, 52)) == 2182536);
+ assert(unsigned(flip_mask(0x214d8c, 52)) == 2182540);
+ assert(unsigned(flip_mask(0x214d90, 52)) == 2182544);
+ assert(unsigned(flip_mask(0x214d94, 52)) == 2182548);
+ assert(unsigned(flip_mask(0x214d98, 52)) == 2182552);
+ assert(unsigned(flip_mask(0x214d9c, 52)) == 2182556);
+ assert(unsigned(flip_mask(0x214da0, 52)) == 2182560);
+ assert(unsigned(flip_mask(0x214da4, 52)) == 2182564);
+ assert(unsigned(flip_mask(0x214da8, 52)) == 2182568);
+ assert(unsigned(flip_mask(0x214dac, 52)) == 2182572);
+ assert(unsigned(flip_mask(0x214db0, 52)) == 2182576);
+ assert(unsigned(flip_mask(0x214db4, 52)) == 2182580);
+ assert(unsigned(flip_mask(0x214db8, 52)) == 2182584);
+ assert(unsigned(flip_mask(0x214dbc, 52)) == 2182588);
+ assert(unsigned(flip_mask(0x214dc0, 52)) == 2182592);
+ assert(unsigned(flip_mask(0x214dc4, 52)) == 2182596);
+ assert(unsigned(flip_mask(0x214dc8, 52)) == 2182600);
+ assert(unsigned(flip_mask(0x214dcc, 52)) == 2182604);
+ assert(unsigned(flip_mask(0x214dd0, 52)) == 2182608);
+ assert(unsigned(flip_mask(0x214dd4, 52)) == 2182612);
+ assert(unsigned(flip_mask(0x214dd8, 52)) == 2182616);
+ assert(unsigned(flip_mask(0x214ddc, 52)) == 2182620);
+ assert(unsigned(flip_mask(0x214de0, 52)) == 2182624);
+ assert(unsigned(flip_mask(0x214de4, 52)) == 2182628);
+ assert(unsigned(flip_mask(0x214de8, 52)) == 2182632);
+ assert(unsigned(flip_mask(0x214dec, 52)) == 2182636);
+ assert(unsigned(flip_mask(0x214df0, 52)) == 2182640);
+ assert(unsigned(flip_mask(0x214df4, 52)) == 2182644);
+ assert(unsigned(flip_mask(0x214df8, 52)) == 2182648);
+ assert(unsigned(flip_mask(0x214dfc, 52)) == 2182652);
+ assert(unsigned(flip_mask(0x214e00, 52)) == 2182656);
+ assert(unsigned(flip_mask(0x214e04, 52)) == 2182660);
+ assert(unsigned(flip_mask(0x214e08, 52)) == 2182664);
+ assert(unsigned(flip_mask(0x216240, 52)) == 2187840);
+ assert(unsigned(flip_mask(0x216244, 52)) == 2187844);
+ assert(unsigned(flip_mask(0x216310, 52)) == 2188048);
+ assert(unsigned(flip_mask(0x216314, 52)) == 2188052);
+ assert(unsigned(flip_mask(0x216318, 52)) == 2188056);
+ assert(unsigned(flip_mask(0x21631c, 52)) == 2188060);
+ assert(unsigned(flip_mask(0x216320, 52)) == 2188064);
+ assert(unsigned(flip_mask(0x216324, 52)) == 2188068);
+ assert(unsigned(flip_mask(0x216328, 52)) == 2188072);
+ assert(unsigned(flip_mask(0x21632c, 52)) == 2188076);
+ assert(unsigned(flip_mask(0x216330, 52)) == 2188080);
+ assert(unsigned(flip_mask(0x216334, 52)) == 2188084);
+ assert(unsigned(flip_mask(0x216368, 52)) == 2188136);
+ assert(unsigned(flip_mask(0x21636c, 52)) == 2188140);
+ assert(unsigned(flip_mask(0x216384, 52)) == 2188164);
+ assert(unsigned(flip_mask(0x216388, 52)) == 2188168);
+ assert(unsigned(flip_mask(0x2163c0, 52)) == 2188224);
+ assert(unsigned(flip_mask(0x2163c4, 52)) == 2188228);
+ assert(unsigned(flip_mask(0x2163d0, 52)) == 2188240);
+ assert(unsigned(flip_mask(0x2163d4, 52)) == 2188244);
+ assert(unsigned(flip_mask(0x2163e0, 52)) == 2188256);
+ assert(unsigned(flip_mask(0x2163e4, 52)) == 2188260);
+ assert(unsigned(flip_mask(0x2163f0, 52)) == 2188272);
+ assert(unsigned(flip_mask(0x2163f4, 52)) == 2188276);
+ assert(unsigned(flip_mask(0x2163f8, 52)) == 2188280);
+ assert(unsigned(flip_mask(0x2163fc, 52)) == 2188284);
+ assert(unsigned(flip_mask(0x216400, 52)) == 2188288);
+ assert(unsigned(flip_mask(0x216404, 52)) == 2188292);
+ assert(unsigned(flip_mask(0x216408, 52)) == 2188296);
+ assert(unsigned(flip_mask(0x21640c, 52)) == 2188300);
+ assert(unsigned(flip_mask(0x216420, 52)) == 2188320);
+ assert(unsigned(flip_mask(0x216424, 52)) == 2188324);
+ assert(unsigned(flip_mask(0x216428, 52)) == 2188328);
+ assert(unsigned(flip_mask(0x21642c, 52)) == 2188332);
+ assert(unsigned(flip_mask(0x21644c, 52)) == 2188364);
+ assert(unsigned(flip_mask(0x216450, 52)) == 2188368);
+ assert(unsigned(flip_mask(0x21645c, 52)) == 2188380);
+ assert(unsigned(flip_mask(0x216460, 52)) == 2188384);
+ assert(unsigned(flip_mask(0x216464, 52)) == 2188388);
+ assert(unsigned(flip_mask(0x216474, 52)) == 2188404);
+ assert(unsigned(flip_mask(0x216478, 52)) == 2188408);
+ assert(unsigned(flip_mask(0x21647c, 52)) == 2188412);
+ assert(unsigned(flip_mask(0x216480, 52)) == 2188416);
+ assert(unsigned(flip_mask(0x216484, 52)) == 2188420);
+ assert(unsigned(flip_mask(0x216488, 52)) == 2188424);
+ assert(unsigned(flip_mask(0x21648c, 52)) == 2188428);
+ assert(unsigned(flip_mask(0x216490, 52)) == 2188432);
+ assert(unsigned(flip_mask(0x216494, 52)) == 2188436);
+ assert(unsigned(flip_mask(0x216498, 52)) == 2188440);
+ assert(unsigned(flip_mask(0x21649c, 52)) == 2188444);
+ assert(unsigned(flip_mask(0x2164a0, 52)) == 2188448);
+ assert(unsigned(flip_mask(0x2164a4, 52)) == 2188452);
+ assert(unsigned(flip_mask(0x2164a8, 52)) == 2188456);
+ assert(unsigned(flip_mask(0x2164ac, 52)) == 2188460);
+ assert(unsigned(flip_mask(0x2164b0, 52)) == 2188464);
+ assert(unsigned(flip_mask(0x2164b4, 52)) == 2188468);
+ assert(unsigned(flip_mask(0x2164b8, 52)) == 2188472);
+ assert(unsigned(flip_mask(0x2164d4, 52)) == 2188500);
+ assert(unsigned(flip_mask(0x2164d8, 52)) == 2188504);
+ assert(unsigned(flip_mask(0x2164dc, 52)) == 2188508);
+ assert(unsigned(flip_mask(0x2164e0, 52)) == 2188512);
+ assert(unsigned(flip_mask(0x216510, 52)) == 2188560);
+ assert(unsigned(flip_mask(0x216514, 52)) == 2188564);
+ assert(unsigned(flip_mask(0x216518, 52)) == 2188568);
+ assert(unsigned(flip_mask(0x21651c, 52)) == 2188572);
+ assert(unsigned(flip_mask(0x216528, 52)) == 2188584);
+ assert(unsigned(flip_mask(0x21652c, 52)) == 2188588);
+ assert(unsigned(flip_mask(0x216590, 52)) == 2188688);
+ assert(unsigned(flip_mask(0x216594, 52)) == 2188692);
+ assert(unsigned(flip_mask(0x216598, 52)) == 2188696);
+ assert(unsigned(flip_mask(0x2165b4, 52)) == 2188724);
+ assert(unsigned(flip_mask(0x2165b8, 52)) == 2188728);
+ assert(unsigned(flip_mask(0x2165bc, 52)) == 2188732);
+ assert(unsigned(flip_mask(0x2165c8, 52)) == 2188744);
+ assert(unsigned(flip_mask(0x2165cc, 52)) == 2188748);
+ assert(unsigned(flip_mask(0x2165d0, 52)) == 2188752);
+ assert(unsigned(flip_mask(0x2165e0, 52)) == 2188768);
+ assert(unsigned(flip_mask(0x2165e4, 52)) == 2188772);
+ assert(unsigned(flip_mask(0x2165e8, 52)) == 2188776);
+ assert(unsigned(flip_mask(0x2165ec, 52)) == 2188780);
+ assert(unsigned(flip_mask(0x2165f0, 52)) == 2188784);
+ assert(unsigned(flip_mask(0x2165f4, 52)) == 2188788);
+ assert(unsigned(flip_mask(0x2165f8, 52)) == 2188792);
+ assert(unsigned(flip_mask(0x2165fc, 52)) == 2188796);
+ assert(unsigned(flip_mask(0x216600, 52)) == 2188800);
+ assert(unsigned(flip_mask(0x21660c, 52)) == 2188812);
+ assert(unsigned(flip_mask(0x216610, 52)) == 2188816);
+ assert(unsigned(flip_mask(0x216614, 52)) == 2188820);
+ assert(unsigned(flip_mask(0x21663c, 52)) == 2188860);
+ assert(unsigned(flip_mask(0x216640, 52)) == 2188864);
+ assert(unsigned(flip_mask(0x216644, 52)) == 2188868);
+ assert(unsigned(flip_mask(0x216648, 52)) == 2188872);
+ assert(unsigned(flip_mask(0x21664c, 52)) == 2188876);
+ assert(unsigned(flip_mask(0x216650, 52)) == 2188880);
+ assert(unsigned(flip_mask(0x216654, 52)) == 2188884);
+ assert(unsigned(flip_mask(0x216658, 52)) == 2188888);
+ assert(unsigned(flip_mask(0x21665c, 52)) == 2188892);
+ assert(unsigned(flip_mask(0x216668, 52)) == 2188904);
+ assert(unsigned(flip_mask(0x21666c, 52)) == 2188908);
+ assert(unsigned(flip_mask(0x216678, 52)) == 2188920);
+ assert(unsigned(flip_mask(0x21667c, 52)) == 2188924);
+ assert(unsigned(flip_mask(0x216680, 52)) == 2188928);
+ assert(unsigned(flip_mask(0x216684, 52)) == 2188932);
+ assert(unsigned(flip_mask(0x2166a0, 52)) == 2188960);
+ assert(unsigned(flip_mask(0x2166a4, 52)) == 2188964);
+ assert(unsigned(flip_mask(0x2166a8, 52)) == 2188968);
+ assert(unsigned(flip_mask(0x2166ac, 52)) == 2188972);
+ assert(unsigned(flip_mask(0x2166b0, 52)) == 2188976);
+ assert(unsigned(flip_mask(0x2166b4, 52)) == 2188980);
+ assert(unsigned(flip_mask(0x21a590, 52)) == 2205072);
+ assert(unsigned(flip_mask(0x21a594, 52)) == 2205076);
+ assert(unsigned(flip_mask(0x21a598, 52)) == 2205080);
+ assert(unsigned(flip_mask(0x21a59c, 52)) == 2205084);
+ assert(unsigned(flip_mask(0x21a5a0, 52)) == 2205088);
+ assert(unsigned(flip_mask(0x21a5a4, 52)) == 2205092);
+ assert(unsigned(flip_mask(0x21a5a8, 52)) == 2205096);
+ assert(unsigned(flip_mask(0x21a5ac, 52)) == 2205100);
+ assert(unsigned(flip_mask(0x21a5b0, 52)) == 2205104);
+ assert(unsigned(flip_mask(0x21a5b4, 52)) == 2205108);
+ assert(unsigned(flip_mask(0x21a5b8, 52)) == 2205112);
+ assert(unsigned(flip_mask(0x21a5bc, 52)) == 2205116);
+ assert(unsigned(flip_mask(0x21a5d4, 52)) == 2205140);
+ assert(unsigned(flip_mask(0x21a5d8, 52)) == 2205144);
+ assert(unsigned(flip_mask(0x21a5f4, 52)) == 2205172);
+ assert(unsigned(flip_mask(0x21a5f8, 52)) == 2205176);
+ assert(unsigned(flip_mask(0x21a5fc, 52)) == 2205180);
+ assert(unsigned(flip_mask(0x21a600, 52)) == 2205184);
+ assert(unsigned(flip_mask(0x21a75c, 52)) == 2205532);
+ assert(unsigned(flip_mask(0x21a760, 52)) == 2205536);
+ assert(unsigned(flip_mask(0x21a764, 52)) == 2205540);
+ assert(unsigned(flip_mask(0x21a768, 52)) == 2205544);
+ assert(unsigned(flip_mask(0x21a76c, 52)) == 2205548);
+ assert(unsigned(flip_mask(0x21a770, 52)) == 2205552);
+ assert(unsigned(flip_mask(0x21a774, 52)) == 2205556);
+ assert(unsigned(flip_mask(0x21a778, 52)) == 2205560);
+ assert(unsigned(flip_mask(0x21a77c, 52)) == 2205564);
+ assert(unsigned(flip_mask(0x21a780, 52)) == 2205568);
+ assert(unsigned(flip_mask(0x21a784, 52)) == 2205572);
+ assert(unsigned(flip_mask(0x21a788, 52)) == 2205576);
+ assert(unsigned(flip_mask(0x21a78c, 52)) == 2205580);
+ assert(unsigned(flip_mask(0x21a790, 52)) == 2205584);
+ assert(unsigned(flip_mask(0x21a794, 52)) == 2205588);
+ assert(unsigned(flip_mask(0x21a798, 52)) == 2205592);
+ assert(unsigned(flip_mask(0x21a79c, 52)) == 2205596);
+ assert(unsigned(flip_mask(0x21a840, 52)) == 2205760);
+ assert(unsigned(flip_mask(0x21a844, 52)) == 2205764);
+ assert(unsigned(flip_mask(0x21a848, 52)) == 2205768);
+ assert(unsigned(flip_mask(0x21a84c, 52)) == 2205772);
+ assert(unsigned(flip_mask(0x21a850, 52)) == 2205776);
+ assert(unsigned(flip_mask(0x21a858, 52)) == 2205784);
+ assert(unsigned(flip_mask(0x21a85c, 52)) == 2205788);
+ assert(unsigned(flip_mask(0x21a860, 52)) == 2205792);
+ assert(unsigned(flip_mask(0x21a864, 52)) == 2205796);
+ assert(unsigned(flip_mask(0x21a870, 52)) == 2205808);
+ assert(unsigned(flip_mask(0x21a878, 52)) == 2205816);
+ assert(unsigned(flip_mask(0x21a87c, 52)) == 2205820);
+ assert(unsigned(flip_mask(0x21a880, 52)) == 2205824);
+ assert(unsigned(flip_mask(0x21a884, 52)) == 2205828);
+ assert(unsigned(flip_mask(0x21a888, 52)) == 2205832);
+ assert(unsigned(flip_mask(0x21a88c, 52)) == 2205836);
+ assert(unsigned(flip_mask(0x21a890, 52)) == 2205840);
+ assert(unsigned(flip_mask(0x21a894, 52)) == 2205844);
+ assert(unsigned(flip_mask(0x21a898, 52)) == 2205848);
+ assert(unsigned(flip_mask(0x21a89c, 52)) == 2205852);
+ assert(unsigned(flip_mask(0x21a8a0, 52)) == 2205856);
+ assert(unsigned(flip_mask(0x21a8a4, 52)) == 2205860);
+ assert(unsigned(flip_mask(0x21a8a8, 52)) == 2205864);
+ assert(unsigned(flip_mask(0x21a8ac, 52)) == 2205868);
+ assert(unsigned(flip_mask(0x21a8b0, 52)) == 2205872);
+ assert(unsigned(flip_mask(0x21a8b4, 52)) == 2205876);
+ assert(unsigned(flip_mask(0x21a8b8, 52)) == 2205880);
+ assert(unsigned(flip_mask(0x21a8bc, 52)) == 2205884);
+ assert(unsigned(flip_mask(0x21a8c0, 52)) == 2205888);
+ assert(unsigned(flip_mask(0x21a8c4, 52)) == 2205892);
+ assert(unsigned(flip_mask(0x21a8c8, 52)) == 2205896);
+ assert(unsigned(flip_mask(0x21a8cc, 52)) == 2205900);
+ assert(unsigned(flip_mask(0x21a8d0, 52)) == 2205904);
+ assert(unsigned(flip_mask(0x21a8d4, 52)) == 2205908);
+ assert(unsigned(flip_mask(0x21a8d8, 52)) == 2205912);
+ assert(unsigned(flip_mask(0x21a8dc, 52)) == 2205916);
+ assert(unsigned(flip_mask(0x21a8e0, 52)) == 2205920);
+ assert(unsigned(flip_mask(0x21a8e4, 52)) == 2205924);
+ assert(unsigned(flip_mask(0x21a8e8, 52)) == 2205928);
+ assert(unsigned(flip_mask(0x21a8ec, 52)) == 2205932);
+ assert(unsigned(flip_mask(0x21a8f0, 52)) == 2205936);
+ assert(unsigned(flip_mask(0x21a8f4, 52)) == 2205940);
+ assert(unsigned(flip_mask(0x21a8f8, 52)) == 2205944);
+ assert(unsigned(flip_mask(0x21a8fc, 52)) == 2205948);
+ assert(unsigned(flip_mask(0x21a900, 52)) == 2205952);
+ assert(unsigned(flip_mask(0x21a904, 52)) == 2205956);
+ assert(unsigned(flip_mask(0x21a908, 52)) == 2205960);
+ assert(unsigned(flip_mask(0x21a90c, 52)) == 2205964);
+ assert(unsigned(flip_mask(0x21a910, 52)) == 2205968);
+ assert(unsigned(flip_mask(0x21a914, 52)) == 2205972);
+ assert(unsigned(flip_mask(0x21a918, 52)) == 2205976);
+ assert(unsigned(flip_mask(0x21a91c, 52)) == 2205980);
+ assert(unsigned(flip_mask(0x21a920, 52)) == 2205984);
+ assert(unsigned(flip_mask(0x21a924, 52)) == 2205988);
+ assert(unsigned(flip_mask(0x21a928, 52)) == 2205992);
+ assert(unsigned(flip_mask(0x21a92c, 52)) == 2205996);
+ assert(unsigned(flip_mask(0x21a930, 52)) == 2206000);
+ assert(unsigned(flip_mask(0x21a934, 52)) == 2206004);
+ assert(unsigned(flip_mask(0x21a938, 52)) == 2206008);
+ assert(unsigned(flip_mask(0x21a93c, 52)) == 2206012);
+ assert(unsigned(flip_mask(0x21a940, 52)) == 2206016);
+ assert(unsigned(flip_mask(0x21a944, 52)) == 2206020);
+ assert(unsigned(flip_mask(0x21a948, 52)) == 2206024);
+ assert(unsigned(flip_mask(0x21a94c, 52)) == 2206028);
+ assert(unsigned(flip_mask(0x21a950, 52)) == 2206032);
+ assert(unsigned(flip_mask(0x21a954, 52)) == 2206036);
+ assert(unsigned(flip_mask(0x21a958, 52)) == 2206040);
+ assert(unsigned(flip_mask(0x21a95c, 52)) == 2206044);
+ assert(unsigned(flip_mask(0x21a960, 52)) == 2206048);
+ assert(unsigned(flip_mask(0x21a964, 52)) == 2206052);
+ assert(unsigned(flip_mask(0x21a968, 52)) == 2206056);
+ assert(unsigned(flip_mask(0x21a96c, 52)) == 2206060);
+ assert(unsigned(flip_mask(0x21a970, 52)) == 2206064);
+ assert(unsigned(flip_mask(0x21a974, 52)) == 2206068);
+ assert(unsigned(flip_mask(0x21a978, 52)) == 2206072);
+ assert(unsigned(flip_mask(0x21a97c, 52)) == 2206076);
+ assert(unsigned(flip_mask(0x21a980, 52)) == 2206080);
+ assert(unsigned(flip_mask(0x21a984, 52)) == 2206084);
+ assert(unsigned(flip_mask(0x21a988, 52)) == 2206088);
+ assert(unsigned(flip_mask(0x21a98c, 52)) == 2206092);
+ assert(unsigned(flip_mask(0x21a990, 52)) == 2206096);
+ assert(unsigned(flip_mask(0x21a994, 52)) == 2206100);
+ assert(unsigned(flip_mask(0x21a998, 52)) == 2206104);
+ assert(unsigned(flip_mask(0x21a99c, 52)) == 2206108);
+ assert(unsigned(flip_mask(0x21a9a0, 52)) == 2206112);
+ assert(unsigned(flip_mask(0x21a9a4, 52)) == 2206116);
+ assert(unsigned(flip_mask(0x21a9a8, 52)) == 2206120);
+ assert(unsigned(flip_mask(0x21a9ac, 52)) == 2206124);
+ assert(unsigned(flip_mask(0x21a9b0, 52)) == 2206128);
+ assert(unsigned(flip_mask(0x21a9b4, 52)) == 2206132);
+ assert(unsigned(flip_mask(0x21a9b8, 52)) == 2206136);
+ assert(unsigned(flip_mask(0x21a9bc, 52)) == 2206140);
+ assert(unsigned(flip_mask(0x21a9c0, 52)) == 2206144);
+ assert(unsigned(flip_mask(0x21a9c4, 52)) == 2206148);
+ assert(unsigned(flip_mask(0x21a9c8, 52)) == 2206152);
+ assert(unsigned(flip_mask(0x21a9cc, 52)) == 2206156);
+ assert(unsigned(flip_mask(0x21a9d0, 52)) == 2206160);
+ assert(unsigned(flip_mask(0x21a9d4, 52)) == 2206164);
+ assert(unsigned(flip_mask(0x21a9d8, 52)) == 2206168);
+ assert(unsigned(flip_mask(0x21a9dc, 52)) == 2206172);
+ assert(unsigned(flip_mask(0x21a9e0, 52)) == 2206176);
+ assert(unsigned(flip_mask(0x21a9e4, 52)) == 2206180);
+ assert(unsigned(flip_mask(0x21a9e8, 52)) == 2206184);
+ assert(unsigned(flip_mask(0x21a9f4, 52)) == 2206196);
+ assert(unsigned(flip_mask(0x21a9f8, 52)) == 2206200);
+ assert(unsigned(flip_mask(0x21a9fc, 52)) == 2206204);
+ assert(unsigned(flip_mask(0x21aa00, 52)) == 2206208);
+ assert(unsigned(flip_mask(0x21aa04, 52)) == 2206212);
+ assert(unsigned(flip_mask(0x21aa08, 52)) == 2206216);
+ assert(unsigned(flip_mask(0x21aa0c, 52)) == 2206220);
+ assert(unsigned(flip_mask(0x21aa10, 52)) == 2206224);
+ assert(unsigned(flip_mask(0x21aa14, 52)) == 2206228);
+ assert(unsigned(flip_mask(0x21aa18, 52)) == 2206232);
+ assert(unsigned(flip_mask(0x21aa1c, 52)) == 2206236);
+ assert(unsigned(flip_mask(0x21aa20, 52)) == 2206240);
+ assert(unsigned(flip_mask(0x21aa24, 52)) == 2206244);
+ assert(unsigned(flip_mask(0x21aa28, 52)) == 2206248);
+ assert(unsigned(flip_mask(0x21aa2c, 52)) == 2206252);
+ assert(unsigned(flip_mask(0x21aa30, 52)) == 2206256);
+ assert(unsigned(flip_mask(0x21aa34, 52)) == 2206260);
+ assert(unsigned(flip_mask(0x21aa38, 52)) == 2206264);
+ assert(unsigned(flip_mask(0x21aa3c, 52)) == 2206268);
+ assert(unsigned(flip_mask(0x21aa40, 52)) == 2206272);
+ assert(unsigned(flip_mask(0x21aa50, 52)) == 2206288);
+ assert(unsigned(flip_mask(0x21aa58, 52)) == 2206296);
+ assert(unsigned(flip_mask(0x21aa60, 52)) == 2206304);
+ assert(unsigned(flip_mask(0x21aa68, 52)) == 2206312);
+ assert(unsigned(flip_mask(0x21aa6c, 52)) == 2206316);
+ assert(unsigned(flip_mask(0x21aa70, 52)) == 2206320);
+ assert(unsigned(flip_mask(0x21aa74, 52)) == 2206324);
+ assert(unsigned(flip_mask(0x21aa78, 52)) == 2206328);
+ assert(unsigned(flip_mask(0x21aa7c, 52)) == 2206332);
+ assert(unsigned(flip_mask(0x21aa80, 52)) == 2206336);
+ assert(unsigned(flip_mask(0x21aa84, 52)) == 2206340);
+ assert(unsigned(flip_mask(0x21aa88, 52)) == 2206344);
+ assert(unsigned(flip_mask(0x21aaa8, 52)) == 2206376);
+ assert(unsigned(flip_mask(0x21aab0, 52)) == 2206384);
+ assert(unsigned(flip_mask(0x21aab8, 52)) == 2206392);
+ assert(unsigned(flip_mask(0x21aac0, 52)) == 2206400);
+ assert(unsigned(flip_mask(0x21ac70, 52)) == 2206832);
+ assert(unsigned(flip_mask(0x21ac74, 52)) == 2206836);
+ assert(unsigned(flip_mask(0x21ac78, 52)) == 2206840);
+ assert(unsigned(flip_mask(0x21ac7c, 52)) == 2206844);
+ assert(unsigned(flip_mask(0x21ac80, 52)) == 2206848);
+ assert(unsigned(flip_mask(0x21ac84, 52)) == 2206852);
+ assert(unsigned(flip_mask(0x21ac88, 52)) == 2206856);
+ assert(unsigned(flip_mask(0x21ac8c, 52)) == 2206860);
+ assert(unsigned(flip_mask(0x21ac90, 52)) == 2206864);
+ assert(unsigned(flip_mask(0x21ac94, 52)) == 2206868);
+ assert(unsigned(flip_mask(0x21ac98, 52)) == 2206872);
+ assert(unsigned(flip_mask(0x21ac9c, 52)) == 2206876);
+ assert(unsigned(flip_mask(0x21aca0, 52)) == 2206880);
+ assert(unsigned(flip_mask(0x21aca4, 52)) == 2206884);
+ assert(unsigned(flip_mask(0x21aca8, 52)) == 2206888);
+ assert(unsigned(flip_mask(0x21acac, 52)) == 2206892);
+ assert(unsigned(flip_mask(0x21acb0, 52)) == 2206896);
+ assert(unsigned(flip_mask(0x21acb4, 52)) == 2206900);
+ assert(unsigned(flip_mask(0x21acb8, 52)) == 2206904);
+ assert(unsigned(flip_mask(0x21acbc, 52)) == 2206908);
+ assert(unsigned(flip_mask(0x21acc0, 52)) == 2206912);
+ assert(unsigned(flip_mask(0x21acc4, 52)) == 2206916);
+ assert(unsigned(flip_mask(0x21acc8, 52)) == 2206920);
+ assert(unsigned(flip_mask(0x21accc, 52)) == 2206924);
+ assert(unsigned(flip_mask(0x21acd0, 52)) == 2206928);
+ assert(unsigned(flip_mask(0x21acd4, 52)) == 2206932);
+ assert(unsigned(flip_mask(0x21acd8, 52)) == 2206936);
+ assert(unsigned(flip_mask(0x21acdc, 52)) == 2206940);
+ assert(unsigned(flip_mask(0x21ace0, 52)) == 2206944);
+ assert(unsigned(flip_mask(0x21ace4, 52)) == 2206948);
+ assert(unsigned(flip_mask(0x21ace8, 52)) == 2206952);
+ assert(unsigned(flip_mask(0x21acec, 52)) == 2206956);
+ assert(unsigned(flip_mask(0x21acf0, 52)) == 2206960);
+ assert(unsigned(flip_mask(0x21acf4, 52)) == 2206964);
+ assert(unsigned(flip_mask(0x21acf8, 52)) == 2206968);
+ assert(unsigned(flip_mask(0x21acfc, 52)) == 2206972);
+ assert(unsigned(flip_mask(0x21ad00, 52)) == 2206976);
+ assert(unsigned(flip_mask(0x21ad04, 52)) == 2206980);
+ assert(unsigned(flip_mask(0x21ad08, 52)) == 2206984);
+ assert(unsigned(flip_mask(0x21ad0c, 52)) == 2206988);
+ assert(unsigned(flip_mask(0x21ad10, 52)) == 2206992);
+ assert(unsigned(flip_mask(0x21ad14, 52)) == 2206996);
+}
diff --git a/test/builtins/unsigned2.sail b/test/builtins/unsigned2.sail
new file mode 100644
index 00000000..dea6d9c5
--- /dev/null
+++ b/test/builtins/unsigned2.sail
@@ -0,0 +1,3001 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(unsigned(zero_extend(0x21ad18, 52)) == 2207000);
+ assert(unsigned(zero_extend(0x21ad1c, 52)) == 2207004);
+ assert(unsigned(zero_extend(0x21ad20, 52)) == 2207008);
+ assert(unsigned(zero_extend(0x21ad24, 52)) == 2207012);
+ assert(unsigned(zero_extend(0x21ad28, 52)) == 2207016);
+ assert(unsigned(zero_extend(0x21ad2c, 52)) == 2207020);
+ assert(unsigned(zero_extend(0x21ad30, 52)) == 2207024);
+ assert(unsigned(zero_extend(0x21ad34, 52)) == 2207028);
+ assert(unsigned(zero_extend(0x21ad38, 52)) == 2207032);
+ assert(unsigned(zero_extend(0x21ad3c, 52)) == 2207036);
+ assert(unsigned(zero_extend(0x21ad40, 52)) == 2207040);
+ assert(unsigned(zero_extend(0x21ad44, 52)) == 2207044);
+ assert(unsigned(zero_extend(0x21ad48, 52)) == 2207048);
+ assert(unsigned(zero_extend(0x21ad4c, 52)) == 2207052);
+ assert(unsigned(zero_extend(0x21ad50, 52)) == 2207056);
+ assert(unsigned(zero_extend(0x21ad54, 52)) == 2207060);
+ assert(unsigned(zero_extend(0x21ad58, 52)) == 2207064);
+ assert(unsigned(zero_extend(0x21ad5c, 52)) == 2207068);
+ assert(unsigned(zero_extend(0x21ad60, 52)) == 2207072);
+ assert(unsigned(zero_extend(0x21ad64, 52)) == 2207076);
+ assert(unsigned(zero_extend(0x21ad68, 52)) == 2207080);
+ assert(unsigned(zero_extend(0x21ad6c, 52)) == 2207084);
+ assert(unsigned(zero_extend(0x21ad70, 52)) == 2207088);
+ assert(unsigned(zero_extend(0x21ad74, 52)) == 2207092);
+ assert(unsigned(zero_extend(0x21ad78, 52)) == 2207096);
+ assert(unsigned(zero_extend(0x21ad7c, 52)) == 2207100);
+ assert(unsigned(zero_extend(0x21ad80, 52)) == 2207104);
+ assert(unsigned(zero_extend(0x21ad84, 52)) == 2207108);
+ assert(unsigned(zero_extend(0x21ad88, 52)) == 2207112);
+ assert(unsigned(zero_extend(0x21ad8c, 52)) == 2207116);
+ assert(unsigned(zero_extend(0x21ad90, 52)) == 2207120);
+ assert(unsigned(zero_extend(0x21ad94, 52)) == 2207124);
+ assert(unsigned(zero_extend(0x21ad98, 52)) == 2207128);
+ assert(unsigned(zero_extend(0x21ad9c, 52)) == 2207132);
+ assert(unsigned(zero_extend(0x21ada0, 52)) == 2207136);
+ assert(unsigned(zero_extend(0x21ada4, 52)) == 2207140);
+ assert(unsigned(zero_extend(0x21ada8, 52)) == 2207144);
+ assert(unsigned(zero_extend(0x21adac, 52)) == 2207148);
+ assert(unsigned(zero_extend(0x21adb0, 52)) == 2207152);
+ assert(unsigned(zero_extend(0x21adb4, 52)) == 2207156);
+ assert(unsigned(zero_extend(0x21adb8, 52)) == 2207160);
+ assert(unsigned(zero_extend(0x21adbc, 52)) == 2207164);
+ assert(unsigned(zero_extend(0x21adc0, 52)) == 2207168);
+ assert(unsigned(zero_extend(0x21adc4, 52)) == 2207172);
+ assert(unsigned(zero_extend(0x21adc8, 52)) == 2207176);
+ assert(unsigned(zero_extend(0x21adcc, 52)) == 2207180);
+ assert(unsigned(zero_extend(0x21add0, 52)) == 2207184);
+ assert(unsigned(zero_extend(0x21add4, 52)) == 2207188);
+ assert(unsigned(zero_extend(0x21add8, 52)) == 2207192);
+ assert(unsigned(zero_extend(0x21addc, 52)) == 2207196);
+ assert(unsigned(zero_extend(0x21ade0, 52)) == 2207200);
+ assert(unsigned(zero_extend(0x21ade4, 52)) == 2207204);
+ assert(unsigned(zero_extend(0x21ade8, 52)) == 2207208);
+ assert(unsigned(zero_extend(0x21adec, 52)) == 2207212);
+ assert(unsigned(zero_extend(0x21adf0, 52)) == 2207216);
+ assert(unsigned(zero_extend(0x21adf4, 52)) == 2207220);
+ assert(unsigned(zero_extend(0x21adf8, 52)) == 2207224);
+ assert(unsigned(zero_extend(0x21adfc, 52)) == 2207228);
+ assert(unsigned(zero_extend(0x21ae00, 52)) == 2207232);
+ assert(unsigned(zero_extend(0x21ae04, 52)) == 2207236);
+ assert(unsigned(zero_extend(0x21ae08, 52)) == 2207240);
+ assert(unsigned(zero_extend(0x21ae0c, 52)) == 2207244);
+ assert(unsigned(zero_extend(0x21ae10, 52)) == 2207248);
+ assert(unsigned(zero_extend(0x21ae14, 52)) == 2207252);
+ assert(unsigned(zero_extend(0x21ae18, 52)) == 2207256);
+ assert(unsigned(zero_extend(0x21ae1c, 52)) == 2207260);
+ assert(unsigned(zero_extend(0x21ae20, 52)) == 2207264);
+ assert(unsigned(zero_extend(0x21ae28, 52)) == 2207272);
+ assert(unsigned(zero_extend(0x21ae30, 52)) == 2207280);
+ assert(unsigned(zero_extend(0x21ae40, 52)) == 2207296);
+ assert(unsigned(zero_extend(0x21ae44, 52)) == 2207300);
+ assert(unsigned(zero_extend(0x21ae48, 52)) == 2207304);
+ assert(unsigned(zero_extend(0x21ae4c, 52)) == 2207308);
+ assert(unsigned(zero_extend(0x21ae50, 52)) == 2207312);
+ assert(unsigned(zero_extend(0x21ae54, 52)) == 2207316);
+ assert(unsigned(zero_extend(0x21ae58, 52)) == 2207320);
+ assert(unsigned(zero_extend(0x21ae5c, 52)) == 2207324);
+ assert(unsigned(zero_extend(0x21ae60, 52)) == 2207328);
+ assert(unsigned(zero_extend(0x21ae64, 52)) == 2207332);
+ assert(unsigned(zero_extend(0x21ae68, 52)) == 2207336);
+ assert(unsigned(zero_extend(0x21ae6c, 52)) == 2207340);
+ assert(unsigned(zero_extend(0x21ae70, 52)) == 2207344);
+ assert(unsigned(zero_extend(0x21ae74, 52)) == 2207348);
+ assert(unsigned(zero_extend(0x21ae78, 52)) == 2207352);
+ assert(unsigned(zero_extend(0x21ae80, 52)) == 2207360);
+ assert(unsigned(zero_extend(0x21ae88, 52)) == 2207368);
+ assert(unsigned(zero_extend(0x21aef0, 52)) == 2207472);
+ assert(unsigned(zero_extend(0x21aef4, 52)) == 2207476);
+ assert(unsigned(zero_extend(0x21aef8, 52)) == 2207480);
+ assert(unsigned(zero_extend(0x21aefc, 52)) == 2207484);
+ assert(unsigned(zero_extend(0x21af00, 52)) == 2207488);
+ assert(unsigned(zero_extend(0x21af04, 52)) == 2207492);
+ assert(unsigned(zero_extend(0x21af08, 52)) == 2207496);
+ assert(unsigned(zero_extend(0x21af0c, 52)) == 2207500);
+ assert(unsigned(zero_extend(0x21af10, 52)) == 2207504);
+ assert(unsigned(zero_extend(0x21af14, 52)) == 2207508);
+ assert(unsigned(zero_extend(0x21af18, 52)) == 2207512);
+ assert(unsigned(zero_extend(0x21af1c, 52)) == 2207516);
+ assert(unsigned(zero_extend(0x21af20, 52)) == 2207520);
+ assert(unsigned(zero_extend(0x21af24, 52)) == 2207524);
+ assert(unsigned(zero_extend(0x21af28, 52)) == 2207528);
+ assert(unsigned(zero_extend(0x21af2c, 52)) == 2207532);
+ assert(unsigned(zero_extend(0x21af30, 52)) == 2207536);
+ assert(unsigned(zero_extend(0x21af34, 52)) == 2207540);
+ assert(unsigned(zero_extend(0x21af38, 52)) == 2207544);
+ assert(unsigned(zero_extend(0x21af3c, 52)) == 2207548);
+ assert(unsigned(zero_extend(0x21af40, 52)) == 2207552);
+ assert(unsigned(zero_extend(0x21af44, 52)) == 2207556);
+ assert(unsigned(zero_extend(0x21af48, 52)) == 2207560);
+ assert(unsigned(zero_extend(0x21af4c, 52)) == 2207564);
+ assert(unsigned(zero_extend(0x21af50, 52)) == 2207568);
+ assert(unsigned(zero_extend(0x21af54, 52)) == 2207572);
+ assert(unsigned(zero_extend(0x21af58, 52)) == 2207576);
+ assert(unsigned(zero_extend(0x21af5c, 52)) == 2207580);
+ assert(unsigned(zero_extend(0x21af60, 52)) == 2207584);
+ assert(unsigned(zero_extend(0x21af64, 52)) == 2207588);
+ assert(unsigned(zero_extend(0x21af68, 52)) == 2207592);
+ assert(unsigned(zero_extend(0x21af6c, 52)) == 2207596);
+ assert(unsigned(zero_extend(0x21af70, 52)) == 2207600);
+ assert(unsigned(zero_extend(0x21af74, 52)) == 2207604);
+ assert(unsigned(zero_extend(0x21af78, 52)) == 2207608);
+ assert(unsigned(zero_extend(0x21af7c, 52)) == 2207612);
+ assert(unsigned(zero_extend(0x21af80, 52)) == 2207616);
+ assert(unsigned(zero_extend(0x21af84, 52)) == 2207620);
+ assert(unsigned(zero_extend(0x21af88, 52)) == 2207624);
+ assert(unsigned(zero_extend(0x21af8c, 52)) == 2207628);
+ assert(unsigned(zero_extend(0x21af90, 52)) == 2207632);
+ assert(unsigned(zero_extend(0x21af94, 52)) == 2207636);
+ assert(unsigned(zero_extend(0x21af98, 52)) == 2207640);
+ assert(unsigned(zero_extend(0x21af9c, 52)) == 2207644);
+ assert(unsigned(zero_extend(0x21afa0, 52)) == 2207648);
+ assert(unsigned(zero_extend(0x21afa4, 52)) == 2207652);
+ assert(unsigned(zero_extend(0x21afa8, 52)) == 2207656);
+ assert(unsigned(zero_extend(0x21afac, 52)) == 2207660);
+ assert(unsigned(zero_extend(0x21afb0, 52)) == 2207664);
+ assert(unsigned(zero_extend(0x21afb4, 52)) == 2207668);
+ assert(unsigned(zero_extend(0x21afb8, 52)) == 2207672);
+ assert(unsigned(zero_extend(0x21afbc, 52)) == 2207676);
+ assert(unsigned(zero_extend(0x21afc0, 52)) == 2207680);
+ assert(unsigned(zero_extend(0x21afc4, 52)) == 2207684);
+ assert(unsigned(zero_extend(0x21afc8, 52)) == 2207688);
+ assert(unsigned(zero_extend(0x21afcc, 52)) == 2207692);
+ assert(unsigned(zero_extend(0x21afd0, 52)) == 2207696);
+ assert(unsigned(zero_extend(0x21afd4, 52)) == 2207700);
+ assert(unsigned(zero_extend(0x21afd8, 52)) == 2207704);
+ assert(unsigned(zero_extend(0x21afdc, 52)) == 2207708);
+ assert(unsigned(zero_extend(0x21afe0, 52)) == 2207712);
+ assert(unsigned(zero_extend(0x21afe4, 52)) == 2207716);
+ assert(unsigned(zero_extend(0x21afe8, 52)) == 2207720);
+ assert(unsigned(zero_extend(0x21afec, 52)) == 2207724);
+ assert(unsigned(zero_extend(0x21aff0, 52)) == 2207728);
+ assert(unsigned(zero_extend(0x21aff4, 52)) == 2207732);
+ assert(unsigned(zero_extend(0x21aff8, 52)) == 2207736);
+ assert(unsigned(zero_extend(0x21affc, 52)) == 2207740);
+ assert(unsigned(zero_extend(0x21b000, 52)) == 2207744);
+ assert(unsigned(zero_extend(0x21b004, 52)) == 2207748);
+ assert(unsigned(zero_extend(0x21b008, 52)) == 2207752);
+ assert(unsigned(zero_extend(0x21b00c, 52)) == 2207756);
+ assert(unsigned(zero_extend(0x21b010, 52)) == 2207760);
+ assert(unsigned(zero_extend(0x21b014, 52)) == 2207764);
+ assert(unsigned(zero_extend(0x21b018, 52)) == 2207768);
+ assert(unsigned(zero_extend(0x21b01c, 52)) == 2207772);
+ assert(unsigned(zero_extend(0x21b020, 52)) == 2207776);
+ assert(unsigned(zero_extend(0x21b024, 52)) == 2207780);
+ assert(unsigned(zero_extend(0x21b028, 52)) == 2207784);
+ assert(unsigned(zero_extend(0x21b02c, 52)) == 2207788);
+ assert(unsigned(zero_extend(0x21b030, 52)) == 2207792);
+ assert(unsigned(zero_extend(0x21b034, 52)) == 2207796);
+ assert(unsigned(zero_extend(0x21b038, 52)) == 2207800);
+ assert(unsigned(zero_extend(0x21b03c, 52)) == 2207804);
+ assert(unsigned(zero_extend(0x21b040, 52)) == 2207808);
+ assert(unsigned(zero_extend(0x21b044, 52)) == 2207812);
+ assert(unsigned(zero_extend(0x21b048, 52)) == 2207816);
+ assert(unsigned(zero_extend(0x21b04c, 52)) == 2207820);
+ assert(unsigned(zero_extend(0x21b050, 52)) == 2207824);
+ assert(unsigned(zero_extend(0x21b054, 52)) == 2207828);
+ assert(unsigned(zero_extend(0x21b058, 52)) == 2207832);
+ assert(unsigned(zero_extend(0x21b05c, 52)) == 2207836);
+ assert(unsigned(zero_extend(0x21b060, 52)) == 2207840);
+ assert(unsigned(zero_extend(0x21b064, 52)) == 2207844);
+ assert(unsigned(zero_extend(0x21b068, 52)) == 2207848);
+ assert(unsigned(zero_extend(0x21b06c, 52)) == 2207852);
+ assert(unsigned(zero_extend(0x21b070, 52)) == 2207856);
+ assert(unsigned(zero_extend(0x21b074, 52)) == 2207860);
+ assert(unsigned(zero_extend(0x21b078, 52)) == 2207864);
+ assert(unsigned(zero_extend(0x21b07c, 52)) == 2207868);
+ assert(unsigned(zero_extend(0x21b080, 52)) == 2207872);
+ assert(unsigned(zero_extend(0x21b088, 52)) == 2207880);
+ assert(unsigned(zero_extend(0x21b090, 52)) == 2207888);
+ assert(unsigned(zero_extend(0x21b098, 52)) == 2207896);
+ assert(unsigned(zero_extend(0x21b09c, 52)) == 2207900);
+ assert(unsigned(zero_extend(0x21b0a0, 52)) == 2207904);
+ assert(unsigned(zero_extend(0x21b0a4, 52)) == 2207908);
+ assert(unsigned(zero_extend(0x21b0a8, 52)) == 2207912);
+ assert(unsigned(zero_extend(0x21b0ac, 52)) == 2207916);
+ assert(unsigned(zero_extend(0x21b0b0, 52)) == 2207920);
+ assert(unsigned(zero_extend(0x21b0b4, 52)) == 2207924);
+ assert(unsigned(zero_extend(0x21b0b8, 52)) == 2207928);
+ assert(unsigned(zero_extend(0x21b0bc, 52)) == 2207932);
+ assert(unsigned(zero_extend(0x21b0c0, 52)) == 2207936);
+ assert(unsigned(zero_extend(0x21b0c4, 52)) == 2207940);
+ assert(unsigned(zero_extend(0x21b0c8, 52)) == 2207944);
+ assert(unsigned(zero_extend(0x21b0cc, 52)) == 2207948);
+ assert(unsigned(zero_extend(0x21b0d0, 52)) == 2207952);
+ assert(unsigned(zero_extend(0x21b0d4, 52)) == 2207956);
+ assert(unsigned(zero_extend(0x21b0d8, 52)) == 2207960);
+ assert(unsigned(zero_extend(0x21b0dc, 52)) == 2207964);
+ assert(unsigned(zero_extend(0x21b0e0, 52)) == 2207968);
+ assert(unsigned(zero_extend(0x21b0e4, 52)) == 2207972);
+ assert(unsigned(zero_extend(0x21b0e8, 52)) == 2207976);
+ assert(unsigned(zero_extend(0x21b0ec, 52)) == 2207980);
+ assert(unsigned(zero_extend(0x21b0f0, 52)) == 2207984);
+ assert(unsigned(zero_extend(0x21b0f4, 52)) == 2207988);
+ assert(unsigned(zero_extend(0x21b0f8, 52)) == 2207992);
+ assert(unsigned(zero_extend(0x21b0fc, 52)) == 2207996);
+ assert(unsigned(zero_extend(0x21b100, 52)) == 2208000);
+ assert(unsigned(zero_extend(0x21b104, 52)) == 2208004);
+ assert(unsigned(zero_extend(0x21b108, 52)) == 2208008);
+ assert(unsigned(zero_extend(0x21b10c, 52)) == 2208012);
+ assert(unsigned(zero_extend(0x21b110, 52)) == 2208016);
+ assert(unsigned(zero_extend(0x21b114, 52)) == 2208020);
+ assert(unsigned(zero_extend(0x21b118, 52)) == 2208024);
+ assert(unsigned(zero_extend(0x21b11c, 52)) == 2208028);
+ assert(unsigned(zero_extend(0x21b120, 52)) == 2208032);
+ assert(unsigned(zero_extend(0x21b124, 52)) == 2208036);
+ assert(unsigned(zero_extend(0x21b128, 52)) == 2208040);
+ assert(unsigned(zero_extend(0x21b12c, 52)) == 2208044);
+ assert(unsigned(zero_extend(0x21b130, 52)) == 2208048);
+ assert(unsigned(zero_extend(0x21b134, 52)) == 2208052);
+ assert(unsigned(zero_extend(0x21b138, 52)) == 2208056);
+ assert(unsigned(zero_extend(0x21b13c, 52)) == 2208060);
+ assert(unsigned(zero_extend(0x21b140, 52)) == 2208064);
+ assert(unsigned(zero_extend(0x21b144, 52)) == 2208068);
+ assert(unsigned(zero_extend(0x21b148, 52)) == 2208072);
+ assert(unsigned(zero_extend(0x21b14c, 52)) == 2208076);
+ assert(unsigned(zero_extend(0x21b150, 52)) == 2208080);
+ assert(unsigned(zero_extend(0x21b154, 52)) == 2208084);
+ assert(unsigned(zero_extend(0x21b158, 52)) == 2208088);
+ assert(unsigned(zero_extend(0x21b15c, 52)) == 2208092);
+ assert(unsigned(zero_extend(0x21b160, 52)) == 2208096);
+ assert(unsigned(zero_extend(0x21b164, 52)) == 2208100);
+ assert(unsigned(zero_extend(0x21b168, 52)) == 2208104);
+ assert(unsigned(zero_extend(0x21b16c, 52)) == 2208108);
+ assert(unsigned(zero_extend(0x21b170, 52)) == 2208112);
+ assert(unsigned(zero_extend(0x21b174, 52)) == 2208116);
+ assert(unsigned(zero_extend(0x21b178, 52)) == 2208120);
+ assert(unsigned(zero_extend(0x21b17c, 52)) == 2208124);
+ assert(unsigned(zero_extend(0x21b180, 52)) == 2208128);
+ assert(unsigned(zero_extend(0x21b184, 52)) == 2208132);
+ assert(unsigned(zero_extend(0x21b188, 52)) == 2208136);
+ assert(unsigned(zero_extend(0x21b18c, 52)) == 2208140);
+ assert(unsigned(zero_extend(0x21b190, 52)) == 2208144);
+ assert(unsigned(zero_extend(0x21b194, 52)) == 2208148);
+ assert(unsigned(zero_extend(0x21b198, 52)) == 2208152);
+ assert(unsigned(zero_extend(0x21b19c, 52)) == 2208156);
+ assert(unsigned(zero_extend(0x21b1a0, 52)) == 2208160);
+ assert(unsigned(zero_extend(0x21b1a4, 52)) == 2208164);
+ assert(unsigned(zero_extend(0x21b1a8, 52)) == 2208168);
+ assert(unsigned(zero_extend(0x21b1ac, 52)) == 2208172);
+ assert(unsigned(zero_extend(0x21b1b0, 52)) == 2208176);
+ assert(unsigned(zero_extend(0x21b1b4, 52)) == 2208180);
+ assert(unsigned(zero_extend(0x21b1b8, 52)) == 2208184);
+ assert(unsigned(zero_extend(0x21b1bc, 52)) == 2208188);
+ assert(unsigned(zero_extend(0x21b1c0, 52)) == 2208192);
+ assert(unsigned(zero_extend(0x21b1c4, 52)) == 2208196);
+ assert(unsigned(zero_extend(0x21b1c8, 52)) == 2208200);
+ assert(unsigned(zero_extend(0x21b1cc, 52)) == 2208204);
+ assert(unsigned(zero_extend(0x21b1d0, 52)) == 2208208);
+ assert(unsigned(zero_extend(0x21b1d4, 52)) == 2208212);
+ assert(unsigned(zero_extend(0x21b1d8, 52)) == 2208216);
+ assert(unsigned(zero_extend(0x21b1dc, 52)) == 2208220);
+ assert(unsigned(zero_extend(0x21b1e0, 52)) == 2208224);
+ assert(unsigned(zero_extend(0x21b1e4, 52)) == 2208228);
+ assert(unsigned(zero_extend(0x21b1e8, 52)) == 2208232);
+ assert(unsigned(zero_extend(0x21b1f8, 52)) == 2208248);
+ assert(unsigned(zero_extend(0x21b1fc, 52)) == 2208252);
+ assert(unsigned(zero_extend(0x21b200, 52)) == 2208256);
+ assert(unsigned(zero_extend(0x21b204, 52)) == 2208260);
+ assert(unsigned(zero_extend(0x21b208, 52)) == 2208264);
+ assert(unsigned(zero_extend(0x21b20c, 52)) == 2208268);
+ assert(unsigned(zero_extend(0x21b210, 52)) == 2208272);
+ assert(unsigned(zero_extend(0x21b214, 52)) == 2208276);
+ assert(unsigned(zero_extend(0x21b218, 52)) == 2208280);
+ assert(unsigned(zero_extend(0x21b21c, 52)) == 2208284);
+ assert(unsigned(zero_extend(0x21b220, 52)) == 2208288);
+ assert(unsigned(zero_extend(0x21b224, 52)) == 2208292);
+ assert(unsigned(zero_extend(0x21b228, 52)) == 2208296);
+ assert(unsigned(zero_extend(0x21b22c, 52)) == 2208300);
+ assert(unsigned(zero_extend(0x21b230, 52)) == 2208304);
+ assert(unsigned(zero_extend(0x21b238, 52)) == 2208312);
+ assert(unsigned(zero_extend(0x21b240, 52)) == 2208320);
+ assert(unsigned(zero_extend(0x21b248, 52)) == 2208328);
+ assert(unsigned(zero_extend(0x21b250, 52)) == 2208336);
+ assert(unsigned(zero_extend(0x21b254, 52)) == 2208340);
+ assert(unsigned(zero_extend(0x21b258, 52)) == 2208344);
+ assert(unsigned(zero_extend(0x21b25c, 52)) == 2208348);
+ assert(unsigned(zero_extend(0x21b260, 52)) == 2208352);
+ assert(unsigned(zero_extend(0x21b264, 52)) == 2208356);
+ assert(unsigned(zero_extend(0x21b268, 52)) == 2208360);
+ assert(unsigned(zero_extend(0x21b26c, 52)) == 2208364);
+ assert(unsigned(zero_extend(0x21b270, 52)) == 2208368);
+ assert(unsigned(zero_extend(0x21b274, 52)) == 2208372);
+ assert(unsigned(zero_extend(0x21b278, 52)) == 2208376);
+ assert(unsigned(zero_extend(0x21b27c, 52)) == 2208380);
+ assert(unsigned(zero_extend(0x21b280, 52)) == 2208384);
+ assert(unsigned(zero_extend(0x21b288, 52)) == 2208392);
+ assert(unsigned(zero_extend(0x21b290, 52)) == 2208400);
+ assert(unsigned(zero_extend(0x21b298, 52)) == 2208408);
+ assert(unsigned(zero_extend(0x21b2a0, 52)) == 2208416);
+ assert(unsigned(zero_extend(0x21b2a8, 52)) == 2208424);
+ assert(unsigned(zero_extend(0x21b690, 52)) == 2209424);
+ assert(unsigned(zero_extend(0x21b694, 52)) == 2209428);
+ assert(unsigned(zero_extend(0x21b698, 52)) == 2209432);
+ assert(unsigned(zero_extend(0x21b69c, 52)) == 2209436);
+ assert(unsigned(zero_extend(0x21b6a0, 52)) == 2209440);
+ assert(unsigned(zero_extend(0x21b6a4, 52)) == 2209444);
+ assert(unsigned(zero_extend(0x21b6a8, 52)) == 2209448);
+ assert(unsigned(zero_extend(0x21b6ac, 52)) == 2209452);
+ assert(unsigned(zero_extend(0x21b6b0, 52)) == 2209456);
+ assert(unsigned(zero_extend(0x21b6b4, 52)) == 2209460);
+ assert(unsigned(zero_extend(0x21b6b8, 52)) == 2209464);
+ assert(unsigned(zero_extend(0x21b6bc, 52)) == 2209468);
+ assert(unsigned(zero_extend(0x21b6c0, 52)) == 2209472);
+ assert(unsigned(zero_extend(0x21b6c4, 52)) == 2209476);
+ assert(unsigned(zero_extend(0x21b6d4, 52)) == 2209492);
+ assert(unsigned(zero_extend(0x21b6d8, 52)) == 2209496);
+ assert(unsigned(zero_extend(0x21b6dc, 52)) == 2209500);
+ assert(unsigned(zero_extend(0x21b6e0, 52)) == 2209504);
+ assert(unsigned(zero_extend(0x21b6e4, 52)) == 2209508);
+ assert(unsigned(zero_extend(0x21b6e8, 52)) == 2209512);
+ assert(unsigned(zero_extend(0x21b6ec, 52)) == 2209516);
+ assert(unsigned(zero_extend(0x21b6f0, 52)) == 2209520);
+ assert(unsigned(zero_extend(0x21b6f4, 52)) == 2209524);
+ assert(unsigned(zero_extend(0x21b6f8, 52)) == 2209528);
+ assert(unsigned(zero_extend(0x21b6fc, 52)) == 2209532);
+ assert(unsigned(zero_extend(0x21b700, 52)) == 2209536);
+ assert(unsigned(zero_extend(0x21b704, 52)) == 2209540);
+ assert(unsigned(zero_extend(0x21b708, 52)) == 2209544);
+ assert(unsigned(zero_extend(0x21b70c, 52)) == 2209548);
+ assert(unsigned(zero_extend(0x21b710, 52)) == 2209552);
+ assert(unsigned(zero_extend(0x21b714, 52)) == 2209556);
+ assert(unsigned(zero_extend(0x21b718, 52)) == 2209560);
+ assert(unsigned(zero_extend(0x21b71c, 52)) == 2209564);
+ assert(unsigned(zero_extend(0x21b720, 52)) == 2209568);
+ assert(unsigned(zero_extend(0x21b724, 52)) == 2209572);
+ assert(unsigned(zero_extend(0x21b728, 52)) == 2209576);
+ assert(unsigned(zero_extend(0x21b72c, 52)) == 2209580);
+ assert(unsigned(zero_extend(0x21b730, 52)) == 2209584);
+ assert(unsigned(zero_extend(0x21b734, 52)) == 2209588);
+ assert(unsigned(zero_extend(0x21b738, 52)) == 2209592);
+ assert(unsigned(zero_extend(0x21b73c, 52)) == 2209596);
+ assert(unsigned(zero_extend(0x21b740, 52)) == 2209600);
+ assert(unsigned(zero_extend(0x21b744, 52)) == 2209604);
+ assert(unsigned(zero_extend(0x21b748, 52)) == 2209608);
+ assert(unsigned(zero_extend(0x21b74c, 52)) == 2209612);
+ assert(unsigned(zero_extend(0x21b750, 52)) == 2209616);
+ assert(unsigned(zero_extend(0x21b754, 52)) == 2209620);
+ assert(unsigned(zero_extend(0x21b758, 52)) == 2209624);
+ assert(unsigned(zero_extend(0x21b75c, 52)) == 2209628);
+ assert(unsigned(zero_extend(0x21b760, 52)) == 2209632);
+ assert(unsigned(zero_extend(0x21b764, 52)) == 2209636);
+ assert(unsigned(zero_extend(0x21b768, 52)) == 2209640);
+ assert(unsigned(zero_extend(0x21b76c, 52)) == 2209644);
+ assert(unsigned(zero_extend(0x21b770, 52)) == 2209648);
+ assert(unsigned(zero_extend(0x21b774, 52)) == 2209652);
+ assert(unsigned(zero_extend(0x21b778, 52)) == 2209656);
+ assert(unsigned(zero_extend(0x21b77c, 52)) == 2209660);
+ assert(unsigned(zero_extend(0x21b780, 52)) == 2209664);
+ assert(unsigned(zero_extend(0x21b784, 52)) == 2209668);
+ assert(unsigned(zero_extend(0x21b788, 52)) == 2209672);
+ assert(unsigned(zero_extend(0x21b78c, 52)) == 2209676);
+ assert(unsigned(zero_extend(0x21b7b8, 52)) == 2209720);
+ assert(unsigned(zero_extend(0x21b7bc, 52)) == 2209724);
+ assert(unsigned(zero_extend(0x21b7c0, 52)) == 2209728);
+ assert(unsigned(zero_extend(0x21b7c4, 52)) == 2209732);
+ assert(unsigned(zero_extend(0x21b7c8, 52)) == 2209736);
+ assert(unsigned(zero_extend(0x21b7cc, 52)) == 2209740);
+ assert(unsigned(zero_extend(0x21b7d0, 52)) == 2209744);
+ assert(unsigned(zero_extend(0x21b7d4, 52)) == 2209748);
+ assert(unsigned(zero_extend(0x21b7d8, 52)) == 2209752);
+ assert(unsigned(zero_extend(0x21b7dc, 52)) == 2209756);
+ assert(unsigned(zero_extend(0x21b7e0, 52)) == 2209760);
+ assert(unsigned(zero_extend(0x21b7e8, 52)) == 2209768);
+ assert(unsigned(zero_extend(0x21b7f0, 52)) == 2209776);
+ assert(unsigned(zero_extend(0x21b810, 52)) == 2209808);
+ assert(unsigned(zero_extend(0x21b814, 52)) == 2209812);
+ assert(unsigned(zero_extend(0x21b818, 52)) == 2209816);
+ assert(unsigned(zero_extend(0x21b81c, 52)) == 2209820);
+ assert(unsigned(zero_extend(0x21b820, 52)) == 2209824);
+ assert(unsigned(zero_extend(0x21b824, 52)) == 2209828);
+ assert(unsigned(zero_extend(0x21b828, 52)) == 2209832);
+ assert(unsigned(zero_extend(0x21b82c, 52)) == 2209836);
+ assert(unsigned(zero_extend(0x21b830, 52)) == 2209840);
+ assert(unsigned(zero_extend(0x21b838, 52)) == 2209848);
+ assert(unsigned(zero_extend(0x21b83c, 52)) == 2209852);
+ assert(unsigned(zero_extend(0x21b840, 52)) == 2209856);
+ assert(unsigned(zero_extend(0x21b844, 52)) == 2209860);
+ assert(unsigned(zero_extend(0x21b848, 52)) == 2209864);
+ assert(unsigned(zero_extend(0x21b84c, 52)) == 2209868);
+ assert(unsigned(zero_extend(0x21b850, 52)) == 2209872);
+ assert(unsigned(zero_extend(0x21b854, 52)) == 2209876);
+ assert(unsigned(zero_extend(0x21b858, 52)) == 2209880);
+ assert(unsigned(zero_extend(0x21b85c, 52)) == 2209884);
+ assert(unsigned(zero_extend(0x21b860, 52)) == 2209888);
+ assert(unsigned(zero_extend(0x21b864, 52)) == 2209892);
+ assert(unsigned(zero_extend(0x21b868, 52)) == 2209896);
+ assert(unsigned(zero_extend(0x21b86c, 52)) == 2209900);
+ assert(unsigned(zero_extend(0x21b870, 52)) == 2209904);
+ assert(unsigned(zero_extend(0x21b874, 52)) == 2209908);
+ assert(unsigned(zero_extend(0x21b878, 52)) == 2209912);
+ assert(unsigned(zero_extend(0x21b87c, 52)) == 2209916);
+ assert(unsigned(zero_extend(0x21b888, 52)) == 2209928);
+ assert(unsigned(zero_extend(0x21b890, 52)) == 2209936);
+ assert(unsigned(zero_extend(0x21b894, 52)) == 2209940);
+ assert(unsigned(zero_extend(0x21b898, 52)) == 2209944);
+ assert(unsigned(zero_extend(0x21b89c, 52)) == 2209948);
+ assert(unsigned(zero_extend(0x21b8a0, 52)) == 2209952);
+ assert(unsigned(zero_extend(0x21b8a4, 52)) == 2209956);
+ assert(unsigned(zero_extend(0x21b8a8, 52)) == 2209960);
+ assert(unsigned(zero_extend(0x21b8ac, 52)) == 2209964);
+ assert(unsigned(zero_extend(0x21b8b0, 52)) == 2209968);
+ assert(unsigned(zero_extend(0x21b8b4, 52)) == 2209972);
+ assert(unsigned(zero_extend(0x21b8b8, 52)) == 2209976);
+ assert(unsigned(zero_extend(0x21b8bc, 52)) == 2209980);
+ assert(unsigned(zero_extend(0x21b8c0, 52)) == 2209984);
+ assert(unsigned(zero_extend(0x21b8c4, 52)) == 2209988);
+ assert(unsigned(zero_extend(0x21b8c8, 52)) == 2209992);
+ assert(unsigned(zero_extend(0x21b8cc, 52)) == 2209996);
+ assert(unsigned(zero_extend(0x21b8d0, 52)) == 2210000);
+ assert(unsigned(zero_extend(0x21b8d4, 52)) == 2210004);
+ assert(unsigned(zero_extend(0x21b910, 52)) == 2210064);
+ assert(unsigned(zero_extend(0x21b914, 52)) == 2210068);
+ assert(unsigned(zero_extend(0x21b918, 52)) == 2210072);
+ assert(unsigned(zero_extend(0x21b91c, 52)) == 2210076);
+ assert(unsigned(zero_extend(0x21b920, 52)) == 2210080);
+ assert(unsigned(zero_extend(0x21b924, 52)) == 2210084);
+ assert(unsigned(zero_extend(0x21b928, 52)) == 2210088);
+ assert(unsigned(zero_extend(0x21b92c, 52)) == 2210092);
+ assert(unsigned(zero_extend(0x21b930, 52)) == 2210096);
+ assert(unsigned(zero_extend(0x21b934, 52)) == 2210100);
+ assert(unsigned(zero_extend(0x21b938, 52)) == 2210104);
+ assert(unsigned(zero_extend(0x21b93c, 52)) == 2210108);
+ assert(unsigned(zero_extend(0x21b940, 52)) == 2210112);
+ assert(unsigned(zero_extend(0x21b944, 52)) == 2210116);
+ assert(unsigned(zero_extend(0x21b948, 52)) == 2210120);
+ assert(unsigned(zero_extend(0x21b94c, 52)) == 2210124);
+ assert(unsigned(zero_extend(0x21b950, 52)) == 2210128);
+ assert(unsigned(zero_extend(0x21b954, 52)) == 2210132);
+ assert(unsigned(zero_extend(0x21b958, 52)) == 2210136);
+ assert(unsigned(zero_extend(0x21b95c, 52)) == 2210140);
+ assert(unsigned(zero_extend(0x21b960, 52)) == 2210144);
+ assert(unsigned(zero_extend(0x21b964, 52)) == 2210148);
+ assert(unsigned(zero_extend(0x21b968, 52)) == 2210152);
+ assert(unsigned(zero_extend(0x21b96c, 52)) == 2210156);
+ assert(unsigned(zero_extend(0x21b970, 52)) == 2210160);
+ assert(unsigned(zero_extend(0x21b974, 52)) == 2210164);
+ assert(unsigned(zero_extend(0x21b978, 52)) == 2210168);
+ assert(unsigned(zero_extend(0x21b97c, 52)) == 2210172);
+ assert(unsigned(zero_extend(0x21b980, 52)) == 2210176);
+ assert(unsigned(zero_extend(0x21b984, 52)) == 2210180);
+ assert(unsigned(zero_extend(0x21b988, 52)) == 2210184);
+ assert(unsigned(zero_extend(0x21b98c, 52)) == 2210188);
+ assert(unsigned(zero_extend(0x21b990, 52)) == 2210192);
+ assert(unsigned(zero_extend(0x21b994, 52)) == 2210196);
+ assert(unsigned(zero_extend(0x21b998, 52)) == 2210200);
+ assert(unsigned(zero_extend(0x21b99c, 52)) == 2210204);
+ assert(unsigned(zero_extend(0x21b9a0, 52)) == 2210208);
+ assert(unsigned(zero_extend(0x21b9a4, 52)) == 2210212);
+ assert(unsigned(zero_extend(0x21b9a8, 52)) == 2210216);
+ assert(unsigned(zero_extend(0x21b9ac, 52)) == 2210220);
+ assert(unsigned(zero_extend(0x21b9b0, 52)) == 2210224);
+ assert(unsigned(zero_extend(0x21b9b4, 52)) == 2210228);
+ assert(unsigned(zero_extend(0x21b9b8, 52)) == 2210232);
+ assert(unsigned(zero_extend(0x21b9bc, 52)) == 2210236);
+ assert(unsigned(zero_extend(0x21b9c0, 52)) == 2210240);
+ assert(unsigned(zero_extend(0x21b9c4, 52)) == 2210244);
+ assert(unsigned(zero_extend(0x21b9c8, 52)) == 2210248);
+ assert(unsigned(zero_extend(0x21b9cc, 52)) == 2210252);
+ assert(unsigned(zero_extend(0x21ba00, 52)) == 2210304);
+ assert(unsigned(zero_extend(0x21ba04, 52)) == 2210308);
+ assert(unsigned(zero_extend(0x21ba08, 52)) == 2210312);
+ assert(unsigned(zero_extend(0x21ba0c, 52)) == 2210316);
+ assert(unsigned(zero_extend(0x21ba10, 52)) == 2210320);
+ assert(unsigned(zero_extend(0x21ba14, 52)) == 2210324);
+ assert(unsigned(zero_extend(0x21ba18, 52)) == 2210328);
+ assert(unsigned(zero_extend(0x21ba1c, 52)) == 2210332);
+ assert(unsigned(zero_extend(0x21ba20, 52)) == 2210336);
+ assert(unsigned(zero_extend(0x21ba24, 52)) == 2210340);
+ assert(unsigned(zero_extend(0x21ba7c, 52)) == 2210428);
+ assert(unsigned(zero_extend(0x21ba80, 52)) == 2210432);
+ assert(unsigned(zero_extend(0x21ba84, 52)) == 2210436);
+ assert(unsigned(zero_extend(0x21ba88, 52)) == 2210440);
+ assert(unsigned(zero_extend(0x21ba8c, 52)) == 2210444);
+ assert(unsigned(zero_extend(0x21ba90, 52)) == 2210448);
+ assert(unsigned(zero_extend(0x21ba94, 52)) == 2210452);
+ assert(unsigned(zero_extend(0x21ba98, 52)) == 2210456);
+ assert(unsigned(zero_extend(0x21ba9c, 52)) == 2210460);
+ assert(unsigned(zero_extend(0x21baa0, 52)) == 2210464);
+ assert(unsigned(zero_extend(0x21baa4, 52)) == 2210468);
+ assert(unsigned(zero_extend(0x21baa8, 52)) == 2210472);
+ assert(unsigned(zero_extend(0x21bad0, 52)) == 2210512);
+ assert(unsigned(zero_extend(0x21bad4, 52)) == 2210516);
+ assert(unsigned(zero_extend(0x21bad8, 52)) == 2210520);
+ assert(unsigned(zero_extend(0x21badc, 52)) == 2210524);
+ assert(unsigned(zero_extend(0x21bae0, 52)) == 2210528);
+ assert(unsigned(zero_extend(0x21bae4, 52)) == 2210532);
+ assert(unsigned(zero_extend(0x21bae8, 52)) == 2210536);
+ assert(unsigned(zero_extend(0x21baec, 52)) == 2210540);
+ assert(unsigned(zero_extend(0x21baf0, 52)) == 2210544);
+ assert(unsigned(zero_extend(0x21baf4, 52)) == 2210548);
+ assert(unsigned(zero_extend(0x21baf8, 52)) == 2210552);
+ assert(unsigned(zero_extend(0x21bafc, 52)) == 2210556);
+ assert(unsigned(zero_extend(0x21bb00, 52)) == 2210560);
+ assert(unsigned(zero_extend(0x21bb08, 52)) == 2210568);
+ assert(unsigned(zero_extend(0x21bb28, 52)) == 2210600);
+ assert(unsigned(zero_extend(0x21bb2c, 52)) == 2210604);
+ assert(unsigned(zero_extend(0x21bb30, 52)) == 2210608);
+ assert(unsigned(zero_extend(0x21bb34, 52)) == 2210612);
+ assert(unsigned(zero_extend(0x21bb38, 52)) == 2210616);
+ assert(unsigned(zero_extend(0x21bb3c, 52)) == 2210620);
+ assert(unsigned(zero_extend(0x21bb40, 52)) == 2210624);
+ assert(unsigned(zero_extend(0x21bb44, 52)) == 2210628);
+ assert(unsigned(zero_extend(0x21bb48, 52)) == 2210632);
+ assert(unsigned(zero_extend(0x21bb50, 52)) == 2210640);
+ assert(unsigned(zero_extend(0x21bb58, 52)) == 2210648);
+ assert(unsigned(zero_extend(0x21bb60, 52)) == 2210656);
+ assert(unsigned(zero_extend(0x21bba8, 52)) == 2210728);
+ assert(unsigned(zero_extend(0x21bd68, 52)) == 2211176);
+ assert(unsigned(zero_extend(0x21bd6c, 52)) == 2211180);
+ assert(unsigned(zero_extend(0x21bd70, 52)) == 2211184);
+ assert(unsigned(zero_extend(0x21bd74, 52)) == 2211188);
+ assert(unsigned(zero_extend(0x21bd78, 52)) == 2211192);
+ assert(unsigned(zero_extend(0x21bd7c, 52)) == 2211196);
+ assert(unsigned(zero_extend(0x21bd80, 52)) == 2211200);
+ assert(unsigned(zero_extend(0x21bd84, 52)) == 2211204);
+ assert(unsigned(zero_extend(0x21bd88, 52)) == 2211208);
+ assert(unsigned(zero_extend(0x21bd8c, 52)) == 2211212);
+ assert(unsigned(zero_extend(0x21bd90, 52)) == 2211216);
+ assert(unsigned(zero_extend(0x21bd94, 52)) == 2211220);
+ assert(unsigned(zero_extend(0x21bd98, 52)) == 2211224);
+ assert(unsigned(zero_extend(0x21bd9c, 52)) == 2211228);
+ assert(unsigned(zero_extend(0x21bda0, 52)) == 2211232);
+ assert(unsigned(zero_extend(0x21bda4, 52)) == 2211236);
+ assert(unsigned(zero_extend(0x21bda8, 52)) == 2211240);
+ assert(unsigned(zero_extend(0x21bdac, 52)) == 2211244);
+ assert(unsigned(zero_extend(0x21bdb0, 52)) == 2211248);
+ assert(unsigned(zero_extend(0x21bdb4, 52)) == 2211252);
+ assert(unsigned(zero_extend(0x21bdb8, 52)) == 2211256);
+ assert(unsigned(zero_extend(0x21bdbc, 52)) == 2211260);
+ assert(unsigned(zero_extend(0x21bdc0, 52)) == 2211264);
+ assert(unsigned(zero_extend(0x21bdc4, 52)) == 2211268);
+ assert(unsigned(zero_extend(0x21bdc8, 52)) == 2211272);
+ assert(unsigned(zero_extend(0x21bdcc, 52)) == 2211276);
+ assert(unsigned(zero_extend(0x21bdd0, 52)) == 2211280);
+ assert(unsigned(zero_extend(0x21bdd4, 52)) == 2211284);
+ assert(unsigned(zero_extend(0x21bdd8, 52)) == 2211288);
+ assert(unsigned(zero_extend(0x21bddc, 52)) == 2211292);
+ assert(unsigned(zero_extend(0x21bde0, 52)) == 2211296);
+ assert(unsigned(zero_extend(0x21bde4, 52)) == 2211300);
+ assert(unsigned(zero_extend(0x21bde8, 52)) == 2211304);
+ assert(unsigned(zero_extend(0x21bdec, 52)) == 2211308);
+ assert(unsigned(zero_extend(0x21bdf0, 52)) == 2211312);
+ assert(unsigned(zero_extend(0x21bdf4, 52)) == 2211316);
+ assert(unsigned(zero_extend(0x21bdf8, 52)) == 2211320);
+ assert(unsigned(zero_extend(0x21bdfc, 52)) == 2211324);
+ assert(unsigned(zero_extend(0x21be00, 52)) == 2211328);
+ assert(unsigned(zero_extend(0x21be04, 52)) == 2211332);
+ assert(unsigned(zero_extend(0x21be08, 52)) == 2211336);
+ assert(unsigned(zero_extend(0x21be0c, 52)) == 2211340);
+ assert(unsigned(zero_extend(0x21be10, 52)) == 2211344);
+ assert(unsigned(zero_extend(0x21be14, 52)) == 2211348);
+ assert(unsigned(zero_extend(0x21be18, 52)) == 2211352);
+ assert(unsigned(zero_extend(0x21be1c, 52)) == 2211356);
+ assert(unsigned(zero_extend(0x21be20, 52)) == 2211360);
+ assert(unsigned(zero_extend(0x21be24, 52)) == 2211364);
+ assert(unsigned(zero_extend(0x21be28, 52)) == 2211368);
+ assert(unsigned(zero_extend(0x21be2c, 52)) == 2211372);
+ assert(unsigned(zero_extend(0x21be30, 52)) == 2211376);
+ assert(unsigned(zero_extend(0x21be34, 52)) == 2211380);
+ assert(unsigned(zero_extend(0x21be38, 52)) == 2211384);
+ assert(unsigned(zero_extend(0x21be3c, 52)) == 2211388);
+ assert(unsigned(zero_extend(0x21be40, 52)) == 2211392);
+ assert(unsigned(zero_extend(0x21be44, 52)) == 2211396);
+ assert(unsigned(zero_extend(0x21be48, 52)) == 2211400);
+ assert(unsigned(zero_extend(0x21be4c, 52)) == 2211404);
+ assert(unsigned(zero_extend(0x21be50, 52)) == 2211408);
+ assert(unsigned(zero_extend(0x21be54, 52)) == 2211412);
+ assert(unsigned(zero_extend(0x21be58, 52)) == 2211416);
+ assert(unsigned(zero_extend(0x21be5c, 52)) == 2211420);
+ assert(unsigned(zero_extend(0x21be60, 52)) == 2211424);
+ assert(unsigned(zero_extend(0x21be64, 52)) == 2211428);
+ assert(unsigned(zero_extend(0x21be68, 52)) == 2211432);
+ assert(unsigned(zero_extend(0x21be6c, 52)) == 2211436);
+ assert(unsigned(zero_extend(0x21be70, 52)) == 2211440);
+ assert(unsigned(zero_extend(0x21be74, 52)) == 2211444);
+ assert(unsigned(zero_extend(0x21be78, 52)) == 2211448);
+ assert(unsigned(zero_extend(0x21be7c, 52)) == 2211452);
+ assert(unsigned(zero_extend(0x21be80, 52)) == 2211456);
+ assert(unsigned(zero_extend(0x21be84, 52)) == 2211460);
+ assert(unsigned(zero_extend(0x21be88, 52)) == 2211464);
+ assert(unsigned(zero_extend(0x21be8c, 52)) == 2211468);
+ assert(unsigned(zero_extend(0x21be90, 52)) == 2211472);
+ assert(unsigned(zero_extend(0x21be94, 52)) == 2211476);
+ assert(unsigned(zero_extend(0x21be98, 52)) == 2211480);
+ assert(unsigned(zero_extend(0x21be9c, 52)) == 2211484);
+ assert(unsigned(zero_extend(0x21bea0, 52)) == 2211488);
+ assert(unsigned(zero_extend(0x21bea4, 52)) == 2211492);
+ assert(unsigned(zero_extend(0x21beb4, 52)) == 2211508);
+ assert(unsigned(zero_extend(0x21beb8, 52)) == 2211512);
+ assert(unsigned(zero_extend(0x21bebc, 52)) == 2211516);
+ assert(unsigned(zero_extend(0x21bec0, 52)) == 2211520);
+ assert(unsigned(zero_extend(0x21bec4, 52)) == 2211524);
+ assert(unsigned(zero_extend(0x21bec8, 52)) == 2211528);
+ assert(unsigned(zero_extend(0x21becc, 52)) == 2211532);
+ assert(unsigned(zero_extend(0x21bed0, 52)) == 2211536);
+ assert(unsigned(zero_extend(0x21bed4, 52)) == 2211540);
+ assert(unsigned(zero_extend(0x21bed8, 52)) == 2211544);
+ assert(unsigned(zero_extend(0x21bedc, 52)) == 2211548);
+ assert(unsigned(zero_extend(0x21bee0, 52)) == 2211552);
+ assert(unsigned(zero_extend(0x21bef0, 52)) == 2211568);
+ assert(unsigned(zero_extend(0x21bef4, 52)) == 2211572);
+ assert(unsigned(zero_extend(0x21bef8, 52)) == 2211576);
+ assert(unsigned(zero_extend(0x21befc, 52)) == 2211580);
+ assert(unsigned(zero_extend(0x21bf5c, 52)) == 2211676);
+ assert(unsigned(zero_extend(0x21bf60, 52)) == 2211680);
+ assert(unsigned(zero_extend(0x21bf64, 52)) == 2211684);
+ assert(unsigned(zero_extend(0x21bf68, 52)) == 2211688);
+ assert(unsigned(zero_extend(0x21bf6c, 52)) == 2211692);
+ assert(unsigned(zero_extend(0x21bf70, 52)) == 2211696);
+ assert(unsigned(zero_extend(0x21bf88, 52)) == 2211720);
+ assert(unsigned(zero_extend(0x21bf8c, 52)) == 2211724);
+ assert(unsigned(zero_extend(0x21bf90, 52)) == 2211728);
+ assert(unsigned(zero_extend(0x21bf94, 52)) == 2211732);
+ assert(unsigned(zero_extend(0x21bf98, 52)) == 2211736);
+ assert(unsigned(zero_extend(0x21bf9c, 52)) == 2211740);
+ assert(unsigned(zero_extend(0x21bfa0, 52)) == 2211744);
+ assert(unsigned(zero_extend(0x21bfa4, 52)) == 2211748);
+ assert(unsigned(zero_extend(0x21bfa8, 52)) == 2211752);
+ assert(unsigned(zero_extend(0x21bfac, 52)) == 2211756);
+ assert(unsigned(zero_extend(0x21bfb0, 52)) == 2211760);
+ assert(unsigned(zero_extend(0x21bfb4, 52)) == 2211764);
+ assert(unsigned(zero_extend(0x21bfb8, 52)) == 2211768);
+ assert(unsigned(zero_extend(0x21bfbc, 52)) == 2211772);
+ assert(unsigned(zero_extend(0x21bfc0, 52)) == 2211776);
+ assert(unsigned(zero_extend(0x21bfc4, 52)) == 2211780);
+ assert(unsigned(zero_extend(0x21bfc8, 52)) == 2211784);
+ assert(unsigned(zero_extend(0x21bfcc, 52)) == 2211788);
+ assert(unsigned(zero_extend(0x21bfd0, 52)) == 2211792);
+ assert(unsigned(zero_extend(0x21bfd4, 52)) == 2211796);
+ assert(unsigned(zero_extend(0x21bfd8, 52)) == 2211800);
+ assert(unsigned(zero_extend(0x21bfdc, 52)) == 2211804);
+ assert(unsigned(zero_extend(0x21bfe0, 52)) == 2211808);
+ assert(unsigned(zero_extend(0x21bfe4, 52)) == 2211812);
+ assert(unsigned(zero_extend(0x21bfe8, 52)) == 2211816);
+ assert(unsigned(zero_extend(0x21bfec, 52)) == 2211820);
+ assert(unsigned(zero_extend(0x21bff0, 52)) == 2211824);
+ assert(unsigned(zero_extend(0x21bff4, 52)) == 2211828);
+ assert(unsigned(zero_extend(0x21bff8, 52)) == 2211832);
+ assert(unsigned(zero_extend(0x21bffc, 52)) == 2211836);
+ assert(unsigned(zero_extend(0x21c000, 52)) == 2211840);
+ assert(unsigned(zero_extend(0x21c004, 52)) == 2211844);
+ assert(unsigned(zero_extend(0x21c008, 52)) == 2211848);
+ assert(unsigned(zero_extend(0x21c00c, 52)) == 2211852);
+ assert(unsigned(zero_extend(0x21c010, 52)) == 2211856);
+ assert(unsigned(zero_extend(0x21c014, 52)) == 2211860);
+ assert(unsigned(zero_extend(0x21c018, 52)) == 2211864);
+ assert(unsigned(zero_extend(0x21c01c, 52)) == 2211868);
+ assert(unsigned(zero_extend(0x21c020, 52)) == 2211872);
+ assert(unsigned(zero_extend(0x21c024, 52)) == 2211876);
+ assert(unsigned(zero_extend(0x21c028, 52)) == 2211880);
+ assert(unsigned(zero_extend(0x21c02c, 52)) == 2211884);
+ assert(unsigned(zero_extend(0x21c030, 52)) == 2211888);
+ assert(unsigned(zero_extend(0x21c034, 52)) == 2211892);
+ assert(unsigned(zero_extend(0x21c038, 52)) == 2211896);
+ assert(unsigned(zero_extend(0x21c03c, 52)) == 2211900);
+ assert(unsigned(zero_extend(0x21c040, 52)) == 2211904);
+ assert(unsigned(zero_extend(0x21c044, 52)) == 2211908);
+ assert(unsigned(zero_extend(0x21c048, 52)) == 2211912);
+ assert(unsigned(zero_extend(0x21c04c, 52)) == 2211916);
+ assert(unsigned(zero_extend(0x21c050, 52)) == 2211920);
+ assert(unsigned(zero_extend(0x21c054, 52)) == 2211924);
+ assert(unsigned(zero_extend(0x21c058, 52)) == 2211928);
+ assert(unsigned(zero_extend(0x21c05c, 52)) == 2211932);
+ assert(unsigned(zero_extend(0x21c060, 52)) == 2211936);
+ assert(unsigned(zero_extend(0x21c064, 52)) == 2211940);
+ assert(unsigned(zero_extend(0x21c068, 52)) == 2211944);
+ assert(unsigned(zero_extend(0x21c06c, 52)) == 2211948);
+ assert(unsigned(zero_extend(0x21c070, 52)) == 2211952);
+ assert(unsigned(zero_extend(0x21c074, 52)) == 2211956);
+ assert(unsigned(zero_extend(0x21c078, 52)) == 2211960);
+ assert(unsigned(zero_extend(0x21c07c, 52)) == 2211964);
+ assert(unsigned(zero_extend(0x21c080, 52)) == 2211968);
+ assert(unsigned(zero_extend(0x21c084, 52)) == 2211972);
+ assert(unsigned(zero_extend(0x21c088, 52)) == 2211976);
+ assert(unsigned(zero_extend(0x21c08c, 52)) == 2211980);
+ assert(unsigned(zero_extend(0x21c090, 52)) == 2211984);
+ assert(unsigned(zero_extend(0x21c094, 52)) == 2211988);
+ assert(unsigned(zero_extend(0x21c098, 52)) == 2211992);
+ assert(unsigned(zero_extend(0x21c09c, 52)) == 2211996);
+ assert(unsigned(zero_extend(0x21c0a0, 52)) == 2212000);
+ assert(unsigned(zero_extend(0x21c0a4, 52)) == 2212004);
+ assert(unsigned(zero_extend(0x21c0a8, 52)) == 2212008);
+ assert(unsigned(zero_extend(0x21c0ac, 52)) == 2212012);
+ assert(unsigned(zero_extend(0x21c0b0, 52)) == 2212016);
+ assert(unsigned(zero_extend(0x21c0b4, 52)) == 2212020);
+ assert(unsigned(zero_extend(0x21c0b8, 52)) == 2212024);
+ assert(unsigned(zero_extend(0x21c0bc, 52)) == 2212028);
+ assert(unsigned(zero_extend(0x21c0c0, 52)) == 2212032);
+ assert(unsigned(zero_extend(0x21c0c4, 52)) == 2212036);
+ assert(unsigned(zero_extend(0x21c0c8, 52)) == 2212040);
+ assert(unsigned(zero_extend(0x21c0cc, 52)) == 2212044);
+ assert(unsigned(zero_extend(0x21c0d0, 52)) == 2212048);
+ assert(unsigned(zero_extend(0x21c0d4, 52)) == 2212052);
+ assert(unsigned(zero_extend(0x21c0d8, 52)) == 2212056);
+ assert(unsigned(zero_extend(0x21c0dc, 52)) == 2212060);
+ assert(unsigned(zero_extend(0x21c0e0, 52)) == 2212064);
+ assert(unsigned(zero_extend(0x21c0e4, 52)) == 2212068);
+ assert(unsigned(zero_extend(0x21c0e8, 52)) == 2212072);
+ assert(unsigned(zero_extend(0x21c0ec, 52)) == 2212076);
+ assert(unsigned(zero_extend(0x21c0f0, 52)) == 2212080);
+ assert(unsigned(zero_extend(0x21c0f4, 52)) == 2212084);
+ assert(unsigned(zero_extend(0x21c0f8, 52)) == 2212088);
+ assert(unsigned(zero_extend(0x21c0fc, 52)) == 2212092);
+ assert(unsigned(zero_extend(0x21c100, 52)) == 2212096);
+ assert(unsigned(zero_extend(0x21c104, 52)) == 2212100);
+ assert(unsigned(zero_extend(0x21c108, 52)) == 2212104);
+ assert(unsigned(zero_extend(0x21c10c, 52)) == 2212108);
+ assert(unsigned(zero_extend(0x21c110, 52)) == 2212112);
+ assert(unsigned(zero_extend(0x21c114, 52)) == 2212116);
+ assert(unsigned(zero_extend(0x21c118, 52)) == 2212120);
+ assert(unsigned(zero_extend(0x21c11c, 52)) == 2212124);
+ assert(unsigned(zero_extend(0x21c120, 52)) == 2212128);
+ assert(unsigned(zero_extend(0x21c124, 52)) == 2212132);
+ assert(unsigned(zero_extend(0x21c128, 52)) == 2212136);
+ assert(unsigned(zero_extend(0x21c12c, 52)) == 2212140);
+ assert(unsigned(zero_extend(0x21c130, 52)) == 2212144);
+ assert(unsigned(zero_extend(0x21c134, 52)) == 2212148);
+ assert(unsigned(zero_extend(0x21c138, 52)) == 2212152);
+ assert(unsigned(zero_extend(0x21c13c, 52)) == 2212156);
+ assert(unsigned(zero_extend(0x21c140, 52)) == 2212160);
+ assert(unsigned(zero_extend(0x21c144, 52)) == 2212164);
+ assert(unsigned(zero_extend(0x21c148, 52)) == 2212168);
+ assert(unsigned(zero_extend(0x21c14c, 52)) == 2212172);
+ assert(unsigned(zero_extend(0x21c150, 52)) == 2212176);
+ assert(unsigned(zero_extend(0x21c154, 52)) == 2212180);
+ assert(unsigned(zero_extend(0x21c158, 52)) == 2212184);
+ assert(unsigned(zero_extend(0x21c168, 52)) == 2212200);
+ assert(unsigned(zero_extend(0x21c16c, 52)) == 2212204);
+ assert(unsigned(zero_extend(0x21c17c, 52)) == 2212220);
+ assert(unsigned(zero_extend(0x21c180, 52)) == 2212224);
+ assert(unsigned(zero_extend(0x21c184, 52)) == 2212228);
+ assert(unsigned(zero_extend(0x21c188, 52)) == 2212232);
+ assert(unsigned(zero_extend(0x21c18c, 52)) == 2212236);
+ assert(unsigned(zero_extend(0x21c190, 52)) == 2212240);
+ assert(unsigned(zero_extend(0x21c1a0, 52)) == 2212256);
+ assert(unsigned(zero_extend(0x21c1a4, 52)) == 2212260);
+ assert(unsigned(zero_extend(0x21c1a8, 52)) == 2212264);
+ assert(unsigned(zero_extend(0x21c1e8, 52)) == 2212328);
+ assert(unsigned(zero_extend(0x21c1ec, 52)) == 2212332);
+ assert(unsigned(zero_extend(0x21c1f0, 52)) == 2212336);
+ assert(unsigned(zero_extend(0x21c1f4, 52)) == 2212340);
+ assert(unsigned(zero_extend(0x21c1f8, 52)) == 2212344);
+ assert(unsigned(zero_extend(0x21c1fc, 52)) == 2212348);
+ assert(unsigned(zero_extend(0x21c200, 52)) == 2212352);
+ assert(unsigned(zero_extend(0x21c204, 52)) == 2212356);
+ assert(unsigned(zero_extend(0x21c208, 52)) == 2212360);
+ assert(unsigned(zero_extend(0x21c20c, 52)) == 2212364);
+ assert(unsigned(zero_extend(0x21c240, 52)) == 2212416);
+ assert(unsigned(zero_extend(0x21c244, 52)) == 2212420);
+ assert(unsigned(zero_extend(0x21c248, 52)) == 2212424);
+ assert(unsigned(zero_extend(0x21c24c, 52)) == 2212428);
+ assert(unsigned(zero_extend(0x21c250, 52)) == 2212432);
+ assert(unsigned(zero_extend(0x21c254, 52)) == 2212436);
+ assert(unsigned(zero_extend(0x21c258, 52)) == 2212440);
+ assert(unsigned(zero_extend(0x21c25c, 52)) == 2212444);
+ assert(unsigned(zero_extend(0x21c260, 52)) == 2212448);
+ assert(unsigned(zero_extend(0x21c264, 52)) == 2212452);
+ assert(unsigned(zero_extend(0x21c3ec, 52)) == 2212844);
+ assert(unsigned(zero_extend(0x21c3f0, 52)) == 2212848);
+ assert(unsigned(zero_extend(0x21c3f4, 52)) == 2212852);
+ assert(unsigned(zero_extend(0x21c3f8, 52)) == 2212856);
+ assert(unsigned(zero_extend(0x21c3fc, 52)) == 2212860);
+ assert(unsigned(zero_extend(0x21c400, 52)) == 2212864);
+ assert(unsigned(zero_extend(0x21c404, 52)) == 2212868);
+ assert(unsigned(zero_extend(0x21c408, 52)) == 2212872);
+ assert(unsigned(zero_extend(0x21c40c, 52)) == 2212876);
+ assert(unsigned(zero_extend(0x21c410, 52)) == 2212880);
+ assert(unsigned(zero_extend(0x21c414, 52)) == 2212884);
+ assert(unsigned(zero_extend(0x21c418, 52)) == 2212888);
+ assert(unsigned(zero_extend(0x21c41c, 52)) == 2212892);
+ assert(unsigned(zero_extend(0x21c420, 52)) == 2212896);
+ assert(unsigned(zero_extend(0x21c424, 52)) == 2212900);
+ assert(unsigned(zero_extend(0x21c428, 52)) == 2212904);
+ assert(unsigned(zero_extend(0x21c42c, 52)) == 2212908);
+ assert(unsigned(zero_extend(0x21c430, 52)) == 2212912);
+ assert(unsigned(zero_extend(0x21c434, 52)) == 2212916);
+ assert(unsigned(zero_extend(0x21c438, 52)) == 2212920);
+ assert(unsigned(zero_extend(0x21c43c, 52)) == 2212924);
+ assert(unsigned(zero_extend(0x21c440, 52)) == 2212928);
+ assert(unsigned(zero_extend(0x21c444, 52)) == 2212932);
+ assert(unsigned(zero_extend(0x21c448, 52)) == 2212936);
+ assert(unsigned(zero_extend(0x21c44c, 52)) == 2212940);
+ assert(unsigned(zero_extend(0x21c450, 52)) == 2212944);
+ assert(unsigned(zero_extend(0x21c454, 52)) == 2212948);
+ assert(unsigned(zero_extend(0x21c458, 52)) == 2212952);
+ assert(unsigned(zero_extend(0x21c45c, 52)) == 2212956);
+ assert(unsigned(zero_extend(0x21c460, 52)) == 2212960);
+ assert(unsigned(zero_extend(0x21c464, 52)) == 2212964);
+ assert(unsigned(zero_extend(0x21c468, 52)) == 2212968);
+ assert(unsigned(zero_extend(0x21c46c, 52)) == 2212972);
+ assert(unsigned(zero_extend(0x21c470, 52)) == 2212976);
+ assert(unsigned(zero_extend(0x21c474, 52)) == 2212980);
+ assert(unsigned(zero_extend(0x21c478, 52)) == 2212984);
+ assert(unsigned(zero_extend(0x21c47c, 52)) == 2212988);
+ assert(unsigned(zero_extend(0x21c480, 52)) == 2212992);
+ assert(unsigned(zero_extend(0x21c484, 52)) == 2212996);
+ assert(unsigned(zero_extend(0x21c488, 52)) == 2213000);
+ assert(unsigned(zero_extend(0x21c48c, 52)) == 2213004);
+ assert(unsigned(zero_extend(0x21c490, 52)) == 2213008);
+ assert(unsigned(zero_extend(0x21c494, 52)) == 2213012);
+ assert(unsigned(zero_extend(0x21c498, 52)) == 2213016);
+ assert(unsigned(zero_extend(0x21c49c, 52)) == 2213020);
+ assert(unsigned(zero_extend(0x21c4a0, 52)) == 2213024);
+ assert(unsigned(zero_extend(0x21c4a4, 52)) == 2213028);
+ assert(unsigned(zero_extend(0x21c4a8, 52)) == 2213032);
+ assert(unsigned(zero_extend(0x21c4ac, 52)) == 2213036);
+ assert(unsigned(zero_extend(0x21c4b0, 52)) == 2213040);
+ assert(unsigned(zero_extend(0x21c4b4, 52)) == 2213044);
+ assert(unsigned(zero_extend(0x21c4b8, 52)) == 2213048);
+ assert(unsigned(zero_extend(0x21c4c8, 52)) == 2213064);
+ assert(unsigned(zero_extend(0x21c4cc, 52)) == 2213068);
+ assert(unsigned(zero_extend(0x21c4d0, 52)) == 2213072);
+ assert(unsigned(zero_extend(0x21c4d4, 52)) == 2213076);
+ assert(unsigned(zero_extend(0x21c4d8, 52)) == 2213080);
+ assert(unsigned(zero_extend(0x21c4dc, 52)) == 2213084);
+ assert(unsigned(zero_extend(0x21c4e0, 52)) == 2213088);
+ assert(unsigned(zero_extend(0x21c4e4, 52)) == 2213092);
+ assert(unsigned(zero_extend(0x21c4e8, 52)) == 2213096);
+ assert(unsigned(zero_extend(0x21c4ec, 52)) == 2213100);
+ assert(unsigned(zero_extend(0x21c4f0, 52)) == 2213104);
+ assert(unsigned(zero_extend(0x21c4f4, 52)) == 2213108);
+ assert(unsigned(zero_extend(0x21c4f8, 52)) == 2213112);
+ assert(unsigned(zero_extend(0x21c4fc, 52)) == 2213116);
+ assert(unsigned(zero_extend(0x21c500, 52)) == 2213120);
+ assert(unsigned(zero_extend(0x21c504, 52)) == 2213124);
+ assert(unsigned(zero_extend(0x21c508, 52)) == 2213128);
+ assert(unsigned(zero_extend(0x21c50c, 52)) == 2213132);
+ assert(unsigned(zero_extend(0x21c510, 52)) == 2213136);
+ assert(unsigned(zero_extend(0x21c514, 52)) == 2213140);
+ assert(unsigned(zero_extend(0x21c518, 52)) == 2213144);
+ assert(unsigned(zero_extend(0x21c51c, 52)) == 2213148);
+ assert(unsigned(zero_extend(0x21c520, 52)) == 2213152);
+ assert(unsigned(zero_extend(0x21c524, 52)) == 2213156);
+ assert(unsigned(zero_extend(0x21c528, 52)) == 2213160);
+ assert(unsigned(zero_extend(0x21c52c, 52)) == 2213164);
+ assert(unsigned(zero_extend(0x21c530, 52)) == 2213168);
+ assert(unsigned(zero_extend(0x21c534, 52)) == 2213172);
+ assert(unsigned(zero_extend(0x21c538, 52)) == 2213176);
+ assert(unsigned(zero_extend(0x21c53c, 52)) == 2213180);
+ assert(unsigned(zero_extend(0x21c540, 52)) == 2213184);
+ assert(unsigned(zero_extend(0x21c544, 52)) == 2213188);
+ assert(unsigned(zero_extend(0x21c548, 52)) == 2213192);
+ assert(unsigned(zero_extend(0x21c54c, 52)) == 2213196);
+ assert(unsigned(zero_extend(0x21c550, 52)) == 2213200);
+ assert(unsigned(zero_extend(0x21c554, 52)) == 2213204);
+ assert(unsigned(zero_extend(0x21c558, 52)) == 2213208);
+ assert(unsigned(zero_extend(0x21c55c, 52)) == 2213212);
+ assert(unsigned(zero_extend(0x21c560, 52)) == 2213216);
+ assert(unsigned(zero_extend(0x21c564, 52)) == 2213220);
+ assert(unsigned(zero_extend(0x21c568, 52)) == 2213224);
+ assert(unsigned(zero_extend(0x21c56c, 52)) == 2213228);
+ assert(unsigned(zero_extend(0x21c570, 52)) == 2213232);
+ assert(unsigned(zero_extend(0x21c574, 52)) == 2213236);
+ assert(unsigned(zero_extend(0x21c578, 52)) == 2213240);
+ assert(unsigned(zero_extend(0x21c57c, 52)) == 2213244);
+ assert(unsigned(zero_extend(0x21c580, 52)) == 2213248);
+ assert(unsigned(zero_extend(0x21c584, 52)) == 2213252);
+ assert(unsigned(zero_extend(0x21c588, 52)) == 2213256);
+ assert(unsigned(zero_extend(0x21c58c, 52)) == 2213260);
+ assert(unsigned(zero_extend(0x21c590, 52)) == 2213264);
+ assert(unsigned(zero_extend(0x21c594, 52)) == 2213268);
+ assert(unsigned(zero_extend(0x21c598, 52)) == 2213272);
+ assert(unsigned(zero_extend(0x21c5a0, 52)) == 2213280);
+ assert(unsigned(zero_extend(0x21c5a8, 52)) == 2213288);
+ assert(unsigned(zero_extend(0x21c5b0, 52)) == 2213296);
+ assert(unsigned(zero_extend(0x21c5b8, 52)) == 2213304);
+ assert(unsigned(zero_extend(0x21c5c0, 52)) == 2213312);
+ assert(unsigned(zero_extend(0x21c5c8, 52)) == 2213320);
+ assert(unsigned(zero_extend(0x21c5d0, 52)) == 2213328);
+ assert(unsigned(zero_extend(0x21c5d8, 52)) == 2213336);
+ assert(unsigned(zero_extend(0x21c5e0, 52)) == 2213344);
+ assert(unsigned(zero_extend(0x21c5e4, 52)) == 2213348);
+ assert(unsigned(zero_extend(0x21c5e8, 52)) == 2213352);
+ assert(unsigned(zero_extend(0x21c5ec, 52)) == 2213356);
+ assert(unsigned(zero_extend(0x21c5f0, 52)) == 2213360);
+ assert(unsigned(zero_extend(0x21c5f4, 52)) == 2213364);
+ assert(unsigned(zero_extend(0x21c5f8, 52)) == 2213368);
+ assert(unsigned(zero_extend(0x21c5fc, 52)) == 2213372);
+ assert(unsigned(zero_extend(0x21c600, 52)) == 2213376);
+ assert(unsigned(zero_extend(0x21c604, 52)) == 2213380);
+ assert(unsigned(zero_extend(0x21c608, 52)) == 2213384);
+ assert(unsigned(zero_extend(0x21c60c, 52)) == 2213388);
+ assert(unsigned(zero_extend(0x21c610, 52)) == 2213392);
+ assert(unsigned(zero_extend(0x21c614, 52)) == 2213396);
+ assert(unsigned(zero_extend(0x21c618, 52)) == 2213400);
+ assert(unsigned(zero_extend(0x21c61c, 52)) == 2213404);
+ assert(unsigned(zero_extend(0x21c620, 52)) == 2213408);
+ assert(unsigned(zero_extend(0x21c624, 52)) == 2213412);
+ assert(unsigned(zero_extend(0x21c628, 52)) == 2213416);
+ assert(unsigned(zero_extend(0x21c62c, 52)) == 2213420);
+ assert(unsigned(zero_extend(0x21c630, 52)) == 2213424);
+ assert(unsigned(zero_extend(0x21c634, 52)) == 2213428);
+ assert(unsigned(zero_extend(0x21c638, 52)) == 2213432);
+ assert(unsigned(zero_extend(0x21c63c, 52)) == 2213436);
+ assert(unsigned(zero_extend(0x21c640, 52)) == 2213440);
+ assert(unsigned(zero_extend(0x21c644, 52)) == 2213444);
+ assert(unsigned(zero_extend(0x21c648, 52)) == 2213448);
+ assert(unsigned(zero_extend(0x21c64c, 52)) == 2213452);
+ assert(unsigned(zero_extend(0x21c650, 52)) == 2213456);
+ assert(unsigned(zero_extend(0x21c654, 52)) == 2213460);
+ assert(unsigned(zero_extend(0x21c658, 52)) == 2213464);
+ assert(unsigned(zero_extend(0x21c65c, 52)) == 2213468);
+ assert(unsigned(zero_extend(0x21c660, 52)) == 2213472);
+ assert(unsigned(zero_extend(0x21c664, 52)) == 2213476);
+ assert(unsigned(zero_extend(0x21c668, 52)) == 2213480);
+ assert(unsigned(zero_extend(0x21c66c, 52)) == 2213484);
+ assert(unsigned(zero_extend(0x21c670, 52)) == 2213488);
+ assert(unsigned(zero_extend(0x21c674, 52)) == 2213492);
+ assert(unsigned(zero_extend(0x21c678, 52)) == 2213496);
+ assert(unsigned(zero_extend(0x21c67c, 52)) == 2213500);
+ assert(unsigned(zero_extend(0x21c680, 52)) == 2213504);
+ assert(unsigned(zero_extend(0x21c684, 52)) == 2213508);
+ assert(unsigned(zero_extend(0x21c688, 52)) == 2213512);
+ assert(unsigned(zero_extend(0x21c68c, 52)) == 2213516);
+ assert(unsigned(zero_extend(0x21c690, 52)) == 2213520);
+ assert(unsigned(zero_extend(0x21c694, 52)) == 2213524);
+ assert(unsigned(zero_extend(0x21c698, 52)) == 2213528);
+ assert(unsigned(zero_extend(0x21c69c, 52)) == 2213532);
+ assert(unsigned(zero_extend(0x21c6a0, 52)) == 2213536);
+ assert(unsigned(zero_extend(0x21c6a4, 52)) == 2213540);
+ assert(unsigned(zero_extend(0x21c6a8, 52)) == 2213544);
+ assert(unsigned(zero_extend(0x21c6ac, 52)) == 2213548);
+ assert(unsigned(zero_extend(0x21c6b0, 52)) == 2213552);
+ assert(unsigned(zero_extend(0x21c6b4, 52)) == 2213556);
+ assert(unsigned(zero_extend(0x21c6b8, 52)) == 2213560);
+ assert(unsigned(zero_extend(0x21c6bc, 52)) == 2213564);
+ assert(unsigned(zero_extend(0x21c6c0, 52)) == 2213568);
+ assert(unsigned(zero_extend(0x21c6c4, 52)) == 2213572);
+ assert(unsigned(zero_extend(0x21c6c8, 52)) == 2213576);
+ assert(unsigned(zero_extend(0x21c6cc, 52)) == 2213580);
+ assert(unsigned(zero_extend(0x21c6d0, 52)) == 2213584);
+ assert(unsigned(zero_extend(0x21c6d4, 52)) == 2213588);
+ assert(unsigned(zero_extend(0x21c6d8, 52)) == 2213592);
+ assert(unsigned(zero_extend(0x21c6dc, 52)) == 2213596);
+ assert(unsigned(zero_extend(0x21c6e0, 52)) == 2213600);
+ assert(unsigned(zero_extend(0x21c6e4, 52)) == 2213604);
+ assert(unsigned(zero_extend(0x21c6f4, 52)) == 2213620);
+ assert(unsigned(zero_extend(0x21c6f8, 52)) == 2213624);
+ assert(unsigned(zero_extend(0x21c6fc, 52)) == 2213628);
+ assert(unsigned(zero_extend(0x21c700, 52)) == 2213632);
+ assert(unsigned(zero_extend(0x21c704, 52)) == 2213636);
+ assert(unsigned(zero_extend(0x21c708, 52)) == 2213640);
+ assert(unsigned(zero_extend(0x21c70c, 52)) == 2213644);
+ assert(unsigned(zero_extend(0x21c710, 52)) == 2213648);
+ assert(unsigned(zero_extend(0x21c714, 52)) == 2213652);
+ assert(unsigned(zero_extend(0x21c718, 52)) == 2213656);
+ assert(unsigned(zero_extend(0x21c71c, 52)) == 2213660);
+ assert(unsigned(zero_extend(0x21c720, 52)) == 2213664);
+ assert(unsigned(zero_extend(0x21c724, 52)) == 2213668);
+ assert(unsigned(zero_extend(0x21c728, 52)) == 2213672);
+ assert(unsigned(zero_extend(0x21c72c, 52)) == 2213676);
+ assert(unsigned(zero_extend(0x21c730, 52)) == 2213680);
+ assert(unsigned(zero_extend(0x21c734, 52)) == 2213684);
+ assert(unsigned(zero_extend(0x21c738, 52)) == 2213688);
+ assert(unsigned(zero_extend(0x21c73c, 52)) == 2213692);
+ assert(unsigned(zero_extend(0x21c740, 52)) == 2213696);
+ assert(unsigned(zero_extend(0x21c744, 52)) == 2213700);
+ assert(unsigned(zero_extend(0x21c748, 52)) == 2213704);
+ assert(unsigned(zero_extend(0x21c74c, 52)) == 2213708);
+ assert(unsigned(zero_extend(0x21c750, 52)) == 2213712);
+ assert(unsigned(zero_extend(0x21c754, 52)) == 2213716);
+ assert(unsigned(zero_extend(0x21c758, 52)) == 2213720);
+ assert(unsigned(zero_extend(0x21c75c, 52)) == 2213724);
+ assert(unsigned(zero_extend(0x21c760, 52)) == 2213728);
+ assert(unsigned(zero_extend(0x21c764, 52)) == 2213732);
+ assert(unsigned(zero_extend(0x21c768, 52)) == 2213736);
+ assert(unsigned(zero_extend(0x21c76c, 52)) == 2213740);
+ assert(unsigned(zero_extend(0x21c770, 52)) == 2213744);
+ assert(unsigned(zero_extend(0x21c774, 52)) == 2213748);
+ assert(unsigned(zero_extend(0x21c778, 52)) == 2213752);
+ assert(unsigned(zero_extend(0x21c77c, 52)) == 2213756);
+ assert(unsigned(zero_extend(0x21c780, 52)) == 2213760);
+ assert(unsigned(zero_extend(0x21c784, 52)) == 2213764);
+ assert(unsigned(zero_extend(0x21c788, 52)) == 2213768);
+ assert(unsigned(zero_extend(0x21c78c, 52)) == 2213772);
+ assert(unsigned(zero_extend(0x21c790, 52)) == 2213776);
+ assert(unsigned(zero_extend(0x21c794, 52)) == 2213780);
+ assert(unsigned(zero_extend(0x21c798, 52)) == 2213784);
+ assert(unsigned(zero_extend(0x21c79c, 52)) == 2213788);
+ assert(unsigned(zero_extend(0x21c7a0, 52)) == 2213792);
+ assert(unsigned(zero_extend(0x21c7a4, 52)) == 2213796);
+ assert(unsigned(zero_extend(0x21c7a8, 52)) == 2213800);
+ assert(unsigned(zero_extend(0x21c7ac, 52)) == 2213804);
+ assert(unsigned(zero_extend(0x21c7b0, 52)) == 2213808);
+ assert(unsigned(zero_extend(0x21c7b4, 52)) == 2213812);
+ assert(unsigned(zero_extend(0x21c7b8, 52)) == 2213816);
+ assert(unsigned(zero_extend(0x21c7bc, 52)) == 2213820);
+ assert(unsigned(zero_extend(0x21c7c0, 52)) == 2213824);
+ assert(unsigned(zero_extend(0x21c7c4, 52)) == 2213828);
+ assert(unsigned(zero_extend(0x21c7c8, 52)) == 2213832);
+ assert(unsigned(zero_extend(0x21c7cc, 52)) == 2213836);
+ assert(unsigned(zero_extend(0x21c7d0, 52)) == 2213840);
+ assert(unsigned(zero_extend(0x21c7d4, 52)) == 2213844);
+ assert(unsigned(zero_extend(0x21c7d8, 52)) == 2213848);
+ assert(unsigned(zero_extend(0x21c7dc, 52)) == 2213852);
+ assert(unsigned(zero_extend(0x21c7e0, 52)) == 2213856);
+ assert(unsigned(zero_extend(0x21c7e4, 52)) == 2213860);
+ assert(unsigned(zero_extend(0x21c7e8, 52)) == 2213864);
+ assert(unsigned(zero_extend(0x21c7f8, 52)) == 2213880);
+ assert(unsigned(zero_extend(0x21c7fc, 52)) == 2213884);
+ assert(unsigned(zero_extend(0x21c800, 52)) == 2213888);
+ assert(unsigned(zero_extend(0x21c804, 52)) == 2213892);
+ assert(unsigned(zero_extend(0x21c808, 52)) == 2213896);
+ assert(unsigned(zero_extend(0x21c80c, 52)) == 2213900);
+ assert(unsigned(zero_extend(0x21c810, 52)) == 2213904);
+ assert(unsigned(zero_extend(0x21c814, 52)) == 2213908);
+ assert(unsigned(zero_extend(0x21c818, 52)) == 2213912);
+ assert(unsigned(zero_extend(0x21c81c, 52)) == 2213916);
+ assert(unsigned(zero_extend(0x21c820, 52)) == 2213920);
+ assert(unsigned(zero_extend(0x21c824, 52)) == 2213924);
+ assert(unsigned(zero_extend(0x21c828, 52)) == 2213928);
+ assert(unsigned(zero_extend(0x21c838, 52)) == 2213944);
+ assert(unsigned(zero_extend(0x21c83c, 52)) == 2213948);
+ assert(unsigned(zero_extend(0x21c860, 52)) == 2213984);
+ assert(unsigned(zero_extend(0x21c864, 52)) == 2213988);
+ assert(unsigned(zero_extend(0x21c874, 52)) == 2214004);
+ assert(unsigned(zero_extend(0x21c878, 52)) == 2214008);
+ assert(unsigned(zero_extend(0x21c87c, 52)) == 2214012);
+ assert(unsigned(zero_extend(0x21c880, 52)) == 2214016);
+ assert(unsigned(zero_extend(0x21c890, 52)) == 2214032);
+ assert(unsigned(zero_extend(0x21c894, 52)) == 2214036);
+ assert(unsigned(zero_extend(0x21c8b0, 52)) == 2214064);
+ assert(unsigned(zero_extend(0x21c8b4, 52)) == 2214068);
+ assert(unsigned(zero_extend(0x21c8b8, 52)) == 2214072);
+ assert(unsigned(zero_extend(0x21c8bc, 52)) == 2214076);
+ assert(unsigned(zero_extend(0x21c8c0, 52)) == 2214080);
+ assert(unsigned(zero_extend(0x21c8c4, 52)) == 2214084);
+ assert(unsigned(zero_extend(0x21c8c8, 52)) == 2214088);
+ assert(unsigned(zero_extend(0x21c8cc, 52)) == 2214092);
+ assert(unsigned(zero_extend(0x21c8d0, 52)) == 2214096);
+ assert(unsigned(zero_extend(0x21c8d4, 52)) == 2214100);
+ assert(unsigned(zero_extend(0x21c8d8, 52)) == 2214104);
+ assert(unsigned(zero_extend(0x21c8dc, 52)) == 2214108);
+ assert(unsigned(zero_extend(0x21c8e0, 52)) == 2214112);
+ assert(unsigned(zero_extend(0x21c8e4, 52)) == 2214116);
+ assert(unsigned(zero_extend(0x21c8e8, 52)) == 2214120);
+ assert(unsigned(zero_extend(0x21c8ec, 52)) == 2214124);
+ assert(unsigned(zero_extend(0x21c8f0, 52)) == 2214128);
+ assert(unsigned(zero_extend(0x21c8f4, 52)) == 2214132);
+ assert(unsigned(zero_extend(0x21c8f8, 52)) == 2214136);
+ assert(unsigned(zero_extend(0x21c8fc, 52)) == 2214140);
+ assert(unsigned(zero_extend(0x21c900, 52)) == 2214144);
+ assert(unsigned(zero_extend(0x21c904, 52)) == 2214148);
+ assert(unsigned(zero_extend(0x21c908, 52)) == 2214152);
+ assert(unsigned(zero_extend(0x21c90c, 52)) == 2214156);
+ assert(unsigned(zero_extend(0x21c910, 52)) == 2214160);
+ assert(unsigned(zero_extend(0x21c914, 52)) == 2214164);
+ assert(unsigned(zero_extend(0x21c918, 52)) == 2214168);
+ assert(unsigned(zero_extend(0x21c91c, 52)) == 2214172);
+ assert(unsigned(zero_extend(0x21c920, 52)) == 2214176);
+ assert(unsigned(zero_extend(0x21c924, 52)) == 2214180);
+ assert(unsigned(zero_extend(0x21c928, 52)) == 2214184);
+ assert(unsigned(zero_extend(0x21c92c, 52)) == 2214188);
+ assert(unsigned(zero_extend(0x21c930, 52)) == 2214192);
+ assert(unsigned(zero_extend(0x21c934, 52)) == 2214196);
+ assert(unsigned(zero_extend(0x21c938, 52)) == 2214200);
+ assert(unsigned(zero_extend(0x21c93c, 52)) == 2214204);
+ assert(unsigned(zero_extend(0x21c940, 52)) == 2214208);
+ assert(unsigned(zero_extend(0x21c944, 52)) == 2214212);
+ assert(unsigned(zero_extend(0x21c948, 52)) == 2214216);
+ assert(unsigned(zero_extend(0x21c94c, 52)) == 2214220);
+ assert(unsigned(zero_extend(0x21c950, 52)) == 2214224);
+ assert(unsigned(zero_extend(0x21c954, 52)) == 2214228);
+ assert(unsigned(zero_extend(0x21c958, 52)) == 2214232);
+ assert(unsigned(zero_extend(0x21c95c, 52)) == 2214236);
+ assert(unsigned(zero_extend(0x21c960, 52)) == 2214240);
+ assert(unsigned(zero_extend(0x21c964, 52)) == 2214244);
+ assert(unsigned(zero_extend(0x21c968, 52)) == 2214248);
+ assert(unsigned(zero_extend(0x21c96c, 52)) == 2214252);
+ assert(unsigned(zero_extend(0x21c970, 52)) == 2214256);
+ assert(unsigned(zero_extend(0x21c974, 52)) == 2214260);
+ assert(unsigned(zero_extend(0x21c978, 52)) == 2214264);
+ assert(unsigned(zero_extend(0x21c97c, 52)) == 2214268);
+ assert(unsigned(zero_extend(0x21c980, 52)) == 2214272);
+ assert(unsigned(zero_extend(0x21c984, 52)) == 2214276);
+ assert(unsigned(zero_extend(0x21c988, 52)) == 2214280);
+ assert(unsigned(zero_extend(0x21c98c, 52)) == 2214284);
+ assert(unsigned(zero_extend(0x21c990, 52)) == 2214288);
+ assert(unsigned(zero_extend(0x21c994, 52)) == 2214292);
+ assert(unsigned(zero_extend(0x21c998, 52)) == 2214296);
+ assert(unsigned(zero_extend(0x21c99c, 52)) == 2214300);
+ assert(unsigned(zero_extend(0x21c9a0, 52)) == 2214304);
+ assert(unsigned(zero_extend(0x21c9a4, 52)) == 2214308);
+ assert(unsigned(zero_extend(0x21c9a8, 52)) == 2214312);
+ assert(unsigned(zero_extend(0x21c9ac, 52)) == 2214316);
+ assert(unsigned(zero_extend(0x21c9b0, 52)) == 2214320);
+ assert(unsigned(zero_extend(0x21c9b4, 52)) == 2214324);
+ assert(unsigned(zero_extend(0x21c9b8, 52)) == 2214328);
+ assert(unsigned(zero_extend(0x21c9bc, 52)) == 2214332);
+ assert(unsigned(zero_extend(0x21c9c0, 52)) == 2214336);
+ assert(unsigned(zero_extend(0x21c9c8, 52)) == 2214344);
+ assert(unsigned(zero_extend(0x21c9cc, 52)) == 2214348);
+ assert(unsigned(zero_extend(0x21c9d0, 52)) == 2214352);
+ assert(unsigned(zero_extend(0x21c9d4, 52)) == 2214356);
+ assert(unsigned(zero_extend(0x21c9d8, 52)) == 2214360);
+ assert(unsigned(zero_extend(0x21c9dc, 52)) == 2214364);
+ assert(unsigned(zero_extend(0x21c9e0, 52)) == 2214368);
+ assert(unsigned(zero_extend(0x21c9e4, 52)) == 2214372);
+ assert(unsigned(zero_extend(0x21c9e8, 52)) == 2214376);
+ assert(unsigned(zero_extend(0x21c9ec, 52)) == 2214380);
+ assert(unsigned(zero_extend(0x21c9f0, 52)) == 2214384);
+ assert(unsigned(zero_extend(0x21c9f4, 52)) == 2214388);
+ assert(unsigned(zero_extend(0x21c9f8, 52)) == 2214392);
+ assert(unsigned(zero_extend(0x21c9fc, 52)) == 2214396);
+ assert(unsigned(zero_extend(0x21ca00, 52)) == 2214400);
+ assert(unsigned(zero_extend(0x21ca04, 52)) == 2214404);
+ assert(unsigned(zero_extend(0x21ca08, 52)) == 2214408);
+ assert(unsigned(zero_extend(0x21ca0c, 52)) == 2214412);
+ assert(unsigned(zero_extend(0x21ca10, 52)) == 2214416);
+ assert(unsigned(zero_extend(0x21ca14, 52)) == 2214420);
+ assert(unsigned(zero_extend(0x21ca18, 52)) == 2214424);
+ assert(unsigned(zero_extend(0x21ca1c, 52)) == 2214428);
+ assert(unsigned(zero_extend(0x21ca20, 52)) == 2214432);
+ assert(unsigned(zero_extend(0x21ca24, 52)) == 2214436);
+ assert(unsigned(zero_extend(0x21ca28, 52)) == 2214440);
+ assert(unsigned(zero_extend(0x21ca2c, 52)) == 2214444);
+ assert(unsigned(zero_extend(0x21ca30, 52)) == 2214448);
+ assert(unsigned(zero_extend(0x21ca34, 52)) == 2214452);
+ assert(unsigned(zero_extend(0x21ca38, 52)) == 2214456);
+ assert(unsigned(zero_extend(0x21ca3c, 52)) == 2214460);
+ assert(unsigned(zero_extend(0x21ca40, 52)) == 2214464);
+ assert(unsigned(zero_extend(0x21ca44, 52)) == 2214468);
+ assert(unsigned(zero_extend(0x21ca48, 52)) == 2214472);
+ assert(unsigned(zero_extend(0x21ca4c, 52)) == 2214476);
+ assert(unsigned(zero_extend(0x21ca50, 52)) == 2214480);
+ assert(unsigned(zero_extend(0x21ca54, 52)) == 2214484);
+ assert(unsigned(zero_extend(0x21ca58, 52)) == 2214488);
+ assert(unsigned(zero_extend(0x21ca5c, 52)) == 2214492);
+ assert(unsigned(zero_extend(0x21ca60, 52)) == 2214496);
+ assert(unsigned(zero_extend(0x21ca64, 52)) == 2214500);
+ assert(unsigned(zero_extend(0x21ca68, 52)) == 2214504);
+ assert(unsigned(zero_extend(0x21ca6c, 52)) == 2214508);
+ assert(unsigned(zero_extend(0x21ca70, 52)) == 2214512);
+ assert(unsigned(zero_extend(0x21ca74, 52)) == 2214516);
+ assert(unsigned(zero_extend(0x21ca78, 52)) == 2214520);
+ assert(unsigned(zero_extend(0x21ca7c, 52)) == 2214524);
+ assert(unsigned(zero_extend(0x21ca80, 52)) == 2214528);
+ assert(unsigned(zero_extend(0x21ca84, 52)) == 2214532);
+ assert(unsigned(zero_extend(0x21ca88, 52)) == 2214536);
+ assert(unsigned(zero_extend(0x21ca8c, 52)) == 2214540);
+ assert(unsigned(zero_extend(0x21ca90, 52)) == 2214544);
+ assert(unsigned(zero_extend(0x21ca94, 52)) == 2214548);
+ assert(unsigned(zero_extend(0x21ca98, 52)) == 2214552);
+ assert(unsigned(zero_extend(0x21ca9c, 52)) == 2214556);
+ assert(unsigned(zero_extend(0x21caa0, 52)) == 2214560);
+ assert(unsigned(zero_extend(0x21caa4, 52)) == 2214564);
+ assert(unsigned(zero_extend(0x21caa8, 52)) == 2214568);
+ assert(unsigned(zero_extend(0x21caac, 52)) == 2214572);
+ assert(unsigned(zero_extend(0x21cab0, 52)) == 2214576);
+ assert(unsigned(zero_extend(0x21cab4, 52)) == 2214580);
+ assert(unsigned(zero_extend(0x21cab8, 52)) == 2214584);
+ assert(unsigned(zero_extend(0x21cabc, 52)) == 2214588);
+ assert(unsigned(zero_extend(0x21cac0, 52)) == 2214592);
+ assert(unsigned(zero_extend(0x21cac4, 52)) == 2214596);
+ assert(unsigned(zero_extend(0x21cac8, 52)) == 2214600);
+ assert(unsigned(zero_extend(0x21cacc, 52)) == 2214604);
+ assert(unsigned(zero_extend(0x21cad0, 52)) == 2214608);
+ assert(unsigned(zero_extend(0x21cad4, 52)) == 2214612);
+ assert(unsigned(zero_extend(0x21cad8, 52)) == 2214616);
+ assert(unsigned(zero_extend(0x21cadc, 52)) == 2214620);
+ assert(unsigned(zero_extend(0x21cae0, 52)) == 2214624);
+ assert(unsigned(zero_extend(0x21cae4, 52)) == 2214628);
+ assert(unsigned(zero_extend(0x21cae8, 52)) == 2214632);
+ assert(unsigned(zero_extend(0x21caec, 52)) == 2214636);
+ assert(unsigned(zero_extend(0x21caf0, 52)) == 2214640);
+ assert(unsigned(zero_extend(0x21caf4, 52)) == 2214644);
+ assert(unsigned(zero_extend(0x21caf8, 52)) == 2214648);
+ assert(unsigned(zero_extend(0x21cafc, 52)) == 2214652);
+ assert(unsigned(zero_extend(0x21cb00, 52)) == 2214656);
+ assert(unsigned(zero_extend(0x21cb04, 52)) == 2214660);
+ assert(unsigned(zero_extend(0x21cb08, 52)) == 2214664);
+ assert(unsigned(zero_extend(0x21cb0c, 52)) == 2214668);
+ assert(unsigned(zero_extend(0x21cb10, 52)) == 2214672);
+ assert(unsigned(zero_extend(0x21cb14, 52)) == 2214676);
+ assert(unsigned(zero_extend(0x21cb18, 52)) == 2214680);
+ assert(unsigned(zero_extend(0x21cb20, 52)) == 2214688);
+ assert(unsigned(zero_extend(0x21cb24, 52)) == 2214692);
+ assert(unsigned(zero_extend(0x21cb28, 52)) == 2214696);
+ assert(unsigned(zero_extend(0x21cb2c, 52)) == 2214700);
+ assert(unsigned(zero_extend(0x21cb30, 52)) == 2214704);
+ assert(unsigned(zero_extend(0x21cb34, 52)) == 2214708);
+ assert(unsigned(zero_extend(0x21cb38, 52)) == 2214712);
+ assert(unsigned(zero_extend(0x21cb3c, 52)) == 2214716);
+ assert(unsigned(zero_extend(0x21cb40, 52)) == 2214720);
+ assert(unsigned(zero_extend(0x21cb44, 52)) == 2214724);
+ assert(unsigned(zero_extend(0x21cb48, 52)) == 2214728);
+ assert(unsigned(zero_extend(0x21cb4c, 52)) == 2214732);
+ assert(unsigned(zero_extend(0x21cb50, 52)) == 2214736);
+ assert(unsigned(zero_extend(0x21cb54, 52)) == 2214740);
+ assert(unsigned(zero_extend(0x21cb58, 52)) == 2214744);
+ assert(unsigned(zero_extend(0x21cb5c, 52)) == 2214748);
+ assert(unsigned(zero_extend(0x21cb60, 52)) == 2214752);
+ assert(unsigned(zero_extend(0x21cb64, 52)) == 2214756);
+ assert(unsigned(zero_extend(0x21cb68, 52)) == 2214760);
+ assert(unsigned(zero_extend(0x21cb6c, 52)) == 2214764);
+ assert(unsigned(zero_extend(0x21cb70, 52)) == 2214768);
+ assert(unsigned(zero_extend(0x21cb74, 52)) == 2214772);
+ assert(unsigned(zero_extend(0x21cb78, 52)) == 2214776);
+ assert(unsigned(zero_extend(0x21cb7c, 52)) == 2214780);
+ assert(unsigned(zero_extend(0x21cb80, 52)) == 2214784);
+ assert(unsigned(zero_extend(0x21cb84, 52)) == 2214788);
+ assert(unsigned(zero_extend(0x21cb88, 52)) == 2214792);
+ assert(unsigned(zero_extend(0x21cb8c, 52)) == 2214796);
+ assert(unsigned(zero_extend(0x21cb90, 52)) == 2214800);
+ assert(unsigned(zero_extend(0x21cb94, 52)) == 2214804);
+ assert(unsigned(zero_extend(0x21cb98, 52)) == 2214808);
+ assert(unsigned(zero_extend(0x21cb9c, 52)) == 2214812);
+ assert(unsigned(zero_extend(0x21cba0, 52)) == 2214816);
+ assert(unsigned(zero_extend(0x21cba4, 52)) == 2214820);
+ assert(unsigned(zero_extend(0x21cba8, 52)) == 2214824);
+ assert(unsigned(zero_extend(0x21cbac, 52)) == 2214828);
+ assert(unsigned(zero_extend(0x21cbb0, 52)) == 2214832);
+ assert(unsigned(zero_extend(0x21cbb4, 52)) == 2214836);
+ assert(unsigned(zero_extend(0x21cbb8, 52)) == 2214840);
+ assert(unsigned(zero_extend(0x21cbbc, 52)) == 2214844);
+ assert(unsigned(zero_extend(0x21cbc0, 52)) == 2214848);
+ assert(unsigned(zero_extend(0x21cbc4, 52)) == 2214852);
+ assert(unsigned(zero_extend(0x21cbc8, 52)) == 2214856);
+ assert(unsigned(zero_extend(0x21cbcc, 52)) == 2214860);
+ assert(unsigned(zero_extend(0x21cbd0, 52)) == 2214864);
+ assert(unsigned(zero_extend(0x21cbd4, 52)) == 2214868);
+ assert(unsigned(zero_extend(0x21cbd8, 52)) == 2214872);
+ assert(unsigned(zero_extend(0x21cbdc, 52)) == 2214876);
+ assert(unsigned(zero_extend(0x21cbe0, 52)) == 2214880);
+ assert(unsigned(zero_extend(0x21cbe4, 52)) == 2214884);
+ assert(unsigned(zero_extend(0x21cbe8, 52)) == 2214888);
+ assert(unsigned(zero_extend(0x21cbec, 52)) == 2214892);
+ assert(unsigned(zero_extend(0x21cbf0, 52)) == 2214896);
+ assert(unsigned(zero_extend(0x21cbf4, 52)) == 2214900);
+ assert(unsigned(zero_extend(0x21cbf8, 52)) == 2214904);
+ assert(unsigned(zero_extend(0x21cbfc, 52)) == 2214908);
+ assert(unsigned(zero_extend(0x21cc00, 52)) == 2214912);
+ assert(unsigned(zero_extend(0x21cc04, 52)) == 2214916);
+ assert(unsigned(zero_extend(0x21cc08, 52)) == 2214920);
+ assert(unsigned(zero_extend(0x21cc0c, 52)) == 2214924);
+ assert(unsigned(zero_extend(0x21cc1c, 52)) == 2214940);
+ assert(unsigned(zero_extend(0x21cc20, 52)) == 2214944);
+ assert(unsigned(zero_extend(0x21cc24, 52)) == 2214948);
+ assert(unsigned(zero_extend(0x21cc28, 52)) == 2214952);
+ assert(unsigned(zero_extend(0x21cc2c, 52)) == 2214956);
+ assert(unsigned(zero_extend(0x21cc30, 52)) == 2214960);
+ assert(unsigned(zero_extend(0x21cc34, 52)) == 2214964);
+ assert(unsigned(zero_extend(0x21cc38, 52)) == 2214968);
+ assert(unsigned(zero_extend(0x21cc3c, 52)) == 2214972);
+ assert(unsigned(zero_extend(0x21cc40, 52)) == 2214976);
+ assert(unsigned(zero_extend(0x21cc44, 52)) == 2214980);
+ assert(unsigned(zero_extend(0x21cc48, 52)) == 2214984);
+ assert(unsigned(zero_extend(0x21cc4c, 52)) == 2214988);
+ assert(unsigned(zero_extend(0x21cc50, 52)) == 2214992);
+ assert(unsigned(zero_extend(0x21cc54, 52)) == 2214996);
+ assert(unsigned(zero_extend(0x21cc58, 52)) == 2215000);
+ assert(unsigned(zero_extend(0x21cc5c, 52)) == 2215004);
+ assert(unsigned(zero_extend(0x21cc60, 52)) == 2215008);
+ assert(unsigned(zero_extend(0x21cc64, 52)) == 2215012);
+ assert(unsigned(zero_extend(0x21cc68, 52)) == 2215016);
+ assert(unsigned(zero_extend(0x21cc6c, 52)) == 2215020);
+ assert(unsigned(zero_extend(0x21cc70, 52)) == 2215024);
+ assert(unsigned(zero_extend(0x21cc74, 52)) == 2215028);
+ assert(unsigned(zero_extend(0x21cc78, 52)) == 2215032);
+ assert(unsigned(zero_extend(0x21cc7c, 52)) == 2215036);
+ assert(unsigned(zero_extend(0x21cc80, 52)) == 2215040);
+ assert(unsigned(zero_extend(0x21cc84, 52)) == 2215044);
+ assert(unsigned(zero_extend(0x21cc88, 52)) == 2215048);
+ assert(unsigned(zero_extend(0x21cc8c, 52)) == 2215052);
+ assert(unsigned(zero_extend(0x21cc90, 52)) == 2215056);
+ assert(unsigned(zero_extend(0x21cc94, 52)) == 2215060);
+ assert(unsigned(zero_extend(0x21cc98, 52)) == 2215064);
+ assert(unsigned(zero_extend(0x21cc9c, 52)) == 2215068);
+ assert(unsigned(zero_extend(0x21cca0, 52)) == 2215072);
+ assert(unsigned(zero_extend(0x21cca4, 52)) == 2215076);
+ assert(unsigned(zero_extend(0x21cca8, 52)) == 2215080);
+ assert(unsigned(zero_extend(0x21ccac, 52)) == 2215084);
+ assert(unsigned(zero_extend(0x21ccb0, 52)) == 2215088);
+ assert(unsigned(zero_extend(0x21ccb4, 52)) == 2215092);
+ assert(unsigned(zero_extend(0x21ccb8, 52)) == 2215096);
+ assert(unsigned(zero_extend(0x21ccbc, 52)) == 2215100);
+ assert(unsigned(zero_extend(0x21ccc0, 52)) == 2215104);
+ assert(unsigned(zero_extend(0x21ccc4, 52)) == 2215108);
+ assert(unsigned(zero_extend(0x21ccc8, 52)) == 2215112);
+ assert(unsigned(zero_extend(0x21cccc, 52)) == 2215116);
+ assert(unsigned(zero_extend(0x21ccd0, 52)) == 2215120);
+ assert(unsigned(zero_extend(0x21ccd8, 52)) == 2215128);
+ assert(unsigned(zero_extend(0x21ccdc, 52)) == 2215132);
+ assert(unsigned(zero_extend(0x21cce0, 52)) == 2215136);
+ assert(unsigned(zero_extend(0x21cce4, 52)) == 2215140);
+ assert(unsigned(zero_extend(0x21cce8, 52)) == 2215144);
+ assert(unsigned(zero_extend(0x21ccec, 52)) == 2215148);
+ assert(unsigned(zero_extend(0x21ccf0, 52)) == 2215152);
+ assert(unsigned(zero_extend(0x21ccf4, 52)) == 2215156);
+ assert(unsigned(zero_extend(0x21ccf8, 52)) == 2215160);
+ assert(unsigned(zero_extend(0x21ccfc, 52)) == 2215164);
+ assert(unsigned(zero_extend(0x21cd00, 52)) == 2215168);
+ assert(unsigned(zero_extend(0x21cd30, 52)) == 2215216);
+ assert(unsigned(zero_extend(0x21cd34, 52)) == 2215220);
+ assert(unsigned(zero_extend(0x21cd38, 52)) == 2215224);
+ assert(unsigned(zero_extend(0x21cd3c, 52)) == 2215228);
+ assert(unsigned(zero_extend(0x21cd40, 52)) == 2215232);
+ assert(unsigned(zero_extend(0x21cd44, 52)) == 2215236);
+ assert(unsigned(zero_extend(0x21cd48, 52)) == 2215240);
+ assert(unsigned(zero_extend(0x21cd4c, 52)) == 2215244);
+ assert(unsigned(zero_extend(0x21cd50, 52)) == 2215248);
+ assert(unsigned(zero_extend(0x21cd54, 52)) == 2215252);
+ assert(unsigned(zero_extend(0x21cd58, 52)) == 2215256);
+ assert(unsigned(zero_extend(0x21cd7c, 52)) == 2215292);
+ assert(unsigned(zero_extend(0x21cd80, 52)) == 2215296);
+ assert(unsigned(zero_extend(0x21cd84, 52)) == 2215300);
+ assert(unsigned(zero_extend(0x21cd88, 52)) == 2215304);
+ assert(unsigned(zero_extend(0x21cd8c, 52)) == 2215308);
+ assert(unsigned(zero_extend(0x21cd90, 52)) == 2215312);
+ assert(unsigned(zero_extend(0x21cd94, 52)) == 2215316);
+ assert(unsigned(zero_extend(0x21cd98, 52)) == 2215320);
+ assert(unsigned(zero_extend(0x21cd9c, 52)) == 2215324);
+ assert(unsigned(zero_extend(0x21cda0, 52)) == 2215328);
+ assert(unsigned(zero_extend(0x21cda4, 52)) == 2215332);
+ assert(unsigned(zero_extend(0x21cda8, 52)) == 2215336);
+ assert(unsigned(zero_extend(0x21cdac, 52)) == 2215340);
+ assert(unsigned(zero_extend(0x21cdb0, 52)) == 2215344);
+ assert(unsigned(zero_extend(0x21cdb4, 52)) == 2215348);
+ assert(unsigned(zero_extend(0x21cdb8, 52)) == 2215352);
+ assert(unsigned(zero_extend(0x21cdbc, 52)) == 2215356);
+ assert(unsigned(zero_extend(0x21cdc0, 52)) == 2215360);
+ assert(unsigned(zero_extend(0x21cdc4, 52)) == 2215364);
+ assert(unsigned(zero_extend(0x21cdc8, 52)) == 2215368);
+ assert(unsigned(zero_extend(0x21cdcc, 52)) == 2215372);
+ assert(unsigned(zero_extend(0x21cdd0, 52)) == 2215376);
+ assert(unsigned(zero_extend(0x21cdd4, 52)) == 2215380);
+ assert(unsigned(zero_extend(0x21cdd8, 52)) == 2215384);
+ assert(unsigned(zero_extend(0x21cddc, 52)) == 2215388);
+ assert(unsigned(zero_extend(0x21cde0, 52)) == 2215392);
+ assert(unsigned(zero_extend(0x21cde4, 52)) == 2215396);
+ assert(unsigned(zero_extend(0x21cde8, 52)) == 2215400);
+ assert(unsigned(zero_extend(0x21cdec, 52)) == 2215404);
+ assert(unsigned(zero_extend(0x21cdf0, 52)) == 2215408);
+ assert(unsigned(zero_extend(0x21cdf4, 52)) == 2215412);
+ assert(unsigned(zero_extend(0x21cdf8, 52)) == 2215416);
+ assert(unsigned(zero_extend(0x21cdfc, 52)) == 2215420);
+ assert(unsigned(zero_extend(0x21ce00, 52)) == 2215424);
+ assert(unsigned(zero_extend(0x21ce04, 52)) == 2215428);
+ assert(unsigned(zero_extend(0x21ce08, 52)) == 2215432);
+ assert(unsigned(zero_extend(0x21ce0c, 52)) == 2215436);
+ assert(unsigned(zero_extend(0x21ce10, 52)) == 2215440);
+ assert(unsigned(zero_extend(0x21ce14, 52)) == 2215444);
+ assert(unsigned(zero_extend(0x21ce18, 52)) == 2215448);
+ assert(unsigned(zero_extend(0x21ce1c, 52)) == 2215452);
+ assert(unsigned(zero_extend(0x21ce20, 52)) == 2215456);
+ assert(unsigned(zero_extend(0x21ce24, 52)) == 2215460);
+ assert(unsigned(zero_extend(0x21ce28, 52)) == 2215464);
+ assert(unsigned(zero_extend(0x21ce2c, 52)) == 2215468);
+ assert(unsigned(zero_extend(0x21ce30, 52)) == 2215472);
+ assert(unsigned(zero_extend(0x21ce34, 52)) == 2215476);
+ assert(unsigned(zero_extend(0x21ce38, 52)) == 2215480);
+ assert(unsigned(zero_extend(0x21ce3c, 52)) == 2215484);
+ assert(unsigned(zero_extend(0x21ce40, 52)) == 2215488);
+ assert(unsigned(zero_extend(0x21ce44, 52)) == 2215492);
+ assert(unsigned(zero_extend(0x21ce48, 52)) == 2215496);
+ assert(unsigned(zero_extend(0x21ce4c, 52)) == 2215500);
+ assert(unsigned(zero_extend(0x21ce50, 52)) == 2215504);
+ assert(unsigned(zero_extend(0x21ce54, 52)) == 2215508);
+ assert(unsigned(zero_extend(0x21ce58, 52)) == 2215512);
+ assert(unsigned(zero_extend(0x21ce68, 52)) == 2215528);
+ assert(unsigned(zero_extend(0x21ce6c, 52)) == 2215532);
+ assert(unsigned(zero_extend(0x21ce70, 52)) == 2215536);
+ assert(unsigned(zero_extend(0x21ce74, 52)) == 2215540);
+ assert(unsigned(zero_extend(0x21ce78, 52)) == 2215544);
+ assert(unsigned(zero_extend(0x21ce7c, 52)) == 2215548);
+ assert(unsigned(zero_extend(0x21ce80, 52)) == 2215552);
+ assert(unsigned(zero_extend(0x21ce84, 52)) == 2215556);
+ assert(unsigned(zero_extend(0x21ce88, 52)) == 2215560);
+ assert(unsigned(zero_extend(0x21ce9c, 52)) == 2215580);
+ assert(unsigned(zero_extend(0x21cea0, 52)) == 2215584);
+ assert(unsigned(zero_extend(0x21cea4, 52)) == 2215588);
+ assert(unsigned(zero_extend(0x21cea8, 52)) == 2215592);
+ assert(unsigned(zero_extend(0x21ceac, 52)) == 2215596);
+ assert(unsigned(zero_extend(0x21ceb0, 52)) == 2215600);
+ assert(unsigned(zero_extend(0x21ceb4, 52)) == 2215604);
+ assert(unsigned(zero_extend(0x21ceb8, 52)) == 2215608);
+ assert(unsigned(zero_extend(0x21cebc, 52)) == 2215612);
+ assert(unsigned(zero_extend(0x21cec0, 52)) == 2215616);
+ assert(unsigned(zero_extend(0x21cec4, 52)) == 2215620);
+ assert(unsigned(zero_extend(0x21cec8, 52)) == 2215624);
+ assert(unsigned(zero_extend(0x21cecc, 52)) == 2215628);
+ assert(unsigned(zero_extend(0x21ced0, 52)) == 2215632);
+ assert(unsigned(zero_extend(0x21ced4, 52)) == 2215636);
+ assert(unsigned(zero_extend(0x21ced8, 52)) == 2215640);
+ assert(unsigned(zero_extend(0x21cee8, 52)) == 2215656);
+ assert(unsigned(zero_extend(0x21ceec, 52)) == 2215660);
+ assert(unsigned(zero_extend(0x21cef0, 52)) == 2215664);
+ assert(unsigned(zero_extend(0x21cef4, 52)) == 2215668);
+ assert(unsigned(zero_extend(0x21cef8, 52)) == 2215672);
+ assert(unsigned(zero_extend(0x21cefc, 52)) == 2215676);
+ assert(unsigned(zero_extend(0x21cf00, 52)) == 2215680);
+ assert(unsigned(zero_extend(0x21cf04, 52)) == 2215684);
+ assert(unsigned(zero_extend(0x21cf08, 52)) == 2215688);
+ assert(unsigned(zero_extend(0x21cf0c, 52)) == 2215692);
+ assert(unsigned(zero_extend(0x21cf10, 52)) == 2215696);
+ assert(unsigned(zero_extend(0x21cf14, 52)) == 2215700);
+ assert(unsigned(zero_extend(0x21cf18, 52)) == 2215704);
+ assert(unsigned(zero_extend(0x21cf1c, 52)) == 2215708);
+ assert(unsigned(zero_extend(0x21cf20, 52)) == 2215712);
+ assert(unsigned(zero_extend(0x21cf24, 52)) == 2215716);
+ assert(unsigned(zero_extend(0x21cf28, 52)) == 2215720);
+ assert(unsigned(zero_extend(0x21cf2c, 52)) == 2215724);
+ assert(unsigned(zero_extend(0x21cf30, 52)) == 2215728);
+ assert(unsigned(zero_extend(0x21cf40, 52)) == 2215744);
+ assert(unsigned(zero_extend(0x21cf44, 52)) == 2215748);
+ assert(unsigned(zero_extend(0x21cf48, 52)) == 2215752);
+ assert(unsigned(zero_extend(0x21cf4c, 52)) == 2215756);
+ assert(unsigned(zero_extend(0x21cf50, 52)) == 2215760);
+ assert(unsigned(zero_extend(0x21cf54, 52)) == 2215764);
+ assert(unsigned(zero_extend(0x21cf58, 52)) == 2215768);
+ assert(unsigned(zero_extend(0x21cf5c, 52)) == 2215772);
+ assert(unsigned(zero_extend(0x21cf64, 52)) == 2215780);
+ assert(unsigned(zero_extend(0x21cf68, 52)) == 2215784);
+ assert(unsigned(zero_extend(0x21cf6c, 52)) == 2215788);
+ assert(unsigned(zero_extend(0x21cf70, 52)) == 2215792);
+ assert(unsigned(zero_extend(0x21cf74, 52)) == 2215796);
+ assert(unsigned(zero_extend(0x21cf78, 52)) == 2215800);
+ assert(unsigned(zero_extend(0x21cf7c, 52)) == 2215804);
+ assert(unsigned(zero_extend(0x21cf80, 52)) == 2215808);
+ assert(unsigned(zero_extend(0x21cf84, 52)) == 2215812);
+ assert(unsigned(zero_extend(0x21cf88, 52)) == 2215816);
+ assert(unsigned(zero_extend(0x21cf8c, 52)) == 2215820);
+ assert(unsigned(zero_extend(0x21cf90, 52)) == 2215824);
+ assert(unsigned(zero_extend(0x21cf94, 52)) == 2215828);
+ assert(unsigned(zero_extend(0x21cf98, 52)) == 2215832);
+ assert(unsigned(zero_extend(0x21cf9c, 52)) == 2215836);
+ assert(unsigned(zero_extend(0x21cfa0, 52)) == 2215840);
+ assert(unsigned(zero_extend(0x21cfa4, 52)) == 2215844);
+ assert(unsigned(zero_extend(0x21cfa8, 52)) == 2215848);
+ assert(unsigned(zero_extend(0x21cfac, 52)) == 2215852);
+ assert(unsigned(zero_extend(0x21cfb0, 52)) == 2215856);
+ assert(unsigned(zero_extend(0x21cfb4, 52)) == 2215860);
+ assert(unsigned(zero_extend(0x21cfb8, 52)) == 2215864);
+ assert(unsigned(zero_extend(0x21cfbc, 52)) == 2215868);
+ assert(unsigned(zero_extend(0x21cfc0, 52)) == 2215872);
+ assert(unsigned(zero_extend(0x21cfc4, 52)) == 2215876);
+ assert(unsigned(zero_extend(0x21cfc8, 52)) == 2215880);
+ assert(unsigned(zero_extend(0x21cfcc, 52)) == 2215884);
+ assert(unsigned(zero_extend(0x21cfd0, 52)) == 2215888);
+ assert(unsigned(zero_extend(0x21cfd4, 52)) == 2215892);
+ assert(unsigned(zero_extend(0x21cfd8, 52)) == 2215896);
+ assert(unsigned(zero_extend(0x21cfdc, 52)) == 2215900);
+ assert(unsigned(zero_extend(0x21cfe0, 52)) == 2215904);
+ assert(unsigned(zero_extend(0x21cfe4, 52)) == 2215908);
+ assert(unsigned(zero_extend(0x21cfe8, 52)) == 2215912);
+ assert(unsigned(zero_extend(0x21cfec, 52)) == 2215916);
+ assert(unsigned(zero_extend(0x21cff0, 52)) == 2215920);
+ assert(unsigned(zero_extend(0x21cff4, 52)) == 2215924);
+ assert(unsigned(zero_extend(0x21cff8, 52)) == 2215928);
+ assert(unsigned(zero_extend(0x21cffc, 52)) == 2215932);
+ assert(unsigned(zero_extend(0x21d000, 52)) == 2215936);
+ assert(unsigned(zero_extend(0x21d004, 52)) == 2215940);
+ assert(unsigned(zero_extend(0x21d008, 52)) == 2215944);
+ assert(unsigned(zero_extend(0x21d00c, 52)) == 2215948);
+ assert(unsigned(zero_extend(0x21d010, 52)) == 2215952);
+ assert(unsigned(zero_extend(0x21d014, 52)) == 2215956);
+ assert(unsigned(zero_extend(0x21d018, 52)) == 2215960);
+ assert(unsigned(zero_extend(0x21d01c, 52)) == 2215964);
+ assert(unsigned(zero_extend(0x21d020, 52)) == 2215968);
+ assert(unsigned(zero_extend(0x21d024, 52)) == 2215972);
+ assert(unsigned(zero_extend(0x21d028, 52)) == 2215976);
+ assert(unsigned(zero_extend(0x21d02c, 52)) == 2215980);
+ assert(unsigned(zero_extend(0x21d030, 52)) == 2215984);
+ assert(unsigned(zero_extend(0x21d034, 52)) == 2215988);
+ assert(unsigned(zero_extend(0x21d038, 52)) == 2215992);
+ assert(unsigned(zero_extend(0x21d03c, 52)) == 2215996);
+ assert(unsigned(zero_extend(0x21d040, 52)) == 2216000);
+ assert(unsigned(zero_extend(0x21d044, 52)) == 2216004);
+ assert(unsigned(zero_extend(0x21d048, 52)) == 2216008);
+ assert(unsigned(zero_extend(0x21d04c, 52)) == 2216012);
+ assert(unsigned(zero_extend(0x21d050, 52)) == 2216016);
+ assert(unsigned(zero_extend(0x21d054, 52)) == 2216020);
+ assert(unsigned(zero_extend(0x21d058, 52)) == 2216024);
+ assert(unsigned(zero_extend(0x21d060, 52)) == 2216032);
+ assert(unsigned(zero_extend(0x21d068, 52)) == 2216040);
+ assert(unsigned(zero_extend(0x21d070, 52)) == 2216048);
+ assert(unsigned(zero_extend(0x21d078, 52)) == 2216056);
+ assert(unsigned(zero_extend(0x21d080, 52)) == 2216064);
+ assert(unsigned(zero_extend(0x21d088, 52)) == 2216072);
+ assert(unsigned(zero_extend(0x21d090, 52)) == 2216080);
+ assert(unsigned(zero_extend(0x21d098, 52)) == 2216088);
+ assert(unsigned(zero_extend(0x21d0a0, 52)) == 2216096);
+ assert(unsigned(zero_extend(0x21d0a8, 52)) == 2216104);
+ assert(unsigned(zero_extend(0x21d0b0, 52)) == 2216112);
+ assert(unsigned(zero_extend(0x21d0b8, 52)) == 2216120);
+ assert(unsigned(zero_extend(0x21d0c0, 52)) == 2216128);
+ assert(unsigned(zero_extend(0x21d0c8, 52)) == 2216136);
+ assert(unsigned(zero_extend(0x21d0d0, 52)) == 2216144);
+ assert(unsigned(zero_extend(0x21d0d8, 52)) == 2216152);
+ assert(unsigned(zero_extend(0x21d0e0, 52)) == 2216160);
+ assert(unsigned(zero_extend(0x21d0e8, 52)) == 2216168);
+ assert(unsigned(zero_extend(0x21d0f0, 52)) == 2216176);
+ assert(unsigned(zero_extend(0x21d0f8, 52)) == 2216184);
+ assert(unsigned(zero_extend(0x21d100, 52)) == 2216192);
+ assert(unsigned(zero_extend(0x21d108, 52)) == 2216200);
+ assert(unsigned(zero_extend(0x21d448, 52)) == 2217032);
+ assert(unsigned(zero_extend(0x21d44c, 52)) == 2217036);
+ assert(unsigned(zero_extend(0x21d450, 52)) == 2217040);
+ assert(unsigned(zero_extend(0x21d454, 52)) == 2217044);
+ assert(unsigned(zero_extend(0x21d458, 52)) == 2217048);
+ assert(unsigned(zero_extend(0x21d45c, 52)) == 2217052);
+ assert(unsigned(zero_extend(0x21d460, 52)) == 2217056);
+ assert(unsigned(zero_extend(0x21d464, 52)) == 2217060);
+ assert(unsigned(zero_extend(0x21d468, 52)) == 2217064);
+ assert(unsigned(zero_extend(0x21d46c, 52)) == 2217068);
+ assert(unsigned(zero_extend(0x21d470, 52)) == 2217072);
+ assert(unsigned(zero_extend(0x21d474, 52)) == 2217076);
+ assert(unsigned(zero_extend(0x21d478, 52)) == 2217080);
+ assert(unsigned(zero_extend(0x21d47c, 52)) == 2217084);
+ assert(unsigned(zero_extend(0x21d480, 52)) == 2217088);
+ assert(unsigned(zero_extend(0x21d484, 52)) == 2217092);
+ assert(unsigned(zero_extend(0x21d490, 52)) == 2217104);
+ assert(unsigned(zero_extend(0x21d494, 52)) == 2217108);
+ assert(unsigned(zero_extend(0x21d498, 52)) == 2217112);
+ assert(unsigned(zero_extend(0x21d49c, 52)) == 2217116);
+ assert(unsigned(zero_extend(0x21d4a0, 52)) == 2217120);
+ assert(unsigned(zero_extend(0x21d4a4, 52)) == 2217124);
+ assert(unsigned(zero_extend(0x21d4a8, 52)) == 2217128);
+ assert(unsigned(zero_extend(0x21d4ac, 52)) == 2217132);
+ assert(unsigned(zero_extend(0x21d4b0, 52)) == 2217136);
+ assert(unsigned(zero_extend(0x21d4b4, 52)) == 2217140);
+ assert(unsigned(zero_extend(0x21d4b8, 52)) == 2217144);
+ assert(unsigned(zero_extend(0x21d4bc, 52)) == 2217148);
+ assert(unsigned(zero_extend(0x21d4c0, 52)) == 2217152);
+ assert(unsigned(zero_extend(0x21d4c4, 52)) == 2217156);
+ assert(unsigned(zero_extend(0x21d4c8, 52)) == 2217160);
+ assert(unsigned(zero_extend(0x21d4cc, 52)) == 2217164);
+ assert(unsigned(zero_extend(0x21d4d0, 52)) == 2217168);
+ assert(unsigned(zero_extend(0x21d4d4, 52)) == 2217172);
+ assert(unsigned(zero_extend(0x21d4d8, 52)) == 2217176);
+ assert(unsigned(zero_extend(0x21d4dc, 52)) == 2217180);
+ assert(unsigned(zero_extend(0x21d4e0, 52)) == 2217184);
+ assert(unsigned(zero_extend(0x21d4e4, 52)) == 2217188);
+ assert(unsigned(zero_extend(0x21d4e8, 52)) == 2217192);
+ assert(unsigned(zero_extend(0x21d4ec, 52)) == 2217196);
+ assert(unsigned(zero_extend(0x21d4f0, 52)) == 2217200);
+ assert(unsigned(zero_extend(0x21d4f4, 52)) == 2217204);
+ assert(unsigned(zero_extend(0x21d4f8, 52)) == 2217208);
+ assert(unsigned(zero_extend(0x21d4fc, 52)) == 2217212);
+ assert(unsigned(zero_extend(0x21d500, 52)) == 2217216);
+ assert(unsigned(zero_extend(0x21d504, 52)) == 2217220);
+ assert(unsigned(zero_extend(0x21d508, 52)) == 2217224);
+ assert(unsigned(zero_extend(0x21d50c, 52)) == 2217228);
+ assert(unsigned(zero_extend(0x21d510, 52)) == 2217232);
+ assert(unsigned(zero_extend(0x21d514, 52)) == 2217236);
+ assert(unsigned(zero_extend(0x21d518, 52)) == 2217240);
+ assert(unsigned(zero_extend(0x21d51c, 52)) == 2217244);
+ assert(unsigned(zero_extend(0x21d520, 52)) == 2217248);
+ assert(unsigned(zero_extend(0x21d524, 52)) == 2217252);
+ assert(unsigned(zero_extend(0x21d528, 52)) == 2217256);
+ assert(unsigned(zero_extend(0x21d52c, 52)) == 2217260);
+ assert(unsigned(zero_extend(0x21d530, 52)) == 2217264);
+ assert(unsigned(zero_extend(0x21d534, 52)) == 2217268);
+ assert(unsigned(zero_extend(0x21d538, 52)) == 2217272);
+ assert(unsigned(zero_extend(0x21d53c, 52)) == 2217276);
+ assert(unsigned(zero_extend(0x21d540, 52)) == 2217280);
+ assert(unsigned(zero_extend(0x21d544, 52)) == 2217284);
+ assert(unsigned(zero_extend(0x21d548, 52)) == 2217288);
+ assert(unsigned(zero_extend(0x21d54c, 52)) == 2217292);
+ assert(unsigned(zero_extend(0x21d550, 52)) == 2217296);
+ assert(unsigned(zero_extend(0x21d554, 52)) == 2217300);
+ assert(unsigned(zero_extend(0x21d558, 52)) == 2217304);
+ assert(unsigned(zero_extend(0x21d560, 52)) == 2217312);
+ assert(unsigned(zero_extend(0x21d564, 52)) == 2217316);
+ assert(unsigned(zero_extend(0x21d568, 52)) == 2217320);
+ assert(unsigned(zero_extend(0x21d570, 52)) == 2217328);
+ assert(unsigned(zero_extend(0x21d5f8, 52)) == 2217464);
+ assert(unsigned(zero_extend(0x21d5fc, 52)) == 2217468);
+ assert(unsigned(zero_extend(0x21d600, 52)) == 2217472);
+ assert(unsigned(zero_extend(0x21d604, 52)) == 2217476);
+ assert(unsigned(zero_extend(0x21d608, 52)) == 2217480);
+ assert(unsigned(zero_extend(0x21d60c, 52)) == 2217484);
+ assert(unsigned(zero_extend(0x21d610, 52)) == 2217488);
+ assert(unsigned(zero_extend(0x21d614, 52)) == 2217492);
+ assert(unsigned(zero_extend(0x21d618, 52)) == 2217496);
+ assert(unsigned(zero_extend(0x21d61c, 52)) == 2217500);
+ assert(unsigned(zero_extend(0x21d620, 52)) == 2217504);
+ assert(unsigned(zero_extend(0x21d624, 52)) == 2217508);
+ assert(unsigned(zero_extend(0x21d628, 52)) == 2217512);
+ assert(unsigned(zero_extend(0x21d650, 52)) == 2217552);
+ assert(unsigned(zero_extend(0x21d654, 52)) == 2217556);
+ assert(unsigned(zero_extend(0x21d658, 52)) == 2217560);
+ assert(unsigned(zero_extend(0x21d65c, 52)) == 2217564);
+ assert(unsigned(zero_extend(0x21d660, 52)) == 2217568);
+ assert(unsigned(zero_extend(0x21d664, 52)) == 2217572);
+ assert(unsigned(zero_extend(0x21d668, 52)) == 2217576);
+ assert(unsigned(zero_extend(0x21d66c, 52)) == 2217580);
+ assert(unsigned(zero_extend(0x21d670, 52)) == 2217584);
+ assert(unsigned(zero_extend(0x21d674, 52)) == 2217588);
+ assert(unsigned(zero_extend(0x21d678, 52)) == 2217592);
+ assert(unsigned(zero_extend(0x21d67c, 52)) == 2217596);
+ assert(unsigned(zero_extend(0x21d680, 52)) == 2217600);
+ assert(unsigned(zero_extend(0x21e078, 52)) == 2220152);
+ assert(unsigned(zero_extend(0x21e07c, 52)) == 2220156);
+ assert(unsigned(zero_extend(0x21e080, 52)) == 2220160);
+ assert(unsigned(zero_extend(0x21e084, 52)) == 2220164);
+ assert(unsigned(zero_extend(0x21e088, 52)) == 2220168);
+ assert(unsigned(zero_extend(0x21e08c, 52)) == 2220172);
+ assert(unsigned(zero_extend(0x21e090, 52)) == 2220176);
+ assert(unsigned(zero_extend(0x21e094, 52)) == 2220180);
+ assert(unsigned(zero_extend(0x21e098, 52)) == 2220184);
+ assert(unsigned(zero_extend(0x21e09c, 52)) == 2220188);
+ assert(unsigned(zero_extend(0x21e0a0, 52)) == 2220192);
+ assert(unsigned(zero_extend(0x21e0a4, 52)) == 2220196);
+ assert(unsigned(zero_extend(0x21e0a8, 52)) == 2220200);
+ assert(unsigned(zero_extend(0x21e0ac, 52)) == 2220204);
+ assert(unsigned(zero_extend(0x21e0ad, 52)) == 2220205);
+ assert(unsigned(zero_extend(0x21e0ae, 52)) == 2220206);
+ assert(unsigned(zero_extend(0x21e0af, 52)) == 2220207);
+ assert(unsigned(zero_extend(0x21e0b0, 52)) == 2220208);
+ assert(unsigned(zero_extend(0x21e0b1, 52)) == 2220209);
+ assert(unsigned(zero_extend(0x21e0b2, 52)) == 2220210);
+ assert(unsigned(zero_extend(0x21e0b3, 52)) == 2220211);
+ assert(unsigned(zero_extend(0x21e0b4, 52)) == 2220212);
+ assert(unsigned(zero_extend(0x21e0b5, 52)) == 2220213);
+ assert(unsigned(zero_extend(0x21e0b6, 52)) == 2220214);
+ assert(unsigned(zero_extend(0x21e0b7, 52)) == 2220215);
+ assert(unsigned(zero_extend(0x21e0b8, 52)) == 2220216);
+ assert(unsigned(zero_extend(0x21e0b9, 52)) == 2220217);
+ assert(unsigned(zero_extend(0x21e0ba, 52)) == 2220218);
+ assert(unsigned(zero_extend(0x21e0bb, 52)) == 2220219);
+ assert(unsigned(zero_extend(0x21e0bc, 52)) == 2220220);
+ assert(unsigned(zero_extend(0x21e0bd, 52)) == 2220221);
+ assert(unsigned(zero_extend(0x21e0be, 52)) == 2220222);
+ assert(unsigned(zero_extend(0x21e0bf, 52)) == 2220223);
+ assert(unsigned(zero_extend(0x21e0c0, 52)) == 2220224);
+ assert(unsigned(zero_extend(0x21e0c1, 52)) == 2220225);
+ assert(unsigned(zero_extend(0x21e0c2, 52)) == 2220226);
+ assert(unsigned(zero_extend(0x21e0c3, 52)) == 2220227);
+ assert(unsigned(zero_extend(0x21e0c4, 52)) == 2220228);
+ assert(unsigned(zero_extend(0x21e0c5, 52)) == 2220229);
+ assert(unsigned(zero_extend(0x21e0c6, 52)) == 2220230);
+ assert(unsigned(zero_extend(0x21e0c8, 52)) == 2220232);
+ assert(unsigned(zero_extend(0x21e0cc, 52)) == 2220236);
+ assert(unsigned(zero_extend(0x21e0d0, 52)) == 2220240);
+ assert(unsigned(zero_extend(0x21e0d4, 52)) == 2220244);
+ assert(unsigned(zero_extend(0x21e0d8, 52)) == 2220248);
+ assert(unsigned(zero_extend(0x21e0dc, 52)) == 2220252);
+ assert(unsigned(zero_extend(0x21e0e0, 52)) == 2220256);
+ assert(unsigned(zero_extend(0x21e0e4, 52)) == 2220260);
+ assert(unsigned(zero_extend(0x21e0e8, 52)) == 2220264);
+ assert(unsigned(zero_extend(0x21e0ec, 52)) == 2220268);
+ assert(unsigned(zero_extend(0x21e0ed, 52)) == 2220269);
+ assert(unsigned(zero_extend(0x21e0ee, 52)) == 2220270);
+ assert(unsigned(zero_extend(0x21e0ef, 52)) == 2220271);
+ assert(unsigned(zero_extend(0x21e0f0, 52)) == 2220272);
+ assert(unsigned(zero_extend(0x21e0f1, 52)) == 2220273);
+ assert(unsigned(zero_extend(0x21e0f2, 52)) == 2220274);
+ assert(unsigned(zero_extend(0x21e0f3, 52)) == 2220275);
+ assert(unsigned(zero_extend(0x21e0f4, 52)) == 2220276);
+ assert(unsigned(zero_extend(0x21e0f5, 52)) == 2220277);
+ assert(unsigned(zero_extend(0x21e0f6, 52)) == 2220278);
+ assert(unsigned(zero_extend(0x21e0f7, 52)) == 2220279);
+ assert(unsigned(zero_extend(0x21e0f8, 52)) == 2220280);
+ assert(unsigned(zero_extend(0x21e0f9, 52)) == 2220281);
+ assert(unsigned(zero_extend(0x21e0fa, 52)) == 2220282);
+ assert(unsigned(zero_extend(0x21e0fb, 52)) == 2220283);
+ assert(unsigned(zero_extend(0x21e0fc, 52)) == 2220284);
+ assert(unsigned(zero_extend(0x21e0fd, 52)) == 2220285);
+ assert(unsigned(zero_extend(0x21e0fe, 52)) == 2220286);
+ assert(unsigned(zero_extend(0x21e0ff, 52)) == 2220287);
+ assert(unsigned(zero_extend(0x21e100, 52)) == 2220288);
+ assert(unsigned(zero_extend(0x21e101, 52)) == 2220289);
+ assert(unsigned(zero_extend(0x21e102, 52)) == 2220290);
+ assert(unsigned(zero_extend(0x21e103, 52)) == 2220291);
+ assert(unsigned(zero_extend(0x21e104, 52)) == 2220292);
+ assert(unsigned(zero_extend(0x21e105, 52)) == 2220293);
+ assert(unsigned(zero_extend(0x21e106, 52)) == 2220294);
+ assert(unsigned(zero_extend(0x21e107, 52)) == 2220295);
+ assert(unsigned(zero_extend(0x21e108, 52)) == 2220296);
+ assert(unsigned(zero_extend(0x21e109, 52)) == 2220297);
+ assert(unsigned(zero_extend(0x21e10a, 52)) == 2220298);
+ assert(unsigned(zero_extend(0x21e10b, 52)) == 2220299);
+ assert(unsigned(zero_extend(0x21e10c, 52)) == 2220300);
+ assert(unsigned(zero_extend(0x21e10d, 52)) == 2220301);
+ assert(unsigned(zero_extend(0x21e10e, 52)) == 2220302);
+ assert(unsigned(zero_extend(0x21e10f, 52)) == 2220303);
+ assert(unsigned(zero_extend(0x21e110, 52)) == 2220304);
+ assert(unsigned(zero_extend(0x21e111, 52)) == 2220305);
+ assert(unsigned(zero_extend(0x21e112, 52)) == 2220306);
+ assert(unsigned(zero_extend(0x21e113, 52)) == 2220307);
+ assert(unsigned(zero_extend(0x21e114, 52)) == 2220308);
+ assert(unsigned(zero_extend(0x21e115, 52)) == 2220309);
+ assert(unsigned(zero_extend(0x21e116, 52)) == 2220310);
+ assert(unsigned(zero_extend(0x21e117, 52)) == 2220311);
+ assert(unsigned(zero_extend(0x21e118, 52)) == 2220312);
+ assert(unsigned(zero_extend(0x21e119, 52)) == 2220313);
+ assert(unsigned(zero_extend(0x21e11a, 52)) == 2220314);
+ assert(unsigned(zero_extend(0x21e11b, 52)) == 2220315);
+ assert(unsigned(zero_extend(0x21e11c, 52)) == 2220316);
+ assert(unsigned(zero_extend(0x21e11d, 52)) == 2220317);
+ assert(unsigned(zero_extend(0x21e11e, 52)) == 2220318);
+ assert(unsigned(zero_extend(0x21e120, 52)) == 2220320);
+ assert(unsigned(zero_extend(0x21e124, 52)) == 2220324);
+ assert(unsigned(zero_extend(0x21e128, 52)) == 2220328);
+ assert(unsigned(zero_extend(0x21e12c, 52)) == 2220332);
+ assert(unsigned(zero_extend(0x21e130, 52)) == 2220336);
+ assert(unsigned(zero_extend(0x21e134, 52)) == 2220340);
+ assert(unsigned(zero_extend(0x21e138, 52)) == 2220344);
+ assert(unsigned(zero_extend(0x21e13c, 52)) == 2220348);
+ assert(unsigned(zero_extend(0x21e140, 52)) == 2220352);
+ assert(unsigned(zero_extend(0x21e141, 52)) == 2220353);
+ assert(unsigned(zero_extend(0x21e142, 52)) == 2220354);
+ assert(unsigned(zero_extend(0x21e143, 52)) == 2220355);
+ assert(unsigned(zero_extend(0x21e144, 52)) == 2220356);
+ assert(unsigned(zero_extend(0x21e145, 52)) == 2220357);
+ assert(unsigned(zero_extend(0x21e146, 52)) == 2220358);
+ assert(unsigned(zero_extend(0x21e147, 52)) == 2220359);
+ assert(unsigned(zero_extend(0x21e148, 52)) == 2220360);
+ assert(unsigned(zero_extend(0x21e149, 52)) == 2220361);
+ assert(unsigned(zero_extend(0x21e14a, 52)) == 2220362);
+ assert(unsigned(zero_extend(0x21e14b, 52)) == 2220363);
+ assert(unsigned(zero_extend(0x21e14c, 52)) == 2220364);
+ assert(unsigned(zero_extend(0x21e14d, 52)) == 2220365);
+ assert(unsigned(zero_extend(0x21e14e, 52)) == 2220366);
+ assert(unsigned(zero_extend(0x21e14f, 52)) == 2220367);
+ assert(unsigned(zero_extend(0x21e150, 52)) == 2220368);
+ assert(unsigned(zero_extend(0x21e151, 52)) == 2220369);
+ assert(unsigned(zero_extend(0x21e152, 52)) == 2220370);
+ assert(unsigned(zero_extend(0x21e153, 52)) == 2220371);
+ assert(unsigned(zero_extend(0x21e154, 52)) == 2220372);
+ assert(unsigned(zero_extend(0x21e155, 52)) == 2220373);
+ assert(unsigned(zero_extend(0x21e156, 52)) == 2220374);
+ assert(unsigned(zero_extend(0x21e157, 52)) == 2220375);
+ assert(unsigned(zero_extend(0x21e158, 52)) == 2220376);
+ assert(unsigned(zero_extend(0x21e159, 52)) == 2220377);
+ assert(unsigned(zero_extend(0x21e15a, 52)) == 2220378);
+ assert(unsigned(zero_extend(0x21e15b, 52)) == 2220379);
+ assert(unsigned(zero_extend(0x21e15c, 52)) == 2220380);
+ assert(unsigned(zero_extend(0x21e160, 52)) == 2220384);
+ assert(unsigned(zero_extend(0x21e164, 52)) == 2220388);
+ assert(unsigned(zero_extend(0x21e168, 52)) == 2220392);
+ assert(unsigned(zero_extend(0x21e16c, 52)) == 2220396);
+ assert(unsigned(zero_extend(0x21e170, 52)) == 2220400);
+ assert(unsigned(zero_extend(0x21e174, 52)) == 2220404);
+ assert(unsigned(zero_extend(0x21e178, 52)) == 2220408);
+ assert(unsigned(zero_extend(0x21e17c, 52)) == 2220412);
+ assert(unsigned(zero_extend(0x21e180, 52)) == 2220416);
+ assert(unsigned(zero_extend(0x21e184, 52)) == 2220420);
+ assert(unsigned(zero_extend(0x21e188, 52)) == 2220424);
+ assert(unsigned(zero_extend(0x21e18c, 52)) == 2220428);
+ assert(unsigned(zero_extend(0x21e190, 52)) == 2220432);
+ assert(unsigned(zero_extend(0x21e194, 52)) == 2220436);
+ assert(unsigned(zero_extend(0x21e198, 52)) == 2220440);
+ assert(unsigned(zero_extend(0x21e199, 52)) == 2220441);
+ assert(unsigned(zero_extend(0x21e19a, 52)) == 2220442);
+ assert(unsigned(zero_extend(0x21e19b, 52)) == 2220443);
+ assert(unsigned(zero_extend(0x21e19c, 52)) == 2220444);
+ assert(unsigned(zero_extend(0x21e19d, 52)) == 2220445);
+ assert(unsigned(zero_extend(0x21e19e, 52)) == 2220446);
+ assert(unsigned(zero_extend(0x21e19f, 52)) == 2220447);
+ assert(unsigned(zero_extend(0x21e1a0, 52)) == 2220448);
+ assert(unsigned(zero_extend(0x21e1a1, 52)) == 2220449);
+ assert(unsigned(zero_extend(0x21e1a2, 52)) == 2220450);
+ assert(unsigned(zero_extend(0x21e1a3, 52)) == 2220451);
+ assert(unsigned(zero_extend(0x21e1a4, 52)) == 2220452);
+ assert(unsigned(zero_extend(0x21e1a5, 52)) == 2220453);
+ assert(unsigned(zero_extend(0x21e1a6, 52)) == 2220454);
+ assert(unsigned(zero_extend(0x21e1a7, 52)) == 2220455);
+ assert(unsigned(zero_extend(0x21e1a8, 52)) == 2220456);
+ assert(unsigned(zero_extend(0x21e1a9, 52)) == 2220457);
+ assert(unsigned(zero_extend(0x21e1aa, 52)) == 2220458);
+ assert(unsigned(zero_extend(0x21e1ab, 52)) == 2220459);
+ assert(unsigned(zero_extend(0x21e1ac, 52)) == 2220460);
+ assert(unsigned(zero_extend(0x21e1ad, 52)) == 2220461);
+ assert(unsigned(zero_extend(0x21e1ae, 52)) == 2220462);
+ assert(unsigned(zero_extend(0x21e1af, 52)) == 2220463);
+ assert(unsigned(zero_extend(0x21e1b0, 52)) == 2220464);
+ assert(unsigned(zero_extend(0x21e600, 52)) == 2221568);
+ assert(unsigned(zero_extend(0x21e604, 52)) == 2221572);
+ assert(unsigned(zero_extend(0x21e608, 52)) == 2221576);
+ assert(unsigned(zero_extend(0x21e60c, 52)) == 2221580);
+ assert(unsigned(zero_extend(0x21e610, 52)) == 2221584);
+ assert(unsigned(zero_extend(0x21e614, 52)) == 2221588);
+ assert(unsigned(zero_extend(0x21e618, 52)) == 2221592);
+ assert(unsigned(zero_extend(0x21e61c, 52)) == 2221596);
+ assert(unsigned(zero_extend(0x21e620, 52)) == 2221600);
+ assert(unsigned(zero_extend(0x21e624, 52)) == 2221604);
+ assert(unsigned(zero_extend(0x21e628, 52)) == 2221608);
+ assert(unsigned(zero_extend(0x21e62c, 52)) == 2221612);
+ assert(unsigned(zero_extend(0x21e630, 52)) == 2221616);
+ assert(unsigned(zero_extend(0x21e634, 52)) == 2221620);
+ assert(unsigned(zero_extend(0x21e638, 52)) == 2221624);
+ assert(unsigned(zero_extend(0x21e63c, 52)) == 2221628);
+ assert(unsigned(zero_extend(0x21e640, 52)) == 2221632);
+ assert(unsigned(zero_extend(0x21e644, 52)) == 2221636);
+ assert(unsigned(zero_extend(0x21e648, 52)) == 2221640);
+ assert(unsigned(zero_extend(0x21e64c, 52)) == 2221644);
+ assert(unsigned(zero_extend(0x21e650, 52)) == 2221648);
+ assert(unsigned(zero_extend(0x21e658, 52)) == 2221656);
+ assert(unsigned(zero_extend(0x21e65c, 52)) == 2221660);
+ assert(unsigned(zero_extend(0x21e660, 52)) == 2221664);
+ assert(unsigned(zero_extend(0x21e664, 52)) == 2221668);
+ assert(unsigned(zero_extend(0x21e668, 52)) == 2221672);
+ assert(unsigned(zero_extend(0x21e66c, 52)) == 2221676);
+ assert(unsigned(zero_extend(0x21e670, 52)) == 2221680);
+ assert(unsigned(zero_extend(0x21e674, 52)) == 2221684);
+ assert(unsigned(zero_extend(0x21e678, 52)) == 2221688);
+ assert(unsigned(zero_extend(0x21e67c, 52)) == 2221692);
+ assert(unsigned(zero_extend(0x21e680, 52)) == 2221696);
+ assert(unsigned(zero_extend(0x21e684, 52)) == 2221700);
+ assert(unsigned(zero_extend(0x21e688, 52)) == 2221704);
+ assert(unsigned(zero_extend(0x21e68c, 52)) == 2221708);
+ assert(unsigned(zero_extend(0x21e690, 52)) == 2221712);
+ assert(unsigned(zero_extend(0x21e694, 52)) == 2221716);
+ assert(unsigned(zero_extend(0x21e698, 52)) == 2221720);
+ assert(unsigned(zero_extend(0x21e69c, 52)) == 2221724);
+ assert(unsigned(zero_extend(0x21e6a0, 52)) == 2221728);
+ assert(unsigned(zero_extend(0x21e6a4, 52)) == 2221732);
+ assert(unsigned(zero_extend(0x21e6a8, 52)) == 2221736);
+ assert(unsigned(zero_extend(0x21e6ac, 52)) == 2221740);
+ assert(unsigned(zero_extend(0x21e6b0, 52)) == 2221744);
+ assert(unsigned(zero_extend(0x21e6b4, 52)) == 2221748);
+ assert(unsigned(zero_extend(0x21e6b8, 52)) == 2221752);
+ assert(unsigned(zero_extend(0x21e6bc, 52)) == 2221756);
+ assert(unsigned(zero_extend(0x21e6c0, 52)) == 2221760);
+ assert(unsigned(zero_extend(0x21e6c4, 52)) == 2221764);
+ assert(unsigned(zero_extend(0x21e6c8, 52)) == 2221768);
+ assert(unsigned(zero_extend(0x21e6cc, 52)) == 2221772);
+ assert(unsigned(zero_extend(0x21e6d0, 52)) == 2221776);
+ assert(unsigned(zero_extend(0x21e6d4, 52)) == 2221780);
+ assert(unsigned(zero_extend(0x21e6d8, 52)) == 2221784);
+ assert(unsigned(zero_extend(0x21e6dc, 52)) == 2221788);
+ assert(unsigned(zero_extend(0x21e6e0, 52)) == 2221792);
+ assert(unsigned(zero_extend(0x21e6e4, 52)) == 2221796);
+ assert(unsigned(zero_extend(0x21e6e8, 52)) == 2221800);
+ assert(unsigned(zero_extend(0x21e6ec, 52)) == 2221804);
+ assert(unsigned(zero_extend(0x21e6f0, 52)) == 2221808);
+ assert(unsigned(zero_extend(0x21e6f4, 52)) == 2221812);
+ assert(unsigned(zero_extend(0x21e6f8, 52)) == 2221816);
+ assert(unsigned(zero_extend(0x21e6fc, 52)) == 2221820);
+ assert(unsigned(zero_extend(0x21e700, 52)) == 2221824);
+ assert(unsigned(zero_extend(0x21e704, 52)) == 2221828);
+ assert(unsigned(zero_extend(0x21e708, 52)) == 2221832);
+ assert(unsigned(zero_extend(0x21e70c, 52)) == 2221836);
+ assert(unsigned(zero_extend(0x21e710, 52)) == 2221840);
+ assert(unsigned(zero_extend(0x21e714, 52)) == 2221844);
+ assert(unsigned(zero_extend(0x21e718, 52)) == 2221848);
+ assert(unsigned(zero_extend(0x21e71c, 52)) == 2221852);
+ assert(unsigned(zero_extend(0x21e720, 52)) == 2221856);
+ assert(unsigned(zero_extend(0x21e724, 52)) == 2221860);
+ assert(unsigned(zero_extend(0x21e728, 52)) == 2221864);
+ assert(unsigned(zero_extend(0x21e72c, 52)) == 2221868);
+ assert(unsigned(zero_extend(0x21e730, 52)) == 2221872);
+ assert(unsigned(zero_extend(0x21e734, 52)) == 2221876);
+ assert(unsigned(zero_extend(0x21e738, 52)) == 2221880);
+ assert(unsigned(zero_extend(0x21e740, 52)) == 2221888);
+ assert(unsigned(zero_extend(0x21eb90, 52)) == 2222992);
+ assert(unsigned(zero_extend(0x21eb94, 52)) == 2222996);
+ assert(unsigned(zero_extend(0x21eb98, 52)) == 2223000);
+ assert(unsigned(zero_extend(0x21eb9c, 52)) == 2223004);
+ assert(unsigned(zero_extend(0x21eba0, 52)) == 2223008);
+ assert(unsigned(zero_extend(0x21eba4, 52)) == 2223012);
+ assert(unsigned(zero_extend(0x21eba8, 52)) == 2223016);
+ assert(unsigned(zero_extend(0x21ebc0, 52)) == 2223040);
+ assert(unsigned(zero_extend(0x21ebc4, 52)) == 2223044);
+ assert(unsigned(zero_extend(0x21ebc8, 52)) == 2223048);
+ assert(unsigned(zero_extend(0x21ebd4, 52)) == 2223060);
+ assert(unsigned(zero_extend(0x21ebd8, 52)) == 2223064);
+ assert(unsigned(zero_extend(0x21ebe8, 52)) == 2223080);
+ assert(unsigned(zero_extend(0x21ebec, 52)) == 2223084);
+ assert(unsigned(zero_extend(0x21ebf0, 52)) == 2223088);
+ assert(unsigned(zero_extend(0x21ebf4, 52)) == 2223092);
+ assert(unsigned(zero_extend(0x21ebf8, 52)) == 2223096);
+ assert(unsigned(zero_extend(0x21ebfc, 52)) == 2223100);
+ assert(unsigned(zero_extend(0x21ec00, 52)) == 2223104);
+ assert(unsigned(zero_extend(0x21ec18, 52)) == 2223128);
+ assert(unsigned(zero_extend(0x21ec1c, 52)) == 2223132);
+ assert(unsigned(zero_extend(0x21ec20, 52)) == 2223136);
+ assert(unsigned(zero_extend(0x21ec24, 52)) == 2223140);
+ assert(unsigned(zero_extend(0x21ec25, 52)) == 2223141);
+ assert(unsigned(zero_extend(0x21ec26, 52)) == 2223142);
+ assert(unsigned(zero_extend(0x21ec27, 52)) == 2223143);
+ assert(unsigned(zero_extend(0x21ec28, 52)) == 2223144);
+ assert(unsigned(zero_extend(0x21ec29, 52)) == 2223145);
+ assert(unsigned(zero_extend(0x21ec2a, 52)) == 2223146);
+ assert(unsigned(zero_extend(0x21ec2b, 52)) == 2223147);
+ assert(unsigned(zero_extend(0x21ec2c, 52)) == 2223148);
+ assert(unsigned(zero_extend(0x21ec2d, 52)) == 2223149);
+ assert(unsigned(zero_extend(0x21ec2e, 52)) == 2223150);
+ assert(unsigned(zero_extend(0x21ec2f, 52)) == 2223151);
+ assert(unsigned(zero_extend(0x21ec30, 52)) == 2223152);
+ assert(unsigned(zero_extend(0x21ec31, 52)) == 2223153);
+ assert(unsigned(zero_extend(0x21ec32, 52)) == 2223154);
+ assert(unsigned(zero_extend(0x21ec33, 52)) == 2223155);
+ assert(unsigned(zero_extend(0x21ec34, 52)) == 2223156);
+ assert(unsigned(zero_extend(0x21ec35, 52)) == 2223157);
+ assert(unsigned(zero_extend(0x21ec36, 52)) == 2223158);
+ assert(unsigned(zero_extend(0x21ec37, 52)) == 2223159);
+ assert(unsigned(zero_extend(0x21ec38, 52)) == 2223160);
+ assert(unsigned(zero_extend(0x21ec39, 52)) == 2223161);
+ assert(unsigned(zero_extend(0x21ec3a, 52)) == 2223162);
+ assert(unsigned(zero_extend(0x21ec48, 52)) == 2223176);
+ assert(unsigned(zero_extend(0x21ec7c, 52)) == 2223228);
+ assert(unsigned(zero_extend(0x21ec7d, 52)) == 2223229);
+ assert(unsigned(zero_extend(0x21ec7e, 52)) == 2223230);
+ assert(unsigned(zero_extend(0x21ec7f, 52)) == 2223231);
+ assert(unsigned(zero_extend(0x21ec80, 52)) == 2223232);
+ assert(unsigned(zero_extend(0x21ec81, 52)) == 2223233);
+ assert(unsigned(zero_extend(0x21ec82, 52)) == 2223234);
+ assert(unsigned(zero_extend(0x21ec83, 52)) == 2223235);
+ assert(unsigned(zero_extend(0x21ec84, 52)) == 2223236);
+ assert(unsigned(zero_extend(0x21ec85, 52)) == 2223237);
+ assert(unsigned(zero_extend(0x21ec86, 52)) == 2223238);
+ assert(unsigned(zero_extend(0x21ec87, 52)) == 2223239);
+ assert(unsigned(zero_extend(0x21ec88, 52)) == 2223240);
+ assert(unsigned(zero_extend(0x21ec89, 52)) == 2223241);
+ assert(unsigned(zero_extend(0x21ec8a, 52)) == 2223242);
+ assert(unsigned(zero_extend(0x21ec8b, 52)) == 2223243);
+ assert(unsigned(zero_extend(0x21ec8c, 52)) == 2223244);
+ assert(unsigned(zero_extend(0x21ec8d, 52)) == 2223245);
+ assert(unsigned(zero_extend(0x21ec8e, 52)) == 2223246);
+ assert(unsigned(zero_extend(0x21ec8f, 52)) == 2223247);
+ assert(unsigned(zero_extend(0x21ec90, 52)) == 2223248);
+ assert(unsigned(zero_extend(0x21ec91, 52)) == 2223249);
+ assert(unsigned(zero_extend(0x21ec92, 52)) == 2223250);
+ assert(unsigned(zero_extend(0x21f138, 52)) == 2224440);
+ assert(unsigned(zero_extend(0x21f13c, 52)) == 2224444);
+ assert(unsigned(zero_extend(0x21f140, 52)) == 2224448);
+ assert(unsigned(zero_extend(0x21f144, 52)) == 2224452);
+ assert(unsigned(zero_extend(0x21f148, 52)) == 2224456);
+ assert(unsigned(zero_extend(0x21f14c, 52)) == 2224460);
+ assert(unsigned(zero_extend(0x21f150, 52)) == 2224464);
+ assert(unsigned(zero_extend(0x21f154, 52)) == 2224468);
+ assert(unsigned(zero_extend(0x21f158, 52)) == 2224472);
+ assert(unsigned(zero_extend(0x21f15c, 52)) == 2224476);
+ assert(unsigned(zero_extend(0x21f160, 52)) == 2224480);
+ assert(unsigned(zero_extend(0x21f190, 52)) == 2224528);
+ assert(unsigned(zero_extend(0x21f194, 52)) == 2224532);
+ assert(unsigned(zero_extend(0x21f198, 52)) == 2224536);
+ assert(unsigned(zero_extend(0x21f19c, 52)) == 2224540);
+ assert(unsigned(zero_extend(0x21f1a0, 52)) == 2224544);
+ assert(unsigned(zero_extend(0x21f1a4, 52)) == 2224548);
+ assert(unsigned(zero_extend(0x21f1a8, 52)) == 2224552);
+ assert(unsigned(zero_extend(0x21f1ac, 52)) == 2224556);
+ assert(unsigned(zero_extend(0x21f1b0, 52)) == 2224560);
+ assert(unsigned(zero_extend(0x21f1b4, 52)) == 2224564);
+ assert(unsigned(zero_extend(0x21f1b8, 52)) == 2224568);
+ assert(unsigned(zero_extend(0x21f2d0, 52)) == 2224848);
+ assert(unsigned(zero_extend(0x21f2d4, 52)) == 2224852);
+ assert(unsigned(zero_extend(0x21f2d8, 52)) == 2224856);
+ assert(unsigned(zero_extend(0x21f2dc, 52)) == 2224860);
+ assert(unsigned(zero_extend(0x21f2e0, 52)) == 2224864);
+ assert(unsigned(zero_extend(0x21f2e4, 52)) == 2224868);
+ assert(unsigned(zero_extend(0x21f2e8, 52)) == 2224872);
+ assert(unsigned(zero_extend(0x21f2ec, 52)) == 2224876);
+ assert(unsigned(zero_extend(0x21f2f0, 52)) == 2224880);
+ assert(unsigned(zero_extend(0x21f2f4, 52)) == 2224884);
+ assert(unsigned(zero_extend(0x21f2f8, 52)) == 2224888);
+ assert(unsigned(zero_extend(0x21f2fc, 52)) == 2224892);
+ assert(unsigned(zero_extend(0x21f300, 52)) == 2224896);
+ assert(unsigned(zero_extend(0x21f304, 52)) == 2224900);
+ assert(unsigned(zero_extend(0x21f308, 52)) == 2224904);
+ assert(unsigned(zero_extend(0x21f310, 52)) == 2224912);
+ assert(unsigned(zero_extend(0x21f328, 52)) == 2224936);
+ assert(unsigned(zero_extend(0x21f32c, 52)) == 2224940);
+ assert(unsigned(zero_extend(0x21f330, 52)) == 2224944);
+ assert(unsigned(zero_extend(0x21f334, 52)) == 2224948);
+ assert(unsigned(zero_extend(0x21f338, 52)) == 2224952);
+ assert(unsigned(zero_extend(0x21f33c, 52)) == 2224956);
+ assert(unsigned(zero_extend(0x21f340, 52)) == 2224960);
+ assert(unsigned(zero_extend(0x21f344, 52)) == 2224964);
+ assert(unsigned(zero_extend(0x21f348, 52)) == 2224968);
+ assert(unsigned(zero_extend(0x21f34c, 52)) == 2224972);
+ assert(unsigned(zero_extend(0x21f350, 52)) == 2224976);
+ assert(unsigned(zero_extend(0x21f354, 52)) == 2224980);
+ assert(unsigned(zero_extend(0x21f358, 52)) == 2224984);
+ assert(unsigned(zero_extend(0x21f35c, 52)) == 2224988);
+ assert(unsigned(zero_extend(0x21f360, 52)) == 2224992);
+ assert(unsigned(zero_extend(0x21f368, 52)) == 2225000);
+ assert(unsigned(zero_extend(0x21f558, 52)) == 2225496);
+ assert(unsigned(zero_extend(0x21f55c, 52)) == 2225500);
+ assert(unsigned(zero_extend(0x21f560, 52)) == 2225504);
+ assert(unsigned(zero_extend(0x21f564, 52)) == 2225508);
+ assert(unsigned(zero_extend(0x21f568, 52)) == 2225512);
+ assert(unsigned(zero_extend(0x21f5a0, 52)) == 2225568);
+ assert(unsigned(zero_extend(0x21f5a8, 52)) == 2225576);
+ assert(unsigned(zero_extend(0x21f5b0, 52)) == 2225584);
+ assert(unsigned(zero_extend(0x21f5b4, 52)) == 2225588);
+ assert(unsigned(zero_extend(0x21f5b8, 52)) == 2225592);
+ assert(unsigned(zero_extend(0x21f5bc, 52)) == 2225596);
+ assert(unsigned(zero_extend(0x21f5c0, 52)) == 2225600);
+ assert(unsigned(zero_extend(0x21f5f8, 52)) == 2225656);
+ assert(unsigned(zero_extend(0x21f600, 52)) == 2225664);
+ assert(unsigned(zero_extend(0x221468, 52)) == 2233448);
+ assert(unsigned(zero_extend(0x22146c, 52)) == 2233452);
+ assert(unsigned(zero_extend(0x221470, 52)) == 2233456);
+ assert(unsigned(zero_extend(0x221474, 52)) == 2233460);
+ assert(unsigned(zero_extend(0x221478, 52)) == 2233464);
+ assert(unsigned(zero_extend(0x22147c, 52)) == 2233468);
+ assert(unsigned(zero_extend(0x221480, 52)) == 2233472);
+ assert(unsigned(zero_extend(0x221484, 52)) == 2233476);
+ assert(unsigned(zero_extend(0x221488, 52)) == 2233480);
+ assert(unsigned(zero_extend(0x22148c, 52)) == 2233484);
+ assert(unsigned(zero_extend(0x221490, 52)) == 2233488);
+ assert(unsigned(zero_extend(0x221494, 52)) == 2233492);
+ assert(unsigned(zero_extend(0x221498, 52)) == 2233496);
+ assert(unsigned(zero_extend(0x22149c, 52)) == 2233500);
+ assert(unsigned(zero_extend(0x2214a0, 52)) == 2233504);
+ assert(unsigned(zero_extend(0x2214a4, 52)) == 2233508);
+ assert(unsigned(zero_extend(0x2214a8, 52)) == 2233512);
+ assert(unsigned(zero_extend(0x2214ac, 52)) == 2233516);
+ assert(unsigned(zero_extend(0x2214b0, 52)) == 2233520);
+ assert(unsigned(zero_extend(0x2214b4, 52)) == 2233524);
+ assert(unsigned(zero_extend(0x2214b8, 52)) == 2233528);
+ assert(unsigned(zero_extend(0x2214bc, 52)) == 2233532);
+ assert(unsigned(zero_extend(0x2214c0, 52)) == 2233536);
+ assert(unsigned(zero_extend(0x2214c4, 52)) == 2233540);
+ assert(unsigned(zero_extend(0x2214c8, 52)) == 2233544);
+ assert(unsigned(zero_extend(0x2214cc, 52)) == 2233548);
+ assert(unsigned(zero_extend(0x2214d0, 52)) == 2233552);
+ assert(unsigned(zero_extend(0x2214d4, 52)) == 2233556);
+ assert(unsigned(zero_extend(0x2214d8, 52)) == 2233560);
+ assert(unsigned(zero_extend(0x2214dc, 52)) == 2233564);
+ assert(unsigned(zero_extend(0x2214e0, 52)) == 2233568);
+ assert(unsigned(zero_extend(0x2214e4, 52)) == 2233572);
+ assert(unsigned(zero_extend(0x2214e8, 52)) == 2233576);
+ assert(unsigned(zero_extend(0x2214ec, 52)) == 2233580);
+ assert(unsigned(zero_extend(0x2214f0, 52)) == 2233584);
+ assert(unsigned(zero_extend(0x2214f4, 52)) == 2233588);
+ assert(unsigned(zero_extend(0x2214f8, 52)) == 2233592);
+ assert(unsigned(zero_extend(0x2214fc, 52)) == 2233596);
+ assert(unsigned(zero_extend(0x221500, 52)) == 2233600);
+ assert(unsigned(zero_extend(0x221504, 52)) == 2233604);
+ assert(unsigned(zero_extend(0x221508, 52)) == 2233608);
+ assert(unsigned(zero_extend(0x22150c, 52)) == 2233612);
+ assert(unsigned(zero_extend(0x221510, 52)) == 2233616);
+ assert(unsigned(zero_extend(0x221514, 52)) == 2233620);
+ assert(unsigned(zero_extend(0x221518, 52)) == 2233624);
+ assert(unsigned(zero_extend(0x22151c, 52)) == 2233628);
+ assert(unsigned(zero_extend(0x221520, 52)) == 2233632);
+ assert(unsigned(zero_extend(0x221524, 52)) == 2233636);
+ assert(unsigned(zero_extend(0x221528, 52)) == 2233640);
+ assert(unsigned(zero_extend(0x22152c, 52)) == 2233644);
+ assert(unsigned(zero_extend(0x221530, 52)) == 2233648);
+ assert(unsigned(zero_extend(0x221534, 52)) == 2233652);
+ assert(unsigned(zero_extend(0x221538, 52)) == 2233656);
+ assert(unsigned(zero_extend(0x22153c, 52)) == 2233660);
+ assert(unsigned(zero_extend(0x221540, 52)) == 2233664);
+ assert(unsigned(zero_extend(0x221544, 52)) == 2233668);
+ assert(unsigned(zero_extend(0x221548, 52)) == 2233672);
+ assert(unsigned(zero_extend(0x221568, 52)) == 2233704);
+ assert(unsigned(zero_extend(0x22156c, 52)) == 2233708);
+ assert(unsigned(zero_extend(0x221570, 52)) == 2233712);
+ assert(unsigned(zero_extend(0x221574, 52)) == 2233716);
+ assert(unsigned(zero_extend(0x221578, 52)) == 2233720);
+ assert(unsigned(zero_extend(0x22157c, 52)) == 2233724);
+ assert(unsigned(zero_extend(0x221580, 52)) == 2233728);
+ assert(unsigned(zero_extend(0x221584, 52)) == 2233732);
+ assert(unsigned(zero_extend(0x221588, 52)) == 2233736);
+ assert(unsigned(zero_extend(0x22158c, 52)) == 2233740);
+ assert(unsigned(zero_extend(0x221590, 52)) == 2233744);
+ assert(unsigned(zero_extend(0x221594, 52)) == 2233748);
+ assert(unsigned(zero_extend(0x221598, 52)) == 2233752);
+ assert(unsigned(zero_extend(0x22159c, 52)) == 2233756);
+ assert(unsigned(zero_extend(0x2215a0, 52)) == 2233760);
+ assert(unsigned(zero_extend(0x2215a4, 52)) == 2233764);
+ assert(unsigned(zero_extend(0x2215c0, 52)) == 2233792);
+ assert(unsigned(zero_extend(0x2215c4, 52)) == 2233796);
+ assert(unsigned(zero_extend(0x2215c8, 52)) == 2233800);
+ assert(unsigned(zero_extend(0x2215cc, 52)) == 2233804);
+ assert(unsigned(zero_extend(0x2215d0, 52)) == 2233808);
+ assert(unsigned(zero_extend(0x2215d4, 52)) == 2233812);
+ assert(unsigned(zero_extend(0x2215d8, 52)) == 2233816);
+ assert(unsigned(zero_extend(0x2215dc, 52)) == 2233820);
+ assert(unsigned(zero_extend(0x2215e0, 52)) == 2233824);
+ assert(unsigned(zero_extend(0x2215e4, 52)) == 2233828);
+ assert(unsigned(zero_extend(0x2215e8, 52)) == 2233832);
+ assert(unsigned(zero_extend(0x2215ec, 52)) == 2233836);
+ assert(unsigned(zero_extend(0x2215f0, 52)) == 2233840);
+ assert(unsigned(zero_extend(0x2215f4, 52)) == 2233844);
+ assert(unsigned(zero_extend(0x2215f8, 52)) == 2233848);
+ assert(unsigned(zero_extend(0x2215fc, 52)) == 2233852);
+ assert(unsigned(zero_extend(0x221680, 52)) == 2233984);
+ assert(unsigned(zero_extend(0x221684, 52)) == 2233988);
+ assert(unsigned(zero_extend(0x221688, 52)) == 2233992);
+ assert(unsigned(zero_extend(0x22168c, 52)) == 2233996);
+ assert(unsigned(zero_extend(0x221690, 52)) == 2234000);
+ assert(unsigned(zero_extend(0x221694, 52)) == 2234004);
+ assert(unsigned(zero_extend(0x221698, 52)) == 2234008);
+ assert(unsigned(zero_extend(0x22169c, 52)) == 2234012);
+ assert(unsigned(zero_extend(0x2216a0, 52)) == 2234016);
+ assert(unsigned(zero_extend(0x2216a4, 52)) == 2234020);
+ assert(unsigned(zero_extend(0x2216a8, 52)) == 2234024);
+ assert(unsigned(zero_extend(0x2216ac, 52)) == 2234028);
+ assert(unsigned(zero_extend(0x2216b0, 52)) == 2234032);
+ assert(unsigned(zero_extend(0x2216b4, 52)) == 2234036);
+ assert(unsigned(zero_extend(0x2216b8, 52)) == 2234040);
+ assert(unsigned(zero_extend(0x2216d8, 52)) == 2234072);
+ assert(unsigned(zero_extend(0x2216dc, 52)) == 2234076);
+ assert(unsigned(zero_extend(0x2216e0, 52)) == 2234080);
+ assert(unsigned(zero_extend(0x2216e4, 52)) == 2234084);
+ assert(unsigned(zero_extend(0x2216e8, 52)) == 2234088);
+ assert(unsigned(zero_extend(0x2216ec, 52)) == 2234092);
+ assert(unsigned(zero_extend(0x2216f0, 52)) == 2234096);
+ assert(unsigned(zero_extend(0x2216f4, 52)) == 2234100);
+ assert(unsigned(zero_extend(0x2216f8, 52)) == 2234104);
+ assert(unsigned(zero_extend(0x2216fc, 52)) == 2234108);
+ assert(unsigned(zero_extend(0x221700, 52)) == 2234112);
+ assert(unsigned(zero_extend(0x221704, 52)) == 2234116);
+ assert(unsigned(zero_extend(0x221708, 52)) == 2234120);
+ assert(unsigned(zero_extend(0x22170c, 52)) == 2234124);
+ assert(unsigned(zero_extend(0x221710, 52)) == 2234128);
+ assert(unsigned(zero_extend(0x221714, 52)) == 2234132);
+ assert(unsigned(zero_extend(0x221718, 52)) == 2234136);
+ assert(unsigned(zero_extend(0x221720, 52)) == 2234144);
+ assert(unsigned(zero_extend(0x22174c, 52)) == 2234188);
+ assert(unsigned(zero_extend(0x221750, 52)) == 2234192);
+ assert(unsigned(zero_extend(0x221751, 52)) == 2234193);
+ assert(unsigned(zero_extend(0x221752, 52)) == 2234194);
+ assert(unsigned(zero_extend(0x221753, 52)) == 2234195);
+ assert(unsigned(zero_extend(0x221754, 52)) == 2234196);
+ assert(unsigned(zero_extend(0x221755, 52)) == 2234197);
+ assert(unsigned(zero_extend(0x221756, 52)) == 2234198);
+ assert(unsigned(zero_extend(0x221757, 52)) == 2234199);
+ assert(unsigned(zero_extend(0x221758, 52)) == 2234200);
+ assert(unsigned(zero_extend(0x221759, 52)) == 2234201);
+ assert(unsigned(zero_extend(0x22175a, 52)) == 2234202);
+ assert(unsigned(zero_extend(0x22175b, 52)) == 2234203);
+ assert(unsigned(zero_extend(0x22175c, 52)) == 2234204);
+ assert(unsigned(zero_extend(0x22175d, 52)) == 2234205);
+ assert(unsigned(zero_extend(0x22175e, 52)) == 2234206);
+ assert(unsigned(zero_extend(0x22175f, 52)) == 2234207);
+ assert(unsigned(zero_extend(0x221760, 52)) == 2234208);
+ assert(unsigned(zero_extend(0x221761, 52)) == 2234209);
+ assert(unsigned(zero_extend(0x221764, 52)) == 2234212);
+ assert(unsigned(zero_extend(0x221765, 52)) == 2234213);
+ assert(unsigned(zero_extend(0x221766, 52)) == 2234214);
+ assert(unsigned(zero_extend(0x221767, 52)) == 2234215);
+ assert(unsigned(zero_extend(0x221768, 52)) == 2234216);
+ assert(unsigned(zero_extend(0x221769, 52)) == 2234217);
+ assert(unsigned(zero_extend(0x22176a, 52)) == 2234218);
+ assert(unsigned(zero_extend(0x22176c, 52)) == 2234220);
+ assert(unsigned(zero_extend(0x221770, 52)) == 2234224);
+ assert(unsigned(zero_extend(0x221778, 52)) == 2234232);
+ assert(unsigned(zero_extend(0x2217a8, 52)) == 2234280);
+ assert(unsigned(zero_extend(0x2217a9, 52)) == 2234281);
+ assert(unsigned(zero_extend(0x2217aa, 52)) == 2234282);
+ assert(unsigned(zero_extend(0x2217ab, 52)) == 2234283);
+ assert(unsigned(zero_extend(0x2217ac, 52)) == 2234284);
+ assert(unsigned(zero_extend(0x2217ad, 52)) == 2234285);
+ assert(unsigned(zero_extend(0x2217ae, 52)) == 2234286);
+ assert(unsigned(zero_extend(0x2217af, 52)) == 2234287);
+ assert(unsigned(zero_extend(0x2217b0, 52)) == 2234288);
+ assert(unsigned(zero_extend(0x2217b1, 52)) == 2234289);
+ assert(unsigned(zero_extend(0x2217b2, 52)) == 2234290);
+ assert(unsigned(zero_extend(0x2217b3, 52)) == 2234291);
+ assert(unsigned(zero_extend(0x2217b4, 52)) == 2234292);
+ assert(unsigned(zero_extend(0x2217b5, 52)) == 2234293);
+ assert(unsigned(zero_extend(0x2217b6, 52)) == 2234294);
+ assert(unsigned(zero_extend(0x2217b7, 52)) == 2234295);
+ assert(unsigned(zero_extend(0x2217b8, 52)) == 2234296);
+ assert(unsigned(zero_extend(0x2217b9, 52)) == 2234297);
+ assert(unsigned(zero_extend(0x2217bc, 52)) == 2234300);
+ assert(unsigned(zero_extend(0x2217bd, 52)) == 2234301);
+ assert(unsigned(zero_extend(0x2217be, 52)) == 2234302);
+ assert(unsigned(zero_extend(0x2217bf, 52)) == 2234303);
+ assert(unsigned(zero_extend(0x2217c0, 52)) == 2234304);
+ assert(unsigned(zero_extend(0x2217c1, 52)) == 2234305);
+ assert(unsigned(zero_extend(0x2217c2, 52)) == 2234306);
+ assert(unsigned(zero_extend(0x221820, 52)) == 2234400);
+ assert(unsigned(zero_extend(0x221824, 52)) == 2234404);
+ assert(unsigned(zero_extend(0x221828, 52)) == 2234408);
+ assert(unsigned(zero_extend(0x22182c, 52)) == 2234412);
+ assert(unsigned(zero_extend(0x221830, 52)) == 2234416);
+ assert(unsigned(zero_extend(0x221834, 52)) == 2234420);
+ assert(unsigned(zero_extend(0x221838, 52)) == 2234424);
+ assert(unsigned(zero_extend(0x22183c, 52)) == 2234428);
+ assert(unsigned(zero_extend(0x221840, 52)) == 2234432);
+ assert(unsigned(zero_extend(0x221844, 52)) == 2234436);
+ assert(unsigned(zero_extend(0x221848, 52)) == 2234440);
+ assert(unsigned(zero_extend(0x22184c, 52)) == 2234444);
+ assert(unsigned(zero_extend(0x221850, 52)) == 2234448);
+ assert(unsigned(zero_extend(0x221854, 52)) == 2234452);
+ assert(unsigned(zero_extend(0x221858, 52)) == 2234456);
+ assert(unsigned(zero_extend(0x22185c, 52)) == 2234460);
+ assert(unsigned(zero_extend(0x221860, 52)) == 2234464);
+ assert(unsigned(zero_extend(0x221864, 52)) == 2234468);
+ assert(unsigned(zero_extend(0x221868, 52)) == 2234472);
+ assert(unsigned(zero_extend(0x22186c, 52)) == 2234476);
+ assert(unsigned(zero_extend(0x221870, 52)) == 2234480);
+ assert(unsigned(zero_extend(0x221874, 52)) == 2234484);
+ assert(unsigned(zero_extend(0x221878, 52)) == 2234488);
+ assert(unsigned(zero_extend(0x22187c, 52)) == 2234492);
+ assert(unsigned(zero_extend(0x221880, 52)) == 2234496);
+ assert(unsigned(zero_extend(0x221884, 52)) == 2234500);
+ assert(unsigned(zero_extend(0x221888, 52)) == 2234504);
+ assert(unsigned(zero_extend(0x22188c, 52)) == 2234508);
+ assert(unsigned(zero_extend(0x221890, 52)) == 2234512);
+ assert(unsigned(zero_extend(0x221894, 52)) == 2234516);
+ assert(unsigned(zero_extend(0x221898, 52)) == 2234520);
+ assert(unsigned(zero_extend(0x22189c, 52)) == 2234524);
+ assert(unsigned(zero_extend(0x2218a0, 52)) == 2234528);
+ assert(unsigned(zero_extend(0x2218a4, 52)) == 2234532);
+ assert(unsigned(zero_extend(0x2218a8, 52)) == 2234536);
+ assert(unsigned(zero_extend(0x2218ac, 52)) == 2234540);
+ assert(unsigned(zero_extend(0x2218b0, 52)) == 2234544);
+ assert(unsigned(zero_extend(0x2218b4, 52)) == 2234548);
+ assert(unsigned(zero_extend(0x2218b8, 52)) == 2234552);
+ assert(unsigned(zero_extend(0x2218bc, 52)) == 2234556);
+ assert(unsigned(zero_extend(0x2218c0, 52)) == 2234560);
+ assert(unsigned(zero_extend(0x2218c4, 52)) == 2234564);
+ assert(unsigned(zero_extend(0x2218c8, 52)) == 2234568);
+ assert(unsigned(zero_extend(0x2218cc, 52)) == 2234572);
+ assert(unsigned(zero_extend(0x2218d0, 52)) == 2234576);
+ assert(unsigned(zero_extend(0x2218d4, 52)) == 2234580);
+ assert(unsigned(zero_extend(0x2218d8, 52)) == 2234584);
+ assert(unsigned(zero_extend(0x2218dc, 52)) == 2234588);
+ assert(unsigned(zero_extend(0x2218e0, 52)) == 2234592);
+ assert(unsigned(zero_extend(0x2218e4, 52)) == 2234596);
+ assert(unsigned(zero_extend(0x2218e8, 52)) == 2234600);
+ assert(unsigned(zero_extend(0x2218ec, 52)) == 2234604);
+ assert(unsigned(zero_extend(0x2218f0, 52)) == 2234608);
+ assert(unsigned(zero_extend(0x2218f4, 52)) == 2234612);
+ assert(unsigned(zero_extend(0x2218f8, 52)) == 2234616);
+ assert(unsigned(zero_extend(0x2218fc, 52)) == 2234620);
+ assert(unsigned(zero_extend(0x221900, 52)) == 2234624);
+ assert(unsigned(zero_extend(0x221904, 52)) == 2234628);
+ assert(unsigned(zero_extend(0x221908, 52)) == 2234632);
+ assert(unsigned(zero_extend(0x22190c, 52)) == 2234636);
+ assert(unsigned(zero_extend(0x221910, 52)) == 2234640);
+ assert(unsigned(zero_extend(0x221914, 52)) == 2234644);
+ assert(unsigned(zero_extend(0x221918, 52)) == 2234648);
+ assert(unsigned(zero_extend(0x22191c, 52)) == 2234652);
+ assert(unsigned(zero_extend(0x221920, 52)) == 2234656);
+ assert(unsigned(zero_extend(0x221924, 52)) == 2234660);
+ assert(unsigned(zero_extend(0x221928, 52)) == 2234664);
+ assert(unsigned(zero_extend(0x22192c, 52)) == 2234668);
+ assert(unsigned(zero_extend(0x221930, 52)) == 2234672);
+ assert(unsigned(zero_extend(0x221934, 52)) == 2234676);
+ assert(unsigned(zero_extend(0x221938, 52)) == 2234680);
+ assert(unsigned(zero_extend(0x22193c, 52)) == 2234684);
+ assert(unsigned(zero_extend(0x221940, 52)) == 2234688);
+ assert(unsigned(zero_extend(0x221944, 52)) == 2234692);
+ assert(unsigned(zero_extend(0x221948, 52)) == 2234696);
+ assert(unsigned(zero_extend(0x22194c, 52)) == 2234700);
+ assert(unsigned(zero_extend(0x221950, 52)) == 2234704);
+ assert(unsigned(zero_extend(0x221954, 52)) == 2234708);
+ assert(unsigned(zero_extend(0x221958, 52)) == 2234712);
+ assert(unsigned(zero_extend(0x22195c, 52)) == 2234716);
+ assert(unsigned(zero_extend(0x221960, 52)) == 2234720);
+ assert(unsigned(zero_extend(0x221964, 52)) == 2234724);
+ assert(unsigned(zero_extend(0x221968, 52)) == 2234728);
+ assert(unsigned(zero_extend(0x22196c, 52)) == 2234732);
+ assert(unsigned(zero_extend(0x22196d, 52)) == 2234733);
+ assert(unsigned(zero_extend(0x22196e, 52)) == 2234734);
+ assert(unsigned(zero_extend(0x22196f, 52)) == 2234735);
+ assert(unsigned(zero_extend(0x221970, 52)) == 2234736);
+ assert(unsigned(zero_extend(0x221971, 52)) == 2234737);
+ assert(unsigned(zero_extend(0x221972, 52)) == 2234738);
+ assert(unsigned(zero_extend(0x221973, 52)) == 2234739);
+ assert(unsigned(zero_extend(0x221974, 52)) == 2234740);
+ assert(unsigned(zero_extend(0x221975, 52)) == 2234741);
+ assert(unsigned(zero_extend(0x221976, 52)) == 2234742);
+ assert(unsigned(zero_extend(0x221977, 52)) == 2234743);
+ assert(unsigned(zero_extend(0x221978, 52)) == 2234744);
+ assert(unsigned(zero_extend(0x221979, 52)) == 2234745);
+ assert(unsigned(zero_extend(0x22197a, 52)) == 2234746);
+ assert(unsigned(zero_extend(0x22197b, 52)) == 2234747);
+ assert(unsigned(zero_extend(0x22197c, 52)) == 2234748);
+ assert(unsigned(zero_extend(0x22197d, 52)) == 2234749);
+ assert(unsigned(zero_extend(0x22197e, 52)) == 2234750);
+ assert(unsigned(zero_extend(0x22197f, 52)) == 2234751);
+ assert(unsigned(zero_extend(0x221980, 52)) == 2234752);
+ assert(unsigned(zero_extend(0x221981, 52)) == 2234753);
+ assert(unsigned(zero_extend(0x221982, 52)) == 2234754);
+ assert(unsigned(zero_extend(0x221983, 52)) == 2234755);
+ assert(unsigned(zero_extend(0x221984, 52)) == 2234756);
+ assert(unsigned(zero_extend(0x221988, 52)) == 2234760);
+ assert(unsigned(zero_extend(0x22198c, 52)) == 2234764);
+ assert(unsigned(zero_extend(0x221990, 52)) == 2234768);
+ assert(unsigned(zero_extend(0x221994, 52)) == 2234772);
+ assert(unsigned(zero_extend(0x221998, 52)) == 2234776);
+ assert(unsigned(zero_extend(0x22199c, 52)) == 2234780);
+ assert(unsigned(zero_extend(0x2219a0, 52)) == 2234784);
+ assert(unsigned(zero_extend(0x2219a4, 52)) == 2234788);
+ assert(unsigned(zero_extend(0x2219a8, 52)) == 2234792);
+ assert(unsigned(zero_extend(0x2219ac, 52)) == 2234796);
+ assert(unsigned(zero_extend(0x2219b0, 52)) == 2234800);
+ assert(unsigned(zero_extend(0x2219b4, 52)) == 2234804);
+ assert(unsigned(zero_extend(0x2219b8, 52)) == 2234808);
+ assert(unsigned(zero_extend(0x2219bc, 52)) == 2234812);
+ assert(unsigned(zero_extend(0x2219c0, 52)) == 2234816);
+ assert(unsigned(zero_extend(0x2219c4, 52)) == 2234820);
+ assert(unsigned(zero_extend(0x2219c5, 52)) == 2234821);
+ assert(unsigned(zero_extend(0x2219c6, 52)) == 2234822);
+ assert(unsigned(zero_extend(0x2219c7, 52)) == 2234823);
+ assert(unsigned(zero_extend(0x2219c8, 52)) == 2234824);
+ assert(unsigned(zero_extend(0x2219c9, 52)) == 2234825);
+ assert(unsigned(zero_extend(0x2219ca, 52)) == 2234826);
+ assert(unsigned(zero_extend(0x2219cb, 52)) == 2234827);
+ assert(unsigned(zero_extend(0x2219cc, 52)) == 2234828);
+ assert(unsigned(zero_extend(0x2219cd, 52)) == 2234829);
+ assert(unsigned(zero_extend(0x2219ce, 52)) == 2234830);
+ assert(unsigned(zero_extend(0x2219cf, 52)) == 2234831);
+ assert(unsigned(zero_extend(0x2219d0, 52)) == 2234832);
+ assert(unsigned(zero_extend(0x2219d1, 52)) == 2234833);
+ assert(unsigned(zero_extend(0x2219d2, 52)) == 2234834);
+ assert(unsigned(zero_extend(0x2219d3, 52)) == 2234835);
+ assert(unsigned(zero_extend(0x2219d4, 52)) == 2234836);
+ assert(unsigned(zero_extend(0x2219d5, 52)) == 2234837);
+ assert(unsigned(zero_extend(0x2219d6, 52)) == 2234838);
+ assert(unsigned(zero_extend(0x2219d7, 52)) == 2234839);
+ assert(unsigned(zero_extend(0x2219d8, 52)) == 2234840);
+ assert(unsigned(zero_extend(0x2219d9, 52)) == 2234841);
+ assert(unsigned(zero_extend(0x2219da, 52)) == 2234842);
+ assert(unsigned(zero_extend(0x2219db, 52)) == 2234843);
+ assert(unsigned(zero_extend(0x2219dc, 52)) == 2234844);
+ assert(unsigned(zero_extend(0x2219e0, 52)) == 2234848);
+ assert(unsigned(zero_extend(0x2219e4, 52)) == 2234852);
+ assert(unsigned(zero_extend(0x2219e8, 52)) == 2234856);
+ assert(unsigned(zero_extend(0x2219ec, 52)) == 2234860);
+ assert(unsigned(zero_extend(0x2219f0, 52)) == 2234864);
+ assert(unsigned(zero_extend(0x2219f4, 52)) == 2234868);
+ assert(unsigned(zero_extend(0x2219f8, 52)) == 2234872);
+ assert(unsigned(zero_extend(0x2219fc, 52)) == 2234876);
+ assert(unsigned(zero_extend(0x221a00, 52)) == 2234880);
+ assert(unsigned(zero_extend(0x221a04, 52)) == 2234884);
+ assert(unsigned(zero_extend(0x221a08, 52)) == 2234888);
+ assert(unsigned(zero_extend(0x221a0c, 52)) == 2234892);
+ assert(unsigned(zero_extend(0x221a10, 52)) == 2234896);
+ assert(unsigned(zero_extend(0x221a14, 52)) == 2234900);
+ assert(unsigned(zero_extend(0x221a18, 52)) == 2234904);
+ assert(unsigned(zero_extend(0x221a1c, 52)) == 2234908);
+ assert(unsigned(zero_extend(0x221a20, 52)) == 2234912);
+ assert(unsigned(zero_extend(0x221a24, 52)) == 2234916);
+ assert(unsigned(zero_extend(0x221a28, 52)) == 2234920);
+ assert(unsigned(zero_extend(0x221a2c, 52)) == 2234924);
+ assert(unsigned(zero_extend(0x221a30, 52)) == 2234928);
+ assert(unsigned(zero_extend(0x221a34, 52)) == 2234932);
+ assert(unsigned(zero_extend(0x221a38, 52)) == 2234936);
+ assert(unsigned(zero_extend(0x221a3c, 52)) == 2234940);
+ assert(unsigned(zero_extend(0x221a40, 52)) == 2234944);
+ assert(unsigned(zero_extend(0x221a44, 52)) == 2234948);
+ assert(unsigned(zero_extend(0x221a48, 52)) == 2234952);
+ assert(unsigned(zero_extend(0x221a4c, 52)) == 2234956);
+ assert(unsigned(zero_extend(0x221a50, 52)) == 2234960);
+ assert(unsigned(zero_extend(0x221a54, 52)) == 2234964);
+ assert(unsigned(zero_extend(0x221a58, 52)) == 2234968);
+ assert(unsigned(zero_extend(0x221a5c, 52)) == 2234972);
+ assert(unsigned(zero_extend(0x221a60, 52)) == 2234976);
+ assert(unsigned(zero_extend(0x221a64, 52)) == 2234980);
+ assert(unsigned(zero_extend(0x221a68, 52)) == 2234984);
+ assert(unsigned(zero_extend(0x221a6c, 52)) == 2234988);
+ assert(unsigned(zero_extend(0x221a70, 52)) == 2234992);
+ assert(unsigned(zero_extend(0x221a74, 52)) == 2234996);
+ assert(unsigned(zero_extend(0x221a78, 52)) == 2235000);
+ assert(unsigned(zero_extend(0x221a7c, 52)) == 2235004);
+ assert(unsigned(zero_extend(0x221a80, 52)) == 2235008);
+ assert(unsigned(zero_extend(0x221a84, 52)) == 2235012);
+ assert(unsigned(zero_extend(0x221a88, 52)) == 2235016);
+ assert(unsigned(zero_extend(0x221a8c, 52)) == 2235020);
+ assert(unsigned(zero_extend(0x221a90, 52)) == 2235024);
+ assert(unsigned(zero_extend(0x221a91, 52)) == 2235025);
+ assert(unsigned(zero_extend(0x221a92, 52)) == 2235026);
+ assert(unsigned(zero_extend(0x221a93, 52)) == 2235027);
+ assert(unsigned(zero_extend(0x221a94, 52)) == 2235028);
+ assert(unsigned(zero_extend(0x221a95, 52)) == 2235029);
+ assert(unsigned(zero_extend(0x221a96, 52)) == 2235030);
+ assert(unsigned(zero_extend(0x221a97, 52)) == 2235031);
+ assert(unsigned(zero_extend(0x221a98, 52)) == 2235032);
+ assert(unsigned(zero_extend(0x221a99, 52)) == 2235033);
+ assert(unsigned(zero_extend(0x221a9a, 52)) == 2235034);
+ assert(unsigned(zero_extend(0x221a9b, 52)) == 2235035);
+ assert(unsigned(zero_extend(0x221a9c, 52)) == 2235036);
+ assert(unsigned(zero_extend(0x221a9d, 52)) == 2235037);
+ assert(unsigned(zero_extend(0x221a9e, 52)) == 2235038);
+ assert(unsigned(zero_extend(0x221a9f, 52)) == 2235039);
+ assert(unsigned(zero_extend(0x221aa0, 52)) == 2235040);
+ assert(unsigned(zero_extend(0x221aa1, 52)) == 2235041);
+ assert(unsigned(zero_extend(0x221aa2, 52)) == 2235042);
+ assert(unsigned(zero_extend(0x221aa3, 52)) == 2235043);
+ assert(unsigned(zero_extend(0x221aa4, 52)) == 2235044);
+ assert(unsigned(zero_extend(0x221aa5, 52)) == 2235045);
+ assert(unsigned(zero_extend(0x221aa6, 52)) == 2235046);
+ assert(unsigned(zero_extend(0x221aa7, 52)) == 2235047);
+ assert(unsigned(zero_extend(0x221aa8, 52)) == 2235048);
+ assert(unsigned(zero_extend(0x221aa9, 52)) == 2235049);
+ assert(unsigned(zero_extend(0x221aaa, 52)) == 2235050);
+ assert(unsigned(zero_extend(0x221ae0, 52)) == 2235104);
+ assert(unsigned(zero_extend(0x221ae8, 52)) == 2235112);
+ assert(unsigned(zero_extend(0x221ae9, 52)) == 2235113);
+ assert(unsigned(zero_extend(0x221aea, 52)) == 2235114);
+ assert(unsigned(zero_extend(0x221aeb, 52)) == 2235115);
+ assert(unsigned(zero_extend(0x221aec, 52)) == 2235116);
+ assert(unsigned(zero_extend(0x221aed, 52)) == 2235117);
+ assert(unsigned(zero_extend(0x221aee, 52)) == 2235118);
+ assert(unsigned(zero_extend(0x221aef, 52)) == 2235119);
+ assert(unsigned(zero_extend(0x221af0, 52)) == 2235120);
+ assert(unsigned(zero_extend(0x221af1, 52)) == 2235121);
+ assert(unsigned(zero_extend(0x221af2, 52)) == 2235122);
+ assert(unsigned(zero_extend(0x221af3, 52)) == 2235123);
+ assert(unsigned(zero_extend(0x221af4, 52)) == 2235124);
+ assert(unsigned(zero_extend(0x221af5, 52)) == 2235125);
+ assert(unsigned(zero_extend(0x221af6, 52)) == 2235126);
+ assert(unsigned(zero_extend(0x221af7, 52)) == 2235127);
+ assert(unsigned(zero_extend(0x221af8, 52)) == 2235128);
+ assert(unsigned(zero_extend(0x221af9, 52)) == 2235129);
+ assert(unsigned(zero_extend(0x221afa, 52)) == 2235130);
+ assert(unsigned(zero_extend(0x221afb, 52)) == 2235131);
+ assert(unsigned(zero_extend(0x221afc, 52)) == 2235132);
+ assert(unsigned(zero_extend(0x221afd, 52)) == 2235133);
+ assert(unsigned(zero_extend(0x221afe, 52)) == 2235134);
+ assert(unsigned(zero_extend(0x221aff, 52)) == 2235135);
+ assert(unsigned(zero_extend(0x221b00, 52)) == 2235136);
+ assert(unsigned(zero_extend(0x221b01, 52)) == 2235137);
+ assert(unsigned(zero_extend(0x221b02, 52)) == 2235138);
+ assert(unsigned(zero_extend(0x221c08, 52)) == 2235400);
+ assert(unsigned(zero_extend(0x221c0c, 52)) == 2235404);
+ assert(unsigned(zero_extend(0x221c10, 52)) == 2235408);
+ assert(unsigned(zero_extend(0x221c14, 52)) == 2235412);
+ assert(unsigned(zero_extend(0x221c18, 52)) == 2235416);
+ assert(unsigned(zero_extend(0x221c1c, 52)) == 2235420);
+ assert(unsigned(zero_extend(0x221c20, 52)) == 2235424);
+ assert(unsigned(zero_extend(0x221c24, 52)) == 2235428);
+ assert(unsigned(zero_extend(0x221c28, 52)) == 2235432);
+ assert(unsigned(zero_extend(0x221c2c, 52)) == 2235436);
+ assert(unsigned(zero_extend(0x221c30, 52)) == 2235440);
+ assert(unsigned(zero_extend(0x221c34, 52)) == 2235444);
+ assert(unsigned(zero_extend(0x221c38, 52)) == 2235448);
+ assert(unsigned(zero_extend(0x221c3c, 52)) == 2235452);
+ assert(unsigned(zero_extend(0x221c40, 52)) == 2235456);
+ assert(unsigned(zero_extend(0x221c44, 52)) == 2235460);
+ assert(unsigned(zero_extend(0x221c48, 52)) == 2235464);
+ assert(unsigned(zero_extend(0x221c4c, 52)) == 2235468);
+ assert(unsigned(zero_extend(0x221c50, 52)) == 2235472);
+ assert(unsigned(zero_extend(0x221c54, 52)) == 2235476);
+ assert(unsigned(zero_extend(0x221c58, 52)) == 2235480);
+ assert(unsigned(zero_extend(0x221c5c, 52)) == 2235484);
+ assert(unsigned(zero_extend(0x221c60, 52)) == 2235488);
+ assert(unsigned(zero_extend(0x221c64, 52)) == 2235492);
+ assert(unsigned(zero_extend(0x221c68, 52)) == 2235496);
+ assert(unsigned(zero_extend(0x221c6c, 52)) == 2235500);
+ assert(unsigned(zero_extend(0x221c70, 52)) == 2235504);
+ assert(unsigned(zero_extend(0x221c74, 52)) == 2235508);
+ assert(unsigned(zero_extend(0x221c78, 52)) == 2235512);
+ assert(unsigned(zero_extend(0x221c7c, 52)) == 2235516);
+ assert(unsigned(zero_extend(0x221c80, 52)) == 2235520);
+ assert(unsigned(zero_extend(0x221c84, 52)) == 2235524);
+ assert(unsigned(zero_extend(0x221c88, 52)) == 2235528);
+ assert(unsigned(zero_extend(0x221c8c, 52)) == 2235532);
+ assert(unsigned(zero_extend(0x221c90, 52)) == 2235536);
+ assert(unsigned(zero_extend(0x221c94, 52)) == 2235540);
+ assert(unsigned(zero_extend(0x221c98, 52)) == 2235544);
+ assert(unsigned(zero_extend(0x221c9c, 52)) == 2235548);
+ assert(unsigned(zero_extend(0x221ca0, 52)) == 2235552);
+ assert(unsigned(zero_extend(0x221ca4, 52)) == 2235556);
+ assert(unsigned(zero_extend(0x221ca8, 52)) == 2235560);
+ assert(unsigned(zero_extend(0x221cac, 52)) == 2235564);
+ assert(unsigned(zero_extend(0x221cb0, 52)) == 2235568);
+ assert(unsigned(zero_extend(0x221cb4, 52)) == 2235572);
+ assert(unsigned(zero_extend(0x221cb8, 52)) == 2235576);
+ assert(unsigned(zero_extend(0x221cbc, 52)) == 2235580);
+ assert(unsigned(zero_extend(0x221cc0, 52)) == 2235584);
+ assert(unsigned(zero_extend(0x221cc4, 52)) == 2235588);
+ assert(unsigned(zero_extend(0x221cc8, 52)) == 2235592);
+ assert(unsigned(zero_extend(0x221ccc, 52)) == 2235596);
+ assert(unsigned(zero_extend(0x221cd0, 52)) == 2235600);
+ assert(unsigned(zero_extend(0x221cd4, 52)) == 2235604);
+ assert(unsigned(zero_extend(0x221cd8, 52)) == 2235608);
+ assert(unsigned(zero_extend(0x221cdc, 52)) == 2235612);
+ assert(unsigned(zero_extend(0x221ce0, 52)) == 2235616);
+ assert(unsigned(zero_extend(0x221ce4, 52)) == 2235620);
+ assert(unsigned(zero_extend(0x221ce8, 52)) == 2235624);
+ assert(unsigned(zero_extend(0x221cec, 52)) == 2235628);
+ assert(unsigned(zero_extend(0x221cf0, 52)) == 2235632);
+ assert(unsigned(zero_extend(0x221cf4, 52)) == 2235636);
+ assert(unsigned(zero_extend(0x221cf8, 52)) == 2235640);
+ assert(unsigned(zero_extend(0x221cfc, 52)) == 2235644);
+ assert(unsigned(zero_extend(0x221d00, 52)) == 2235648);
+ assert(unsigned(zero_extend(0x221d04, 52)) == 2235652);
+ assert(unsigned(zero_extend(0x221d08, 52)) == 2235656);
+ assert(unsigned(zero_extend(0x221d09, 52)) == 2235657);
+ assert(unsigned(zero_extend(0x221d0a, 52)) == 2235658);
+ assert(unsigned(zero_extend(0x221d0b, 52)) == 2235659);
+ assert(unsigned(zero_extend(0x221d0c, 52)) == 2235660);
+ assert(unsigned(zero_extend(0x221d0d, 52)) == 2235661);
+ assert(unsigned(zero_extend(0x221d0e, 52)) == 2235662);
+ assert(unsigned(zero_extend(0x221d0f, 52)) == 2235663);
+ assert(unsigned(zero_extend(0x221d10, 52)) == 2235664);
+ assert(unsigned(zero_extend(0x221d11, 52)) == 2235665);
+ assert(unsigned(zero_extend(0x221d14, 52)) == 2235668);
+ assert(unsigned(zero_extend(0x221d15, 52)) == 2235669);
+ assert(unsigned(zero_extend(0x221d16, 52)) == 2235670);
+ assert(unsigned(zero_extend(0x221d17, 52)) == 2235671);
+ assert(unsigned(zero_extend(0x221d18, 52)) == 2235672);
+ assert(unsigned(zero_extend(0x221d19, 52)) == 2235673);
+ assert(unsigned(zero_extend(0x221d1a, 52)) == 2235674);
+ assert(unsigned(zero_extend(0x221d1b, 52)) == 2235675);
+ assert(unsigned(zero_extend(0x221d1c, 52)) == 2235676);
+ assert(unsigned(zero_extend(0x221d1d, 52)) == 2235677);
+ assert(unsigned(zero_extend(0x221d1e, 52)) == 2235678);
+ assert(unsigned(zero_extend(0x221d1f, 52)) == 2235679);
+ assert(unsigned(zero_extend(0x221d20, 52)) == 2235680);
+ assert(unsigned(zero_extend(0x221d21, 52)) == 2235681);
+ assert(unsigned(zero_extend(0x221d22, 52)) == 2235682);
+ assert(unsigned(zero_extend(0x221d23, 52)) == 2235683);
+ assert(unsigned(zero_extend(0x221d24, 52)) == 2235684);
+ assert(unsigned(zero_extend(0x221d25, 52)) == 2235685);
+ assert(unsigned(zero_extend(0x221d26, 52)) == 2235686);
+ assert(unsigned(zero_extend(0x221d27, 52)) == 2235687);
+ assert(unsigned(zero_extend(0x221d28, 52)) == 2235688);
+ assert(unsigned(zero_extend(0x221d29, 52)) == 2235689);
+ assert(unsigned(zero_extend(0x221d2a, 52)) == 2235690);
+ assert(unsigned(zero_extend(0x221d2b, 52)) == 2235691);
+ assert(unsigned(zero_extend(0x221d2c, 52)) == 2235692);
+ assert(unsigned(zero_extend(0x221d2d, 52)) == 2235693);
+ assert(unsigned(zero_extend(0x221d30, 52)) == 2235696);
+ assert(unsigned(zero_extend(0x221d31, 52)) == 2235697);
+ assert(unsigned(zero_extend(0x221d32, 52)) == 2235698);
+ assert(unsigned(zero_extend(0x221d33, 52)) == 2235699);
+ assert(unsigned(zero_extend(0x221d34, 52)) == 2235700);
+ assert(unsigned(zero_extend(0x221d35, 52)) == 2235701);
+ assert(unsigned(zero_extend(0x221d36, 52)) == 2235702);
+ assert(unsigned(zero_extend(0x221d37, 52)) == 2235703);
+ assert(unsigned(zero_extend(0x221d38, 52)) == 2235704);
+ assert(unsigned(zero_extend(0x221d39, 52)) == 2235705);
+ assert(unsigned(zero_extend(0x221d3c, 52)) == 2235708);
+ assert(unsigned(zero_extend(0x221d3d, 52)) == 2235709);
+ assert(unsigned(zero_extend(0x221d3e, 52)) == 2235710);
+ assert(unsigned(zero_extend(0x221d3f, 52)) == 2235711);
+ assert(unsigned(zero_extend(0x221d40, 52)) == 2235712);
+ assert(unsigned(zero_extend(0x221d41, 52)) == 2235713);
+ assert(unsigned(zero_extend(0x221d42, 52)) == 2235714);
+ assert(unsigned(zero_extend(0x221d43, 52)) == 2235715);
+ assert(unsigned(zero_extend(0x221d44, 52)) == 2235716);
+ assert(unsigned(zero_extend(0x221d45, 52)) == 2235717);
+ assert(unsigned(zero_extend(0x221d48, 52)) == 2235720);
+ assert(unsigned(zero_extend(0x221d49, 52)) == 2235721);
+ assert(unsigned(zero_extend(0x221d4a, 52)) == 2235722);
+ assert(unsigned(zero_extend(0x221d4b, 52)) == 2235723);
+ assert(unsigned(zero_extend(0x221d4c, 52)) == 2235724);
+ assert(unsigned(zero_extend(0x221d4d, 52)) == 2235725);
+ assert(unsigned(zero_extend(0x221d4e, 52)) == 2235726);
+ assert(unsigned(zero_extend(0x221d4f, 52)) == 2235727);
+ assert(unsigned(zero_extend(0x221d50, 52)) == 2235728);
+ assert(unsigned(zero_extend(0x221d51, 52)) == 2235729);
+ assert(unsigned(zero_extend(0x221d54, 52)) == 2235732);
+ assert(unsigned(zero_extend(0x221d55, 52)) == 2235733);
+ assert(unsigned(zero_extend(0x221d56, 52)) == 2235734);
+ assert(unsigned(zero_extend(0x221d57, 52)) == 2235735);
+ assert(unsigned(zero_extend(0x221d58, 52)) == 2235736);
+ assert(unsigned(zero_extend(0x221d59, 52)) == 2235737);
+ assert(unsigned(zero_extend(0x221d5a, 52)) == 2235738);
+ assert(unsigned(zero_extend(0x221d5b, 52)) == 2235739);
+ assert(unsigned(zero_extend(0x221d5c, 52)) == 2235740);
+ assert(unsigned(zero_extend(0x221d5d, 52)) == 2235741);
+ assert(unsigned(zero_extend(0x221d60, 52)) == 2235744);
+ assert(unsigned(zero_extend(0x221d61, 52)) == 2235745);
+ assert(unsigned(zero_extend(0x221d62, 52)) == 2235746);
+ assert(unsigned(zero_extend(0x221d63, 52)) == 2235747);
+ assert(unsigned(zero_extend(0x221d64, 52)) == 2235748);
+ assert(unsigned(zero_extend(0x221d65, 52)) == 2235749);
+ assert(unsigned(zero_extend(0x221d66, 52)) == 2235750);
+ assert(unsigned(zero_extend(0x221d67, 52)) == 2235751);
+ assert(unsigned(zero_extend(0x221d68, 52)) == 2235752);
+ assert(unsigned(zero_extend(0x221d69, 52)) == 2235753);
+ assert(unsigned(zero_extend(0x221d6c, 52)) == 2235756);
+ assert(unsigned(zero_extend(0x221d6d, 52)) == 2235757);
+ assert(unsigned(zero_extend(0x221d6e, 52)) == 2235758);
+ assert(unsigned(zero_extend(0x221d6f, 52)) == 2235759);
+ assert(unsigned(zero_extend(0x221d70, 52)) == 2235760);
+ assert(unsigned(zero_extend(0x221d71, 52)) == 2235761);
+ assert(unsigned(zero_extend(0x221d72, 52)) == 2235762);
+ assert(unsigned(zero_extend(0x221d73, 52)) == 2235763);
+ assert(unsigned(zero_extend(0x221d74, 52)) == 2235764);
+ assert(unsigned(zero_extend(0x221d75, 52)) == 2235765);
+ assert(unsigned(zero_extend(0x221d76, 52)) == 2235766);
+ assert(unsigned(zero_extend(0x221d77, 52)) == 2235767);
+ assert(unsigned(zero_extend(0x221d78, 52)) == 2235768);
+ assert(unsigned(zero_extend(0x221d79, 52)) == 2235769);
+ assert(unsigned(zero_extend(0x221d7a, 52)) == 2235770);
+ assert(unsigned(zero_extend(0x221d7b, 52)) == 2235771);
+ assert(unsigned(zero_extend(0x221d7c, 52)) == 2235772);
+ assert(unsigned(zero_extend(0x221d7d, 52)) == 2235773);
+ assert(unsigned(zero_extend(0x221d7e, 52)) == 2235774);
+ assert(unsigned(zero_extend(0x221d7f, 52)) == 2235775);
+ assert(unsigned(zero_extend(0x221d80, 52)) == 2235776);
+ assert(unsigned(zero_extend(0x221d81, 52)) == 2235777);
+ assert(unsigned(zero_extend(0x221d82, 52)) == 2235778);
+ assert(unsigned(zero_extend(0x221d83, 52)) == 2235779);
+ assert(unsigned(zero_extend(0x221d84, 52)) == 2235780);
+ assert(unsigned(zero_extend(0x221d85, 52)) == 2235781);
+ assert(unsigned(zero_extend(0x221d88, 52)) == 2235784);
+ assert(unsigned(zero_extend(0x221d89, 52)) == 2235785);
+ assert(unsigned(zero_extend(0x221d8a, 52)) == 2235786);
+ assert(unsigned(zero_extend(0x221d8b, 52)) == 2235787);
+ assert(unsigned(zero_extend(0x221d8c, 52)) == 2235788);
+ assert(unsigned(zero_extend(0x221d8d, 52)) == 2235789);
+ assert(unsigned(zero_extend(0x221d8e, 52)) == 2235790);
+ assert(unsigned(zero_extend(0x221d8f, 52)) == 2235791);
+ assert(unsigned(zero_extend(0x221d90, 52)) == 2235792);
+ assert(unsigned(zero_extend(0x221d91, 52)) == 2235793);
+ assert(unsigned(zero_extend(0x221d94, 52)) == 2235796);
+ assert(unsigned(zero_extend(0x221d95, 52)) == 2235797);
+ assert(unsigned(zero_extend(0x221d96, 52)) == 2235798);
+ assert(unsigned(zero_extend(0x221d97, 52)) == 2235799);
+ assert(unsigned(zero_extend(0x221d98, 52)) == 2235800);
+ assert(unsigned(zero_extend(0x221d99, 52)) == 2235801);
+ assert(unsigned(zero_extend(0x221d9a, 52)) == 2235802);
+ assert(unsigned(zero_extend(0x221d9b, 52)) == 2235803);
+ assert(unsigned(zero_extend(0x221d9c, 52)) == 2235804);
+ assert(unsigned(zero_extend(0x221d9d, 52)) == 2235805);
+ assert(unsigned(zero_extend(0x221da0, 52)) == 2235808);
+ assert(unsigned(zero_extend(0x221da1, 52)) == 2235809);
+ assert(unsigned(zero_extend(0x221da2, 52)) == 2235810);
+ assert(unsigned(zero_extend(0x221da3, 52)) == 2235811);
+ assert(unsigned(zero_extend(0x221da4, 52)) == 2235812);
+ assert(unsigned(zero_extend(0x221da5, 52)) == 2235813);
+ assert(unsigned(zero_extend(0x221da6, 52)) == 2235814);
+ assert(unsigned(zero_extend(0x221da7, 52)) == 2235815);
+ assert(unsigned(zero_extend(0x221da8, 52)) == 2235816);
+ assert(unsigned(zero_extend(0x221da9, 52)) == 2235817);
+ assert(unsigned(zero_extend(0x221dac, 52)) == 2235820);
+ assert(unsigned(zero_extend(0x221dad, 52)) == 2235821);
+ assert(unsigned(zero_extend(0x221dae, 52)) == 2235822);
+ assert(unsigned(zero_extend(0x221daf, 52)) == 2235823);
+ assert(unsigned(zero_extend(0x221db0, 52)) == 2235824);
+ assert(unsigned(zero_extend(0x221db1, 52)) == 2235825);
+ assert(unsigned(zero_extend(0x221db2, 52)) == 2235826);
+ assert(unsigned(zero_extend(0x221db3, 52)) == 2235827);
+ assert(unsigned(zero_extend(0x221db4, 52)) == 2235828);
+ assert(unsigned(zero_extend(0x221db5, 52)) == 2235829);
+ assert(unsigned(zero_extend(0x221f68, 52)) == 2236264);
+ assert(unsigned(zero_extend(0x221f6c, 52)) == 2236268);
+ assert(unsigned(zero_extend(0x221f70, 52)) == 2236272);
+ assert(unsigned(zero_extend(0x221f74, 52)) == 2236276);
+ assert(unsigned(zero_extend(0x221f78, 52)) == 2236280);
+ assert(unsigned(zero_extend(0x221f7c, 52)) == 2236284);
+ assert(unsigned(zero_extend(0x221f90, 52)) == 2236304);
+ assert(unsigned(zero_extend(0x221f98, 52)) == 2236312);
+ assert(unsigned(zero_extend(0x221fc0, 52)) == 2236352);
+ assert(unsigned(zero_extend(0x221fc4, 52)) == 2236356);
+ assert(unsigned(zero_extend(0x221fc8, 52)) == 2236360);
+ assert(unsigned(zero_extend(0x221fcc, 52)) == 2236364);
+ assert(unsigned(zero_extend(0x221fd0, 52)) == 2236368);
+ assert(unsigned(zero_extend(0x221fd4, 52)) == 2236372);
+ assert(unsigned(zero_extend(0x221fe8, 52)) == 2236392);
+ assert(unsigned(zero_extend(0x221ff0, 52)) == 2236400);
+ assert(unsigned(zero_extend(0x221ff8, 52)) == 2236408);
+ assert(unsigned(zero_extend(0x222050, 52)) == 2236496);
+ assert(unsigned(zero_extend(0x222088, 52)) == 2236552);
+ assert(unsigned(zero_extend(0x22208c, 52)) == 2236556);
+ assert(unsigned(zero_extend(0x222090, 52)) == 2236560);
+ assert(unsigned(zero_extend(0x222098, 52)) == 2236568);
+ assert(unsigned(zero_extend(0x2220e0, 52)) == 2236640);
+ assert(unsigned(zero_extend(0x2220e4, 52)) == 2236644);
+ assert(unsigned(zero_extend(0x2220e8, 52)) == 2236648);
+ assert(unsigned(zero_extend(0x2220f0, 52)) == 2236656);
+ assert(unsigned(zero_extend(0x222330, 52)) == 2237232);
+ assert(unsigned(zero_extend(0x222334, 52)) == 2237236);
+ assert(unsigned(zero_extend(0x222338, 52)) == 2237240);
+ assert(unsigned(zero_extend(0x22233c, 52)) == 2237244);
+ assert(unsigned(zero_extend(0x222340, 52)) == 2237248);
+ assert(unsigned(zero_extend(0x222344, 52)) == 2237252);
+ assert(unsigned(zero_extend(0x222348, 52)) == 2237256);
+ assert(unsigned(zero_extend(0x22234c, 52)) == 2237260);
+ assert(unsigned(zero_extend(0x222350, 52)) == 2237264);
+ assert(unsigned(zero_extend(0x222354, 52)) == 2237268);
+ assert(unsigned(zero_extend(0x222358, 52)) == 2237272);
+ assert(unsigned(zero_extend(0x22235c, 52)) == 2237276);
+ assert(unsigned(zero_extend(0x222360, 52)) == 2237280);
+ assert(unsigned(zero_extend(0x222364, 52)) == 2237284);
+ assert(unsigned(zero_extend(0x222368, 52)) == 2237288);
+ assert(unsigned(zero_extend(0x22236c, 52)) == 2237292);
+ assert(unsigned(zero_extend(0x222370, 52)) == 2237296);
+ assert(unsigned(zero_extend(0x222374, 52)) == 2237300);
+ assert(unsigned(zero_extend(0x222378, 52)) == 2237304);
+ assert(unsigned(zero_extend(0x22237c, 52)) == 2237308);
+ assert(unsigned(zero_extend(0x222380, 52)) == 2237312);
+ assert(unsigned(zero_extend(0x222384, 52)) == 2237316);
+ assert(unsigned(zero_extend(0x222388, 52)) == 2237320);
+ assert(unsigned(zero_extend(0x22238c, 52)) == 2237324);
+ assert(unsigned(zero_extend(0x222390, 52)) == 2237328);
+ assert(unsigned(zero_extend(0x222394, 52)) == 2237332);
+ assert(unsigned(zero_extend(0x222398, 52)) == 2237336);
+ assert(unsigned(zero_extend(0x22239c, 52)) == 2237340);
+ assert(unsigned(zero_extend(0x2223a0, 52)) == 2237344);
+ assert(unsigned(zero_extend(0x2223a4, 52)) == 2237348);
+ assert(unsigned(zero_extend(0x2223a8, 52)) == 2237352);
+ assert(unsigned(zero_extend(0x2223ac, 52)) == 2237356);
+ assert(unsigned(zero_extend(0x2223b0, 52)) == 2237360);
+ assert(unsigned(zero_extend(0x2223b4, 52)) == 2237364);
+ assert(unsigned(zero_extend(0x2223b8, 52)) == 2237368);
+ assert(unsigned(zero_extend(0x2223bc, 52)) == 2237372);
+ assert(unsigned(zero_extend(0x2223c0, 52)) == 2237376);
+ assert(unsigned(zero_extend(0x2223c4, 52)) == 2237380);
+ assert(unsigned(zero_extend(0x2223c8, 52)) == 2237384);
+ assert(unsigned(zero_extend(0x2223cc, 52)) == 2237388);
+ assert(unsigned(zero_extend(0x2223d0, 52)) == 2237392);
+ assert(unsigned(zero_extend(0x2223d4, 52)) == 2237396);
+ assert(unsigned(zero_extend(0x2223d8, 52)) == 2237400);
+ assert(unsigned(zero_extend(0x2223dc, 52)) == 2237404);
+ assert(unsigned(zero_extend(0x2223e0, 52)) == 2237408);
+ assert(unsigned(zero_extend(0x2223e4, 52)) == 2237412);
+ assert(unsigned(zero_extend(0x2223e8, 52)) == 2237416);
+ assert(unsigned(zero_extend(0x2223ec, 52)) == 2237420);
+ assert(unsigned(zero_extend(0x2223f0, 52)) == 2237424);
+ assert(unsigned(zero_extend(0x2223f4, 52)) == 2237428);
+ assert(unsigned(zero_extend(0x2223f8, 52)) == 2237432);
+ assert(unsigned(zero_extend(0x2223fc, 52)) == 2237436);
+ assert(unsigned(zero_extend(0x222400, 52)) == 2237440);
+ assert(unsigned(zero_extend(0x222404, 52)) == 2237444);
+ assert(unsigned(zero_extend(0x222408, 52)) == 2237448);
+ assert(unsigned(zero_extend(0x22240c, 52)) == 2237452);
+ assert(unsigned(zero_extend(0x222410, 52)) == 2237456);
+ assert(unsigned(zero_extend(0x222414, 52)) == 2237460);
+ assert(unsigned(zero_extend(0x222418, 52)) == 2237464);
+ assert(unsigned(zero_extend(0x222420, 52)) == 2237472);
+ assert(unsigned(zero_extend(0x223078, 52)) == 2240632);
+ assert(unsigned(zero_extend(0x22307c, 52)) == 2240636);
+ assert(unsigned(zero_extend(0x223080, 52)) == 2240640);
+ assert(unsigned(zero_extend(0x223084, 52)) == 2240644);
+ assert(unsigned(zero_extend(0x223088, 52)) == 2240648);
+ assert(unsigned(zero_extend(0x22308c, 52)) == 2240652);
+ assert(unsigned(zero_extend(0x223090, 52)) == 2240656);
+ assert(unsigned(zero_extend(0x223094, 52)) == 2240660);
+ assert(unsigned(zero_extend(0x223098, 52)) == 2240664);
+ assert(unsigned(zero_extend(0x22309c, 52)) == 2240668);
+ assert(unsigned(zero_extend(0x2230a0, 52)) == 2240672);
+ assert(unsigned(zero_extend(0x2230a4, 52)) == 2240676);
+ assert(unsigned(zero_extend(0x2230a8, 52)) == 2240680);
+ assert(unsigned(zero_extend(0x2230ac, 52)) == 2240684);
+ assert(unsigned(zero_extend(0x2230b0, 52)) == 2240688);
+ assert(unsigned(zero_extend(0x2230b4, 52)) == 2240692);
+ assert(unsigned(zero_extend(0x2230b8, 52)) == 2240696);
+ assert(unsigned(zero_extend(0x2230bc, 52)) == 2240700);
+ assert(unsigned(zero_extend(0x2230c0, 52)) == 2240704);
+ assert(unsigned(zero_extend(0x2230c4, 52)) == 2240708);
+ assert(unsigned(zero_extend(0x2230c8, 52)) == 2240712);
+ assert(unsigned(zero_extend(0x2230cc, 52)) == 2240716);
+ assert(unsigned(zero_extend(0x2230d0, 52)) == 2240720);
+ assert(unsigned(zero_extend(0x2230d4, 52)) == 2240724);
+ assert(unsigned(zero_extend(0x2230d8, 52)) == 2240728);
+ assert(unsigned(zero_extend(0x2230dc, 52)) == 2240732);
+ assert(unsigned(zero_extend(0x2230e0, 52)) == 2240736);
+ assert(unsigned(zero_extend(0x2230e4, 52)) == 2240740);
+ assert(unsigned(zero_extend(0x2230e8, 52)) == 2240744);
+ assert(unsigned(zero_extend(0x2230ec, 52)) == 2240748);
+ assert(unsigned(zero_extend(0x2230f0, 52)) == 2240752);
+ assert(unsigned(zero_extend(0x2230f4, 52)) == 2240756);
+ assert(unsigned(zero_extend(0x2230f8, 52)) == 2240760);
+ assert(unsigned(zero_extend(0x2230fc, 52)) == 2240764);
+ assert(unsigned(zero_extend(0x223100, 52)) == 2240768);
+ assert(unsigned(zero_extend(0x223104, 52)) == 2240772);
+ assert(unsigned(zero_extend(0x223108, 52)) == 2240776);
+ assert(unsigned(zero_extend(0x22310c, 52)) == 2240780);
+ assert(unsigned(zero_extend(0x223110, 52)) == 2240784);
+ assert(unsigned(zero_extend(0x223114, 52)) == 2240788);
+ assert(unsigned(zero_extend(0x223118, 52)) == 2240792);
+ assert(unsigned(zero_extend(0x22311c, 52)) == 2240796);
+ assert(unsigned(zero_extend(0x223120, 52)) == 2240800);
+ assert(unsigned(zero_extend(0x223124, 52)) == 2240804);
+ assert(unsigned(zero_extend(0x223128, 52)) == 2240808);
+ assert(unsigned(zero_extend(0x22312c, 52)) == 2240812);
+ assert(unsigned(zero_extend(0x223130, 52)) == 2240816);
+ assert(unsigned(zero_extend(0x223134, 52)) == 2240820);
+ assert(unsigned(zero_extend(0x223138, 52)) == 2240824);
+ assert(unsigned(zero_extend(0x22313c, 52)) == 2240828);
+ assert(unsigned(zero_extend(0x223140, 52)) == 2240832);
+ assert(unsigned(zero_extend(0x223144, 52)) == 2240836);
+ assert(unsigned(zero_extend(0x223148, 52)) == 2240840);
+ assert(unsigned(zero_extend(0x22314c, 52)) == 2240844);
+ assert(unsigned(zero_extend(0x223150, 52)) == 2240848);
+ assert(unsigned(zero_extend(0x223154, 52)) == 2240852);
+ assert(unsigned(zero_extend(0x223158, 52)) == 2240856);
+ assert(unsigned(zero_extend(0x22315c, 52)) == 2240860);
+ assert(unsigned(zero_extend(0x223160, 52)) == 2240864);
+ assert(unsigned(zero_extend(0x223164, 52)) == 2240868);
+ assert(unsigned(zero_extend(0x223168, 52)) == 2240872);
+ assert(unsigned(zero_extend(0x22316c, 52)) == 2240876);
+ assert(unsigned(zero_extend(0x223170, 52)) == 2240880);
+ assert(unsigned(zero_extend(0x223174, 52)) == 2240884);
+ assert(unsigned(zero_extend(0x223178, 52)) == 2240888);
+ assert(unsigned(zero_extend(0x22317c, 52)) == 2240892);
+ assert(unsigned(zero_extend(0x223180, 52)) == 2240896);
+ assert(unsigned(zero_extend(0x223184, 52)) == 2240900);
+ assert(unsigned(zero_extend(0x223188, 52)) == 2240904);
+ assert(unsigned(zero_extend(0x223430, 52)) == 2241584);
+ assert(unsigned(zero_extend(0x223434, 52)) == 2241588);
+ assert(unsigned(zero_extend(0x223438, 52)) == 2241592);
+ assert(unsigned(zero_extend(0x22343c, 52)) == 2241596);
+ assert(unsigned(zero_extend(0x223440, 52)) == 2241600);
+ assert(unsigned(zero_extend(0x223444, 52)) == 2241604);
+ assert(unsigned(zero_extend(0x223448, 52)) == 2241608);
+ assert(unsigned(zero_extend(0x22344c, 52)) == 2241612);
+ assert(unsigned(zero_extend(0x223450, 52)) == 2241616);
+ assert(unsigned(zero_extend(0x223454, 52)) == 2241620);
+ assert(unsigned(zero_extend(0x223458, 52)) == 2241624);
+ assert(unsigned(zero_extend(0x22345c, 52)) == 2241628);
+ assert(unsigned(zero_extend(0x223460, 52)) == 2241632);
+ assert(unsigned(zero_extend(0x223464, 52)) == 2241636);
+ assert(unsigned(zero_extend(0x223468, 52)) == 2241640);
+ assert(unsigned(zero_extend(0x223488, 52)) == 2241672);
+ assert(unsigned(zero_extend(0x22348c, 52)) == 2241676);
+ assert(unsigned(zero_extend(0x223490, 52)) == 2241680);
+ assert(unsigned(zero_extend(0x223494, 52)) == 2241684);
+ assert(unsigned(zero_extend(0x223498, 52)) == 2241688);
+ assert(unsigned(zero_extend(0x22349c, 52)) == 2241692);
+ assert(unsigned(zero_extend(0x2234a0, 52)) == 2241696);
+ assert(unsigned(zero_extend(0x2234a4, 52)) == 2241700);
+ assert(unsigned(zero_extend(0x2234a8, 52)) == 2241704);
+ assert(unsigned(zero_extend(0x2234ac, 52)) == 2241708);
+ assert(unsigned(zero_extend(0x2234b0, 52)) == 2241712);
+ assert(unsigned(zero_extend(0x2234b4, 52)) == 2241716);
+ assert(unsigned(zero_extend(0x2234b8, 52)) == 2241720);
+ assert(unsigned(zero_extend(0x2234bc, 52)) == 2241724);
+ assert(unsigned(zero_extend(0x2234c0, 52)) == 2241728);
+ assert(unsigned(zero_extend(0x2234e8, 52)) == 2241768);
+ assert(unsigned(zero_extend(0x2234ec, 52)) == 2241772);
+ assert(unsigned(zero_extend(0x2234f0, 52)) == 2241776);
+ assert(unsigned(zero_extend(0x2234f4, 52)) == 2241780);
+ assert(unsigned(zero_extend(0x2234f8, 52)) == 2241784);
+ assert(unsigned(zero_extend(0x2234fc, 52)) == 2241788);
+ assert(unsigned(zero_extend(0x223500, 52)) == 2241792);
+ assert(unsigned(zero_extend(0x223504, 52)) == 2241796);
+ assert(unsigned(zero_extend(0x223508, 52)) == 2241800);
+ assert(unsigned(zero_extend(0x22350c, 52)) == 2241804);
+ assert(unsigned(zero_extend(0x223510, 52)) == 2241808);
+ assert(unsigned(zero_extend(0x223514, 52)) == 2241812);
+ assert(unsigned(zero_extend(0x223518, 52)) == 2241816);
+ assert(unsigned(zero_extend(0x22351c, 52)) == 2241820);
+ assert(unsigned(zero_extend(0x223520, 52)) == 2241824);
+ assert(unsigned(zero_extend(0x223524, 52)) == 2241828);
+ assert(unsigned(zero_extend(0x223528, 52)) == 2241832);
+ assert(unsigned(zero_extend(0x22352c, 52)) == 2241836);
+ assert(unsigned(zero_extend(0x223530, 52)) == 2241840);
+ assert(unsigned(zero_extend(0x223534, 52)) == 2241844);
+ assert(unsigned(zero_extend(0x223538, 52)) == 2241848);
+ assert(unsigned(zero_extend(0x22353c, 52)) == 2241852);
+ assert(unsigned(zero_extend(0x223540, 52)) == 2241856);
+ assert(unsigned(zero_extend(0x223544, 52)) == 2241860);
+ assert(unsigned(zero_extend(0x223548, 52)) == 2241864);
+ assert(unsigned(zero_extend(0x22354c, 52)) == 2241868);
+ assert(unsigned(zero_extend(0x223550, 52)) == 2241872);
+ assert(unsigned(zero_extend(0x223554, 52)) == 2241876);
+ assert(unsigned(zero_extend(0x223558, 52)) == 2241880);
+ assert(unsigned(zero_extend(0x22355c, 52)) == 2241884);
+ assert(unsigned(zero_extend(0x223560, 52)) == 2241888);
+ assert(unsigned(zero_extend(0x223564, 52)) == 2241892);
+ assert(unsigned(zero_extend(0x223568, 52)) == 2241896);
+ assert(unsigned(zero_extend(0x22356c, 52)) == 2241900);
+ assert(unsigned(zero_extend(0x223570, 52)) == 2241904);
+ assert(unsigned(zero_extend(0x223574, 52)) == 2241908);
+ assert(unsigned(zero_extend(0x223578, 52)) == 2241912);
+ assert(unsigned(zero_extend(0x22357c, 52)) == 2241916);
+ assert(unsigned(zero_extend(0x223580, 52)) == 2241920);
+ assert(unsigned(zero_extend(0x223584, 52)) == 2241924);
+ assert(unsigned(zero_extend(0x223588, 52)) == 2241928);
+ assert(unsigned(zero_extend(0x22358c, 52)) == 2241932);
+ assert(unsigned(zero_extend(0x223590, 52)) == 2241936);
+ assert(unsigned(zero_extend(0x223594, 52)) == 2241940);
+ assert(unsigned(zero_extend(0x223598, 52)) == 2241944);
+ assert(unsigned(zero_extend(0x22359c, 52)) == 2241948);
+ assert(unsigned(zero_extend(0x2235a0, 52)) == 2241952);
+ assert(unsigned(zero_extend(0x2235a4, 52)) == 2241956);
+ assert(unsigned(zero_extend(0x2235a8, 52)) == 2241960);
+ assert(unsigned(zero_extend(0x2235ac, 52)) == 2241964);
+ assert(unsigned(zero_extend(0x2235b0, 52)) == 2241968);
+ assert(unsigned(zero_extend(0x2235b4, 52)) == 2241972);
+ assert(unsigned(zero_extend(0x2235b8, 52)) == 2241976);
+ assert(unsigned(zero_extend(0x2235bc, 52)) == 2241980);
+ assert(unsigned(zero_extend(0x2235c0, 52)) == 2241984);
+ assert(unsigned(zero_extend(0x2235c4, 52)) == 2241988);
+ assert(unsigned(zero_extend(0x2235c8, 52)) == 2241992);
+ assert(unsigned(zero_extend(0x2235cc, 52)) == 2241996);
+ assert(unsigned(zero_extend(0x2235d0, 52)) == 2242000);
+ assert(unsigned(zero_extend(0x2235d4, 52)) == 2242004);
+ assert(unsigned(zero_extend(0x2235d8, 52)) == 2242008);
+ assert(unsigned(zero_extend(0x2235dc, 52)) == 2242012);
+ assert(unsigned(zero_extend(0x2235e0, 52)) == 2242016);
+ assert(unsigned(zero_extend(0x2235e1, 52)) == 2242017);
+ assert(unsigned(zero_extend(0x2235e2, 52)) == 2242018);
+ assert(unsigned(zero_extend(0x2235e3, 52)) == 2242019);
+ assert(unsigned(zero_extend(0x2235e4, 52)) == 2242020);
+ assert(unsigned(zero_extend(0x2235e5, 52)) == 2242021);
+ assert(unsigned(zero_extend(0x2235e6, 52)) == 2242022);
+ assert(unsigned(zero_extend(0x2235e7, 52)) == 2242023);
+ assert(unsigned(zero_extend(0x2235e8, 52)) == 2242024);
+ assert(unsigned(zero_extend(0x2235e9, 52)) == 2242025);
+ assert(unsigned(zero_extend(0x2235ea, 52)) == 2242026);
+ assert(unsigned(zero_extend(0x2235eb, 52)) == 2242027);
+ assert(unsigned(zero_extend(0x2235ec, 52)) == 2242028);
+ assert(unsigned(zero_extend(0x2235ed, 52)) == 2242029);
+ assert(unsigned(zero_extend(0x2235ee, 52)) == 2242030);
+ assert(unsigned(zero_extend(0x2235ef, 52)) == 2242031);
+ assert(unsigned(zero_extend(0x2235f0, 52)) == 2242032);
+ assert(unsigned(zero_extend(0x2235f1, 52)) == 2242033);
+ assert(unsigned(zero_extend(0x2235f2, 52)) == 2242034);
+ assert(unsigned(zero_extend(0x2235f3, 52)) == 2242035);
+ assert(unsigned(zero_extend(0x2235f4, 52)) == 2242036);
+ assert(unsigned(zero_extend(0x2235f5, 52)) == 2242037);
+ assert(unsigned(zero_extend(0x2235f6, 52)) == 2242038);
+ assert(unsigned(zero_extend(0x2235f7, 52)) == 2242039);
+ assert(unsigned(zero_extend(0x2235f8, 52)) == 2242040);
+ assert(unsigned(zero_extend(0x2235fc, 52)) == 2242044);
+ assert(unsigned(zero_extend(0x223600, 52)) == 2242048);
+ assert(unsigned(zero_extend(0x223604, 52)) == 2242052);
+ assert(unsigned(zero_extend(0x223608, 52)) == 2242056);
+ assert(unsigned(zero_extend(0x22360c, 52)) == 2242060);
+ assert(unsigned(zero_extend(0x223610, 52)) == 2242064);
+ assert(unsigned(zero_extend(0x223614, 52)) == 2242068);
+ assert(unsigned(zero_extend(0x223618, 52)) == 2242072);
+ assert(unsigned(zero_extend(0x22361c, 52)) == 2242076);
+ assert(unsigned(zero_extend(0x223620, 52)) == 2242080);
+ assert(unsigned(zero_extend(0x223624, 52)) == 2242084);
+ assert(unsigned(zero_extend(0x223628, 52)) == 2242088);
+ assert(unsigned(zero_extend(0x22362c, 52)) == 2242092);
+ assert(unsigned(zero_extend(0x223630, 52)) == 2242096);
+ assert(unsigned(zero_extend(0x223638, 52)) == 2242104);
+ assert(unsigned(zero_extend(0x223639, 52)) == 2242105);
+ assert(unsigned(zero_extend(0x22363a, 52)) == 2242106);
+ assert(unsigned(zero_extend(0x22363b, 52)) == 2242107);
+ assert(unsigned(zero_extend(0x22363c, 52)) == 2242108);
+ assert(unsigned(zero_extend(0x22363d, 52)) == 2242109);
+ assert(unsigned(zero_extend(0x22363e, 52)) == 2242110);
+ assert(unsigned(zero_extend(0x22363f, 52)) == 2242111);
+ assert(unsigned(zero_extend(0x223640, 52)) == 2242112);
+ assert(unsigned(zero_extend(0x223641, 52)) == 2242113);
+ assert(unsigned(zero_extend(0x223642, 52)) == 2242114);
+ assert(unsigned(zero_extend(0x223643, 52)) == 2242115);
+ assert(unsigned(zero_extend(0x223644, 52)) == 2242116);
+ assert(unsigned(zero_extend(0x223645, 52)) == 2242117);
+ assert(unsigned(zero_extend(0x223646, 52)) == 2242118);
+ assert(unsigned(zero_extend(0x223647, 52)) == 2242119);
+ assert(unsigned(zero_extend(0x223648, 52)) == 2242120);
+ assert(unsigned(zero_extend(0x223649, 52)) == 2242121);
+ assert(unsigned(zero_extend(0x22364a, 52)) == 2242122);
+ assert(unsigned(zero_extend(0x22364b, 52)) == 2242123);
+ assert(unsigned(zero_extend(0x22364c, 52)) == 2242124);
+ assert(unsigned(zero_extend(0x22364d, 52)) == 2242125);
+ assert(unsigned(zero_extend(0x22364e, 52)) == 2242126);
+ assert(unsigned(zero_extend(0x22364f, 52)) == 2242127);
+ assert(unsigned(zero_extend(0x223650, 52)) == 2242128);
+ assert(unsigned(zero_extend(0x223658, 52)) == 2242136);
+ assert(unsigned(zero_extend(0x2c000, 52)) == 180224);
+ assert(unsigned(zero_extend(0x2c46000, 52)) == 46424064);
+ assert(unsigned(zero_extend(0x2c46001, 52)) == 46424065);
+ assert(unsigned(zero_extend(0x2c46002, 52)) == 46424066);
+ assert(unsigned(zero_extend(0x2c46003, 52)) == 46424067);
+ assert(unsigned(zero_extend(0x2c46004, 52)) == 46424068);
+ assert(unsigned(zero_extend(0x2c46005, 52)) == 46424069);
+ assert(unsigned(zero_extend(0x2c46006, 52)) == 46424070);
+ assert(unsigned(zero_extend(0x2c46007, 52)) == 46424071);
+ assert(unsigned(zero_extend(0x2c46008, 52)) == 46424072);
+ assert(unsigned(zero_extend(0x2c46009, 52)) == 46424073);
+ assert(unsigned(zero_extend(0x2c4600a, 52)) == 46424074);
+ assert(unsigned(zero_extend(0x2c4600b, 52)) == 46424075);
+ assert(unsigned(zero_extend(0x2c4600c, 52)) == 46424076);
+ assert(unsigned(zero_extend(0x2c4600d, 52)) == 46424077);
+ assert(unsigned(zero_extend(0x2c4600e, 52)) == 46424078);
+ assert(unsigned(zero_extend(0x2c4600f, 52)) == 46424079);
+ assert(unsigned(zero_extend(0x2c46030, 52)) == 46424112);
+ assert(unsigned(zero_extend(0x2c46031, 52)) == 46424113);
+ assert(unsigned(zero_extend(0x2c46032, 52)) == 46424114);
+ assert(unsigned(zero_extend(0x2c46033, 52)) == 46424115);
+ assert(unsigned(zero_extend(0x2c46034, 52)) == 46424116);
+ assert(unsigned(zero_extend(0x2c46035, 52)) == 46424117);
+ assert(unsigned(zero_extend(0x2c46036, 52)) == 46424118);
+ assert(unsigned(zero_extend(0x2c46037, 52)) == 46424119);
+ assert(unsigned(zero_extend(0x2c46038, 52)) == 46424120);
+ assert(unsigned(zero_extend(0x2c46039, 52)) == 46424121);
+ assert(unsigned(zero_extend(0x2c4603a, 52)) == 46424122);
+ assert(unsigned(zero_extend(0x2c4603b, 52)) == 46424123);
+ assert(unsigned(zero_extend(0x2c4603c, 52)) == 46424124);
+ assert(unsigned(zero_extend(0x2c4603d, 52)) == 46424125);
+ assert(unsigned(zero_extend(0x2c4603e, 52)) == 46424126);
+ assert(unsigned(zero_extend(0x2c4603f, 52)) == 46424127);
+ assert(unsigned(zero_extend(0x2c46040, 52)) == 46424128);
+ assert(unsigned(zero_extend(0x2c46041, 52)) == 46424129);
+ assert(unsigned(zero_extend(0x2c46042, 52)) == 46424130);
+ assert(unsigned(zero_extend(0x2c46043, 52)) == 46424131);
+ assert(unsigned(zero_extend(0x2c46044, 52)) == 46424132);
+ assert(unsigned(zero_extend(0x2c46045, 52)) == 46424133);
+}
diff --git a/test/builtins/unsigned3.sail b/test/builtins/unsigned3.sail
new file mode 100644
index 00000000..5b1bc6c2
--- /dev/null
+++ b/test/builtins/unsigned3.sail
@@ -0,0 +1,3005 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+val flip_mask : forall 'len 'v, 'v >= 0. (vector('v, dec, bit), atom('len)) -> vector('len, dec, bit)
+
+function flip_mask(v, len) = len ^ v
+
+function main (() : unit) -> unit = {
+ assert(unsigned(flip_mask(0x2c4604c, 52)) == 46424140);
+ assert(unsigned(flip_mask(0x2c4604d, 52)) == 46424141);
+ assert(unsigned(flip_mask(0x2c4604e, 52)) == 46424142);
+ assert(unsigned(flip_mask(0x2c4604f, 52)) == 46424143);
+ assert(unsigned(flip_mask(0x2c46050, 52)) == 46424144);
+ assert(unsigned(flip_mask(0x2c46054, 52)) == 46424148);
+ assert(unsigned(flip_mask(0x2c46058, 52)) == 46424152);
+ assert(unsigned(flip_mask(0x2c4605c, 52)) == 46424156);
+ assert(unsigned(flip_mask(0x2c46065, 52)) == 46424165);
+ assert(unsigned(flip_mask(0x2c46066, 52)) == 46424166);
+ assert(unsigned(flip_mask(0x2c46067, 52)) == 46424167);
+ assert(unsigned(flip_mask(0x2c4606a, 52)) == 46424170);
+ assert(unsigned(flip_mask(0x2c4606b, 52)) == 46424171);
+ assert(unsigned(flip_mask(0x2c4606c, 52)) == 46424172);
+ assert(unsigned(flip_mask(0x2e30000, 52)) == 48431104);
+ assert(unsigned(flip_mask(0x2e30004, 52)) == 48431108);
+ assert(unsigned(flip_mask(0x2e30008, 52)) == 48431112);
+ assert(unsigned(flip_mask(0x2e30010, 52)) == 48431120);
+ assert(unsigned(flip_mask(0x2e30014, 52)) == 48431124);
+ assert(unsigned(flip_mask(0x2e30018, 52)) == 48431128);
+ assert(unsigned(flip_mask(0x2e30020, 52)) == 48431136);
+ assert(unsigned(flip_mask(0x2e30024, 52)) == 48431140);
+ assert(unsigned(flip_mask(0x2e30028, 52)) == 48431144);
+ assert(unsigned(flip_mask(0x2e30030, 52)) == 48431152);
+ assert(unsigned(flip_mask(0x2e30034, 52)) == 48431156);
+ assert(unsigned(flip_mask(0x2e30038, 52)) == 48431160);
+ assert(unsigned(flip_mask(0x2e3003c, 52)) == 48431164);
+ assert(unsigned(flip_mask(0x2e30040, 52)) == 48431168);
+ assert(unsigned(flip_mask(0x2e30044, 52)) == 48431172);
+ assert(unsigned(flip_mask(0x2e30048, 52)) == 48431176);
+ assert(unsigned(flip_mask(0x2e3004c, 52)) == 48431180);
+ assert(unsigned(flip_mask(0x2e30050, 52)) == 48431184);
+ assert(unsigned(flip_mask(0x2e30054, 52)) == 48431188);
+ assert(unsigned(flip_mask(0x2e30058, 52)) == 48431192);
+ assert(unsigned(flip_mask(0x2e3005c, 52)) == 48431196);
+ assert(unsigned(flip_mask(0x2e30060, 52)) == 48431200);
+ assert(unsigned(flip_mask(0x2e30064, 52)) == 48431204);
+ assert(unsigned(flip_mask(0x2e30068, 52)) == 48431208);
+ assert(unsigned(flip_mask(0x2e3006c, 52)) == 48431212);
+ assert(unsigned(flip_mask(0x2e30070, 52)) == 48431216);
+ assert(unsigned(flip_mask(0x2e30074, 52)) == 48431220);
+ assert(unsigned(flip_mask(0x2e30078, 52)) == 48431224);
+ assert(unsigned(flip_mask(0x2e3007c, 52)) == 48431228);
+ assert(unsigned(flip_mask(0x2e30080, 52)) == 48431232);
+ assert(unsigned(flip_mask(0x2e30084, 52)) == 48431236);
+ assert(unsigned(flip_mask(0x2e30088, 52)) == 48431240);
+ assert(unsigned(flip_mask(0x2e3008c, 52)) == 48431244);
+ assert(unsigned(flip_mask(0x2e34000, 52)) == 48447488);
+ assert(unsigned(flip_mask(0x2e34004, 52)) == 48447492);
+ assert(unsigned(flip_mask(0x2e34008, 52)) == 48447496);
+ assert(unsigned(flip_mask(0x2e34010, 52)) == 48447504);
+ assert(unsigned(flip_mask(0x2e34014, 52)) == 48447508);
+ assert(unsigned(flip_mask(0x2e34018, 52)) == 48447512);
+ assert(unsigned(flip_mask(0x2e34020, 52)) == 48447520);
+ assert(unsigned(flip_mask(0x2e34024, 52)) == 48447524);
+ assert(unsigned(flip_mask(0x2e34028, 52)) == 48447528);
+ assert(unsigned(flip_mask(0x2e34030, 52)) == 48447536);
+ assert(unsigned(flip_mask(0x2e34034, 52)) == 48447540);
+ assert(unsigned(flip_mask(0x2e34038, 52)) == 48447544);
+ assert(unsigned(flip_mask(0x2e34040, 52)) == 48447552);
+ assert(unsigned(flip_mask(0x2e34044, 52)) == 48447556);
+ assert(unsigned(flip_mask(0x2e34048, 52)) == 48447560);
+ assert(unsigned(flip_mask(0x2e34050, 52)) == 48447568);
+ assert(unsigned(flip_mask(0x2e34054, 52)) == 48447572);
+ assert(unsigned(flip_mask(0x2e34058, 52)) == 48447576);
+ assert(unsigned(flip_mask(0x2e3405c, 52)) == 48447580);
+ assert(unsigned(flip_mask(0x2e34060, 52)) == 48447584);
+ assert(unsigned(flip_mask(0x2e34064, 52)) == 48447588);
+ assert(unsigned(flip_mask(0x2e34068, 52)) == 48447592);
+ assert(unsigned(flip_mask(0x2e3406c, 52)) == 48447596);
+ assert(unsigned(flip_mask(0x2e34070, 52)) == 48447600);
+ assert(unsigned(flip_mask(0x2e34074, 52)) == 48447604);
+ assert(unsigned(flip_mask(0x2e34078, 52)) == 48447608);
+ assert(unsigned(flip_mask(0x2e3407c, 52)) == 48447612);
+ assert(unsigned(flip_mask(0x2e34080, 52)) == 48447616);
+ assert(unsigned(flip_mask(0x2e34084, 52)) == 48447620);
+ assert(unsigned(flip_mask(0x2e34088, 52)) == 48447624);
+ assert(unsigned(flip_mask(0x2e3408c, 52)) == 48447628);
+ assert(unsigned(flip_mask(0x2e34090, 52)) == 48447632);
+ assert(unsigned(flip_mask(0x2e34094, 52)) == 48447636);
+ assert(unsigned(flip_mask(0x2e34098, 52)) == 48447640);
+ assert(unsigned(flip_mask(0x2e3409c, 52)) == 48447644);
+ assert(unsigned(flip_mask(0x2e340a0, 52)) == 48447648);
+ assert(unsigned(flip_mask(0x2e340a4, 52)) == 48447652);
+ assert(unsigned(flip_mask(0x2e340a8, 52)) == 48447656);
+ assert(unsigned(flip_mask(0x2e340ac, 52)) == 48447660);
+ assert(unsigned(flip_mask(0x2e3c06c, 52)) == 48480364);
+ assert(unsigned(flip_mask(0x2e3c070, 52)) == 48480368);
+ assert(unsigned(flip_mask(0x2e3c074, 52)) == 48480372);
+ assert(unsigned(flip_mask(0x2e44078, 52)) == 48513144);
+ assert(unsigned(flip_mask(0x2e4407c, 52)) == 48513148);
+ assert(unsigned(flip_mask(0x2e44080, 52)) == 48513152);
+ assert(unsigned(flip_mask(0x2e4c000, 52)) == 48545792);
+ assert(unsigned(flip_mask(0x2e4c004, 52)) == 48545796);
+ assert(unsigned(flip_mask(0x2e4c008, 52)) == 48545800);
+ assert(unsigned(flip_mask(0x2e4c010, 52)) == 48545808);
+ assert(unsigned(flip_mask(0x2e4c014, 52)) == 48545812);
+ assert(unsigned(flip_mask(0x2e4c018, 52)) == 48545816);
+ assert(unsigned(flip_mask(0x2e4c020, 52)) == 48545824);
+ assert(unsigned(flip_mask(0x2e4c024, 52)) == 48545828);
+ assert(unsigned(flip_mask(0x2e4c028, 52)) == 48545832);
+ assert(unsigned(flip_mask(0x2e4c030, 52)) == 48545840);
+ assert(unsigned(flip_mask(0x2e4c034, 52)) == 48545844);
+ assert(unsigned(flip_mask(0x2e4c038, 52)) == 48545848);
+ assert(unsigned(flip_mask(0x2e4c040, 52)) == 48545856);
+ assert(unsigned(flip_mask(0x2e4c044, 52)) == 48545860);
+ assert(unsigned(flip_mask(0x2e4c048, 52)) == 48545864);
+ assert(unsigned(flip_mask(0x2e4c04c, 52)) == 48545868);
+ assert(unsigned(flip_mask(0x2e4c050, 52)) == 48545872);
+ assert(unsigned(flip_mask(0x2e4c054, 52)) == 48545876);
+ assert(unsigned(flip_mask(0x2e4c058, 52)) == 48545880);
+ assert(unsigned(flip_mask(0x2e4c05c, 52)) == 48545884);
+ assert(unsigned(flip_mask(0x2e4c060, 52)) == 48545888);
+ assert(unsigned(flip_mask(0x2e4c064, 52)) == 48545892);
+ assert(unsigned(flip_mask(0x2e4c068, 52)) == 48545896);
+ assert(unsigned(flip_mask(0x2e4c06c, 52)) == 48545900);
+ assert(unsigned(flip_mask(0x2e4c070, 52)) == 48545904);
+ assert(unsigned(flip_mask(0x2e4c074, 52)) == 48545908);
+ assert(unsigned(flip_mask(0x2e4c078, 52)) == 48545912);
+ assert(unsigned(flip_mask(0x2e4c07c, 52)) == 48545916);
+ assert(unsigned(flip_mask(0x2e4c080, 52)) == 48545920);
+ assert(unsigned(flip_mask(0x2e4c084, 52)) == 48545924);
+ assert(unsigned(flip_mask(0x2e4c088, 52)) == 48545928);
+ assert(unsigned(flip_mask(0x2e4c08c, 52)) == 48545932);
+ assert(unsigned(flip_mask(0x2e4c090, 52)) == 48545936);
+ assert(unsigned(flip_mask(0x2e4c094, 52)) == 48545940);
+ assert(unsigned(flip_mask(0x2e4c098, 52)) == 48545944);
+ assert(unsigned(flip_mask(0x2e50000, 52)) == 48562176);
+ assert(unsigned(flip_mask(0x2e50004, 52)) == 48562180);
+ assert(unsigned(flip_mask(0x2e50008, 52)) == 48562184);
+ assert(unsigned(flip_mask(0x2e50010, 52)) == 48562192);
+ assert(unsigned(flip_mask(0x2e50014, 52)) == 48562196);
+ assert(unsigned(flip_mask(0x2e50018, 52)) == 48562200);
+ assert(unsigned(flip_mask(0x2e50020, 52)) == 48562208);
+ assert(unsigned(flip_mask(0x2e50024, 52)) == 48562212);
+ assert(unsigned(flip_mask(0x2e50028, 52)) == 48562216);
+ assert(unsigned(flip_mask(0x2e50030, 52)) == 48562224);
+ assert(unsigned(flip_mask(0x2e50034, 52)) == 48562228);
+ assert(unsigned(flip_mask(0x2e50038, 52)) == 48562232);
+ assert(unsigned(flip_mask(0x2e50040, 52)) == 48562240);
+ assert(unsigned(flip_mask(0x2e50044, 52)) == 48562244);
+ assert(unsigned(flip_mask(0x2e50048, 52)) == 48562248);
+ assert(unsigned(flip_mask(0x2e50050, 52)) == 48562256);
+ assert(unsigned(flip_mask(0x2e50054, 52)) == 48562260);
+ assert(unsigned(flip_mask(0x2e50058, 52)) == 48562264);
+ assert(unsigned(flip_mask(0x2e5005c, 52)) == 48562268);
+ assert(unsigned(flip_mask(0x2e50060, 52)) == 48562272);
+ assert(unsigned(flip_mask(0x2e50064, 52)) == 48562276);
+ assert(unsigned(flip_mask(0x2e50068, 52)) == 48562280);
+ assert(unsigned(flip_mask(0x2e5006c, 52)) == 48562284);
+ assert(unsigned(flip_mask(0x2e50070, 52)) == 48562288);
+ assert(unsigned(flip_mask(0x2e50074, 52)) == 48562292);
+ assert(unsigned(flip_mask(0x2e50078, 52)) == 48562296);
+ assert(unsigned(flip_mask(0x2e5007c, 52)) == 48562300);
+ assert(unsigned(flip_mask(0x2e50080, 52)) == 48562304);
+ assert(unsigned(flip_mask(0x2e50084, 52)) == 48562308);
+ assert(unsigned(flip_mask(0x2e50088, 52)) == 48562312);
+ assert(unsigned(flip_mask(0x2e5008c, 52)) == 48562316);
+ assert(unsigned(flip_mask(0x2e50090, 52)) == 48562320);
+ assert(unsigned(flip_mask(0x2e50094, 52)) == 48562324);
+ assert(unsigned(flip_mask(0x2e50098, 52)) == 48562328);
+ assert(unsigned(flip_mask(0x2e5009c, 52)) == 48562332);
+ assert(unsigned(flip_mask(0x2e500a0, 52)) == 48562336);
+ assert(unsigned(flip_mask(0x2e500a4, 52)) == 48562340);
+ assert(unsigned(flip_mask(0x2e500a8, 52)) == 48562344);
+ assert(unsigned(flip_mask(0x2e54078, 52)) == 48578680);
+ assert(unsigned(flip_mask(0x2e5407c, 52)) == 48578684);
+ assert(unsigned(flip_mask(0x2e54080, 52)) == 48578688);
+ assert(unsigned(flip_mask(0x2eb0000, 52)) == 48955392);
+ assert(unsigned(flip_mask(0x2ec0000, 52)) == 49020928);
+ assert(unsigned(flip_mask(0x2ee0000, 52)) == 49152000);
+ assert(unsigned(flip_mask(0x2ef0000, 52)) == 49217536);
+ assert(unsigned(flip_mask(0x2ef0040, 52)) == 49217600);
+ assert(unsigned(flip_mask(0x2f00200, 52)) == 49283584);
+ assert(unsigned(flip_mask(0x2f10800, 52)) == 49350656);
+ assert(unsigned(flip_mask(0x2f40000, 52)) == 49545216);
+ assert(unsigned(flip_mask(0x2f50000, 52)) == 49610752);
+ assert(unsigned(flip_mask(0x2f50040, 52)) == 49610816);
+ assert(unsigned(flip_mask(0x2f60200, 52)) == 49676800);
+ assert(unsigned(flip_mask(0x2f70800, 52)) == 49743872);
+ assert(unsigned(flip_mask(0x30000, 52)) == 196608);
+ assert(unsigned(flip_mask(0x30e0000, 52)) == 51249152);
+ assert(unsigned(flip_mask(0x30f0000, 52)) == 51314688);
+ assert(unsigned(flip_mask(0x3100000, 52)) == 51380224);
+ assert(unsigned(flip_mask(0x3100040, 52)) == 51380288);
+ assert(unsigned(flip_mask(0x3110208, 52)) == 51446280);
+ assert(unsigned(flip_mask(0x3120800, 52)) == 51513344);
+ assert(unsigned(flip_mask(0x31d0000, 52)) == 52232192);
+ assert(unsigned(flip_mask(0x31d0004, 52)) == 52232196);
+ assert(unsigned(flip_mask(0x31d0008, 52)) == 52232200);
+ assert(unsigned(flip_mask(0x31d000c, 52)) == 52232204);
+ assert(unsigned(flip_mask(0x31d0010, 52)) == 52232208);
+ assert(unsigned(flip_mask(0x31d0014, 52)) == 52232212);
+ assert(unsigned(flip_mask(0x31d0018, 52)) == 52232216);
+ assert(unsigned(flip_mask(0x31d001c, 52)) == 52232220);
+ assert(unsigned(flip_mask(0x31d0020, 52)) == 52232224);
+ assert(unsigned(flip_mask(0x31d0040, 52)) == 52232256);
+ assert(unsigned(flip_mask(0x31d0044, 52)) == 52232260);
+ assert(unsigned(flip_mask(0x31d0048, 52)) == 52232264);
+ assert(unsigned(flip_mask(0x31d004c, 52)) == 52232268);
+ assert(unsigned(flip_mask(0x31d0050, 52)) == 52232272);
+ assert(unsigned(flip_mask(0x31d0054, 52)) == 52232276);
+ assert(unsigned(flip_mask(0x31d0058, 52)) == 52232280);
+ assert(unsigned(flip_mask(0x31d005c, 52)) == 52232284);
+ assert(unsigned(flip_mask(0x31d0060, 52)) == 52232288);
+ assert(unsigned(flip_mask(0x31d0064, 52)) == 52232292);
+ assert(unsigned(flip_mask(0x31d0068, 52)) == 52232296);
+ assert(unsigned(flip_mask(0x31d006c, 52)) == 52232300);
+ assert(unsigned(flip_mask(0x31d0070, 52)) == 52232304);
+ assert(unsigned(flip_mask(0x31d0074, 52)) == 52232308);
+ assert(unsigned(flip_mask(0x31d0078, 52)) == 52232312);
+ assert(unsigned(flip_mask(0x31d007c, 52)) == 52232316);
+ assert(unsigned(flip_mask(0x31d0080, 52)) == 52232320);
+ assert(unsigned(flip_mask(0x31d0084, 52)) == 52232324);
+ assert(unsigned(flip_mask(0x31d0088, 52)) == 52232328);
+ assert(unsigned(flip_mask(0x31d008c, 52)) == 52232332);
+ assert(unsigned(flip_mask(0x31d0090, 52)) == 52232336);
+ assert(unsigned(flip_mask(0x31d0094, 52)) == 52232340);
+ assert(unsigned(flip_mask(0x31d0098, 52)) == 52232344);
+ assert(unsigned(flip_mask(0x31d009c, 52)) == 52232348);
+ assert(unsigned(flip_mask(0x31d00a0, 52)) == 52232352);
+ assert(unsigned(flip_mask(0x31d00a4, 52)) == 52232356);
+ assert(unsigned(flip_mask(0x31d00a8, 52)) == 52232360);
+ assert(unsigned(flip_mask(0x31d00ac, 52)) == 52232364);
+ assert(unsigned(flip_mask(0x31d00b0, 52)) == 52232368);
+ assert(unsigned(flip_mask(0x31d00b4, 52)) == 52232372);
+ assert(unsigned(flip_mask(0x31d00b8, 52)) == 52232376);
+ assert(unsigned(flip_mask(0x31d00bc, 52)) == 52232380);
+ assert(unsigned(flip_mask(0x31d00c0, 52)) == 52232384);
+ assert(unsigned(flip_mask(0x31d00c4, 52)) == 52232388);
+ assert(unsigned(flip_mask(0x31d00c8, 52)) == 52232392);
+ assert(unsigned(flip_mask(0x31d00cc, 52)) == 52232396);
+ assert(unsigned(flip_mask(0x31d00d0, 52)) == 52232400);
+ assert(unsigned(flip_mask(0x31d00d4, 52)) == 52232404);
+ assert(unsigned(flip_mask(0x31d00d8, 52)) == 52232408);
+ assert(unsigned(flip_mask(0x31d00dc, 52)) == 52232412);
+ assert(unsigned(flip_mask(0x31d00e0, 52)) == 52232416);
+ assert(unsigned(flip_mask(0x31d00e4, 52)) == 52232420);
+ assert(unsigned(flip_mask(0x31d00e8, 52)) == 52232424);
+ assert(unsigned(flip_mask(0x31d00ec, 52)) == 52232428);
+ assert(unsigned(flip_mask(0x31d00f0, 52)) == 52232432);
+ assert(unsigned(flip_mask(0x31d00f4, 52)) == 52232436);
+ assert(unsigned(flip_mask(0x31d00f8, 52)) == 52232440);
+ assert(unsigned(flip_mask(0x31d00fc, 52)) == 52232444);
+ assert(unsigned(flip_mask(0x31d0100, 52)) == 52232448);
+ assert(unsigned(flip_mask(0x31d0104, 52)) == 52232452);
+ assert(unsigned(flip_mask(0x31d0108, 52)) == 52232456);
+ assert(unsigned(flip_mask(0x31d010c, 52)) == 52232460);
+ assert(unsigned(flip_mask(0x31d0110, 52)) == 52232464);
+ assert(unsigned(flip_mask(0x31d0138, 52)) == 52232504);
+ assert(unsigned(flip_mask(0x31d013c, 52)) == 52232508);
+ assert(unsigned(flip_mask(0x31d0140, 52)) == 52232512);
+ assert(unsigned(flip_mask(0x31d0144, 52)) == 52232516);
+ assert(unsigned(flip_mask(0x31d0178, 52)) == 52232568);
+ assert(unsigned(flip_mask(0x31d017c, 52)) == 52232572);
+ assert(unsigned(flip_mask(0x31d0194, 52)) == 52232596);
+ assert(unsigned(flip_mask(0x31d01a0, 52)) == 52232608);
+ assert(unsigned(flip_mask(0x31d01c0, 52)) == 52232640);
+ assert(unsigned(flip_mask(0x31d01e0, 52)) == 52232672);
+ assert(unsigned(flip_mask(0x31d01e8, 52)) == 52232680);
+ assert(unsigned(flip_mask(0x31d01f0, 52)) == 52232688);
+ assert(unsigned(flip_mask(0x31d0200, 52)) == 52232704);
+ assert(unsigned(flip_mask(0x31d0208, 52)) == 52232712);
+ assert(unsigned(flip_mask(0x31d0218, 52)) == 52232728);
+ assert(unsigned(flip_mask(0x31d0220, 52)) == 52232736);
+ assert(unsigned(flip_mask(0x31d0228, 52)) == 52232744);
+ assert(unsigned(flip_mask(0x31d0230, 52)) == 52232752);
+ assert(unsigned(flip_mask(0x31d0248, 52)) == 52232776);
+ assert(unsigned(flip_mask(0x31d0250, 52)) == 52232784);
+ assert(unsigned(flip_mask(0x31d0258, 52)) == 52232792);
+ assert(unsigned(flip_mask(0x31d0260, 52)) == 52232800);
+ assert(unsigned(flip_mask(0x31d02e0, 52)) == 52232928);
+ assert(unsigned(flip_mask(0x31d02f8, 52)) == 52232952);
+ assert(unsigned(flip_mask(0x31d0300, 52)) == 52232960);
+ assert(unsigned(flip_mask(0x31d0308, 52)) == 52232968);
+ assert(unsigned(flip_mask(0x31d0318, 52)) == 52232984);
+ assert(unsigned(flip_mask(0x31d0320, 52)) == 52232992);
+ assert(unsigned(flip_mask(0x31d0328, 52)) == 52233000);
+ assert(unsigned(flip_mask(0x31d04d0, 52)) == 52233424);
+ assert(unsigned(flip_mask(0x31d04d4, 52)) == 52233428);
+ assert(unsigned(flip_mask(0x31d04d8, 52)) == 52233432);
+ assert(unsigned(flip_mask(0x31d04dc, 52)) == 52233436);
+ assert(unsigned(flip_mask(0x31d04e0, 52)) == 52233440);
+ assert(unsigned(flip_mask(0x31d04e4, 52)) == 52233444);
+ assert(unsigned(flip_mask(0x31d04e8, 52)) == 52233448);
+ assert(unsigned(flip_mask(0x31d04ec, 52)) == 52233452);
+ assert(unsigned(flip_mask(0x31d04f0, 52)) == 52233456);
+ assert(unsigned(flip_mask(0x31d04f4, 52)) == 52233460);
+ assert(unsigned(flip_mask(0x31d04f8, 52)) == 52233464);
+ assert(unsigned(flip_mask(0x31d04fc, 52)) == 52233468);
+ assert(unsigned(flip_mask(0x31d0500, 52)) == 52233472);
+ assert(unsigned(flip_mask(0x31d0504, 52)) == 52233476);
+ assert(unsigned(flip_mask(0x31d0508, 52)) == 52233480);
+ assert(unsigned(flip_mask(0x31d050c, 52)) == 52233484);
+ assert(unsigned(flip_mask(0x31d0510, 52)) == 52233488);
+ assert(unsigned(flip_mask(0x31d0514, 52)) == 52233492);
+ assert(unsigned(flip_mask(0x31d0518, 52)) == 52233496);
+ assert(unsigned(flip_mask(0x31d051c, 52)) == 52233500);
+ assert(unsigned(flip_mask(0x31d0520, 52)) == 52233504);
+ assert(unsigned(flip_mask(0x31d0524, 52)) == 52233508);
+ assert(unsigned(flip_mask(0x31d0528, 52)) == 52233512);
+ assert(unsigned(flip_mask(0x31d052c, 52)) == 52233516);
+ assert(unsigned(flip_mask(0x31d0530, 52)) == 52233520);
+ assert(unsigned(flip_mask(0x31d0534, 52)) == 52233524);
+ assert(unsigned(flip_mask(0x31d0538, 52)) == 52233528);
+ assert(unsigned(flip_mask(0x31d053c, 52)) == 52233532);
+ assert(unsigned(flip_mask(0x31d0540, 52)) == 52233536);
+ assert(unsigned(flip_mask(0x31d0544, 52)) == 52233540);
+ assert(unsigned(flip_mask(0x31d0548, 52)) == 52233544);
+ assert(unsigned(flip_mask(0x31d054c, 52)) == 52233548);
+ assert(unsigned(flip_mask(0x31d0550, 52)) == 52233552);
+ assert(unsigned(flip_mask(0x31d0554, 52)) == 52233556);
+ assert(unsigned(flip_mask(0x31d0558, 52)) == 52233560);
+ assert(unsigned(flip_mask(0x31d055c, 52)) == 52233564);
+ assert(unsigned(flip_mask(0x31d0560, 52)) == 52233568);
+ assert(unsigned(flip_mask(0x31d0564, 52)) == 52233572);
+ assert(unsigned(flip_mask(0x31d0568, 52)) == 52233576);
+ assert(unsigned(flip_mask(0x31d056c, 52)) == 52233580);
+ assert(unsigned(flip_mask(0x31d0570, 52)) == 52233584);
+ assert(unsigned(flip_mask(0x31d0574, 52)) == 52233588);
+ assert(unsigned(flip_mask(0x31d0578, 52)) == 52233592);
+ assert(unsigned(flip_mask(0x31d057c, 52)) == 52233596);
+ assert(unsigned(flip_mask(0x31d0580, 52)) == 52233600);
+ assert(unsigned(flip_mask(0x31d0584, 52)) == 52233604);
+ assert(unsigned(flip_mask(0x31d0588, 52)) == 52233608);
+ assert(unsigned(flip_mask(0x31d058c, 52)) == 52233612);
+ assert(unsigned(flip_mask(0x31d0590, 52)) == 52233616);
+ assert(unsigned(flip_mask(0x31d0594, 52)) == 52233620);
+ assert(unsigned(flip_mask(0x31d0598, 52)) == 52233624);
+ assert(unsigned(flip_mask(0x31d059c, 52)) == 52233628);
+ assert(unsigned(flip_mask(0x31d05a0, 52)) == 52233632);
+ assert(unsigned(flip_mask(0x31d05a4, 52)) == 52233636);
+ assert(unsigned(flip_mask(0x31d05a8, 52)) == 52233640);
+ assert(unsigned(flip_mask(0x31d05ac, 52)) == 52233644);
+ assert(unsigned(flip_mask(0x31d05b0, 52)) == 52233648);
+ assert(unsigned(flip_mask(0x31d05b4, 52)) == 52233652);
+ assert(unsigned(flip_mask(0x31d05b8, 52)) == 52233656);
+ assert(unsigned(flip_mask(0x31d05bc, 52)) == 52233660);
+ assert(unsigned(flip_mask(0x31d05c0, 52)) == 52233664);
+ assert(unsigned(flip_mask(0x31d05c4, 52)) == 52233668);
+ assert(unsigned(flip_mask(0x31d05c8, 52)) == 52233672);
+ assert(unsigned(flip_mask(0x31d05cc, 52)) == 52233676);
+ assert(unsigned(flip_mask(0x31d05d0, 52)) == 52233680);
+ assert(unsigned(flip_mask(0x31d05d4, 52)) == 52233684);
+ assert(unsigned(flip_mask(0x31d05d8, 52)) == 52233688);
+ assert(unsigned(flip_mask(0x31d05dc, 52)) == 52233692);
+ assert(unsigned(flip_mask(0x31d05e0, 52)) == 52233696);
+ assert(unsigned(flip_mask(0x31d05e4, 52)) == 52233700);
+ assert(unsigned(flip_mask(0x31d05e8, 52)) == 52233704);
+ assert(unsigned(flip_mask(0x31d05ec, 52)) == 52233708);
+ assert(unsigned(flip_mask(0x31d05f0, 52)) == 52233712);
+ assert(unsigned(flip_mask(0x31d05f4, 52)) == 52233716);
+ assert(unsigned(flip_mask(0x31d05f8, 52)) == 52233720);
+ assert(unsigned(flip_mask(0x31d05fc, 52)) == 52233724);
+ assert(unsigned(flip_mask(0x31d0600, 52)) == 52233728);
+ assert(unsigned(flip_mask(0x31d0604, 52)) == 52233732);
+ assert(unsigned(flip_mask(0x31d0608, 52)) == 52233736);
+ assert(unsigned(flip_mask(0x31d060c, 52)) == 52233740);
+ assert(unsigned(flip_mask(0x31d0610, 52)) == 52233744);
+ assert(unsigned(flip_mask(0x31d0614, 52)) == 52233748);
+ assert(unsigned(flip_mask(0x31d0618, 52)) == 52233752);
+ assert(unsigned(flip_mask(0x31d061c, 52)) == 52233756);
+ assert(unsigned(flip_mask(0x31d0620, 52)) == 52233760);
+ assert(unsigned(flip_mask(0x31d0624, 52)) == 52233764);
+ assert(unsigned(flip_mask(0x31d0628, 52)) == 52233768);
+ assert(unsigned(flip_mask(0x31d062c, 52)) == 52233772);
+ assert(unsigned(flip_mask(0x31d0630, 52)) == 52233776);
+ assert(unsigned(flip_mask(0x31d0634, 52)) == 52233780);
+ assert(unsigned(flip_mask(0x31d0638, 52)) == 52233784);
+ assert(unsigned(flip_mask(0x31d063c, 52)) == 52233788);
+ assert(unsigned(flip_mask(0x31d0640, 52)) == 52233792);
+ assert(unsigned(flip_mask(0x31d0644, 52)) == 52233796);
+ assert(unsigned(flip_mask(0x31d0648, 52)) == 52233800);
+ assert(unsigned(flip_mask(0x31d064c, 52)) == 52233804);
+ assert(unsigned(flip_mask(0x31d0650, 52)) == 52233808);
+ assert(unsigned(flip_mask(0x31d0654, 52)) == 52233812);
+ assert(unsigned(flip_mask(0x31d0658, 52)) == 52233816);
+ assert(unsigned(flip_mask(0x31d065c, 52)) == 52233820);
+ assert(unsigned(flip_mask(0x31d0660, 52)) == 52233824);
+ assert(unsigned(flip_mask(0x31d0664, 52)) == 52233828);
+ assert(unsigned(flip_mask(0x31d0668, 52)) == 52233832);
+ assert(unsigned(flip_mask(0x31d066c, 52)) == 52233836);
+ assert(unsigned(flip_mask(0x31d0670, 52)) == 52233840);
+ assert(unsigned(flip_mask(0x31d0674, 52)) == 52233844);
+ assert(unsigned(flip_mask(0x31d0678, 52)) == 52233848);
+ assert(unsigned(flip_mask(0x31d067c, 52)) == 52233852);
+ assert(unsigned(flip_mask(0x31d0680, 52)) == 52233856);
+ assert(unsigned(flip_mask(0x31d0684, 52)) == 52233860);
+ assert(unsigned(flip_mask(0x31d0688, 52)) == 52233864);
+ assert(unsigned(flip_mask(0x31d068c, 52)) == 52233868);
+ assert(unsigned(flip_mask(0x31d0690, 52)) == 52233872);
+ assert(unsigned(flip_mask(0x31d0694, 52)) == 52233876);
+ assert(unsigned(flip_mask(0x31d0698, 52)) == 52233880);
+ assert(unsigned(flip_mask(0x31d06b0, 52)) == 52233904);
+ assert(unsigned(flip_mask(0x31d06b4, 52)) == 52233908);
+ assert(unsigned(flip_mask(0x31d06b8, 52)) == 52233912);
+ assert(unsigned(flip_mask(0x31d06bc, 52)) == 52233916);
+ assert(unsigned(flip_mask(0x31d06c0, 52)) == 52233920);
+ assert(unsigned(flip_mask(0x31d06c4, 52)) == 52233924);
+ assert(unsigned(flip_mask(0x31d06c8, 52)) == 52233928);
+ assert(unsigned(flip_mask(0x31d06cc, 52)) == 52233932);
+ assert(unsigned(flip_mask(0x31d06d0, 52)) == 52233936);
+ assert(unsigned(flip_mask(0x31d06d4, 52)) == 52233940);
+ assert(unsigned(flip_mask(0x31d06d8, 52)) == 52233944);
+ assert(unsigned(flip_mask(0x31d06dc, 52)) == 52233948);
+ assert(unsigned(flip_mask(0x31d06e0, 52)) == 52233952);
+ assert(unsigned(flip_mask(0x31d06e4, 52)) == 52233956);
+ assert(unsigned(flip_mask(0x31d06e8, 52)) == 52233960);
+ assert(unsigned(flip_mask(0x31d0700, 52)) == 52233984);
+ assert(unsigned(flip_mask(0x31d0704, 52)) == 52233988);
+ assert(unsigned(flip_mask(0x31d0708, 52)) == 52233992);
+ assert(unsigned(flip_mask(0x31d070c, 52)) == 52233996);
+ assert(unsigned(flip_mask(0x31d0710, 52)) == 52234000);
+ assert(unsigned(flip_mask(0x31d0714, 52)) == 52234004);
+ assert(unsigned(flip_mask(0x31d0718, 52)) == 52234008);
+ assert(unsigned(flip_mask(0x31d071c, 52)) == 52234012);
+ assert(unsigned(flip_mask(0x31d0720, 52)) == 52234016);
+ assert(unsigned(flip_mask(0x31d0724, 52)) == 52234020);
+ assert(unsigned(flip_mask(0x31d073c, 52)) == 52234044);
+ assert(unsigned(flip_mask(0x31d0740, 52)) == 52234048);
+ assert(unsigned(flip_mask(0x31d0744, 52)) == 52234052);
+ assert(unsigned(flip_mask(0x31d0748, 52)) == 52234056);
+ assert(unsigned(flip_mask(0x31d074c, 52)) == 52234060);
+ assert(unsigned(flip_mask(0x31d0750, 52)) == 52234064);
+ assert(unsigned(flip_mask(0x31d0754, 52)) == 52234068);
+ assert(unsigned(flip_mask(0x31d0758, 52)) == 52234072);
+ assert(unsigned(flip_mask(0x31d075c, 52)) == 52234076);
+ assert(unsigned(flip_mask(0x31d0760, 52)) == 52234080);
+ assert(unsigned(flip_mask(0x31d0764, 52)) == 52234084);
+ assert(unsigned(flip_mask(0x31d0768, 52)) == 52234088);
+ assert(unsigned(flip_mask(0x31d076c, 52)) == 52234092);
+ assert(unsigned(flip_mask(0x31d0770, 52)) == 52234096);
+ assert(unsigned(flip_mask(0x31d0774, 52)) == 52234100);
+ assert(unsigned(flip_mask(0x31d0778, 52)) == 52234104);
+ assert(unsigned(flip_mask(0x31d077c, 52)) == 52234108);
+ assert(unsigned(flip_mask(0x31d0780, 52)) == 52234112);
+ assert(unsigned(flip_mask(0x31d0784, 52)) == 52234116);
+ assert(unsigned(flip_mask(0x31d0788, 52)) == 52234120);
+ assert(unsigned(flip_mask(0x31d078c, 52)) == 52234124);
+ assert(unsigned(flip_mask(0x31d0790, 52)) == 52234128);
+ assert(unsigned(flip_mask(0x31d07d8, 52)) == 52234200);
+ assert(unsigned(flip_mask(0x31d07dc, 52)) == 52234204);
+ assert(unsigned(flip_mask(0x31d07e0, 52)) == 52234208);
+ assert(unsigned(flip_mask(0x31d07e4, 52)) == 52234212);
+ assert(unsigned(flip_mask(0x31d07e8, 52)) == 52234216);
+ assert(unsigned(flip_mask(0x31d07ec, 52)) == 52234220);
+ assert(unsigned(flip_mask(0x31d07f0, 52)) == 52234224);
+ assert(unsigned(flip_mask(0x31d07f4, 52)) == 52234228);
+ assert(unsigned(flip_mask(0x31d07f8, 52)) == 52234232);
+ assert(unsigned(flip_mask(0x31d07fc, 52)) == 52234236);
+ assert(unsigned(flip_mask(0x31d0800, 52)) == 52234240);
+ assert(unsigned(flip_mask(0x31d0804, 52)) == 52234244);
+ assert(unsigned(flip_mask(0x31d0808, 52)) == 52234248);
+ assert(unsigned(flip_mask(0x31d080c, 52)) == 52234252);
+ assert(unsigned(flip_mask(0x31d0810, 52)) == 52234256);
+ assert(unsigned(flip_mask(0x31d0814, 52)) == 52234260);
+ assert(unsigned(flip_mask(0x31d0818, 52)) == 52234264);
+ assert(unsigned(flip_mask(0x31d081c, 52)) == 52234268);
+ assert(unsigned(flip_mask(0x31d0820, 52)) == 52234272);
+ assert(unsigned(flip_mask(0x31d0824, 52)) == 52234276);
+ assert(unsigned(flip_mask(0x31d0828, 52)) == 52234280);
+ assert(unsigned(flip_mask(0x31d082c, 52)) == 52234284);
+ assert(unsigned(flip_mask(0x31d0830, 52)) == 52234288);
+ assert(unsigned(flip_mask(0x31d0834, 52)) == 52234292);
+ assert(unsigned(flip_mask(0x31d0838, 52)) == 52234296);
+ assert(unsigned(flip_mask(0x31d083c, 52)) == 52234300);
+ assert(unsigned(flip_mask(0x31d0840, 52)) == 52234304);
+ assert(unsigned(flip_mask(0x31d0844, 52)) == 52234308);
+ assert(unsigned(flip_mask(0x31d0848, 52)) == 52234312);
+ assert(unsigned(flip_mask(0x31d084c, 52)) == 52234316);
+ assert(unsigned(flip_mask(0x31d0850, 52)) == 52234320);
+ assert(unsigned(flip_mask(0x31d0854, 52)) == 52234324);
+ assert(unsigned(flip_mask(0x31d0858, 52)) == 52234328);
+ assert(unsigned(flip_mask(0x31d085c, 52)) == 52234332);
+ assert(unsigned(flip_mask(0x31d0860, 52)) == 52234336);
+ assert(unsigned(flip_mask(0x31d0864, 52)) == 52234340);
+ assert(unsigned(flip_mask(0x31d0868, 52)) == 52234344);
+ assert(unsigned(flip_mask(0x31d086c, 52)) == 52234348);
+ assert(unsigned(flip_mask(0x31d0870, 52)) == 52234352);
+ assert(unsigned(flip_mask(0x31d0874, 52)) == 52234356);
+ assert(unsigned(flip_mask(0x31d0890, 52)) == 52234384);
+ assert(unsigned(flip_mask(0x31d0898, 52)) == 52234392);
+ assert(unsigned(flip_mask(0x31d08a0, 52)) == 52234400);
+ assert(unsigned(flip_mask(0x31d08a8, 52)) == 52234408);
+ assert(unsigned(flip_mask(0x31d08ac, 52)) == 52234412);
+ assert(unsigned(flip_mask(0x31d08b0, 52)) == 52234416);
+ assert(unsigned(flip_mask(0x31d08b4, 52)) == 52234420);
+ assert(unsigned(flip_mask(0x31d08b8, 52)) == 52234424);
+ assert(unsigned(flip_mask(0x31d08bc, 52)) == 52234428);
+ assert(unsigned(flip_mask(0x31d08c0, 52)) == 52234432);
+ assert(unsigned(flip_mask(0x31d08c4, 52)) == 52234436);
+ assert(unsigned(flip_mask(0x31d08c8, 52)) == 52234440);
+ assert(unsigned(flip_mask(0x31d08cc, 52)) == 52234444);
+ assert(unsigned(flip_mask(0x31d08d0, 52)) == 52234448);
+ assert(unsigned(flip_mask(0x31d08d4, 52)) == 52234452);
+ assert(unsigned(flip_mask(0x31d08d8, 52)) == 52234456);
+ assert(unsigned(flip_mask(0x31d08dc, 52)) == 52234460);
+ assert(unsigned(flip_mask(0x31d08e0, 52)) == 52234464);
+ assert(unsigned(flip_mask(0x31d08e4, 52)) == 52234468);
+ assert(unsigned(flip_mask(0x31d08e8, 52)) == 52234472);
+ assert(unsigned(flip_mask(0x31d08ec, 52)) == 52234476);
+ assert(unsigned(flip_mask(0x31d08f0, 52)) == 52234480);
+ assert(unsigned(flip_mask(0x31d08f4, 52)) == 52234484);
+ assert(unsigned(flip_mask(0x31d08fc, 52)) == 52234492);
+ assert(unsigned(flip_mask(0x31d0900, 52)) == 52234496);
+ assert(unsigned(flip_mask(0x31d0904, 52)) == 52234500);
+ assert(unsigned(flip_mask(0x31d0908, 52)) == 52234504);
+ assert(unsigned(flip_mask(0x31d090c, 52)) == 52234508);
+ assert(unsigned(flip_mask(0x31d0910, 52)) == 52234512);
+ assert(unsigned(flip_mask(0x31d0914, 52)) == 52234516);
+ assert(unsigned(flip_mask(0x31d0918, 52)) == 52234520);
+ assert(unsigned(flip_mask(0x31d091c, 52)) == 52234524);
+ assert(unsigned(flip_mask(0x31d0920, 52)) == 52234528);
+ assert(unsigned(flip_mask(0x31d0924, 52)) == 52234532);
+ assert(unsigned(flip_mask(0x31d0928, 52)) == 52234536);
+ assert(unsigned(flip_mask(0x31d092c, 52)) == 52234540);
+ assert(unsigned(flip_mask(0x31d0930, 52)) == 52234544);
+ assert(unsigned(flip_mask(0x31d0934, 52)) == 52234548);
+ assert(unsigned(flip_mask(0x31d0938, 52)) == 52234552);
+ assert(unsigned(flip_mask(0x31d093c, 52)) == 52234556);
+ assert(unsigned(flip_mask(0x31d0940, 52)) == 52234560);
+ assert(unsigned(flip_mask(0x31d0944, 52)) == 52234564);
+ assert(unsigned(flip_mask(0x31d0948, 52)) == 52234568);
+ assert(unsigned(flip_mask(0x31d094c, 52)) == 52234572);
+ assert(unsigned(flip_mask(0x31d0950, 52)) == 52234576);
+ assert(unsigned(flip_mask(0x31d0954, 52)) == 52234580);
+ assert(unsigned(flip_mask(0x31d0958, 52)) == 52234584);
+ assert(unsigned(flip_mask(0x31d095c, 52)) == 52234588);
+ assert(unsigned(flip_mask(0x31d0960, 52)) == 52234592);
+ assert(unsigned(flip_mask(0x31d0964, 52)) == 52234596);
+ assert(unsigned(flip_mask(0x31d0968, 52)) == 52234600);
+ assert(unsigned(flip_mask(0x31d096c, 52)) == 52234604);
+ assert(unsigned(flip_mask(0x31d0970, 52)) == 52234608);
+ assert(unsigned(flip_mask(0x31d0974, 52)) == 52234612);
+ assert(unsigned(flip_mask(0x31d0978, 52)) == 52234616);
+ assert(unsigned(flip_mask(0x31d097c, 52)) == 52234620);
+ assert(unsigned(flip_mask(0x31d0980, 52)) == 52234624);
+ assert(unsigned(flip_mask(0x31d0984, 52)) == 52234628);
+ assert(unsigned(flip_mask(0x31d0988, 52)) == 52234632);
+ assert(unsigned(flip_mask(0x31d098c, 52)) == 52234636);
+ assert(unsigned(flip_mask(0x31d0990, 52)) == 52234640);
+ assert(unsigned(flip_mask(0x31d0994, 52)) == 52234644);
+ assert(unsigned(flip_mask(0x31d0998, 52)) == 52234648);
+ assert(unsigned(flip_mask(0x31d099c, 52)) == 52234652);
+ assert(unsigned(flip_mask(0x31d09a0, 52)) == 52234656);
+ assert(unsigned(flip_mask(0x31d09a4, 52)) == 52234660);
+ assert(unsigned(flip_mask(0x31d09a8, 52)) == 52234664);
+ assert(unsigned(flip_mask(0x31d09ac, 52)) == 52234668);
+ assert(unsigned(flip_mask(0x31d09b0, 52)) == 52234672);
+ assert(unsigned(flip_mask(0x31d09b4, 52)) == 52234676);
+ assert(unsigned(flip_mask(0x31d09b8, 52)) == 52234680);
+ assert(unsigned(flip_mask(0x31d09bc, 52)) == 52234684);
+ assert(unsigned(flip_mask(0x31d09c0, 52)) == 52234688);
+ assert(unsigned(flip_mask(0x31d09c4, 52)) == 52234692);
+ assert(unsigned(flip_mask(0x31d09c8, 52)) == 52234696);
+ assert(unsigned(flip_mask(0x31d09cc, 52)) == 52234700);
+ assert(unsigned(flip_mask(0x31d09d0, 52)) == 52234704);
+ assert(unsigned(flip_mask(0x31d09d4, 52)) == 52234708);
+ assert(unsigned(flip_mask(0x31d09dc, 52)) == 52234716);
+ assert(unsigned(flip_mask(0x31d09e0, 52)) == 52234720);
+ assert(unsigned(flip_mask(0x31d09e4, 52)) == 52234724);
+ assert(unsigned(flip_mask(0x31d09e8, 52)) == 52234728);
+ assert(unsigned(flip_mask(0x31d09ec, 52)) == 52234732);
+ assert(unsigned(flip_mask(0x31d09f0, 52)) == 52234736);
+ assert(unsigned(flip_mask(0x31d09f4, 52)) == 52234740);
+ assert(unsigned(flip_mask(0x31d09f8, 52)) == 52234744);
+ assert(unsigned(flip_mask(0x31d09fc, 52)) == 52234748);
+ assert(unsigned(flip_mask(0x31d0a08, 52)) == 52234760);
+ assert(unsigned(flip_mask(0x31d0a0c, 52)) == 52234764);
+ assert(unsigned(flip_mask(0x31d0a10, 52)) == 52234768);
+ assert(unsigned(flip_mask(0x31d0a14, 52)) == 52234772);
+ assert(unsigned(flip_mask(0x31d0a18, 52)) == 52234776);
+ assert(unsigned(flip_mask(0x31d0a1c, 52)) == 52234780);
+ assert(unsigned(flip_mask(0x31d0a20, 52)) == 52234784);
+ assert(unsigned(flip_mask(0x31d0a24, 52)) == 52234788);
+ assert(unsigned(flip_mask(0x31d0a28, 52)) == 52234792);
+ assert(unsigned(flip_mask(0x31d0a2c, 52)) == 52234796);
+ assert(unsigned(flip_mask(0x31d0a30, 52)) == 52234800);
+ assert(unsigned(flip_mask(0x31d0a34, 52)) == 52234804);
+ assert(unsigned(flip_mask(0x31d0a38, 52)) == 52234808);
+ assert(unsigned(flip_mask(0x31d0a3c, 52)) == 52234812);
+ assert(unsigned(flip_mask(0x31d0a40, 52)) == 52234816);
+ assert(unsigned(flip_mask(0x31d0a44, 52)) == 52234820);
+ assert(unsigned(flip_mask(0x31d0a48, 52)) == 52234824);
+ assert(unsigned(flip_mask(0x31d0a4c, 52)) == 52234828);
+ assert(unsigned(flip_mask(0x31d0a50, 52)) == 52234832);
+ assert(unsigned(flip_mask(0x31d0a54, 52)) == 52234836);
+ assert(unsigned(flip_mask(0x31d0a58, 52)) == 52234840);
+ assert(unsigned(flip_mask(0x31d0a5c, 52)) == 52234844);
+ assert(unsigned(flip_mask(0x31d0a60, 52)) == 52234848);
+ assert(unsigned(flip_mask(0x31d0a64, 52)) == 52234852);
+ assert(unsigned(flip_mask(0x31d0a68, 52)) == 52234856);
+ assert(unsigned(flip_mask(0x31d0a6c, 52)) == 52234860);
+ assert(unsigned(flip_mask(0x31d0a70, 52)) == 52234864);
+ assert(unsigned(flip_mask(0x31d0a74, 52)) == 52234868);
+ assert(unsigned(flip_mask(0x31d0a78, 52)) == 52234872);
+ assert(unsigned(flip_mask(0x31d0a7c, 52)) == 52234876);
+ assert(unsigned(flip_mask(0x31d0a80, 52)) == 52234880);
+ assert(unsigned(flip_mask(0x31d0a84, 52)) == 52234884);
+ assert(unsigned(flip_mask(0x31d0a88, 52)) == 52234888);
+ assert(unsigned(flip_mask(0x31d0a8c, 52)) == 52234892);
+ assert(unsigned(flip_mask(0x31d0a90, 52)) == 52234896);
+ assert(unsigned(flip_mask(0x31d0a94, 52)) == 52234900);
+ assert(unsigned(flip_mask(0x31d0a98, 52)) == 52234904);
+ assert(unsigned(flip_mask(0x31d0a9c, 52)) == 52234908);
+ assert(unsigned(flip_mask(0x31d0aa0, 52)) == 52234912);
+ assert(unsigned(flip_mask(0x31d0aa4, 52)) == 52234916);
+ assert(unsigned(flip_mask(0x31d0aa8, 52)) == 52234920);
+ assert(unsigned(flip_mask(0x31d0aac, 52)) == 52234924);
+ assert(unsigned(flip_mask(0x31d0ab0, 52)) == 52234928);
+ assert(unsigned(flip_mask(0x31d0ab4, 52)) == 52234932);
+ assert(unsigned(flip_mask(0x31d0ab8, 52)) == 52234936);
+ assert(unsigned(flip_mask(0x31d0abc, 52)) == 52234940);
+ assert(unsigned(flip_mask(0x31d0ac0, 52)) == 52234944);
+ assert(unsigned(flip_mask(0x31d0ac4, 52)) == 52234948);
+ assert(unsigned(flip_mask(0x31d0ac8, 52)) == 52234952);
+ assert(unsigned(flip_mask(0x31d0acc, 52)) == 52234956);
+ assert(unsigned(flip_mask(0x31d0ad0, 52)) == 52234960);
+ assert(unsigned(flip_mask(0x31d0ad4, 52)) == 52234964);
+ assert(unsigned(flip_mask(0x31d0ad8, 52)) == 52234968);
+ assert(unsigned(flip_mask(0x31d0adc, 52)) == 52234972);
+ assert(unsigned(flip_mask(0x31d0ae0, 52)) == 52234976);
+ assert(unsigned(flip_mask(0x31d0ae4, 52)) == 52234980);
+ assert(unsigned(flip_mask(0x31d0ae8, 52)) == 52234984);
+ assert(unsigned(flip_mask(0x31d0aec, 52)) == 52234988);
+ assert(unsigned(flip_mask(0x31d0af0, 52)) == 52234992);
+ assert(unsigned(flip_mask(0x31d0af4, 52)) == 52234996);
+ assert(unsigned(flip_mask(0x31d0af8, 52)) == 52235000);
+ assert(unsigned(flip_mask(0x31d0b08, 52)) == 52235016);
+ assert(unsigned(flip_mask(0x31d0b0c, 52)) == 52235020);
+ assert(unsigned(flip_mask(0x31d0b10, 52)) == 52235024);
+ assert(unsigned(flip_mask(0x31d0b14, 52)) == 52235028);
+ assert(unsigned(flip_mask(0x31d0b18, 52)) == 52235032);
+ assert(unsigned(flip_mask(0x31d0b1c, 52)) == 52235036);
+ assert(unsigned(flip_mask(0x31d0b20, 52)) == 52235040);
+ assert(unsigned(flip_mask(0x31d0b24, 52)) == 52235044);
+ assert(unsigned(flip_mask(0x31d0b28, 52)) == 52235048);
+ assert(unsigned(flip_mask(0x31d0b34, 52)) == 52235060);
+ assert(unsigned(flip_mask(0x31d0b38, 52)) == 52235064);
+ assert(unsigned(flip_mask(0x31d0b3c, 52)) == 52235068);
+ assert(unsigned(flip_mask(0x31d0b40, 52)) == 52235072);
+ assert(unsigned(flip_mask(0x31d0b50, 52)) == 52235088);
+ assert(unsigned(flip_mask(0x31d0b54, 52)) == 52235092);
+ assert(unsigned(flip_mask(0x31d0b58, 52)) == 52235096);
+ assert(unsigned(flip_mask(0x31d0b5c, 52)) == 52235100);
+ assert(unsigned(flip_mask(0x31d0b60, 52)) == 52235104);
+ assert(unsigned(flip_mask(0x31d0b64, 52)) == 52235108);
+ assert(unsigned(flip_mask(0x31d0b68, 52)) == 52235112);
+ assert(unsigned(flip_mask(0x31d0b6c, 52)) == 52235116);
+ assert(unsigned(flip_mask(0x31d0b70, 52)) == 52235120);
+ assert(unsigned(flip_mask(0x31d0b74, 52)) == 52235124);
+ assert(unsigned(flip_mask(0x31d0b78, 52)) == 52235128);
+ assert(unsigned(flip_mask(0x31d0b7c, 52)) == 52235132);
+ assert(unsigned(flip_mask(0x31d0b80, 52)) == 52235136);
+ assert(unsigned(flip_mask(0x31d0b84, 52)) == 52235140);
+ assert(unsigned(flip_mask(0x31d0b88, 52)) == 52235144);
+ assert(unsigned(flip_mask(0x31d0b8c, 52)) == 52235148);
+ assert(unsigned(flip_mask(0x31d0b90, 52)) == 52235152);
+ assert(unsigned(flip_mask(0x31d0b94, 52)) == 52235156);
+ assert(unsigned(flip_mask(0x31d0b98, 52)) == 52235160);
+ assert(unsigned(flip_mask(0x31d0b9c, 52)) == 52235164);
+ assert(unsigned(flip_mask(0x31d0ba0, 52)) == 52235168);
+ assert(unsigned(flip_mask(0x31d0ba4, 52)) == 52235172);
+ assert(unsigned(flip_mask(0x31d0ba8, 52)) == 52235176);
+ assert(unsigned(flip_mask(0x31d0bac, 52)) == 52235180);
+ assert(unsigned(flip_mask(0x31d0bb0, 52)) == 52235184);
+ assert(unsigned(flip_mask(0x31d0bb4, 52)) == 52235188);
+ assert(unsigned(flip_mask(0x31d0bb8, 52)) == 52235192);
+ assert(unsigned(flip_mask(0x31d0bbc, 52)) == 52235196);
+ assert(unsigned(flip_mask(0x31d0bc0, 52)) == 52235200);
+ assert(unsigned(flip_mask(0x31d0bc4, 52)) == 52235204);
+ assert(unsigned(flip_mask(0x31d0bc8, 52)) == 52235208);
+ assert(unsigned(flip_mask(0x31d0bcc, 52)) == 52235212);
+ assert(unsigned(flip_mask(0x31d0bd0, 52)) == 52235216);
+ assert(unsigned(flip_mask(0x31d0bd4, 52)) == 52235220);
+ assert(unsigned(flip_mask(0x31d0bd8, 52)) == 52235224);
+ assert(unsigned(flip_mask(0x31d0bdc, 52)) == 52235228);
+ assert(unsigned(flip_mask(0x31d0be0, 52)) == 52235232);
+ assert(unsigned(flip_mask(0x31d0be4, 52)) == 52235236);
+ assert(unsigned(flip_mask(0x31d0be8, 52)) == 52235240);
+ assert(unsigned(flip_mask(0x31d0bec, 52)) == 52235244);
+ assert(unsigned(flip_mask(0x31d0bf0, 52)) == 52235248);
+ assert(unsigned(flip_mask(0x31d0bf4, 52)) == 52235252);
+ assert(unsigned(flip_mask(0x31d0bf8, 52)) == 52235256);
+ assert(unsigned(flip_mask(0x31d0bfc, 52)) == 52235260);
+ assert(unsigned(flip_mask(0x31d0c00, 52)) == 52235264);
+ assert(unsigned(flip_mask(0x31d0c04, 52)) == 52235268);
+ assert(unsigned(flip_mask(0x31d0c08, 52)) == 52235272);
+ assert(unsigned(flip_mask(0x31d0c0c, 52)) == 52235276);
+ assert(unsigned(flip_mask(0x31d0c1c, 52)) == 52235292);
+ assert(unsigned(flip_mask(0x31d0c20, 52)) == 52235296);
+ assert(unsigned(flip_mask(0x31d0c24, 52)) == 52235300);
+ assert(unsigned(flip_mask(0x31d0c28, 52)) == 52235304);
+ assert(unsigned(flip_mask(0x31d0c2c, 52)) == 52235308);
+ assert(unsigned(flip_mask(0x31d0c30, 52)) == 52235312);
+ assert(unsigned(flip_mask(0x31d0c34, 52)) == 52235316);
+ assert(unsigned(flip_mask(0x31d0c38, 52)) == 52235320);
+ assert(unsigned(flip_mask(0x31d0c3c, 52)) == 52235324);
+ assert(unsigned(flip_mask(0x31d0c48, 52)) == 52235336);
+ assert(unsigned(flip_mask(0x31d0c4c, 52)) == 52235340);
+ assert(unsigned(flip_mask(0x31d0c50, 52)) == 52235344);
+ assert(unsigned(flip_mask(0x31d0c54, 52)) == 52235348);
+ assert(unsigned(flip_mask(0x31d0c64, 52)) == 52235364);
+ assert(unsigned(flip_mask(0x31d0c68, 52)) == 52235368);
+ assert(unsigned(flip_mask(0x31d0c6c, 52)) == 52235372);
+ assert(unsigned(flip_mask(0x31d0c70, 52)) == 52235376);
+ assert(unsigned(flip_mask(0x31d0c74, 52)) == 52235380);
+ assert(unsigned(flip_mask(0x31d0c78, 52)) == 52235384);
+ assert(unsigned(flip_mask(0x31d0c7c, 52)) == 52235388);
+ assert(unsigned(flip_mask(0x31d0c80, 52)) == 52235392);
+ assert(unsigned(flip_mask(0x31d0c84, 52)) == 52235396);
+ assert(unsigned(flip_mask(0x31d0c88, 52)) == 52235400);
+ assert(unsigned(flip_mask(0x31d0c8c, 52)) == 52235404);
+ assert(unsigned(flip_mask(0x31d0c90, 52)) == 52235408);
+ assert(unsigned(flip_mask(0x31d0c94, 52)) == 52235412);
+ assert(unsigned(flip_mask(0x31d0c98, 52)) == 52235416);
+ assert(unsigned(flip_mask(0x31d0c9c, 52)) == 52235420);
+ assert(unsigned(flip_mask(0x31d0ca0, 52)) == 52235424);
+ assert(unsigned(flip_mask(0x31d0ca4, 52)) == 52235428);
+ assert(unsigned(flip_mask(0x31d0ca8, 52)) == 52235432);
+ assert(unsigned(flip_mask(0x31d0cac, 52)) == 52235436);
+ assert(unsigned(flip_mask(0x31d0cb0, 52)) == 52235440);
+ assert(unsigned(flip_mask(0x31d0cb4, 52)) == 52235444);
+ assert(unsigned(flip_mask(0x31d0cb8, 52)) == 52235448);
+ assert(unsigned(flip_mask(0x31d0cbc, 52)) == 52235452);
+ assert(unsigned(flip_mask(0x31d0cc0, 52)) == 52235456);
+ assert(unsigned(flip_mask(0x31d0cc4, 52)) == 52235460);
+ assert(unsigned(flip_mask(0x31d0cc8, 52)) == 52235464);
+ assert(unsigned(flip_mask(0x31d0ccc, 52)) == 52235468);
+ assert(unsigned(flip_mask(0x31d0cd0, 52)) == 52235472);
+ assert(unsigned(flip_mask(0x31d0cd4, 52)) == 52235476);
+ assert(unsigned(flip_mask(0x31d0cd8, 52)) == 52235480);
+ assert(unsigned(flip_mask(0x31d0cdc, 52)) == 52235484);
+ assert(unsigned(flip_mask(0x31d0ce0, 52)) == 52235488);
+ assert(unsigned(flip_mask(0x31d0ce4, 52)) == 52235492);
+ assert(unsigned(flip_mask(0x31d0ce8, 52)) == 52235496);
+ assert(unsigned(flip_mask(0x31d0cec, 52)) == 52235500);
+ assert(unsigned(flip_mask(0x31d0cf0, 52)) == 52235504);
+ assert(unsigned(flip_mask(0x31d0cf4, 52)) == 52235508);
+ assert(unsigned(flip_mask(0x31d0cf8, 52)) == 52235512);
+ assert(unsigned(flip_mask(0x31d0cfc, 52)) == 52235516);
+ assert(unsigned(flip_mask(0x31d0d00, 52)) == 52235520);
+ assert(unsigned(flip_mask(0x31d0d04, 52)) == 52235524);
+ assert(unsigned(flip_mask(0x31d0d08, 52)) == 52235528);
+ assert(unsigned(flip_mask(0x31d0d0c, 52)) == 52235532);
+ assert(unsigned(flip_mask(0x31d0d10, 52)) == 52235536);
+ assert(unsigned(flip_mask(0x31d0d14, 52)) == 52235540);
+ assert(unsigned(flip_mask(0x31d0d24, 52)) == 52235556);
+ assert(unsigned(flip_mask(0x31d0d28, 52)) == 52235560);
+ assert(unsigned(flip_mask(0x31d0d2c, 52)) == 52235564);
+ assert(unsigned(flip_mask(0x31d0d30, 52)) == 52235568);
+ assert(unsigned(flip_mask(0x31d0d34, 52)) == 52235572);
+ assert(unsigned(flip_mask(0x31d0d38, 52)) == 52235576);
+ assert(unsigned(flip_mask(0x31d0d3c, 52)) == 52235580);
+ assert(unsigned(flip_mask(0x31d0d48, 52)) == 52235592);
+ assert(unsigned(flip_mask(0x31d0d4c, 52)) == 52235596);
+ assert(unsigned(flip_mask(0x31d0d50, 52)) == 52235600);
+ assert(unsigned(flip_mask(0x31d0d54, 52)) == 52235604);
+ assert(unsigned(flip_mask(0x31d0d64, 52)) == 52235620);
+ assert(unsigned(flip_mask(0x31d0d68, 52)) == 52235624);
+ assert(unsigned(flip_mask(0x31d0d6c, 52)) == 52235628);
+ assert(unsigned(flip_mask(0x31d0d70, 52)) == 52235632);
+ assert(unsigned(flip_mask(0x31d0d74, 52)) == 52235636);
+ assert(unsigned(flip_mask(0x31d0d78, 52)) == 52235640);
+ assert(unsigned(flip_mask(0x31d0d7c, 52)) == 52235644);
+ assert(unsigned(flip_mask(0x31d0d80, 52)) == 52235648);
+ assert(unsigned(flip_mask(0x31d0d84, 52)) == 52235652);
+ assert(unsigned(flip_mask(0x31d0d88, 52)) == 52235656);
+ assert(unsigned(flip_mask(0x31d0d8c, 52)) == 52235660);
+ assert(unsigned(flip_mask(0x31d0d90, 52)) == 52235664);
+ assert(unsigned(flip_mask(0x31d0d94, 52)) == 52235668);
+ assert(unsigned(flip_mask(0x31d0d98, 52)) == 52235672);
+ assert(unsigned(flip_mask(0x31d0d9c, 52)) == 52235676);
+ assert(unsigned(flip_mask(0x31d0da0, 52)) == 52235680);
+ assert(unsigned(flip_mask(0x31d0da4, 52)) == 52235684);
+ assert(unsigned(flip_mask(0x31d0da8, 52)) == 52235688);
+ assert(unsigned(flip_mask(0x31d0dac, 52)) == 52235692);
+ assert(unsigned(flip_mask(0x31d0db0, 52)) == 52235696);
+ assert(unsigned(flip_mask(0x31d0db4, 52)) == 52235700);
+ assert(unsigned(flip_mask(0x31d0db8, 52)) == 52235704);
+ assert(unsigned(flip_mask(0x31d0dbc, 52)) == 52235708);
+ assert(unsigned(flip_mask(0x31d0dc0, 52)) == 52235712);
+ assert(unsigned(flip_mask(0x31d0dc4, 52)) == 52235716);
+ assert(unsigned(flip_mask(0x31d0dc8, 52)) == 52235720);
+ assert(unsigned(flip_mask(0x31d0dcc, 52)) == 52235724);
+ assert(unsigned(flip_mask(0x31d0dd0, 52)) == 52235728);
+ assert(unsigned(flip_mask(0x31d0dd4, 52)) == 52235732);
+ assert(unsigned(flip_mask(0x31d0dd8, 52)) == 52235736);
+ assert(unsigned(flip_mask(0x31d0ddc, 52)) == 52235740);
+ assert(unsigned(flip_mask(0x31d0de0, 52)) == 52235744);
+ assert(unsigned(flip_mask(0x31d0de4, 52)) == 52235748);
+ assert(unsigned(flip_mask(0x31d0de8, 52)) == 52235752);
+ assert(unsigned(flip_mask(0x31d0dec, 52)) == 52235756);
+ assert(unsigned(flip_mask(0x31d0df0, 52)) == 52235760);
+ assert(unsigned(flip_mask(0x31d0df4, 52)) == 52235764);
+ assert(unsigned(flip_mask(0x31d0df8, 52)) == 52235768);
+ assert(unsigned(flip_mask(0x31d0dfc, 52)) == 52235772);
+ assert(unsigned(flip_mask(0x31d0e00, 52)) == 52235776);
+ assert(unsigned(flip_mask(0x31d0e04, 52)) == 52235780);
+ assert(unsigned(flip_mask(0x31d0e08, 52)) == 52235784);
+ assert(unsigned(flip_mask(0x31d0e0c, 52)) == 52235788);
+ assert(unsigned(flip_mask(0x31d0e10, 52)) == 52235792);
+ assert(unsigned(flip_mask(0x31d0e14, 52)) == 52235796);
+ assert(unsigned(flip_mask(0x31d0e18, 52)) == 52235800);
+ assert(unsigned(flip_mask(0x31d0e1c, 52)) == 52235804);
+ assert(unsigned(flip_mask(0x31d0e20, 52)) == 52235808);
+ assert(unsigned(flip_mask(0x31d0e24, 52)) == 52235812);
+ assert(unsigned(flip_mask(0x31d0e28, 52)) == 52235816);
+ assert(unsigned(flip_mask(0x31d0e2c, 52)) == 52235820);
+ assert(unsigned(flip_mask(0x31d0e30, 52)) == 52235824);
+ assert(unsigned(flip_mask(0x31d0e34, 52)) == 52235828);
+ assert(unsigned(flip_mask(0x31d0e38, 52)) == 52235832);
+ assert(unsigned(flip_mask(0x31d0e40, 52)) == 52235840);
+ assert(unsigned(flip_mask(0x31d0e48, 52)) == 52235848);
+ assert(unsigned(flip_mask(0x31d0e50, 52)) == 52235856);
+ assert(unsigned(flip_mask(0x31d0e58, 52)) == 52235864);
+ assert(unsigned(flip_mask(0x31d0e5c, 52)) == 52235868);
+ assert(unsigned(flip_mask(0x31d0e60, 52)) == 52235872);
+ assert(unsigned(flip_mask(0x31d0e64, 52)) == 52235876);
+ assert(unsigned(flip_mask(0x31d0e68, 52)) == 52235880);
+ assert(unsigned(flip_mask(0x31d0e6c, 52)) == 52235884);
+ assert(unsigned(flip_mask(0x31d0e70, 52)) == 52235888);
+ assert(unsigned(flip_mask(0x31d0e74, 52)) == 52235892);
+ assert(unsigned(flip_mask(0x31d0e78, 52)) == 52235896);
+ assert(unsigned(flip_mask(0x31d0e7c, 52)) == 52235900);
+ assert(unsigned(flip_mask(0x31d0e80, 52)) == 52235904);
+ assert(unsigned(flip_mask(0x31d0e84, 52)) == 52235908);
+ assert(unsigned(flip_mask(0x31d0e88, 52)) == 52235912);
+ assert(unsigned(flip_mask(0x31d0e8c, 52)) == 52235916);
+ assert(unsigned(flip_mask(0x31d0f3c, 52)) == 52236092);
+ assert(unsigned(flip_mask(0x31d0f40, 52)) == 52236096);
+ assert(unsigned(flip_mask(0x31d0f44, 52)) == 52236100);
+ assert(unsigned(flip_mask(0x31d0f48, 52)) == 52236104);
+ assert(unsigned(flip_mask(0x31d0f4c, 52)) == 52236108);
+ assert(unsigned(flip_mask(0x31d0f50, 52)) == 52236112);
+ assert(unsigned(flip_mask(0x31d0f54, 52)) == 52236116);
+ assert(unsigned(flip_mask(0x31d0f58, 52)) == 52236120);
+ assert(unsigned(flip_mask(0x31d0f5c, 52)) == 52236124);
+ assert(unsigned(flip_mask(0x31d0f60, 52)) == 52236128);
+ assert(unsigned(flip_mask(0x31d0f64, 52)) == 52236132);
+ assert(unsigned(flip_mask(0x31d0f68, 52)) == 52236136);
+ assert(unsigned(flip_mask(0x31d0f6c, 52)) == 52236140);
+ assert(unsigned(flip_mask(0x31d0f70, 52)) == 52236144);
+ assert(unsigned(flip_mask(0x31d0f74, 52)) == 52236148);
+ assert(unsigned(flip_mask(0x31d0f78, 52)) == 52236152);
+ assert(unsigned(flip_mask(0x31d0f7c, 52)) == 52236156);
+ assert(unsigned(flip_mask(0x31d0f8c, 52)) == 52236172);
+ assert(unsigned(flip_mask(0x31d0f90, 52)) == 52236176);
+ assert(unsigned(flip_mask(0x31d0f94, 52)) == 52236180);
+ assert(unsigned(flip_mask(0x31d0f98, 52)) == 52236184);
+ assert(unsigned(flip_mask(0x31d0f9c, 52)) == 52236188);
+ assert(unsigned(flip_mask(0x31d0fa0, 52)) == 52236192);
+ assert(unsigned(flip_mask(0x31d0fb0, 52)) == 52236208);
+ assert(unsigned(flip_mask(0x31d0fb4, 52)) == 52236212);
+ assert(unsigned(flip_mask(0x31d0fb8, 52)) == 52236216);
+ assert(unsigned(flip_mask(0x31d0fbc, 52)) == 52236220);
+ assert(unsigned(flip_mask(0x31d0fc0, 52)) == 52236224);
+ assert(unsigned(flip_mask(0x31d0fc4, 52)) == 52236228);
+ assert(unsigned(flip_mask(0x31d105c, 52)) == 52236380);
+ assert(unsigned(flip_mask(0x31d1060, 52)) == 52236384);
+ assert(unsigned(flip_mask(0x31d1064, 52)) == 52236388);
+ assert(unsigned(flip_mask(0x31d1068, 52)) == 52236392);
+ assert(unsigned(flip_mask(0x31d106c, 52)) == 52236396);
+ assert(unsigned(flip_mask(0x31d1078, 52)) == 52236408);
+ assert(unsigned(flip_mask(0x31d107c, 52)) == 52236412);
+ assert(unsigned(flip_mask(0x31d1080, 52)) == 52236416);
+ assert(unsigned(flip_mask(0x31d1084, 52)) == 52236420);
+ assert(unsigned(flip_mask(0x31d1088, 52)) == 52236424);
+ assert(unsigned(flip_mask(0x31d108c, 52)) == 52236428);
+ assert(unsigned(flip_mask(0x31d1090, 52)) == 52236432);
+ assert(unsigned(flip_mask(0x31d1094, 52)) == 52236436);
+ assert(unsigned(flip_mask(0x31d10a0, 52)) == 52236448);
+ assert(unsigned(flip_mask(0x31d10a4, 52)) == 52236452);
+ assert(unsigned(flip_mask(0x31d10a8, 52)) == 52236456);
+ assert(unsigned(flip_mask(0x31d10b0, 52)) == 52236464);
+ assert(unsigned(flip_mask(0x31d10b8, 52)) == 52236472);
+ assert(unsigned(flip_mask(0x31d10bc, 52)) == 52236476);
+ assert(unsigned(flip_mask(0x31d10c0, 52)) == 52236480);
+ assert(unsigned(flip_mask(0x31d10c4, 52)) == 52236484);
+ assert(unsigned(flip_mask(0x31d10c8, 52)) == 52236488);
+ assert(unsigned(flip_mask(0x31d10cc, 52)) == 52236492);
+ assert(unsigned(flip_mask(0x31d10d0, 52)) == 52236496);
+ assert(unsigned(flip_mask(0x31d10d4, 52)) == 52236500);
+ assert(unsigned(flip_mask(0x31d10d8, 52)) == 52236504);
+ assert(unsigned(flip_mask(0x31d10dc, 52)) == 52236508);
+ assert(unsigned(flip_mask(0x31d10e0, 52)) == 52236512);
+ assert(unsigned(flip_mask(0x31d10e4, 52)) == 52236516);
+ assert(unsigned(flip_mask(0x31d10e8, 52)) == 52236520);
+ assert(unsigned(flip_mask(0x31d10ec, 52)) == 52236524);
+ assert(unsigned(flip_mask(0x31d10f0, 52)) == 52236528);
+ assert(unsigned(flip_mask(0x31d10f4, 52)) == 52236532);
+ assert(unsigned(flip_mask(0x31d10f8, 52)) == 52236536);
+ assert(unsigned(flip_mask(0x31d1100, 52)) == 52236544);
+ assert(unsigned(flip_mask(0x31d1108, 52)) == 52236552);
+ assert(unsigned(flip_mask(0x31d1110, 52)) == 52236560);
+ assert(unsigned(flip_mask(0x31d1118, 52)) == 52236568);
+ assert(unsigned(flip_mask(0x31d111c, 52)) == 52236572);
+ assert(unsigned(flip_mask(0x31d1120, 52)) == 52236576);
+ assert(unsigned(flip_mask(0x31d1124, 52)) == 52236580);
+ assert(unsigned(flip_mask(0x31d1128, 52)) == 52236584);
+ assert(unsigned(flip_mask(0x31d112c, 52)) == 52236588);
+ assert(unsigned(flip_mask(0x31d1130, 52)) == 52236592);
+ assert(unsigned(flip_mask(0x31d1134, 52)) == 52236596);
+ assert(unsigned(flip_mask(0x31d1138, 52)) == 52236600);
+ assert(unsigned(flip_mask(0x31d113c, 52)) == 52236604);
+ assert(unsigned(flip_mask(0x31d1140, 52)) == 52236608);
+ assert(unsigned(flip_mask(0x31d1144, 52)) == 52236612);
+ assert(unsigned(flip_mask(0x31d1148, 52)) == 52236616);
+ assert(unsigned(flip_mask(0x31d114c, 52)) == 52236620);
+ assert(unsigned(flip_mask(0x31d1150, 52)) == 52236624);
+ assert(unsigned(flip_mask(0x31d1154, 52)) == 52236628);
+ assert(unsigned(flip_mask(0x31d1158, 52)) == 52236632);
+ assert(unsigned(flip_mask(0x31d115c, 52)) == 52236636);
+ assert(unsigned(flip_mask(0x31d1160, 52)) == 52236640);
+ assert(unsigned(flip_mask(0x31d1164, 52)) == 52236644);
+ assert(unsigned(flip_mask(0x31d1168, 52)) == 52236648);
+ assert(unsigned(flip_mask(0x31d1170, 52)) == 52236656);
+ assert(unsigned(flip_mask(0x31d1178, 52)) == 52236664);
+ assert(unsigned(flip_mask(0x31d1180, 52)) == 52236672);
+ assert(unsigned(flip_mask(0x31d1184, 52)) == 52236676);
+ assert(unsigned(flip_mask(0x31d1188, 52)) == 52236680);
+ assert(unsigned(flip_mask(0x31d118c, 52)) == 52236684);
+ assert(unsigned(flip_mask(0x31d1190, 52)) == 52236688);
+ assert(unsigned(flip_mask(0x31d1194, 52)) == 52236692);
+ assert(unsigned(flip_mask(0x31d1198, 52)) == 52236696);
+ assert(unsigned(flip_mask(0x31d119c, 52)) == 52236700);
+ assert(unsigned(flip_mask(0x31d11a0, 52)) == 52236704);
+ assert(unsigned(flip_mask(0x31d11a4, 52)) == 52236708);
+ assert(unsigned(flip_mask(0x31d11a8, 52)) == 52236712);
+ assert(unsigned(flip_mask(0x31d11ac, 52)) == 52236716);
+ assert(unsigned(flip_mask(0x31d11b0, 52)) == 52236720);
+ assert(unsigned(flip_mask(0x31d11b4, 52)) == 52236724);
+ assert(unsigned(flip_mask(0x31d11b8, 52)) == 52236728);
+ assert(unsigned(flip_mask(0x31d11bc, 52)) == 52236732);
+ assert(unsigned(flip_mask(0x31d11c0, 52)) == 52236736);
+ assert(unsigned(flip_mask(0x31d11c4, 52)) == 52236740);
+ assert(unsigned(flip_mask(0x31d11c8, 52)) == 52236744);
+ assert(unsigned(flip_mask(0x31d11cc, 52)) == 52236748);
+ assert(unsigned(flip_mask(0x31d11d0, 52)) == 52236752);
+ assert(unsigned(flip_mask(0x31d11d4, 52)) == 52236756);
+ assert(unsigned(flip_mask(0x31d11d8, 52)) == 52236760);
+ assert(unsigned(flip_mask(0x31d11dc, 52)) == 52236764);
+ assert(unsigned(flip_mask(0x31d11e0, 52)) == 52236768);
+ assert(unsigned(flip_mask(0x31d11ec, 52)) == 52236780);
+ assert(unsigned(flip_mask(0x31d11f0, 52)) == 52236784);
+ assert(unsigned(flip_mask(0x31d11f8, 52)) == 52236792);
+ assert(unsigned(flip_mask(0x31d11fc, 52)) == 52236796);
+ assert(unsigned(flip_mask(0x31d1200, 52)) == 52236800);
+ assert(unsigned(flip_mask(0x31d1204, 52)) == 52236804);
+ assert(unsigned(flip_mask(0x31d1208, 52)) == 52236808);
+ assert(unsigned(flip_mask(0x31d120c, 52)) == 52236812);
+ assert(unsigned(flip_mask(0x31d1220, 52)) == 52236832);
+ assert(unsigned(flip_mask(0x31d1224, 52)) == 52236836);
+ assert(unsigned(flip_mask(0x31d1254, 52)) == 52236884);
+ assert(unsigned(flip_mask(0x31d1258, 52)) == 52236888);
+ assert(unsigned(flip_mask(0x31d125c, 52)) == 52236892);
+ assert(unsigned(flip_mask(0x31d129c, 52)) == 52236956);
+ assert(unsigned(flip_mask(0x31d12a0, 52)) == 52236960);
+ assert(unsigned(flip_mask(0x31d12a4, 52)) == 52236964);
+ assert(unsigned(flip_mask(0x31d12a8, 52)) == 52236968);
+ assert(unsigned(flip_mask(0x31d12ac, 52)) == 52236972);
+ assert(unsigned(flip_mask(0x31d12b0, 52)) == 52236976);
+ assert(unsigned(flip_mask(0x31d12b4, 52)) == 52236980);
+ assert(unsigned(flip_mask(0x31d12b8, 52)) == 52236984);
+ assert(unsigned(flip_mask(0x31d12bc, 52)) == 52236988);
+ assert(unsigned(flip_mask(0x31d12c0, 52)) == 52236992);
+ assert(unsigned(flip_mask(0x31d12c4, 52)) == 52236996);
+ assert(unsigned(flip_mask(0x31d12c8, 52)) == 52237000);
+ assert(unsigned(flip_mask(0x31d12cc, 52)) == 52237004);
+ assert(unsigned(flip_mask(0x31d12d0, 52)) == 52237008);
+ assert(unsigned(flip_mask(0x31d12d4, 52)) == 52237012);
+ assert(unsigned(flip_mask(0x31d12d8, 52)) == 52237016);
+ assert(unsigned(flip_mask(0x31d12dc, 52)) == 52237020);
+ assert(unsigned(flip_mask(0x31d12e0, 52)) == 52237024);
+ assert(unsigned(flip_mask(0x31d12e4, 52)) == 52237028);
+ assert(unsigned(flip_mask(0x31d12e8, 52)) == 52237032);
+ assert(unsigned(flip_mask(0x31d12ec, 52)) == 52237036);
+ assert(unsigned(flip_mask(0x31d12f0, 52)) == 52237040);
+ assert(unsigned(flip_mask(0x31d12f4, 52)) == 52237044);
+ assert(unsigned(flip_mask(0x31d12f8, 52)) == 52237048);
+ assert(unsigned(flip_mask(0x31d12fc, 52)) == 52237052);
+ assert(unsigned(flip_mask(0x31d1300, 52)) == 52237056);
+ assert(unsigned(flip_mask(0x31d1304, 52)) == 52237060);
+ assert(unsigned(flip_mask(0x31d1308, 52)) == 52237064);
+ assert(unsigned(flip_mask(0x31d130c, 52)) == 52237068);
+ assert(unsigned(flip_mask(0x31d1310, 52)) == 52237072);
+ assert(unsigned(flip_mask(0x31d1314, 52)) == 52237076);
+ assert(unsigned(flip_mask(0x31d1318, 52)) == 52237080);
+ assert(unsigned(flip_mask(0x31d131c, 52)) == 52237084);
+ assert(unsigned(flip_mask(0x31d1320, 52)) == 52237088);
+ assert(unsigned(flip_mask(0x31d1324, 52)) == 52237092);
+ assert(unsigned(flip_mask(0x31d1328, 52)) == 52237096);
+ assert(unsigned(flip_mask(0x31d132c, 52)) == 52237100);
+ assert(unsigned(flip_mask(0x31d1330, 52)) == 52237104);
+ assert(unsigned(flip_mask(0x31d1334, 52)) == 52237108);
+ assert(unsigned(flip_mask(0x31d1338, 52)) == 52237112);
+ assert(unsigned(flip_mask(0x31d133c, 52)) == 52237116);
+ assert(unsigned(flip_mask(0x31d1340, 52)) == 52237120);
+ assert(unsigned(flip_mask(0x31d1344, 52)) == 52237124);
+ assert(unsigned(flip_mask(0x31d1348, 52)) == 52237128);
+ assert(unsigned(flip_mask(0x31d134c, 52)) == 52237132);
+ assert(unsigned(flip_mask(0x31d1350, 52)) == 52237136);
+ assert(unsigned(flip_mask(0x31d1354, 52)) == 52237140);
+ assert(unsigned(flip_mask(0x31d1358, 52)) == 52237144);
+ assert(unsigned(flip_mask(0x31d135c, 52)) == 52237148);
+ assert(unsigned(flip_mask(0x31d1360, 52)) == 52237152);
+ assert(unsigned(flip_mask(0x31d1364, 52)) == 52237156);
+ assert(unsigned(flip_mask(0x31d1368, 52)) == 52237160);
+ assert(unsigned(flip_mask(0x31d136c, 52)) == 52237164);
+ assert(unsigned(flip_mask(0x31d1370, 52)) == 52237168);
+ assert(unsigned(flip_mask(0x31d1374, 52)) == 52237172);
+ assert(unsigned(flip_mask(0x31d1378, 52)) == 52237176);
+ assert(unsigned(flip_mask(0x31d137c, 52)) == 52237180);
+ assert(unsigned(flip_mask(0x31d1380, 52)) == 52237184);
+ assert(unsigned(flip_mask(0x31d1384, 52)) == 52237188);
+ assert(unsigned(flip_mask(0x31d1388, 52)) == 52237192);
+ assert(unsigned(flip_mask(0x31d1390, 52)) == 52237200);
+ assert(unsigned(flip_mask(0x31d1398, 52)) == 52237208);
+ assert(unsigned(flip_mask(0x31d13a0, 52)) == 52237216);
+ assert(unsigned(flip_mask(0x31d13a8, 52)) == 52237224);
+ assert(unsigned(flip_mask(0x31d13b0, 52)) == 52237232);
+ assert(unsigned(flip_mask(0x31d13b8, 52)) == 52237240);
+ assert(unsigned(flip_mask(0x31d13c0, 52)) == 52237248);
+ assert(unsigned(flip_mask(0x31d13c8, 52)) == 52237256);
+ assert(unsigned(flip_mask(0x31d13d0, 52)) == 52237264);
+ assert(unsigned(flip_mask(0x31d13d8, 52)) == 52237272);
+ assert(unsigned(flip_mask(0x31d13e0, 52)) == 52237280);
+ assert(unsigned(flip_mask(0x31d13e8, 52)) == 52237288);
+ assert(unsigned(flip_mask(0x31d13f0, 52)) == 52237296);
+ assert(unsigned(flip_mask(0x31d13f8, 52)) == 52237304);
+ assert(unsigned(flip_mask(0x31d1400, 52)) == 52237312);
+ assert(unsigned(flip_mask(0x31d1408, 52)) == 52237320);
+ assert(unsigned(flip_mask(0x31d1410, 52)) == 52237328);
+ assert(unsigned(flip_mask(0x31d1418, 52)) == 52237336);
+ assert(unsigned(flip_mask(0x31d1420, 52)) == 52237344);
+ assert(unsigned(flip_mask(0x31d1428, 52)) == 52237352);
+ assert(unsigned(flip_mask(0x31d1430, 52)) == 52237360);
+ assert(unsigned(flip_mask(0x31d1438, 52)) == 52237368);
+ assert(unsigned(flip_mask(0x31d1440, 52)) == 52237376);
+ assert(unsigned(flip_mask(0x31d1448, 52)) == 52237384);
+ assert(unsigned(flip_mask(0x31d1450, 52)) == 52237392);
+ assert(unsigned(flip_mask(0x31d1458, 52)) == 52237400);
+ assert(unsigned(flip_mask(0x31d1460, 52)) == 52237408);
+ assert(unsigned(flip_mask(0x31d1468, 52)) == 52237416);
+ assert(unsigned(flip_mask(0x31d1470, 52)) == 52237424);
+ assert(unsigned(flip_mask(0x31d1478, 52)) == 52237432);
+ assert(unsigned(flip_mask(0x31d1480, 52)) == 52237440);
+ assert(unsigned(flip_mask(0x31d1488, 52)) == 52237448);
+ assert(unsigned(flip_mask(0x31d1490, 52)) == 52237456);
+ assert(unsigned(flip_mask(0x31d1498, 52)) == 52237464);
+ assert(unsigned(flip_mask(0x31d14a0, 52)) == 52237472);
+ assert(unsigned(flip_mask(0x31d14a8, 52)) == 52237480);
+ assert(unsigned(flip_mask(0x31d14b0, 52)) == 52237488);
+ assert(unsigned(flip_mask(0x31d14b8, 52)) == 52237496);
+ assert(unsigned(flip_mask(0x31d14c0, 52)) == 52237504);
+ assert(unsigned(flip_mask(0x31d14c8, 52)) == 52237512);
+ assert(unsigned(flip_mask(0x31d14d0, 52)) == 52237520);
+ assert(unsigned(flip_mask(0x31d14d8, 52)) == 52237528);
+ assert(unsigned(flip_mask(0x31d14e0, 52)) == 52237536);
+ assert(unsigned(flip_mask(0x31d14e8, 52)) == 52237544);
+ assert(unsigned(flip_mask(0x31d14f0, 52)) == 52237552);
+ assert(unsigned(flip_mask(0x31d14f8, 52)) == 52237560);
+ assert(unsigned(flip_mask(0x31d1500, 52)) == 52237568);
+ assert(unsigned(flip_mask(0x31d1508, 52)) == 52237576);
+ assert(unsigned(flip_mask(0x31d1510, 52)) == 52237584);
+ assert(unsigned(flip_mask(0x31d1518, 52)) == 52237592);
+ assert(unsigned(flip_mask(0x31d1520, 52)) == 52237600);
+ assert(unsigned(flip_mask(0x31d1528, 52)) == 52237608);
+ assert(unsigned(flip_mask(0x31d1530, 52)) == 52237616);
+ assert(unsigned(flip_mask(0x31d1538, 52)) == 52237624);
+ assert(unsigned(flip_mask(0x31d1540, 52)) == 52237632);
+ assert(unsigned(flip_mask(0x31d1548, 52)) == 52237640);
+ assert(unsigned(flip_mask(0x31d1550, 52)) == 52237648);
+ assert(unsigned(flip_mask(0x31d1558, 52)) == 52237656);
+ assert(unsigned(flip_mask(0x31d1560, 52)) == 52237664);
+ assert(unsigned(flip_mask(0x31d1568, 52)) == 52237672);
+ assert(unsigned(flip_mask(0x31d1570, 52)) == 52237680);
+ assert(unsigned(flip_mask(0x31d1578, 52)) == 52237688);
+ assert(unsigned(flip_mask(0x31d1580, 52)) == 52237696);
+ assert(unsigned(flip_mask(0x31d1588, 52)) == 52237704);
+ assert(unsigned(flip_mask(0x31d1590, 52)) == 52237712);
+ assert(unsigned(flip_mask(0x31d1598, 52)) == 52237720);
+ assert(unsigned(flip_mask(0x31d15a0, 52)) == 52237728);
+ assert(unsigned(flip_mask(0x31d15a8, 52)) == 52237736);
+ assert(unsigned(flip_mask(0x31d15b0, 52)) == 52237744);
+ assert(unsigned(flip_mask(0x31d15b8, 52)) == 52237752);
+ assert(unsigned(flip_mask(0x31d15c0, 52)) == 52237760);
+ assert(unsigned(flip_mask(0x31d15c8, 52)) == 52237768);
+ assert(unsigned(flip_mask(0x31d15d0, 52)) == 52237776);
+ assert(unsigned(flip_mask(0x31d15d8, 52)) == 52237784);
+ assert(unsigned(flip_mask(0x31d15e0, 52)) == 52237792);
+ assert(unsigned(flip_mask(0x31d15e8, 52)) == 52237800);
+ assert(unsigned(flip_mask(0x31d15f0, 52)) == 52237808);
+ assert(unsigned(flip_mask(0x31d15f8, 52)) == 52237816);
+ assert(unsigned(flip_mask(0x31d1600, 52)) == 52237824);
+ assert(unsigned(flip_mask(0x31d1608, 52)) == 52237832);
+ assert(unsigned(flip_mask(0x31d1610, 52)) == 52237840);
+ assert(unsigned(flip_mask(0x31d1618, 52)) == 52237848);
+ assert(unsigned(flip_mask(0x31d1620, 52)) == 52237856);
+ assert(unsigned(flip_mask(0x31d1628, 52)) == 52237864);
+ assert(unsigned(flip_mask(0x31d1630, 52)) == 52237872);
+ assert(unsigned(flip_mask(0x31d1638, 52)) == 52237880);
+ assert(unsigned(flip_mask(0x31d1640, 52)) == 52237888);
+ assert(unsigned(flip_mask(0x31d1648, 52)) == 52237896);
+ assert(unsigned(flip_mask(0x31d1650, 52)) == 52237904);
+ assert(unsigned(flip_mask(0x31d1658, 52)) == 52237912);
+ assert(unsigned(flip_mask(0x31d1660, 52)) == 52237920);
+ assert(unsigned(flip_mask(0x31d1668, 52)) == 52237928);
+ assert(unsigned(flip_mask(0x31d1670, 52)) == 52237936);
+ assert(unsigned(flip_mask(0x31d1678, 52)) == 52237944);
+ assert(unsigned(flip_mask(0x31d1680, 52)) == 52237952);
+ assert(unsigned(flip_mask(0x31d1688, 52)) == 52237960);
+ assert(unsigned(flip_mask(0x31d1690, 52)) == 52237968);
+ assert(unsigned(flip_mask(0x31d1698, 52)) == 52237976);
+ assert(unsigned(flip_mask(0x31d16a0, 52)) == 52237984);
+ assert(unsigned(flip_mask(0x31d16a8, 52)) == 52237992);
+ assert(unsigned(flip_mask(0x31d16b0, 52)) == 52238000);
+ assert(unsigned(flip_mask(0x31d16b8, 52)) == 52238008);
+ assert(unsigned(flip_mask(0x31d16c0, 52)) == 52238016);
+ assert(unsigned(flip_mask(0x31d16c8, 52)) == 52238024);
+ assert(unsigned(flip_mask(0x31d16d0, 52)) == 52238032);
+ assert(unsigned(flip_mask(0x31d16d8, 52)) == 52238040);
+ assert(unsigned(flip_mask(0x31d16e0, 52)) == 52238048);
+ assert(unsigned(flip_mask(0x31d16e8, 52)) == 52238056);
+ assert(unsigned(flip_mask(0x31d16f0, 52)) == 52238064);
+ assert(unsigned(flip_mask(0x31d16f8, 52)) == 52238072);
+ assert(unsigned(flip_mask(0x31d1700, 52)) == 52238080);
+ assert(unsigned(flip_mask(0x31d1708, 52)) == 52238088);
+ assert(unsigned(flip_mask(0x31d1710, 52)) == 52238096);
+ assert(unsigned(flip_mask(0x31d1718, 52)) == 52238104);
+ assert(unsigned(flip_mask(0x31d1720, 52)) == 52238112);
+ assert(unsigned(flip_mask(0x31d1728, 52)) == 52238120);
+ assert(unsigned(flip_mask(0x31d1730, 52)) == 52238128);
+ assert(unsigned(flip_mask(0x31d1738, 52)) == 52238136);
+ assert(unsigned(flip_mask(0x31d1740, 52)) == 52238144);
+ assert(unsigned(flip_mask(0x31d1748, 52)) == 52238152);
+ assert(unsigned(flip_mask(0x31d1750, 52)) == 52238160);
+ assert(unsigned(flip_mask(0x31d1758, 52)) == 52238168);
+ assert(unsigned(flip_mask(0x31d1760, 52)) == 52238176);
+ assert(unsigned(flip_mask(0x31d1768, 52)) == 52238184);
+ assert(unsigned(flip_mask(0x31d1770, 52)) == 52238192);
+ assert(unsigned(flip_mask(0x31d1778, 52)) == 52238200);
+ assert(unsigned(flip_mask(0x31d17d0, 52)) == 52238288);
+ assert(unsigned(flip_mask(0x31d17d4, 52)) == 52238292);
+ assert(unsigned(flip_mask(0x31d17e0, 52)) == 52238304);
+ assert(unsigned(flip_mask(0x31d17e8, 52)) == 52238312);
+ assert(unsigned(flip_mask(0x31d17f0, 52)) == 52238320);
+ assert(unsigned(flip_mask(0x31d17f4, 52)) == 52238324);
+ assert(unsigned(flip_mask(0x31d17f8, 52)) == 52238328);
+ assert(unsigned(flip_mask(0x31d1800, 52)) == 52238336);
+ assert(unsigned(flip_mask(0x31d1808, 52)) == 52238344);
+ assert(unsigned(flip_mask(0x31d1810, 52)) == 52238352);
+ assert(unsigned(flip_mask(0x31d1818, 52)) == 52238360);
+ assert(unsigned(flip_mask(0x31d1820, 52)) == 52238368);
+ assert(unsigned(flip_mask(0x31d1828, 52)) == 52238376);
+ assert(unsigned(flip_mask(0x31d1830, 52)) == 52238384);
+ assert(unsigned(flip_mask(0x31d1838, 52)) == 52238392);
+ assert(unsigned(flip_mask(0x31d1840, 52)) == 52238400);
+ assert(unsigned(flip_mask(0x31d1848, 52)) == 52238408);
+ assert(unsigned(flip_mask(0x31d1850, 52)) == 52238416);
+ assert(unsigned(flip_mask(0x31d1858, 52)) == 52238424);
+ assert(unsigned(flip_mask(0x31d1860, 52)) == 52238432);
+ assert(unsigned(flip_mask(0x31d1868, 52)) == 52238440);
+ assert(unsigned(flip_mask(0x31d1870, 52)) == 52238448);
+ assert(unsigned(flip_mask(0x31d1878, 52)) == 52238456);
+ assert(unsigned(flip_mask(0x31d1880, 52)) == 52238464);
+ assert(unsigned(flip_mask(0x31d1888, 52)) == 52238472);
+ assert(unsigned(flip_mask(0x31d1890, 52)) == 52238480);
+ assert(unsigned(flip_mask(0x31d1898, 52)) == 52238488);
+ assert(unsigned(flip_mask(0x31d18a0, 52)) == 52238496);
+ assert(unsigned(flip_mask(0x31d18a8, 52)) == 52238504);
+ assert(unsigned(flip_mask(0x31d18b0, 52)) == 52238512);
+ assert(unsigned(flip_mask(0x31d18b8, 52)) == 52238520);
+ assert(unsigned(flip_mask(0x31d18c0, 52)) == 52238528);
+ assert(unsigned(flip_mask(0x31d18d0, 52)) == 52238544);
+ assert(unsigned(flip_mask(0x31d18d8, 52)) == 52238552);
+ assert(unsigned(flip_mask(0x31d18e0, 52)) == 52238560);
+ assert(unsigned(flip_mask(0x31d18e8, 52)) == 52238568);
+ assert(unsigned(flip_mask(0x31d18f0, 52)) == 52238576);
+ assert(unsigned(flip_mask(0x31d18f8, 52)) == 52238584);
+ assert(unsigned(flip_mask(0x31d1900, 52)) == 52238592);
+ assert(unsigned(flip_mask(0x31d1908, 52)) == 52238600);
+ assert(unsigned(flip_mask(0x31d1910, 52)) == 52238608);
+ assert(unsigned(flip_mask(0x31d1918, 52)) == 52238616);
+ assert(unsigned(flip_mask(0x31d1920, 52)) == 52238624);
+ assert(unsigned(flip_mask(0x31d1928, 52)) == 52238632);
+ assert(unsigned(flip_mask(0x31d1930, 52)) == 52238640);
+ assert(unsigned(flip_mask(0x31d1938, 52)) == 52238648);
+ assert(unsigned(flip_mask(0x31d1940, 52)) == 52238656);
+ assert(unsigned(flip_mask(0x31d1948, 52)) == 52238664);
+ assert(unsigned(flip_mask(0x31d1950, 52)) == 52238672);
+ assert(unsigned(flip_mask(0x31d1958, 52)) == 52238680);
+ assert(unsigned(flip_mask(0x31d1960, 52)) == 52238688);
+ assert(unsigned(flip_mask(0x31d1968, 52)) == 52238696);
+ assert(unsigned(flip_mask(0x31d1970, 52)) == 52238704);
+ assert(unsigned(flip_mask(0x31d1b80, 52)) == 52239232);
+ assert(unsigned(flip_mask(0x31d1b88, 52)) == 52239240);
+ assert(unsigned(flip_mask(0x31d1b90, 52)) == 52239248);
+ assert(unsigned(flip_mask(0x31d1b98, 52)) == 52239256);
+ assert(unsigned(flip_mask(0x31d1ba0, 52)) == 52239264);
+ assert(unsigned(flip_mask(0x31d1ba8, 52)) == 52239272);
+ assert(unsigned(flip_mask(0x31d1bb0, 52)) == 52239280);
+ assert(unsigned(flip_mask(0x31d1bb8, 52)) == 52239288);
+ assert(unsigned(flip_mask(0x31d1bc0, 52)) == 52239296);
+ assert(unsigned(flip_mask(0x31d1bc8, 52)) == 52239304);
+ assert(unsigned(flip_mask(0x31d1bd0, 52)) == 52239312);
+ assert(unsigned(flip_mask(0x31d1bd8, 52)) == 52239320);
+ assert(unsigned(flip_mask(0x31d1be0, 52)) == 52239328);
+ assert(unsigned(flip_mask(0x31d1be8, 52)) == 52239336);
+ assert(unsigned(flip_mask(0x31d1bf0, 52)) == 52239344);
+ assert(unsigned(flip_mask(0x31d1bf8, 52)) == 52239352);
+ assert(unsigned(flip_mask(0x31d1c00, 52)) == 52239360);
+ assert(unsigned(flip_mask(0x31d1c08, 52)) == 52239368);
+ assert(unsigned(flip_mask(0x31d1c10, 52)) == 52239376);
+ assert(unsigned(flip_mask(0x31d1c18, 52)) == 52239384);
+ assert(unsigned(flip_mask(0x31d1c20, 52)) == 52239392);
+ assert(unsigned(flip_mask(0x31d1c28, 52)) == 52239400);
+ assert(unsigned(flip_mask(0x31d1c2c, 52)) == 52239404);
+ assert(unsigned(flip_mask(0x31d1c30, 52)) == 52239408);
+ assert(unsigned(flip_mask(0x31d1c34, 52)) == 52239412);
+ assert(unsigned(flip_mask(0x31d1c38, 52)) == 52239416);
+ assert(unsigned(flip_mask(0x31d1c3c, 52)) == 52239420);
+ assert(unsigned(flip_mask(0x31d1c40, 52)) == 52239424);
+ assert(unsigned(flip_mask(0x31d1c44, 52)) == 52239428);
+ assert(unsigned(flip_mask(0x31d1c48, 52)) == 52239432);
+ assert(unsigned(flip_mask(0x31d1c4c, 52)) == 52239436);
+ assert(unsigned(flip_mask(0x31d1c50, 52)) == 52239440);
+ assert(unsigned(flip_mask(0x31d1c54, 52)) == 52239444);
+ assert(unsigned(flip_mask(0x31d1c58, 52)) == 52239448);
+ assert(unsigned(flip_mask(0x31d1c5c, 52)) == 52239452);
+ assert(unsigned(flip_mask(0x31d1c60, 52)) == 52239456);
+ assert(unsigned(flip_mask(0x31d1c64, 52)) == 52239460);
+ assert(unsigned(flip_mask(0x31d1c68, 52)) == 52239464);
+ assert(unsigned(flip_mask(0x31d1c6c, 52)) == 52239468);
+ assert(unsigned(flip_mask(0x31d1c70, 52)) == 52239472);
+ assert(unsigned(flip_mask(0x31d1c74, 52)) == 52239476);
+ assert(unsigned(flip_mask(0x31d1c78, 52)) == 52239480);
+ assert(unsigned(flip_mask(0x34000, 52)) == 212992);
+ assert(unsigned(flip_mask(0x34008, 52)) == 213000);
+ assert(unsigned(flip_mask(0x34018, 52)) == 213016);
+ assert(unsigned(flip_mask(0x34040, 52)) == 213056);
+ assert(unsigned(flip_mask(0x34048, 52)) == 213064);
+ assert(unsigned(flip_mask(0x38020, 52)) == 229408);
+ assert(unsigned(flip_mask(0x38028, 52)) == 229416);
+ assert(unsigned(flip_mask(0x38030, 52)) == 229424);
+ assert(unsigned(flip_mask(0x38038, 52)) == 229432);
+ assert(unsigned(flip_mask(0x38040, 52)) == 229440);
+ assert(unsigned(flip_mask(0x3e000, 52)) == 253952);
+ assert(unsigned(flip_mask(0x3f000000, 52)) == 1056964608);
+ assert(unsigned(flip_mask(0x3f070000, 52)) == 1057423360);
+ assert(unsigned(flip_mask(0x4000, 52)) == 16384);
+ assert(unsigned(flip_mask(0x400000, 52)) == 4194304);
+ assert(unsigned(flip_mask(0x40000000, 52)) == 1073741824);
+ assert(unsigned(flip_mask(0x400001, 52)) == 4194305);
+ assert(unsigned(flip_mask(0x400002, 52)) == 4194306);
+ assert(unsigned(flip_mask(0x400003, 52)) == 4194307);
+ assert(unsigned(flip_mask(0x400004, 52)) == 4194308);
+ assert(unsigned(flip_mask(0x400005, 52)) == 4194309);
+ assert(unsigned(flip_mask(0x400006, 52)) == 4194310);
+ assert(unsigned(flip_mask(0x400007, 52)) == 4194311);
+ assert(unsigned(flip_mask(0x400008, 52)) == 4194312);
+ assert(unsigned(flip_mask(0x400009, 52)) == 4194313);
+ assert(unsigned(flip_mask(0x40000a, 52)) == 4194314);
+ assert(unsigned(flip_mask(0x40000b, 52)) == 4194315);
+ assert(unsigned(flip_mask(0x40000c, 52)) == 4194316);
+ assert(unsigned(flip_mask(0x40000d, 52)) == 4194317);
+ assert(unsigned(flip_mask(0x40000e, 52)) == 4194318);
+ assert(unsigned(flip_mask(0x42000, 52)) == 270336);
+ assert(unsigned(flip_mask(0x43000, 52)) == 274432);
+ assert(unsigned(flip_mask(0x43018, 52)) == 274456);
+ assert(unsigned(flip_mask(0x43028, 52)) == 274472);
+ assert(unsigned(flip_mask(0x48428, 52)) == 295976);
+ assert(unsigned(flip_mask(0x4c800, 52)) == 313344);
+ assert(unsigned(flip_mask(0x50000000, 52)) == 1342177280);
+ assert(unsigned(flip_mask(0x54000, 52)) == 344064);
+ assert(unsigned(flip_mask(0x58000, 52)) == 360448);
+ assert(unsigned(flip_mask(0x5c000, 52)) == 376832);
+ assert(unsigned(flip_mask(0x5c008, 52)) == 376840);
+ assert(unsigned(flip_mask(0x5c018, 52)) == 376856);
+ assert(unsigned(flip_mask(0x5c020, 52)) == 376864);
+ assert(unsigned(flip_mask(0x5c028, 52)) == 376872);
+ assert(unsigned(flip_mask(0x5c040, 52)) == 376896);
+ assert(unsigned(flip_mask(0x5c048, 52)) == 376904);
+ assert(unsigned(flip_mask(0x5c068, 52)) == 376936);
+ assert(unsigned(flip_mask(0x60028, 52)) == 393256);
+ assert(unsigned(flip_mask(0x60030, 52)) == 393264);
+ assert(unsigned(flip_mask(0x60038, 52)) == 393272);
+ assert(unsigned(flip_mask(0x60040, 52)) == 393280);
+ assert(unsigned(flip_mask(0x60600, 52)) == 394752);
+ assert(unsigned(flip_mask(0x608000, 52)) == 6324224);
+ assert(unsigned(flip_mask(0x608004, 52)) == 6324228);
+ assert(unsigned(flip_mask(0x608008, 52)) == 6324232);
+ assert(unsigned(flip_mask(0x60800c, 52)) == 6324236);
+ assert(unsigned(flip_mask(0x608010, 52)) == 6324240);
+ assert(unsigned(flip_mask(0x608014, 52)) == 6324244);
+ assert(unsigned(flip_mask(0x608018, 52)) == 6324248);
+ assert(unsigned(flip_mask(0x60801c, 52)) == 6324252);
+ assert(unsigned(flip_mask(0x608020, 52)) == 6324256);
+ assert(unsigned(flip_mask(0x608024, 52)) == 6324260);
+ assert(unsigned(flip_mask(0x608028, 52)) == 6324264);
+ assert(unsigned(flip_mask(0x60802c, 52)) == 6324268);
+ assert(unsigned(flip_mask(0x608030, 52)) == 6324272);
+ assert(unsigned(flip_mask(0x608034, 52)) == 6324276);
+ assert(unsigned(flip_mask(0x608038, 52)) == 6324280);
+ assert(unsigned(flip_mask(0x60803c, 52)) == 6324284);
+ assert(unsigned(flip_mask(0x608040, 52)) == 6324288);
+ assert(unsigned(flip_mask(0x608044, 52)) == 6324292);
+ assert(unsigned(flip_mask(0x608048, 52)) == 6324296);
+ assert(unsigned(flip_mask(0x60804c, 52)) == 6324300);
+ assert(unsigned(flip_mask(0x608050, 52)) == 6324304);
+ assert(unsigned(flip_mask(0x608054, 52)) == 6324308);
+ assert(unsigned(flip_mask(0x608058, 52)) == 6324312);
+ assert(unsigned(flip_mask(0x60805c, 52)) == 6324316);
+ assert(unsigned(flip_mask(0x608060, 52)) == 6324320);
+ assert(unsigned(flip_mask(0x608064, 52)) == 6324324);
+ assert(unsigned(flip_mask(0x608068, 52)) == 6324328);
+ assert(unsigned(flip_mask(0x60806c, 52)) == 6324332);
+ assert(unsigned(flip_mask(0x608070, 52)) == 6324336);
+ assert(unsigned(flip_mask(0x608074, 52)) == 6324340);
+ assert(unsigned(flip_mask(0x608078, 52)) == 6324344);
+ assert(unsigned(flip_mask(0x60807c, 52)) == 6324348);
+ assert(unsigned(flip_mask(0x608080, 52)) == 6324352);
+ assert(unsigned(flip_mask(0x608088, 52)) == 6324360);
+ assert(unsigned(flip_mask(0x608090, 52)) == 6324368);
+ assert(unsigned(flip_mask(0x608094, 52)) == 6324372);
+ assert(unsigned(flip_mask(0x608098, 52)) == 6324376);
+ assert(unsigned(flip_mask(0x60809c, 52)) == 6324380);
+ assert(unsigned(flip_mask(0x6080a0, 52)) == 6324384);
+ assert(unsigned(flip_mask(0x6080a8, 52)) == 6324392);
+ assert(unsigned(flip_mask(0x6080ac, 52)) == 6324396);
+ assert(unsigned(flip_mask(0x6080b0, 52)) == 6324400);
+ assert(unsigned(flip_mask(0x6080b4, 52)) == 6324404);
+ assert(unsigned(flip_mask(0x6080b8, 52)) == 6324408);
+ assert(unsigned(flip_mask(0x6080bc, 52)) == 6324412);
+ assert(unsigned(flip_mask(0x6080c0, 52)) == 6324416);
+ assert(unsigned(flip_mask(0x6080c4, 52)) == 6324420);
+ assert(unsigned(flip_mask(0x6080c8, 52)) == 6324424);
+ assert(unsigned(flip_mask(0x6080cc, 52)) == 6324428);
+ assert(unsigned(flip_mask(0x6080d0, 52)) == 6324432);
+ assert(unsigned(flip_mask(0x6080d4, 52)) == 6324436);
+ assert(unsigned(flip_mask(0x6080d8, 52)) == 6324440);
+ assert(unsigned(flip_mask(0x6080dc, 52)) == 6324444);
+ assert(unsigned(flip_mask(0x6080e0, 52)) == 6324448);
+ assert(unsigned(flip_mask(0x6080e4, 52)) == 6324452);
+ assert(unsigned(flip_mask(0x6080e8, 52)) == 6324456);
+ assert(unsigned(flip_mask(0x6080ec, 52)) == 6324460);
+ assert(unsigned(flip_mask(0x6080f0, 52)) == 6324464);
+ assert(unsigned(flip_mask(0x6080f4, 52)) == 6324468);
+ assert(unsigned(flip_mask(0x6080f8, 52)) == 6324472);
+ assert(unsigned(flip_mask(0x6080fc, 52)) == 6324476);
+ assert(unsigned(flip_mask(0x608100, 52)) == 6324480);
+ assert(unsigned(flip_mask(0x608104, 52)) == 6324484);
+ assert(unsigned(flip_mask(0x608108, 52)) == 6324488);
+ assert(unsigned(flip_mask(0x60810c, 52)) == 6324492);
+ assert(unsigned(flip_mask(0x608110, 52)) == 6324496);
+ assert(unsigned(flip_mask(0x608114, 52)) == 6324500);
+ assert(unsigned(flip_mask(0x608118, 52)) == 6324504);
+ assert(unsigned(flip_mask(0x60811c, 52)) == 6324508);
+ assert(unsigned(flip_mask(0x608120, 52)) == 6324512);
+ assert(unsigned(flip_mask(0x608124, 52)) == 6324516);
+ assert(unsigned(flip_mask(0x608128, 52)) == 6324520);
+ assert(unsigned(flip_mask(0x60812c, 52)) == 6324524);
+ assert(unsigned(flip_mask(0x608130, 52)) == 6324528);
+ assert(unsigned(flip_mask(0x608134, 52)) == 6324532);
+ assert(unsigned(flip_mask(0x608138, 52)) == 6324536);
+ assert(unsigned(flip_mask(0x60813c, 52)) == 6324540);
+ assert(unsigned(flip_mask(0x608140, 52)) == 6324544);
+ assert(unsigned(flip_mask(0x608144, 52)) == 6324548);
+ assert(unsigned(flip_mask(0x608148, 52)) == 6324552);
+ assert(unsigned(flip_mask(0x60814c, 52)) == 6324556);
+ assert(unsigned(flip_mask(0x608150, 52)) == 6324560);
+ assert(unsigned(flip_mask(0x608154, 52)) == 6324564);
+ assert(unsigned(flip_mask(0x608158, 52)) == 6324568);
+ assert(unsigned(flip_mask(0x60815c, 52)) == 6324572);
+ assert(unsigned(flip_mask(0x608160, 52)) == 6324576);
+ assert(unsigned(flip_mask(0x608164, 52)) == 6324580);
+ assert(unsigned(flip_mask(0x608168, 52)) == 6324584);
+ assert(unsigned(flip_mask(0x60816c, 52)) == 6324588);
+ assert(unsigned(flip_mask(0x608170, 52)) == 6324592);
+ assert(unsigned(flip_mask(0x608174, 52)) == 6324596);
+ assert(unsigned(flip_mask(0x608178, 52)) == 6324600);
+ assert(unsigned(flip_mask(0x60817c, 52)) == 6324604);
+ assert(unsigned(flip_mask(0x608180, 52)) == 6324608);
+ assert(unsigned(flip_mask(0x608184, 52)) == 6324612);
+ assert(unsigned(flip_mask(0x608188, 52)) == 6324616);
+ assert(unsigned(flip_mask(0x60818c, 52)) == 6324620);
+ assert(unsigned(flip_mask(0x608190, 52)) == 6324624);
+ assert(unsigned(flip_mask(0x608194, 52)) == 6324628);
+ assert(unsigned(flip_mask(0x608198, 52)) == 6324632);
+ assert(unsigned(flip_mask(0x60819c, 52)) == 6324636);
+ assert(unsigned(flip_mask(0x6081a0, 52)) == 6324640);
+ assert(unsigned(flip_mask(0x6081a4, 52)) == 6324644);
+ assert(unsigned(flip_mask(0x6081a8, 52)) == 6324648);
+ assert(unsigned(flip_mask(0x6081ac, 52)) == 6324652);
+ assert(unsigned(flip_mask(0x6081b0, 52)) == 6324656);
+ assert(unsigned(flip_mask(0x6081b4, 52)) == 6324660);
+ assert(unsigned(flip_mask(0x6081b8, 52)) == 6324664);
+ assert(unsigned(flip_mask(0x6081bc, 52)) == 6324668);
+ assert(unsigned(flip_mask(0x6081c0, 52)) == 6324672);
+ assert(unsigned(flip_mask(0x6081c4, 52)) == 6324676);
+ assert(unsigned(flip_mask(0x6081c8, 52)) == 6324680);
+ assert(unsigned(flip_mask(0x6081cc, 52)) == 6324684);
+ assert(unsigned(flip_mask(0x6081d0, 52)) == 6324688);
+ assert(unsigned(flip_mask(0x6081d4, 52)) == 6324692);
+ assert(unsigned(flip_mask(0x6081d8, 52)) == 6324696);
+ assert(unsigned(flip_mask(0x6081dc, 52)) == 6324700);
+ assert(unsigned(flip_mask(0x6081e0, 52)) == 6324704);
+ assert(unsigned(flip_mask(0x6081e4, 52)) == 6324708);
+ assert(unsigned(flip_mask(0x6081e8, 52)) == 6324712);
+ assert(unsigned(flip_mask(0x6081ec, 52)) == 6324716);
+ assert(unsigned(flip_mask(0x6081f0, 52)) == 6324720);
+ assert(unsigned(flip_mask(0x6081f4, 52)) == 6324724);
+ assert(unsigned(flip_mask(0x6081f8, 52)) == 6324728);
+ assert(unsigned(flip_mask(0x6081fc, 52)) == 6324732);
+ assert(unsigned(flip_mask(0x608200, 52)) == 6324736);
+ assert(unsigned(flip_mask(0x608204, 52)) == 6324740);
+ assert(unsigned(flip_mask(0x608208, 52)) == 6324744);
+ assert(unsigned(flip_mask(0x60820c, 52)) == 6324748);
+ assert(unsigned(flip_mask(0x608210, 52)) == 6324752);
+ assert(unsigned(flip_mask(0x608214, 52)) == 6324756);
+ assert(unsigned(flip_mask(0x608218, 52)) == 6324760);
+ assert(unsigned(flip_mask(0x60821c, 52)) == 6324764);
+ assert(unsigned(flip_mask(0x608220, 52)) == 6324768);
+ assert(unsigned(flip_mask(0x608224, 52)) == 6324772);
+ assert(unsigned(flip_mask(0x608228, 52)) == 6324776);
+ assert(unsigned(flip_mask(0x60822c, 52)) == 6324780);
+ assert(unsigned(flip_mask(0x608230, 52)) == 6324784);
+ assert(unsigned(flip_mask(0x608234, 52)) == 6324788);
+ assert(unsigned(flip_mask(0x608238, 52)) == 6324792);
+ assert(unsigned(flip_mask(0x60823c, 52)) == 6324796);
+ assert(unsigned(flip_mask(0x608240, 52)) == 6324800);
+ assert(unsigned(flip_mask(0x608244, 52)) == 6324804);
+ assert(unsigned(flip_mask(0x608248, 52)) == 6324808);
+ assert(unsigned(flip_mask(0x60824c, 52)) == 6324812);
+ assert(unsigned(flip_mask(0x608250, 52)) == 6324816);
+ assert(unsigned(flip_mask(0x608254, 52)) == 6324820);
+ assert(unsigned(flip_mask(0x608258, 52)) == 6324824);
+ assert(unsigned(flip_mask(0x60825c, 52)) == 6324828);
+ assert(unsigned(flip_mask(0x608454, 52)) == 6325332);
+ assert(unsigned(flip_mask(0x608458, 52)) == 6325336);
+ assert(unsigned(flip_mask(0x60845c, 52)) == 6325340);
+ assert(unsigned(flip_mask(0x608460, 52)) == 6325344);
+ assert(unsigned(flip_mask(0x608464, 52)) == 6325348);
+ assert(unsigned(flip_mask(0x608468, 52)) == 6325352);
+ assert(unsigned(flip_mask(0x60846c, 52)) == 6325356);
+ assert(unsigned(flip_mask(0x608470, 52)) == 6325360);
+ assert(unsigned(flip_mask(0x608474, 52)) == 6325364);
+ assert(unsigned(flip_mask(0x608478, 52)) == 6325368);
+ assert(unsigned(flip_mask(0x60847c, 52)) == 6325372);
+ assert(unsigned(flip_mask(0x608480, 52)) == 6325376);
+ assert(unsigned(flip_mask(0x608484, 52)) == 6325380);
+ assert(unsigned(flip_mask(0x608488, 52)) == 6325384);
+ assert(unsigned(flip_mask(0x60848c, 52)) == 6325388);
+ assert(unsigned(flip_mask(0x608490, 52)) == 6325392);
+ assert(unsigned(flip_mask(0x608494, 52)) == 6325396);
+ assert(unsigned(flip_mask(0x608498, 52)) == 6325400);
+ assert(unsigned(flip_mask(0x60849c, 52)) == 6325404);
+ assert(unsigned(flip_mask(0x6084a0, 52)) == 6325408);
+ assert(unsigned(flip_mask(0x6084a4, 52)) == 6325412);
+ assert(unsigned(flip_mask(0x6084a8, 52)) == 6325416);
+ assert(unsigned(flip_mask(0x6084ac, 52)) == 6325420);
+ assert(unsigned(flip_mask(0x6084b0, 52)) == 6325424);
+ assert(unsigned(flip_mask(0x6084b4, 52)) == 6325428);
+ assert(unsigned(flip_mask(0x6084b8, 52)) == 6325432);
+ assert(unsigned(flip_mask(0x6084bc, 52)) == 6325436);
+ assert(unsigned(flip_mask(0x6084c0, 52)) == 6325440);
+ assert(unsigned(flip_mask(0x6084c4, 52)) == 6325444);
+ assert(unsigned(flip_mask(0x6084c8, 52)) == 6325448);
+ assert(unsigned(flip_mask(0x6084cc, 52)) == 6325452);
+ assert(unsigned(flip_mask(0x6084d0, 52)) == 6325456);
+ assert(unsigned(flip_mask(0x6084d8, 52)) == 6325464);
+ assert(unsigned(flip_mask(0x6084e0, 52)) == 6325472);
+ assert(unsigned(flip_mask(0x6084e4, 52)) == 6325476);
+ assert(unsigned(flip_mask(0x6084e8, 52)) == 6325480);
+ assert(unsigned(flip_mask(0x6084ec, 52)) == 6325484);
+ assert(unsigned(flip_mask(0x6084f0, 52)) == 6325488);
+ assert(unsigned(flip_mask(0x6084f4, 52)) == 6325492);
+ assert(unsigned(flip_mask(0x6084f8, 52)) == 6325496);
+ assert(unsigned(flip_mask(0x6084fc, 52)) == 6325500);
+ assert(unsigned(flip_mask(0x608500, 52)) == 6325504);
+ assert(unsigned(flip_mask(0x608504, 52)) == 6325508);
+ assert(unsigned(flip_mask(0x608508, 52)) == 6325512);
+ assert(unsigned(flip_mask(0x60850c, 52)) == 6325516);
+ assert(unsigned(flip_mask(0x608510, 52)) == 6325520);
+ assert(unsigned(flip_mask(0x608514, 52)) == 6325524);
+ assert(unsigned(flip_mask(0x608518, 52)) == 6325528);
+ assert(unsigned(flip_mask(0x60851c, 52)) == 6325532);
+ assert(unsigned(flip_mask(0x608520, 52)) == 6325536);
+ assert(unsigned(flip_mask(0x608524, 52)) == 6325540);
+ assert(unsigned(flip_mask(0x608528, 52)) == 6325544);
+ assert(unsigned(flip_mask(0x60852c, 52)) == 6325548);
+ assert(unsigned(flip_mask(0x608530, 52)) == 6325552);
+ assert(unsigned(flip_mask(0x608534, 52)) == 6325556);
+ assert(unsigned(flip_mask(0x608538, 52)) == 6325560);
+ assert(unsigned(flip_mask(0x60853c, 52)) == 6325564);
+ assert(unsigned(flip_mask(0x608540, 52)) == 6325568);
+ assert(unsigned(flip_mask(0x608544, 52)) == 6325572);
+ assert(unsigned(flip_mask(0x608548, 52)) == 6325576);
+ assert(unsigned(flip_mask(0x608804, 52)) == 6326276);
+ assert(unsigned(flip_mask(0x608808, 52)) == 6326280);
+ assert(unsigned(flip_mask(0x60880c, 52)) == 6326284);
+ assert(unsigned(flip_mask(0x608810, 52)) == 6326288);
+ assert(unsigned(flip_mask(0x608814, 52)) == 6326292);
+ assert(unsigned(flip_mask(0x608818, 52)) == 6326296);
+ assert(unsigned(flip_mask(0x62000, 52)) == 401408);
+ assert(unsigned(flip_mask(0x62400, 52)) == 402432);
+ assert(unsigned(flip_mask(0x62600, 52)) == 402944);
+ assert(unsigned(flip_mask(0x627f0, 52)) == 403440);
+ assert(unsigned(flip_mask(0x62800, 52)) == 403456);
+ assert(unsigned(flip_mask(0x62810, 52)) == 403472);
+ assert(unsigned(flip_mask(0x62a00, 52)) == 403968);
+ assert(unsigned(flip_mask(0x66400, 52)) == 418816);
+ assert(unsigned(flip_mask(0x68400, 52)) == 427008);
+ assert(unsigned(flip_mask(0x68a00, 52)) == 428544);
+ assert(unsigned(flip_mask(0x6cc00, 52)) == 445440);
+ assert(unsigned(flip_mask(0x70400, 52)) == 459776);
+ assert(unsigned(flip_mask(0x70a00, 52)) == 461312);
+ assert(unsigned(flip_mask(0x70c00, 52)) == 461824);
+ assert(unsigned(flip_mask(0x72000, 52)) == 466944);
+ assert(unsigned(flip_mask(0x72c05c, 52)) == 7520348);
+ assert(unsigned(flip_mask(0x72c060, 52)) == 7520352);
+ assert(unsigned(flip_mask(0x72c064, 52)) == 7520356);
+ assert(unsigned(flip_mask(0x730368, 52)) == 7537512);
+ assert(unsigned(flip_mask(0x73036c, 52)) == 7537516);
+ assert(unsigned(flip_mask(0x730370, 52)) == 7537520);
+ assert(unsigned(flip_mask(0x7304b8, 52)) == 7537848);
+ assert(unsigned(flip_mask(0x7304bc, 52)) == 7537852);
+ assert(unsigned(flip_mask(0x7304c0, 52)) == 7537856);
+ assert(unsigned(flip_mask(0x730608, 52)) == 7538184);
+ assert(unsigned(flip_mask(0x73060c, 52)) == 7538188);
+ assert(unsigned(flip_mask(0x730610, 52)) == 7538192);
+ assert(unsigned(flip_mask(0x730910, 52)) == 7538960);
+ assert(unsigned(flip_mask(0x730914, 52)) == 7538964);
+ assert(unsigned(flip_mask(0x730918, 52)) == 7538968);
+ assert(unsigned(flip_mask(0x734754, 52)) == 7554900);
+ assert(unsigned(flip_mask(0x734758, 52)) == 7554904);
+ assert(unsigned(flip_mask(0x73475c, 52)) == 7554908);
+ assert(unsigned(flip_mask(0x7348a4, 52)) == 7555236);
+ assert(unsigned(flip_mask(0x7348a8, 52)) == 7555240);
+ assert(unsigned(flip_mask(0x7348ac, 52)) == 7555244);
+ assert(unsigned(flip_mask(0x738000, 52)) == 7569408);
+ assert(unsigned(flip_mask(0x738004, 52)) == 7569412);
+ assert(unsigned(flip_mask(0x738005, 52)) == 7569413);
+ assert(unsigned(flip_mask(0x738006, 52)) == 7569414);
+ assert(unsigned(flip_mask(0x738007, 52)) == 7569415);
+ assert(unsigned(flip_mask(0x738008, 52)) == 7569416);
+ assert(unsigned(flip_mask(0x738009, 52)) == 7569417);
+ assert(unsigned(flip_mask(0x73800a, 52)) == 7569418);
+ assert(unsigned(flip_mask(0x73800b, 52)) == 7569419);
+ assert(unsigned(flip_mask(0x73800c, 52)) == 7569420);
+ assert(unsigned(flip_mask(0x73800d, 52)) == 7569421);
+ assert(unsigned(flip_mask(0x73800e, 52)) == 7569422);
+ assert(unsigned(flip_mask(0x73800f, 52)) == 7569423);
+ assert(unsigned(flip_mask(0x738010, 52)) == 7569424);
+ assert(unsigned(flip_mask(0x738011, 52)) == 7569425);
+ assert(unsigned(flip_mask(0x738014, 52)) == 7569428);
+ assert(unsigned(flip_mask(0x738018, 52)) == 7569432);
+ assert(unsigned(flip_mask(0x73801c, 52)) == 7569436);
+ assert(unsigned(flip_mask(0x738020, 52)) == 7569440);
+ assert(unsigned(flip_mask(0x738024, 52)) == 7569444);
+ assert(unsigned(flip_mask(0x738028, 52)) == 7569448);
+ assert(unsigned(flip_mask(0x73802c, 52)) == 7569452);
+ assert(unsigned(flip_mask(0x738030, 52)) == 7569456);
+ assert(unsigned(flip_mask(0x738038, 52)) == 7569464);
+ assert(unsigned(flip_mask(0x73803c, 52)) == 7569468);
+ assert(unsigned(flip_mask(0x738044, 52)) == 7569476);
+ assert(unsigned(flip_mask(0x738048, 52)) == 7569480);
+ assert(unsigned(flip_mask(0x73804c, 52)) == 7569484);
+ assert(unsigned(flip_mask(0x738050, 52)) == 7569488);
+ assert(unsigned(flip_mask(0x738054, 52)) == 7569492);
+ assert(unsigned(flip_mask(0x738058, 52)) == 7569496);
+ assert(unsigned(flip_mask(0x73805c, 52)) == 7569500);
+ assert(unsigned(flip_mask(0x738060, 52)) == 7569504);
+ assert(unsigned(flip_mask(0x738064, 52)) == 7569508);
+ assert(unsigned(flip_mask(0x738068, 52)) == 7569512);
+ assert(unsigned(flip_mask(0x738070, 52)) == 7569520);
+ assert(unsigned(flip_mask(0x738074, 52)) == 7569524);
+ assert(unsigned(flip_mask(0x738080, 52)) == 7569536);
+ assert(unsigned(flip_mask(0x738084, 52)) == 7569540);
+ assert(unsigned(flip_mask(0x738088, 52)) == 7569544);
+ assert(unsigned(flip_mask(0x73808c, 52)) == 7569548);
+ assert(unsigned(flip_mask(0x738090, 52)) == 7569552);
+ assert(unsigned(flip_mask(0x738094, 52)) == 7569556);
+ assert(unsigned(flip_mask(0x738098, 52)) == 7569560);
+ assert(unsigned(flip_mask(0x73809c, 52)) == 7569564);
+ assert(unsigned(flip_mask(0x7380a0, 52)) == 7569568);
+ assert(unsigned(flip_mask(0x7380a4, 52)) == 7569572);
+ assert(unsigned(flip_mask(0x7380a8, 52)) == 7569576);
+ assert(unsigned(flip_mask(0x7380ac, 52)) == 7569580);
+ assert(unsigned(flip_mask(0x7380b0, 52)) == 7569584);
+ assert(unsigned(flip_mask(0x7380b4, 52)) == 7569588);
+ assert(unsigned(flip_mask(0x7380b8, 52)) == 7569592);
+ assert(unsigned(flip_mask(0x7380bc, 52)) == 7569596);
+ assert(unsigned(flip_mask(0x7380c0, 52)) == 7569600);
+ assert(unsigned(flip_mask(0x7380c4, 52)) == 7569604);
+ assert(unsigned(flip_mask(0x7380c8, 52)) == 7569608);
+ assert(unsigned(flip_mask(0x7380cc, 52)) == 7569612);
+ assert(unsigned(flip_mask(0x7380d0, 52)) == 7569616);
+ assert(unsigned(flip_mask(0x7380d4, 52)) == 7569620);
+ assert(unsigned(flip_mask(0x7380d8, 52)) == 7569624);
+ assert(unsigned(flip_mask(0x7380dc, 52)) == 7569628);
+ assert(unsigned(flip_mask(0x7380e0, 52)) == 7569632);
+ assert(unsigned(flip_mask(0x7380e4, 52)) == 7569636);
+ assert(unsigned(flip_mask(0x7380e8, 52)) == 7569640);
+ assert(unsigned(flip_mask(0x7380ec, 52)) == 7569644);
+ assert(unsigned(flip_mask(0x7380f0, 52)) == 7569648);
+ assert(unsigned(flip_mask(0x7380f4, 52)) == 7569652);
+ assert(unsigned(flip_mask(0x7380f8, 52)) == 7569656);
+ assert(unsigned(flip_mask(0x738100, 52)) == 7569664);
+ assert(unsigned(flip_mask(0x738104, 52)) == 7569668);
+ assert(unsigned(flip_mask(0x738108, 52)) == 7569672);
+ assert(unsigned(flip_mask(0x73810c, 52)) == 7569676);
+ assert(unsigned(flip_mask(0x738110, 52)) == 7569680);
+ assert(unsigned(flip_mask(0x738114, 52)) == 7569684);
+ assert(unsigned(flip_mask(0x738118, 52)) == 7569688);
+ assert(unsigned(flip_mask(0x73811c, 52)) == 7569692);
+ assert(unsigned(flip_mask(0x738120, 52)) == 7569696);
+ assert(unsigned(flip_mask(0x738124, 52)) == 7569700);
+ assert(unsigned(flip_mask(0x738128, 52)) == 7569704);
+ assert(unsigned(flip_mask(0x73812c, 52)) == 7569708);
+ assert(unsigned(flip_mask(0x738130, 52)) == 7569712);
+ assert(unsigned(flip_mask(0x738134, 52)) == 7569716);
+ assert(unsigned(flip_mask(0x738138, 52)) == 7569720);
+ assert(unsigned(flip_mask(0x73813c, 52)) == 7569724);
+ assert(unsigned(flip_mask(0x738140, 52)) == 7569728);
+ assert(unsigned(flip_mask(0x738148, 52)) == 7569736);
+ assert(unsigned(flip_mask(0x73814c, 52)) == 7569740);
+ assert(unsigned(flip_mask(0x738154, 52)) == 7569748);
+ assert(unsigned(flip_mask(0x738158, 52)) == 7569752);
+ assert(unsigned(flip_mask(0x73815c, 52)) == 7569756);
+ assert(unsigned(flip_mask(0x738160, 52)) == 7569760);
+ assert(unsigned(flip_mask(0x738164, 52)) == 7569764);
+ assert(unsigned(flip_mask(0x738168, 52)) == 7569768);
+ assert(unsigned(flip_mask(0x73816c, 52)) == 7569772);
+ assert(unsigned(flip_mask(0x738170, 52)) == 7569776);
+ assert(unsigned(flip_mask(0x738174, 52)) == 7569780);
+ assert(unsigned(flip_mask(0x738178, 52)) == 7569784);
+ assert(unsigned(flip_mask(0x73817c, 52)) == 7569788);
+ assert(unsigned(flip_mask(0x738180, 52)) == 7569792);
+ assert(unsigned(flip_mask(0x738184, 52)) == 7569796);
+ assert(unsigned(flip_mask(0x738188, 52)) == 7569800);
+ assert(unsigned(flip_mask(0x738190, 52)) == 7569808);
+ assert(unsigned(flip_mask(0x738194, 52)) == 7569812);
+ assert(unsigned(flip_mask(0x738198, 52)) == 7569816);
+ assert(unsigned(flip_mask(0x73819c, 52)) == 7569820);
+ assert(unsigned(flip_mask(0x7381a0, 52)) == 7569824);
+ assert(unsigned(flip_mask(0x7381a4, 52)) == 7569828);
+ assert(unsigned(flip_mask(0x7381a8, 52)) == 7569832);
+ assert(unsigned(flip_mask(0x7381ac, 52)) == 7569836);
+ assert(unsigned(flip_mask(0x7381b0, 52)) == 7569840);
+ assert(unsigned(flip_mask(0x7381b4, 52)) == 7569844);
+ assert(unsigned(flip_mask(0x7381b8, 52)) == 7569848);
+ assert(unsigned(flip_mask(0x7381bc, 52)) == 7569852);
+ assert(unsigned(flip_mask(0x7381c0, 52)) == 7569856);
+ assert(unsigned(flip_mask(0x7381c4, 52)) == 7569860);
+ assert(unsigned(flip_mask(0x7381c8, 52)) == 7569864);
+ assert(unsigned(flip_mask(0x7381cc, 52)) == 7569868);
+ assert(unsigned(flip_mask(0x7381d0, 52)) == 7569872);
+ assert(unsigned(flip_mask(0x7381d8, 52)) == 7569880);
+ assert(unsigned(flip_mask(0x7381dc, 52)) == 7569884);
+ assert(unsigned(flip_mask(0x7381e4, 52)) == 7569892);
+ assert(unsigned(flip_mask(0x7381e8, 52)) == 7569896);
+ assert(unsigned(flip_mask(0x7381ec, 52)) == 7569900);
+ assert(unsigned(flip_mask(0x7381f0, 52)) == 7569904);
+ assert(unsigned(flip_mask(0x7381f4, 52)) == 7569908);
+ assert(unsigned(flip_mask(0x7381f8, 52)) == 7569912);
+ assert(unsigned(flip_mask(0x7381fc, 52)) == 7569916);
+ assert(unsigned(flip_mask(0x738200, 52)) == 7569920);
+ assert(unsigned(flip_mask(0x738204, 52)) == 7569924);
+ assert(unsigned(flip_mask(0x738208, 52)) == 7569928);
+ assert(unsigned(flip_mask(0x73820c, 52)) == 7569932);
+ assert(unsigned(flip_mask(0x738210, 52)) == 7569936);
+ assert(unsigned(flip_mask(0x738214, 52)) == 7569940);
+ assert(unsigned(flip_mask(0x73821c, 52)) == 7569948);
+ assert(unsigned(flip_mask(0x738220, 52)) == 7569952);
+ assert(unsigned(flip_mask(0x73822c, 52)) == 7569964);
+ assert(unsigned(flip_mask(0x738230, 52)) == 7569968);
+ assert(unsigned(flip_mask(0x738234, 52)) == 7569972);
+ assert(unsigned(flip_mask(0x738238, 52)) == 7569976);
+ assert(unsigned(flip_mask(0x73823c, 52)) == 7569980);
+ assert(unsigned(flip_mask(0x738240, 52)) == 7569984);
+ assert(unsigned(flip_mask(0x738244, 52)) == 7569988);
+ assert(unsigned(flip_mask(0x738248, 52)) == 7569992);
+ assert(unsigned(flip_mask(0x73824c, 52)) == 7569996);
+ assert(unsigned(flip_mask(0x738250, 52)) == 7570000);
+ assert(unsigned(flip_mask(0x738254, 52)) == 7570004);
+ assert(unsigned(flip_mask(0x738258, 52)) == 7570008);
+ assert(unsigned(flip_mask(0x73825c, 52)) == 7570012);
+ assert(unsigned(flip_mask(0x738260, 52)) == 7570016);
+ assert(unsigned(flip_mask(0x738264, 52)) == 7570020);
+ assert(unsigned(flip_mask(0x738268, 52)) == 7570024);
+ assert(unsigned(flip_mask(0x73826c, 52)) == 7570028);
+ assert(unsigned(flip_mask(0x738270, 52)) == 7570032);
+ assert(unsigned(flip_mask(0x738274, 52)) == 7570036);
+ assert(unsigned(flip_mask(0x738278, 52)) == 7570040);
+ assert(unsigned(flip_mask(0x73827c, 52)) == 7570044);
+ assert(unsigned(flip_mask(0x738280, 52)) == 7570048);
+ assert(unsigned(flip_mask(0x738284, 52)) == 7570052);
+ assert(unsigned(flip_mask(0x738288, 52)) == 7570056);
+ assert(unsigned(flip_mask(0x73828c, 52)) == 7570060);
+ assert(unsigned(flip_mask(0x738290, 52)) == 7570064);
+ assert(unsigned(flip_mask(0x738294, 52)) == 7570068);
+ assert(unsigned(flip_mask(0x738298, 52)) == 7570072);
+ assert(unsigned(flip_mask(0x73829c, 52)) == 7570076);
+ assert(unsigned(flip_mask(0x7382a0, 52)) == 7570080);
+ assert(unsigned(flip_mask(0x7382a4, 52)) == 7570084);
+ assert(unsigned(flip_mask(0x7382a8, 52)) == 7570088);
+ assert(unsigned(flip_mask(0x7382ac, 52)) == 7570092);
+ assert(unsigned(flip_mask(0x7382b0, 52)) == 7570096);
+ assert(unsigned(flip_mask(0x7382b4, 52)) == 7570100);
+ assert(unsigned(flip_mask(0x7382b8, 52)) == 7570104);
+ assert(unsigned(flip_mask(0x7382bc, 52)) == 7570108);
+ assert(unsigned(flip_mask(0x7382c0, 52)) == 7570112);
+ assert(unsigned(flip_mask(0x7382c4, 52)) == 7570116);
+ assert(unsigned(flip_mask(0x7382c8, 52)) == 7570120);
+ assert(unsigned(flip_mask(0x7382cc, 52)) == 7570124);
+ assert(unsigned(flip_mask(0x7382d0, 52)) == 7570128);
+ assert(unsigned(flip_mask(0x7382d4, 52)) == 7570132);
+ assert(unsigned(flip_mask(0x7382d8, 52)) == 7570136);
+ assert(unsigned(flip_mask(0x7382dc, 52)) == 7570140);
+ assert(unsigned(flip_mask(0x7382e0, 52)) == 7570144);
+ assert(unsigned(flip_mask(0x7382e4, 52)) == 7570148);
+ assert(unsigned(flip_mask(0x7382e8, 52)) == 7570152);
+ assert(unsigned(flip_mask(0x7382ec, 52)) == 7570156);
+ assert(unsigned(flip_mask(0x7382f0, 52)) == 7570160);
+ assert(unsigned(flip_mask(0x7382f4, 52)) == 7570164);
+ assert(unsigned(flip_mask(0x7382f8, 52)) == 7570168);
+ assert(unsigned(flip_mask(0x7382fc, 52)) == 7570172);
+ assert(unsigned(flip_mask(0x738300, 52)) == 7570176);
+ assert(unsigned(flip_mask(0x738304, 52)) == 7570180);
+ assert(unsigned(flip_mask(0x738308, 52)) == 7570184);
+ assert(unsigned(flip_mask(0x73830c, 52)) == 7570188);
+ assert(unsigned(flip_mask(0x738310, 52)) == 7570192);
+ assert(unsigned(flip_mask(0x738314, 52)) == 7570196);
+ assert(unsigned(flip_mask(0x738318, 52)) == 7570200);
+ assert(unsigned(flip_mask(0x73831c, 52)) == 7570204);
+ assert(unsigned(flip_mask(0x738320, 52)) == 7570208);
+ assert(unsigned(flip_mask(0x738324, 52)) == 7570212);
+ assert(unsigned(flip_mask(0x738328, 52)) == 7570216);
+ assert(unsigned(flip_mask(0x73832c, 52)) == 7570220);
+ assert(unsigned(flip_mask(0x738330, 52)) == 7570224);
+ assert(unsigned(flip_mask(0x738334, 52)) == 7570228);
+ assert(unsigned(flip_mask(0x738338, 52)) == 7570232);
+ assert(unsigned(flip_mask(0x73833c, 52)) == 7570236);
+ assert(unsigned(flip_mask(0x738340, 52)) == 7570240);
+ assert(unsigned(flip_mask(0x738344, 52)) == 7570244);
+ assert(unsigned(flip_mask(0x738348, 52)) == 7570248);
+ assert(unsigned(flip_mask(0x73834c, 52)) == 7570252);
+ assert(unsigned(flip_mask(0x738350, 52)) == 7570256);
+ assert(unsigned(flip_mask(0x738354, 52)) == 7570260);
+ assert(unsigned(flip_mask(0x738358, 52)) == 7570264);
+ assert(unsigned(flip_mask(0x73835c, 52)) == 7570268);
+ assert(unsigned(flip_mask(0x738360, 52)) == 7570272);
+ assert(unsigned(flip_mask(0x738364, 52)) == 7570276);
+ assert(unsigned(flip_mask(0x738368, 52)) == 7570280);
+ assert(unsigned(flip_mask(0x73836c, 52)) == 7570284);
+ assert(unsigned(flip_mask(0x738370, 52)) == 7570288);
+ assert(unsigned(flip_mask(0x738374, 52)) == 7570292);
+ assert(unsigned(flip_mask(0x738378, 52)) == 7570296);
+ assert(unsigned(flip_mask(0x73837c, 52)) == 7570300);
+ assert(unsigned(flip_mask(0x738380, 52)) == 7570304);
+ assert(unsigned(flip_mask(0x738384, 52)) == 7570308);
+ assert(unsigned(flip_mask(0x738388, 52)) == 7570312);
+ assert(unsigned(flip_mask(0x73838c, 52)) == 7570316);
+ assert(unsigned(flip_mask(0x738390, 52)) == 7570320);
+ assert(unsigned(flip_mask(0x738394, 52)) == 7570324);
+ assert(unsigned(flip_mask(0x738398, 52)) == 7570328);
+ assert(unsigned(flip_mask(0x73839c, 52)) == 7570332);
+ assert(unsigned(flip_mask(0x7383a0, 52)) == 7570336);
+ assert(unsigned(flip_mask(0x7383a4, 52)) == 7570340);
+ assert(unsigned(flip_mask(0x7383a8, 52)) == 7570344);
+ assert(unsigned(flip_mask(0x7383ac, 52)) == 7570348);
+ assert(unsigned(flip_mask(0x7383b0, 52)) == 7570352);
+ assert(unsigned(flip_mask(0x7383b8, 52)) == 7570360);
+ assert(unsigned(flip_mask(0x7383bc, 52)) == 7570364);
+ assert(unsigned(flip_mask(0x7383c4, 52)) == 7570372);
+ assert(unsigned(flip_mask(0x7383c8, 52)) == 7570376);
+ assert(unsigned(flip_mask(0x7383cc, 52)) == 7570380);
+ assert(unsigned(flip_mask(0x7383d0, 52)) == 7570384);
+ assert(unsigned(flip_mask(0x7383d4, 52)) == 7570388);
+ assert(unsigned(flip_mask(0x7383d8, 52)) == 7570392);
+ assert(unsigned(flip_mask(0x7383dc, 52)) == 7570396);
+ assert(unsigned(flip_mask(0x7383e0, 52)) == 7570400);
+ assert(unsigned(flip_mask(0x7383e4, 52)) == 7570404);
+ assert(unsigned(flip_mask(0x7383e8, 52)) == 7570408);
+ assert(unsigned(flip_mask(0x7383ec, 52)) == 7570412);
+ assert(unsigned(flip_mask(0x7383f4, 52)) == 7570420);
+ assert(unsigned(flip_mask(0x7383f8, 52)) == 7570424);
+ assert(unsigned(flip_mask(0x738404, 52)) == 7570436);
+ assert(unsigned(flip_mask(0x738408, 52)) == 7570440);
+ assert(unsigned(flip_mask(0x73840c, 52)) == 7570444);
+ assert(unsigned(flip_mask(0x738410, 52)) == 7570448);
+ assert(unsigned(flip_mask(0x738414, 52)) == 7570452);
+ assert(unsigned(flip_mask(0x738418, 52)) == 7570456);
+ assert(unsigned(flip_mask(0x73841c, 52)) == 7570460);
+ assert(unsigned(flip_mask(0x738420, 52)) == 7570464);
+ assert(unsigned(flip_mask(0x738424, 52)) == 7570468);
+ assert(unsigned(flip_mask(0x738428, 52)) == 7570472);
+ assert(unsigned(flip_mask(0x73842c, 52)) == 7570476);
+ assert(unsigned(flip_mask(0x738430, 52)) == 7570480);
+ assert(unsigned(flip_mask(0x738434, 52)) == 7570484);
+ assert(unsigned(flip_mask(0x738438, 52)) == 7570488);
+ assert(unsigned(flip_mask(0x73843c, 52)) == 7570492);
+ assert(unsigned(flip_mask(0x738440, 52)) == 7570496);
+ assert(unsigned(flip_mask(0x738444, 52)) == 7570500);
+ assert(unsigned(flip_mask(0x738448, 52)) == 7570504);
+ assert(unsigned(flip_mask(0x73844c, 52)) == 7570508);
+ assert(unsigned(flip_mask(0x738450, 52)) == 7570512);
+ assert(unsigned(flip_mask(0x738454, 52)) == 7570516);
+ assert(unsigned(flip_mask(0x738458, 52)) == 7570520);
+ assert(unsigned(flip_mask(0x73845c, 52)) == 7570524);
+ assert(unsigned(flip_mask(0x738460, 52)) == 7570528);
+ assert(unsigned(flip_mask(0x738464, 52)) == 7570532);
+ assert(unsigned(flip_mask(0x738468, 52)) == 7570536);
+ assert(unsigned(flip_mask(0x73846c, 52)) == 7570540);
+ assert(unsigned(flip_mask(0x738470, 52)) == 7570544);
+ assert(unsigned(flip_mask(0x738474, 52)) == 7570548);
+ assert(unsigned(flip_mask(0x738478, 52)) == 7570552);
+ assert(unsigned(flip_mask(0x73847c, 52)) == 7570556);
+ assert(unsigned(flip_mask(0x738480, 52)) == 7570560);
+ assert(unsigned(flip_mask(0x738484, 52)) == 7570564);
+ assert(unsigned(flip_mask(0x738488, 52)) == 7570568);
+ assert(unsigned(flip_mask(0x73848c, 52)) == 7570572);
+ assert(unsigned(flip_mask(0x738490, 52)) == 7570576);
+ assert(unsigned(flip_mask(0x738494, 52)) == 7570580);
+ assert(unsigned(flip_mask(0x738498, 52)) == 7570584);
+ assert(unsigned(flip_mask(0x73849c, 52)) == 7570588);
+ assert(unsigned(flip_mask(0x7384a0, 52)) == 7570592);
+ assert(unsigned(flip_mask(0x7384a4, 52)) == 7570596);
+ assert(unsigned(flip_mask(0x7384a8, 52)) == 7570600);
+ assert(unsigned(flip_mask(0x7384ac, 52)) == 7570604);
+ assert(unsigned(flip_mask(0x7384b0, 52)) == 7570608);
+ assert(unsigned(flip_mask(0x7384b4, 52)) == 7570612);
+ assert(unsigned(flip_mask(0x7384b8, 52)) == 7570616);
+ assert(unsigned(flip_mask(0x7384bc, 52)) == 7570620);
+ assert(unsigned(flip_mask(0x7384c0, 52)) == 7570624);
+ assert(unsigned(flip_mask(0x7384c4, 52)) == 7570628);
+ assert(unsigned(flip_mask(0x7384c8, 52)) == 7570632);
+ assert(unsigned(flip_mask(0x7384cc, 52)) == 7570636);
+ assert(unsigned(flip_mask(0x7384d0, 52)) == 7570640);
+ assert(unsigned(flip_mask(0x7384d4, 52)) == 7570644);
+ assert(unsigned(flip_mask(0x7384d8, 52)) == 7570648);
+ assert(unsigned(flip_mask(0x7384dc, 52)) == 7570652);
+ assert(unsigned(flip_mask(0x7384e0, 52)) == 7570656);
+ assert(unsigned(flip_mask(0x7384e4, 52)) == 7570660);
+ assert(unsigned(flip_mask(0x7384e8, 52)) == 7570664);
+ assert(unsigned(flip_mask(0x7384ec, 52)) == 7570668);
+ assert(unsigned(flip_mask(0x7384f0, 52)) == 7570672);
+ assert(unsigned(flip_mask(0x7384f4, 52)) == 7570676);
+ assert(unsigned(flip_mask(0x7384f8, 52)) == 7570680);
+ assert(unsigned(flip_mask(0x7384fc, 52)) == 7570684);
+ assert(unsigned(flip_mask(0x738500, 52)) == 7570688);
+ assert(unsigned(flip_mask(0x738508, 52)) == 7570696);
+ assert(unsigned(flip_mask(0x73850c, 52)) == 7570700);
+ assert(unsigned(flip_mask(0x738514, 52)) == 7570708);
+ assert(unsigned(flip_mask(0x738518, 52)) == 7570712);
+ assert(unsigned(flip_mask(0x73851c, 52)) == 7570716);
+ assert(unsigned(flip_mask(0x738520, 52)) == 7570720);
+ assert(unsigned(flip_mask(0x738524, 52)) == 7570724);
+ assert(unsigned(flip_mask(0x738528, 52)) == 7570728);
+ assert(unsigned(flip_mask(0x73852c, 52)) == 7570732);
+ assert(unsigned(flip_mask(0x738530, 52)) == 7570736);
+ assert(unsigned(flip_mask(0x738534, 52)) == 7570740);
+ assert(unsigned(flip_mask(0x738538, 52)) == 7570744);
+ assert(unsigned(flip_mask(0x73853c, 52)) == 7570748);
+ assert(unsigned(flip_mask(0x738544, 52)) == 7570756);
+ assert(unsigned(flip_mask(0x738548, 52)) == 7570760);
+ assert(unsigned(flip_mask(0x738554, 52)) == 7570772);
+ assert(unsigned(flip_mask(0x738558, 52)) == 7570776);
+ assert(unsigned(flip_mask(0x73855c, 52)) == 7570780);
+ assert(unsigned(flip_mask(0x738560, 52)) == 7570784);
+ assert(unsigned(flip_mask(0x738564, 52)) == 7570788);
+ assert(unsigned(flip_mask(0x738568, 52)) == 7570792);
+ assert(unsigned(flip_mask(0x73856c, 52)) == 7570796);
+ assert(unsigned(flip_mask(0x738570, 52)) == 7570800);
+ assert(unsigned(flip_mask(0x738574, 52)) == 7570804);
+ assert(unsigned(flip_mask(0x738578, 52)) == 7570808);
+ assert(unsigned(flip_mask(0x73857c, 52)) == 7570812);
+ assert(unsigned(flip_mask(0x738580, 52)) == 7570816);
+ assert(unsigned(flip_mask(0x738584, 52)) == 7570820);
+ assert(unsigned(flip_mask(0x738588, 52)) == 7570824);
+ assert(unsigned(flip_mask(0x73858c, 52)) == 7570828);
+ assert(unsigned(flip_mask(0x738590, 52)) == 7570832);
+ assert(unsigned(flip_mask(0x738594, 52)) == 7570836);
+ assert(unsigned(flip_mask(0x738598, 52)) == 7570840);
+ assert(unsigned(flip_mask(0x73859c, 52)) == 7570844);
+ assert(unsigned(flip_mask(0x7385a0, 52)) == 7570848);
+ assert(unsigned(flip_mask(0x7385a4, 52)) == 7570852);
+ assert(unsigned(flip_mask(0x7385a8, 52)) == 7570856);
+ assert(unsigned(flip_mask(0x7385ac, 52)) == 7570860);
+ assert(unsigned(flip_mask(0x7385b0, 52)) == 7570864);
+ assert(unsigned(flip_mask(0x7385b4, 52)) == 7570868);
+ assert(unsigned(flip_mask(0x7385b8, 52)) == 7570872);
+ assert(unsigned(flip_mask(0x7385bc, 52)) == 7570876);
+ assert(unsigned(flip_mask(0x7385c0, 52)) == 7570880);
+ assert(unsigned(flip_mask(0x7385c4, 52)) == 7570884);
+ assert(unsigned(flip_mask(0x7385c8, 52)) == 7570888);
+ assert(unsigned(flip_mask(0x7385cc, 52)) == 7570892);
+ assert(unsigned(flip_mask(0x7385d0, 52)) == 7570896);
+ assert(unsigned(flip_mask(0x7385d4, 52)) == 7570900);
+ assert(unsigned(flip_mask(0x7385d8, 52)) == 7570904);
+ assert(unsigned(flip_mask(0x7385dc, 52)) == 7570908);
+ assert(unsigned(flip_mask(0x7385e0, 52)) == 7570912);
+ assert(unsigned(flip_mask(0x7385e4, 52)) == 7570916);
+ assert(unsigned(flip_mask(0x7385e8, 52)) == 7570920);
+ assert(unsigned(flip_mask(0x7385ec, 52)) == 7570924);
+ assert(unsigned(flip_mask(0x7385f0, 52)) == 7570928);
+ assert(unsigned(flip_mask(0x7385f4, 52)) == 7570932);
+ assert(unsigned(flip_mask(0x7385f8, 52)) == 7570936);
+ assert(unsigned(flip_mask(0x7385fc, 52)) == 7570940);
+ assert(unsigned(flip_mask(0x738600, 52)) == 7570944);
+ assert(unsigned(flip_mask(0x738604, 52)) == 7570948);
+ assert(unsigned(flip_mask(0x738608, 52)) == 7570952);
+ assert(unsigned(flip_mask(0x73860c, 52)) == 7570956);
+ assert(unsigned(flip_mask(0x738610, 52)) == 7570960);
+ assert(unsigned(flip_mask(0x738614, 52)) == 7570964);
+ assert(unsigned(flip_mask(0x738618, 52)) == 7570968);
+ assert(unsigned(flip_mask(0x73861c, 52)) == 7570972);
+ assert(unsigned(flip_mask(0x738620, 52)) == 7570976);
+ assert(unsigned(flip_mask(0x738624, 52)) == 7570980);
+ assert(unsigned(flip_mask(0x738628, 52)) == 7570984);
+ assert(unsigned(flip_mask(0x73862c, 52)) == 7570988);
+ assert(unsigned(flip_mask(0x738630, 52)) == 7570992);
+ assert(unsigned(flip_mask(0x738634, 52)) == 7570996);
+ assert(unsigned(flip_mask(0x738638, 52)) == 7571000);
+ assert(unsigned(flip_mask(0x73863c, 52)) == 7571004);
+ assert(unsigned(flip_mask(0x738640, 52)) == 7571008);
+ assert(unsigned(flip_mask(0x738644, 52)) == 7571012);
+ assert(unsigned(flip_mask(0x738648, 52)) == 7571016);
+ assert(unsigned(flip_mask(0x73864c, 52)) == 7571020);
+ assert(unsigned(flip_mask(0x738650, 52)) == 7571024);
+ assert(unsigned(flip_mask(0x738658, 52)) == 7571032);
+ assert(unsigned(flip_mask(0x73865c, 52)) == 7571036);
+ assert(unsigned(flip_mask(0x738664, 52)) == 7571044);
+ assert(unsigned(flip_mask(0x738668, 52)) == 7571048);
+ assert(unsigned(flip_mask(0x73866c, 52)) == 7571052);
+ assert(unsigned(flip_mask(0x738670, 52)) == 7571056);
+ assert(unsigned(flip_mask(0x738674, 52)) == 7571060);
+ assert(unsigned(flip_mask(0x738678, 52)) == 7571064);
+ assert(unsigned(flip_mask(0x73867c, 52)) == 7571068);
+ assert(unsigned(flip_mask(0x738680, 52)) == 7571072);
+ assert(unsigned(flip_mask(0x738684, 52)) == 7571076);
+ assert(unsigned(flip_mask(0x738688, 52)) == 7571080);
+ assert(unsigned(flip_mask(0x73868c, 52)) == 7571084);
+ assert(unsigned(flip_mask(0x738694, 52)) == 7571092);
+ assert(unsigned(flip_mask(0x738698, 52)) == 7571096);
+ assert(unsigned(flip_mask(0x7386a4, 52)) == 7571108);
+ assert(unsigned(flip_mask(0x7386a8, 52)) == 7571112);
+ assert(unsigned(flip_mask(0x7386ac, 52)) == 7571116);
+ assert(unsigned(flip_mask(0x7386b0, 52)) == 7571120);
+ assert(unsigned(flip_mask(0x7386b4, 52)) == 7571124);
+ assert(unsigned(flip_mask(0x7386b8, 52)) == 7571128);
+ assert(unsigned(flip_mask(0x7386bc, 52)) == 7571132);
+ assert(unsigned(flip_mask(0x7386c0, 52)) == 7571136);
+ assert(unsigned(flip_mask(0x7386c4, 52)) == 7571140);
+ assert(unsigned(flip_mask(0x7386c8, 52)) == 7571144);
+ assert(unsigned(flip_mask(0x7386cc, 52)) == 7571148);
+ assert(unsigned(flip_mask(0x7386d0, 52)) == 7571152);
+ assert(unsigned(flip_mask(0x7386d4, 52)) == 7571156);
+ assert(unsigned(flip_mask(0x7386d8, 52)) == 7571160);
+ assert(unsigned(flip_mask(0x7386dc, 52)) == 7571164);
+ assert(unsigned(flip_mask(0x7386e0, 52)) == 7571168);
+ assert(unsigned(flip_mask(0x7386e4, 52)) == 7571172);
+ assert(unsigned(flip_mask(0x7386e8, 52)) == 7571176);
+ assert(unsigned(flip_mask(0x7386ec, 52)) == 7571180);
+ assert(unsigned(flip_mask(0x7386f0, 52)) == 7571184);
+ assert(unsigned(flip_mask(0x7386f4, 52)) == 7571188);
+ assert(unsigned(flip_mask(0x7386f8, 52)) == 7571192);
+ assert(unsigned(flip_mask(0x7386fc, 52)) == 7571196);
+ assert(unsigned(flip_mask(0x738700, 52)) == 7571200);
+ assert(unsigned(flip_mask(0x738704, 52)) == 7571204);
+ assert(unsigned(flip_mask(0x738708, 52)) == 7571208);
+ assert(unsigned(flip_mask(0x73870c, 52)) == 7571212);
+ assert(unsigned(flip_mask(0x738710, 52)) == 7571216);
+ assert(unsigned(flip_mask(0x738714, 52)) == 7571220);
+ assert(unsigned(flip_mask(0x738724, 52)) == 7571236);
+ assert(unsigned(flip_mask(0x738728, 52)) == 7571240);
+ assert(unsigned(flip_mask(0x73872c, 52)) == 7571244);
+ assert(unsigned(flip_mask(0x738730, 52)) == 7571248);
+ assert(unsigned(flip_mask(0x738734, 52)) == 7571252);
+ assert(unsigned(flip_mask(0x738738, 52)) == 7571256);
+ assert(unsigned(flip_mask(0x73873c, 52)) == 7571260);
+ assert(unsigned(flip_mask(0x738740, 52)) == 7571264);
+ assert(unsigned(flip_mask(0x738744, 52)) == 7571268);
+ assert(unsigned(flip_mask(0x738748, 52)) == 7571272);
+ assert(unsigned(flip_mask(0x73874c, 52)) == 7571276);
+ assert(unsigned(flip_mask(0x738750, 52)) == 7571280);
+ assert(unsigned(flip_mask(0x738754, 52)) == 7571284);
+ assert(unsigned(flip_mask(0x738758, 52)) == 7571288);
+ assert(unsigned(flip_mask(0x73875c, 52)) == 7571292);
+ assert(unsigned(flip_mask(0x738760, 52)) == 7571296);
+ assert(unsigned(flip_mask(0x738764, 52)) == 7571300);
+ assert(unsigned(flip_mask(0x738768, 52)) == 7571304);
+ assert(unsigned(flip_mask(0x73876c, 52)) == 7571308);
+ assert(unsigned(flip_mask(0x738770, 52)) == 7571312);
+ assert(unsigned(flip_mask(0x738774, 52)) == 7571316);
+ assert(unsigned(flip_mask(0x738778, 52)) == 7571320);
+ assert(unsigned(flip_mask(0x73877c, 52)) == 7571324);
+ assert(unsigned(flip_mask(0x738780, 52)) == 7571328);
+ assert(unsigned(flip_mask(0x738784, 52)) == 7571332);
+ assert(unsigned(flip_mask(0x738788, 52)) == 7571336);
+ assert(unsigned(flip_mask(0x73878c, 52)) == 7571340);
+ assert(unsigned(flip_mask(0x738790, 52)) == 7571344);
+ assert(unsigned(flip_mask(0x738794, 52)) == 7571348);
+ assert(unsigned(flip_mask(0x738798, 52)) == 7571352);
+ assert(unsigned(flip_mask(0x73879c, 52)) == 7571356);
+ assert(unsigned(flip_mask(0x7387a4, 52)) == 7571364);
+ assert(unsigned(flip_mask(0x7387a8, 52)) == 7571368);
+ assert(unsigned(flip_mask(0x7387b0, 52)) == 7571376);
+ assert(unsigned(flip_mask(0x7387b4, 52)) == 7571380);
+ assert(unsigned(flip_mask(0x7387b8, 52)) == 7571384);
+ assert(unsigned(flip_mask(0x7387bc, 52)) == 7571388);
+ assert(unsigned(flip_mask(0x7387c0, 52)) == 7571392);
+ assert(unsigned(flip_mask(0x7387c4, 52)) == 7571396);
+ assert(unsigned(flip_mask(0x7387c8, 52)) == 7571400);
+ assert(unsigned(flip_mask(0x7387cc, 52)) == 7571404);
+ assert(unsigned(flip_mask(0x7387d0, 52)) == 7571408);
+ assert(unsigned(flip_mask(0x7387d4, 52)) == 7571412);
+ assert(unsigned(flip_mask(0x7387d8, 52)) == 7571416);
+ assert(unsigned(flip_mask(0x7387e0, 52)) == 7571424);
+ assert(unsigned(flip_mask(0x7387e4, 52)) == 7571428);
+ assert(unsigned(flip_mask(0x7387f0, 52)) == 7571440);
+ assert(unsigned(flip_mask(0x7387f4, 52)) == 7571444);
+ assert(unsigned(flip_mask(0x7387f8, 52)) == 7571448);
+ assert(unsigned(flip_mask(0x7387fc, 52)) == 7571452);
+ assert(unsigned(flip_mask(0x738800, 52)) == 7571456);
+ assert(unsigned(flip_mask(0x738804, 52)) == 7571460);
+ assert(unsigned(flip_mask(0x738808, 52)) == 7571464);
+ assert(unsigned(flip_mask(0x73880c, 52)) == 7571468);
+ assert(unsigned(flip_mask(0x738810, 52)) == 7571472);
+ assert(unsigned(flip_mask(0x738814, 52)) == 7571476);
+ assert(unsigned(flip_mask(0x738818, 52)) == 7571480);
+ assert(unsigned(flip_mask(0x73881c, 52)) == 7571484);
+ assert(unsigned(flip_mask(0x738820, 52)) == 7571488);
+ assert(unsigned(flip_mask(0x738824, 52)) == 7571492);
+ assert(unsigned(flip_mask(0x738828, 52)) == 7571496);
+ assert(unsigned(flip_mask(0x73882c, 52)) == 7571500);
+ assert(unsigned(flip_mask(0x738830, 52)) == 7571504);
+ assert(unsigned(flip_mask(0x738834, 52)) == 7571508);
+ assert(unsigned(flip_mask(0x738838, 52)) == 7571512);
+ assert(unsigned(flip_mask(0x73883c, 52)) == 7571516);
+ assert(unsigned(flip_mask(0x738840, 52)) == 7571520);
+ assert(unsigned(flip_mask(0x738844, 52)) == 7571524);
+ assert(unsigned(flip_mask(0x738848, 52)) == 7571528);
+ assert(unsigned(flip_mask(0x73884c, 52)) == 7571532);
+ assert(unsigned(flip_mask(0x738850, 52)) == 7571536);
+ assert(unsigned(flip_mask(0x738854, 52)) == 7571540);
+ assert(unsigned(flip_mask(0x738858, 52)) == 7571544);
+ assert(unsigned(flip_mask(0x73885c, 52)) == 7571548);
+ assert(unsigned(flip_mask(0x738860, 52)) == 7571552);
+ assert(unsigned(flip_mask(0x738864, 52)) == 7571556);
+ assert(unsigned(flip_mask(0x738868, 52)) == 7571560);
+ assert(unsigned(flip_mask(0x73886c, 52)) == 7571564);
+ assert(unsigned(flip_mask(0x738870, 52)) == 7571568);
+ assert(unsigned(flip_mask(0x738874, 52)) == 7571572);
+ assert(unsigned(flip_mask(0x738878, 52)) == 7571576);
+ assert(unsigned(flip_mask(0x73887c, 52)) == 7571580);
+ assert(unsigned(flip_mask(0x738880, 52)) == 7571584);
+ assert(unsigned(flip_mask(0x738884, 52)) == 7571588);
+ assert(unsigned(flip_mask(0x738888, 52)) == 7571592);
+ assert(unsigned(flip_mask(0x73888c, 52)) == 7571596);
+ assert(unsigned(flip_mask(0x738890, 52)) == 7571600);
+ assert(unsigned(flip_mask(0x738894, 52)) == 7571604);
+ assert(unsigned(flip_mask(0x738898, 52)) == 7571608);
+ assert(unsigned(flip_mask(0x73889c, 52)) == 7571612);
+ assert(unsigned(flip_mask(0x7388a0, 52)) == 7571616);
+ assert(unsigned(flip_mask(0x7388a4, 52)) == 7571620);
+ assert(unsigned(flip_mask(0x7388a8, 52)) == 7571624);
+ assert(unsigned(flip_mask(0x7388ac, 52)) == 7571628);
+ assert(unsigned(flip_mask(0x7388b0, 52)) == 7571632);
+ assert(unsigned(flip_mask(0x7388b4, 52)) == 7571636);
+ assert(unsigned(flip_mask(0x7388b8, 52)) == 7571640);
+ assert(unsigned(flip_mask(0x7388bc, 52)) == 7571644);
+ assert(unsigned(flip_mask(0x7388c0, 52)) == 7571648);
+ assert(unsigned(flip_mask(0x7388c4, 52)) == 7571652);
+ assert(unsigned(flip_mask(0x7388c8, 52)) == 7571656);
+ assert(unsigned(flip_mask(0x7388cc, 52)) == 7571660);
+ assert(unsigned(flip_mask(0x7388d0, 52)) == 7571664);
+ assert(unsigned(flip_mask(0x7388d4, 52)) == 7571668);
+ assert(unsigned(flip_mask(0x7388d8, 52)) == 7571672);
+ assert(unsigned(flip_mask(0x7388dc, 52)) == 7571676);
+ assert(unsigned(flip_mask(0x7388e0, 52)) == 7571680);
+ assert(unsigned(flip_mask(0x7388e4, 52)) == 7571684);
+ assert(unsigned(flip_mask(0x7388e8, 52)) == 7571688);
+ assert(unsigned(flip_mask(0x7388ec, 52)) == 7571692);
+ assert(unsigned(flip_mask(0x7388f0, 52)) == 7571696);
+ assert(unsigned(flip_mask(0x7388f4, 52)) == 7571700);
+ assert(unsigned(flip_mask(0x7388f8, 52)) == 7571704);
+ assert(unsigned(flip_mask(0x7388fc, 52)) == 7571708);
+ assert(unsigned(flip_mask(0x738900, 52)) == 7571712);
+ assert(unsigned(flip_mask(0x738904, 52)) == 7571716);
+ assert(unsigned(flip_mask(0x738908, 52)) == 7571720);
+ assert(unsigned(flip_mask(0x73890c, 52)) == 7571724);
+ assert(unsigned(flip_mask(0x738910, 52)) == 7571728);
+ assert(unsigned(flip_mask(0x738914, 52)) == 7571732);
+ assert(unsigned(flip_mask(0x738918, 52)) == 7571736);
+ assert(unsigned(flip_mask(0x73891c, 52)) == 7571740);
+ assert(unsigned(flip_mask(0x738920, 52)) == 7571744);
+ assert(unsigned(flip_mask(0x738924, 52)) == 7571748);
+ assert(unsigned(flip_mask(0x738928, 52)) == 7571752);
+ assert(unsigned(flip_mask(0x73892c, 52)) == 7571756);
+ assert(unsigned(flip_mask(0x738930, 52)) == 7571760);
+ assert(unsigned(flip_mask(0x7406f0, 52)) == 7603952);
+ assert(unsigned(flip_mask(0x7406f4, 52)) == 7603956);
+ assert(unsigned(flip_mask(0x7406f8, 52)) == 7603960);
+ assert(unsigned(flip_mask(0x74083c, 52)) == 7604284);
+ assert(unsigned(flip_mask(0x740840, 52)) == 7604288);
+ assert(unsigned(flip_mask(0x740844, 52)) == 7604292);
+ assert(unsigned(flip_mask(0x7442f8, 52)) == 7619320);
+ assert(unsigned(flip_mask(0x7442fc, 52)) == 7619324);
+ assert(unsigned(flip_mask(0x744300, 52)) == 7619328);
+ assert(unsigned(flip_mask(0x744450, 52)) == 7619664);
+ assert(unsigned(flip_mask(0x744454, 52)) == 7619668);
+ assert(unsigned(flip_mask(0x744458, 52)) == 7619672);
+ assert(unsigned(flip_mask(0x7445a0, 52)) == 7620000);
+ assert(unsigned(flip_mask(0x7445a4, 52)) == 7620004);
+ assert(unsigned(flip_mask(0x7445a8, 52)) == 7620008);
+ assert(unsigned(flip_mask(0x75c00, 52)) == 482304);
+ assert(unsigned(flip_mask(0x75e00, 52)) == 482816);
+ assert(unsigned(flip_mask(0x76000, 52)) == 483328);
+ assert(unsigned(flip_mask(0x76008, 52)) == 483336);
+ assert(unsigned(flip_mask(0x76010, 52)) == 483344);
+ assert(unsigned(flip_mask(0x77000, 52)) == 487424);
+ assert(unsigned(flip_mask(0x77010, 52)) == 487440);
+ assert(unsigned(flip_mask(0x8000, 52)) == 32768);
+ assert(unsigned(flip_mask(0x8008, 52)) == 32776);
+ assert(unsigned(flip_mask(0x8018, 52)) == 32792);
+ assert(unsigned(flip_mask(0x8040, 52)) == 32832);
+ assert(unsigned(flip_mask(0x80428, 52)) == 525352);
+ assert(unsigned(flip_mask(0x8048, 52)) == 32840);
+ assert(unsigned(flip_mask(0x84800, 52)) == 542720);
+ assert(unsigned(flip_mask(0xc020, 52)) == 49184);
+ assert(unsigned(flip_mask(0xc028, 52)) == 49192);
+ assert(unsigned(flip_mask(0xc030, 52)) == 49200);
+ assert(unsigned(flip_mask(0xc038, 52)) == 49208);
+ assert(unsigned(flip_mask(0xc040, 52)) == 49216);
+ assert(unsigned(flip_mask(0x0, 6)) == 0);
+ assert(unsigned(flip_mask(0x1, 6)) == 1);
+ assert(unsigned(flip_mask(0x10, 6)) == 16);
+ assert(unsigned(flip_mask(0x11, 6)) == 17);
+ assert(unsigned(flip_mask(0x12, 6)) == 18);
+ assert(unsigned(flip_mask(0x13, 6)) == 19);
+ assert(unsigned(flip_mask(0x15, 6)) == 21);
+ assert(unsigned(flip_mask(0x16, 6)) == 22);
+ assert(unsigned(flip_mask(0x17, 6)) == 23);
+ assert(unsigned(flip_mask(0x18, 6)) == 24);
+ assert(unsigned(flip_mask(0x19, 6)) == 25);
+ assert(unsigned(flip_mask(0x1a, 6)) == 26);
+ assert(unsigned(flip_mask(0x1b, 6)) == 27);
+ assert(unsigned(flip_mask(0x1c, 6)) == 28);
+ assert(unsigned(flip_mask(0x1d, 6)) == 29);
+ assert(unsigned(flip_mask(0x1e, 6)) == 30);
+ assert(unsigned(flip_mask(0x1f, 6)) == 31);
+ assert(unsigned(flip_mask(0x2, 6)) == 2);
+ assert(unsigned(flip_mask(0x20, 6)) == 32);
+ assert(unsigned(flip_mask(0x21, 6)) == 33);
+ assert(unsigned(flip_mask(0x22, 6)) == 34);
+ assert(unsigned(flip_mask(0x23, 6)) == 35);
+ assert(unsigned(flip_mask(0x24, 6)) == 36);
+ assert(unsigned(flip_mask(0x26, 6)) == 38);
+ assert(unsigned(flip_mask(0x27, 6)) == 39);
+ assert(unsigned(flip_mask(0x28, 6)) == 40);
+ assert(unsigned(flip_mask(0x29, 6)) == 41);
+ assert(unsigned(flip_mask(0x2a, 6)) == 42);
+ assert(unsigned(flip_mask(0x2b, 6)) == 43);
+ assert(unsigned(flip_mask(0x2c, 6)) == 44);
+ assert(unsigned(flip_mask(0x2d, 6)) == 45);
+ assert(unsigned(flip_mask(0x2e, 6)) == 46);
+ assert(unsigned(flip_mask(0x2f, 6)) == 47);
+ assert(unsigned(flip_mask(0x3, 6)) == 3);
+ assert(unsigned(flip_mask(0x30, 6)) == 48);
+ assert(unsigned(flip_mask(0x31, 6)) == 49);
+ assert(unsigned(flip_mask(0x32, 6)) == 50);
+ assert(unsigned(flip_mask(0x33, 6)) == 51);
+ assert(unsigned(flip_mask(0x34, 6)) == 52);
+ assert(unsigned(flip_mask(0x35, 6)) == 53);
+ assert(unsigned(flip_mask(0x36, 6)) == 54);
+ assert(unsigned(flip_mask(0x37, 6)) == 55);
+ assert(unsigned(flip_mask(0x38, 6)) == 56);
+ assert(unsigned(flip_mask(0x39, 6)) == 57);
+ assert(unsigned(flip_mask(0x3a, 6)) == 58);
+ assert(unsigned(flip_mask(0x3b, 6)) == 59);
+ assert(unsigned(flip_mask(0x3c, 6)) == 60);
+ assert(unsigned(flip_mask(0x3d, 6)) == 61);
+ assert(unsigned(flip_mask(0x3e, 6)) == 62);
+ assert(unsigned(flip_mask(0x3f, 6)) == 63);
+ assert(unsigned(flip_mask(0x4, 6)) == 4);
+ assert(unsigned(flip_mask(0x5, 6)) == 5);
+ assert(unsigned(flip_mask(0x6, 6)) == 6);
+ assert(unsigned(flip_mask(0x7, 6)) == 7);
+ assert(unsigned(flip_mask(0x8, 6)) == 8);
+ assert(unsigned(flip_mask(0x9, 6)) == 9);
+ assert(unsigned(flip_mask(0xa, 6)) == 10);
+ assert(unsigned(flip_mask(0xb, 6)) == 11);
+ assert(unsigned(flip_mask(0xc, 6)) == 12);
+ assert(unsigned(flip_mask(0xd, 6)) == 13);
+ assert(unsigned(flip_mask(0xe, 6)) == 14);
+ assert(unsigned(flip_mask(0xf, 6)) == 15);
+ assert(unsigned(flip_mask(0x0, 64)) == 0);
+ assert(unsigned(flip_mask(0x1, 64)) == 1);
+ assert(unsigned(flip_mask(0x10, 64)) == 16);
+ assert(unsigned(flip_mask(0x100, 64)) == 256);
+ assert(unsigned(flip_mask(0x10000, 64)) == 65536);
+ assert(unsigned(flip_mask(0x1000000, 64)) == 16777216);
+ assert(unsigned(flip_mask(0x100000000, 64)) == 4294967296);
+ assert(unsigned(flip_mask(0x100000000000, 64)) == 17592186044416);
+ assert(unsigned(flip_mask(0x100000001, 64)) == 4294967297);
+ assert(unsigned(flip_mask(0x1000004, 64)) == 16777220);
+ assert(unsigned(flip_mask(0x1000008, 64)) == 16777224);
+ assert(unsigned(flip_mask(0x100000c, 64)) == 16777228);
+ assert(unsigned(flip_mask(0x1000010, 64)) == 16777232);
+ assert(unsigned(flip_mask(0x1000014, 64)) == 16777236);
+ assert(unsigned(flip_mask(0x1000018, 64)) == 16777240);
+ assert(unsigned(flip_mask(0x100001c, 64)) == 16777244);
+ assert(unsigned(flip_mask(0x1000020, 64)) == 16777248);
+ assert(unsigned(flip_mask(0x1000024, 64)) == 16777252);
+ assert(unsigned(flip_mask(0x1000028, 64)) == 16777256);
+ assert(unsigned(flip_mask(0x100002c, 64)) == 16777260);
+ assert(unsigned(flip_mask(0x1000030, 64)) == 16777264);
+ assert(unsigned(flip_mask(0x1000034, 64)) == 16777268);
+ assert(unsigned(flip_mask(0x1000038, 64)) == 16777272);
+ assert(unsigned(flip_mask(0x100003c, 64)) == 16777276);
+ assert(unsigned(flip_mask(0x1000040, 64)) == 16777280);
+ assert(unsigned(flip_mask(0x1000044, 64)) == 16777284);
+ assert(unsigned(flip_mask(0x1000048, 64)) == 16777288);
+ assert(unsigned(flip_mask(0x100004c, 64)) == 16777292);
+ assert(unsigned(flip_mask(0x1000050, 64)) == 16777296);
+ assert(unsigned(flip_mask(0x1000054, 64)) == 16777300);
+ assert(unsigned(flip_mask(0x1000058, 64)) == 16777304);
+ assert(unsigned(flip_mask(0x100005c, 64)) == 16777308);
+ assert(unsigned(flip_mask(0x1000060, 64)) == 16777312);
+ assert(unsigned(flip_mask(0x1000064, 64)) == 16777316);
+ assert(unsigned(flip_mask(0x1000068, 64)) == 16777320);
+ assert(unsigned(flip_mask(0x100006c, 64)) == 16777324);
+ assert(unsigned(flip_mask(0x1000070, 64)) == 16777328);
+ assert(unsigned(flip_mask(0x1000074, 64)) == 16777332);
+ assert(unsigned(flip_mask(0x1000078, 64)) == 16777336);
+ assert(unsigned(flip_mask(0x100007c, 64)) == 16777340);
+ assert(unsigned(flip_mask(0x1000080, 64)) == 16777344);
+ assert(unsigned(flip_mask(0x1000088, 64)) == 16777352);
+ assert(unsigned(flip_mask(0x1000090, 64)) == 16777360);
+ assert(unsigned(flip_mask(0x1000094, 64)) == 16777364);
+ assert(unsigned(flip_mask(0x1000098, 64)) == 16777368);
+ assert(unsigned(flip_mask(0x100009c, 64)) == 16777372);
+ assert(unsigned(flip_mask(0x10000a0, 64)) == 16777376);
+ assert(unsigned(flip_mask(0x10000a8, 64)) == 16777384);
+ assert(unsigned(flip_mask(0x10000ac, 64)) == 16777388);
+ assert(unsigned(flip_mask(0x10000b0, 64)) == 16777392);
+ assert(unsigned(flip_mask(0x10000b4, 64)) == 16777396);
+ assert(unsigned(flip_mask(0x10000b8, 64)) == 16777400);
+ assert(unsigned(flip_mask(0x10000bc, 64)) == 16777404);
+ assert(unsigned(flip_mask(0x10000c0, 64)) == 16777408);
+ assert(unsigned(flip_mask(0x10000c4, 64)) == 16777412);
+ assert(unsigned(flip_mask(0x10000c8, 64)) == 16777416);
+ assert(unsigned(flip_mask(0x10000cc, 64)) == 16777420);
+ assert(unsigned(flip_mask(0x10000d0, 64)) == 16777424);
+ assert(unsigned(flip_mask(0x10000d4, 64)) == 16777428);
+ assert(unsigned(flip_mask(0x10000d8, 64)) == 16777432);
+ assert(unsigned(flip_mask(0x10000dc, 64)) == 16777436);
+ assert(unsigned(flip_mask(0x10000e0, 64)) == 16777440);
+ assert(unsigned(flip_mask(0x10000e4, 64)) == 16777444);
+ assert(unsigned(flip_mask(0x10000e8, 64)) == 16777448);
+ assert(unsigned(flip_mask(0x10000ec, 64)) == 16777452);
+ assert(unsigned(flip_mask(0x10000f0, 64)) == 16777456);
+ assert(unsigned(flip_mask(0x10000f4, 64)) == 16777460);
+ assert(unsigned(flip_mask(0x10000f8, 64)) == 16777464);
+ assert(unsigned(flip_mask(0x10000fc, 64)) == 16777468);
+ assert(unsigned(flip_mask(0x10001, 64)) == 65537);
+ assert(unsigned(flip_mask(0x1000100, 64)) == 16777472);
+ assert(unsigned(flip_mask(0x1000100010001, 64)) == 281479271743489);
+ assert(unsigned(flip_mask(0x1000104, 64)) == 16777476);
+ assert(unsigned(flip_mask(0x1000108, 64)) == 16777480);
+ assert(unsigned(flip_mask(0x100010c, 64)) == 16777484);
+ assert(unsigned(flip_mask(0x1000110, 64)) == 16777488);
+ assert(unsigned(flip_mask(0x1000114, 64)) == 16777492);
+ assert(unsigned(flip_mask(0x1000118, 64)) == 16777496);
+ assert(unsigned(flip_mask(0x100011c, 64)) == 16777500);
+ assert(unsigned(flip_mask(0x1000120, 64)) == 16777504);
+ assert(unsigned(flip_mask(0x1000124, 64)) == 16777508);
+ assert(unsigned(flip_mask(0x1000128, 64)) == 16777512);
+ assert(unsigned(flip_mask(0x100012c, 64)) == 16777516);
+ assert(unsigned(flip_mask(0x1000130, 64)) == 16777520);
+ assert(unsigned(flip_mask(0x1000134, 64)) == 16777524);
+ assert(unsigned(flip_mask(0x1000138, 64)) == 16777528);
+ assert(unsigned(flip_mask(0x100013c, 64)) == 16777532);
+ assert(unsigned(flip_mask(0x1000140, 64)) == 16777536);
+ assert(unsigned(flip_mask(0x1000144, 64)) == 16777540);
+ assert(unsigned(flip_mask(0x1000148, 64)) == 16777544);
+ assert(unsigned(flip_mask(0x100014c, 64)) == 16777548);
+ assert(unsigned(flip_mask(0x1000150, 64)) == 16777552);
+ assert(unsigned(flip_mask(0x1000154, 64)) == 16777556);
+ assert(unsigned(flip_mask(0x1000158, 64)) == 16777560);
+ assert(unsigned(flip_mask(0x100015c, 64)) == 16777564);
+ assert(unsigned(flip_mask(0x1000160, 64)) == 16777568);
+ assert(unsigned(flip_mask(0x1000164, 64)) == 16777572);
+ assert(unsigned(flip_mask(0x1000168, 64)) == 16777576);
+ assert(unsigned(flip_mask(0x100016c, 64)) == 16777580);
+ assert(unsigned(flip_mask(0x1000170, 64)) == 16777584);
+ assert(unsigned(flip_mask(0x1000174, 64)) == 16777588);
+ assert(unsigned(flip_mask(0x1000178, 64)) == 16777592);
+ assert(unsigned(flip_mask(0x100017c, 64)) == 16777596);
+ assert(unsigned(flip_mask(0x1000180, 64)) == 16777600);
+ assert(unsigned(flip_mask(0x1000184, 64)) == 16777604);
+ assert(unsigned(flip_mask(0x1000188, 64)) == 16777608);
+ assert(unsigned(flip_mask(0x100018c, 64)) == 16777612);
+ assert(unsigned(flip_mask(0x1000190, 64)) == 16777616);
+ assert(unsigned(flip_mask(0x1000194, 64)) == 16777620);
+ assert(unsigned(flip_mask(0x1000198, 64)) == 16777624);
+ assert(unsigned(flip_mask(0x100019c, 64)) == 16777628);
+ assert(unsigned(flip_mask(0x10001a0, 64)) == 16777632);
+ assert(unsigned(flip_mask(0x10001a4, 64)) == 16777636);
+ assert(unsigned(flip_mask(0x10001a8, 64)) == 16777640);
+ assert(unsigned(flip_mask(0x10001ac, 64)) == 16777644);
+ assert(unsigned(flip_mask(0x10001b0, 64)) == 16777648);
+ assert(unsigned(flip_mask(0x10001b4, 64)) == 16777652);
+ assert(unsigned(flip_mask(0x10001b8, 64)) == 16777656);
+ assert(unsigned(flip_mask(0x10001bc, 64)) == 16777660);
+ assert(unsigned(flip_mask(0x10001c0, 64)) == 16777664);
+ assert(unsigned(flip_mask(0x10001c4, 64)) == 16777668);
+ assert(unsigned(flip_mask(0x10001c8, 64)) == 16777672);
+ assert(unsigned(flip_mask(0x10001cc, 64)) == 16777676);
+ assert(unsigned(flip_mask(0x10001d0, 64)) == 16777680);
+ assert(unsigned(flip_mask(0x10001d4, 64)) == 16777684);
+ assert(unsigned(flip_mask(0x10001d8, 64)) == 16777688);
+ assert(unsigned(flip_mask(0x10001dc, 64)) == 16777692);
+ assert(unsigned(flip_mask(0x10001e0, 64)) == 16777696);
+ assert(unsigned(flip_mask(0x10001e4, 64)) == 16777700);
+ assert(unsigned(flip_mask(0x10001e8, 64)) == 16777704);
+ assert(unsigned(flip_mask(0x10001ec, 64)) == 16777708);
+ assert(unsigned(flip_mask(0x10001f0, 64)) == 16777712);
+ assert(unsigned(flip_mask(0x10001f4, 64)) == 16777716);
+ assert(unsigned(flip_mask(0x10001f8, 64)) == 16777720);
+ assert(unsigned(flip_mask(0x10001fc, 64)) == 16777724);
+ assert(unsigned(flip_mask(0x1000200, 64)) == 16777728);
+ assert(unsigned(flip_mask(0x1000204, 64)) == 16777732);
+ assert(unsigned(flip_mask(0x1000208, 64)) == 16777736);
+ assert(unsigned(flip_mask(0x100020c, 64)) == 16777740);
+ assert(unsigned(flip_mask(0x1000210, 64)) == 16777744);
+ assert(unsigned(flip_mask(0x1000214, 64)) == 16777748);
+ assert(unsigned(flip_mask(0x1000218, 64)) == 16777752);
+ assert(unsigned(flip_mask(0x100021c, 64)) == 16777756);
+ assert(unsigned(flip_mask(0x1000220, 64)) == 16777760);
+ assert(unsigned(flip_mask(0x1000224, 64)) == 16777764);
+ assert(unsigned(flip_mask(0x1000228, 64)) == 16777768);
+ assert(unsigned(flip_mask(0x100022c, 64)) == 16777772);
+ assert(unsigned(flip_mask(0x1000230, 64)) == 16777776);
+ assert(unsigned(flip_mask(0x1000234, 64)) == 16777780);
+ assert(unsigned(flip_mask(0x1000238, 64)) == 16777784);
+ assert(unsigned(flip_mask(0x100023c, 64)) == 16777788);
+ assert(unsigned(flip_mask(0x1000240, 64)) == 16777792);
+ assert(unsigned(flip_mask(0x1000244, 64)) == 16777796);
+ assert(unsigned(flip_mask(0x1000248, 64)) == 16777800);
+ assert(unsigned(flip_mask(0x100024c, 64)) == 16777804);
+ assert(unsigned(flip_mask(0x1000250, 64)) == 16777808);
+ assert(unsigned(flip_mask(0x1000254, 64)) == 16777812);
+ assert(unsigned(flip_mask(0x1000258, 64)) == 16777816);
+ assert(unsigned(flip_mask(0x100025c, 64)) == 16777820);
+ assert(unsigned(flip_mask(0x1000454, 64)) == 16778324);
+ assert(unsigned(flip_mask(0x1000458, 64)) == 16778328);
+ assert(unsigned(flip_mask(0x100045c, 64)) == 16778332);
+ assert(unsigned(flip_mask(0x1000460, 64)) == 16778336);
+ assert(unsigned(flip_mask(0x1000464, 64)) == 16778340);
+ assert(unsigned(flip_mask(0x1000468, 64)) == 16778344);
+ assert(unsigned(flip_mask(0x100046c, 64)) == 16778348);
+ assert(unsigned(flip_mask(0x1000470, 64)) == 16778352);
+ assert(unsigned(flip_mask(0x1000474, 64)) == 16778356);
+ assert(unsigned(flip_mask(0x1000478, 64)) == 16778360);
+ assert(unsigned(flip_mask(0x100047c, 64)) == 16778364);
+ assert(unsigned(flip_mask(0x1000480, 64)) == 16778368);
+ assert(unsigned(flip_mask(0x1000484, 64)) == 16778372);
+ assert(unsigned(flip_mask(0x1000488, 64)) == 16778376);
+ assert(unsigned(flip_mask(0x100048c, 64)) == 16778380);
+ assert(unsigned(flip_mask(0x1000490, 64)) == 16778384);
+ assert(unsigned(flip_mask(0x1000494, 64)) == 16778388);
+ assert(unsigned(flip_mask(0x1000498, 64)) == 16778392);
+ assert(unsigned(flip_mask(0x100049c, 64)) == 16778396);
+ assert(unsigned(flip_mask(0x10004a0, 64)) == 16778400);
+ assert(unsigned(flip_mask(0x10004a4, 64)) == 16778404);
+ assert(unsigned(flip_mask(0x10004a8, 64)) == 16778408);
+ assert(unsigned(flip_mask(0x10004ac, 64)) == 16778412);
+ assert(unsigned(flip_mask(0x10004b0, 64)) == 16778416);
+ assert(unsigned(flip_mask(0x10004b4, 64)) == 16778420);
+ assert(unsigned(flip_mask(0x10004b8, 64)) == 16778424);
+ assert(unsigned(flip_mask(0x10004bc, 64)) == 16778428);
+ assert(unsigned(flip_mask(0x10004c0, 64)) == 16778432);
+ assert(unsigned(flip_mask(0x10004c4, 64)) == 16778436);
+ assert(unsigned(flip_mask(0x10004c8, 64)) == 16778440);
+ assert(unsigned(flip_mask(0x10004cc, 64)) == 16778444);
+ assert(unsigned(flip_mask(0x10004d0, 64)) == 16778448);
+ assert(unsigned(flip_mask(0x10004d8, 64)) == 16778456);
+ assert(unsigned(flip_mask(0x10004e0, 64)) == 16778464);
+ assert(unsigned(flip_mask(0x10004e4, 64)) == 16778468);
+ assert(unsigned(flip_mask(0x10004e8, 64)) == 16778472);
+ assert(unsigned(flip_mask(0x10004ec, 64)) == 16778476);
+ assert(unsigned(flip_mask(0x10004f0, 64)) == 16778480);
+ assert(unsigned(flip_mask(0x10004f4, 64)) == 16778484);
+ assert(unsigned(flip_mask(0x10004f8, 64)) == 16778488);
+ assert(unsigned(flip_mask(0x10004fc, 64)) == 16778492);
+ assert(unsigned(flip_mask(0x1000500, 64)) == 16778496);
+ assert(unsigned(flip_mask(0x1000504, 64)) == 16778500);
+ assert(unsigned(flip_mask(0x1000508, 64)) == 16778504);
+ assert(unsigned(flip_mask(0x100050c, 64)) == 16778508);
+ assert(unsigned(flip_mask(0x1000510, 64)) == 16778512);
+ assert(unsigned(flip_mask(0x1000514, 64)) == 16778516);
+ assert(unsigned(flip_mask(0x1000518, 64)) == 16778520);
+ assert(unsigned(flip_mask(0x100051c, 64)) == 16778524);
+ assert(unsigned(flip_mask(0x1000520, 64)) == 16778528);
+ assert(unsigned(flip_mask(0x1000524, 64)) == 16778532);
+ assert(unsigned(flip_mask(0x1000528, 64)) == 16778536);
+ assert(unsigned(flip_mask(0x100052c, 64)) == 16778540);
+ assert(unsigned(flip_mask(0x1000530, 64)) == 16778544);
+ assert(unsigned(flip_mask(0x1000534, 64)) == 16778548);
+ assert(unsigned(flip_mask(0x1000538, 64)) == 16778552);
+ assert(unsigned(flip_mask(0x100053c, 64)) == 16778556);
+ assert(unsigned(flip_mask(0x1000540, 64)) == 16778560);
+ assert(unsigned(flip_mask(0x1000544, 64)) == 16778564);
+ assert(unsigned(flip_mask(0x1000548, 64)) == 16778568);
+ assert(unsigned(flip_mask(0x1000804, 64)) == 16779268);
+ assert(unsigned(flip_mask(0x1000808, 64)) == 16779272);
+ assert(unsigned(flip_mask(0x100080c, 64)) == 16779276);
+ assert(unsigned(flip_mask(0x1000810, 64)) == 16779280);
+ assert(unsigned(flip_mask(0x1000814, 64)) == 16779284);
+ assert(unsigned(flip_mask(0x1000818, 64)) == 16779288);
+ assert(unsigned(flip_mask(0x101000, 64)) == 1052672);
+ assert(unsigned(flip_mask(0x101004, 64)) == 1052676);
+ assert(unsigned(flip_mask(0x101008, 64)) == 1052680);
+ assert(unsigned(flip_mask(0x10100c, 64)) == 1052684);
+ assert(unsigned(flip_mask(0x101010, 64)) == 1052688);
+ assert(unsigned(flip_mask(0x101014, 64)) == 1052692);
+ assert(unsigned(flip_mask(0x101018, 64)) == 1052696);
+ assert(unsigned(flip_mask(0x10101c, 64)) == 1052700);
+ assert(unsigned(flip_mask(0x101020, 64)) == 1052704);
+ assert(unsigned(flip_mask(0x101024, 64)) == 1052708);
+ assert(unsigned(flip_mask(0x101028, 64)) == 1052712);
+ assert(unsigned(flip_mask(0x10102c, 64)) == 1052716);
+ assert(unsigned(flip_mask(0x101030, 64)) == 1052720);
+ assert(unsigned(flip_mask(0x101034, 64)) == 1052724);
+ assert(unsigned(flip_mask(0x101038, 64)) == 1052728);
+ assert(unsigned(flip_mask(0x10103c, 64)) == 1052732);
+ assert(unsigned(flip_mask(0x101040, 64)) == 1052736);
+ assert(unsigned(flip_mask(0x101044, 64)) == 1052740);
+ assert(unsigned(flip_mask(0x101048, 64)) == 1052744);
+ assert(unsigned(flip_mask(0x10104c, 64)) == 1052748);
+ assert(unsigned(flip_mask(0x101050, 64)) == 1052752);
+ assert(unsigned(flip_mask(0x101054, 64)) == 1052756);
+ assert(unsigned(flip_mask(0x101058, 64)) == 1052760);
+ assert(unsigned(flip_mask(0x10105c, 64)) == 1052764);
+ assert(unsigned(flip_mask(0x101060, 64)) == 1052768);
+ assert(unsigned(flip_mask(0x101064, 64)) == 1052772);
+ assert(unsigned(flip_mask(0x101068, 64)) == 1052776);
+ assert(unsigned(flip_mask(0x10106c, 64)) == 1052780);
+ assert(unsigned(flip_mask(0x101070, 64)) == 1052784);
+ assert(unsigned(flip_mask(0x101074, 64)) == 1052788);
+ assert(unsigned(flip_mask(0x101078, 64)) == 1052792);
+ assert(unsigned(flip_mask(0x10107c, 64)) == 1052796);
+ assert(unsigned(flip_mask(0x101080, 64)) == 1052800);
+ assert(unsigned(flip_mask(0x101088, 64)) == 1052808);
+ assert(unsigned(flip_mask(0x10108c, 64)) == 1052812);
+ assert(unsigned(flip_mask(0x101090, 64)) == 1052816);
+ assert(unsigned(flip_mask(0x101094, 64)) == 1052820);
+ assert(unsigned(flip_mask(0x101098, 64)) == 1052824);
+ assert(unsigned(flip_mask(0x10109c, 64)) == 1052828);
+ assert(unsigned(flip_mask(0x1010a0, 64)) == 1052832);
+ assert(unsigned(flip_mask(0x1010ac, 64)) == 1052844);
+ assert(unsigned(flip_mask(0x1010b0, 64)) == 1052848);
+ assert(unsigned(flip_mask(0x1010b4, 64)) == 1052852);
+ assert(unsigned(flip_mask(0x1010b8, 64)) == 1052856);
+ assert(unsigned(flip_mask(0x1010c0, 64)) == 1052864);
+ assert(unsigned(flip_mask(0x1010c4, 64)) == 1052868);
+ assert(unsigned(flip_mask(0x1010c8, 64)) == 1052872);
+ assert(unsigned(flip_mask(0x1010cc, 64)) == 1052876);
+ assert(unsigned(flip_mask(0x1010d0, 64)) == 1052880);
+ assert(unsigned(flip_mask(0x1010d4, 64)) == 1052884);
+ assert(unsigned(flip_mask(0x1010d8, 64)) == 1052888);
+ assert(unsigned(flip_mask(0x1010dc, 64)) == 1052892);
+ assert(unsigned(flip_mask(0x1010e0, 64)) == 1052896);
+ assert(unsigned(flip_mask(0x1010e4, 64)) == 1052900);
+ assert(unsigned(flip_mask(0x1010e8, 64)) == 1052904);
+ assert(unsigned(flip_mask(0x1010ec, 64)) == 1052908);
+ assert(unsigned(flip_mask(0x1010f0, 64)) == 1052912);
+ assert(unsigned(flip_mask(0x1010f4, 64)) == 1052916);
+ assert(unsigned(flip_mask(0x1010f8, 64)) == 1052920);
+ assert(unsigned(flip_mask(0x1010fc, 64)) == 1052924);
+ assert(unsigned(flip_mask(0x101100, 64)) == 1052928);
+ assert(unsigned(flip_mask(0x101104, 64)) == 1052932);
+ assert(unsigned(flip_mask(0x101108, 64)) == 1052936);
+ assert(unsigned(flip_mask(0x10110c, 64)) == 1052940);
+ assert(unsigned(flip_mask(0x101110, 64)) == 1052944);
+ assert(unsigned(flip_mask(0x101114, 64)) == 1052948);
+ assert(unsigned(flip_mask(0x101118, 64)) == 1052952);
+ assert(unsigned(flip_mask(0x10111c, 64)) == 1052956);
+ assert(unsigned(flip_mask(0x101120, 64)) == 1052960);
+ assert(unsigned(flip_mask(0x101124, 64)) == 1052964);
+ assert(unsigned(flip_mask(0x101128, 64)) == 1052968);
+ assert(unsigned(flip_mask(0x10112c, 64)) == 1052972);
+ assert(unsigned(flip_mask(0x101130, 64)) == 1052976);
+ assert(unsigned(flip_mask(0x101134, 64)) == 1052980);
+ assert(unsigned(flip_mask(0x101138, 64)) == 1052984);
+ assert(unsigned(flip_mask(0x10113c, 64)) == 1052988);
+ assert(unsigned(flip_mask(0x101140, 64)) == 1052992);
+ assert(unsigned(flip_mask(0x101144, 64)) == 1052996);
+ assert(unsigned(flip_mask(0x101148, 64)) == 1053000);
+ assert(unsigned(flip_mask(0x10114c, 64)) == 1053004);
+ assert(unsigned(flip_mask(0x101150, 64)) == 1053008);
+ assert(unsigned(flip_mask(0x101154, 64)) == 1053012);
+ assert(unsigned(flip_mask(0x101158, 64)) == 1053016);
+ assert(unsigned(flip_mask(0x10115c, 64)) == 1053020);
+ assert(unsigned(flip_mask(0x101160, 64)) == 1053024);
+ assert(unsigned(flip_mask(0x101164, 64)) == 1053028);
+ assert(unsigned(flip_mask(0x101168, 64)) == 1053032);
+ assert(unsigned(flip_mask(0x10116c, 64)) == 1053036);
+ assert(unsigned(flip_mask(0x101170, 64)) == 1053040);
+ assert(unsigned(flip_mask(0x101174, 64)) == 1053044);
+ assert(unsigned(flip_mask(0x101178, 64)) == 1053048);
+ assert(unsigned(flip_mask(0x10117c, 64)) == 1053052);
+ assert(unsigned(flip_mask(0x101180, 64)) == 1053056);
+ assert(unsigned(flip_mask(0x101184, 64)) == 1053060);
+ assert(unsigned(flip_mask(0x101188, 64)) == 1053064);
+ assert(unsigned(flip_mask(0x10118c, 64)) == 1053068);
+ assert(unsigned(flip_mask(0x101190, 64)) == 1053072);
+ assert(unsigned(flip_mask(0x101194, 64)) == 1053076);
+ assert(unsigned(flip_mask(0x101198, 64)) == 1053080);
+ assert(unsigned(flip_mask(0x10119c, 64)) == 1053084);
+ assert(unsigned(flip_mask(0x1011a0, 64)) == 1053088);
+ assert(unsigned(flip_mask(0x1011a4, 64)) == 1053092);
+ assert(unsigned(flip_mask(0x1011a8, 64)) == 1053096);
+ assert(unsigned(flip_mask(0x1011ac, 64)) == 1053100);
+ assert(unsigned(flip_mask(0x1011b0, 64)) == 1053104);
+ assert(unsigned(flip_mask(0x1011b4, 64)) == 1053108);
+ assert(unsigned(flip_mask(0x1011b8, 64)) == 1053112);
+ assert(unsigned(flip_mask(0x101200, 64)) == 1053184);
+ assert(unsigned(flip_mask(0x101204, 64)) == 1053188);
+ assert(unsigned(flip_mask(0x101208, 64)) == 1053192);
+ assert(unsigned(flip_mask(0x10120c, 64)) == 1053196);
+ assert(unsigned(flip_mask(0x101210, 64)) == 1053200);
+ assert(unsigned(flip_mask(0x101214, 64)) == 1053204);
+ assert(unsigned(flip_mask(0x101218, 64)) == 1053208);
+ assert(unsigned(flip_mask(0x10121c, 64)) == 1053212);
+ assert(unsigned(flip_mask(0x101220, 64)) == 1053216);
+ assert(unsigned(flip_mask(0x101240, 64)) == 1053248);
+ assert(unsigned(flip_mask(0x101248, 64)) == 1053256);
+ assert(unsigned(flip_mask(0x101250, 64)) == 1053264);
+ assert(unsigned(flip_mask(0x101258, 64)) == 1053272);
+ assert(unsigned(flip_mask(0x101260, 64)) == 1053280);
+ assert(unsigned(flip_mask(0x101270, 64)) == 1053296);
+ assert(unsigned(flip_mask(0x101278, 64)) == 1053304);
+ assert(unsigned(flip_mask(0x101280, 64)) == 1053312);
+ assert(unsigned(flip_mask(0x102000, 64)) == 1056768);
+ assert(unsigned(flip_mask(0x102004, 64)) == 1056772);
+ assert(unsigned(flip_mask(0x102008, 64)) == 1056776);
+ assert(unsigned(flip_mask(0x10200c, 64)) == 1056780);
+ assert(unsigned(flip_mask(0x102010, 64)) == 1056784);
+ assert(unsigned(flip_mask(0x102014, 64)) == 1056788);
+ assert(unsigned(flip_mask(0x102018, 64)) == 1056792);
+ assert(unsigned(flip_mask(0x10201c, 64)) == 1056796);
+ assert(unsigned(flip_mask(0x102020, 64)) == 1056800);
+ assert(unsigned(flip_mask(0x102024, 64)) == 1056804);
+ assert(unsigned(flip_mask(0x102028, 64)) == 1056808);
+ assert(unsigned(flip_mask(0x10202c, 64)) == 1056812);
+ assert(unsigned(flip_mask(0x102030, 64)) == 1056816);
+ assert(unsigned(flip_mask(0x102034, 64)) == 1056820);
+ assert(unsigned(flip_mask(0x102038, 64)) == 1056824);
+ assert(unsigned(flip_mask(0x10203c, 64)) == 1056828);
+ assert(unsigned(flip_mask(0x102040, 64)) == 1056832);
+ assert(unsigned(flip_mask(0x102044, 64)) == 1056836);
+ assert(unsigned(flip_mask(0x102048, 64)) == 1056840);
+ assert(unsigned(flip_mask(0x10204c, 64)) == 1056844);
+ assert(unsigned(flip_mask(0x102050, 64)) == 1056848);
+ assert(unsigned(flip_mask(0x102054, 64)) == 1056852);
+ assert(unsigned(flip_mask(0x102058, 64)) == 1056856);
+ assert(unsigned(flip_mask(0x10205c, 64)) == 1056860);
+ assert(unsigned(flip_mask(0x102060, 64)) == 1056864);
+ assert(unsigned(flip_mask(0x102064, 64)) == 1056868);
+ assert(unsigned(flip_mask(0x102068, 64)) == 1056872);
+ assert(unsigned(flip_mask(0x10206c, 64)) == 1056876);
+ assert(unsigned(flip_mask(0x102070, 64)) == 1056880);
+ assert(unsigned(flip_mask(0x102074, 64)) == 1056884);
+ assert(unsigned(flip_mask(0x102078, 64)) == 1056888);
+ assert(unsigned(flip_mask(0x10207c, 64)) == 1056892);
+ assert(unsigned(flip_mask(0x102080, 64)) == 1056896);
+ assert(unsigned(flip_mask(0x102084, 64)) == 1056900);
+ assert(unsigned(flip_mask(0x102088, 64)) == 1056904);
+ assert(unsigned(flip_mask(0x10208c, 64)) == 1056908);
+ assert(unsigned(flip_mask(0x102090, 64)) == 1056912);
+ assert(unsigned(flip_mask(0x102098, 64)) == 1056920);
+ assert(unsigned(flip_mask(0x10209c, 64)) == 1056924);
+ assert(unsigned(flip_mask(0x1020a0, 64)) == 1056928);
+ assert(unsigned(flip_mask(0x1020a4, 64)) == 1056932);
+ assert(unsigned(flip_mask(0x1020a8, 64)) == 1056936);
+ assert(unsigned(flip_mask(0x1020ac, 64)) == 1056940);
+ assert(unsigned(flip_mask(0x1020b0, 64)) == 1056944);
+ assert(unsigned(flip_mask(0x1020bc, 64)) == 1056956);
+ assert(unsigned(flip_mask(0x1020c0, 64)) == 1056960);
+ assert(unsigned(flip_mask(0x1020c4, 64)) == 1056964);
+ assert(unsigned(flip_mask(0x1020c8, 64)) == 1056968);
+ assert(unsigned(flip_mask(0x1020d0, 64)) == 1056976);
+ assert(unsigned(flip_mask(0x1020d4, 64)) == 1056980);
+ assert(unsigned(flip_mask(0x1020d8, 64)) == 1056984);
+ assert(unsigned(flip_mask(0x1020dc, 64)) == 1056988);
+ assert(unsigned(flip_mask(0x1020e0, 64)) == 1056992);
+ assert(unsigned(flip_mask(0x1020e4, 64)) == 1056996);
+ assert(unsigned(flip_mask(0x1020e8, 64)) == 1057000);
+ assert(unsigned(flip_mask(0x1020ec, 64)) == 1057004);
+ assert(unsigned(flip_mask(0x1020f0, 64)) == 1057008);
+ assert(unsigned(flip_mask(0x1020f4, 64)) == 1057012);
+ assert(unsigned(flip_mask(0x1020f8, 64)) == 1057016);
+ assert(unsigned(flip_mask(0x1020fc, 64)) == 1057020);
+ assert(unsigned(flip_mask(0x102100, 64)) == 1057024);
+ assert(unsigned(flip_mask(0x102104, 64)) == 1057028);
+ assert(unsigned(flip_mask(0x102108, 64)) == 1057032);
+ assert(unsigned(flip_mask(0x10210c, 64)) == 1057036);
+ assert(unsigned(flip_mask(0x102110, 64)) == 1057040);
+ assert(unsigned(flip_mask(0x102114, 64)) == 1057044);
+ assert(unsigned(flip_mask(0x102118, 64)) == 1057048);
+ assert(unsigned(flip_mask(0x10211c, 64)) == 1057052);
+ assert(unsigned(flip_mask(0x102120, 64)) == 1057056);
+ assert(unsigned(flip_mask(0x102124, 64)) == 1057060);
+ assert(unsigned(flip_mask(0x102128, 64)) == 1057064);
+ assert(unsigned(flip_mask(0x10212c, 64)) == 1057068);
+ assert(unsigned(flip_mask(0x102130, 64)) == 1057072);
+ assert(unsigned(flip_mask(0x102134, 64)) == 1057076);
+ assert(unsigned(flip_mask(0x102138, 64)) == 1057080);
+ assert(unsigned(flip_mask(0x10213c, 64)) == 1057084);
+ assert(unsigned(flip_mask(0x102140, 64)) == 1057088);
+ assert(unsigned(flip_mask(0x102144, 64)) == 1057092);
+ assert(unsigned(flip_mask(0x102148, 64)) == 1057096);
+ assert(unsigned(flip_mask(0x10214c, 64)) == 1057100);
+ assert(unsigned(flip_mask(0x102150, 64)) == 1057104);
+ assert(unsigned(flip_mask(0x102154, 64)) == 1057108);
+ assert(unsigned(flip_mask(0x102158, 64)) == 1057112);
+ assert(unsigned(flip_mask(0x10215c, 64)) == 1057116);
+ assert(unsigned(flip_mask(0x102160, 64)) == 1057120);
+ assert(unsigned(flip_mask(0x102164, 64)) == 1057124);
+ assert(unsigned(flip_mask(0x102168, 64)) == 1057128);
+ assert(unsigned(flip_mask(0x10216c, 64)) == 1057132);
+ assert(unsigned(flip_mask(0x102170, 64)) == 1057136);
+ assert(unsigned(flip_mask(0x102174, 64)) == 1057140);
+ assert(unsigned(flip_mask(0x102178, 64)) == 1057144);
+ assert(unsigned(flip_mask(0x10217c, 64)) == 1057148);
+ assert(unsigned(flip_mask(0x102180, 64)) == 1057152);
+ assert(unsigned(flip_mask(0x102184, 64)) == 1057156);
+ assert(unsigned(flip_mask(0x102188, 64)) == 1057160);
+ assert(unsigned(flip_mask(0x10218c, 64)) == 1057164);
+ assert(unsigned(flip_mask(0x102190, 64)) == 1057168);
+ assert(unsigned(flip_mask(0x102194, 64)) == 1057172);
+ assert(unsigned(flip_mask(0x102198, 64)) == 1057176);
+ assert(unsigned(flip_mask(0x10219c, 64)) == 1057180);
+ assert(unsigned(flip_mask(0x1021a0, 64)) == 1057184);
+ assert(unsigned(flip_mask(0x1021a4, 64)) == 1057188);
+ assert(unsigned(flip_mask(0x1021a8, 64)) == 1057192);
+ assert(unsigned(flip_mask(0x1021ac, 64)) == 1057196);
+ assert(unsigned(flip_mask(0x1021b0, 64)) == 1057200);
+ assert(unsigned(flip_mask(0x1021b4, 64)) == 1057204);
+ assert(unsigned(flip_mask(0x1021b8, 64)) == 1057208);
+ assert(unsigned(flip_mask(0x102200, 64)) == 1057280);
+ assert(unsigned(flip_mask(0x102204, 64)) == 1057284);
+ assert(unsigned(flip_mask(0x102208, 64)) == 1057288);
+ assert(unsigned(flip_mask(0x10220c, 64)) == 1057292);
+ assert(unsigned(flip_mask(0x102210, 64)) == 1057296);
+ assert(unsigned(flip_mask(0x102214, 64)) == 1057300);
+ assert(unsigned(flip_mask(0x102218, 64)) == 1057304);
+ assert(unsigned(flip_mask(0x10221c, 64)) == 1057308);
+ assert(unsigned(flip_mask(0x102220, 64)) == 1057312);
+ assert(unsigned(flip_mask(0x102240, 64)) == 1057344);
+ assert(unsigned(flip_mask(0x102248, 64)) == 1057352);
+ assert(unsigned(flip_mask(0x102250, 64)) == 1057360);
+ assert(unsigned(flip_mask(0x102258, 64)) == 1057368);
+ assert(unsigned(flip_mask(0x102260, 64)) == 1057376);
+ assert(unsigned(flip_mask(0x102270, 64)) == 1057392);
+ assert(unsigned(flip_mask(0x102278, 64)) == 1057400);
+ assert(unsigned(flip_mask(0x102280, 64)) == 1057408);
+ assert(unsigned(flip_mask(0x10300000, 64)) == 271581184);
+ assert(unsigned(flip_mask(0x10300004, 64)) == 271581188);
+ assert(unsigned(flip_mask(0x10300008, 64)) == 271581192);
+ assert(unsigned(flip_mask(0x10300010, 64)) == 271581200);
+ assert(unsigned(flip_mask(0x104000, 64)) == 1064960);
+ assert(unsigned(flip_mask(0x10400000, 64)) == 272629760);
+ assert(unsigned(flip_mask(0x1040022c, 64)) == 272630316);
+ assert(unsigned(flip_mask(0x10400230, 64)) == 272630320);
+ assert(unsigned(flip_mask(0x10400234, 64)) == 272630324);
+ assert(unsigned(flip_mask(0x10400238, 64)) == 272630328);
+ assert(unsigned(flip_mask(0x1040023c, 64)) == 272630332);
+ assert(unsigned(flip_mask(0x10400240, 64)) == 272630336);
+ assert(unsigned(flip_mask(0x10400244, 64)) == 272630340);
+ assert(unsigned(flip_mask(0x10400248, 64)) == 272630344);
+ assert(unsigned(flip_mask(0x104004, 64)) == 1064964);
+ assert(unsigned(flip_mask(0x104008, 64)) == 1064968);
+ assert(unsigned(flip_mask(0x10400c, 64)) == 1064972);
+ assert(unsigned(flip_mask(0x104010, 64)) == 1064976);
+ assert(unsigned(flip_mask(0x10401220, 64)) == 272634400);
+ assert(unsigned(flip_mask(0x10401224, 64)) == 272634404);
+ assert(unsigned(flip_mask(0x10401228, 64)) == 272634408);
+ assert(unsigned(flip_mask(0x1040122c, 64)) == 272634412);
+ assert(unsigned(flip_mask(0x10401230, 64)) == 272634416);
+ assert(unsigned(flip_mask(0x10401234, 64)) == 272634420);
+ assert(unsigned(flip_mask(0x10401238, 64)) == 272634424);
+ assert(unsigned(flip_mask(0x104014, 64)) == 1064980);
+ assert(unsigned(flip_mask(0x104018, 64)) == 1064984);
+ assert(unsigned(flip_mask(0x10401c, 64)) == 1064988);
+ assert(unsigned(flip_mask(0x104020, 64)) == 1064992);
+ assert(unsigned(flip_mask(0x10402220, 64)) == 272638496);
+ assert(unsigned(flip_mask(0x10402224, 64)) == 272638500);
+ assert(unsigned(flip_mask(0x10402228, 64)) == 272638504);
+ assert(unsigned(flip_mask(0x1040222c, 64)) == 272638508);
+ assert(unsigned(flip_mask(0x10402230, 64)) == 272638512);
+ assert(unsigned(flip_mask(0x10402234, 64)) == 272638516);
+ assert(unsigned(flip_mask(0x10402238, 64)) == 272638520);
+ assert(unsigned(flip_mask(0x104024, 64)) == 1064996);
+ assert(unsigned(flip_mask(0x104028, 64)) == 1065000);
+ assert(unsigned(flip_mask(0x10402c, 64)) == 1065004);
+ assert(unsigned(flip_mask(0x104030, 64)) == 1065008);
+ assert(unsigned(flip_mask(0x104034, 64)) == 1065012);
+ assert(unsigned(flip_mask(0x104038, 64)) == 1065016);
+ assert(unsigned(flip_mask(0x10403c, 64)) == 1065020);
+ assert(unsigned(flip_mask(0x104040, 64)) == 1065024);
+ assert(unsigned(flip_mask(0x104044, 64)) == 1065028);
+ assert(unsigned(flip_mask(0x104048, 64)) == 1065032);
+ assert(unsigned(flip_mask(0x10404c, 64)) == 1065036);
+ assert(unsigned(flip_mask(0x104050, 64)) == 1065040);
+ assert(unsigned(flip_mask(0x104054, 64)) == 1065044);
+ assert(unsigned(flip_mask(0x104058, 64)) == 1065048);
+ assert(unsigned(flip_mask(0x10405c, 64)) == 1065052);
+ assert(unsigned(flip_mask(0x104060, 64)) == 1065056);
+ assert(unsigned(flip_mask(0x104064, 64)) == 1065060);
+ assert(unsigned(flip_mask(0x104068, 64)) == 1065064);
+ assert(unsigned(flip_mask(0x10406c, 64)) == 1065068);
+ assert(unsigned(flip_mask(0x104070, 64)) == 1065072);
+ assert(unsigned(flip_mask(0x104074, 64)) == 1065076);
+ assert(unsigned(flip_mask(0x104078, 64)) == 1065080);
+ assert(unsigned(flip_mask(0x10407c, 64)) == 1065084);
+ assert(unsigned(flip_mask(0x104080, 64)) == 1065088);
+ assert(unsigned(flip_mask(0x104088, 64)) == 1065096);
+ assert(unsigned(flip_mask(0x10408c, 64)) == 1065100);
+ assert(unsigned(flip_mask(0x104090, 64)) == 1065104);
+ assert(unsigned(flip_mask(0x104094, 64)) == 1065108);
+ assert(unsigned(flip_mask(0x104098, 64)) == 1065112);
+ assert(unsigned(flip_mask(0x10409c, 64)) == 1065116);
+ assert(unsigned(flip_mask(0x1040a0, 64)) == 1065120);
+ assert(unsigned(flip_mask(0x1040ac, 64)) == 1065132);
+ assert(unsigned(flip_mask(0x1040b0, 64)) == 1065136);
+ assert(unsigned(flip_mask(0x1040b4, 64)) == 1065140);
+ assert(unsigned(flip_mask(0x1040b8, 64)) == 1065144);
+ assert(unsigned(flip_mask(0x1040c0, 64)) == 1065152);
+ assert(unsigned(flip_mask(0x1040c4, 64)) == 1065156);
+ assert(unsigned(flip_mask(0x1040c8, 64)) == 1065160);
+ assert(unsigned(flip_mask(0x1040cc, 64)) == 1065164);
+ assert(unsigned(flip_mask(0x1040d0, 64)) == 1065168);
+ assert(unsigned(flip_mask(0x1040d4, 64)) == 1065172);
+ assert(unsigned(flip_mask(0x1040d8, 64)) == 1065176);
+ assert(unsigned(flip_mask(0x1040dc, 64)) == 1065180);
+ assert(unsigned(flip_mask(0x1040e0, 64)) == 1065184);
+ assert(unsigned(flip_mask(0x1040e4, 64)) == 1065188);
+ assert(unsigned(flip_mask(0x1040e8, 64)) == 1065192);
+ assert(unsigned(flip_mask(0x1040ec, 64)) == 1065196);
+ assert(unsigned(flip_mask(0x1040f0, 64)) == 1065200);
+ assert(unsigned(flip_mask(0x1040f4, 64)) == 1065204);
+ assert(unsigned(flip_mask(0x1040f8, 64)) == 1065208);
+ assert(unsigned(flip_mask(0x1040fc, 64)) == 1065212);
+ assert(unsigned(flip_mask(0x104100, 64)) == 1065216);
+ assert(unsigned(flip_mask(0x104104, 64)) == 1065220);
+ assert(unsigned(flip_mask(0x104108, 64)) == 1065224);
+ assert(unsigned(flip_mask(0x10410c, 64)) == 1065228);
+ assert(unsigned(flip_mask(0x104110, 64)) == 1065232);
+ assert(unsigned(flip_mask(0x104114, 64)) == 1065236);
+ assert(unsigned(flip_mask(0x104118, 64)) == 1065240);
+ assert(unsigned(flip_mask(0x10411c, 64)) == 1065244);
+ assert(unsigned(flip_mask(0x104120, 64)) == 1065248);
+ assert(unsigned(flip_mask(0x104124, 64)) == 1065252);
+ assert(unsigned(flip_mask(0x104128, 64)) == 1065256);
+ assert(unsigned(flip_mask(0x10412c, 64)) == 1065260);
+ assert(unsigned(flip_mask(0x104130, 64)) == 1065264);
+ assert(unsigned(flip_mask(0x104134, 64)) == 1065268);
+ assert(unsigned(flip_mask(0x104138, 64)) == 1065272);
+ assert(unsigned(flip_mask(0x10413c, 64)) == 1065276);
+ assert(unsigned(flip_mask(0x104140, 64)) == 1065280);
+ assert(unsigned(flip_mask(0x104144, 64)) == 1065284);
+ assert(unsigned(flip_mask(0x104148, 64)) == 1065288);
+ assert(unsigned(flip_mask(0x10414c, 64)) == 1065292);
+ assert(unsigned(flip_mask(0x104150, 64)) == 1065296);
+ assert(unsigned(flip_mask(0x104154, 64)) == 1065300);
+ assert(unsigned(flip_mask(0x104158, 64)) == 1065304);
+ assert(unsigned(flip_mask(0x10415c, 64)) == 1065308);
+ assert(unsigned(flip_mask(0x104160, 64)) == 1065312);
+ assert(unsigned(flip_mask(0x104164, 64)) == 1065316);
+ assert(unsigned(flip_mask(0x104168, 64)) == 1065320);
+ assert(unsigned(flip_mask(0x10416c, 64)) == 1065324);
+ assert(unsigned(flip_mask(0x104170, 64)) == 1065328);
+ assert(unsigned(flip_mask(0x104174, 64)) == 1065332);
+ assert(unsigned(flip_mask(0x104178, 64)) == 1065336);
+ assert(unsigned(flip_mask(0x10417c, 64)) == 1065340);
+ assert(unsigned(flip_mask(0x104180, 64)) == 1065344);
+ assert(unsigned(flip_mask(0x104184, 64)) == 1065348);
+ assert(unsigned(flip_mask(0x104188, 64)) == 1065352);
+ assert(unsigned(flip_mask(0x10418c, 64)) == 1065356);
+ assert(unsigned(flip_mask(0x104190, 64)) == 1065360);
+ assert(unsigned(flip_mask(0x104194, 64)) == 1065364);
+ assert(unsigned(flip_mask(0x104198, 64)) == 1065368);
+ assert(unsigned(flip_mask(0x10419c, 64)) == 1065372);
+ assert(unsigned(flip_mask(0x1041a0, 64)) == 1065376);
+ assert(unsigned(flip_mask(0x1041a4, 64)) == 1065380);
+ assert(unsigned(flip_mask(0x1041a8, 64)) == 1065384);
+ assert(unsigned(flip_mask(0x1041ac, 64)) == 1065388);
+ assert(unsigned(flip_mask(0x1041b0, 64)) == 1065392);
+ assert(unsigned(flip_mask(0x1041b4, 64)) == 1065396);
+ assert(unsigned(flip_mask(0x1041b8, 64)) == 1065400);
+ assert(unsigned(flip_mask(0x1041bc, 64)) == 1065404);
+ assert(unsigned(flip_mask(0x1041c0, 64)) == 1065408);
+ assert(unsigned(flip_mask(0x104200, 64)) == 1065472);
+ assert(unsigned(flip_mask(0x104204, 64)) == 1065476);
+ assert(unsigned(flip_mask(0x104208, 64)) == 1065480);
+ assert(unsigned(flip_mask(0x10420c, 64)) == 1065484);
+ assert(unsigned(flip_mask(0x104210, 64)) == 1065488);
+ assert(unsigned(flip_mask(0x104214, 64)) == 1065492);
+ assert(unsigned(flip_mask(0x104218, 64)) == 1065496);
+ assert(unsigned(flip_mask(0x10421c, 64)) == 1065500);
+ assert(unsigned(flip_mask(0x104220, 64)) == 1065504);
+ assert(unsigned(flip_mask(0x104224, 64)) == 1065508);
+ assert(unsigned(flip_mask(0x104228, 64)) == 1065512);
+ assert(unsigned(flip_mask(0x10422c, 64)) == 1065516);
+ assert(unsigned(flip_mask(0x104250, 64)) == 1065552);
+ assert(unsigned(flip_mask(0x104258, 64)) == 1065560);
+ assert(unsigned(flip_mask(0x104260, 64)) == 1065568);
+ assert(unsigned(flip_mask(0x104268, 64)) == 1065576);
+ assert(unsigned(flip_mask(0x104270, 64)) == 1065584);
+ assert(unsigned(flip_mask(0x104278, 64)) == 1065592);
+ assert(unsigned(flip_mask(0x10427c, 64)) == 1065596);
+ assert(unsigned(flip_mask(0x104280, 64)) == 1065600);
+ assert(unsigned(flip_mask(0x104284, 64)) == 1065604);
+ assert(unsigned(flip_mask(0x1042b8, 64)) == 1065656);
+ assert(unsigned(flip_mask(0x1042bc, 64)) == 1065660);
+ assert(unsigned(flip_mask(0x1042d4, 64)) == 1065684);
+ assert(unsigned(flip_mask(0x1042e0, 64)) == 1065696);
+ assert(unsigned(flip_mask(0x104300, 64)) == 1065728);
+ assert(unsigned(flip_mask(0x104308, 64)) == 1065736);
+ assert(unsigned(flip_mask(0x104310, 64)) == 1065744);
+ assert(unsigned(flip_mask(0x104320, 64)) == 1065760);
+ assert(unsigned(flip_mask(0x104328, 64)) == 1065768);
+ assert(unsigned(flip_mask(0x104330, 64)) == 1065776);
+ assert(unsigned(flip_mask(0x104338, 64)) == 1065784);
+ assert(unsigned(flip_mask(0x104340, 64)) == 1065792);
+ assert(unsigned(flip_mask(0x104360, 64)) == 1065824);
+ assert(unsigned(flip_mask(0x104368, 64)) == 1065832);
+ assert(unsigned(flip_mask(0x104410, 64)) == 1066000);
+ assert(unsigned(flip_mask(0x104418, 64)) == 1066008);
+ assert(unsigned(flip_mask(0x104420, 64)) == 1066016);
+ assert(unsigned(flip_mask(0x104428, 64)) == 1066024);
+ assert(unsigned(flip_mask(0x104550, 64)) == 1066320);
+ assert(unsigned(flip_mask(0x1045a0, 64)) == 1066400);
+ assert(unsigned(flip_mask(0x1045a4, 64)) == 1066404);
+ assert(unsigned(flip_mask(0x1045b0, 64)) == 1066416);
+ assert(unsigned(flip_mask(0x1045b8, 64)) == 1066424);
+ assert(unsigned(flip_mask(0x1045c0, 64)) == 1066432);
+ assert(unsigned(flip_mask(0x1045c4, 64)) == 1066436);
+ assert(unsigned(flip_mask(0x1045c8, 64)) == 1066440);
+ assert(unsigned(flip_mask(0x1045d0, 64)) == 1066448);
+ assert(unsigned(flip_mask(0x1045d8, 64)) == 1066456);
+ assert(unsigned(flip_mask(0x1045e0, 64)) == 1066464);
+ assert(unsigned(flip_mask(0x1045e8, 64)) == 1066472);
+ assert(unsigned(flip_mask(0x1045f0, 64)) == 1066480);
+ assert(unsigned(flip_mask(0x1045f8, 64)) == 1066488);
+ assert(unsigned(flip_mask(0x104600, 64)) == 1066496);
+ assert(unsigned(flip_mask(0x104608, 64)) == 1066504);
+ assert(unsigned(flip_mask(0x104610, 64)) == 1066512);
+ assert(unsigned(flip_mask(0x104618, 64)) == 1066520);
+ assert(unsigned(flip_mask(0x104620, 64)) == 1066528);
+ assert(unsigned(flip_mask(0x104628, 64)) == 1066536);
+ assert(unsigned(flip_mask(0x104630, 64)) == 1066544);
+ assert(unsigned(flip_mask(0x104638, 64)) == 1066552);
+ assert(unsigned(flip_mask(0x104640, 64)) == 1066560);
+ assert(unsigned(flip_mask(0x104648, 64)) == 1066568);
+ assert(unsigned(flip_mask(0x104650, 64)) == 1066576);
+ assert(unsigned(flip_mask(0x104658, 64)) == 1066584);
+ assert(unsigned(flip_mask(0x104660, 64)) == 1066592);
+ assert(unsigned(flip_mask(0x104668, 64)) == 1066600);
+ assert(unsigned(flip_mask(0x104670, 64)) == 1066608);
+ assert(unsigned(flip_mask(0x104678, 64)) == 1066616);
+ assert(unsigned(flip_mask(0x104680, 64)) == 1066624);
+ assert(unsigned(flip_mask(0x104688, 64)) == 1066632);
+ assert(unsigned(flip_mask(0x104690, 64)) == 1066640);
+ assert(unsigned(flip_mask(0x1046a0, 64)) == 1066656);
+ assert(unsigned(flip_mask(0x1046a8, 64)) == 1066664);
+ assert(unsigned(flip_mask(0x1046b0, 64)) == 1066672);
+ assert(unsigned(flip_mask(0x1046b8, 64)) == 1066680);
+ assert(unsigned(flip_mask(0x1046c0, 64)) == 1066688);
+ assert(unsigned(flip_mask(0x1046c8, 64)) == 1066696);
+ assert(unsigned(flip_mask(0x1046d0, 64)) == 1066704);
+ assert(unsigned(flip_mask(0x1046d8, 64)) == 1066712);
+ assert(unsigned(flip_mask(0x1046e0, 64)) == 1066720);
+ assert(unsigned(flip_mask(0x1046e8, 64)) == 1066728);
+ assert(unsigned(flip_mask(0x1046f0, 64)) == 1066736);
+ assert(unsigned(flip_mask(0x1046f8, 64)) == 1066744);
+ assert(unsigned(flip_mask(0x104700, 64)) == 1066752);
+ assert(unsigned(flip_mask(0x104708, 64)) == 1066760);
+ assert(unsigned(flip_mask(0x104710, 64)) == 1066768);
+ assert(unsigned(flip_mask(0x104718, 64)) == 1066776);
+ assert(unsigned(flip_mask(0x104720, 64)) == 1066784);
+ assert(unsigned(flip_mask(0x104728, 64)) == 1066792);
+ assert(unsigned(flip_mask(0x104730, 64)) == 1066800);
+ assert(unsigned(flip_mask(0x104738, 64)) == 1066808);
+ assert(unsigned(flip_mask(0x104740, 64)) == 1066816);
+ assert(unsigned(flip_mask(0x104750, 64)) == 1066832);
+ assert(unsigned(flip_mask(0x104d50, 64)) == 1068368);
+ assert(unsigned(flip_mask(0x104d54, 64)) == 1068372);
+ assert(unsigned(flip_mask(0x104d58, 64)) == 1068376);
+ assert(unsigned(flip_mask(0x104d5c, 64)) == 1068380);
+ assert(unsigned(flip_mask(0x104d60, 64)) == 1068384);
+ assert(unsigned(flip_mask(0x104d64, 64)) == 1068388);
+ assert(unsigned(flip_mask(0x104d68, 64)) == 1068392);
+ assert(unsigned(flip_mask(0x104d6c, 64)) == 1068396);
+ assert(unsigned(flip_mask(0x104d70, 64)) == 1068400);
+ assert(unsigned(flip_mask(0x104d74, 64)) == 1068404);
+ assert(unsigned(flip_mask(0x104d78, 64)) == 1068408);
+ assert(unsigned(flip_mask(0x104d7c, 64)) == 1068412);
+ assert(unsigned(flip_mask(0x104d80, 64)) == 1068416);
+ assert(unsigned(flip_mask(0x104d84, 64)) == 1068420);
+ assert(unsigned(flip_mask(0x104d88, 64)) == 1068424);
+ assert(unsigned(flip_mask(0x104d8c, 64)) == 1068428);
+ assert(unsigned(flip_mask(0x104d90, 64)) == 1068432);
+ assert(unsigned(flip_mask(0x104d94, 64)) == 1068436);
+ assert(unsigned(flip_mask(0x104d98, 64)) == 1068440);
+ assert(unsigned(flip_mask(0x104d9c, 64)) == 1068444);
+ assert(unsigned(flip_mask(0x104da0, 64)) == 1068448);
+ assert(unsigned(flip_mask(0x104da4, 64)) == 1068452);
+ assert(unsigned(flip_mask(0x104da8, 64)) == 1068456);
+ assert(unsigned(flip_mask(0x104dac, 64)) == 1068460);
+ assert(unsigned(flip_mask(0x104db0, 64)) == 1068464);
+ assert(unsigned(flip_mask(0x104db4, 64)) == 1068468);
+ assert(unsigned(flip_mask(0x104db8, 64)) == 1068472);
+ assert(unsigned(flip_mask(0x104dbc, 64)) == 1068476);
+ assert(unsigned(flip_mask(0x104dc0, 64)) == 1068480);
+ assert(unsigned(flip_mask(0x104dc8, 64)) == 1068488);
+ assert(unsigned(flip_mask(0x104dcc, 64)) == 1068492);
+ assert(unsigned(flip_mask(0x104dd0, 64)) == 1068496);
+ assert(unsigned(flip_mask(0x104dd4, 64)) == 1068500);
+ assert(unsigned(flip_mask(0x104dd8, 64)) == 1068504);
+ assert(unsigned(flip_mask(0x104ddc, 64)) == 1068508);
+ assert(unsigned(flip_mask(0x104de0, 64)) == 1068512);
+ assert(unsigned(flip_mask(0x104de4, 64)) == 1068516);
+ assert(unsigned(flip_mask(0x104de8, 64)) == 1068520);
+ assert(unsigned(flip_mask(0x104df4, 64)) == 1068532);
+ assert(unsigned(flip_mask(0x104df8, 64)) == 1068536);
+ assert(unsigned(flip_mask(0x104dfc, 64)) == 1068540);
+ assert(unsigned(flip_mask(0x104e00, 64)) == 1068544);
+ assert(unsigned(flip_mask(0x104e04, 64)) == 1068548);
+ assert(unsigned(flip_mask(0x104e08, 64)) == 1068552);
+ assert(unsigned(flip_mask(0x104e0c, 64)) == 1068556);
+ assert(unsigned(flip_mask(0x104e10, 64)) == 1068560);
+ assert(unsigned(flip_mask(0x104e14, 64)) == 1068564);
+ assert(unsigned(flip_mask(0x104e18, 64)) == 1068568);
+ assert(unsigned(flip_mask(0x104e1c, 64)) == 1068572);
+ assert(unsigned(flip_mask(0x104e20, 64)) == 1068576);
+ assert(unsigned(flip_mask(0x104e24, 64)) == 1068580);
+ assert(unsigned(flip_mask(0x104e28, 64)) == 1068584);
+ assert(unsigned(flip_mask(0x104e2c, 64)) == 1068588);
+ assert(unsigned(flip_mask(0x104e30, 64)) == 1068592);
+ assert(unsigned(flip_mask(0x104e34, 64)) == 1068596);
+ assert(unsigned(flip_mask(0x104e38, 64)) == 1068600);
+ assert(unsigned(flip_mask(0x104e3c, 64)) == 1068604);
+ assert(unsigned(flip_mask(0x104e40, 64)) == 1068608);
+ assert(unsigned(flip_mask(0x104e44, 64)) == 1068612);
+ assert(unsigned(flip_mask(0x104e48, 64)) == 1068616);
+ assert(unsigned(flip_mask(0x104e4c, 64)) == 1068620);
+ assert(unsigned(flip_mask(0x104e50, 64)) == 1068624);
+ assert(unsigned(flip_mask(0x104e54, 64)) == 1068628);
+ assert(unsigned(flip_mask(0x104e58, 64)) == 1068632);
+ assert(unsigned(flip_mask(0x104e5c, 64)) == 1068636);
+ assert(unsigned(flip_mask(0x104e60, 64)) == 1068640);
+ assert(unsigned(flip_mask(0x104e64, 64)) == 1068644);
+ assert(unsigned(flip_mask(0x104e68, 64)) == 1068648);
+ assert(unsigned(flip_mask(0x104e6c, 64)) == 1068652);
+ assert(unsigned(flip_mask(0x104e70, 64)) == 1068656);
+ assert(unsigned(flip_mask(0x104e74, 64)) == 1068660);
+ assert(unsigned(flip_mask(0x104e78, 64)) == 1068664);
+ assert(unsigned(flip_mask(0x104e7c, 64)) == 1068668);
+ assert(unsigned(flip_mask(0x104e80, 64)) == 1068672);
+ assert(unsigned(flip_mask(0x104e84, 64)) == 1068676);
+ assert(unsigned(flip_mask(0x104e88, 64)) == 1068680);
+ assert(unsigned(flip_mask(0x104e8c, 64)) == 1068684);
+ assert(unsigned(flip_mask(0x104e90, 64)) == 1068688);
+ assert(unsigned(flip_mask(0x104e94, 64)) == 1068692);
+ assert(unsigned(flip_mask(0x104e98, 64)) == 1068696);
+ assert(unsigned(flip_mask(0x104e9c, 64)) == 1068700);
+ assert(unsigned(flip_mask(0x104ea0, 64)) == 1068704);
+ assert(unsigned(flip_mask(0x104ea4, 64)) == 1068708);
+ assert(unsigned(flip_mask(0x104ea8, 64)) == 1068712);
+ assert(unsigned(flip_mask(0x104eac, 64)) == 1068716);
+ assert(unsigned(flip_mask(0x104eb0, 64)) == 1068720);
+ assert(unsigned(flip_mask(0x104eb4, 64)) == 1068724);
+ assert(unsigned(flip_mask(0x104eb8, 64)) == 1068728);
+ assert(unsigned(flip_mask(0x104ebc, 64)) == 1068732);
+ assert(unsigned(flip_mask(0x104ec0, 64)) == 1068736);
+ assert(unsigned(flip_mask(0x104ec4, 64)) == 1068740);
+ assert(unsigned(flip_mask(0x104ec8, 64)) == 1068744);
+ assert(unsigned(flip_mask(0x104ecc, 64)) == 1068748);
+}
diff --git a/test/builtins/unsigned4.sail b/test/builtins/unsigned4.sail
new file mode 100644
index 00000000..c92e568f
--- /dev/null
+++ b/test/builtins/unsigned4.sail
@@ -0,0 +1,3001 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(unsigned(zero_extend(0x104ef4, 64)) == 1068788);
+ assert(unsigned(zero_extend(0x104ef8, 64)) == 1068792);
+ assert(unsigned(zero_extend(0x104efc, 64)) == 1068796);
+ assert(unsigned(zero_extend(0x104f00, 64)) == 1068800);
+ assert(unsigned(zero_extend(0x104f04, 64)) == 1068804);
+ assert(unsigned(zero_extend(0x104f08, 64)) == 1068808);
+ assert(unsigned(zero_extend(0x104f0c, 64)) == 1068812);
+ assert(unsigned(zero_extend(0x104f10, 64)) == 1068816);
+ assert(unsigned(zero_extend(0x104f14, 64)) == 1068820);
+ assert(unsigned(zero_extend(0x104f20, 64)) == 1068832);
+ assert(unsigned(zero_extend(0x104f24, 64)) == 1068836);
+ assert(unsigned(zero_extend(0x104f28, 64)) == 1068840);
+ assert(unsigned(zero_extend(0x104f2c, 64)) == 1068844);
+ assert(unsigned(zero_extend(0x104f3c, 64)) == 1068860);
+ assert(unsigned(zero_extend(0x104f40, 64)) == 1068864);
+ assert(unsigned(zero_extend(0x104f44, 64)) == 1068868);
+ assert(unsigned(zero_extend(0x104f48, 64)) == 1068872);
+ assert(unsigned(zero_extend(0x104f4c, 64)) == 1068876);
+ assert(unsigned(zero_extend(0x104f50, 64)) == 1068880);
+ assert(unsigned(zero_extend(0x104f54, 64)) == 1068884);
+ assert(unsigned(zero_extend(0x104f58, 64)) == 1068888);
+ assert(unsigned(zero_extend(0x104f5c, 64)) == 1068892);
+ assert(unsigned(zero_extend(0x104f60, 64)) == 1068896);
+ assert(unsigned(zero_extend(0x104f64, 64)) == 1068900);
+ assert(unsigned(zero_extend(0x104f68, 64)) == 1068904);
+ assert(unsigned(zero_extend(0x104f6c, 64)) == 1068908);
+ assert(unsigned(zero_extend(0x104f70, 64)) == 1068912);
+ assert(unsigned(zero_extend(0x104f74, 64)) == 1068916);
+ assert(unsigned(zero_extend(0x104f78, 64)) == 1068920);
+ assert(unsigned(zero_extend(0x104f7c, 64)) == 1068924);
+ assert(unsigned(zero_extend(0x104f80, 64)) == 1068928);
+ assert(unsigned(zero_extend(0x104f84, 64)) == 1068932);
+ assert(unsigned(zero_extend(0x104f88, 64)) == 1068936);
+ assert(unsigned(zero_extend(0x104f8c, 64)) == 1068940);
+ assert(unsigned(zero_extend(0x104f90, 64)) == 1068944);
+ assert(unsigned(zero_extend(0x104f94, 64)) == 1068948);
+ assert(unsigned(zero_extend(0x104f98, 64)) == 1068952);
+ assert(unsigned(zero_extend(0x104f9c, 64)) == 1068956);
+ assert(unsigned(zero_extend(0x104fa0, 64)) == 1068960);
+ assert(unsigned(zero_extend(0x104fa4, 64)) == 1068964);
+ assert(unsigned(zero_extend(0x104fa8, 64)) == 1068968);
+ assert(unsigned(zero_extend(0x104fac, 64)) == 1068972);
+ assert(unsigned(zero_extend(0x104fb0, 64)) == 1068976);
+ assert(unsigned(zero_extend(0x104fb4, 64)) == 1068980);
+ assert(unsigned(zero_extend(0x104fb8, 64)) == 1068984);
+ assert(unsigned(zero_extend(0x104fbc, 64)) == 1068988);
+ assert(unsigned(zero_extend(0x104fc0, 64)) == 1068992);
+ assert(unsigned(zero_extend(0x104fc4, 64)) == 1068996);
+ assert(unsigned(zero_extend(0x104fc8, 64)) == 1069000);
+ assert(unsigned(zero_extend(0x104fcc, 64)) == 1069004);
+ assert(unsigned(zero_extend(0x104fd0, 64)) == 1069008);
+ assert(unsigned(zero_extend(0x104fd4, 64)) == 1069012);
+ assert(unsigned(zero_extend(0x104fd8, 64)) == 1069016);
+ assert(unsigned(zero_extend(0x104fdc, 64)) == 1069020);
+ assert(unsigned(zero_extend(0x104fe0, 64)) == 1069024);
+ assert(unsigned(zero_extend(0x104fe4, 64)) == 1069028);
+ assert(unsigned(zero_extend(0x104fe8, 64)) == 1069032);
+ assert(unsigned(zero_extend(0x104fec, 64)) == 1069036);
+ assert(unsigned(zero_extend(0x104ff0, 64)) == 1069040);
+ assert(unsigned(zero_extend(0x104ff4, 64)) == 1069044);
+ assert(unsigned(zero_extend(0x104ff8, 64)) == 1069048);
+ assert(unsigned(zero_extend(0x105008, 64)) == 1069064);
+ assert(unsigned(zero_extend(0x10500c, 64)) == 1069068);
+ assert(unsigned(zero_extend(0x105010, 64)) == 1069072);
+ assert(unsigned(zero_extend(0x105014, 64)) == 1069076);
+ assert(unsigned(zero_extend(0x105018, 64)) == 1069080);
+ assert(unsigned(zero_extend(0x10501c, 64)) == 1069084);
+ assert(unsigned(zero_extend(0x105020, 64)) == 1069088);
+ assert(unsigned(zero_extend(0x105024, 64)) == 1069092);
+ assert(unsigned(zero_extend(0x105028, 64)) == 1069096);
+ assert(unsigned(zero_extend(0x105034, 64)) == 1069108);
+ assert(unsigned(zero_extend(0x105038, 64)) == 1069112);
+ assert(unsigned(zero_extend(0x10503c, 64)) == 1069116);
+ assert(unsigned(zero_extend(0x105040, 64)) == 1069120);
+ assert(unsigned(zero_extend(0x105050, 64)) == 1069136);
+ assert(unsigned(zero_extend(0x105054, 64)) == 1069140);
+ assert(unsigned(zero_extend(0x105058, 64)) == 1069144);
+ assert(unsigned(zero_extend(0x10505c, 64)) == 1069148);
+ assert(unsigned(zero_extend(0x105060, 64)) == 1069152);
+ assert(unsigned(zero_extend(0x105064, 64)) == 1069156);
+ assert(unsigned(zero_extend(0x105068, 64)) == 1069160);
+ assert(unsigned(zero_extend(0x10506c, 64)) == 1069164);
+ assert(unsigned(zero_extend(0x105070, 64)) == 1069168);
+ assert(unsigned(zero_extend(0x105074, 64)) == 1069172);
+ assert(unsigned(zero_extend(0x105078, 64)) == 1069176);
+ assert(unsigned(zero_extend(0x10507c, 64)) == 1069180);
+ assert(unsigned(zero_extend(0x105080, 64)) == 1069184);
+ assert(unsigned(zero_extend(0x105084, 64)) == 1069188);
+ assert(unsigned(zero_extend(0x105088, 64)) == 1069192);
+ assert(unsigned(zero_extend(0x10508c, 64)) == 1069196);
+ assert(unsigned(zero_extend(0x105090, 64)) == 1069200);
+ assert(unsigned(zero_extend(0x105094, 64)) == 1069204);
+ assert(unsigned(zero_extend(0x105098, 64)) == 1069208);
+ assert(unsigned(zero_extend(0x10509c, 64)) == 1069212);
+ assert(unsigned(zero_extend(0x1050a0, 64)) == 1069216);
+ assert(unsigned(zero_extend(0x1050a4, 64)) == 1069220);
+ assert(unsigned(zero_extend(0x1050a8, 64)) == 1069224);
+ assert(unsigned(zero_extend(0x1050ac, 64)) == 1069228);
+ assert(unsigned(zero_extend(0x1050b0, 64)) == 1069232);
+ assert(unsigned(zero_extend(0x1050b4, 64)) == 1069236);
+ assert(unsigned(zero_extend(0x1050b8, 64)) == 1069240);
+ assert(unsigned(zero_extend(0x1050bc, 64)) == 1069244);
+ assert(unsigned(zero_extend(0x1050c0, 64)) == 1069248);
+ assert(unsigned(zero_extend(0x1050c4, 64)) == 1069252);
+ assert(unsigned(zero_extend(0x1050c8, 64)) == 1069256);
+ assert(unsigned(zero_extend(0x1050cc, 64)) == 1069260);
+ assert(unsigned(zero_extend(0x1050d0, 64)) == 1069264);
+ assert(unsigned(zero_extend(0x1050d4, 64)) == 1069268);
+ assert(unsigned(zero_extend(0x1050d8, 64)) == 1069272);
+ assert(unsigned(zero_extend(0x1050dc, 64)) == 1069276);
+ assert(unsigned(zero_extend(0x1050e0, 64)) == 1069280);
+ assert(unsigned(zero_extend(0x1050e4, 64)) == 1069284);
+ assert(unsigned(zero_extend(0x1050e8, 64)) == 1069288);
+ assert(unsigned(zero_extend(0x1050ec, 64)) == 1069292);
+ assert(unsigned(zero_extend(0x1050f0, 64)) == 1069296);
+ assert(unsigned(zero_extend(0x1050f4, 64)) == 1069300);
+ assert(unsigned(zero_extend(0x1050f8, 64)) == 1069304);
+ assert(unsigned(zero_extend(0x1050fc, 64)) == 1069308);
+ assert(unsigned(zero_extend(0x105100, 64)) == 1069312);
+ assert(unsigned(zero_extend(0x105110, 64)) == 1069328);
+ assert(unsigned(zero_extend(0x105114, 64)) == 1069332);
+ assert(unsigned(zero_extend(0x105118, 64)) == 1069336);
+ assert(unsigned(zero_extend(0x10511c, 64)) == 1069340);
+ assert(unsigned(zero_extend(0x105120, 64)) == 1069344);
+ assert(unsigned(zero_extend(0x105124, 64)) == 1069348);
+ assert(unsigned(zero_extend(0x105128, 64)) == 1069352);
+ assert(unsigned(zero_extend(0x105134, 64)) == 1069364);
+ assert(unsigned(zero_extend(0x105138, 64)) == 1069368);
+ assert(unsigned(zero_extend(0x10513c, 64)) == 1069372);
+ assert(unsigned(zero_extend(0x105140, 64)) == 1069376);
+ assert(unsigned(zero_extend(0x105150, 64)) == 1069392);
+ assert(unsigned(zero_extend(0x105154, 64)) == 1069396);
+ assert(unsigned(zero_extend(0x105158, 64)) == 1069400);
+ assert(unsigned(zero_extend(0x10515c, 64)) == 1069404);
+ assert(unsigned(zero_extend(0x105160, 64)) == 1069408);
+ assert(unsigned(zero_extend(0x105164, 64)) == 1069412);
+ assert(unsigned(zero_extend(0x105168, 64)) == 1069416);
+ assert(unsigned(zero_extend(0x10516c, 64)) == 1069420);
+ assert(unsigned(zero_extend(0x105170, 64)) == 1069424);
+ assert(unsigned(zero_extend(0x105174, 64)) == 1069428);
+ assert(unsigned(zero_extend(0x105178, 64)) == 1069432);
+ assert(unsigned(zero_extend(0x10517c, 64)) == 1069436);
+ assert(unsigned(zero_extend(0x105180, 64)) == 1069440);
+ assert(unsigned(zero_extend(0x105184, 64)) == 1069444);
+ assert(unsigned(zero_extend(0x105188, 64)) == 1069448);
+ assert(unsigned(zero_extend(0x10518c, 64)) == 1069452);
+ assert(unsigned(zero_extend(0x105190, 64)) == 1069456);
+ assert(unsigned(zero_extend(0x105194, 64)) == 1069460);
+ assert(unsigned(zero_extend(0x105198, 64)) == 1069464);
+ assert(unsigned(zero_extend(0x10519c, 64)) == 1069468);
+ assert(unsigned(zero_extend(0x1051a0, 64)) == 1069472);
+ assert(unsigned(zero_extend(0x1051a4, 64)) == 1069476);
+ assert(unsigned(zero_extend(0x1051a8, 64)) == 1069480);
+ assert(unsigned(zero_extend(0x1051ac, 64)) == 1069484);
+ assert(unsigned(zero_extend(0x1051b0, 64)) == 1069488);
+ assert(unsigned(zero_extend(0x1051b4, 64)) == 1069492);
+ assert(unsigned(zero_extend(0x1051b8, 64)) == 1069496);
+ assert(unsigned(zero_extend(0x1051bc, 64)) == 1069500);
+ assert(unsigned(zero_extend(0x1051c0, 64)) == 1069504);
+ assert(unsigned(zero_extend(0x1051c4, 64)) == 1069508);
+ assert(unsigned(zero_extend(0x1051c8, 64)) == 1069512);
+ assert(unsigned(zero_extend(0x1051cc, 64)) == 1069516);
+ assert(unsigned(zero_extend(0x1051d0, 64)) == 1069520);
+ assert(unsigned(zero_extend(0x1051d4, 64)) == 1069524);
+ assert(unsigned(zero_extend(0x1051d8, 64)) == 1069528);
+ assert(unsigned(zero_extend(0x1051dc, 64)) == 1069532);
+ assert(unsigned(zero_extend(0x1051e0, 64)) == 1069536);
+ assert(unsigned(zero_extend(0x1051e4, 64)) == 1069540);
+ assert(unsigned(zero_extend(0x1051e8, 64)) == 1069544);
+ assert(unsigned(zero_extend(0x1051ec, 64)) == 1069548);
+ assert(unsigned(zero_extend(0x1051f0, 64)) == 1069552);
+ assert(unsigned(zero_extend(0x1051f4, 64)) == 1069556);
+ assert(unsigned(zero_extend(0x1051f8, 64)) == 1069560);
+ assert(unsigned(zero_extend(0x1051fc, 64)) == 1069564);
+ assert(unsigned(zero_extend(0x105200, 64)) == 1069568);
+ assert(unsigned(zero_extend(0x105208, 64)) == 1069576);
+ assert(unsigned(zero_extend(0x10520c, 64)) == 1069580);
+ assert(unsigned(zero_extend(0x105210, 64)) == 1069584);
+ assert(unsigned(zero_extend(0x105214, 64)) == 1069588);
+ assert(unsigned(zero_extend(0x105218, 64)) == 1069592);
+ assert(unsigned(zero_extend(0x10521c, 64)) == 1069596);
+ assert(unsigned(zero_extend(0x105220, 64)) == 1069600);
+ assert(unsigned(zero_extend(0x105224, 64)) == 1069604);
+ assert(unsigned(zero_extend(0x105228, 64)) == 1069608);
+ assert(unsigned(zero_extend(0x105230, 64)) == 1069616);
+ assert(unsigned(zero_extend(0x105238, 64)) == 1069624);
+ assert(unsigned(zero_extend(0x105240, 64)) == 1069632);
+ assert(unsigned(zero_extend(0x105248, 64)) == 1069640);
+ assert(unsigned(zero_extend(0x10524c, 64)) == 1069644);
+ assert(unsigned(zero_extend(0x105250, 64)) == 1069648);
+ assert(unsigned(zero_extend(0x105254, 64)) == 1069652);
+ assert(unsigned(zero_extend(0x105258, 64)) == 1069656);
+ assert(unsigned(zero_extend(0x10525c, 64)) == 1069660);
+ assert(unsigned(zero_extend(0x105260, 64)) == 1069664);
+ assert(unsigned(zero_extend(0x105264, 64)) == 1069668);
+ assert(unsigned(zero_extend(0x105268, 64)) == 1069672);
+ assert(unsigned(zero_extend(0x10526c, 64)) == 1069676);
+ assert(unsigned(zero_extend(0x105270, 64)) == 1069680);
+ assert(unsigned(zero_extend(0x105274, 64)) == 1069684);
+ assert(unsigned(zero_extend(0x105278, 64)) == 1069688);
+ assert(unsigned(zero_extend(0x10527c, 64)) == 1069692);
+ assert(unsigned(zero_extend(0x10532c, 64)) == 1069868);
+ assert(unsigned(zero_extend(0x105330, 64)) == 1069872);
+ assert(unsigned(zero_extend(0x105334, 64)) == 1069876);
+ assert(unsigned(zero_extend(0x105338, 64)) == 1069880);
+ assert(unsigned(zero_extend(0x10533c, 64)) == 1069884);
+ assert(unsigned(zero_extend(0x105340, 64)) == 1069888);
+ assert(unsigned(zero_extend(0x105344, 64)) == 1069892);
+ assert(unsigned(zero_extend(0x105348, 64)) == 1069896);
+ assert(unsigned(zero_extend(0x10534c, 64)) == 1069900);
+ assert(unsigned(zero_extend(0x105350, 64)) == 1069904);
+ assert(unsigned(zero_extend(0x105354, 64)) == 1069908);
+ assert(unsigned(zero_extend(0x105358, 64)) == 1069912);
+ assert(unsigned(zero_extend(0x10535c, 64)) == 1069916);
+ assert(unsigned(zero_extend(0x105360, 64)) == 1069920);
+ assert(unsigned(zero_extend(0x105364, 64)) == 1069924);
+ assert(unsigned(zero_extend(0x105368, 64)) == 1069928);
+ assert(unsigned(zero_extend(0x10536c, 64)) == 1069932);
+ assert(unsigned(zero_extend(0x10537c, 64)) == 1069948);
+ assert(unsigned(zero_extend(0x105380, 64)) == 1069952);
+ assert(unsigned(zero_extend(0x105384, 64)) == 1069956);
+ assert(unsigned(zero_extend(0x105388, 64)) == 1069960);
+ assert(unsigned(zero_extend(0x10538c, 64)) == 1069964);
+ assert(unsigned(zero_extend(0x105390, 64)) == 1069968);
+ assert(unsigned(zero_extend(0x1053a0, 64)) == 1069984);
+ assert(unsigned(zero_extend(0x1053a4, 64)) == 1069988);
+ assert(unsigned(zero_extend(0x1053a8, 64)) == 1069992);
+ assert(unsigned(zero_extend(0x1053ac, 64)) == 1069996);
+ assert(unsigned(zero_extend(0x1053b0, 64)) == 1070000);
+ assert(unsigned(zero_extend(0x1053b4, 64)) == 1070004);
+ assert(unsigned(zero_extend(0x10544c, 64)) == 1070156);
+ assert(unsigned(zero_extend(0x105450, 64)) == 1070160);
+ assert(unsigned(zero_extend(0x105454, 64)) == 1070164);
+ assert(unsigned(zero_extend(0x105458, 64)) == 1070168);
+ assert(unsigned(zero_extend(0x10545c, 64)) == 1070172);
+ assert(unsigned(zero_extend(0x105468, 64)) == 1070184);
+ assert(unsigned(zero_extend(0x10546c, 64)) == 1070188);
+ assert(unsigned(zero_extend(0x105470, 64)) == 1070192);
+ assert(unsigned(zero_extend(0x105474, 64)) == 1070196);
+ assert(unsigned(zero_extend(0x105478, 64)) == 1070200);
+ assert(unsigned(zero_extend(0x10547c, 64)) == 1070204);
+ assert(unsigned(zero_extend(0x105480, 64)) == 1070208);
+ assert(unsigned(zero_extend(0x105484, 64)) == 1070212);
+ assert(unsigned(zero_extend(0x105490, 64)) == 1070224);
+ assert(unsigned(zero_extend(0x105494, 64)) == 1070228);
+ assert(unsigned(zero_extend(0x105498, 64)) == 1070232);
+ assert(unsigned(zero_extend(0x1054a0, 64)) == 1070240);
+ assert(unsigned(zero_extend(0x1054a8, 64)) == 1070248);
+ assert(unsigned(zero_extend(0x1054ac, 64)) == 1070252);
+ assert(unsigned(zero_extend(0x1054b0, 64)) == 1070256);
+ assert(unsigned(zero_extend(0x1054b4, 64)) == 1070260);
+ assert(unsigned(zero_extend(0x1054b8, 64)) == 1070264);
+ assert(unsigned(zero_extend(0x1054bc, 64)) == 1070268);
+ assert(unsigned(zero_extend(0x1054c0, 64)) == 1070272);
+ assert(unsigned(zero_extend(0x1054c4, 64)) == 1070276);
+ assert(unsigned(zero_extend(0x1054c8, 64)) == 1070280);
+ assert(unsigned(zero_extend(0x1054cc, 64)) == 1070284);
+ assert(unsigned(zero_extend(0x1054d0, 64)) == 1070288);
+ assert(unsigned(zero_extend(0x1054d4, 64)) == 1070292);
+ assert(unsigned(zero_extend(0x1054d8, 64)) == 1070296);
+ assert(unsigned(zero_extend(0x1054dc, 64)) == 1070300);
+ assert(unsigned(zero_extend(0x1054e0, 64)) == 1070304);
+ assert(unsigned(zero_extend(0x1054e4, 64)) == 1070308);
+ assert(unsigned(zero_extend(0x1054e8, 64)) == 1070312);
+ assert(unsigned(zero_extend(0x1054f0, 64)) == 1070320);
+ assert(unsigned(zero_extend(0x1054f8, 64)) == 1070328);
+ assert(unsigned(zero_extend(0x105500, 64)) == 1070336);
+ assert(unsigned(zero_extend(0x105508, 64)) == 1070344);
+ assert(unsigned(zero_extend(0x10550c, 64)) == 1070348);
+ assert(unsigned(zero_extend(0x105510, 64)) == 1070352);
+ assert(unsigned(zero_extend(0x105514, 64)) == 1070356);
+ assert(unsigned(zero_extend(0x105518, 64)) == 1070360);
+ assert(unsigned(zero_extend(0x10551c, 64)) == 1070364);
+ assert(unsigned(zero_extend(0x105520, 64)) == 1070368);
+ assert(unsigned(zero_extend(0x105524, 64)) == 1070372);
+ assert(unsigned(zero_extend(0x105528, 64)) == 1070376);
+ assert(unsigned(zero_extend(0x10552c, 64)) == 1070380);
+ assert(unsigned(zero_extend(0x105530, 64)) == 1070384);
+ assert(unsigned(zero_extend(0x105534, 64)) == 1070388);
+ assert(unsigned(zero_extend(0x105538, 64)) == 1070392);
+ assert(unsigned(zero_extend(0x10553c, 64)) == 1070396);
+ assert(unsigned(zero_extend(0x105540, 64)) == 1070400);
+ assert(unsigned(zero_extend(0x105544, 64)) == 1070404);
+ assert(unsigned(zero_extend(0x105548, 64)) == 1070408);
+ assert(unsigned(zero_extend(0x10554c, 64)) == 1070412);
+ assert(unsigned(zero_extend(0x105550, 64)) == 1070416);
+ assert(unsigned(zero_extend(0x105554, 64)) == 1070420);
+ assert(unsigned(zero_extend(0x105558, 64)) == 1070424);
+ assert(unsigned(zero_extend(0x105560, 64)) == 1070432);
+ assert(unsigned(zero_extend(0x105568, 64)) == 1070440);
+ assert(unsigned(zero_extend(0x105570, 64)) == 1070448);
+ assert(unsigned(zero_extend(0x105574, 64)) == 1070452);
+ assert(unsigned(zero_extend(0x105578, 64)) == 1070456);
+ assert(unsigned(zero_extend(0x10557c, 64)) == 1070460);
+ assert(unsigned(zero_extend(0x105580, 64)) == 1070464);
+ assert(unsigned(zero_extend(0x105584, 64)) == 1070468);
+ assert(unsigned(zero_extend(0x105588, 64)) == 1070472);
+ assert(unsigned(zero_extend(0x10558c, 64)) == 1070476);
+ assert(unsigned(zero_extend(0x105590, 64)) == 1070480);
+ assert(unsigned(zero_extend(0x105594, 64)) == 1070484);
+ assert(unsigned(zero_extend(0x105598, 64)) == 1070488);
+ assert(unsigned(zero_extend(0x10559c, 64)) == 1070492);
+ assert(unsigned(zero_extend(0x1055a0, 64)) == 1070496);
+ assert(unsigned(zero_extend(0x1055a4, 64)) == 1070500);
+ assert(unsigned(zero_extend(0x1055a8, 64)) == 1070504);
+ assert(unsigned(zero_extend(0x1055ac, 64)) == 1070508);
+ assert(unsigned(zero_extend(0x1055b0, 64)) == 1070512);
+ assert(unsigned(zero_extend(0x1055b4, 64)) == 1070516);
+ assert(unsigned(zero_extend(0x1055b8, 64)) == 1070520);
+ assert(unsigned(zero_extend(0x1055bc, 64)) == 1070524);
+ assert(unsigned(zero_extend(0x1055c0, 64)) == 1070528);
+ assert(unsigned(zero_extend(0x1055c4, 64)) == 1070532);
+ assert(unsigned(zero_extend(0x1055c8, 64)) == 1070536);
+ assert(unsigned(zero_extend(0x1055cc, 64)) == 1070540);
+ assert(unsigned(zero_extend(0x1055d0, 64)) == 1070544);
+ assert(unsigned(zero_extend(0x1055dc, 64)) == 1070556);
+ assert(unsigned(zero_extend(0x1055e0, 64)) == 1070560);
+ assert(unsigned(zero_extend(0x1055e8, 64)) == 1070568);
+ assert(unsigned(zero_extend(0x1055ec, 64)) == 1070572);
+ assert(unsigned(zero_extend(0x1055f0, 64)) == 1070576);
+ assert(unsigned(zero_extend(0x1055f4, 64)) == 1070580);
+ assert(unsigned(zero_extend(0x1055f8, 64)) == 1070584);
+ assert(unsigned(zero_extend(0x1055fc, 64)) == 1070588);
+ assert(unsigned(zero_extend(0x105610, 64)) == 1070608);
+ assert(unsigned(zero_extend(0x105614, 64)) == 1070612);
+ assert(unsigned(zero_extend(0x105644, 64)) == 1070660);
+ assert(unsigned(zero_extend(0x105648, 64)) == 1070664);
+ assert(unsigned(zero_extend(0x10564c, 64)) == 1070668);
+ assert(unsigned(zero_extend(0x10568c, 64)) == 1070732);
+ assert(unsigned(zero_extend(0x105690, 64)) == 1070736);
+ assert(unsigned(zero_extend(0x105694, 64)) == 1070740);
+ assert(unsigned(zero_extend(0x105698, 64)) == 1070744);
+ assert(unsigned(zero_extend(0x10569c, 64)) == 1070748);
+ assert(unsigned(zero_extend(0x1056a0, 64)) == 1070752);
+ assert(unsigned(zero_extend(0x1056a4, 64)) == 1070756);
+ assert(unsigned(zero_extend(0x1056a8, 64)) == 1070760);
+ assert(unsigned(zero_extend(0x1056ac, 64)) == 1070764);
+ assert(unsigned(zero_extend(0x1056b0, 64)) == 1070768);
+ assert(unsigned(zero_extend(0x1056b4, 64)) == 1070772);
+ assert(unsigned(zero_extend(0x1056b8, 64)) == 1070776);
+ assert(unsigned(zero_extend(0x1056bc, 64)) == 1070780);
+ assert(unsigned(zero_extend(0x1056c0, 64)) == 1070784);
+ assert(unsigned(zero_extend(0x1056c4, 64)) == 1070788);
+ assert(unsigned(zero_extend(0x1056c8, 64)) == 1070792);
+ assert(unsigned(zero_extend(0x1056cc, 64)) == 1070796);
+ assert(unsigned(zero_extend(0x1056d0, 64)) == 1070800);
+ assert(unsigned(zero_extend(0x1056d4, 64)) == 1070804);
+ assert(unsigned(zero_extend(0x1056d8, 64)) == 1070808);
+ assert(unsigned(zero_extend(0x1056dc, 64)) == 1070812);
+ assert(unsigned(zero_extend(0x1056e0, 64)) == 1070816);
+ assert(unsigned(zero_extend(0x1056e4, 64)) == 1070820);
+ assert(unsigned(zero_extend(0x1056e8, 64)) == 1070824);
+ assert(unsigned(zero_extend(0x1056ec, 64)) == 1070828);
+ assert(unsigned(zero_extend(0x1056f0, 64)) == 1070832);
+ assert(unsigned(zero_extend(0x1056f4, 64)) == 1070836);
+ assert(unsigned(zero_extend(0x1056f8, 64)) == 1070840);
+ assert(unsigned(zero_extend(0x1056fc, 64)) == 1070844);
+ assert(unsigned(zero_extend(0x105700, 64)) == 1070848);
+ assert(unsigned(zero_extend(0x105704, 64)) == 1070852);
+ assert(unsigned(zero_extend(0x105708, 64)) == 1070856);
+ assert(unsigned(zero_extend(0x10570c, 64)) == 1070860);
+ assert(unsigned(zero_extend(0x105710, 64)) == 1070864);
+ assert(unsigned(zero_extend(0x105714, 64)) == 1070868);
+ assert(unsigned(zero_extend(0x105718, 64)) == 1070872);
+ assert(unsigned(zero_extend(0x10571c, 64)) == 1070876);
+ assert(unsigned(zero_extend(0x105720, 64)) == 1070880);
+ assert(unsigned(zero_extend(0x105724, 64)) == 1070884);
+ assert(unsigned(zero_extend(0x105728, 64)) == 1070888);
+ assert(unsigned(zero_extend(0x10572c, 64)) == 1070892);
+ assert(unsigned(zero_extend(0x105730, 64)) == 1070896);
+ assert(unsigned(zero_extend(0x105734, 64)) == 1070900);
+ assert(unsigned(zero_extend(0x105738, 64)) == 1070904);
+ assert(unsigned(zero_extend(0x10573c, 64)) == 1070908);
+ assert(unsigned(zero_extend(0x105740, 64)) == 1070912);
+ assert(unsigned(zero_extend(0x105744, 64)) == 1070916);
+ assert(unsigned(zero_extend(0x105748, 64)) == 1070920);
+ assert(unsigned(zero_extend(0x10574c, 64)) == 1070924);
+ assert(unsigned(zero_extend(0x105750, 64)) == 1070928);
+ assert(unsigned(zero_extend(0x105754, 64)) == 1070932);
+ assert(unsigned(zero_extend(0x105758, 64)) == 1070936);
+ assert(unsigned(zero_extend(0x10575c, 64)) == 1070940);
+ assert(unsigned(zero_extend(0x105760, 64)) == 1070944);
+ assert(unsigned(zero_extend(0x105764, 64)) == 1070948);
+ assert(unsigned(zero_extend(0x105768, 64)) == 1070952);
+ assert(unsigned(zero_extend(0x10576c, 64)) == 1070956);
+ assert(unsigned(zero_extend(0x105770, 64)) == 1070960);
+ assert(unsigned(zero_extend(0x105774, 64)) == 1070964);
+ assert(unsigned(zero_extend(0x105778, 64)) == 1070968);
+ assert(unsigned(zero_extend(0x105780, 64)) == 1070976);
+ assert(unsigned(zero_extend(0x1057a8, 64)) == 1071016);
+ assert(unsigned(zero_extend(0x1057b0, 64)) == 1071024);
+ assert(unsigned(zero_extend(0x1057b8, 64)) == 1071032);
+ assert(unsigned(zero_extend(0x1057c0, 64)) == 1071040);
+ assert(unsigned(zero_extend(0x1057c8, 64)) == 1071048);
+ assert(unsigned(zero_extend(0x1057d0, 64)) == 1071056);
+ assert(unsigned(zero_extend(0x1057d8, 64)) == 1071064);
+ assert(unsigned(zero_extend(0x1057e0, 64)) == 1071072);
+ assert(unsigned(zero_extend(0x1057e8, 64)) == 1071080);
+ assert(unsigned(zero_extend(0x1057f0, 64)) == 1071088);
+ assert(unsigned(zero_extend(0x1057f8, 64)) == 1071096);
+ assert(unsigned(zero_extend(0x105800, 64)) == 1071104);
+ assert(unsigned(zero_extend(0x105808, 64)) == 1071112);
+ assert(unsigned(zero_extend(0x105810, 64)) == 1071120);
+ assert(unsigned(zero_extend(0x105818, 64)) == 1071128);
+ assert(unsigned(zero_extend(0x105820, 64)) == 1071136);
+ assert(unsigned(zero_extend(0x105828, 64)) == 1071144);
+ assert(unsigned(zero_extend(0x105830, 64)) == 1071152);
+ assert(unsigned(zero_extend(0x105838, 64)) == 1071160);
+ assert(unsigned(zero_extend(0x105840, 64)) == 1071168);
+ assert(unsigned(zero_extend(0x105848, 64)) == 1071176);
+ assert(unsigned(zero_extend(0x105850, 64)) == 1071184);
+ assert(unsigned(zero_extend(0x105858, 64)) == 1071192);
+ assert(unsigned(zero_extend(0x10585c, 64)) == 1071196);
+ assert(unsigned(zero_extend(0x105860, 64)) == 1071200);
+ assert(unsigned(zero_extend(0x105864, 64)) == 1071204);
+ assert(unsigned(zero_extend(0x105868, 64)) == 1071208);
+ assert(unsigned(zero_extend(0x10586c, 64)) == 1071212);
+ assert(unsigned(zero_extend(0x105870, 64)) == 1071216);
+ assert(unsigned(zero_extend(0x105874, 64)) == 1071220);
+ assert(unsigned(zero_extend(0x105878, 64)) == 1071224);
+ assert(unsigned(zero_extend(0x10587c, 64)) == 1071228);
+ assert(unsigned(zero_extend(0x105880, 64)) == 1071232);
+ assert(unsigned(zero_extend(0x105884, 64)) == 1071236);
+ assert(unsigned(zero_extend(0x105888, 64)) == 1071240);
+ assert(unsigned(zero_extend(0x10588c, 64)) == 1071244);
+ assert(unsigned(zero_extend(0x105890, 64)) == 1071248);
+ assert(unsigned(zero_extend(0x105894, 64)) == 1071252);
+ assert(unsigned(zero_extend(0x105898, 64)) == 1071256);
+ assert(unsigned(zero_extend(0x10589c, 64)) == 1071260);
+ assert(unsigned(zero_extend(0x1058a0, 64)) == 1071264);
+ assert(unsigned(zero_extend(0x1058a4, 64)) == 1071268);
+ assert(unsigned(zero_extend(0x1058a8, 64)) == 1071272);
+ assert(unsigned(zero_extend(0x10764c321, 64)) == 4419011361);
+ assert(unsigned(zero_extend(0x108, 64)) == 264);
+ assert(unsigned(zero_extend(0x10ec4, 64)) == 69316);
+ assert(unsigned(zero_extend(0x10ec8, 64)) == 69320);
+ assert(unsigned(zero_extend(0x10ecc, 64)) == 69324);
+ assert(unsigned(zero_extend(0x10ed0, 64)) == 69328);
+ assert(unsigned(zero_extend(0x10ed4, 64)) == 69332);
+ assert(unsigned(zero_extend(0x10ed8, 64)) == 69336);
+ assert(unsigned(zero_extend(0x10edc, 64)) == 69340);
+ assert(unsigned(zero_extend(0x10ee0, 64)) == 69344);
+ assert(unsigned(zero_extend(0x10ee4, 64)) == 69348);
+ assert(unsigned(zero_extend(0x10ee8, 64)) == 69352);
+ assert(unsigned(zero_extend(0x10eec, 64)) == 69356);
+ assert(unsigned(zero_extend(0x10ef0, 64)) == 69360);
+ assert(unsigned(zero_extend(0x10ef4, 64)) == 69364);
+ assert(unsigned(zero_extend(0x10ef8, 64)) == 69368);
+ assert(unsigned(zero_extend(0x10efc, 64)) == 69372);
+ assert(unsigned(zero_extend(0x10f00, 64)) == 69376);
+ assert(unsigned(zero_extend(0x10f04, 64)) == 69380);
+ assert(unsigned(zero_extend(0x10f08, 64)) == 69384);
+ assert(unsigned(zero_extend(0x10f0c, 64)) == 69388);
+ assert(unsigned(zero_extend(0x10f10, 64)) == 69392);
+ assert(unsigned(zero_extend(0x10f14, 64)) == 69396);
+ assert(unsigned(zero_extend(0x10f18, 64)) == 69400);
+ assert(unsigned(zero_extend(0x10f1c, 64)) == 69404);
+ assert(unsigned(zero_extend(0x10f20, 64)) == 69408);
+ assert(unsigned(zero_extend(0x10f24, 64)) == 69412);
+ assert(unsigned(zero_extend(0x10f28, 64)) == 69416);
+ assert(unsigned(zero_extend(0x10f2c, 64)) == 69420);
+ assert(unsigned(zero_extend(0x10f30, 64)) == 69424);
+ assert(unsigned(zero_extend(0x10f34, 64)) == 69428);
+ assert(unsigned(zero_extend(0x10f38, 64)) == 69432);
+ assert(unsigned(zero_extend(0x10f3c, 64)) == 69436);
+ assert(unsigned(zero_extend(0x10f40, 64)) == 69440);
+ assert(unsigned(zero_extend(0x10f44, 64)) == 69444);
+ assert(unsigned(zero_extend(0x10f48, 64)) == 69448);
+ assert(unsigned(zero_extend(0x10f4c, 64)) == 69452);
+ assert(unsigned(zero_extend(0x10f50, 64)) == 69456);
+ assert(unsigned(zero_extend(0x10f54, 64)) == 69460);
+ assert(unsigned(zero_extend(0x10f58, 64)) == 69464);
+ assert(unsigned(zero_extend(0x10f5c, 64)) == 69468);
+ assert(unsigned(zero_extend(0x10f60, 64)) == 69472);
+ assert(unsigned(zero_extend(0x10f64, 64)) == 69476);
+ assert(unsigned(zero_extend(0x10f68, 64)) == 69480);
+ assert(unsigned(zero_extend(0x10f6c, 64)) == 69484);
+ assert(unsigned(zero_extend(0x11, 64)) == 17);
+ assert(unsigned(zero_extend(0x110, 64)) == 272);
+ assert(unsigned(zero_extend(0x11150, 64)) == 69968);
+ assert(unsigned(zero_extend(0x11223344, 64)) == 287454020);
+ assert(unsigned(zero_extend(0x1122334411223344, 64)) == 1234605615291183940);
+ assert(unsigned(zero_extend(0x118, 64)) == 280);
+ assert(unsigned(zero_extend(0x12, 64)) == 18);
+ assert(unsigned(zero_extend(0x120, 64)) == 288);
+ assert(unsigned(zero_extend(0x1200, 64)) == 4608);
+ assert(unsigned(zero_extend(0x120005c, 64)) == 18874460);
+ assert(unsigned(zero_extend(0x1200060, 64)) == 18874464);
+ assert(unsigned(zero_extend(0x1200064, 64)) == 18874468);
+ assert(unsigned(zero_extend(0x1220, 64)) == 4640);
+ assert(unsigned(zero_extend(0x12200078, 64)) == 304087160);
+ assert(unsigned(zero_extend(0x1220007c, 64)) == 304087164);
+ assert(unsigned(zero_extend(0x12200080, 64)) == 304087168);
+ assert(unsigned(zero_extend(0x1234, 64)) == 4660);
+ assert(unsigned(zero_extend(0x12345678, 64)) == 305419896);
+ assert(unsigned(zero_extend(0x123456789abcdef0, 64)) == 1311768467463790320);
+ assert(unsigned(zero_extend(0x123456789abcdef1, 64)) == 1311768467463790321);
+ assert(unsigned(zero_extend(0x123c, 64)) == 4668);
+ assert(unsigned(zero_extend(0x12500000, 64)) == 307232768);
+ assert(unsigned(zero_extend(0x12500004, 64)) == 307232772);
+ assert(unsigned(zero_extend(0x12500008, 64)) == 307232776);
+ assert(unsigned(zero_extend(0x12500010, 64)) == 307232784);
+ assert(unsigned(zero_extend(0x12500014, 64)) == 307232788);
+ assert(unsigned(zero_extend(0x12500018, 64)) == 307232792);
+ assert(unsigned(zero_extend(0x12500020, 64)) == 307232800);
+ assert(unsigned(zero_extend(0x12500024, 64)) == 307232804);
+ assert(unsigned(zero_extend(0x12500028, 64)) == 307232808);
+ assert(unsigned(zero_extend(0x12500030, 64)) == 307232816);
+ assert(unsigned(zero_extend(0x12500034, 64)) == 307232820);
+ assert(unsigned(zero_extend(0x12500038, 64)) == 307232824);
+ assert(unsigned(zero_extend(0x12500040, 64)) == 307232832);
+ assert(unsigned(zero_extend(0x12500044, 64)) == 307232836);
+ assert(unsigned(zero_extend(0x12500048, 64)) == 307232840);
+ assert(unsigned(zero_extend(0x1250004c, 64)) == 307232844);
+ assert(unsigned(zero_extend(0x12500050, 64)) == 307232848);
+ assert(unsigned(zero_extend(0x12500054, 64)) == 307232852);
+ assert(unsigned(zero_extend(0x12500058, 64)) == 307232856);
+ assert(unsigned(zero_extend(0x1250005c, 64)) == 307232860);
+ assert(unsigned(zero_extend(0x12500060, 64)) == 307232864);
+ assert(unsigned(zero_extend(0x12500064, 64)) == 307232868);
+ assert(unsigned(zero_extend(0x12500068, 64)) == 307232872);
+ assert(unsigned(zero_extend(0x1250006c, 64)) == 307232876);
+ assert(unsigned(zero_extend(0x12500070, 64)) == 307232880);
+ assert(unsigned(zero_extend(0x12500074, 64)) == 307232884);
+ assert(unsigned(zero_extend(0x12500078, 64)) == 307232888);
+ assert(unsigned(zero_extend(0x1250007c, 64)) == 307232892);
+ assert(unsigned(zero_extend(0x12500080, 64)) == 307232896);
+ assert(unsigned(zero_extend(0x12500084, 64)) == 307232900);
+ assert(unsigned(zero_extend(0x12500088, 64)) == 307232904);
+ assert(unsigned(zero_extend(0x1250008c, 64)) == 307232908);
+ assert(unsigned(zero_extend(0x12500090, 64)) == 307232912);
+ assert(unsigned(zero_extend(0x12500094, 64)) == 307232916);
+ assert(unsigned(zero_extend(0x12500098, 64)) == 307232920);
+ assert(unsigned(zero_extend(0x12570, 64)) == 75120);
+ assert(unsigned(zero_extend(0x12574, 64)) == 75124);
+ assert(unsigned(zero_extend(0x12578, 64)) == 75128);
+ assert(unsigned(zero_extend(0x1257c, 64)) == 75132);
+ assert(unsigned(zero_extend(0x12580, 64)) == 75136);
+ assert(unsigned(zero_extend(0x12584, 64)) == 75140);
+ assert(unsigned(zero_extend(0x12588, 64)) == 75144);
+ assert(unsigned(zero_extend(0x1258c, 64)) == 75148);
+ assert(unsigned(zero_extend(0x12590, 64)) == 75152);
+ assert(unsigned(zero_extend(0x12594, 64)) == 75156);
+ assert(unsigned(zero_extend(0x12598, 64)) == 75160);
+ assert(unsigned(zero_extend(0x1259c, 64)) == 75164);
+ assert(unsigned(zero_extend(0x125a0, 64)) == 75168);
+ assert(unsigned(zero_extend(0x125a4, 64)) == 75172);
+ assert(unsigned(zero_extend(0x125a8, 64)) == 75176);
+ assert(unsigned(zero_extend(0x125ac, 64)) == 75180);
+ assert(unsigned(zero_extend(0x125b0, 64)) == 75184);
+ assert(unsigned(zero_extend(0x125b4, 64)) == 75188);
+ assert(unsigned(zero_extend(0x125b8, 64)) == 75192);
+ assert(unsigned(zero_extend(0x125bc, 64)) == 75196);
+ assert(unsigned(zero_extend(0x125c0, 64)) == 75200);
+ assert(unsigned(zero_extend(0x125c4, 64)) == 75204);
+ assert(unsigned(zero_extend(0x125c8, 64)) == 75208);
+ assert(unsigned(zero_extend(0x125cc, 64)) == 75212);
+ assert(unsigned(zero_extend(0x125d0, 64)) == 75216);
+ assert(unsigned(zero_extend(0x125d4, 64)) == 75220);
+ assert(unsigned(zero_extend(0x125d8, 64)) == 75224);
+ assert(unsigned(zero_extend(0x125dc, 64)) == 75228);
+ assert(unsigned(zero_extend(0x125e0, 64)) == 75232);
+ assert(unsigned(zero_extend(0x125e4, 64)) == 75236);
+ assert(unsigned(zero_extend(0x125e8, 64)) == 75240);
+ assert(unsigned(zero_extend(0x125ec, 64)) == 75244);
+ assert(unsigned(zero_extend(0x125f0, 64)) == 75248);
+ assert(unsigned(zero_extend(0x125f4, 64)) == 75252);
+ assert(unsigned(zero_extend(0x125f8, 64)) == 75256);
+ assert(unsigned(zero_extend(0x125fc, 64)) == 75260);
+ assert(unsigned(zero_extend(0x12600, 64)) == 75264);
+ assert(unsigned(zero_extend(0x12600000, 64)) == 308281344);
+ assert(unsigned(zero_extend(0x12600004, 64)) == 308281348);
+ assert(unsigned(zero_extend(0x12600008, 64)) == 308281352);
+ assert(unsigned(zero_extend(0x12600010, 64)) == 308281360);
+ assert(unsigned(zero_extend(0x12600014, 64)) == 308281364);
+ assert(unsigned(zero_extend(0x12600018, 64)) == 308281368);
+ assert(unsigned(zero_extend(0x12600020, 64)) == 308281376);
+ assert(unsigned(zero_extend(0x12600024, 64)) == 308281380);
+ assert(unsigned(zero_extend(0x12600028, 64)) == 308281384);
+ assert(unsigned(zero_extend(0x12600030, 64)) == 308281392);
+ assert(unsigned(zero_extend(0x12600034, 64)) == 308281396);
+ assert(unsigned(zero_extend(0x12600038, 64)) == 308281400);
+ assert(unsigned(zero_extend(0x12600040, 64)) == 308281408);
+ assert(unsigned(zero_extend(0x12600044, 64)) == 308281412);
+ assert(unsigned(zero_extend(0x12600048, 64)) == 308281416);
+ assert(unsigned(zero_extend(0x12600050, 64)) == 308281424);
+ assert(unsigned(zero_extend(0x12600054, 64)) == 308281428);
+ assert(unsigned(zero_extend(0x12600058, 64)) == 308281432);
+ assert(unsigned(zero_extend(0x1260005c, 64)) == 308281436);
+ assert(unsigned(zero_extend(0x12600060, 64)) == 308281440);
+ assert(unsigned(zero_extend(0x12600064, 64)) == 308281444);
+ assert(unsigned(zero_extend(0x12600068, 64)) == 308281448);
+ assert(unsigned(zero_extend(0x1260006c, 64)) == 308281452);
+ assert(unsigned(zero_extend(0x12600070, 64)) == 308281456);
+ assert(unsigned(zero_extend(0x12600074, 64)) == 308281460);
+ assert(unsigned(zero_extend(0x12600078, 64)) == 308281464);
+ assert(unsigned(zero_extend(0x1260007c, 64)) == 308281468);
+ assert(unsigned(zero_extend(0x12600080, 64)) == 308281472);
+ assert(unsigned(zero_extend(0x12600084, 64)) == 308281476);
+ assert(unsigned(zero_extend(0x12600088, 64)) == 308281480);
+ assert(unsigned(zero_extend(0x1260008c, 64)) == 308281484);
+ assert(unsigned(zero_extend(0x12600090, 64)) == 308281488);
+ assert(unsigned(zero_extend(0x12600094, 64)) == 308281492);
+ assert(unsigned(zero_extend(0x12600098, 64)) == 308281496);
+ assert(unsigned(zero_extend(0x1260009c, 64)) == 308281500);
+ assert(unsigned(zero_extend(0x126000a0, 64)) == 308281504);
+ assert(unsigned(zero_extend(0x126000a4, 64)) == 308281508);
+ assert(unsigned(zero_extend(0x126000a8, 64)) == 308281512);
+ assert(unsigned(zero_extend(0x12604, 64)) == 75268);
+ assert(unsigned(zero_extend(0x12608, 64)) == 75272);
+ assert(unsigned(zero_extend(0x1260c, 64)) == 75276);
+ assert(unsigned(zero_extend(0x12610, 64)) == 75280);
+ assert(unsigned(zero_extend(0x12620, 64)) == 75296);
+ assert(unsigned(zero_extend(0x12860, 64)) == 75872);
+ assert(unsigned(zero_extend(0x13, 64)) == 19);
+ assert(unsigned(zero_extend(0x13000000, 64)) == 318767104);
+ assert(unsigned(zero_extend(0x1300368, 64)) == 19923816);
+ assert(unsigned(zero_extend(0x130036c, 64)) == 19923820);
+ assert(unsigned(zero_extend(0x1300370, 64)) == 19923824);
+ assert(unsigned(zero_extend(0x13004b8, 64)) == 19924152);
+ assert(unsigned(zero_extend(0x13004bc, 64)) == 19924156);
+ assert(unsigned(zero_extend(0x13004c0, 64)) == 19924160);
+ assert(unsigned(zero_extend(0x1300608, 64)) == 19924488);
+ assert(unsigned(zero_extend(0x130060c, 64)) == 19924492);
+ assert(unsigned(zero_extend(0x1300610, 64)) == 19924496);
+ assert(unsigned(zero_extend(0x1300910, 64)) == 19925264);
+ assert(unsigned(zero_extend(0x1300914, 64)) == 19925268);
+ assert(unsigned(zero_extend(0x1300918, 64)) == 19925272);
+ assert(unsigned(zero_extend(0x13f8754, 64)) == 20940628);
+ assert(unsigned(zero_extend(0x13f8758, 64)) == 20940632);
+ assert(unsigned(zero_extend(0x13f875c, 64)) == 20940636);
+ assert(unsigned(zero_extend(0x13f88a4, 64)) == 20940964);
+ assert(unsigned(zero_extend(0x13f88a8, 64)) == 20940968);
+ assert(unsigned(zero_extend(0x13f88ac, 64)) == 20940972);
+ assert(unsigned(zero_extend(0x14, 64)) == 20);
+ assert(unsigned(zero_extend(0x140, 64)) == 320);
+ assert(unsigned(zero_extend(0x1400000, 64)) == 20971520);
+ assert(unsigned(zero_extend(0x1400004, 64)) == 20971524);
+ assert(unsigned(zero_extend(0x1400005, 64)) == 20971525);
+ assert(unsigned(zero_extend(0x1400006, 64)) == 20971526);
+ assert(unsigned(zero_extend(0x1400007, 64)) == 20971527);
+ assert(unsigned(zero_extend(0x1400008, 64)) == 20971528);
+ assert(unsigned(zero_extend(0x1400009, 64)) == 20971529);
+ assert(unsigned(zero_extend(0x140000a, 64)) == 20971530);
+ assert(unsigned(zero_extend(0x140000b, 64)) == 20971531);
+ assert(unsigned(zero_extend(0x140000c, 64)) == 20971532);
+ assert(unsigned(zero_extend(0x140000d, 64)) == 20971533);
+ assert(unsigned(zero_extend(0x140000e, 64)) == 20971534);
+ assert(unsigned(zero_extend(0x140000f, 64)) == 20971535);
+ assert(unsigned(zero_extend(0x1400010, 64)) == 20971536);
+ assert(unsigned(zero_extend(0x1400011, 64)) == 20971537);
+ assert(unsigned(zero_extend(0x1400014, 64)) == 20971540);
+ assert(unsigned(zero_extend(0x1400018, 64)) == 20971544);
+ assert(unsigned(zero_extend(0x140001c, 64)) == 20971548);
+ assert(unsigned(zero_extend(0x1400020, 64)) == 20971552);
+ assert(unsigned(zero_extend(0x1400024, 64)) == 20971556);
+ assert(unsigned(zero_extend(0x1400028, 64)) == 20971560);
+ assert(unsigned(zero_extend(0x140002c, 64)) == 20971564);
+ assert(unsigned(zero_extend(0x1400030, 64)) == 20971568);
+ assert(unsigned(zero_extend(0x1400038, 64)) == 20971576);
+ assert(unsigned(zero_extend(0x140003c, 64)) == 20971580);
+ assert(unsigned(zero_extend(0x1400044, 64)) == 20971588);
+ assert(unsigned(zero_extend(0x1400048, 64)) == 20971592);
+ assert(unsigned(zero_extend(0x140004c, 64)) == 20971596);
+ assert(unsigned(zero_extend(0x1400050, 64)) == 20971600);
+ assert(unsigned(zero_extend(0x1400054, 64)) == 20971604);
+ assert(unsigned(zero_extend(0x1400058, 64)) == 20971608);
+ assert(unsigned(zero_extend(0x140005c, 64)) == 20971612);
+ assert(unsigned(zero_extend(0x1400060, 64)) == 20971616);
+ assert(unsigned(zero_extend(0x1400064, 64)) == 20971620);
+ assert(unsigned(zero_extend(0x1400068, 64)) == 20971624);
+ assert(unsigned(zero_extend(0x1400070, 64)) == 20971632);
+ assert(unsigned(zero_extend(0x1400074, 64)) == 20971636);
+ assert(unsigned(zero_extend(0x1400080, 64)) == 20971648);
+ assert(unsigned(zero_extend(0x1400084, 64)) == 20971652);
+ assert(unsigned(zero_extend(0x1400088, 64)) == 20971656);
+ assert(unsigned(zero_extend(0x140008c, 64)) == 20971660);
+ assert(unsigned(zero_extend(0x1400090, 64)) == 20971664);
+ assert(unsigned(zero_extend(0x1400094, 64)) == 20971668);
+ assert(unsigned(zero_extend(0x1400098, 64)) == 20971672);
+ assert(unsigned(zero_extend(0x140009c, 64)) == 20971676);
+ assert(unsigned(zero_extend(0x14000a0, 64)) == 20971680);
+ assert(unsigned(zero_extend(0x14000a4, 64)) == 20971684);
+ assert(unsigned(zero_extend(0x14000a8, 64)) == 20971688);
+ assert(unsigned(zero_extend(0x14000ac, 64)) == 20971692);
+ assert(unsigned(zero_extend(0x14000b0, 64)) == 20971696);
+ assert(unsigned(zero_extend(0x14000b4, 64)) == 20971700);
+ assert(unsigned(zero_extend(0x14000b8, 64)) == 20971704);
+ assert(unsigned(zero_extend(0x14000bc, 64)) == 20971708);
+ assert(unsigned(zero_extend(0x14000c0, 64)) == 20971712);
+ assert(unsigned(zero_extend(0x14000c4, 64)) == 20971716);
+ assert(unsigned(zero_extend(0x14000c8, 64)) == 20971720);
+ assert(unsigned(zero_extend(0x14000cc, 64)) == 20971724);
+ assert(unsigned(zero_extend(0x14000d0, 64)) == 20971728);
+ assert(unsigned(zero_extend(0x14000d4, 64)) == 20971732);
+ assert(unsigned(zero_extend(0x14000d8, 64)) == 20971736);
+ assert(unsigned(zero_extend(0x14000dc, 64)) == 20971740);
+ assert(unsigned(zero_extend(0x14000e0, 64)) == 20971744);
+ assert(unsigned(zero_extend(0x14000e4, 64)) == 20971748);
+ assert(unsigned(zero_extend(0x14000e8, 64)) == 20971752);
+ assert(unsigned(zero_extend(0x14000ec, 64)) == 20971756);
+ assert(unsigned(zero_extend(0x14000f0, 64)) == 20971760);
+ assert(unsigned(zero_extend(0x14000f4, 64)) == 20971764);
+ assert(unsigned(zero_extend(0x14000f8, 64)) == 20971768);
+ assert(unsigned(zero_extend(0x1400100, 64)) == 20971776);
+ assert(unsigned(zero_extend(0x1400104, 64)) == 20971780);
+ assert(unsigned(zero_extend(0x1400108, 64)) == 20971784);
+ assert(unsigned(zero_extend(0x140010c, 64)) == 20971788);
+ assert(unsigned(zero_extend(0x1400110, 64)) == 20971792);
+ assert(unsigned(zero_extend(0x1400114, 64)) == 20971796);
+ assert(unsigned(zero_extend(0x1400118, 64)) == 20971800);
+ assert(unsigned(zero_extend(0x140011c, 64)) == 20971804);
+ assert(unsigned(zero_extend(0x1400120, 64)) == 20971808);
+ assert(unsigned(zero_extend(0x1400124, 64)) == 20971812);
+ assert(unsigned(zero_extend(0x1400128, 64)) == 20971816);
+ assert(unsigned(zero_extend(0x140012c, 64)) == 20971820);
+ assert(unsigned(zero_extend(0x1400130, 64)) == 20971824);
+ assert(unsigned(zero_extend(0x1400134, 64)) == 20971828);
+ assert(unsigned(zero_extend(0x1400138, 64)) == 20971832);
+ assert(unsigned(zero_extend(0x140013c, 64)) == 20971836);
+ assert(unsigned(zero_extend(0x1400140, 64)) == 20971840);
+ assert(unsigned(zero_extend(0x1400148, 64)) == 20971848);
+ assert(unsigned(zero_extend(0x140014c, 64)) == 20971852);
+ assert(unsigned(zero_extend(0x1400154, 64)) == 20971860);
+ assert(unsigned(zero_extend(0x1400158, 64)) == 20971864);
+ assert(unsigned(zero_extend(0x140015c, 64)) == 20971868);
+ assert(unsigned(zero_extend(0x1400160, 64)) == 20971872);
+ assert(unsigned(zero_extend(0x1400164, 64)) == 20971876);
+ assert(unsigned(zero_extend(0x1400168, 64)) == 20971880);
+ assert(unsigned(zero_extend(0x140016c, 64)) == 20971884);
+ assert(unsigned(zero_extend(0x1400170, 64)) == 20971888);
+ assert(unsigned(zero_extend(0x1400174, 64)) == 20971892);
+ assert(unsigned(zero_extend(0x1400178, 64)) == 20971896);
+ assert(unsigned(zero_extend(0x140017c, 64)) == 20971900);
+ assert(unsigned(zero_extend(0x1400180, 64)) == 20971904);
+ assert(unsigned(zero_extend(0x1400184, 64)) == 20971908);
+ assert(unsigned(zero_extend(0x1400188, 64)) == 20971912);
+ assert(unsigned(zero_extend(0x1400190, 64)) == 20971920);
+ assert(unsigned(zero_extend(0x1400194, 64)) == 20971924);
+ assert(unsigned(zero_extend(0x1400198, 64)) == 20971928);
+ assert(unsigned(zero_extend(0x140019c, 64)) == 20971932);
+ assert(unsigned(zero_extend(0x14001a0, 64)) == 20971936);
+ assert(unsigned(zero_extend(0x14001a4, 64)) == 20971940);
+ assert(unsigned(zero_extend(0x14001a8, 64)) == 20971944);
+ assert(unsigned(zero_extend(0x14001ac, 64)) == 20971948);
+ assert(unsigned(zero_extend(0x14001b0, 64)) == 20971952);
+ assert(unsigned(zero_extend(0x14001b4, 64)) == 20971956);
+ assert(unsigned(zero_extend(0x14001b8, 64)) == 20971960);
+ assert(unsigned(zero_extend(0x14001bc, 64)) == 20971964);
+ assert(unsigned(zero_extend(0x14001c0, 64)) == 20971968);
+ assert(unsigned(zero_extend(0x14001c4, 64)) == 20971972);
+ assert(unsigned(zero_extend(0x14001c8, 64)) == 20971976);
+ assert(unsigned(zero_extend(0x14001cc, 64)) == 20971980);
+ assert(unsigned(zero_extend(0x14001d0, 64)) == 20971984);
+ assert(unsigned(zero_extend(0x14001d8, 64)) == 20971992);
+ assert(unsigned(zero_extend(0x14001dc, 64)) == 20971996);
+ assert(unsigned(zero_extend(0x14001e4, 64)) == 20972004);
+ assert(unsigned(zero_extend(0x14001e8, 64)) == 20972008);
+ assert(unsigned(zero_extend(0x14001ec, 64)) == 20972012);
+ assert(unsigned(zero_extend(0x14001f0, 64)) == 20972016);
+ assert(unsigned(zero_extend(0x14001f4, 64)) == 20972020);
+ assert(unsigned(zero_extend(0x14001f8, 64)) == 20972024);
+ assert(unsigned(zero_extend(0x14001fc, 64)) == 20972028);
+ assert(unsigned(zero_extend(0x1400200, 64)) == 20972032);
+ assert(unsigned(zero_extend(0x1400204, 64)) == 20972036);
+ assert(unsigned(zero_extend(0x1400208, 64)) == 20972040);
+ assert(unsigned(zero_extend(0x140020c, 64)) == 20972044);
+ assert(unsigned(zero_extend(0x1400210, 64)) == 20972048);
+ assert(unsigned(zero_extend(0x1400214, 64)) == 20972052);
+ assert(unsigned(zero_extend(0x140021c, 64)) == 20972060);
+ assert(unsigned(zero_extend(0x1400220, 64)) == 20972064);
+ assert(unsigned(zero_extend(0x140022c, 64)) == 20972076);
+ assert(unsigned(zero_extend(0x1400230, 64)) == 20972080);
+ assert(unsigned(zero_extend(0x1400234, 64)) == 20972084);
+ assert(unsigned(zero_extend(0x1400238, 64)) == 20972088);
+ assert(unsigned(zero_extend(0x140023c, 64)) == 20972092);
+ assert(unsigned(zero_extend(0x1400240, 64)) == 20972096);
+ assert(unsigned(zero_extend(0x1400244, 64)) == 20972100);
+ assert(unsigned(zero_extend(0x1400248, 64)) == 20972104);
+ assert(unsigned(zero_extend(0x140024c, 64)) == 20972108);
+ assert(unsigned(zero_extend(0x1400250, 64)) == 20972112);
+ assert(unsigned(zero_extend(0x1400254, 64)) == 20972116);
+ assert(unsigned(zero_extend(0x1400258, 64)) == 20972120);
+ assert(unsigned(zero_extend(0x140025c, 64)) == 20972124);
+ assert(unsigned(zero_extend(0x1400260, 64)) == 20972128);
+ assert(unsigned(zero_extend(0x1400264, 64)) == 20972132);
+ assert(unsigned(zero_extend(0x1400268, 64)) == 20972136);
+ assert(unsigned(zero_extend(0x140026c, 64)) == 20972140);
+ assert(unsigned(zero_extend(0x1400270, 64)) == 20972144);
+ assert(unsigned(zero_extend(0x1400274, 64)) == 20972148);
+ assert(unsigned(zero_extend(0x1400278, 64)) == 20972152);
+ assert(unsigned(zero_extend(0x140027c, 64)) == 20972156);
+ assert(unsigned(zero_extend(0x1400280, 64)) == 20972160);
+ assert(unsigned(zero_extend(0x1400284, 64)) == 20972164);
+ assert(unsigned(zero_extend(0x1400288, 64)) == 20972168);
+ assert(unsigned(zero_extend(0x140028c, 64)) == 20972172);
+ assert(unsigned(zero_extend(0x1400290, 64)) == 20972176);
+ assert(unsigned(zero_extend(0x1400294, 64)) == 20972180);
+ assert(unsigned(zero_extend(0x1400298, 64)) == 20972184);
+ assert(unsigned(zero_extend(0x140029c, 64)) == 20972188);
+ assert(unsigned(zero_extend(0x14002a0, 64)) == 20972192);
+ assert(unsigned(zero_extend(0x14002a4, 64)) == 20972196);
+ assert(unsigned(zero_extend(0x14002a8, 64)) == 20972200);
+ assert(unsigned(zero_extend(0x14002ac, 64)) == 20972204);
+ assert(unsigned(zero_extend(0x14002b0, 64)) == 20972208);
+ assert(unsigned(zero_extend(0x14002b4, 64)) == 20972212);
+ assert(unsigned(zero_extend(0x14002b8, 64)) == 20972216);
+ assert(unsigned(zero_extend(0x14002bc, 64)) == 20972220);
+ assert(unsigned(zero_extend(0x14002c0, 64)) == 20972224);
+ assert(unsigned(zero_extend(0x14002c4, 64)) == 20972228);
+ assert(unsigned(zero_extend(0x14002c8, 64)) == 20972232);
+ assert(unsigned(zero_extend(0x14002cc, 64)) == 20972236);
+ assert(unsigned(zero_extend(0x14002d0, 64)) == 20972240);
+ assert(unsigned(zero_extend(0x14002d4, 64)) == 20972244);
+ assert(unsigned(zero_extend(0x14002d8, 64)) == 20972248);
+ assert(unsigned(zero_extend(0x14002dc, 64)) == 20972252);
+ assert(unsigned(zero_extend(0x14002e0, 64)) == 20972256);
+ assert(unsigned(zero_extend(0x14002e4, 64)) == 20972260);
+ assert(unsigned(zero_extend(0x14002e8, 64)) == 20972264);
+ assert(unsigned(zero_extend(0x14002ec, 64)) == 20972268);
+ assert(unsigned(zero_extend(0x14002f0, 64)) == 20972272);
+ assert(unsigned(zero_extend(0x14002f4, 64)) == 20972276);
+ assert(unsigned(zero_extend(0x14002f8, 64)) == 20972280);
+ assert(unsigned(zero_extend(0x14002fc, 64)) == 20972284);
+ assert(unsigned(zero_extend(0x1400300, 64)) == 20972288);
+ assert(unsigned(zero_extend(0x1400304, 64)) == 20972292);
+ assert(unsigned(zero_extend(0x1400308, 64)) == 20972296);
+ assert(unsigned(zero_extend(0x140030c, 64)) == 20972300);
+ assert(unsigned(zero_extend(0x1400310, 64)) == 20972304);
+ assert(unsigned(zero_extend(0x1400314, 64)) == 20972308);
+ assert(unsigned(zero_extend(0x1400318, 64)) == 20972312);
+ assert(unsigned(zero_extend(0x140031c, 64)) == 20972316);
+ assert(unsigned(zero_extend(0x1400320, 64)) == 20972320);
+ assert(unsigned(zero_extend(0x1400324, 64)) == 20972324);
+ assert(unsigned(zero_extend(0x1400328, 64)) == 20972328);
+ assert(unsigned(zero_extend(0x140032c, 64)) == 20972332);
+ assert(unsigned(zero_extend(0x1400330, 64)) == 20972336);
+ assert(unsigned(zero_extend(0x1400334, 64)) == 20972340);
+ assert(unsigned(zero_extend(0x1400338, 64)) == 20972344);
+ assert(unsigned(zero_extend(0x140033c, 64)) == 20972348);
+ assert(unsigned(zero_extend(0x1400340, 64)) == 20972352);
+ assert(unsigned(zero_extend(0x1400344, 64)) == 20972356);
+ assert(unsigned(zero_extend(0x1400348, 64)) == 20972360);
+ assert(unsigned(zero_extend(0x140034c, 64)) == 20972364);
+ assert(unsigned(zero_extend(0x1400350, 64)) == 20972368);
+ assert(unsigned(zero_extend(0x1400354, 64)) == 20972372);
+ assert(unsigned(zero_extend(0x1400358, 64)) == 20972376);
+ assert(unsigned(zero_extend(0x140035c, 64)) == 20972380);
+ assert(unsigned(zero_extend(0x1400360, 64)) == 20972384);
+ assert(unsigned(zero_extend(0x1400364, 64)) == 20972388);
+ assert(unsigned(zero_extend(0x1400368, 64)) == 20972392);
+ assert(unsigned(zero_extend(0x140036c, 64)) == 20972396);
+ assert(unsigned(zero_extend(0x1400370, 64)) == 20972400);
+ assert(unsigned(zero_extend(0x1400374, 64)) == 20972404);
+ assert(unsigned(zero_extend(0x1400378, 64)) == 20972408);
+ assert(unsigned(zero_extend(0x140037c, 64)) == 20972412);
+ assert(unsigned(zero_extend(0x1400380, 64)) == 20972416);
+ assert(unsigned(zero_extend(0x1400384, 64)) == 20972420);
+ assert(unsigned(zero_extend(0x1400388, 64)) == 20972424);
+ assert(unsigned(zero_extend(0x140038c, 64)) == 20972428);
+ assert(unsigned(zero_extend(0x1400390, 64)) == 20972432);
+ assert(unsigned(zero_extend(0x1400394, 64)) == 20972436);
+ assert(unsigned(zero_extend(0x1400398, 64)) == 20972440);
+ assert(unsigned(zero_extend(0x140039c, 64)) == 20972444);
+ assert(unsigned(zero_extend(0x14003a0, 64)) == 20972448);
+ assert(unsigned(zero_extend(0x14003a4, 64)) == 20972452);
+ assert(unsigned(zero_extend(0x14003a8, 64)) == 20972456);
+ assert(unsigned(zero_extend(0x14003ac, 64)) == 20972460);
+ assert(unsigned(zero_extend(0x14003b0, 64)) == 20972464);
+ assert(unsigned(zero_extend(0x14003b8, 64)) == 20972472);
+ assert(unsigned(zero_extend(0x14003bc, 64)) == 20972476);
+ assert(unsigned(zero_extend(0x14003c4, 64)) == 20972484);
+ assert(unsigned(zero_extend(0x14003c8, 64)) == 20972488);
+ assert(unsigned(zero_extend(0x14003cc, 64)) == 20972492);
+ assert(unsigned(zero_extend(0x14003d0, 64)) == 20972496);
+ assert(unsigned(zero_extend(0x14003d4, 64)) == 20972500);
+ assert(unsigned(zero_extend(0x14003d8, 64)) == 20972504);
+ assert(unsigned(zero_extend(0x14003dc, 64)) == 20972508);
+ assert(unsigned(zero_extend(0x14003e0, 64)) == 20972512);
+ assert(unsigned(zero_extend(0x14003e4, 64)) == 20972516);
+ assert(unsigned(zero_extend(0x14003e8, 64)) == 20972520);
+ assert(unsigned(zero_extend(0x14003ec, 64)) == 20972524);
+ assert(unsigned(zero_extend(0x14003f4, 64)) == 20972532);
+ assert(unsigned(zero_extend(0x14003f8, 64)) == 20972536);
+ assert(unsigned(zero_extend(0x1400404, 64)) == 20972548);
+ assert(unsigned(zero_extend(0x1400408, 64)) == 20972552);
+ assert(unsigned(zero_extend(0x140040c, 64)) == 20972556);
+ assert(unsigned(zero_extend(0x1400410, 64)) == 20972560);
+ assert(unsigned(zero_extend(0x1400414, 64)) == 20972564);
+ assert(unsigned(zero_extend(0x1400418, 64)) == 20972568);
+ assert(unsigned(zero_extend(0x140041c, 64)) == 20972572);
+ assert(unsigned(zero_extend(0x1400420, 64)) == 20972576);
+ assert(unsigned(zero_extend(0x1400424, 64)) == 20972580);
+ assert(unsigned(zero_extend(0x1400428, 64)) == 20972584);
+ assert(unsigned(zero_extend(0x140042c, 64)) == 20972588);
+ assert(unsigned(zero_extend(0x1400430, 64)) == 20972592);
+ assert(unsigned(zero_extend(0x1400434, 64)) == 20972596);
+ assert(unsigned(zero_extend(0x1400438, 64)) == 20972600);
+ assert(unsigned(zero_extend(0x140043c, 64)) == 20972604);
+ assert(unsigned(zero_extend(0x1400440, 64)) == 20972608);
+ assert(unsigned(zero_extend(0x1400444, 64)) == 20972612);
+ assert(unsigned(zero_extend(0x1400448, 64)) == 20972616);
+ assert(unsigned(zero_extend(0x140044c, 64)) == 20972620);
+ assert(unsigned(zero_extend(0x1400450, 64)) == 20972624);
+ assert(unsigned(zero_extend(0x1400454, 64)) == 20972628);
+ assert(unsigned(zero_extend(0x1400458, 64)) == 20972632);
+ assert(unsigned(zero_extend(0x140045c, 64)) == 20972636);
+ assert(unsigned(zero_extend(0x1400460, 64)) == 20972640);
+ assert(unsigned(zero_extend(0x1400464, 64)) == 20972644);
+ assert(unsigned(zero_extend(0x1400468, 64)) == 20972648);
+ assert(unsigned(zero_extend(0x140046c, 64)) == 20972652);
+ assert(unsigned(zero_extend(0x1400470, 64)) == 20972656);
+ assert(unsigned(zero_extend(0x1400474, 64)) == 20972660);
+ assert(unsigned(zero_extend(0x1400478, 64)) == 20972664);
+ assert(unsigned(zero_extend(0x140047c, 64)) == 20972668);
+ assert(unsigned(zero_extend(0x1400480, 64)) == 20972672);
+ assert(unsigned(zero_extend(0x1400484, 64)) == 20972676);
+ assert(unsigned(zero_extend(0x1400488, 64)) == 20972680);
+ assert(unsigned(zero_extend(0x140048c, 64)) == 20972684);
+ assert(unsigned(zero_extend(0x1400490, 64)) == 20972688);
+ assert(unsigned(zero_extend(0x1400494, 64)) == 20972692);
+ assert(unsigned(zero_extend(0x1400498, 64)) == 20972696);
+ assert(unsigned(zero_extend(0x140049c, 64)) == 20972700);
+ assert(unsigned(zero_extend(0x14004a0, 64)) == 20972704);
+ assert(unsigned(zero_extend(0x14004a4, 64)) == 20972708);
+ assert(unsigned(zero_extend(0x14004a8, 64)) == 20972712);
+ assert(unsigned(zero_extend(0x14004ac, 64)) == 20972716);
+ assert(unsigned(zero_extend(0x14004b0, 64)) == 20972720);
+ assert(unsigned(zero_extend(0x14004b4, 64)) == 20972724);
+ assert(unsigned(zero_extend(0x14004b8, 64)) == 20972728);
+ assert(unsigned(zero_extend(0x14004bc, 64)) == 20972732);
+ assert(unsigned(zero_extend(0x14004c0, 64)) == 20972736);
+ assert(unsigned(zero_extend(0x14004c4, 64)) == 20972740);
+ assert(unsigned(zero_extend(0x14004c8, 64)) == 20972744);
+ assert(unsigned(zero_extend(0x14004cc, 64)) == 20972748);
+ assert(unsigned(zero_extend(0x14004d0, 64)) == 20972752);
+ assert(unsigned(zero_extend(0x14004d4, 64)) == 20972756);
+ assert(unsigned(zero_extend(0x14004d8, 64)) == 20972760);
+ assert(unsigned(zero_extend(0x14004dc, 64)) == 20972764);
+ assert(unsigned(zero_extend(0x14004e0, 64)) == 20972768);
+ assert(unsigned(zero_extend(0x14004e4, 64)) == 20972772);
+ assert(unsigned(zero_extend(0x14004e8, 64)) == 20972776);
+ assert(unsigned(zero_extend(0x14004ec, 64)) == 20972780);
+ assert(unsigned(zero_extend(0x14004f0, 64)) == 20972784);
+ assert(unsigned(zero_extend(0x14004f4, 64)) == 20972788);
+ assert(unsigned(zero_extend(0x14004f8, 64)) == 20972792);
+ assert(unsigned(zero_extend(0x14004fc, 64)) == 20972796);
+ assert(unsigned(zero_extend(0x1400500, 64)) == 20972800);
+ assert(unsigned(zero_extend(0x1400508, 64)) == 20972808);
+ assert(unsigned(zero_extend(0x140050c, 64)) == 20972812);
+ assert(unsigned(zero_extend(0x1400514, 64)) == 20972820);
+ assert(unsigned(zero_extend(0x1400518, 64)) == 20972824);
+ assert(unsigned(zero_extend(0x140051c, 64)) == 20972828);
+ assert(unsigned(zero_extend(0x1400520, 64)) == 20972832);
+ assert(unsigned(zero_extend(0x1400524, 64)) == 20972836);
+ assert(unsigned(zero_extend(0x1400528, 64)) == 20972840);
+ assert(unsigned(zero_extend(0x140052c, 64)) == 20972844);
+ assert(unsigned(zero_extend(0x1400530, 64)) == 20972848);
+ assert(unsigned(zero_extend(0x1400534, 64)) == 20972852);
+ assert(unsigned(zero_extend(0x1400538, 64)) == 20972856);
+ assert(unsigned(zero_extend(0x140053c, 64)) == 20972860);
+ assert(unsigned(zero_extend(0x1400544, 64)) == 20972868);
+ assert(unsigned(zero_extend(0x1400548, 64)) == 20972872);
+ assert(unsigned(zero_extend(0x1400554, 64)) == 20972884);
+ assert(unsigned(zero_extend(0x1400558, 64)) == 20972888);
+ assert(unsigned(zero_extend(0x140055c, 64)) == 20972892);
+ assert(unsigned(zero_extend(0x1400560, 64)) == 20972896);
+ assert(unsigned(zero_extend(0x1400564, 64)) == 20972900);
+ assert(unsigned(zero_extend(0x1400568, 64)) == 20972904);
+ assert(unsigned(zero_extend(0x140056c, 64)) == 20972908);
+ assert(unsigned(zero_extend(0x1400570, 64)) == 20972912);
+ assert(unsigned(zero_extend(0x1400574, 64)) == 20972916);
+ assert(unsigned(zero_extend(0x1400578, 64)) == 20972920);
+ assert(unsigned(zero_extend(0x140057c, 64)) == 20972924);
+ assert(unsigned(zero_extend(0x1400580, 64)) == 20972928);
+ assert(unsigned(zero_extend(0x1400584, 64)) == 20972932);
+ assert(unsigned(zero_extend(0x1400588, 64)) == 20972936);
+ assert(unsigned(zero_extend(0x140058c, 64)) == 20972940);
+ assert(unsigned(zero_extend(0x1400590, 64)) == 20972944);
+ assert(unsigned(zero_extend(0x1400594, 64)) == 20972948);
+ assert(unsigned(zero_extend(0x1400598, 64)) == 20972952);
+ assert(unsigned(zero_extend(0x140059c, 64)) == 20972956);
+ assert(unsigned(zero_extend(0x14005a0, 64)) == 20972960);
+ assert(unsigned(zero_extend(0x14005a4, 64)) == 20972964);
+ assert(unsigned(zero_extend(0x14005a8, 64)) == 20972968);
+ assert(unsigned(zero_extend(0x14005ac, 64)) == 20972972);
+ assert(unsigned(zero_extend(0x14005b0, 64)) == 20972976);
+ assert(unsigned(zero_extend(0x14005b4, 64)) == 20972980);
+ assert(unsigned(zero_extend(0x14005b8, 64)) == 20972984);
+ assert(unsigned(zero_extend(0x14005bc, 64)) == 20972988);
+ assert(unsigned(zero_extend(0x14005c0, 64)) == 20972992);
+ assert(unsigned(zero_extend(0x14005c4, 64)) == 20972996);
+ assert(unsigned(zero_extend(0x14005c8, 64)) == 20973000);
+ assert(unsigned(zero_extend(0x14005cc, 64)) == 20973004);
+ assert(unsigned(zero_extend(0x14005d0, 64)) == 20973008);
+ assert(unsigned(zero_extend(0x14005d4, 64)) == 20973012);
+ assert(unsigned(zero_extend(0x14005d8, 64)) == 20973016);
+ assert(unsigned(zero_extend(0x14005dc, 64)) == 20973020);
+ assert(unsigned(zero_extend(0x14005e0, 64)) == 20973024);
+ assert(unsigned(zero_extend(0x14005e4, 64)) == 20973028);
+ assert(unsigned(zero_extend(0x14005e8, 64)) == 20973032);
+ assert(unsigned(zero_extend(0x14005ec, 64)) == 20973036);
+ assert(unsigned(zero_extend(0x14005f0, 64)) == 20973040);
+ assert(unsigned(zero_extend(0x14005f4, 64)) == 20973044);
+ assert(unsigned(zero_extend(0x14005f8, 64)) == 20973048);
+ assert(unsigned(zero_extend(0x14005fc, 64)) == 20973052);
+ assert(unsigned(zero_extend(0x1400600, 64)) == 20973056);
+ assert(unsigned(zero_extend(0x1400604, 64)) == 20973060);
+ assert(unsigned(zero_extend(0x1400608, 64)) == 20973064);
+ assert(unsigned(zero_extend(0x140060c, 64)) == 20973068);
+ assert(unsigned(zero_extend(0x1400610, 64)) == 20973072);
+ assert(unsigned(zero_extend(0x1400614, 64)) == 20973076);
+ assert(unsigned(zero_extend(0x1400618, 64)) == 20973080);
+ assert(unsigned(zero_extend(0x140061c, 64)) == 20973084);
+ assert(unsigned(zero_extend(0x1400620, 64)) == 20973088);
+ assert(unsigned(zero_extend(0x1400624, 64)) == 20973092);
+ assert(unsigned(zero_extend(0x1400628, 64)) == 20973096);
+ assert(unsigned(zero_extend(0x140062c, 64)) == 20973100);
+ assert(unsigned(zero_extend(0x1400630, 64)) == 20973104);
+ assert(unsigned(zero_extend(0x1400634, 64)) == 20973108);
+ assert(unsigned(zero_extend(0x1400638, 64)) == 20973112);
+ assert(unsigned(zero_extend(0x140063c, 64)) == 20973116);
+ assert(unsigned(zero_extend(0x1400640, 64)) == 20973120);
+ assert(unsigned(zero_extend(0x1400644, 64)) == 20973124);
+ assert(unsigned(zero_extend(0x1400648, 64)) == 20973128);
+ assert(unsigned(zero_extend(0x140064c, 64)) == 20973132);
+ assert(unsigned(zero_extend(0x1400650, 64)) == 20973136);
+ assert(unsigned(zero_extend(0x1400658, 64)) == 20973144);
+ assert(unsigned(zero_extend(0x140065c, 64)) == 20973148);
+ assert(unsigned(zero_extend(0x1400664, 64)) == 20973156);
+ assert(unsigned(zero_extend(0x1400668, 64)) == 20973160);
+ assert(unsigned(zero_extend(0x140066c, 64)) == 20973164);
+ assert(unsigned(zero_extend(0x1400670, 64)) == 20973168);
+ assert(unsigned(zero_extend(0x1400674, 64)) == 20973172);
+ assert(unsigned(zero_extend(0x1400678, 64)) == 20973176);
+ assert(unsigned(zero_extend(0x140067c, 64)) == 20973180);
+ assert(unsigned(zero_extend(0x1400680, 64)) == 20973184);
+ assert(unsigned(zero_extend(0x1400684, 64)) == 20973188);
+ assert(unsigned(zero_extend(0x1400688, 64)) == 20973192);
+ assert(unsigned(zero_extend(0x140068c, 64)) == 20973196);
+ assert(unsigned(zero_extend(0x1400694, 64)) == 20973204);
+ assert(unsigned(zero_extend(0x1400698, 64)) == 20973208);
+ assert(unsigned(zero_extend(0x14006a4, 64)) == 20973220);
+ assert(unsigned(zero_extend(0x14006a8, 64)) == 20973224);
+ assert(unsigned(zero_extend(0x14006ac, 64)) == 20973228);
+ assert(unsigned(zero_extend(0x14006b0, 64)) == 20973232);
+ assert(unsigned(zero_extend(0x14006b4, 64)) == 20973236);
+ assert(unsigned(zero_extend(0x14006b8, 64)) == 20973240);
+ assert(unsigned(zero_extend(0x14006bc, 64)) == 20973244);
+ assert(unsigned(zero_extend(0x14006c0, 64)) == 20973248);
+ assert(unsigned(zero_extend(0x14006c4, 64)) == 20973252);
+ assert(unsigned(zero_extend(0x14006c8, 64)) == 20973256);
+ assert(unsigned(zero_extend(0x14006cc, 64)) == 20973260);
+ assert(unsigned(zero_extend(0x14006d0, 64)) == 20973264);
+ assert(unsigned(zero_extend(0x14006d4, 64)) == 20973268);
+ assert(unsigned(zero_extend(0x14006d8, 64)) == 20973272);
+ assert(unsigned(zero_extend(0x14006dc, 64)) == 20973276);
+ assert(unsigned(zero_extend(0x14006e0, 64)) == 20973280);
+ assert(unsigned(zero_extend(0x14006e4, 64)) == 20973284);
+ assert(unsigned(zero_extend(0x14006e8, 64)) == 20973288);
+ assert(unsigned(zero_extend(0x14006ec, 64)) == 20973292);
+ assert(unsigned(zero_extend(0x14006f0, 64)) == 20973296);
+ assert(unsigned(zero_extend(0x14006f4, 64)) == 20973300);
+ assert(unsigned(zero_extend(0x14006f8, 64)) == 20973304);
+ assert(unsigned(zero_extend(0x14006fc, 64)) == 20973308);
+ assert(unsigned(zero_extend(0x1400700, 64)) == 20973312);
+ assert(unsigned(zero_extend(0x1400704, 64)) == 20973316);
+ assert(unsigned(zero_extend(0x1400708, 64)) == 20973320);
+ assert(unsigned(zero_extend(0x140070c, 64)) == 20973324);
+ assert(unsigned(zero_extend(0x1400710, 64)) == 20973328);
+ assert(unsigned(zero_extend(0x1400714, 64)) == 20973332);
+ assert(unsigned(zero_extend(0x1400724, 64)) == 20973348);
+ assert(unsigned(zero_extend(0x1400728, 64)) == 20973352);
+ assert(unsigned(zero_extend(0x140072c, 64)) == 20973356);
+ assert(unsigned(zero_extend(0x1400730, 64)) == 20973360);
+ assert(unsigned(zero_extend(0x1400734, 64)) == 20973364);
+ assert(unsigned(zero_extend(0x1400738, 64)) == 20973368);
+ assert(unsigned(zero_extend(0x140073c, 64)) == 20973372);
+ assert(unsigned(zero_extend(0x1400740, 64)) == 20973376);
+ assert(unsigned(zero_extend(0x1400744, 64)) == 20973380);
+ assert(unsigned(zero_extend(0x1400748, 64)) == 20973384);
+ assert(unsigned(zero_extend(0x140074c, 64)) == 20973388);
+ assert(unsigned(zero_extend(0x1400750, 64)) == 20973392);
+ assert(unsigned(zero_extend(0x1400754, 64)) == 20973396);
+ assert(unsigned(zero_extend(0x1400758, 64)) == 20973400);
+ assert(unsigned(zero_extend(0x140075c, 64)) == 20973404);
+ assert(unsigned(zero_extend(0x1400760, 64)) == 20973408);
+ assert(unsigned(zero_extend(0x1400764, 64)) == 20973412);
+ assert(unsigned(zero_extend(0x1400768, 64)) == 20973416);
+ assert(unsigned(zero_extend(0x140076c, 64)) == 20973420);
+ assert(unsigned(zero_extend(0x1400770, 64)) == 20973424);
+ assert(unsigned(zero_extend(0x1400774, 64)) == 20973428);
+ assert(unsigned(zero_extend(0x1400778, 64)) == 20973432);
+ assert(unsigned(zero_extend(0x140077c, 64)) == 20973436);
+ assert(unsigned(zero_extend(0x1400780, 64)) == 20973440);
+ assert(unsigned(zero_extend(0x1400784, 64)) == 20973444);
+ assert(unsigned(zero_extend(0x1400788, 64)) == 20973448);
+ assert(unsigned(zero_extend(0x140078c, 64)) == 20973452);
+ assert(unsigned(zero_extend(0x1400790, 64)) == 20973456);
+ assert(unsigned(zero_extend(0x1400794, 64)) == 20973460);
+ assert(unsigned(zero_extend(0x1400798, 64)) == 20973464);
+ assert(unsigned(zero_extend(0x140079c, 64)) == 20973468);
+ assert(unsigned(zero_extend(0x14007a4, 64)) == 20973476);
+ assert(unsigned(zero_extend(0x14007a8, 64)) == 20973480);
+ assert(unsigned(zero_extend(0x14007b0, 64)) == 20973488);
+ assert(unsigned(zero_extend(0x14007b4, 64)) == 20973492);
+ assert(unsigned(zero_extend(0x14007b8, 64)) == 20973496);
+ assert(unsigned(zero_extend(0x14007bc, 64)) == 20973500);
+ assert(unsigned(zero_extend(0x14007c0, 64)) == 20973504);
+ assert(unsigned(zero_extend(0x14007c4, 64)) == 20973508);
+ assert(unsigned(zero_extend(0x14007c8, 64)) == 20973512);
+ assert(unsigned(zero_extend(0x14007cc, 64)) == 20973516);
+ assert(unsigned(zero_extend(0x14007d0, 64)) == 20973520);
+ assert(unsigned(zero_extend(0x14007d4, 64)) == 20973524);
+ assert(unsigned(zero_extend(0x14007d8, 64)) == 20973528);
+ assert(unsigned(zero_extend(0x14007e0, 64)) == 20973536);
+ assert(unsigned(zero_extend(0x14007e4, 64)) == 20973540);
+ assert(unsigned(zero_extend(0x14007f0, 64)) == 20973552);
+ assert(unsigned(zero_extend(0x14007f4, 64)) == 20973556);
+ assert(unsigned(zero_extend(0x14007f8, 64)) == 20973560);
+ assert(unsigned(zero_extend(0x14007fc, 64)) == 20973564);
+ assert(unsigned(zero_extend(0x1400800, 64)) == 20973568);
+ assert(unsigned(zero_extend(0x1400804, 64)) == 20973572);
+ assert(unsigned(zero_extend(0x1400808, 64)) == 20973576);
+ assert(unsigned(zero_extend(0x140080c, 64)) == 20973580);
+ assert(unsigned(zero_extend(0x1400810, 64)) == 20973584);
+ assert(unsigned(zero_extend(0x1400814, 64)) == 20973588);
+ assert(unsigned(zero_extend(0x1400818, 64)) == 20973592);
+ assert(unsigned(zero_extend(0x140081c, 64)) == 20973596);
+ assert(unsigned(zero_extend(0x1400820, 64)) == 20973600);
+ assert(unsigned(zero_extend(0x1400824, 64)) == 20973604);
+ assert(unsigned(zero_extend(0x1400828, 64)) == 20973608);
+ assert(unsigned(zero_extend(0x140082c, 64)) == 20973612);
+ assert(unsigned(zero_extend(0x1400830, 64)) == 20973616);
+ assert(unsigned(zero_extend(0x1400834, 64)) == 20973620);
+ assert(unsigned(zero_extend(0x1400838, 64)) == 20973624);
+ assert(unsigned(zero_extend(0x140083c, 64)) == 20973628);
+ assert(unsigned(zero_extend(0x1400840, 64)) == 20973632);
+ assert(unsigned(zero_extend(0x1400844, 64)) == 20973636);
+ assert(unsigned(zero_extend(0x1400848, 64)) == 20973640);
+ assert(unsigned(zero_extend(0x140084c, 64)) == 20973644);
+ assert(unsigned(zero_extend(0x1400850, 64)) == 20973648);
+ assert(unsigned(zero_extend(0x1400854, 64)) == 20973652);
+ assert(unsigned(zero_extend(0x1400858, 64)) == 20973656);
+ assert(unsigned(zero_extend(0x140085c, 64)) == 20973660);
+ assert(unsigned(zero_extend(0x1400860, 64)) == 20973664);
+ assert(unsigned(zero_extend(0x1400864, 64)) == 20973668);
+ assert(unsigned(zero_extend(0x1400868, 64)) == 20973672);
+ assert(unsigned(zero_extend(0x140086c, 64)) == 20973676);
+ assert(unsigned(zero_extend(0x1400870, 64)) == 20973680);
+ assert(unsigned(zero_extend(0x1400874, 64)) == 20973684);
+ assert(unsigned(zero_extend(0x1400878, 64)) == 20973688);
+ assert(unsigned(zero_extend(0x140087c, 64)) == 20973692);
+ assert(unsigned(zero_extend(0x1400880, 64)) == 20973696);
+ assert(unsigned(zero_extend(0x1400884, 64)) == 20973700);
+ assert(unsigned(zero_extend(0x1400888, 64)) == 20973704);
+ assert(unsigned(zero_extend(0x140088c, 64)) == 20973708);
+ assert(unsigned(zero_extend(0x1400890, 64)) == 20973712);
+ assert(unsigned(zero_extend(0x1400894, 64)) == 20973716);
+ assert(unsigned(zero_extend(0x1400898, 64)) == 20973720);
+ assert(unsigned(zero_extend(0x140089c, 64)) == 20973724);
+ assert(unsigned(zero_extend(0x14008a0, 64)) == 20973728);
+ assert(unsigned(zero_extend(0x14008a4, 64)) == 20973732);
+ assert(unsigned(zero_extend(0x14008a8, 64)) == 20973736);
+ assert(unsigned(zero_extend(0x14008ac, 64)) == 20973740);
+ assert(unsigned(zero_extend(0x14008b0, 64)) == 20973744);
+ assert(unsigned(zero_extend(0x14008b4, 64)) == 20973748);
+ assert(unsigned(zero_extend(0x14008b8, 64)) == 20973752);
+ assert(unsigned(zero_extend(0x14008bc, 64)) == 20973756);
+ assert(unsigned(zero_extend(0x14008c0, 64)) == 20973760);
+ assert(unsigned(zero_extend(0x14008c4, 64)) == 20973764);
+ assert(unsigned(zero_extend(0x14008c8, 64)) == 20973768);
+ assert(unsigned(zero_extend(0x14008cc, 64)) == 20973772);
+ assert(unsigned(zero_extend(0x14008d0, 64)) == 20973776);
+ assert(unsigned(zero_extend(0x14008d4, 64)) == 20973780);
+ assert(unsigned(zero_extend(0x14008d8, 64)) == 20973784);
+ assert(unsigned(zero_extend(0x14008dc, 64)) == 20973788);
+ assert(unsigned(zero_extend(0x14008e0, 64)) == 20973792);
+ assert(unsigned(zero_extend(0x14008e4, 64)) == 20973796);
+ assert(unsigned(zero_extend(0x14008e8, 64)) == 20973800);
+ assert(unsigned(zero_extend(0x14008ec, 64)) == 20973804);
+ assert(unsigned(zero_extend(0x14008f0, 64)) == 20973808);
+ assert(unsigned(zero_extend(0x14008f4, 64)) == 20973812);
+ assert(unsigned(zero_extend(0x14008f8, 64)) == 20973816);
+ assert(unsigned(zero_extend(0x14008fc, 64)) == 20973820);
+ assert(unsigned(zero_extend(0x1400900, 64)) == 20973824);
+ assert(unsigned(zero_extend(0x1400904, 64)) == 20973828);
+ assert(unsigned(zero_extend(0x1400908, 64)) == 20973832);
+ assert(unsigned(zero_extend(0x140090c, 64)) == 20973836);
+ assert(unsigned(zero_extend(0x1400910, 64)) == 20973840);
+ assert(unsigned(zero_extend(0x1400914, 64)) == 20973844);
+ assert(unsigned(zero_extend(0x1400918, 64)) == 20973848);
+ assert(unsigned(zero_extend(0x140091c, 64)) == 20973852);
+ assert(unsigned(zero_extend(0x1400920, 64)) == 20973856);
+ assert(unsigned(zero_extend(0x1400924, 64)) == 20973860);
+ assert(unsigned(zero_extend(0x1400928, 64)) == 20973864);
+ assert(unsigned(zero_extend(0x140092c, 64)) == 20973868);
+ assert(unsigned(zero_extend(0x1400930, 64)) == 20973872);
+ assert(unsigned(zero_extend(0x14086f0, 64)) == 21006064);
+ assert(unsigned(zero_extend(0x14086f4, 64)) == 21006068);
+ assert(unsigned(zero_extend(0x14086f8, 64)) == 21006072);
+ assert(unsigned(zero_extend(0x140883c, 64)) == 21006396);
+ assert(unsigned(zero_extend(0x1408840, 64)) == 21006400);
+ assert(unsigned(zero_extend(0x1408844, 64)) == 21006404);
+ assert(unsigned(zero_extend(0x14400, 64)) == 82944);
+ assert(unsigned(zero_extend(0x148, 64)) == 328);
+ assert(unsigned(zero_extend(0x14ab4, 64)) == 84660);
+ assert(unsigned(zero_extend(0x14ab8, 64)) == 84664);
+ assert(unsigned(zero_extend(0x14abc, 64)) == 84668);
+ assert(unsigned(zero_extend(0x14ac0, 64)) == 84672);
+ assert(unsigned(zero_extend(0x14ac4, 64)) == 84676);
+ assert(unsigned(zero_extend(0x14ac8, 64)) == 84680);
+ assert(unsigned(zero_extend(0x14ad4, 64)) == 84692);
+ assert(unsigned(zero_extend(0x14ad8, 64)) == 84696);
+ assert(unsigned(zero_extend(0x14adc, 64)) == 84700);
+ assert(unsigned(zero_extend(0x14ae0, 64)) == 84704);
+ assert(unsigned(zero_extend(0x14ae4, 64)) == 84708);
+ assert(unsigned(zero_extend(0x14ae8, 64)) == 84712);
+ assert(unsigned(zero_extend(0x14aec, 64)) == 84716);
+ assert(unsigned(zero_extend(0x14af0, 64)) == 84720);
+ assert(unsigned(zero_extend(0x14af4, 64)) == 84724);
+ assert(unsigned(zero_extend(0x14af8, 64)) == 84728);
+ assert(unsigned(zero_extend(0x14afc, 64)) == 84732);
+ assert(unsigned(zero_extend(0x14b00, 64)) == 84736);
+ assert(unsigned(zero_extend(0x14b04, 64)) == 84740);
+ assert(unsigned(zero_extend(0x14b88, 64)) == 84872);
+ assert(unsigned(zero_extend(0x14b8c, 64)) == 84876);
+ assert(unsigned(zero_extend(0x14b90, 64)) == 84880);
+ assert(unsigned(zero_extend(0x14b94, 64)) == 84884);
+ assert(unsigned(zero_extend(0x14b98, 64)) == 84888);
+ assert(unsigned(zero_extend(0x14b9c, 64)) == 84892);
+ assert(unsigned(zero_extend(0x14ba0, 64)) == 84896);
+ assert(unsigned(zero_extend(0x14ba4, 64)) == 84900);
+ assert(unsigned(zero_extend(0x14ba8, 64)) == 84904);
+ assert(unsigned(zero_extend(0x14bac, 64)) == 84908);
+ assert(unsigned(zero_extend(0x14bb0, 64)) == 84912);
+ assert(unsigned(zero_extend(0x14bb4, 64)) == 84916);
+ assert(unsigned(zero_extend(0x14bb8, 64)) == 84920);
+ assert(unsigned(zero_extend(0x14bbc, 64)) == 84924);
+ assert(unsigned(zero_extend(0x14d64, 64)) == 85348);
+ assert(unsigned(zero_extend(0x14d68, 64)) == 85352);
+ assert(unsigned(zero_extend(0x14d6c, 64)) == 85356);
+ assert(unsigned(zero_extend(0x14d70, 64)) == 85360);
+ assert(unsigned(zero_extend(0x14d74, 64)) == 85364);
+ assert(unsigned(zero_extend(0x14d78, 64)) == 85368);
+ assert(unsigned(zero_extend(0x14d7c, 64)) == 85372);
+ assert(unsigned(zero_extend(0x14d80, 64)) == 85376);
+ assert(unsigned(zero_extend(0x14d84, 64)) == 85380);
+ assert(unsigned(zero_extend(0x14d88, 64)) == 85384);
+ assert(unsigned(zero_extend(0x14d8c, 64)) == 85388);
+ assert(unsigned(zero_extend(0x14d90, 64)) == 85392);
+ assert(unsigned(zero_extend(0x14d94, 64)) == 85396);
+ assert(unsigned(zero_extend(0x14d98, 64)) == 85400);
+ assert(unsigned(zero_extend(0x14d9c, 64)) == 85404);
+ assert(unsigned(zero_extend(0x14da0, 64)) == 85408);
+ assert(unsigned(zero_extend(0x14da4, 64)) == 85412);
+ assert(unsigned(zero_extend(0x14da8, 64)) == 85416);
+ assert(unsigned(zero_extend(0x14dac, 64)) == 85420);
+ assert(unsigned(zero_extend(0x14db0, 64)) == 85424);
+ assert(unsigned(zero_extend(0x14db4, 64)) == 85428);
+ assert(unsigned(zero_extend(0x14db8, 64)) == 85432);
+ assert(unsigned(zero_extend(0x14dbc, 64)) == 85436);
+ assert(unsigned(zero_extend(0x14dc0, 64)) == 85440);
+ assert(unsigned(zero_extend(0x14dc4, 64)) == 85444);
+ assert(unsigned(zero_extend(0x14dc8, 64)) == 85448);
+ assert(unsigned(zero_extend(0x14dcc, 64)) == 85452);
+ assert(unsigned(zero_extend(0x14dd0, 64)) == 85456);
+ assert(unsigned(zero_extend(0x14dd4, 64)) == 85460);
+ assert(unsigned(zero_extend(0x14dd8, 64)) == 85464);
+ assert(unsigned(zero_extend(0x14ddc, 64)) == 85468);
+ assert(unsigned(zero_extend(0x14de0, 64)) == 85472);
+ assert(unsigned(zero_extend(0x14de4, 64)) == 85476);
+ assert(unsigned(zero_extend(0x14de8, 64)) == 85480);
+ assert(unsigned(zero_extend(0x14dec, 64)) == 85484);
+ assert(unsigned(zero_extend(0x14df0, 64)) == 85488);
+ assert(unsigned(zero_extend(0x14df4, 64)) == 85492);
+ assert(unsigned(zero_extend(0x14df8, 64)) == 85496);
+ assert(unsigned(zero_extend(0x14dfc, 64)) == 85500);
+ assert(unsigned(zero_extend(0x14e00, 64)) == 85504);
+ assert(unsigned(zero_extend(0x14e04, 64)) == 85508);
+ assert(unsigned(zero_extend(0x14e08, 64)) == 85512);
+ assert(unsigned(zero_extend(0x15, 64)) == 21);
+ assert(unsigned(zero_extend(0x150, 64)) == 336);
+ assert(unsigned(zero_extend(0x15002f8, 64)) == 22020856);
+ assert(unsigned(zero_extend(0x15002fc, 64)) == 22020860);
+ assert(unsigned(zero_extend(0x1500300, 64)) == 22020864);
+ assert(unsigned(zero_extend(0x1500450, 64)) == 22021200);
+ assert(unsigned(zero_extend(0x1500454, 64)) == 22021204);
+ assert(unsigned(zero_extend(0x1500458, 64)) == 22021208);
+ assert(unsigned(zero_extend(0x15005a0, 64)) == 22021536);
+ assert(unsigned(zero_extend(0x15005a4, 64)) == 22021540);
+ assert(unsigned(zero_extend(0x15005a8, 64)) == 22021544);
+ assert(unsigned(zero_extend(0x16, 64)) == 22);
+ assert(unsigned(zero_extend(0x160, 64)) == 352);
+ assert(unsigned(zero_extend(0x16240, 64)) == 90688);
+ assert(unsigned(zero_extend(0x16244, 64)) == 90692);
+ assert(unsigned(zero_extend(0x16310, 64)) == 90896);
+ assert(unsigned(zero_extend(0x16314, 64)) == 90900);
+ assert(unsigned(zero_extend(0x16318, 64)) == 90904);
+ assert(unsigned(zero_extend(0x1631c, 64)) == 90908);
+ assert(unsigned(zero_extend(0x16320, 64)) == 90912);
+ assert(unsigned(zero_extend(0x16324, 64)) == 90916);
+ assert(unsigned(zero_extend(0x16328, 64)) == 90920);
+ assert(unsigned(zero_extend(0x1632c, 64)) == 90924);
+ assert(unsigned(zero_extend(0x16330, 64)) == 90928);
+ assert(unsigned(zero_extend(0x16334, 64)) == 90932);
+ assert(unsigned(zero_extend(0x16368, 64)) == 90984);
+ assert(unsigned(zero_extend(0x1636c, 64)) == 90988);
+ assert(unsigned(zero_extend(0x16384, 64)) == 91012);
+ assert(unsigned(zero_extend(0x16388, 64)) == 91016);
+ assert(unsigned(zero_extend(0x163c0, 64)) == 91072);
+ assert(unsigned(zero_extend(0x163c4, 64)) == 91076);
+ assert(unsigned(zero_extend(0x163d0, 64)) == 91088);
+ assert(unsigned(zero_extend(0x163d4, 64)) == 91092);
+ assert(unsigned(zero_extend(0x163e0, 64)) == 91104);
+ assert(unsigned(zero_extend(0x163e4, 64)) == 91108);
+ assert(unsigned(zero_extend(0x163f0, 64)) == 91120);
+ assert(unsigned(zero_extend(0x163f4, 64)) == 91124);
+ assert(unsigned(zero_extend(0x163f8, 64)) == 91128);
+ assert(unsigned(zero_extend(0x163fc, 64)) == 91132);
+ assert(unsigned(zero_extend(0x16400, 64)) == 91136);
+ assert(unsigned(zero_extend(0x16404, 64)) == 91140);
+ assert(unsigned(zero_extend(0x16408, 64)) == 91144);
+ assert(unsigned(zero_extend(0x1640c, 64)) == 91148);
+ assert(unsigned(zero_extend(0x16420, 64)) == 91168);
+ assert(unsigned(zero_extend(0x16424, 64)) == 91172);
+ assert(unsigned(zero_extend(0x16428, 64)) == 91176);
+ assert(unsigned(zero_extend(0x1642c, 64)) == 91180);
+ assert(unsigned(zero_extend(0x1644c, 64)) == 91212);
+ assert(unsigned(zero_extend(0x16450, 64)) == 91216);
+ assert(unsigned(zero_extend(0x1645c, 64)) == 91228);
+ assert(unsigned(zero_extend(0x16460, 64)) == 91232);
+ assert(unsigned(zero_extend(0x16464, 64)) == 91236);
+ assert(unsigned(zero_extend(0x16474, 64)) == 91252);
+ assert(unsigned(zero_extend(0x16478, 64)) == 91256);
+ assert(unsigned(zero_extend(0x1647c, 64)) == 91260);
+ assert(unsigned(zero_extend(0x16480, 64)) == 91264);
+ assert(unsigned(zero_extend(0x16484, 64)) == 91268);
+ assert(unsigned(zero_extend(0x16488, 64)) == 91272);
+ assert(unsigned(zero_extend(0x1648c, 64)) == 91276);
+ assert(unsigned(zero_extend(0x16490, 64)) == 91280);
+ assert(unsigned(zero_extend(0x16494, 64)) == 91284);
+ assert(unsigned(zero_extend(0x16498, 64)) == 91288);
+ assert(unsigned(zero_extend(0x1649c, 64)) == 91292);
+ assert(unsigned(zero_extend(0x164a0, 64)) == 91296);
+ assert(unsigned(zero_extend(0x164a4, 64)) == 91300);
+ assert(unsigned(zero_extend(0x164a8, 64)) == 91304);
+ assert(unsigned(zero_extend(0x164ac, 64)) == 91308);
+ assert(unsigned(zero_extend(0x164b0, 64)) == 91312);
+ assert(unsigned(zero_extend(0x164b4, 64)) == 91316);
+ assert(unsigned(zero_extend(0x164b8, 64)) == 91320);
+ assert(unsigned(zero_extend(0x164d4, 64)) == 91348);
+ assert(unsigned(zero_extend(0x164d8, 64)) == 91352);
+ assert(unsigned(zero_extend(0x164dc, 64)) == 91356);
+ assert(unsigned(zero_extend(0x164e0, 64)) == 91360);
+ assert(unsigned(zero_extend(0x16510, 64)) == 91408);
+ assert(unsigned(zero_extend(0x16514, 64)) == 91412);
+ assert(unsigned(zero_extend(0x16518, 64)) == 91416);
+ assert(unsigned(zero_extend(0x1651c, 64)) == 91420);
+ assert(unsigned(zero_extend(0x16528, 64)) == 91432);
+ assert(unsigned(zero_extend(0x1652c, 64)) == 91436);
+ assert(unsigned(zero_extend(0x16590, 64)) == 91536);
+ assert(unsigned(zero_extend(0x16594, 64)) == 91540);
+ assert(unsigned(zero_extend(0x16598, 64)) == 91544);
+ assert(unsigned(zero_extend(0x165b4, 64)) == 91572);
+ assert(unsigned(zero_extend(0x165b8, 64)) == 91576);
+ assert(unsigned(zero_extend(0x165bc, 64)) == 91580);
+ assert(unsigned(zero_extend(0x165c8, 64)) == 91592);
+ assert(unsigned(zero_extend(0x165cc, 64)) == 91596);
+ assert(unsigned(zero_extend(0x165d0, 64)) == 91600);
+ assert(unsigned(zero_extend(0x165e0, 64)) == 91616);
+ assert(unsigned(zero_extend(0x165e4, 64)) == 91620);
+ assert(unsigned(zero_extend(0x165e8, 64)) == 91624);
+ assert(unsigned(zero_extend(0x165ec, 64)) == 91628);
+ assert(unsigned(zero_extend(0x165f0, 64)) == 91632);
+ assert(unsigned(zero_extend(0x165f4, 64)) == 91636);
+ assert(unsigned(zero_extend(0x165f8, 64)) == 91640);
+ assert(unsigned(zero_extend(0x165fc, 64)) == 91644);
+ assert(unsigned(zero_extend(0x16600, 64)) == 91648);
+ assert(unsigned(zero_extend(0x1660c, 64)) == 91660);
+ assert(unsigned(zero_extend(0x16610, 64)) == 91664);
+ assert(unsigned(zero_extend(0x16614, 64)) == 91668);
+ assert(unsigned(zero_extend(0x1663c, 64)) == 91708);
+ assert(unsigned(zero_extend(0x16640, 64)) == 91712);
+ assert(unsigned(zero_extend(0x16644, 64)) == 91716);
+ assert(unsigned(zero_extend(0x16648, 64)) == 91720);
+ assert(unsigned(zero_extend(0x1664c, 64)) == 91724);
+ assert(unsigned(zero_extend(0x16650, 64)) == 91728);
+ assert(unsigned(zero_extend(0x16654, 64)) == 91732);
+ assert(unsigned(zero_extend(0x16658, 64)) == 91736);
+ assert(unsigned(zero_extend(0x1665c, 64)) == 91740);
+ assert(unsigned(zero_extend(0x16668, 64)) == 91752);
+ assert(unsigned(zero_extend(0x1666c, 64)) == 91756);
+ assert(unsigned(zero_extend(0x16678, 64)) == 91768);
+ assert(unsigned(zero_extend(0x1667c, 64)) == 91772);
+ assert(unsigned(zero_extend(0x16680, 64)) == 91776);
+ assert(unsigned(zero_extend(0x16684, 64)) == 91780);
+ assert(unsigned(zero_extend(0x166a0, 64)) == 91808);
+ assert(unsigned(zero_extend(0x166a4, 64)) == 91812);
+ assert(unsigned(zero_extend(0x166a8, 64)) == 91816);
+ assert(unsigned(zero_extend(0x166ac, 64)) == 91820);
+ assert(unsigned(zero_extend(0x166b0, 64)) == 91824);
+ assert(unsigned(zero_extend(0x166b4, 64)) == 91828);
+ assert(unsigned(zero_extend(0x168, 64)) == 360);
+ assert(unsigned(zero_extend(0x17, 64)) == 23);
+ assert(unsigned(zero_extend(0x170, 64)) == 368);
+ assert(unsigned(zero_extend(0x17ffe, 64)) == 98302);
+ assert(unsigned(zero_extend(0x17fff, 64)) == 98303);
+ assert(unsigned(zero_extend(0x17fffffff, 64)) == 6442450943);
+ assert(unsigned(zero_extend(0x18, 64)) == 24);
+ assert(unsigned(zero_extend(0x180, 64)) == 384);
+ assert(unsigned(zero_extend(0x18000, 64)) == 98304);
+ assert(unsigned(zero_extend(0x180000000, 64)) == 6442450944);
+ assert(unsigned(zero_extend(0x18001, 64)) == 98305);
+ assert(unsigned(zero_extend(0x18899aabb, 64)) == 6586739387);
+ assert(unsigned(zero_extend(0x19, 64)) == 25);
+ assert(unsigned(zero_extend(0x1a, 64)) == 26);
+ assert(unsigned(zero_extend(0x1a0, 64)) == 416);
+ assert(unsigned(zero_extend(0x1a590, 64)) == 107920);
+ assert(unsigned(zero_extend(0x1a594, 64)) == 107924);
+ assert(unsigned(zero_extend(0x1a598, 64)) == 107928);
+ assert(unsigned(zero_extend(0x1a59c, 64)) == 107932);
+ assert(unsigned(zero_extend(0x1a5a0, 64)) == 107936);
+ assert(unsigned(zero_extend(0x1a5a4, 64)) == 107940);
+ assert(unsigned(zero_extend(0x1a5a8, 64)) == 107944);
+ assert(unsigned(zero_extend(0x1a5ac, 64)) == 107948);
+ assert(unsigned(zero_extend(0x1a5b0, 64)) == 107952);
+ assert(unsigned(zero_extend(0x1a5b4, 64)) == 107956);
+ assert(unsigned(zero_extend(0x1a5b8, 64)) == 107960);
+ assert(unsigned(zero_extend(0x1a5bc, 64)) == 107964);
+ assert(unsigned(zero_extend(0x1a5d4, 64)) == 107988);
+ assert(unsigned(zero_extend(0x1a5d8, 64)) == 107992);
+ assert(unsigned(zero_extend(0x1a5f4, 64)) == 108020);
+ assert(unsigned(zero_extend(0x1a5f8, 64)) == 108024);
+ assert(unsigned(zero_extend(0x1a5fc, 64)) == 108028);
+ assert(unsigned(zero_extend(0x1a600, 64)) == 108032);
+ assert(unsigned(zero_extend(0x1a600078, 64)) == 442499192);
+ assert(unsigned(zero_extend(0x1a60007c, 64)) == 442499196);
+ assert(unsigned(zero_extend(0x1a600080, 64)) == 442499200);
+ assert(unsigned(zero_extend(0x1a75c, 64)) == 108380);
+ assert(unsigned(zero_extend(0x1a760, 64)) == 108384);
+ assert(unsigned(zero_extend(0x1a764, 64)) == 108388);
+ assert(unsigned(zero_extend(0x1a768, 64)) == 108392);
+ assert(unsigned(zero_extend(0x1a76c, 64)) == 108396);
+ assert(unsigned(zero_extend(0x1a770, 64)) == 108400);
+ assert(unsigned(zero_extend(0x1a774, 64)) == 108404);
+ assert(unsigned(zero_extend(0x1a778, 64)) == 108408);
+ assert(unsigned(zero_extend(0x1a77c, 64)) == 108412);
+ assert(unsigned(zero_extend(0x1a780, 64)) == 108416);
+ assert(unsigned(zero_extend(0x1a784, 64)) == 108420);
+ assert(unsigned(zero_extend(0x1a788, 64)) == 108424);
+ assert(unsigned(zero_extend(0x1a78c, 64)) == 108428);
+ assert(unsigned(zero_extend(0x1a790, 64)) == 108432);
+ assert(unsigned(zero_extend(0x1a794, 64)) == 108436);
+ assert(unsigned(zero_extend(0x1a798, 64)) == 108440);
+ assert(unsigned(zero_extend(0x1a79c, 64)) == 108444);
+ assert(unsigned(zero_extend(0x1a840, 64)) == 108608);
+ assert(unsigned(zero_extend(0x1a844, 64)) == 108612);
+ assert(unsigned(zero_extend(0x1a848, 64)) == 108616);
+ assert(unsigned(zero_extend(0x1a84c, 64)) == 108620);
+ assert(unsigned(zero_extend(0x1a850, 64)) == 108624);
+ assert(unsigned(zero_extend(0x1a858, 64)) == 108632);
+ assert(unsigned(zero_extend(0x1a85c, 64)) == 108636);
+ assert(unsigned(zero_extend(0x1a860, 64)) == 108640);
+ assert(unsigned(zero_extend(0x1a864, 64)) == 108644);
+ assert(unsigned(zero_extend(0x1a870, 64)) == 108656);
+ assert(unsigned(zero_extend(0x1a878, 64)) == 108664);
+ assert(unsigned(zero_extend(0x1a87c, 64)) == 108668);
+ assert(unsigned(zero_extend(0x1a880, 64)) == 108672);
+ assert(unsigned(zero_extend(0x1a884, 64)) == 108676);
+ assert(unsigned(zero_extend(0x1a888, 64)) == 108680);
+ assert(unsigned(zero_extend(0x1a88c, 64)) == 108684);
+ assert(unsigned(zero_extend(0x1a890, 64)) == 108688);
+ assert(unsigned(zero_extend(0x1a894, 64)) == 108692);
+ assert(unsigned(zero_extend(0x1a898, 64)) == 108696);
+ assert(unsigned(zero_extend(0x1a89c, 64)) == 108700);
+ assert(unsigned(zero_extend(0x1a8a0, 64)) == 108704);
+ assert(unsigned(zero_extend(0x1a8a4, 64)) == 108708);
+ assert(unsigned(zero_extend(0x1a8a8, 64)) == 108712);
+ assert(unsigned(zero_extend(0x1a8ac, 64)) == 108716);
+ assert(unsigned(zero_extend(0x1a8b0, 64)) == 108720);
+ assert(unsigned(zero_extend(0x1a8b4, 64)) == 108724);
+ assert(unsigned(zero_extend(0x1a8b8, 64)) == 108728);
+ assert(unsigned(zero_extend(0x1a8bc, 64)) == 108732);
+ assert(unsigned(zero_extend(0x1a8c0, 64)) == 108736);
+ assert(unsigned(zero_extend(0x1a8c4, 64)) == 108740);
+ assert(unsigned(zero_extend(0x1a8c8, 64)) == 108744);
+ assert(unsigned(zero_extend(0x1a8cc, 64)) == 108748);
+ assert(unsigned(zero_extend(0x1a8d0, 64)) == 108752);
+ assert(unsigned(zero_extend(0x1a8d4, 64)) == 108756);
+ assert(unsigned(zero_extend(0x1a8d8, 64)) == 108760);
+ assert(unsigned(zero_extend(0x1a8dc, 64)) == 108764);
+ assert(unsigned(zero_extend(0x1a8e0, 64)) == 108768);
+ assert(unsigned(zero_extend(0x1a8e4, 64)) == 108772);
+ assert(unsigned(zero_extend(0x1a8e8, 64)) == 108776);
+ assert(unsigned(zero_extend(0x1a8ec, 64)) == 108780);
+ assert(unsigned(zero_extend(0x1a8f0, 64)) == 108784);
+ assert(unsigned(zero_extend(0x1a8f4, 64)) == 108788);
+ assert(unsigned(zero_extend(0x1a8f8, 64)) == 108792);
+ assert(unsigned(zero_extend(0x1a8fc, 64)) == 108796);
+ assert(unsigned(zero_extend(0x1a900, 64)) == 108800);
+ assert(unsigned(zero_extend(0x1a904, 64)) == 108804);
+ assert(unsigned(zero_extend(0x1a908, 64)) == 108808);
+ assert(unsigned(zero_extend(0x1a90c, 64)) == 108812);
+ assert(unsigned(zero_extend(0x1a910, 64)) == 108816);
+ assert(unsigned(zero_extend(0x1a914, 64)) == 108820);
+ assert(unsigned(zero_extend(0x1a918, 64)) == 108824);
+ assert(unsigned(zero_extend(0x1a91c, 64)) == 108828);
+ assert(unsigned(zero_extend(0x1a920, 64)) == 108832);
+ assert(unsigned(zero_extend(0x1a924, 64)) == 108836);
+ assert(unsigned(zero_extend(0x1a928, 64)) == 108840);
+ assert(unsigned(zero_extend(0x1a92c, 64)) == 108844);
+ assert(unsigned(zero_extend(0x1a930, 64)) == 108848);
+ assert(unsigned(zero_extend(0x1a934, 64)) == 108852);
+ assert(unsigned(zero_extend(0x1a938, 64)) == 108856);
+ assert(unsigned(zero_extend(0x1a93c, 64)) == 108860);
+ assert(unsigned(zero_extend(0x1a940, 64)) == 108864);
+ assert(unsigned(zero_extend(0x1a944, 64)) == 108868);
+ assert(unsigned(zero_extend(0x1a948, 64)) == 108872);
+ assert(unsigned(zero_extend(0x1a94c, 64)) == 108876);
+ assert(unsigned(zero_extend(0x1a950, 64)) == 108880);
+ assert(unsigned(zero_extend(0x1a954, 64)) == 108884);
+ assert(unsigned(zero_extend(0x1a958, 64)) == 108888);
+ assert(unsigned(zero_extend(0x1a95c, 64)) == 108892);
+ assert(unsigned(zero_extend(0x1a960, 64)) == 108896);
+ assert(unsigned(zero_extend(0x1a964, 64)) == 108900);
+ assert(unsigned(zero_extend(0x1a968, 64)) == 108904);
+ assert(unsigned(zero_extend(0x1a96c, 64)) == 108908);
+ assert(unsigned(zero_extend(0x1a970, 64)) == 108912);
+ assert(unsigned(zero_extend(0x1a974, 64)) == 108916);
+ assert(unsigned(zero_extend(0x1a978, 64)) == 108920);
+ assert(unsigned(zero_extend(0x1a97c, 64)) == 108924);
+ assert(unsigned(zero_extend(0x1a980, 64)) == 108928);
+ assert(unsigned(zero_extend(0x1a984, 64)) == 108932);
+ assert(unsigned(zero_extend(0x1a988, 64)) == 108936);
+ assert(unsigned(zero_extend(0x1a98c, 64)) == 108940);
+ assert(unsigned(zero_extend(0x1a990, 64)) == 108944);
+ assert(unsigned(zero_extend(0x1a994, 64)) == 108948);
+ assert(unsigned(zero_extend(0x1a998, 64)) == 108952);
+ assert(unsigned(zero_extend(0x1a99c, 64)) == 108956);
+ assert(unsigned(zero_extend(0x1a9a0, 64)) == 108960);
+ assert(unsigned(zero_extend(0x1a9a4, 64)) == 108964);
+ assert(unsigned(zero_extend(0x1a9a8, 64)) == 108968);
+ assert(unsigned(zero_extend(0x1a9ac, 64)) == 108972);
+ assert(unsigned(zero_extend(0x1a9b0, 64)) == 108976);
+ assert(unsigned(zero_extend(0x1a9b4, 64)) == 108980);
+ assert(unsigned(zero_extend(0x1a9b8, 64)) == 108984);
+ assert(unsigned(zero_extend(0x1a9bc, 64)) == 108988);
+ assert(unsigned(zero_extend(0x1a9c0, 64)) == 108992);
+ assert(unsigned(zero_extend(0x1a9c4, 64)) == 108996);
+ assert(unsigned(zero_extend(0x1a9c8, 64)) == 109000);
+ assert(unsigned(zero_extend(0x1a9cc, 64)) == 109004);
+ assert(unsigned(zero_extend(0x1a9d0, 64)) == 109008);
+ assert(unsigned(zero_extend(0x1a9d4, 64)) == 109012);
+ assert(unsigned(zero_extend(0x1a9d8, 64)) == 109016);
+ assert(unsigned(zero_extend(0x1a9dc, 64)) == 109020);
+ assert(unsigned(zero_extend(0x1a9e0, 64)) == 109024);
+ assert(unsigned(zero_extend(0x1a9e4, 64)) == 109028);
+ assert(unsigned(zero_extend(0x1a9e8, 64)) == 109032);
+ assert(unsigned(zero_extend(0x1a9f4, 64)) == 109044);
+ assert(unsigned(zero_extend(0x1a9f8, 64)) == 109048);
+ assert(unsigned(zero_extend(0x1a9fc, 64)) == 109052);
+ assert(unsigned(zero_extend(0x1aa00, 64)) == 109056);
+ assert(unsigned(zero_extend(0x1aa04, 64)) == 109060);
+ assert(unsigned(zero_extend(0x1aa08, 64)) == 109064);
+ assert(unsigned(zero_extend(0x1aa0c, 64)) == 109068);
+ assert(unsigned(zero_extend(0x1aa10, 64)) == 109072);
+ assert(unsigned(zero_extend(0x1aa14, 64)) == 109076);
+ assert(unsigned(zero_extend(0x1aa18, 64)) == 109080);
+ assert(unsigned(zero_extend(0x1aa1c, 64)) == 109084);
+ assert(unsigned(zero_extend(0x1aa20, 64)) == 109088);
+ assert(unsigned(zero_extend(0x1aa24, 64)) == 109092);
+ assert(unsigned(zero_extend(0x1aa28, 64)) == 109096);
+ assert(unsigned(zero_extend(0x1aa2c, 64)) == 109100);
+ assert(unsigned(zero_extend(0x1aa30, 64)) == 109104);
+ assert(unsigned(zero_extend(0x1aa34, 64)) == 109108);
+ assert(unsigned(zero_extend(0x1aa38, 64)) == 109112);
+ assert(unsigned(zero_extend(0x1aa3c, 64)) == 109116);
+ assert(unsigned(zero_extend(0x1aa40, 64)) == 109120);
+ assert(unsigned(zero_extend(0x1aa50, 64)) == 109136);
+ assert(unsigned(zero_extend(0x1aa58, 64)) == 109144);
+ assert(unsigned(zero_extend(0x1aa60, 64)) == 109152);
+ assert(unsigned(zero_extend(0x1aa68, 64)) == 109160);
+ assert(unsigned(zero_extend(0x1aa6c, 64)) == 109164);
+ assert(unsigned(zero_extend(0x1aa70, 64)) == 109168);
+ assert(unsigned(zero_extend(0x1aa74, 64)) == 109172);
+ assert(unsigned(zero_extend(0x1aa78, 64)) == 109176);
+ assert(unsigned(zero_extend(0x1aa7c, 64)) == 109180);
+ assert(unsigned(zero_extend(0x1aa80, 64)) == 109184);
+ assert(unsigned(zero_extend(0x1aa84, 64)) == 109188);
+ assert(unsigned(zero_extend(0x1aa88, 64)) == 109192);
+ assert(unsigned(zero_extend(0x1aaa8, 64)) == 109224);
+ assert(unsigned(zero_extend(0x1aab0, 64)) == 109232);
+ assert(unsigned(zero_extend(0x1aab8, 64)) == 109240);
+ assert(unsigned(zero_extend(0x1aac0, 64)) == 109248);
+ assert(unsigned(zero_extend(0x1ac70, 64)) == 109680);
+ assert(unsigned(zero_extend(0x1ac74, 64)) == 109684);
+ assert(unsigned(zero_extend(0x1ac78, 64)) == 109688);
+ assert(unsigned(zero_extend(0x1ac7c, 64)) == 109692);
+ assert(unsigned(zero_extend(0x1ac80, 64)) == 109696);
+ assert(unsigned(zero_extend(0x1ac84, 64)) == 109700);
+ assert(unsigned(zero_extend(0x1ac88, 64)) == 109704);
+ assert(unsigned(zero_extend(0x1ac8c, 64)) == 109708);
+ assert(unsigned(zero_extend(0x1ac90, 64)) == 109712);
+ assert(unsigned(zero_extend(0x1ac94, 64)) == 109716);
+ assert(unsigned(zero_extend(0x1ac98, 64)) == 109720);
+ assert(unsigned(zero_extend(0x1ac9c, 64)) == 109724);
+ assert(unsigned(zero_extend(0x1aca0, 64)) == 109728);
+ assert(unsigned(zero_extend(0x1aca4, 64)) == 109732);
+ assert(unsigned(zero_extend(0x1aca8, 64)) == 109736);
+ assert(unsigned(zero_extend(0x1acac, 64)) == 109740);
+ assert(unsigned(zero_extend(0x1acb0, 64)) == 109744);
+ assert(unsigned(zero_extend(0x1acb4, 64)) == 109748);
+ assert(unsigned(zero_extend(0x1acb8, 64)) == 109752);
+ assert(unsigned(zero_extend(0x1acbc, 64)) == 109756);
+ assert(unsigned(zero_extend(0x1acc0, 64)) == 109760);
+ assert(unsigned(zero_extend(0x1acc4, 64)) == 109764);
+ assert(unsigned(zero_extend(0x1acc8, 64)) == 109768);
+ assert(unsigned(zero_extend(0x1accc, 64)) == 109772);
+ assert(unsigned(zero_extend(0x1acd0, 64)) == 109776);
+ assert(unsigned(zero_extend(0x1acd4, 64)) == 109780);
+ assert(unsigned(zero_extend(0x1acd8, 64)) == 109784);
+ assert(unsigned(zero_extend(0x1acdc, 64)) == 109788);
+ assert(unsigned(zero_extend(0x1ace0, 64)) == 109792);
+ assert(unsigned(zero_extend(0x1ace4, 64)) == 109796);
+ assert(unsigned(zero_extend(0x1ace8, 64)) == 109800);
+ assert(unsigned(zero_extend(0x1acec, 64)) == 109804);
+ assert(unsigned(zero_extend(0x1acf0, 64)) == 109808);
+ assert(unsigned(zero_extend(0x1acf4, 64)) == 109812);
+ assert(unsigned(zero_extend(0x1acf8, 64)) == 109816);
+ assert(unsigned(zero_extend(0x1acfc, 64)) == 109820);
+ assert(unsigned(zero_extend(0x1ad00, 64)) == 109824);
+ assert(unsigned(zero_extend(0x1ad04, 64)) == 109828);
+ assert(unsigned(zero_extend(0x1ad08, 64)) == 109832);
+ assert(unsigned(zero_extend(0x1ad0c, 64)) == 109836);
+ assert(unsigned(zero_extend(0x1ad10, 64)) == 109840);
+ assert(unsigned(zero_extend(0x1ad14, 64)) == 109844);
+ assert(unsigned(zero_extend(0x1ad18, 64)) == 109848);
+ assert(unsigned(zero_extend(0x1ad1c, 64)) == 109852);
+ assert(unsigned(zero_extend(0x1ad20, 64)) == 109856);
+ assert(unsigned(zero_extend(0x1ad24, 64)) == 109860);
+ assert(unsigned(zero_extend(0x1ad28, 64)) == 109864);
+ assert(unsigned(zero_extend(0x1ad2c, 64)) == 109868);
+ assert(unsigned(zero_extend(0x1ad30, 64)) == 109872);
+ assert(unsigned(zero_extend(0x1ad34, 64)) == 109876);
+ assert(unsigned(zero_extend(0x1ad38, 64)) == 109880);
+ assert(unsigned(zero_extend(0x1ad3c, 64)) == 109884);
+ assert(unsigned(zero_extend(0x1ad40, 64)) == 109888);
+ assert(unsigned(zero_extend(0x1ad44, 64)) == 109892);
+ assert(unsigned(zero_extend(0x1ad48, 64)) == 109896);
+ assert(unsigned(zero_extend(0x1ad4c, 64)) == 109900);
+ assert(unsigned(zero_extend(0x1ad50, 64)) == 109904);
+ assert(unsigned(zero_extend(0x1ad54, 64)) == 109908);
+ assert(unsigned(zero_extend(0x1ad58, 64)) == 109912);
+ assert(unsigned(zero_extend(0x1ad5c, 64)) == 109916);
+ assert(unsigned(zero_extend(0x1ad60, 64)) == 109920);
+ assert(unsigned(zero_extend(0x1ad64, 64)) == 109924);
+ assert(unsigned(zero_extend(0x1ad68, 64)) == 109928);
+ assert(unsigned(zero_extend(0x1ad6c, 64)) == 109932);
+ assert(unsigned(zero_extend(0x1ad70, 64)) == 109936);
+ assert(unsigned(zero_extend(0x1ad74, 64)) == 109940);
+ assert(unsigned(zero_extend(0x1ad78, 64)) == 109944);
+ assert(unsigned(zero_extend(0x1ad7c, 64)) == 109948);
+ assert(unsigned(zero_extend(0x1ad80, 64)) == 109952);
+ assert(unsigned(zero_extend(0x1ad84, 64)) == 109956);
+ assert(unsigned(zero_extend(0x1ad88, 64)) == 109960);
+ assert(unsigned(zero_extend(0x1ad8c, 64)) == 109964);
+ assert(unsigned(zero_extend(0x1ad90, 64)) == 109968);
+ assert(unsigned(zero_extend(0x1ad94, 64)) == 109972);
+ assert(unsigned(zero_extend(0x1ad98, 64)) == 109976);
+ assert(unsigned(zero_extend(0x1ad9c, 64)) == 109980);
+ assert(unsigned(zero_extend(0x1ada0, 64)) == 109984);
+ assert(unsigned(zero_extend(0x1ada4, 64)) == 109988);
+ assert(unsigned(zero_extend(0x1ada8, 64)) == 109992);
+ assert(unsigned(zero_extend(0x1adac, 64)) == 109996);
+ assert(unsigned(zero_extend(0x1adb0, 64)) == 110000);
+ assert(unsigned(zero_extend(0x1adb4, 64)) == 110004);
+ assert(unsigned(zero_extend(0x1adb8, 64)) == 110008);
+ assert(unsigned(zero_extend(0x1adbc, 64)) == 110012);
+ assert(unsigned(zero_extend(0x1adc0, 64)) == 110016);
+ assert(unsigned(zero_extend(0x1adc4, 64)) == 110020);
+ assert(unsigned(zero_extend(0x1adc8, 64)) == 110024);
+ assert(unsigned(zero_extend(0x1adcc, 64)) == 110028);
+ assert(unsigned(zero_extend(0x1add0, 64)) == 110032);
+ assert(unsigned(zero_extend(0x1add4, 64)) == 110036);
+ assert(unsigned(zero_extend(0x1add8, 64)) == 110040);
+ assert(unsigned(zero_extend(0x1addc, 64)) == 110044);
+ assert(unsigned(zero_extend(0x1ade0, 64)) == 110048);
+ assert(unsigned(zero_extend(0x1ade4, 64)) == 110052);
+ assert(unsigned(zero_extend(0x1ade8, 64)) == 110056);
+ assert(unsigned(zero_extend(0x1adec, 64)) == 110060);
+ assert(unsigned(zero_extend(0x1adf0, 64)) == 110064);
+ assert(unsigned(zero_extend(0x1adf4, 64)) == 110068);
+ assert(unsigned(zero_extend(0x1adf8, 64)) == 110072);
+ assert(unsigned(zero_extend(0x1adfc, 64)) == 110076);
+ assert(unsigned(zero_extend(0x1ae00, 64)) == 110080);
+ assert(unsigned(zero_extend(0x1ae04, 64)) == 110084);
+ assert(unsigned(zero_extend(0x1ae08, 64)) == 110088);
+ assert(unsigned(zero_extend(0x1ae0c, 64)) == 110092);
+ assert(unsigned(zero_extend(0x1ae10, 64)) == 110096);
+ assert(unsigned(zero_extend(0x1ae14, 64)) == 110100);
+ assert(unsigned(zero_extend(0x1ae18, 64)) == 110104);
+ assert(unsigned(zero_extend(0x1ae1c, 64)) == 110108);
+ assert(unsigned(zero_extend(0x1ae20, 64)) == 110112);
+ assert(unsigned(zero_extend(0x1ae28, 64)) == 110120);
+ assert(unsigned(zero_extend(0x1ae30, 64)) == 110128);
+ assert(unsigned(zero_extend(0x1ae40, 64)) == 110144);
+ assert(unsigned(zero_extend(0x1ae44, 64)) == 110148);
+ assert(unsigned(zero_extend(0x1ae48, 64)) == 110152);
+ assert(unsigned(zero_extend(0x1ae4c, 64)) == 110156);
+ assert(unsigned(zero_extend(0x1ae50, 64)) == 110160);
+ assert(unsigned(zero_extend(0x1ae54, 64)) == 110164);
+ assert(unsigned(zero_extend(0x1ae58, 64)) == 110168);
+ assert(unsigned(zero_extend(0x1ae5c, 64)) == 110172);
+ assert(unsigned(zero_extend(0x1ae60, 64)) == 110176);
+ assert(unsigned(zero_extend(0x1ae64, 64)) == 110180);
+ assert(unsigned(zero_extend(0x1ae68, 64)) == 110184);
+ assert(unsigned(zero_extend(0x1ae6c, 64)) == 110188);
+ assert(unsigned(zero_extend(0x1ae70, 64)) == 110192);
+ assert(unsigned(zero_extend(0x1ae74, 64)) == 110196);
+ assert(unsigned(zero_extend(0x1ae78, 64)) == 110200);
+ assert(unsigned(zero_extend(0x1ae80, 64)) == 110208);
+ assert(unsigned(zero_extend(0x1ae88, 64)) == 110216);
+ assert(unsigned(zero_extend(0x1aef0, 64)) == 110320);
+ assert(unsigned(zero_extend(0x1aef4, 64)) == 110324);
+ assert(unsigned(zero_extend(0x1aef8, 64)) == 110328);
+ assert(unsigned(zero_extend(0x1aefc, 64)) == 110332);
+ assert(unsigned(zero_extend(0x1af00, 64)) == 110336);
+ assert(unsigned(zero_extend(0x1af04, 64)) == 110340);
+ assert(unsigned(zero_extend(0x1af08, 64)) == 110344);
+ assert(unsigned(zero_extend(0x1af0c, 64)) == 110348);
+ assert(unsigned(zero_extend(0x1af10, 64)) == 110352);
+ assert(unsigned(zero_extend(0x1af14, 64)) == 110356);
+ assert(unsigned(zero_extend(0x1af18, 64)) == 110360);
+ assert(unsigned(zero_extend(0x1af1c, 64)) == 110364);
+ assert(unsigned(zero_extend(0x1af20, 64)) == 110368);
+ assert(unsigned(zero_extend(0x1af24, 64)) == 110372);
+ assert(unsigned(zero_extend(0x1af28, 64)) == 110376);
+ assert(unsigned(zero_extend(0x1af2c, 64)) == 110380);
+ assert(unsigned(zero_extend(0x1af30, 64)) == 110384);
+ assert(unsigned(zero_extend(0x1af34, 64)) == 110388);
+ assert(unsigned(zero_extend(0x1af38, 64)) == 110392);
+ assert(unsigned(zero_extend(0x1af3c, 64)) == 110396);
+ assert(unsigned(zero_extend(0x1af40, 64)) == 110400);
+ assert(unsigned(zero_extend(0x1af44, 64)) == 110404);
+ assert(unsigned(zero_extend(0x1af48, 64)) == 110408);
+ assert(unsigned(zero_extend(0x1af4c, 64)) == 110412);
+ assert(unsigned(zero_extend(0x1af50, 64)) == 110416);
+ assert(unsigned(zero_extend(0x1af54, 64)) == 110420);
+ assert(unsigned(zero_extend(0x1af58, 64)) == 110424);
+ assert(unsigned(zero_extend(0x1af5c, 64)) == 110428);
+ assert(unsigned(zero_extend(0x1af60, 64)) == 110432);
+ assert(unsigned(zero_extend(0x1af64, 64)) == 110436);
+ assert(unsigned(zero_extend(0x1af68, 64)) == 110440);
+ assert(unsigned(zero_extend(0x1af6c, 64)) == 110444);
+ assert(unsigned(zero_extend(0x1af70, 64)) == 110448);
+ assert(unsigned(zero_extend(0x1af74, 64)) == 110452);
+ assert(unsigned(zero_extend(0x1af78, 64)) == 110456);
+ assert(unsigned(zero_extend(0x1af7c, 64)) == 110460);
+ assert(unsigned(zero_extend(0x1af80, 64)) == 110464);
+ assert(unsigned(zero_extend(0x1af84, 64)) == 110468);
+ assert(unsigned(zero_extend(0x1af88, 64)) == 110472);
+ assert(unsigned(zero_extend(0x1af8c, 64)) == 110476);
+ assert(unsigned(zero_extend(0x1af90, 64)) == 110480);
+ assert(unsigned(zero_extend(0x1af94, 64)) == 110484);
+ assert(unsigned(zero_extend(0x1af98, 64)) == 110488);
+ assert(unsigned(zero_extend(0x1af9c, 64)) == 110492);
+ assert(unsigned(zero_extend(0x1afa0, 64)) == 110496);
+ assert(unsigned(zero_extend(0x1afa4, 64)) == 110500);
+ assert(unsigned(zero_extend(0x1afa8, 64)) == 110504);
+ assert(unsigned(zero_extend(0x1afac, 64)) == 110508);
+ assert(unsigned(zero_extend(0x1afb0, 64)) == 110512);
+ assert(unsigned(zero_extend(0x1afb4, 64)) == 110516);
+ assert(unsigned(zero_extend(0x1afb8, 64)) == 110520);
+ assert(unsigned(zero_extend(0x1afbc, 64)) == 110524);
+ assert(unsigned(zero_extend(0x1afc0, 64)) == 110528);
+ assert(unsigned(zero_extend(0x1afc4, 64)) == 110532);
+ assert(unsigned(zero_extend(0x1afc8, 64)) == 110536);
+ assert(unsigned(zero_extend(0x1afcc, 64)) == 110540);
+ assert(unsigned(zero_extend(0x1afd0, 64)) == 110544);
+ assert(unsigned(zero_extend(0x1afd4, 64)) == 110548);
+ assert(unsigned(zero_extend(0x1afd8, 64)) == 110552);
+ assert(unsigned(zero_extend(0x1afdc, 64)) == 110556);
+ assert(unsigned(zero_extend(0x1afe0, 64)) == 110560);
+ assert(unsigned(zero_extend(0x1afe4, 64)) == 110564);
+ assert(unsigned(zero_extend(0x1afe8, 64)) == 110568);
+ assert(unsigned(zero_extend(0x1afec, 64)) == 110572);
+ assert(unsigned(zero_extend(0x1aff0, 64)) == 110576);
+ assert(unsigned(zero_extend(0x1aff4, 64)) == 110580);
+ assert(unsigned(zero_extend(0x1aff8, 64)) == 110584);
+ assert(unsigned(zero_extend(0x1affc, 64)) == 110588);
+ assert(unsigned(zero_extend(0x1b, 64)) == 27);
+ assert(unsigned(zero_extend(0x1b000, 64)) == 110592);
+ assert(unsigned(zero_extend(0x1b004, 64)) == 110596);
+ assert(unsigned(zero_extend(0x1b008, 64)) == 110600);
+ assert(unsigned(zero_extend(0x1b00c, 64)) == 110604);
+ assert(unsigned(zero_extend(0x1b010, 64)) == 110608);
+ assert(unsigned(zero_extend(0x1b014, 64)) == 110612);
+ assert(unsigned(zero_extend(0x1b018, 64)) == 110616);
+ assert(unsigned(zero_extend(0x1b01c, 64)) == 110620);
+ assert(unsigned(zero_extend(0x1b020, 64)) == 110624);
+ assert(unsigned(zero_extend(0x1b024, 64)) == 110628);
+ assert(unsigned(zero_extend(0x1b028, 64)) == 110632);
+ assert(unsigned(zero_extend(0x1b02c, 64)) == 110636);
+ assert(unsigned(zero_extend(0x1b030, 64)) == 110640);
+ assert(unsigned(zero_extend(0x1b034, 64)) == 110644);
+ assert(unsigned(zero_extend(0x1b038, 64)) == 110648);
+ assert(unsigned(zero_extend(0x1b03c, 64)) == 110652);
+ assert(unsigned(zero_extend(0x1b040, 64)) == 110656);
+ assert(unsigned(zero_extend(0x1b044, 64)) == 110660);
+ assert(unsigned(zero_extend(0x1b048, 64)) == 110664);
+ assert(unsigned(zero_extend(0x1b04c, 64)) == 110668);
+ assert(unsigned(zero_extend(0x1b050, 64)) == 110672);
+ assert(unsigned(zero_extend(0x1b054, 64)) == 110676);
+ assert(unsigned(zero_extend(0x1b058, 64)) == 110680);
+ assert(unsigned(zero_extend(0x1b05c, 64)) == 110684);
+ assert(unsigned(zero_extend(0x1b060, 64)) == 110688);
+ assert(unsigned(zero_extend(0x1b064, 64)) == 110692);
+ assert(unsigned(zero_extend(0x1b068, 64)) == 110696);
+ assert(unsigned(zero_extend(0x1b06c, 64)) == 110700);
+ assert(unsigned(zero_extend(0x1b070, 64)) == 110704);
+ assert(unsigned(zero_extend(0x1b074, 64)) == 110708);
+ assert(unsigned(zero_extend(0x1b078, 64)) == 110712);
+ assert(unsigned(zero_extend(0x1b07c, 64)) == 110716);
+ assert(unsigned(zero_extend(0x1b080, 64)) == 110720);
+ assert(unsigned(zero_extend(0x1b088, 64)) == 110728);
+ assert(unsigned(zero_extend(0x1b090, 64)) == 110736);
+ assert(unsigned(zero_extend(0x1b098, 64)) == 110744);
+ assert(unsigned(zero_extend(0x1b09c, 64)) == 110748);
+ assert(unsigned(zero_extend(0x1b0a0, 64)) == 110752);
+ assert(unsigned(zero_extend(0x1b0a4, 64)) == 110756);
+ assert(unsigned(zero_extend(0x1b0a8, 64)) == 110760);
+ assert(unsigned(zero_extend(0x1b0ac, 64)) == 110764);
+ assert(unsigned(zero_extend(0x1b0b0, 64)) == 110768);
+ assert(unsigned(zero_extend(0x1b0b4, 64)) == 110772);
+ assert(unsigned(zero_extend(0x1b0b8, 64)) == 110776);
+ assert(unsigned(zero_extend(0x1b0bc, 64)) == 110780);
+ assert(unsigned(zero_extend(0x1b0c0, 64)) == 110784);
+ assert(unsigned(zero_extend(0x1b0c4, 64)) == 110788);
+ assert(unsigned(zero_extend(0x1b0c8, 64)) == 110792);
+ assert(unsigned(zero_extend(0x1b0cc, 64)) == 110796);
+ assert(unsigned(zero_extend(0x1b0d0, 64)) == 110800);
+ assert(unsigned(zero_extend(0x1b0d4, 64)) == 110804);
+ assert(unsigned(zero_extend(0x1b0d8, 64)) == 110808);
+ assert(unsigned(zero_extend(0x1b0dc, 64)) == 110812);
+ assert(unsigned(zero_extend(0x1b0e0, 64)) == 110816);
+ assert(unsigned(zero_extend(0x1b0e4, 64)) == 110820);
+ assert(unsigned(zero_extend(0x1b0e8, 64)) == 110824);
+ assert(unsigned(zero_extend(0x1b0ec, 64)) == 110828);
+ assert(unsigned(zero_extend(0x1b0f0, 64)) == 110832);
+ assert(unsigned(zero_extend(0x1b0f4, 64)) == 110836);
+ assert(unsigned(zero_extend(0x1b0f8, 64)) == 110840);
+ assert(unsigned(zero_extend(0x1b0fc, 64)) == 110844);
+ assert(unsigned(zero_extend(0x1b100, 64)) == 110848);
+ assert(unsigned(zero_extend(0x1b104, 64)) == 110852);
+ assert(unsigned(zero_extend(0x1b108, 64)) == 110856);
+ assert(unsigned(zero_extend(0x1b10c, 64)) == 110860);
+ assert(unsigned(zero_extend(0x1b110, 64)) == 110864);
+ assert(unsigned(zero_extend(0x1b114, 64)) == 110868);
+ assert(unsigned(zero_extend(0x1b118, 64)) == 110872);
+ assert(unsigned(zero_extend(0x1b11c, 64)) == 110876);
+ assert(unsigned(zero_extend(0x1b120, 64)) == 110880);
+ assert(unsigned(zero_extend(0x1b124, 64)) == 110884);
+ assert(unsigned(zero_extend(0x1b128, 64)) == 110888);
+ assert(unsigned(zero_extend(0x1b12c, 64)) == 110892);
+ assert(unsigned(zero_extend(0x1b130, 64)) == 110896);
+ assert(unsigned(zero_extend(0x1b134, 64)) == 110900);
+ assert(unsigned(zero_extend(0x1b138, 64)) == 110904);
+ assert(unsigned(zero_extend(0x1b13c, 64)) == 110908);
+ assert(unsigned(zero_extend(0x1b140, 64)) == 110912);
+ assert(unsigned(zero_extend(0x1b144, 64)) == 110916);
+ assert(unsigned(zero_extend(0x1b148, 64)) == 110920);
+ assert(unsigned(zero_extend(0x1b14c, 64)) == 110924);
+ assert(unsigned(zero_extend(0x1b150, 64)) == 110928);
+ assert(unsigned(zero_extend(0x1b154, 64)) == 110932);
+ assert(unsigned(zero_extend(0x1b158, 64)) == 110936);
+ assert(unsigned(zero_extend(0x1b15c, 64)) == 110940);
+ assert(unsigned(zero_extend(0x1b160, 64)) == 110944);
+ assert(unsigned(zero_extend(0x1b164, 64)) == 110948);
+ assert(unsigned(zero_extend(0x1b168, 64)) == 110952);
+ assert(unsigned(zero_extend(0x1b16c, 64)) == 110956);
+ assert(unsigned(zero_extend(0x1b170, 64)) == 110960);
+ assert(unsigned(zero_extend(0x1b174, 64)) == 110964);
+ assert(unsigned(zero_extend(0x1b178, 64)) == 110968);
+ assert(unsigned(zero_extend(0x1b17c, 64)) == 110972);
+ assert(unsigned(zero_extend(0x1b180, 64)) == 110976);
+ assert(unsigned(zero_extend(0x1b184, 64)) == 110980);
+ assert(unsigned(zero_extend(0x1b188, 64)) == 110984);
+ assert(unsigned(zero_extend(0x1b18c, 64)) == 110988);
+ assert(unsigned(zero_extend(0x1b190, 64)) == 110992);
+ assert(unsigned(zero_extend(0x1b194, 64)) == 110996);
+ assert(unsigned(zero_extend(0x1b198, 64)) == 111000);
+ assert(unsigned(zero_extend(0x1b19c, 64)) == 111004);
+ assert(unsigned(zero_extend(0x1b1a0, 64)) == 111008);
+ assert(unsigned(zero_extend(0x1b1a4, 64)) == 111012);
+ assert(unsigned(zero_extend(0x1b1a8, 64)) == 111016);
+ assert(unsigned(zero_extend(0x1b1ac, 64)) == 111020);
+ assert(unsigned(zero_extend(0x1b1b0, 64)) == 111024);
+ assert(unsigned(zero_extend(0x1b1b4, 64)) == 111028);
+ assert(unsigned(zero_extend(0x1b1b8, 64)) == 111032);
+ assert(unsigned(zero_extend(0x1b1bc, 64)) == 111036);
+ assert(unsigned(zero_extend(0x1b1c0, 64)) == 111040);
+ assert(unsigned(zero_extend(0x1b1c4, 64)) == 111044);
+ assert(unsigned(zero_extend(0x1b1c8, 64)) == 111048);
+ assert(unsigned(zero_extend(0x1b1cc, 64)) == 111052);
+ assert(unsigned(zero_extend(0x1b1d0, 64)) == 111056);
+ assert(unsigned(zero_extend(0x1b1d4, 64)) == 111060);
+ assert(unsigned(zero_extend(0x1b1d8, 64)) == 111064);
+ assert(unsigned(zero_extend(0x1b1dc, 64)) == 111068);
+ assert(unsigned(zero_extend(0x1b1e0, 64)) == 111072);
+ assert(unsigned(zero_extend(0x1b1e4, 64)) == 111076);
+ assert(unsigned(zero_extend(0x1b1e8, 64)) == 111080);
+ assert(unsigned(zero_extend(0x1b1f8, 64)) == 111096);
+ assert(unsigned(zero_extend(0x1b1fc, 64)) == 111100);
+ assert(unsigned(zero_extend(0x1b200, 64)) == 111104);
+ assert(unsigned(zero_extend(0x1b204, 64)) == 111108);
+ assert(unsigned(zero_extend(0x1b208, 64)) == 111112);
+ assert(unsigned(zero_extend(0x1b20c, 64)) == 111116);
+ assert(unsigned(zero_extend(0x1b210, 64)) == 111120);
+ assert(unsigned(zero_extend(0x1b214, 64)) == 111124);
+ assert(unsigned(zero_extend(0x1b218, 64)) == 111128);
+ assert(unsigned(zero_extend(0x1b21c, 64)) == 111132);
+ assert(unsigned(zero_extend(0x1b220, 64)) == 111136);
+ assert(unsigned(zero_extend(0x1b224, 64)) == 111140);
+ assert(unsigned(zero_extend(0x1b228, 64)) == 111144);
+ assert(unsigned(zero_extend(0x1b22c, 64)) == 111148);
+ assert(unsigned(zero_extend(0x1b230, 64)) == 111152);
+ assert(unsigned(zero_extend(0x1b238, 64)) == 111160);
+ assert(unsigned(zero_extend(0x1b240, 64)) == 111168);
+ assert(unsigned(zero_extend(0x1b248, 64)) == 111176);
+ assert(unsigned(zero_extend(0x1b250, 64)) == 111184);
+ assert(unsigned(zero_extend(0x1b254, 64)) == 111188);
+ assert(unsigned(zero_extend(0x1b258, 64)) == 111192);
+ assert(unsigned(zero_extend(0x1b25c, 64)) == 111196);
+ assert(unsigned(zero_extend(0x1b260, 64)) == 111200);
+ assert(unsigned(zero_extend(0x1b264, 64)) == 111204);
+ assert(unsigned(zero_extend(0x1b268, 64)) == 111208);
+ assert(unsigned(zero_extend(0x1b26c, 64)) == 111212);
+ assert(unsigned(zero_extend(0x1b270, 64)) == 111216);
+ assert(unsigned(zero_extend(0x1b274, 64)) == 111220);
+ assert(unsigned(zero_extend(0x1b278, 64)) == 111224);
+ assert(unsigned(zero_extend(0x1b27c, 64)) == 111228);
+ assert(unsigned(zero_extend(0x1b280, 64)) == 111232);
+ assert(unsigned(zero_extend(0x1b288, 64)) == 111240);
+ assert(unsigned(zero_extend(0x1b290, 64)) == 111248);
+ assert(unsigned(zero_extend(0x1b298, 64)) == 111256);
+ assert(unsigned(zero_extend(0x1b2a0, 64)) == 111264);
+ assert(unsigned(zero_extend(0x1b2a8, 64)) == 111272);
+ assert(unsigned(zero_extend(0x1b690, 64)) == 112272);
+ assert(unsigned(zero_extend(0x1b694, 64)) == 112276);
+ assert(unsigned(zero_extend(0x1b698, 64)) == 112280);
+ assert(unsigned(zero_extend(0x1b69c, 64)) == 112284);
+ assert(unsigned(zero_extend(0x1b6a0, 64)) == 112288);
+ assert(unsigned(zero_extend(0x1b6a4, 64)) == 112292);
+ assert(unsigned(zero_extend(0x1b6a8, 64)) == 112296);
+ assert(unsigned(zero_extend(0x1b6ac, 64)) == 112300);
+ assert(unsigned(zero_extend(0x1b6b0, 64)) == 112304);
+ assert(unsigned(zero_extend(0x1b6b4, 64)) == 112308);
+ assert(unsigned(zero_extend(0x1b6b8, 64)) == 112312);
+ assert(unsigned(zero_extend(0x1b6bc, 64)) == 112316);
+ assert(unsigned(zero_extend(0x1b6c0, 64)) == 112320);
+ assert(unsigned(zero_extend(0x1b6c4, 64)) == 112324);
+ assert(unsigned(zero_extend(0x1b6d4, 64)) == 112340);
+ assert(unsigned(zero_extend(0x1b6d8, 64)) == 112344);
+ assert(unsigned(zero_extend(0x1b6dc, 64)) == 112348);
+ assert(unsigned(zero_extend(0x1b6e0, 64)) == 112352);
+ assert(unsigned(zero_extend(0x1b6e4, 64)) == 112356);
+ assert(unsigned(zero_extend(0x1b6e8, 64)) == 112360);
+ assert(unsigned(zero_extend(0x1b6ec, 64)) == 112364);
+ assert(unsigned(zero_extend(0x1b6f0, 64)) == 112368);
+ assert(unsigned(zero_extend(0x1b6f4, 64)) == 112372);
+ assert(unsigned(zero_extend(0x1b6f8, 64)) == 112376);
+ assert(unsigned(zero_extend(0x1b6fc, 64)) == 112380);
+ assert(unsigned(zero_extend(0x1b700, 64)) == 112384);
+ assert(unsigned(zero_extend(0x1b704, 64)) == 112388);
+ assert(unsigned(zero_extend(0x1b708, 64)) == 112392);
+ assert(unsigned(zero_extend(0x1b70c, 64)) == 112396);
+ assert(unsigned(zero_extend(0x1b710, 64)) == 112400);
+ assert(unsigned(zero_extend(0x1b714, 64)) == 112404);
+ assert(unsigned(zero_extend(0x1b718, 64)) == 112408);
+ assert(unsigned(zero_extend(0x1b71c, 64)) == 112412);
+ assert(unsigned(zero_extend(0x1b720, 64)) == 112416);
+ assert(unsigned(zero_extend(0x1b724, 64)) == 112420);
+ assert(unsigned(zero_extend(0x1b728, 64)) == 112424);
+ assert(unsigned(zero_extend(0x1b72c, 64)) == 112428);
+ assert(unsigned(zero_extend(0x1b730, 64)) == 112432);
+ assert(unsigned(zero_extend(0x1b734, 64)) == 112436);
+ assert(unsigned(zero_extend(0x1b738, 64)) == 112440);
+ assert(unsigned(zero_extend(0x1b73c, 64)) == 112444);
+ assert(unsigned(zero_extend(0x1b740, 64)) == 112448);
+ assert(unsigned(zero_extend(0x1b744, 64)) == 112452);
+ assert(unsigned(zero_extend(0x1b748, 64)) == 112456);
+ assert(unsigned(zero_extend(0x1b74c, 64)) == 112460);
+ assert(unsigned(zero_extend(0x1b750, 64)) == 112464);
+ assert(unsigned(zero_extend(0x1b754, 64)) == 112468);
+ assert(unsigned(zero_extend(0x1b758, 64)) == 112472);
+ assert(unsigned(zero_extend(0x1b75c, 64)) == 112476);
+ assert(unsigned(zero_extend(0x1b760, 64)) == 112480);
+ assert(unsigned(zero_extend(0x1b764, 64)) == 112484);
+ assert(unsigned(zero_extend(0x1b768, 64)) == 112488);
+ assert(unsigned(zero_extend(0x1b76c, 64)) == 112492);
+ assert(unsigned(zero_extend(0x1b770, 64)) == 112496);
+ assert(unsigned(zero_extend(0x1b774, 64)) == 112500);
+ assert(unsigned(zero_extend(0x1b778, 64)) == 112504);
+ assert(unsigned(zero_extend(0x1b77c, 64)) == 112508);
+ assert(unsigned(zero_extend(0x1b780, 64)) == 112512);
+ assert(unsigned(zero_extend(0x1b784, 64)) == 112516);
+ assert(unsigned(zero_extend(0x1b788, 64)) == 112520);
+ assert(unsigned(zero_extend(0x1b78c, 64)) == 112524);
+ assert(unsigned(zero_extend(0x1b7b8, 64)) == 112568);
+ assert(unsigned(zero_extend(0x1b7bc, 64)) == 112572);
+ assert(unsigned(zero_extend(0x1b7c0, 64)) == 112576);
+ assert(unsigned(zero_extend(0x1b7c4, 64)) == 112580);
+ assert(unsigned(zero_extend(0x1b7c8, 64)) == 112584);
+ assert(unsigned(zero_extend(0x1b7cc, 64)) == 112588);
+ assert(unsigned(zero_extend(0x1b7d0, 64)) == 112592);
+ assert(unsigned(zero_extend(0x1b7d4, 64)) == 112596);
+ assert(unsigned(zero_extend(0x1b7d8, 64)) == 112600);
+ assert(unsigned(zero_extend(0x1b7dc, 64)) == 112604);
+ assert(unsigned(zero_extend(0x1b7e0, 64)) == 112608);
+ assert(unsigned(zero_extend(0x1b7e8, 64)) == 112616);
+ assert(unsigned(zero_extend(0x1b7f0, 64)) == 112624);
+ assert(unsigned(zero_extend(0x1b810, 64)) == 112656);
+ assert(unsigned(zero_extend(0x1b814, 64)) == 112660);
+ assert(unsigned(zero_extend(0x1b818, 64)) == 112664);
+ assert(unsigned(zero_extend(0x1b81c, 64)) == 112668);
+ assert(unsigned(zero_extend(0x1b820, 64)) == 112672);
+ assert(unsigned(zero_extend(0x1b824, 64)) == 112676);
+ assert(unsigned(zero_extend(0x1b828, 64)) == 112680);
+ assert(unsigned(zero_extend(0x1b82c, 64)) == 112684);
+ assert(unsigned(zero_extend(0x1b830, 64)) == 112688);
+ assert(unsigned(zero_extend(0x1b838, 64)) == 112696);
+ assert(unsigned(zero_extend(0x1b83c, 64)) == 112700);
+ assert(unsigned(zero_extend(0x1b840, 64)) == 112704);
+ assert(unsigned(zero_extend(0x1b844, 64)) == 112708);
+ assert(unsigned(zero_extend(0x1b848, 64)) == 112712);
+ assert(unsigned(zero_extend(0x1b84c, 64)) == 112716);
+ assert(unsigned(zero_extend(0x1b850, 64)) == 112720);
+ assert(unsigned(zero_extend(0x1b854, 64)) == 112724);
+ assert(unsigned(zero_extend(0x1b858, 64)) == 112728);
+ assert(unsigned(zero_extend(0x1b85c, 64)) == 112732);
+ assert(unsigned(zero_extend(0x1b860, 64)) == 112736);
+ assert(unsigned(zero_extend(0x1b864, 64)) == 112740);
+ assert(unsigned(zero_extend(0x1b868, 64)) == 112744);
+ assert(unsigned(zero_extend(0x1b86c, 64)) == 112748);
+ assert(unsigned(zero_extend(0x1b870, 64)) == 112752);
+ assert(unsigned(zero_extend(0x1b874, 64)) == 112756);
+ assert(unsigned(zero_extend(0x1b878, 64)) == 112760);
+ assert(unsigned(zero_extend(0x1b87c, 64)) == 112764);
+ assert(unsigned(zero_extend(0x1b888, 64)) == 112776);
+ assert(unsigned(zero_extend(0x1b890, 64)) == 112784);
+ assert(unsigned(zero_extend(0x1b894, 64)) == 112788);
+ assert(unsigned(zero_extend(0x1b898, 64)) == 112792);
+ assert(unsigned(zero_extend(0x1b89c, 64)) == 112796);
+ assert(unsigned(zero_extend(0x1b8a0, 64)) == 112800);
+ assert(unsigned(zero_extend(0x1b8a4, 64)) == 112804);
+ assert(unsigned(zero_extend(0x1b8a8, 64)) == 112808);
+ assert(unsigned(zero_extend(0x1b8ac, 64)) == 112812);
+ assert(unsigned(zero_extend(0x1b8b0, 64)) == 112816);
+ assert(unsigned(zero_extend(0x1b8b4, 64)) == 112820);
+ assert(unsigned(zero_extend(0x1b8b8, 64)) == 112824);
+ assert(unsigned(zero_extend(0x1b8bc, 64)) == 112828);
+ assert(unsigned(zero_extend(0x1b8c0, 64)) == 112832);
+ assert(unsigned(zero_extend(0x1b8c4, 64)) == 112836);
+ assert(unsigned(zero_extend(0x1b8c8, 64)) == 112840);
+ assert(unsigned(zero_extend(0x1b8cc, 64)) == 112844);
+ assert(unsigned(zero_extend(0x1b8d0, 64)) == 112848);
+ assert(unsigned(zero_extend(0x1b8d4, 64)) == 112852);
+ assert(unsigned(zero_extend(0x1b910, 64)) == 112912);
+ assert(unsigned(zero_extend(0x1b914, 64)) == 112916);
+ assert(unsigned(zero_extend(0x1b918, 64)) == 112920);
+ assert(unsigned(zero_extend(0x1b91c, 64)) == 112924);
+ assert(unsigned(zero_extend(0x1b920, 64)) == 112928);
+ assert(unsigned(zero_extend(0x1b924, 64)) == 112932);
+ assert(unsigned(zero_extend(0x1b928, 64)) == 112936);
+ assert(unsigned(zero_extend(0x1b92c, 64)) == 112940);
+ assert(unsigned(zero_extend(0x1b930, 64)) == 112944);
+ assert(unsigned(zero_extend(0x1b934, 64)) == 112948);
+ assert(unsigned(zero_extend(0x1b938, 64)) == 112952);
+ assert(unsigned(zero_extend(0x1b93c, 64)) == 112956);
+ assert(unsigned(zero_extend(0x1b940, 64)) == 112960);
+ assert(unsigned(zero_extend(0x1b944, 64)) == 112964);
+ assert(unsigned(zero_extend(0x1b948, 64)) == 112968);
+ assert(unsigned(zero_extend(0x1b94c, 64)) == 112972);
+ assert(unsigned(zero_extend(0x1b950, 64)) == 112976);
+ assert(unsigned(zero_extend(0x1b954, 64)) == 112980);
+ assert(unsigned(zero_extend(0x1b958, 64)) == 112984);
+ assert(unsigned(zero_extend(0x1b95c, 64)) == 112988);
+ assert(unsigned(zero_extend(0x1b960, 64)) == 112992);
+ assert(unsigned(zero_extend(0x1b964, 64)) == 112996);
+ assert(unsigned(zero_extend(0x1b968, 64)) == 113000);
+ assert(unsigned(zero_extend(0x1b96c, 64)) == 113004);
+ assert(unsigned(zero_extend(0x1b970, 64)) == 113008);
+ assert(unsigned(zero_extend(0x1b974, 64)) == 113012);
+ assert(unsigned(zero_extend(0x1b978, 64)) == 113016);
+ assert(unsigned(zero_extend(0x1b97c, 64)) == 113020);
+ assert(unsigned(zero_extend(0x1b980, 64)) == 113024);
+ assert(unsigned(zero_extend(0x1b984, 64)) == 113028);
+ assert(unsigned(zero_extend(0x1b988, 64)) == 113032);
+ assert(unsigned(zero_extend(0x1b98c, 64)) == 113036);
+ assert(unsigned(zero_extend(0x1b990, 64)) == 113040);
+ assert(unsigned(zero_extend(0x1b994, 64)) == 113044);
+ assert(unsigned(zero_extend(0x1b998, 64)) == 113048);
+ assert(unsigned(zero_extend(0x1b99c, 64)) == 113052);
+ assert(unsigned(zero_extend(0x1b9a0, 64)) == 113056);
+ assert(unsigned(zero_extend(0x1b9a4, 64)) == 113060);
+ assert(unsigned(zero_extend(0x1b9a8, 64)) == 113064);
+ assert(unsigned(zero_extend(0x1b9ac, 64)) == 113068);
+ assert(unsigned(zero_extend(0x1b9b0, 64)) == 113072);
+ assert(unsigned(zero_extend(0x1b9b4, 64)) == 113076);
+ assert(unsigned(zero_extend(0x1b9b8, 64)) == 113080);
+ assert(unsigned(zero_extend(0x1b9bc, 64)) == 113084);
+ assert(unsigned(zero_extend(0x1b9c0, 64)) == 113088);
+ assert(unsigned(zero_extend(0x1b9c4, 64)) == 113092);
+ assert(unsigned(zero_extend(0x1b9c8, 64)) == 113096);
+ assert(unsigned(zero_extend(0x1b9cc, 64)) == 113100);
+ assert(unsigned(zero_extend(0x1ba00, 64)) == 113152);
+ assert(unsigned(zero_extend(0x1ba04, 64)) == 113156);
+ assert(unsigned(zero_extend(0x1ba08, 64)) == 113160);
+ assert(unsigned(zero_extend(0x1ba0c, 64)) == 113164);
+ assert(unsigned(zero_extend(0x1ba10, 64)) == 113168);
+ assert(unsigned(zero_extend(0x1ba14, 64)) == 113172);
+ assert(unsigned(zero_extend(0x1ba18, 64)) == 113176);
+ assert(unsigned(zero_extend(0x1ba1c, 64)) == 113180);
+ assert(unsigned(zero_extend(0x1ba20, 64)) == 113184);
+ assert(unsigned(zero_extend(0x1ba24, 64)) == 113188);
+ assert(unsigned(zero_extend(0x1ba7c, 64)) == 113276);
+ assert(unsigned(zero_extend(0x1ba80, 64)) == 113280);
+ assert(unsigned(zero_extend(0x1ba84, 64)) == 113284);
+ assert(unsigned(zero_extend(0x1ba88, 64)) == 113288);
+ assert(unsigned(zero_extend(0x1ba8c, 64)) == 113292);
+ assert(unsigned(zero_extend(0x1ba90, 64)) == 113296);
+ assert(unsigned(zero_extend(0x1ba94, 64)) == 113300);
+ assert(unsigned(zero_extend(0x1ba98, 64)) == 113304);
+ assert(unsigned(zero_extend(0x1ba9c, 64)) == 113308);
+ assert(unsigned(zero_extend(0x1baa0, 64)) == 113312);
+ assert(unsigned(zero_extend(0x1baa4, 64)) == 113316);
+ assert(unsigned(zero_extend(0x1baa8, 64)) == 113320);
+ assert(unsigned(zero_extend(0x1bad0, 64)) == 113360);
+ assert(unsigned(zero_extend(0x1bad4, 64)) == 113364);
+ assert(unsigned(zero_extend(0x1bad8, 64)) == 113368);
+ assert(unsigned(zero_extend(0x1badc, 64)) == 113372);
+ assert(unsigned(zero_extend(0x1bae0, 64)) == 113376);
+ assert(unsigned(zero_extend(0x1bae4, 64)) == 113380);
+ assert(unsigned(zero_extend(0x1bae8, 64)) == 113384);
+ assert(unsigned(zero_extend(0x1baec, 64)) == 113388);
+ assert(unsigned(zero_extend(0x1baf0, 64)) == 113392);
+ assert(unsigned(zero_extend(0x1baf4, 64)) == 113396);
+ assert(unsigned(zero_extend(0x1baf8, 64)) == 113400);
+ assert(unsigned(zero_extend(0x1bafc, 64)) == 113404);
+ assert(unsigned(zero_extend(0x1bb00, 64)) == 113408);
+ assert(unsigned(zero_extend(0x1bb08, 64)) == 113416);
+ assert(unsigned(zero_extend(0x1bb28, 64)) == 113448);
+ assert(unsigned(zero_extend(0x1bb2c, 64)) == 113452);
+ assert(unsigned(zero_extend(0x1bb30, 64)) == 113456);
+ assert(unsigned(zero_extend(0x1bb34, 64)) == 113460);
+ assert(unsigned(zero_extend(0x1bb38, 64)) == 113464);
+ assert(unsigned(zero_extend(0x1bb3c, 64)) == 113468);
+ assert(unsigned(zero_extend(0x1bb40, 64)) == 113472);
+ assert(unsigned(zero_extend(0x1bb44, 64)) == 113476);
+ assert(unsigned(zero_extend(0x1bb48, 64)) == 113480);
+ assert(unsigned(zero_extend(0x1bb50, 64)) == 113488);
+ assert(unsigned(zero_extend(0x1bb58, 64)) == 113496);
+ assert(unsigned(zero_extend(0x1bb60, 64)) == 113504);
+ assert(unsigned(zero_extend(0x1bba8, 64)) == 113576);
+ assert(unsigned(zero_extend(0x1bd68, 64)) == 114024);
+ assert(unsigned(zero_extend(0x1bd6c, 64)) == 114028);
+ assert(unsigned(zero_extend(0x1bd70, 64)) == 114032);
+ assert(unsigned(zero_extend(0x1bd74, 64)) == 114036);
+ assert(unsigned(zero_extend(0x1bd78, 64)) == 114040);
+ assert(unsigned(zero_extend(0x1bd7c, 64)) == 114044);
+ assert(unsigned(zero_extend(0x1bd80, 64)) == 114048);
+ assert(unsigned(zero_extend(0x1bd84, 64)) == 114052);
+ assert(unsigned(zero_extend(0x1bd88, 64)) == 114056);
+ assert(unsigned(zero_extend(0x1bd8c, 64)) == 114060);
+ assert(unsigned(zero_extend(0x1bd90, 64)) == 114064);
+ assert(unsigned(zero_extend(0x1bd94, 64)) == 114068);
+ assert(unsigned(zero_extend(0x1bd98, 64)) == 114072);
+ assert(unsigned(zero_extend(0x1bd9c, 64)) == 114076);
+ assert(unsigned(zero_extend(0x1bda0, 64)) == 114080);
+ assert(unsigned(zero_extend(0x1bda4, 64)) == 114084);
+ assert(unsigned(zero_extend(0x1bda8, 64)) == 114088);
+ assert(unsigned(zero_extend(0x1bdac, 64)) == 114092);
+ assert(unsigned(zero_extend(0x1bdb0, 64)) == 114096);
+ assert(unsigned(zero_extend(0x1bdb4, 64)) == 114100);
+ assert(unsigned(zero_extend(0x1bdb8, 64)) == 114104);
+ assert(unsigned(zero_extend(0x1bdbc, 64)) == 114108);
+ assert(unsigned(zero_extend(0x1bdc0, 64)) == 114112);
+ assert(unsigned(zero_extend(0x1bdc4, 64)) == 114116);
+ assert(unsigned(zero_extend(0x1bdc8, 64)) == 114120);
+ assert(unsigned(zero_extend(0x1bdcc, 64)) == 114124);
+ assert(unsigned(zero_extend(0x1bdd0, 64)) == 114128);
+ assert(unsigned(zero_extend(0x1bdd4, 64)) == 114132);
+ assert(unsigned(zero_extend(0x1bdd8, 64)) == 114136);
+ assert(unsigned(zero_extend(0x1bddc, 64)) == 114140);
+ assert(unsigned(zero_extend(0x1bde0, 64)) == 114144);
+ assert(unsigned(zero_extend(0x1bde4, 64)) == 114148);
+ assert(unsigned(zero_extend(0x1bde8, 64)) == 114152);
+ assert(unsigned(zero_extend(0x1bdec, 64)) == 114156);
+ assert(unsigned(zero_extend(0x1bdf0, 64)) == 114160);
+ assert(unsigned(zero_extend(0x1bdf4, 64)) == 114164);
+ assert(unsigned(zero_extend(0x1bdf8, 64)) == 114168);
+ assert(unsigned(zero_extend(0x1bdfc, 64)) == 114172);
+ assert(unsigned(zero_extend(0x1be00, 64)) == 114176);
+ assert(unsigned(zero_extend(0x1be04, 64)) == 114180);
+ assert(unsigned(zero_extend(0x1be08, 64)) == 114184);
+ assert(unsigned(zero_extend(0x1be0c, 64)) == 114188);
+ assert(unsigned(zero_extend(0x1be10, 64)) == 114192);
+ assert(unsigned(zero_extend(0x1be14, 64)) == 114196);
+ assert(unsigned(zero_extend(0x1be18, 64)) == 114200);
+ assert(unsigned(zero_extend(0x1be1c, 64)) == 114204);
+ assert(unsigned(zero_extend(0x1be20, 64)) == 114208);
+ assert(unsigned(zero_extend(0x1be24, 64)) == 114212);
+ assert(unsigned(zero_extend(0x1be28, 64)) == 114216);
+ assert(unsigned(zero_extend(0x1be2c, 64)) == 114220);
+ assert(unsigned(zero_extend(0x1be30, 64)) == 114224);
+ assert(unsigned(zero_extend(0x1be34, 64)) == 114228);
+ assert(unsigned(zero_extend(0x1be38, 64)) == 114232);
+ assert(unsigned(zero_extend(0x1be3c, 64)) == 114236);
+ assert(unsigned(zero_extend(0x1be40, 64)) == 114240);
+ assert(unsigned(zero_extend(0x1be44, 64)) == 114244);
+ assert(unsigned(zero_extend(0x1be48, 64)) == 114248);
+ assert(unsigned(zero_extend(0x1be4c, 64)) == 114252);
+ assert(unsigned(zero_extend(0x1be50, 64)) == 114256);
+ assert(unsigned(zero_extend(0x1be54, 64)) == 114260);
+ assert(unsigned(zero_extend(0x1be58, 64)) == 114264);
+ assert(unsigned(zero_extend(0x1be5c, 64)) == 114268);
+ assert(unsigned(zero_extend(0x1be60, 64)) == 114272);
+ assert(unsigned(zero_extend(0x1be64, 64)) == 114276);
+ assert(unsigned(zero_extend(0x1be68, 64)) == 114280);
+ assert(unsigned(zero_extend(0x1be6c, 64)) == 114284);
+ assert(unsigned(zero_extend(0x1be70, 64)) == 114288);
+ assert(unsigned(zero_extend(0x1be74, 64)) == 114292);
+ assert(unsigned(zero_extend(0x1be78, 64)) == 114296);
+ assert(unsigned(zero_extend(0x1be7c, 64)) == 114300);
+ assert(unsigned(zero_extend(0x1be80, 64)) == 114304);
+ assert(unsigned(zero_extend(0x1be84, 64)) == 114308);
+ assert(unsigned(zero_extend(0x1be88, 64)) == 114312);
+ assert(unsigned(zero_extend(0x1be8c, 64)) == 114316);
+ assert(unsigned(zero_extend(0x1be90, 64)) == 114320);
+ assert(unsigned(zero_extend(0x1be94, 64)) == 114324);
+ assert(unsigned(zero_extend(0x1be98, 64)) == 114328);
+ assert(unsigned(zero_extend(0x1be9c, 64)) == 114332);
+ assert(unsigned(zero_extend(0x1bea0, 64)) == 114336);
+ assert(unsigned(zero_extend(0x1bea4, 64)) == 114340);
+ assert(unsigned(zero_extend(0x1beb4, 64)) == 114356);
+ assert(unsigned(zero_extend(0x1beb8, 64)) == 114360);
+ assert(unsigned(zero_extend(0x1bebc, 64)) == 114364);
+ assert(unsigned(zero_extend(0x1bec0, 64)) == 114368);
+ assert(unsigned(zero_extend(0x1bec4, 64)) == 114372);
+ assert(unsigned(zero_extend(0x1bec8, 64)) == 114376);
+ assert(unsigned(zero_extend(0x1becc, 64)) == 114380);
+ assert(unsigned(zero_extend(0x1bed0, 64)) == 114384);
+ assert(unsigned(zero_extend(0x1bed4, 64)) == 114388);
+ assert(unsigned(zero_extend(0x1bed8, 64)) == 114392);
+ assert(unsigned(zero_extend(0x1bedc, 64)) == 114396);
+ assert(unsigned(zero_extend(0x1bee0, 64)) == 114400);
+ assert(unsigned(zero_extend(0x1bef0, 64)) == 114416);
+ assert(unsigned(zero_extend(0x1bef4, 64)) == 114420);
+ assert(unsigned(zero_extend(0x1bef8, 64)) == 114424);
+ assert(unsigned(zero_extend(0x1befc, 64)) == 114428);
+ assert(unsigned(zero_extend(0x1bf5c, 64)) == 114524);
+ assert(unsigned(zero_extend(0x1bf60, 64)) == 114528);
+ assert(unsigned(zero_extend(0x1bf64, 64)) == 114532);
+ assert(unsigned(zero_extend(0x1bf68, 64)) == 114536);
+ assert(unsigned(zero_extend(0x1bf6c, 64)) == 114540);
+ assert(unsigned(zero_extend(0x1bf70, 64)) == 114544);
+ assert(unsigned(zero_extend(0x1bf88, 64)) == 114568);
+ assert(unsigned(zero_extend(0x1bf8c, 64)) == 114572);
+ assert(unsigned(zero_extend(0x1bf90, 64)) == 114576);
+ assert(unsigned(zero_extend(0x1bf94, 64)) == 114580);
+ assert(unsigned(zero_extend(0x1bf98, 64)) == 114584);
+ assert(unsigned(zero_extend(0x1bf9c, 64)) == 114588);
+ assert(unsigned(zero_extend(0x1bfa0, 64)) == 114592);
+ assert(unsigned(zero_extend(0x1bfa4, 64)) == 114596);
+ assert(unsigned(zero_extend(0x1bfa8, 64)) == 114600);
+ assert(unsigned(zero_extend(0x1bfac, 64)) == 114604);
+ assert(unsigned(zero_extend(0x1bfb0, 64)) == 114608);
+ assert(unsigned(zero_extend(0x1bfb4, 64)) == 114612);
+ assert(unsigned(zero_extend(0x1bfb8, 64)) == 114616);
+ assert(unsigned(zero_extend(0x1bfbc, 64)) == 114620);
+ assert(unsigned(zero_extend(0x1bfc0, 64)) == 114624);
+ assert(unsigned(zero_extend(0x1bfc4, 64)) == 114628);
+ assert(unsigned(zero_extend(0x1bfc8, 64)) == 114632);
+ assert(unsigned(zero_extend(0x1bfcc, 64)) == 114636);
+ assert(unsigned(zero_extend(0x1bfd0, 64)) == 114640);
+ assert(unsigned(zero_extend(0x1bfd4, 64)) == 114644);
+ assert(unsigned(zero_extend(0x1bfd8, 64)) == 114648);
+ assert(unsigned(zero_extend(0x1bfdc, 64)) == 114652);
+ assert(unsigned(zero_extend(0x1bfe0, 64)) == 114656);
+ assert(unsigned(zero_extend(0x1bfe4, 64)) == 114660);
+ assert(unsigned(zero_extend(0x1bfe8, 64)) == 114664);
+ assert(unsigned(zero_extend(0x1bfec, 64)) == 114668);
+ assert(unsigned(zero_extend(0x1bff0, 64)) == 114672);
+ assert(unsigned(zero_extend(0x1bff4, 64)) == 114676);
+ assert(unsigned(zero_extend(0x1bff8, 64)) == 114680);
+ assert(unsigned(zero_extend(0x1bffc, 64)) == 114684);
+ assert(unsigned(zero_extend(0x1c, 64)) == 28);
+ assert(unsigned(zero_extend(0x1c0, 64)) == 448);
+ assert(unsigned(zero_extend(0x1c000, 64)) == 114688);
+ assert(unsigned(zero_extend(0x1c004, 64)) == 114692);
+ assert(unsigned(zero_extend(0x1c008, 64)) == 114696);
+ assert(unsigned(zero_extend(0x1c00c, 64)) == 114700);
+ assert(unsigned(zero_extend(0x1c010, 64)) == 114704);
+ assert(unsigned(zero_extend(0x1c014, 64)) == 114708);
+ assert(unsigned(zero_extend(0x1c018, 64)) == 114712);
+ assert(unsigned(zero_extend(0x1c01c, 64)) == 114716);
+ assert(unsigned(zero_extend(0x1c020, 64)) == 114720);
+ assert(unsigned(zero_extend(0x1c024, 64)) == 114724);
+ assert(unsigned(zero_extend(0x1c028, 64)) == 114728);
+ assert(unsigned(zero_extend(0x1c02c, 64)) == 114732);
+ assert(unsigned(zero_extend(0x1c030, 64)) == 114736);
+ assert(unsigned(zero_extend(0x1c034, 64)) == 114740);
+ assert(unsigned(zero_extend(0x1c038, 64)) == 114744);
+ assert(unsigned(zero_extend(0x1c03c, 64)) == 114748);
+ assert(unsigned(zero_extend(0x1c040, 64)) == 114752);
+ assert(unsigned(zero_extend(0x1c044, 64)) == 114756);
+ assert(unsigned(zero_extend(0x1c048, 64)) == 114760);
+ assert(unsigned(zero_extend(0x1c04c, 64)) == 114764);
+ assert(unsigned(zero_extend(0x1c050, 64)) == 114768);
+ assert(unsigned(zero_extend(0x1c054, 64)) == 114772);
+ assert(unsigned(zero_extend(0x1c058, 64)) == 114776);
+ assert(unsigned(zero_extend(0x1c05c, 64)) == 114780);
+ assert(unsigned(zero_extend(0x1c060, 64)) == 114784);
+ assert(unsigned(zero_extend(0x1c064, 64)) == 114788);
+ assert(unsigned(zero_extend(0x1c068, 64)) == 114792);
+ assert(unsigned(zero_extend(0x1c06c, 64)) == 114796);
+ assert(unsigned(zero_extend(0x1c070, 64)) == 114800);
+ assert(unsigned(zero_extend(0x1c074, 64)) == 114804);
+ assert(unsigned(zero_extend(0x1c078, 64)) == 114808);
+ assert(unsigned(zero_extend(0x1c07c, 64)) == 114812);
+ assert(unsigned(zero_extend(0x1c080, 64)) == 114816);
+ assert(unsigned(zero_extend(0x1c084, 64)) == 114820);
+ assert(unsigned(zero_extend(0x1c088, 64)) == 114824);
+ assert(unsigned(zero_extend(0x1c08c, 64)) == 114828);
+ assert(unsigned(zero_extend(0x1c090, 64)) == 114832);
+ assert(unsigned(zero_extend(0x1c094, 64)) == 114836);
+ assert(unsigned(zero_extend(0x1c098, 64)) == 114840);
+ assert(unsigned(zero_extend(0x1c09c, 64)) == 114844);
+ assert(unsigned(zero_extend(0x1c0a0, 64)) == 114848);
+ assert(unsigned(zero_extend(0x1c0a4, 64)) == 114852);
+ assert(unsigned(zero_extend(0x1c0a8, 64)) == 114856);
+ assert(unsigned(zero_extend(0x1c0ac, 64)) == 114860);
+ assert(unsigned(zero_extend(0x1c0b0, 64)) == 114864);
+ assert(unsigned(zero_extend(0x1c0b4, 64)) == 114868);
+ assert(unsigned(zero_extend(0x1c0b8, 64)) == 114872);
+ assert(unsigned(zero_extend(0x1c0bc, 64)) == 114876);
+ assert(unsigned(zero_extend(0x1c0c0, 64)) == 114880);
+ assert(unsigned(zero_extend(0x1c0c4, 64)) == 114884);
+ assert(unsigned(zero_extend(0x1c0c8, 64)) == 114888);
+ assert(unsigned(zero_extend(0x1c0cc, 64)) == 114892);
+ assert(unsigned(zero_extend(0x1c0d0, 64)) == 114896);
+ assert(unsigned(zero_extend(0x1c0d4, 64)) == 114900);
+ assert(unsigned(zero_extend(0x1c0d8, 64)) == 114904);
+ assert(unsigned(zero_extend(0x1c0dc, 64)) == 114908);
+ assert(unsigned(zero_extend(0x1c0e0, 64)) == 114912);
+ assert(unsigned(zero_extend(0x1c0e4, 64)) == 114916);
+ assert(unsigned(zero_extend(0x1c0e8, 64)) == 114920);
+ assert(unsigned(zero_extend(0x1c0ec, 64)) == 114924);
+ assert(unsigned(zero_extend(0x1c0f0, 64)) == 114928);
+ assert(unsigned(zero_extend(0x1c0f4, 64)) == 114932);
+ assert(unsigned(zero_extend(0x1c0f8, 64)) == 114936);
+ assert(unsigned(zero_extend(0x1c0fc, 64)) == 114940);
+ assert(unsigned(zero_extend(0x1c100, 64)) == 114944);
+ assert(unsigned(zero_extend(0x1c104, 64)) == 114948);
+ assert(unsigned(zero_extend(0x1c108, 64)) == 114952);
+ assert(unsigned(zero_extend(0x1c10c, 64)) == 114956);
+ assert(unsigned(zero_extend(0x1c110, 64)) == 114960);
+ assert(unsigned(zero_extend(0x1c114, 64)) == 114964);
+ assert(unsigned(zero_extend(0x1c118, 64)) == 114968);
+ assert(unsigned(zero_extend(0x1c11c, 64)) == 114972);
+ assert(unsigned(zero_extend(0x1c120, 64)) == 114976);
+ assert(unsigned(zero_extend(0x1c124, 64)) == 114980);
+ assert(unsigned(zero_extend(0x1c128, 64)) == 114984);
+ assert(unsigned(zero_extend(0x1c12c, 64)) == 114988);
+ assert(unsigned(zero_extend(0x1c130, 64)) == 114992);
+ assert(unsigned(zero_extend(0x1c134, 64)) == 114996);
+ assert(unsigned(zero_extend(0x1c138, 64)) == 115000);
+ assert(unsigned(zero_extend(0x1c13c, 64)) == 115004);
+ assert(unsigned(zero_extend(0x1c140, 64)) == 115008);
+ assert(unsigned(zero_extend(0x1c144, 64)) == 115012);
+ assert(unsigned(zero_extend(0x1c148, 64)) == 115016);
+ assert(unsigned(zero_extend(0x1c14c, 64)) == 115020);
+ assert(unsigned(zero_extend(0x1c150, 64)) == 115024);
+ assert(unsigned(zero_extend(0x1c154, 64)) == 115028);
+ assert(unsigned(zero_extend(0x1c158, 64)) == 115032);
+ assert(unsigned(zero_extend(0x1c168, 64)) == 115048);
+ assert(unsigned(zero_extend(0x1c16c, 64)) == 115052);
+ assert(unsigned(zero_extend(0x1c17c, 64)) == 115068);
+ assert(unsigned(zero_extend(0x1c180, 64)) == 115072);
+ assert(unsigned(zero_extend(0x1c184, 64)) == 115076);
+ assert(unsigned(zero_extend(0x1c188, 64)) == 115080);
+ assert(unsigned(zero_extend(0x1c18c, 64)) == 115084);
+ assert(unsigned(zero_extend(0x1c190, 64)) == 115088);
+ assert(unsigned(zero_extend(0x1c1a0, 64)) == 115104);
+ assert(unsigned(zero_extend(0x1c1a4, 64)) == 115108);
+ assert(unsigned(zero_extend(0x1c1a8, 64)) == 115112);
+ assert(unsigned(zero_extend(0x1c1e8, 64)) == 115176);
+ assert(unsigned(zero_extend(0x1c1ec, 64)) == 115180);
+ assert(unsigned(zero_extend(0x1c1f0, 64)) == 115184);
+ assert(unsigned(zero_extend(0x1c1f4, 64)) == 115188);
+ assert(unsigned(zero_extend(0x1c1f8, 64)) == 115192);
+ assert(unsigned(zero_extend(0x1c1fc, 64)) == 115196);
+ assert(unsigned(zero_extend(0x1c200, 64)) == 115200);
+ assert(unsigned(zero_extend(0x1c204, 64)) == 115204);
+ assert(unsigned(zero_extend(0x1c208, 64)) == 115208);
+ assert(unsigned(zero_extend(0x1c20c, 64)) == 115212);
+ assert(unsigned(zero_extend(0x1c240, 64)) == 115264);
+ assert(unsigned(zero_extend(0x1c244, 64)) == 115268);
+ assert(unsigned(zero_extend(0x1c248, 64)) == 115272);
+ assert(unsigned(zero_extend(0x1c24c, 64)) == 115276);
+ assert(unsigned(zero_extend(0x1c250, 64)) == 115280);
+ assert(unsigned(zero_extend(0x1c254, 64)) == 115284);
+ assert(unsigned(zero_extend(0x1c258, 64)) == 115288);
+ assert(unsigned(zero_extend(0x1c25c, 64)) == 115292);
+ assert(unsigned(zero_extend(0x1c260, 64)) == 115296);
+ assert(unsigned(zero_extend(0x1c264, 64)) == 115300);
+ assert(unsigned(zero_extend(0x1c3ec, 64)) == 115692);
+ assert(unsigned(zero_extend(0x1c3f0, 64)) == 115696);
+ assert(unsigned(zero_extend(0x1c3f4, 64)) == 115700);
+ assert(unsigned(zero_extend(0x1c3f8, 64)) == 115704);
+ assert(unsigned(zero_extend(0x1c3fc, 64)) == 115708);
+ assert(unsigned(zero_extend(0x1c400, 64)) == 115712);
+ assert(unsigned(zero_extend(0x1c404, 64)) == 115716);
+ assert(unsigned(zero_extend(0x1c408, 64)) == 115720);
+ assert(unsigned(zero_extend(0x1c40c, 64)) == 115724);
+ assert(unsigned(zero_extend(0x1c410, 64)) == 115728);
+ assert(unsigned(zero_extend(0x1c414, 64)) == 115732);
+ assert(unsigned(zero_extend(0x1c418, 64)) == 115736);
+ assert(unsigned(zero_extend(0x1c41c, 64)) == 115740);
+ assert(unsigned(zero_extend(0x1c420, 64)) == 115744);
+ assert(unsigned(zero_extend(0x1c424, 64)) == 115748);
+ assert(unsigned(zero_extend(0x1c428, 64)) == 115752);
+ assert(unsigned(zero_extend(0x1c42c, 64)) == 115756);
+ assert(unsigned(zero_extend(0x1c430, 64)) == 115760);
+ assert(unsigned(zero_extend(0x1c434, 64)) == 115764);
+ assert(unsigned(zero_extend(0x1c438, 64)) == 115768);
+ assert(unsigned(zero_extend(0x1c43c, 64)) == 115772);
+ assert(unsigned(zero_extend(0x1c440, 64)) == 115776);
+ assert(unsigned(zero_extend(0x1c444, 64)) == 115780);
+ assert(unsigned(zero_extend(0x1c448, 64)) == 115784);
+ assert(unsigned(zero_extend(0x1c44c, 64)) == 115788);
+ assert(unsigned(zero_extend(0x1c450, 64)) == 115792);
+ assert(unsigned(zero_extend(0x1c454, 64)) == 115796);
+ assert(unsigned(zero_extend(0x1c458, 64)) == 115800);
+ assert(unsigned(zero_extend(0x1c45c, 64)) == 115804);
+ assert(unsigned(zero_extend(0x1c460, 64)) == 115808);
+ assert(unsigned(zero_extend(0x1c464, 64)) == 115812);
+ assert(unsigned(zero_extend(0x1c468, 64)) == 115816);
+ assert(unsigned(zero_extend(0x1c46c, 64)) == 115820);
+ assert(unsigned(zero_extend(0x1c470, 64)) == 115824);
+ assert(unsigned(zero_extend(0x1c474, 64)) == 115828);
+ assert(unsigned(zero_extend(0x1c478, 64)) == 115832);
+ assert(unsigned(zero_extend(0x1c47c, 64)) == 115836);
+ assert(unsigned(zero_extend(0x1c480, 64)) == 115840);
+ assert(unsigned(zero_extend(0x1c484, 64)) == 115844);
+ assert(unsigned(zero_extend(0x1c488, 64)) == 115848);
+ assert(unsigned(zero_extend(0x1c48c, 64)) == 115852);
+ assert(unsigned(zero_extend(0x1c490, 64)) == 115856);
+ assert(unsigned(zero_extend(0x1c494, 64)) == 115860);
+ assert(unsigned(zero_extend(0x1c498, 64)) == 115864);
+ assert(unsigned(zero_extend(0x1c49c, 64)) == 115868);
+ assert(unsigned(zero_extend(0x1c4a0, 64)) == 115872);
+ assert(unsigned(zero_extend(0x1c4a4, 64)) == 115876);
+ assert(unsigned(zero_extend(0x1c4a8, 64)) == 115880);
+ assert(unsigned(zero_extend(0x1c4ac, 64)) == 115884);
+ assert(unsigned(zero_extend(0x1c4b0, 64)) == 115888);
+ assert(unsigned(zero_extend(0x1c4b4, 64)) == 115892);
+ assert(unsigned(zero_extend(0x1c4b8, 64)) == 115896);
+ assert(unsigned(zero_extend(0x1c4c8, 64)) == 115912);
+ assert(unsigned(zero_extend(0x1c4cc, 64)) == 115916);
+ assert(unsigned(zero_extend(0x1c4d0, 64)) == 115920);
+ assert(unsigned(zero_extend(0x1c4d4, 64)) == 115924);
+ assert(unsigned(zero_extend(0x1c4d8, 64)) == 115928);
+ assert(unsigned(zero_extend(0x1c4dc, 64)) == 115932);
+ assert(unsigned(zero_extend(0x1c4e0, 64)) == 115936);
+ assert(unsigned(zero_extend(0x1c4e4, 64)) == 115940);
+ assert(unsigned(zero_extend(0x1c4e8, 64)) == 115944);
+ assert(unsigned(zero_extend(0x1c4ec, 64)) == 115948);
+ assert(unsigned(zero_extend(0x1c4f0, 64)) == 115952);
+ assert(unsigned(zero_extend(0x1c4f4, 64)) == 115956);
+ assert(unsigned(zero_extend(0x1c4f8, 64)) == 115960);
+ assert(unsigned(zero_extend(0x1c4fc, 64)) == 115964);
+ assert(unsigned(zero_extend(0x1c500, 64)) == 115968);
+ assert(unsigned(zero_extend(0x1c504, 64)) == 115972);
+ assert(unsigned(zero_extend(0x1c508, 64)) == 115976);
+ assert(unsigned(zero_extend(0x1c50c, 64)) == 115980);
+ assert(unsigned(zero_extend(0x1c510, 64)) == 115984);
+ assert(unsigned(zero_extend(0x1c514, 64)) == 115988);
+ assert(unsigned(zero_extend(0x1c518, 64)) == 115992);
+ assert(unsigned(zero_extend(0x1c51c, 64)) == 115996);
+ assert(unsigned(zero_extend(0x1c520, 64)) == 116000);
+ assert(unsigned(zero_extend(0x1c524, 64)) == 116004);
+ assert(unsigned(zero_extend(0x1c528, 64)) == 116008);
+ assert(unsigned(zero_extend(0x1c52c, 64)) == 116012);
+ assert(unsigned(zero_extend(0x1c530, 64)) == 116016);
+ assert(unsigned(zero_extend(0x1c534, 64)) == 116020);
+ assert(unsigned(zero_extend(0x1c538, 64)) == 116024);
+ assert(unsigned(zero_extend(0x1c53c, 64)) == 116028);
+ assert(unsigned(zero_extend(0x1c540, 64)) == 116032);
+ assert(unsigned(zero_extend(0x1c544, 64)) == 116036);
+ assert(unsigned(zero_extend(0x1c548, 64)) == 116040);
+ assert(unsigned(zero_extend(0x1c54c, 64)) == 116044);
+ assert(unsigned(zero_extend(0x1c550, 64)) == 116048);
+ assert(unsigned(zero_extend(0x1c554, 64)) == 116052);
+ assert(unsigned(zero_extend(0x1c558, 64)) == 116056);
+ assert(unsigned(zero_extend(0x1c55c, 64)) == 116060);
+ assert(unsigned(zero_extend(0x1c560, 64)) == 116064);
+ assert(unsigned(zero_extend(0x1c564, 64)) == 116068);
+ assert(unsigned(zero_extend(0x1c568, 64)) == 116072);
+ assert(unsigned(zero_extend(0x1c56c, 64)) == 116076);
+ assert(unsigned(zero_extend(0x1c570, 64)) == 116080);
+ assert(unsigned(zero_extend(0x1c574, 64)) == 116084);
+ assert(unsigned(zero_extend(0x1c578, 64)) == 116088);
+ assert(unsigned(zero_extend(0x1c57c, 64)) == 116092);
+ assert(unsigned(zero_extend(0x1c580, 64)) == 116096);
+ assert(unsigned(zero_extend(0x1c584, 64)) == 116100);
+ assert(unsigned(zero_extend(0x1c588, 64)) == 116104);
+ assert(unsigned(zero_extend(0x1c58c, 64)) == 116108);
+ assert(unsigned(zero_extend(0x1c590, 64)) == 116112);
+ assert(unsigned(zero_extend(0x1c594, 64)) == 116116);
+ assert(unsigned(zero_extend(0x1c598, 64)) == 116120);
+ assert(unsigned(zero_extend(0x1c5a0, 64)) == 116128);
+ assert(unsigned(zero_extend(0x1c5a8, 64)) == 116136);
+ assert(unsigned(zero_extend(0x1c5b0, 64)) == 116144);
+ assert(unsigned(zero_extend(0x1c5b8, 64)) == 116152);
+ assert(unsigned(zero_extend(0x1c5c0, 64)) == 116160);
+ assert(unsigned(zero_extend(0x1c5c8, 64)) == 116168);
+ assert(unsigned(zero_extend(0x1c5d0, 64)) == 116176);
+ assert(unsigned(zero_extend(0x1c5d8, 64)) == 116184);
+ assert(unsigned(zero_extend(0x1c5e0, 64)) == 116192);
+ assert(unsigned(zero_extend(0x1c5e4, 64)) == 116196);
+ assert(unsigned(zero_extend(0x1c5e8, 64)) == 116200);
+ assert(unsigned(zero_extend(0x1c5ec, 64)) == 116204);
+ assert(unsigned(zero_extend(0x1c5f0, 64)) == 116208);
+ assert(unsigned(zero_extend(0x1c5f4, 64)) == 116212);
+ assert(unsigned(zero_extend(0x1c5f8, 64)) == 116216);
+ assert(unsigned(zero_extend(0x1c5fc, 64)) == 116220);
+ assert(unsigned(zero_extend(0x1c600, 64)) == 116224);
+ assert(unsigned(zero_extend(0x1c604, 64)) == 116228);
+ assert(unsigned(zero_extend(0x1c608, 64)) == 116232);
+ assert(unsigned(zero_extend(0x1c60c, 64)) == 116236);
+ assert(unsigned(zero_extend(0x1c610, 64)) == 116240);
+ assert(unsigned(zero_extend(0x1c614, 64)) == 116244);
+ assert(unsigned(zero_extend(0x1c618, 64)) == 116248);
+ assert(unsigned(zero_extend(0x1c61c, 64)) == 116252);
+ assert(unsigned(zero_extend(0x1c620, 64)) == 116256);
+ assert(unsigned(zero_extend(0x1c624, 64)) == 116260);
+ assert(unsigned(zero_extend(0x1c628, 64)) == 116264);
+ assert(unsigned(zero_extend(0x1c62c, 64)) == 116268);
+ assert(unsigned(zero_extend(0x1c630, 64)) == 116272);
+ assert(unsigned(zero_extend(0x1c634, 64)) == 116276);
+ assert(unsigned(zero_extend(0x1c638, 64)) == 116280);
+ assert(unsigned(zero_extend(0x1c63c, 64)) == 116284);
+ assert(unsigned(zero_extend(0x1c640, 64)) == 116288);
+ assert(unsigned(zero_extend(0x1c644, 64)) == 116292);
+ assert(unsigned(zero_extend(0x1c648, 64)) == 116296);
+ assert(unsigned(zero_extend(0x1c64c, 64)) == 116300);
+ assert(unsigned(zero_extend(0x1c650, 64)) == 116304);
+ assert(unsigned(zero_extend(0x1c654, 64)) == 116308);
+ assert(unsigned(zero_extend(0x1c658, 64)) == 116312);
+ assert(unsigned(zero_extend(0x1c65c, 64)) == 116316);
+ assert(unsigned(zero_extend(0x1c660, 64)) == 116320);
+ assert(unsigned(zero_extend(0x1c664, 64)) == 116324);
+ assert(unsigned(zero_extend(0x1c668, 64)) == 116328);
+ assert(unsigned(zero_extend(0x1c66c, 64)) == 116332);
+ assert(unsigned(zero_extend(0x1c670, 64)) == 116336);
+ assert(unsigned(zero_extend(0x1c674, 64)) == 116340);
+ assert(unsigned(zero_extend(0x1c678, 64)) == 116344);
+ assert(unsigned(zero_extend(0x1c67c, 64)) == 116348);
+ assert(unsigned(zero_extend(0x1c680, 64)) == 116352);
+ assert(unsigned(zero_extend(0x1c684, 64)) == 116356);
+ assert(unsigned(zero_extend(0x1c688, 64)) == 116360);
+ assert(unsigned(zero_extend(0x1c68c, 64)) == 116364);
+ assert(unsigned(zero_extend(0x1c690, 64)) == 116368);
+ assert(unsigned(zero_extend(0x1c694, 64)) == 116372);
+ assert(unsigned(zero_extend(0x1c698, 64)) == 116376);
+ assert(unsigned(zero_extend(0x1c69c, 64)) == 116380);
+ assert(unsigned(zero_extend(0x1c6a0, 64)) == 116384);
+ assert(unsigned(zero_extend(0x1c6a4, 64)) == 116388);
+ assert(unsigned(zero_extend(0x1c6a8, 64)) == 116392);
+ assert(unsigned(zero_extend(0x1c6ac, 64)) == 116396);
+ assert(unsigned(zero_extend(0x1c6b0, 64)) == 116400);
+ assert(unsigned(zero_extend(0x1c6b4, 64)) == 116404);
+ assert(unsigned(zero_extend(0x1c6b8, 64)) == 116408);
+ assert(unsigned(zero_extend(0x1c6bc, 64)) == 116412);
+ assert(unsigned(zero_extend(0x1c6c0, 64)) == 116416);
+ assert(unsigned(zero_extend(0x1c6c4, 64)) == 116420);
+ assert(unsigned(zero_extend(0x1c6c8, 64)) == 116424);
+ assert(unsigned(zero_extend(0x1c6cc, 64)) == 116428);
+ assert(unsigned(zero_extend(0x1c6d0, 64)) == 116432);
+ assert(unsigned(zero_extend(0x1c6d4, 64)) == 116436);
+ assert(unsigned(zero_extend(0x1c6d8, 64)) == 116440);
+ assert(unsigned(zero_extend(0x1c6dc, 64)) == 116444);
+ assert(unsigned(zero_extend(0x1c6e0, 64)) == 116448);
+ assert(unsigned(zero_extend(0x1c6e4, 64)) == 116452);
+ assert(unsigned(zero_extend(0x1c6f4, 64)) == 116468);
+ assert(unsigned(zero_extend(0x1c6f8, 64)) == 116472);
+ assert(unsigned(zero_extend(0x1c6fc, 64)) == 116476);
+ assert(unsigned(zero_extend(0x1c700, 64)) == 116480);
+ assert(unsigned(zero_extend(0x1c704, 64)) == 116484);
+ assert(unsigned(zero_extend(0x1c708, 64)) == 116488);
+ assert(unsigned(zero_extend(0x1c70c, 64)) == 116492);
+ assert(unsigned(zero_extend(0x1c710, 64)) == 116496);
+ assert(unsigned(zero_extend(0x1c714, 64)) == 116500);
+ assert(unsigned(zero_extend(0x1c718, 64)) == 116504);
+ assert(unsigned(zero_extend(0x1c71c, 64)) == 116508);
+ assert(unsigned(zero_extend(0x1c720, 64)) == 116512);
+ assert(unsigned(zero_extend(0x1c724, 64)) == 116516);
+ assert(unsigned(zero_extend(0x1c728, 64)) == 116520);
+ assert(unsigned(zero_extend(0x1c72c, 64)) == 116524);
+ assert(unsigned(zero_extend(0x1c730, 64)) == 116528);
+ assert(unsigned(zero_extend(0x1c734, 64)) == 116532);
+ assert(unsigned(zero_extend(0x1c738, 64)) == 116536);
+ assert(unsigned(zero_extend(0x1c73c, 64)) == 116540);
+ assert(unsigned(zero_extend(0x1c740, 64)) == 116544);
+ assert(unsigned(zero_extend(0x1c744, 64)) == 116548);
+ assert(unsigned(zero_extend(0x1c748, 64)) == 116552);
+ assert(unsigned(zero_extend(0x1c74c, 64)) == 116556);
+ assert(unsigned(zero_extend(0x1c750, 64)) == 116560);
+ assert(unsigned(zero_extend(0x1c754, 64)) == 116564);
+ assert(unsigned(zero_extend(0x1c758, 64)) == 116568);
+ assert(unsigned(zero_extend(0x1c75c, 64)) == 116572);
+ assert(unsigned(zero_extend(0x1c760, 64)) == 116576);
+ assert(unsigned(zero_extend(0x1c764, 64)) == 116580);
+ assert(unsigned(zero_extend(0x1c768, 64)) == 116584);
+ assert(unsigned(zero_extend(0x1c76c, 64)) == 116588);
+ assert(unsigned(zero_extend(0x1c770, 64)) == 116592);
+ assert(unsigned(zero_extend(0x1c774, 64)) == 116596);
+ assert(unsigned(zero_extend(0x1c778, 64)) == 116600);
+ assert(unsigned(zero_extend(0x1c77c, 64)) == 116604);
+ assert(unsigned(zero_extend(0x1c780, 64)) == 116608);
+ assert(unsigned(zero_extend(0x1c784, 64)) == 116612);
+ assert(unsigned(zero_extend(0x1c788, 64)) == 116616);
+ assert(unsigned(zero_extend(0x1c78c, 64)) == 116620);
+ assert(unsigned(zero_extend(0x1c790, 64)) == 116624);
+ assert(unsigned(zero_extend(0x1c794, 64)) == 116628);
+ assert(unsigned(zero_extend(0x1c798, 64)) == 116632);
+ assert(unsigned(zero_extend(0x1c79c, 64)) == 116636);
+ assert(unsigned(zero_extend(0x1c7a0, 64)) == 116640);
+ assert(unsigned(zero_extend(0x1c7a4, 64)) == 116644);
+ assert(unsigned(zero_extend(0x1c7a8, 64)) == 116648);
+ assert(unsigned(zero_extend(0x1c7ac, 64)) == 116652);
+ assert(unsigned(zero_extend(0x1c7b0, 64)) == 116656);
+ assert(unsigned(zero_extend(0x1c7b4, 64)) == 116660);
+ assert(unsigned(zero_extend(0x1c7b8, 64)) == 116664);
+ assert(unsigned(zero_extend(0x1c7bc, 64)) == 116668);
+ assert(unsigned(zero_extend(0x1c7c0, 64)) == 116672);
+ assert(unsigned(zero_extend(0x1c7c4, 64)) == 116676);
+ assert(unsigned(zero_extend(0x1c7c8, 64)) == 116680);
+ assert(unsigned(zero_extend(0x1c7cc, 64)) == 116684);
+ assert(unsigned(zero_extend(0x1c7d0, 64)) == 116688);
+ assert(unsigned(zero_extend(0x1c7d4, 64)) == 116692);
+ assert(unsigned(zero_extend(0x1c7d8, 64)) == 116696);
+ assert(unsigned(zero_extend(0x1c7dc, 64)) == 116700);
+ assert(unsigned(zero_extend(0x1c7e0, 64)) == 116704);
+ assert(unsigned(zero_extend(0x1c7e4, 64)) == 116708);
+ assert(unsigned(zero_extend(0x1c7e8, 64)) == 116712);
+ assert(unsigned(zero_extend(0x1c7f8, 64)) == 116728);
+ assert(unsigned(zero_extend(0x1c7fc, 64)) == 116732);
+ assert(unsigned(zero_extend(0x1c800, 64)) == 116736);
+ assert(unsigned(zero_extend(0x1c804, 64)) == 116740);
+ assert(unsigned(zero_extend(0x1c808, 64)) == 116744);
+ assert(unsigned(zero_extend(0x1c80c, 64)) == 116748);
+ assert(unsigned(zero_extend(0x1c810, 64)) == 116752);
+ assert(unsigned(zero_extend(0x1c814, 64)) == 116756);
+ assert(unsigned(zero_extend(0x1c818, 64)) == 116760);
+ assert(unsigned(zero_extend(0x1c81c, 64)) == 116764);
+ assert(unsigned(zero_extend(0x1c820, 64)) == 116768);
+ assert(unsigned(zero_extend(0x1c824, 64)) == 116772);
+ assert(unsigned(zero_extend(0x1c828, 64)) == 116776);
+ assert(unsigned(zero_extend(0x1c838, 64)) == 116792);
+ assert(unsigned(zero_extend(0x1c83c, 64)) == 116796);
+ assert(unsigned(zero_extend(0x1c860, 64)) == 116832);
+ assert(unsigned(zero_extend(0x1c864, 64)) == 116836);
+ assert(unsigned(zero_extend(0x1c874, 64)) == 116852);
+ assert(unsigned(zero_extend(0x1c878, 64)) == 116856);
+ assert(unsigned(zero_extend(0x1c87c, 64)) == 116860);
+ assert(unsigned(zero_extend(0x1c880, 64)) == 116864);
+ assert(unsigned(zero_extend(0x1c890, 64)) == 116880);
+ assert(unsigned(zero_extend(0x1c894, 64)) == 116884);
+ assert(unsigned(zero_extend(0x1c8b0, 64)) == 116912);
+ assert(unsigned(zero_extend(0x1c8b4, 64)) == 116916);
+ assert(unsigned(zero_extend(0x1c8b8, 64)) == 116920);
+ assert(unsigned(zero_extend(0x1c8bc, 64)) == 116924);
+ assert(unsigned(zero_extend(0x1c8c0, 64)) == 116928);
+ assert(unsigned(zero_extend(0x1c8c4, 64)) == 116932);
+ assert(unsigned(zero_extend(0x1c8c8, 64)) == 116936);
+ assert(unsigned(zero_extend(0x1c8cc, 64)) == 116940);
+ assert(unsigned(zero_extend(0x1c8d0, 64)) == 116944);
+ assert(unsigned(zero_extend(0x1c8d4, 64)) == 116948);
+ assert(unsigned(zero_extend(0x1c8d8, 64)) == 116952);
+ assert(unsigned(zero_extend(0x1c8dc, 64)) == 116956);
+ assert(unsigned(zero_extend(0x1c8e0, 64)) == 116960);
+ assert(unsigned(zero_extend(0x1c8e4, 64)) == 116964);
+ assert(unsigned(zero_extend(0x1c8e8, 64)) == 116968);
+ assert(unsigned(zero_extend(0x1c8ec, 64)) == 116972);
+ assert(unsigned(zero_extend(0x1c8f0, 64)) == 116976);
+ assert(unsigned(zero_extend(0x1c8f4, 64)) == 116980);
+ assert(unsigned(zero_extend(0x1c8f8, 64)) == 116984);
+ assert(unsigned(zero_extend(0x1c8fc, 64)) == 116988);
+ assert(unsigned(zero_extend(0x1c900, 64)) == 116992);
+ assert(unsigned(zero_extend(0x1c904, 64)) == 116996);
+ assert(unsigned(zero_extend(0x1c908, 64)) == 117000);
+ assert(unsigned(zero_extend(0x1c90c, 64)) == 117004);
+ assert(unsigned(zero_extend(0x1c910, 64)) == 117008);
+ assert(unsigned(zero_extend(0x1c914, 64)) == 117012);
+ assert(unsigned(zero_extend(0x1c918, 64)) == 117016);
+ assert(unsigned(zero_extend(0x1c91c, 64)) == 117020);
+ assert(unsigned(zero_extend(0x1c920, 64)) == 117024);
+ assert(unsigned(zero_extend(0x1c924, 64)) == 117028);
+ assert(unsigned(zero_extend(0x1c928, 64)) == 117032);
+ assert(unsigned(zero_extend(0x1c92c, 64)) == 117036);
+ assert(unsigned(zero_extend(0x1c930, 64)) == 117040);
+ assert(unsigned(zero_extend(0x1c934, 64)) == 117044);
+ assert(unsigned(zero_extend(0x1c938, 64)) == 117048);
+ assert(unsigned(zero_extend(0x1c93c, 64)) == 117052);
+ assert(unsigned(zero_extend(0x1c940, 64)) == 117056);
+ assert(unsigned(zero_extend(0x1c944, 64)) == 117060);
+ assert(unsigned(zero_extend(0x1c948, 64)) == 117064);
+ assert(unsigned(zero_extend(0x1c94c, 64)) == 117068);
+ assert(unsigned(zero_extend(0x1c950, 64)) == 117072);
+ assert(unsigned(zero_extend(0x1c954, 64)) == 117076);
+ assert(unsigned(zero_extend(0x1c958, 64)) == 117080);
+ assert(unsigned(zero_extend(0x1c95c, 64)) == 117084);
+ assert(unsigned(zero_extend(0x1c960, 64)) == 117088);
+ assert(unsigned(zero_extend(0x1c964, 64)) == 117092);
+ assert(unsigned(zero_extend(0x1c968, 64)) == 117096);
+ assert(unsigned(zero_extend(0x1c96c, 64)) == 117100);
+ assert(unsigned(zero_extend(0x1c970, 64)) == 117104);
+ assert(unsigned(zero_extend(0x1c974, 64)) == 117108);
+ assert(unsigned(zero_extend(0x1c978, 64)) == 117112);
+ assert(unsigned(zero_extend(0x1c97c, 64)) == 117116);
+ assert(unsigned(zero_extend(0x1c980, 64)) == 117120);
+ assert(unsigned(zero_extend(0x1c984, 64)) == 117124);
+ assert(unsigned(zero_extend(0x1c988, 64)) == 117128);
+ assert(unsigned(zero_extend(0x1c98c, 64)) == 117132);
+ assert(unsigned(zero_extend(0x1c990, 64)) == 117136);
+ assert(unsigned(zero_extend(0x1c994, 64)) == 117140);
+ assert(unsigned(zero_extend(0x1c998, 64)) == 117144);
+ assert(unsigned(zero_extend(0x1c99c, 64)) == 117148);
+ assert(unsigned(zero_extend(0x1c9a0, 64)) == 117152);
+ assert(unsigned(zero_extend(0x1c9a4, 64)) == 117156);
+ assert(unsigned(zero_extend(0x1c9a8, 64)) == 117160);
+ assert(unsigned(zero_extend(0x1c9ac, 64)) == 117164);
+ assert(unsigned(zero_extend(0x1c9b0, 64)) == 117168);
+ assert(unsigned(zero_extend(0x1c9b4, 64)) == 117172);
+ assert(unsigned(zero_extend(0x1c9b8, 64)) == 117176);
+ assert(unsigned(zero_extend(0x1c9bc, 64)) == 117180);
+ assert(unsigned(zero_extend(0x1c9c0, 64)) == 117184);
+ assert(unsigned(zero_extend(0x1c9c8, 64)) == 117192);
+ assert(unsigned(zero_extend(0x1c9cc, 64)) == 117196);
+ assert(unsigned(zero_extend(0x1c9d0, 64)) == 117200);
+ assert(unsigned(zero_extend(0x1c9d4, 64)) == 117204);
+ assert(unsigned(zero_extend(0x1c9d8, 64)) == 117208);
+ assert(unsigned(zero_extend(0x1c9dc, 64)) == 117212);
+ assert(unsigned(zero_extend(0x1c9e0, 64)) == 117216);
+ assert(unsigned(zero_extend(0x1c9e4, 64)) == 117220);
+ assert(unsigned(zero_extend(0x1c9e8, 64)) == 117224);
+ assert(unsigned(zero_extend(0x1c9ec, 64)) == 117228);
+ assert(unsigned(zero_extend(0x1c9f0, 64)) == 117232);
+ assert(unsigned(zero_extend(0x1c9f4, 64)) == 117236);
+ assert(unsigned(zero_extend(0x1c9f8, 64)) == 117240);
+ assert(unsigned(zero_extend(0x1c9fc, 64)) == 117244);
+ assert(unsigned(zero_extend(0x1ca00, 64)) == 117248);
+ assert(unsigned(zero_extend(0x1ca04, 64)) == 117252);
+ assert(unsigned(zero_extend(0x1ca08, 64)) == 117256);
+ assert(unsigned(zero_extend(0x1ca0c, 64)) == 117260);
+ assert(unsigned(zero_extend(0x1ca10, 64)) == 117264);
+ assert(unsigned(zero_extend(0x1ca14, 64)) == 117268);
+ assert(unsigned(zero_extend(0x1ca18, 64)) == 117272);
+ assert(unsigned(zero_extend(0x1ca1c, 64)) == 117276);
+ assert(unsigned(zero_extend(0x1ca20, 64)) == 117280);
+ assert(unsigned(zero_extend(0x1ca24, 64)) == 117284);
+ assert(unsigned(zero_extend(0x1ca28, 64)) == 117288);
+ assert(unsigned(zero_extend(0x1ca2c, 64)) == 117292);
+ assert(unsigned(zero_extend(0x1ca30, 64)) == 117296);
+ assert(unsigned(zero_extend(0x1ca34, 64)) == 117300);
+ assert(unsigned(zero_extend(0x1ca38, 64)) == 117304);
+ assert(unsigned(zero_extend(0x1ca3c, 64)) == 117308);
+ assert(unsigned(zero_extend(0x1ca40, 64)) == 117312);
+ assert(unsigned(zero_extend(0x1ca44, 64)) == 117316);
+ assert(unsigned(zero_extend(0x1ca48, 64)) == 117320);
+ assert(unsigned(zero_extend(0x1ca4c, 64)) == 117324);
+ assert(unsigned(zero_extend(0x1ca50, 64)) == 117328);
+ assert(unsigned(zero_extend(0x1ca54, 64)) == 117332);
+ assert(unsigned(zero_extend(0x1ca58, 64)) == 117336);
+ assert(unsigned(zero_extend(0x1ca5c, 64)) == 117340);
+ assert(unsigned(zero_extend(0x1ca60, 64)) == 117344);
+ assert(unsigned(zero_extend(0x1ca64, 64)) == 117348);
+ assert(unsigned(zero_extend(0x1ca68, 64)) == 117352);
+ assert(unsigned(zero_extend(0x1ca6c, 64)) == 117356);
+ assert(unsigned(zero_extend(0x1ca70, 64)) == 117360);
+ assert(unsigned(zero_extend(0x1ca74, 64)) == 117364);
+ assert(unsigned(zero_extend(0x1ca78, 64)) == 117368);
+ assert(unsigned(zero_extend(0x1ca7c, 64)) == 117372);
+ assert(unsigned(zero_extend(0x1ca80, 64)) == 117376);
+ assert(unsigned(zero_extend(0x1ca84, 64)) == 117380);
+ assert(unsigned(zero_extend(0x1ca88, 64)) == 117384);
+ assert(unsigned(zero_extend(0x1ca8c, 64)) == 117388);
+ assert(unsigned(zero_extend(0x1ca90, 64)) == 117392);
+ assert(unsigned(zero_extend(0x1ca94, 64)) == 117396);
+ assert(unsigned(zero_extend(0x1ca98, 64)) == 117400);
+ assert(unsigned(zero_extend(0x1ca9c, 64)) == 117404);
+ assert(unsigned(zero_extend(0x1caa0, 64)) == 117408);
+ assert(unsigned(zero_extend(0x1caa4, 64)) == 117412);
+ assert(unsigned(zero_extend(0x1caa8, 64)) == 117416);
+ assert(unsigned(zero_extend(0x1caac, 64)) == 117420);
+ assert(unsigned(zero_extend(0x1cab0, 64)) == 117424);
+ assert(unsigned(zero_extend(0x1cab4, 64)) == 117428);
+ assert(unsigned(zero_extend(0x1cab8, 64)) == 117432);
+ assert(unsigned(zero_extend(0x1cabc, 64)) == 117436);
+ assert(unsigned(zero_extend(0x1cac0, 64)) == 117440);
+ assert(unsigned(zero_extend(0x1cac4, 64)) == 117444);
+ assert(unsigned(zero_extend(0x1cac8, 64)) == 117448);
+ assert(unsigned(zero_extend(0x1cacc, 64)) == 117452);
+ assert(unsigned(zero_extend(0x1cad0, 64)) == 117456);
+ assert(unsigned(zero_extend(0x1cad4, 64)) == 117460);
+ assert(unsigned(zero_extend(0x1cad8, 64)) == 117464);
+ assert(unsigned(zero_extend(0x1cadc, 64)) == 117468);
+ assert(unsigned(zero_extend(0x1cae0, 64)) == 117472);
+ assert(unsigned(zero_extend(0x1cae4, 64)) == 117476);
+ assert(unsigned(zero_extend(0x1cae8, 64)) == 117480);
+ assert(unsigned(zero_extend(0x1caec, 64)) == 117484);
+ assert(unsigned(zero_extend(0x1caf0, 64)) == 117488);
+ assert(unsigned(zero_extend(0x1caf4, 64)) == 117492);
+ assert(unsigned(zero_extend(0x1caf8, 64)) == 117496);
+ assert(unsigned(zero_extend(0x1cafc, 64)) == 117500);
+ assert(unsigned(zero_extend(0x1cb00, 64)) == 117504);
+ assert(unsigned(zero_extend(0x1cb04, 64)) == 117508);
+ assert(unsigned(zero_extend(0x1cb08, 64)) == 117512);
+ assert(unsigned(zero_extend(0x1cb0c, 64)) == 117516);
+ assert(unsigned(zero_extend(0x1cb10, 64)) == 117520);
+ assert(unsigned(zero_extend(0x1cb14, 64)) == 117524);
+ assert(unsigned(zero_extend(0x1cb18, 64)) == 117528);
+ assert(unsigned(zero_extend(0x1cb20, 64)) == 117536);
+ assert(unsigned(zero_extend(0x1cb24, 64)) == 117540);
+ assert(unsigned(zero_extend(0x1cb28, 64)) == 117544);
+ assert(unsigned(zero_extend(0x1cb2c, 64)) == 117548);
+ assert(unsigned(zero_extend(0x1cb30, 64)) == 117552);
+ assert(unsigned(zero_extend(0x1cb34, 64)) == 117556);
+ assert(unsigned(zero_extend(0x1cb38, 64)) == 117560);
+ assert(unsigned(zero_extend(0x1cb3c, 64)) == 117564);
+ assert(unsigned(zero_extend(0x1cb40, 64)) == 117568);
+ assert(unsigned(zero_extend(0x1cb44, 64)) == 117572);
+ assert(unsigned(zero_extend(0x1cb48, 64)) == 117576);
+ assert(unsigned(zero_extend(0x1cb4c, 64)) == 117580);
+ assert(unsigned(zero_extend(0x1cb50, 64)) == 117584);
+ assert(unsigned(zero_extend(0x1cb54, 64)) == 117588);
+ assert(unsigned(zero_extend(0x1cb58, 64)) == 117592);
+ assert(unsigned(zero_extend(0x1cb5c, 64)) == 117596);
+ assert(unsigned(zero_extend(0x1cb60, 64)) == 117600);
+ assert(unsigned(zero_extend(0x1cb64, 64)) == 117604);
+ assert(unsigned(zero_extend(0x1cb68, 64)) == 117608);
+ assert(unsigned(zero_extend(0x1cb6c, 64)) == 117612);
+ assert(unsigned(zero_extend(0x1cb70, 64)) == 117616);
+ assert(unsigned(zero_extend(0x1cb74, 64)) == 117620);
+ assert(unsigned(zero_extend(0x1cb78, 64)) == 117624);
+ assert(unsigned(zero_extend(0x1cb7c, 64)) == 117628);
+ assert(unsigned(zero_extend(0x1cb80, 64)) == 117632);
+ assert(unsigned(zero_extend(0x1cb84, 64)) == 117636);
+ assert(unsigned(zero_extend(0x1cb88, 64)) == 117640);
+ assert(unsigned(zero_extend(0x1cb8c, 64)) == 117644);
+ assert(unsigned(zero_extend(0x1cb90, 64)) == 117648);
+ assert(unsigned(zero_extend(0x1cb94, 64)) == 117652);
+ assert(unsigned(zero_extend(0x1cb98, 64)) == 117656);
+ assert(unsigned(zero_extend(0x1cb9c, 64)) == 117660);
+ assert(unsigned(zero_extend(0x1cba0, 64)) == 117664);
+ assert(unsigned(zero_extend(0x1cba4, 64)) == 117668);
+ assert(unsigned(zero_extend(0x1cba8, 64)) == 117672);
+ assert(unsigned(zero_extend(0x1cbac, 64)) == 117676);
+ assert(unsigned(zero_extend(0x1cbb0, 64)) == 117680);
+ assert(unsigned(zero_extend(0x1cbb4, 64)) == 117684);
+ assert(unsigned(zero_extend(0x1cbb8, 64)) == 117688);
+ assert(unsigned(zero_extend(0x1cbbc, 64)) == 117692);
+ assert(unsigned(zero_extend(0x1cbc0, 64)) == 117696);
+ assert(unsigned(zero_extend(0x1cbc4, 64)) == 117700);
+ assert(unsigned(zero_extend(0x1cbc8, 64)) == 117704);
+ assert(unsigned(zero_extend(0x1cbcc, 64)) == 117708);
+ assert(unsigned(zero_extend(0x1cbd0, 64)) == 117712);
+ assert(unsigned(zero_extend(0x1cbd4, 64)) == 117716);
+ assert(unsigned(zero_extend(0x1cbd8, 64)) == 117720);
+ assert(unsigned(zero_extend(0x1cbdc, 64)) == 117724);
+ assert(unsigned(zero_extend(0x1cbe0, 64)) == 117728);
+ assert(unsigned(zero_extend(0x1cbe4, 64)) == 117732);
+ assert(unsigned(zero_extend(0x1cbe8, 64)) == 117736);
+ assert(unsigned(zero_extend(0x1cbec, 64)) == 117740);
+ assert(unsigned(zero_extend(0x1cbf0, 64)) == 117744);
+ assert(unsigned(zero_extend(0x1cbf4, 64)) == 117748);
+ assert(unsigned(zero_extend(0x1cbf8, 64)) == 117752);
+ assert(unsigned(zero_extend(0x1cbfc, 64)) == 117756);
+ assert(unsigned(zero_extend(0x1cc00, 64)) == 117760);
+ assert(unsigned(zero_extend(0x1cc04, 64)) == 117764);
+ assert(unsigned(zero_extend(0x1cc08, 64)) == 117768);
+ assert(unsigned(zero_extend(0x1cc0c, 64)) == 117772);
+ assert(unsigned(zero_extend(0x1cc1c, 64)) == 117788);
+ assert(unsigned(zero_extend(0x1cc20, 64)) == 117792);
+ assert(unsigned(zero_extend(0x1cc24, 64)) == 117796);
+ assert(unsigned(zero_extend(0x1cc28, 64)) == 117800);
+ assert(unsigned(zero_extend(0x1cc2c, 64)) == 117804);
+ assert(unsigned(zero_extend(0x1cc30, 64)) == 117808);
+ assert(unsigned(zero_extend(0x1cc34, 64)) == 117812);
+ assert(unsigned(zero_extend(0x1cc38, 64)) == 117816);
+ assert(unsigned(zero_extend(0x1cc3c, 64)) == 117820);
+ assert(unsigned(zero_extend(0x1cc40, 64)) == 117824);
+ assert(unsigned(zero_extend(0x1cc44, 64)) == 117828);
+ assert(unsigned(zero_extend(0x1cc48, 64)) == 117832);
+ assert(unsigned(zero_extend(0x1cc4c, 64)) == 117836);
+ assert(unsigned(zero_extend(0x1cc50, 64)) == 117840);
+ assert(unsigned(zero_extend(0x1cc54, 64)) == 117844);
+ assert(unsigned(zero_extend(0x1cc58, 64)) == 117848);
+ assert(unsigned(zero_extend(0x1cc5c, 64)) == 117852);
+ assert(unsigned(zero_extend(0x1cc60, 64)) == 117856);
+ assert(unsigned(zero_extend(0x1cc64, 64)) == 117860);
+ assert(unsigned(zero_extend(0x1cc68, 64)) == 117864);
+ assert(unsigned(zero_extend(0x1cc6c, 64)) == 117868);
+ assert(unsigned(zero_extend(0x1cc70, 64)) == 117872);
+ assert(unsigned(zero_extend(0x1cc74, 64)) == 117876);
+ assert(unsigned(zero_extend(0x1cc78, 64)) == 117880);
+ assert(unsigned(zero_extend(0x1cc7c, 64)) == 117884);
+ assert(unsigned(zero_extend(0x1cc80, 64)) == 117888);
+ assert(unsigned(zero_extend(0x1cc84, 64)) == 117892);
+ assert(unsigned(zero_extend(0x1cc88, 64)) == 117896);
+ assert(unsigned(zero_extend(0x1cc8c, 64)) == 117900);
+ assert(unsigned(zero_extend(0x1cc90, 64)) == 117904);
+ assert(unsigned(zero_extend(0x1cc94, 64)) == 117908);
+ assert(unsigned(zero_extend(0x1cc98, 64)) == 117912);
+ assert(unsigned(zero_extend(0x1cc9c, 64)) == 117916);
+ assert(unsigned(zero_extend(0x1cca0, 64)) == 117920);
+ assert(unsigned(zero_extend(0x1cca4, 64)) == 117924);
+ assert(unsigned(zero_extend(0x1cca8, 64)) == 117928);
+ assert(unsigned(zero_extend(0x1ccac, 64)) == 117932);
+ assert(unsigned(zero_extend(0x1ccb0, 64)) == 117936);
+ assert(unsigned(zero_extend(0x1ccb4, 64)) == 117940);
+ assert(unsigned(zero_extend(0x1ccb8, 64)) == 117944);
+ assert(unsigned(zero_extend(0x1ccbc, 64)) == 117948);
+ assert(unsigned(zero_extend(0x1ccc0, 64)) == 117952);
+ assert(unsigned(zero_extend(0x1ccc4, 64)) == 117956);
+ assert(unsigned(zero_extend(0x1ccc8, 64)) == 117960);
+ assert(unsigned(zero_extend(0x1cccc, 64)) == 117964);
+ assert(unsigned(zero_extend(0x1ccd0, 64)) == 117968);
+ assert(unsigned(zero_extend(0x1ccd8, 64)) == 117976);
+ assert(unsigned(zero_extend(0x1ccdc, 64)) == 117980);
+ assert(unsigned(zero_extend(0x1cce0, 64)) == 117984);
+ assert(unsigned(zero_extend(0x1cce4, 64)) == 117988);
+ assert(unsigned(zero_extend(0x1cce8, 64)) == 117992);
+ assert(unsigned(zero_extend(0x1ccec, 64)) == 117996);
+ assert(unsigned(zero_extend(0x1ccf0, 64)) == 118000);
+ assert(unsigned(zero_extend(0x1ccf4, 64)) == 118004);
+ assert(unsigned(zero_extend(0x1ccf8, 64)) == 118008);
+ assert(unsigned(zero_extend(0x1ccfc, 64)) == 118012);
+ assert(unsigned(zero_extend(0x1cd00, 64)) == 118016);
+ assert(unsigned(zero_extend(0x1cd30, 64)) == 118064);
+ assert(unsigned(zero_extend(0x1cd34, 64)) == 118068);
+ assert(unsigned(zero_extend(0x1cd38, 64)) == 118072);
+ assert(unsigned(zero_extend(0x1cd3c, 64)) == 118076);
+ assert(unsigned(zero_extend(0x1cd40, 64)) == 118080);
+ assert(unsigned(zero_extend(0x1cd44, 64)) == 118084);
+ assert(unsigned(zero_extend(0x1cd48, 64)) == 118088);
+ assert(unsigned(zero_extend(0x1cd4c, 64)) == 118092);
+ assert(unsigned(zero_extend(0x1cd50, 64)) == 118096);
+ assert(unsigned(zero_extend(0x1cd54, 64)) == 118100);
+ assert(unsigned(zero_extend(0x1cd58, 64)) == 118104);
+ assert(unsigned(zero_extend(0x1cd7c, 64)) == 118140);
+ assert(unsigned(zero_extend(0x1cd80, 64)) == 118144);
+ assert(unsigned(zero_extend(0x1cd84, 64)) == 118148);
+ assert(unsigned(zero_extend(0x1cd88, 64)) == 118152);
+ assert(unsigned(zero_extend(0x1cd8c, 64)) == 118156);
+ assert(unsigned(zero_extend(0x1cd90, 64)) == 118160);
+ assert(unsigned(zero_extend(0x1cd94, 64)) == 118164);
+ assert(unsigned(zero_extend(0x1cd98, 64)) == 118168);
+ assert(unsigned(zero_extend(0x1cd9c, 64)) == 118172);
+ assert(unsigned(zero_extend(0x1cda0, 64)) == 118176);
+ assert(unsigned(zero_extend(0x1cda4, 64)) == 118180);
+ assert(unsigned(zero_extend(0x1cda8, 64)) == 118184);
+ assert(unsigned(zero_extend(0x1cdac, 64)) == 118188);
+ assert(unsigned(zero_extend(0x1cdb0, 64)) == 118192);
+ assert(unsigned(zero_extend(0x1cdb4, 64)) == 118196);
+ assert(unsigned(zero_extend(0x1cdb8, 64)) == 118200);
+ assert(unsigned(zero_extend(0x1cdbc, 64)) == 118204);
+ assert(unsigned(zero_extend(0x1cdc0, 64)) == 118208);
+ assert(unsigned(zero_extend(0x1cdc4, 64)) == 118212);
+ assert(unsigned(zero_extend(0x1cdc8, 64)) == 118216);
+ assert(unsigned(zero_extend(0x1cdcc, 64)) == 118220);
+ assert(unsigned(zero_extend(0x1cdd0, 64)) == 118224);
+ assert(unsigned(zero_extend(0x1cdd4, 64)) == 118228);
+ assert(unsigned(zero_extend(0x1cdd8, 64)) == 118232);
+ assert(unsigned(zero_extend(0x1cddc, 64)) == 118236);
+ assert(unsigned(zero_extend(0x1cde0, 64)) == 118240);
+ assert(unsigned(zero_extend(0x1cde4, 64)) == 118244);
+ assert(unsigned(zero_extend(0x1cde8, 64)) == 118248);
+ assert(unsigned(zero_extend(0x1cdec, 64)) == 118252);
+ assert(unsigned(zero_extend(0x1cdf0, 64)) == 118256);
+ assert(unsigned(zero_extend(0x1cdf4, 64)) == 118260);
+}
diff --git a/test/builtins/unsigned5.sail b/test/builtins/unsigned5.sail
new file mode 100644
index 00000000..5c6a181a
--- /dev/null
+++ b/test/builtins/unsigned5.sail
@@ -0,0 +1,2001 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(unsigned(zero_extend(0x1cdf8, 64)) == 118264);
+ assert(unsigned(zero_extend(0x1cdfc, 64)) == 118268);
+ assert(unsigned(zero_extend(0x1ce00, 64)) == 118272);
+ assert(unsigned(zero_extend(0x1ce04, 64)) == 118276);
+ assert(unsigned(zero_extend(0x1ce08, 64)) == 118280);
+ assert(unsigned(zero_extend(0x1ce0c, 64)) == 118284);
+ assert(unsigned(zero_extend(0x1ce10, 64)) == 118288);
+ assert(unsigned(zero_extend(0x1ce14, 64)) == 118292);
+ assert(unsigned(zero_extend(0x1ce18, 64)) == 118296);
+ assert(unsigned(zero_extend(0x1ce1c, 64)) == 118300);
+ assert(unsigned(zero_extend(0x1ce20, 64)) == 118304);
+ assert(unsigned(zero_extend(0x1ce24, 64)) == 118308);
+ assert(unsigned(zero_extend(0x1ce28, 64)) == 118312);
+ assert(unsigned(zero_extend(0x1ce2c, 64)) == 118316);
+ assert(unsigned(zero_extend(0x1ce30, 64)) == 118320);
+ assert(unsigned(zero_extend(0x1ce34, 64)) == 118324);
+ assert(unsigned(zero_extend(0x1ce38, 64)) == 118328);
+ assert(unsigned(zero_extend(0x1ce3c, 64)) == 118332);
+ assert(unsigned(zero_extend(0x1ce40, 64)) == 118336);
+ assert(unsigned(zero_extend(0x1ce44, 64)) == 118340);
+ assert(unsigned(zero_extend(0x1ce48, 64)) == 118344);
+ assert(unsigned(zero_extend(0x1ce4c, 64)) == 118348);
+ assert(unsigned(zero_extend(0x1ce50, 64)) == 118352);
+ assert(unsigned(zero_extend(0x1ce54, 64)) == 118356);
+ assert(unsigned(zero_extend(0x1ce58, 64)) == 118360);
+ assert(unsigned(zero_extend(0x1ce68, 64)) == 118376);
+ assert(unsigned(zero_extend(0x1ce6c, 64)) == 118380);
+ assert(unsigned(zero_extend(0x1ce70, 64)) == 118384);
+ assert(unsigned(zero_extend(0x1ce74, 64)) == 118388);
+ assert(unsigned(zero_extend(0x1ce78, 64)) == 118392);
+ assert(unsigned(zero_extend(0x1ce7c, 64)) == 118396);
+ assert(unsigned(zero_extend(0x1ce80, 64)) == 118400);
+ assert(unsigned(zero_extend(0x1ce84, 64)) == 118404);
+ assert(unsigned(zero_extend(0x1ce88, 64)) == 118408);
+ assert(unsigned(zero_extend(0x1ce9c, 64)) == 118428);
+ assert(unsigned(zero_extend(0x1cea0, 64)) == 118432);
+ assert(unsigned(zero_extend(0x1cea4, 64)) == 118436);
+ assert(unsigned(zero_extend(0x1cea8, 64)) == 118440);
+ assert(unsigned(zero_extend(0x1ceac, 64)) == 118444);
+ assert(unsigned(zero_extend(0x1ceb0, 64)) == 118448);
+ assert(unsigned(zero_extend(0x1ceb4, 64)) == 118452);
+ assert(unsigned(zero_extend(0x1ceb8, 64)) == 118456);
+ assert(unsigned(zero_extend(0x1cebc, 64)) == 118460);
+ assert(unsigned(zero_extend(0x1cec0, 64)) == 118464);
+ assert(unsigned(zero_extend(0x1cec4, 64)) == 118468);
+ assert(unsigned(zero_extend(0x1cec8, 64)) == 118472);
+ assert(unsigned(zero_extend(0x1cecc, 64)) == 118476);
+ assert(unsigned(zero_extend(0x1ced0, 64)) == 118480);
+ assert(unsigned(zero_extend(0x1ced4, 64)) == 118484);
+ assert(unsigned(zero_extend(0x1ced8, 64)) == 118488);
+ assert(unsigned(zero_extend(0x1cee8, 64)) == 118504);
+ assert(unsigned(zero_extend(0x1ceec, 64)) == 118508);
+ assert(unsigned(zero_extend(0x1cef0, 64)) == 118512);
+ assert(unsigned(zero_extend(0x1cef4, 64)) == 118516);
+ assert(unsigned(zero_extend(0x1cef8, 64)) == 118520);
+ assert(unsigned(zero_extend(0x1cefc, 64)) == 118524);
+ assert(unsigned(zero_extend(0x1cf00, 64)) == 118528);
+ assert(unsigned(zero_extend(0x1cf04, 64)) == 118532);
+ assert(unsigned(zero_extend(0x1cf08, 64)) == 118536);
+ assert(unsigned(zero_extend(0x1cf0c, 64)) == 118540);
+ assert(unsigned(zero_extend(0x1cf10, 64)) == 118544);
+ assert(unsigned(zero_extend(0x1cf14, 64)) == 118548);
+ assert(unsigned(zero_extend(0x1cf18, 64)) == 118552);
+ assert(unsigned(zero_extend(0x1cf1c, 64)) == 118556);
+ assert(unsigned(zero_extend(0x1cf20, 64)) == 118560);
+ assert(unsigned(zero_extend(0x1cf24, 64)) == 118564);
+ assert(unsigned(zero_extend(0x1cf28, 64)) == 118568);
+ assert(unsigned(zero_extend(0x1cf2c, 64)) == 118572);
+ assert(unsigned(zero_extend(0x1cf30, 64)) == 118576);
+ assert(unsigned(zero_extend(0x1cf40, 64)) == 118592);
+ assert(unsigned(zero_extend(0x1cf44, 64)) == 118596);
+ assert(unsigned(zero_extend(0x1cf48, 64)) == 118600);
+ assert(unsigned(zero_extend(0x1cf4c, 64)) == 118604);
+ assert(unsigned(zero_extend(0x1cf50, 64)) == 118608);
+ assert(unsigned(zero_extend(0x1cf54, 64)) == 118612);
+ assert(unsigned(zero_extend(0x1cf58, 64)) == 118616);
+ assert(unsigned(zero_extend(0x1cf5c, 64)) == 118620);
+ assert(unsigned(zero_extend(0x1cf64, 64)) == 118628);
+ assert(unsigned(zero_extend(0x1cf68, 64)) == 118632);
+ assert(unsigned(zero_extend(0x1cf6c, 64)) == 118636);
+ assert(unsigned(zero_extend(0x1cf70, 64)) == 118640);
+ assert(unsigned(zero_extend(0x1cf74, 64)) == 118644);
+ assert(unsigned(zero_extend(0x1cf78, 64)) == 118648);
+ assert(unsigned(zero_extend(0x1cf7c, 64)) == 118652);
+ assert(unsigned(zero_extend(0x1cf80, 64)) == 118656);
+ assert(unsigned(zero_extend(0x1cf84, 64)) == 118660);
+ assert(unsigned(zero_extend(0x1cf88, 64)) == 118664);
+ assert(unsigned(zero_extend(0x1cf8c, 64)) == 118668);
+ assert(unsigned(zero_extend(0x1cf90, 64)) == 118672);
+ assert(unsigned(zero_extend(0x1cf94, 64)) == 118676);
+ assert(unsigned(zero_extend(0x1cf98, 64)) == 118680);
+ assert(unsigned(zero_extend(0x1cf9c, 64)) == 118684);
+ assert(unsigned(zero_extend(0x1cfa0, 64)) == 118688);
+ assert(unsigned(zero_extend(0x1cfa4, 64)) == 118692);
+ assert(unsigned(zero_extend(0x1cfa8, 64)) == 118696);
+ assert(unsigned(zero_extend(0x1cfac, 64)) == 118700);
+ assert(unsigned(zero_extend(0x1cfb0, 64)) == 118704);
+ assert(unsigned(zero_extend(0x1cfb4, 64)) == 118708);
+ assert(unsigned(zero_extend(0x1cfb8, 64)) == 118712);
+ assert(unsigned(zero_extend(0x1cfbc, 64)) == 118716);
+ assert(unsigned(zero_extend(0x1cfc0, 64)) == 118720);
+ assert(unsigned(zero_extend(0x1cfc4, 64)) == 118724);
+ assert(unsigned(zero_extend(0x1cfc8, 64)) == 118728);
+ assert(unsigned(zero_extend(0x1cfcc, 64)) == 118732);
+ assert(unsigned(zero_extend(0x1cfd0, 64)) == 118736);
+ assert(unsigned(zero_extend(0x1cfd4, 64)) == 118740);
+ assert(unsigned(zero_extend(0x1cfd8, 64)) == 118744);
+ assert(unsigned(zero_extend(0x1cfdc, 64)) == 118748);
+ assert(unsigned(zero_extend(0x1cfe0, 64)) == 118752);
+ assert(unsigned(zero_extend(0x1cfe4, 64)) == 118756);
+ assert(unsigned(zero_extend(0x1cfe8, 64)) == 118760);
+ assert(unsigned(zero_extend(0x1cfec, 64)) == 118764);
+ assert(unsigned(zero_extend(0x1cff0, 64)) == 118768);
+ assert(unsigned(zero_extend(0x1cff4, 64)) == 118772);
+ assert(unsigned(zero_extend(0x1cff8, 64)) == 118776);
+ assert(unsigned(zero_extend(0x1cffc, 64)) == 118780);
+ assert(unsigned(zero_extend(0x1d, 64)) == 29);
+ assert(unsigned(zero_extend(0x1d000, 64)) == 118784);
+ assert(unsigned(zero_extend(0x1d004, 64)) == 118788);
+ assert(unsigned(zero_extend(0x1d008, 64)) == 118792);
+ assert(unsigned(zero_extend(0x1d00c, 64)) == 118796);
+ assert(unsigned(zero_extend(0x1d010, 64)) == 118800);
+ assert(unsigned(zero_extend(0x1d014, 64)) == 118804);
+ assert(unsigned(zero_extend(0x1d018, 64)) == 118808);
+ assert(unsigned(zero_extend(0x1d01c, 64)) == 118812);
+ assert(unsigned(zero_extend(0x1d020, 64)) == 118816);
+ assert(unsigned(zero_extend(0x1d024, 64)) == 118820);
+ assert(unsigned(zero_extend(0x1d028, 64)) == 118824);
+ assert(unsigned(zero_extend(0x1d02c, 64)) == 118828);
+ assert(unsigned(zero_extend(0x1d030, 64)) == 118832);
+ assert(unsigned(zero_extend(0x1d034, 64)) == 118836);
+ assert(unsigned(zero_extend(0x1d038, 64)) == 118840);
+ assert(unsigned(zero_extend(0x1d03c, 64)) == 118844);
+ assert(unsigned(zero_extend(0x1d040, 64)) == 118848);
+ assert(unsigned(zero_extend(0x1d044, 64)) == 118852);
+ assert(unsigned(zero_extend(0x1d048, 64)) == 118856);
+ assert(unsigned(zero_extend(0x1d04c, 64)) == 118860);
+ assert(unsigned(zero_extend(0x1d050, 64)) == 118864);
+ assert(unsigned(zero_extend(0x1d054, 64)) == 118868);
+ assert(unsigned(zero_extend(0x1d058, 64)) == 118872);
+ assert(unsigned(zero_extend(0x1d060, 64)) == 118880);
+ assert(unsigned(zero_extend(0x1d068, 64)) == 118888);
+ assert(unsigned(zero_extend(0x1d070, 64)) == 118896);
+ assert(unsigned(zero_extend(0x1d078, 64)) == 118904);
+ assert(unsigned(zero_extend(0x1d080, 64)) == 118912);
+ assert(unsigned(zero_extend(0x1d088, 64)) == 118920);
+ assert(unsigned(zero_extend(0x1d090, 64)) == 118928);
+ assert(unsigned(zero_extend(0x1d098, 64)) == 118936);
+ assert(unsigned(zero_extend(0x1d0a0, 64)) == 118944);
+ assert(unsigned(zero_extend(0x1d0a8, 64)) == 118952);
+ assert(unsigned(zero_extend(0x1d0b0, 64)) == 118960);
+ assert(unsigned(zero_extend(0x1d0b8, 64)) == 118968);
+ assert(unsigned(zero_extend(0x1d0c0, 64)) == 118976);
+ assert(unsigned(zero_extend(0x1d0c8, 64)) == 118984);
+ assert(unsigned(zero_extend(0x1d0d0, 64)) == 118992);
+ assert(unsigned(zero_extend(0x1d0d8, 64)) == 119000);
+ assert(unsigned(zero_extend(0x1d0e0, 64)) == 119008);
+ assert(unsigned(zero_extend(0x1d0e8, 64)) == 119016);
+ assert(unsigned(zero_extend(0x1d0f0, 64)) == 119024);
+ assert(unsigned(zero_extend(0x1d0f8, 64)) == 119032);
+ assert(unsigned(zero_extend(0x1d100, 64)) == 119040);
+ assert(unsigned(zero_extend(0x1d108, 64)) == 119048);
+ assert(unsigned(zero_extend(0x1d448, 64)) == 119880);
+ assert(unsigned(zero_extend(0x1d44c, 64)) == 119884);
+ assert(unsigned(zero_extend(0x1d450, 64)) == 119888);
+ assert(unsigned(zero_extend(0x1d454, 64)) == 119892);
+ assert(unsigned(zero_extend(0x1d458, 64)) == 119896);
+ assert(unsigned(zero_extend(0x1d45c, 64)) == 119900);
+ assert(unsigned(zero_extend(0x1d460, 64)) == 119904);
+ assert(unsigned(zero_extend(0x1d464, 64)) == 119908);
+ assert(unsigned(zero_extend(0x1d468, 64)) == 119912);
+ assert(unsigned(zero_extend(0x1d46c, 64)) == 119916);
+ assert(unsigned(zero_extend(0x1d470, 64)) == 119920);
+ assert(unsigned(zero_extend(0x1d474, 64)) == 119924);
+ assert(unsigned(zero_extend(0x1d478, 64)) == 119928);
+ assert(unsigned(zero_extend(0x1d47c, 64)) == 119932);
+ assert(unsigned(zero_extend(0x1d480, 64)) == 119936);
+ assert(unsigned(zero_extend(0x1d484, 64)) == 119940);
+ assert(unsigned(zero_extend(0x1d490, 64)) == 119952);
+ assert(unsigned(zero_extend(0x1d494, 64)) == 119956);
+ assert(unsigned(zero_extend(0x1d498, 64)) == 119960);
+ assert(unsigned(zero_extend(0x1d49c, 64)) == 119964);
+ assert(unsigned(zero_extend(0x1d4a0, 64)) == 119968);
+ assert(unsigned(zero_extend(0x1d4a4, 64)) == 119972);
+ assert(unsigned(zero_extend(0x1d4a8, 64)) == 119976);
+ assert(unsigned(zero_extend(0x1d4ac, 64)) == 119980);
+ assert(unsigned(zero_extend(0x1d4b0, 64)) == 119984);
+ assert(unsigned(zero_extend(0x1d4b4, 64)) == 119988);
+ assert(unsigned(zero_extend(0x1d4b8, 64)) == 119992);
+ assert(unsigned(zero_extend(0x1d4bc, 64)) == 119996);
+ assert(unsigned(zero_extend(0x1d4c0, 64)) == 120000);
+ assert(unsigned(zero_extend(0x1d4c4, 64)) == 120004);
+ assert(unsigned(zero_extend(0x1d4c8, 64)) == 120008);
+ assert(unsigned(zero_extend(0x1d4cc, 64)) == 120012);
+ assert(unsigned(zero_extend(0x1d4d0, 64)) == 120016);
+ assert(unsigned(zero_extend(0x1d4d4, 64)) == 120020);
+ assert(unsigned(zero_extend(0x1d4d8, 64)) == 120024);
+ assert(unsigned(zero_extend(0x1d4dc, 64)) == 120028);
+ assert(unsigned(zero_extend(0x1d4e0, 64)) == 120032);
+ assert(unsigned(zero_extend(0x1d4e4, 64)) == 120036);
+ assert(unsigned(zero_extend(0x1d4e8, 64)) == 120040);
+ assert(unsigned(zero_extend(0x1d4ec, 64)) == 120044);
+ assert(unsigned(zero_extend(0x1d4f0, 64)) == 120048);
+ assert(unsigned(zero_extend(0x1d4f4, 64)) == 120052);
+ assert(unsigned(zero_extend(0x1d4f8, 64)) == 120056);
+ assert(unsigned(zero_extend(0x1d4fc, 64)) == 120060);
+ assert(unsigned(zero_extend(0x1d500, 64)) == 120064);
+ assert(unsigned(zero_extend(0x1d504, 64)) == 120068);
+ assert(unsigned(zero_extend(0x1d508, 64)) == 120072);
+ assert(unsigned(zero_extend(0x1d50c, 64)) == 120076);
+ assert(unsigned(zero_extend(0x1d510, 64)) == 120080);
+ assert(unsigned(zero_extend(0x1d514, 64)) == 120084);
+ assert(unsigned(zero_extend(0x1d518, 64)) == 120088);
+ assert(unsigned(zero_extend(0x1d51c, 64)) == 120092);
+ assert(unsigned(zero_extend(0x1d520, 64)) == 120096);
+ assert(unsigned(zero_extend(0x1d524, 64)) == 120100);
+ assert(unsigned(zero_extend(0x1d528, 64)) == 120104);
+ assert(unsigned(zero_extend(0x1d52c, 64)) == 120108);
+ assert(unsigned(zero_extend(0x1d530, 64)) == 120112);
+ assert(unsigned(zero_extend(0x1d534, 64)) == 120116);
+ assert(unsigned(zero_extend(0x1d538, 64)) == 120120);
+ assert(unsigned(zero_extend(0x1d53c, 64)) == 120124);
+ assert(unsigned(zero_extend(0x1d540, 64)) == 120128);
+ assert(unsigned(zero_extend(0x1d544, 64)) == 120132);
+ assert(unsigned(zero_extend(0x1d548, 64)) == 120136);
+ assert(unsigned(zero_extend(0x1d54c, 64)) == 120140);
+ assert(unsigned(zero_extend(0x1d550, 64)) == 120144);
+ assert(unsigned(zero_extend(0x1d554, 64)) == 120148);
+ assert(unsigned(zero_extend(0x1d558, 64)) == 120152);
+ assert(unsigned(zero_extend(0x1d560, 64)) == 120160);
+ assert(unsigned(zero_extend(0x1d564, 64)) == 120164);
+ assert(unsigned(zero_extend(0x1d568, 64)) == 120168);
+ assert(unsigned(zero_extend(0x1d570, 64)) == 120176);
+ assert(unsigned(zero_extend(0x1d5f8, 64)) == 120312);
+ assert(unsigned(zero_extend(0x1d5fc, 64)) == 120316);
+ assert(unsigned(zero_extend(0x1d600, 64)) == 120320);
+ assert(unsigned(zero_extend(0x1d604, 64)) == 120324);
+ assert(unsigned(zero_extend(0x1d608, 64)) == 120328);
+ assert(unsigned(zero_extend(0x1d60c, 64)) == 120332);
+ assert(unsigned(zero_extend(0x1d610, 64)) == 120336);
+ assert(unsigned(zero_extend(0x1d614, 64)) == 120340);
+ assert(unsigned(zero_extend(0x1d618, 64)) == 120344);
+ assert(unsigned(zero_extend(0x1d61c, 64)) == 120348);
+ assert(unsigned(zero_extend(0x1d620, 64)) == 120352);
+ assert(unsigned(zero_extend(0x1d624, 64)) == 120356);
+ assert(unsigned(zero_extend(0x1d628, 64)) == 120360);
+ assert(unsigned(zero_extend(0x1d650, 64)) == 120400);
+ assert(unsigned(zero_extend(0x1d654, 64)) == 120404);
+ assert(unsigned(zero_extend(0x1d658, 64)) == 120408);
+ assert(unsigned(zero_extend(0x1d65c, 64)) == 120412);
+ assert(unsigned(zero_extend(0x1d660, 64)) == 120416);
+ assert(unsigned(zero_extend(0x1d664, 64)) == 120420);
+ assert(unsigned(zero_extend(0x1d668, 64)) == 120424);
+ assert(unsigned(zero_extend(0x1d66c, 64)) == 120428);
+ assert(unsigned(zero_extend(0x1d670, 64)) == 120432);
+ assert(unsigned(zero_extend(0x1d674, 64)) == 120436);
+ assert(unsigned(zero_extend(0x1d678, 64)) == 120440);
+ assert(unsigned(zero_extend(0x1d67c, 64)) == 120444);
+ assert(unsigned(zero_extend(0x1d680, 64)) == 120448);
+ assert(unsigned(zero_extend(0x1e, 64)) == 30);
+ assert(unsigned(zero_extend(0x1e0, 64)) == 480);
+ assert(unsigned(zero_extend(0x1e078, 64)) == 123000);
+ assert(unsigned(zero_extend(0x1e07c, 64)) == 123004);
+ assert(unsigned(zero_extend(0x1e080, 64)) == 123008);
+ assert(unsigned(zero_extend(0x1e084, 64)) == 123012);
+ assert(unsigned(zero_extend(0x1e088, 64)) == 123016);
+ assert(unsigned(zero_extend(0x1e08c, 64)) == 123020);
+ assert(unsigned(zero_extend(0x1e090, 64)) == 123024);
+ assert(unsigned(zero_extend(0x1e094, 64)) == 123028);
+ assert(unsigned(zero_extend(0x1e098, 64)) == 123032);
+ assert(unsigned(zero_extend(0x1e09c, 64)) == 123036);
+ assert(unsigned(zero_extend(0x1e0a0, 64)) == 123040);
+ assert(unsigned(zero_extend(0x1e0a4, 64)) == 123044);
+ assert(unsigned(zero_extend(0x1e0a8, 64)) == 123048);
+ assert(unsigned(zero_extend(0x1e0ac, 64)) == 123052);
+ assert(unsigned(zero_extend(0x1e0ad, 64)) == 123053);
+ assert(unsigned(zero_extend(0x1e0ae, 64)) == 123054);
+ assert(unsigned(zero_extend(0x1e0af, 64)) == 123055);
+ assert(unsigned(zero_extend(0x1e0b0, 64)) == 123056);
+ assert(unsigned(zero_extend(0x1e0b1, 64)) == 123057);
+ assert(unsigned(zero_extend(0x1e0b2, 64)) == 123058);
+ assert(unsigned(zero_extend(0x1e0b3, 64)) == 123059);
+ assert(unsigned(zero_extend(0x1e0b4, 64)) == 123060);
+ assert(unsigned(zero_extend(0x1e0b5, 64)) == 123061);
+ assert(unsigned(zero_extend(0x1e0b6, 64)) == 123062);
+ assert(unsigned(zero_extend(0x1e0b7, 64)) == 123063);
+ assert(unsigned(zero_extend(0x1e0b8, 64)) == 123064);
+ assert(unsigned(zero_extend(0x1e0b9, 64)) == 123065);
+ assert(unsigned(zero_extend(0x1e0ba, 64)) == 123066);
+ assert(unsigned(zero_extend(0x1e0bb, 64)) == 123067);
+ assert(unsigned(zero_extend(0x1e0bc, 64)) == 123068);
+ assert(unsigned(zero_extend(0x1e0bd, 64)) == 123069);
+ assert(unsigned(zero_extend(0x1e0be, 64)) == 123070);
+ assert(unsigned(zero_extend(0x1e0bf, 64)) == 123071);
+ assert(unsigned(zero_extend(0x1e0c0, 64)) == 123072);
+ assert(unsigned(zero_extend(0x1e0c1, 64)) == 123073);
+ assert(unsigned(zero_extend(0x1e0c2, 64)) == 123074);
+ assert(unsigned(zero_extend(0x1e0c3, 64)) == 123075);
+ assert(unsigned(zero_extend(0x1e0c4, 64)) == 123076);
+ assert(unsigned(zero_extend(0x1e0c5, 64)) == 123077);
+ assert(unsigned(zero_extend(0x1e0c6, 64)) == 123078);
+ assert(unsigned(zero_extend(0x1e0c8, 64)) == 123080);
+ assert(unsigned(zero_extend(0x1e0cc, 64)) == 123084);
+ assert(unsigned(zero_extend(0x1e0d0, 64)) == 123088);
+ assert(unsigned(zero_extend(0x1e0d4, 64)) == 123092);
+ assert(unsigned(zero_extend(0x1e0d8, 64)) == 123096);
+ assert(unsigned(zero_extend(0x1e0dc, 64)) == 123100);
+ assert(unsigned(zero_extend(0x1e0e0, 64)) == 123104);
+ assert(unsigned(zero_extend(0x1e0e4, 64)) == 123108);
+ assert(unsigned(zero_extend(0x1e0e8, 64)) == 123112);
+ assert(unsigned(zero_extend(0x1e0ec, 64)) == 123116);
+ assert(unsigned(zero_extend(0x1e0ed, 64)) == 123117);
+ assert(unsigned(zero_extend(0x1e0ee, 64)) == 123118);
+ assert(unsigned(zero_extend(0x1e0ef, 64)) == 123119);
+ assert(unsigned(zero_extend(0x1e0f0, 64)) == 123120);
+ assert(unsigned(zero_extend(0x1e0f1, 64)) == 123121);
+ assert(unsigned(zero_extend(0x1e0f2, 64)) == 123122);
+ assert(unsigned(zero_extend(0x1e0f3, 64)) == 123123);
+ assert(unsigned(zero_extend(0x1e0f4, 64)) == 123124);
+ assert(unsigned(zero_extend(0x1e0f5, 64)) == 123125);
+ assert(unsigned(zero_extend(0x1e0f6, 64)) == 123126);
+ assert(unsigned(zero_extend(0x1e0f7, 64)) == 123127);
+ assert(unsigned(zero_extend(0x1e0f8, 64)) == 123128);
+ assert(unsigned(zero_extend(0x1e0f9, 64)) == 123129);
+ assert(unsigned(zero_extend(0x1e0fa, 64)) == 123130);
+ assert(unsigned(zero_extend(0x1e0fb, 64)) == 123131);
+ assert(unsigned(zero_extend(0x1e0fc, 64)) == 123132);
+ assert(unsigned(zero_extend(0x1e0fd, 64)) == 123133);
+ assert(unsigned(zero_extend(0x1e0fe, 64)) == 123134);
+ assert(unsigned(zero_extend(0x1e0ff, 64)) == 123135);
+ assert(unsigned(zero_extend(0x1e100, 64)) == 123136);
+ assert(unsigned(zero_extend(0x1e101, 64)) == 123137);
+ assert(unsigned(zero_extend(0x1e102, 64)) == 123138);
+ assert(unsigned(zero_extend(0x1e103, 64)) == 123139);
+ assert(unsigned(zero_extend(0x1e104, 64)) == 123140);
+ assert(unsigned(zero_extend(0x1e105, 64)) == 123141);
+ assert(unsigned(zero_extend(0x1e106, 64)) == 123142);
+ assert(unsigned(zero_extend(0x1e107, 64)) == 123143);
+ assert(unsigned(zero_extend(0x1e108, 64)) == 123144);
+ assert(unsigned(zero_extend(0x1e109, 64)) == 123145);
+ assert(unsigned(zero_extend(0x1e10a, 64)) == 123146);
+ assert(unsigned(zero_extend(0x1e10b, 64)) == 123147);
+ assert(unsigned(zero_extend(0x1e10c, 64)) == 123148);
+ assert(unsigned(zero_extend(0x1e10d, 64)) == 123149);
+ assert(unsigned(zero_extend(0x1e10e, 64)) == 123150);
+ assert(unsigned(zero_extend(0x1e10f, 64)) == 123151);
+ assert(unsigned(zero_extend(0x1e110, 64)) == 123152);
+ assert(unsigned(zero_extend(0x1e111, 64)) == 123153);
+ assert(unsigned(zero_extend(0x1e112, 64)) == 123154);
+ assert(unsigned(zero_extend(0x1e113, 64)) == 123155);
+ assert(unsigned(zero_extend(0x1e114, 64)) == 123156);
+ assert(unsigned(zero_extend(0x1e115, 64)) == 123157);
+ assert(unsigned(zero_extend(0x1e116, 64)) == 123158);
+ assert(unsigned(zero_extend(0x1e117, 64)) == 123159);
+ assert(unsigned(zero_extend(0x1e118, 64)) == 123160);
+ assert(unsigned(zero_extend(0x1e119, 64)) == 123161);
+ assert(unsigned(zero_extend(0x1e11a, 64)) == 123162);
+ assert(unsigned(zero_extend(0x1e11b, 64)) == 123163);
+ assert(unsigned(zero_extend(0x1e11c, 64)) == 123164);
+ assert(unsigned(zero_extend(0x1e11d, 64)) == 123165);
+ assert(unsigned(zero_extend(0x1e11e, 64)) == 123166);
+ assert(unsigned(zero_extend(0x1e120, 64)) == 123168);
+ assert(unsigned(zero_extend(0x1e124, 64)) == 123172);
+ assert(unsigned(zero_extend(0x1e128, 64)) == 123176);
+ assert(unsigned(zero_extend(0x1e12c, 64)) == 123180);
+ assert(unsigned(zero_extend(0x1e130, 64)) == 123184);
+ assert(unsigned(zero_extend(0x1e134, 64)) == 123188);
+ assert(unsigned(zero_extend(0x1e138, 64)) == 123192);
+ assert(unsigned(zero_extend(0x1e13c, 64)) == 123196);
+ assert(unsigned(zero_extend(0x1e140, 64)) == 123200);
+ assert(unsigned(zero_extend(0x1e141, 64)) == 123201);
+ assert(unsigned(zero_extend(0x1e142, 64)) == 123202);
+ assert(unsigned(zero_extend(0x1e143, 64)) == 123203);
+ assert(unsigned(zero_extend(0x1e144, 64)) == 123204);
+ assert(unsigned(zero_extend(0x1e145, 64)) == 123205);
+ assert(unsigned(zero_extend(0x1e146, 64)) == 123206);
+ assert(unsigned(zero_extend(0x1e147, 64)) == 123207);
+ assert(unsigned(zero_extend(0x1e148, 64)) == 123208);
+ assert(unsigned(zero_extend(0x1e149, 64)) == 123209);
+ assert(unsigned(zero_extend(0x1e14a, 64)) == 123210);
+ assert(unsigned(zero_extend(0x1e14b, 64)) == 123211);
+ assert(unsigned(zero_extend(0x1e14c, 64)) == 123212);
+ assert(unsigned(zero_extend(0x1e14d, 64)) == 123213);
+ assert(unsigned(zero_extend(0x1e14e, 64)) == 123214);
+ assert(unsigned(zero_extend(0x1e14f, 64)) == 123215);
+ assert(unsigned(zero_extend(0x1e150, 64)) == 123216);
+ assert(unsigned(zero_extend(0x1e151, 64)) == 123217);
+ assert(unsigned(zero_extend(0x1e152, 64)) == 123218);
+ assert(unsigned(zero_extend(0x1e153, 64)) == 123219);
+ assert(unsigned(zero_extend(0x1e154, 64)) == 123220);
+ assert(unsigned(zero_extend(0x1e155, 64)) == 123221);
+ assert(unsigned(zero_extend(0x1e156, 64)) == 123222);
+ assert(unsigned(zero_extend(0x1e157, 64)) == 123223);
+ assert(unsigned(zero_extend(0x1e158, 64)) == 123224);
+ assert(unsigned(zero_extend(0x1e159, 64)) == 123225);
+ assert(unsigned(zero_extend(0x1e15a, 64)) == 123226);
+ assert(unsigned(zero_extend(0x1e15b, 64)) == 123227);
+ assert(unsigned(zero_extend(0x1e15c, 64)) == 123228);
+ assert(unsigned(zero_extend(0x1e160, 64)) == 123232);
+ assert(unsigned(zero_extend(0x1e164, 64)) == 123236);
+ assert(unsigned(zero_extend(0x1e168, 64)) == 123240);
+ assert(unsigned(zero_extend(0x1e16c, 64)) == 123244);
+ assert(unsigned(zero_extend(0x1e170, 64)) == 123248);
+ assert(unsigned(zero_extend(0x1e174, 64)) == 123252);
+ assert(unsigned(zero_extend(0x1e178, 64)) == 123256);
+ assert(unsigned(zero_extend(0x1e17c, 64)) == 123260);
+ assert(unsigned(zero_extend(0x1e180, 64)) == 123264);
+ assert(unsigned(zero_extend(0x1e184, 64)) == 123268);
+ assert(unsigned(zero_extend(0x1e188, 64)) == 123272);
+ assert(unsigned(zero_extend(0x1e18c, 64)) == 123276);
+ assert(unsigned(zero_extend(0x1e190, 64)) == 123280);
+ assert(unsigned(zero_extend(0x1e194, 64)) == 123284);
+ assert(unsigned(zero_extend(0x1e198, 64)) == 123288);
+ assert(unsigned(zero_extend(0x1e199, 64)) == 123289);
+ assert(unsigned(zero_extend(0x1e19a, 64)) == 123290);
+ assert(unsigned(zero_extend(0x1e19b, 64)) == 123291);
+ assert(unsigned(zero_extend(0x1e19c, 64)) == 123292);
+ assert(unsigned(zero_extend(0x1e19d, 64)) == 123293);
+ assert(unsigned(zero_extend(0x1e19e, 64)) == 123294);
+ assert(unsigned(zero_extend(0x1e19f, 64)) == 123295);
+ assert(unsigned(zero_extend(0x1e1a0, 64)) == 123296);
+ assert(unsigned(zero_extend(0x1e1a1, 64)) == 123297);
+ assert(unsigned(zero_extend(0x1e1a2, 64)) == 123298);
+ assert(unsigned(zero_extend(0x1e1a3, 64)) == 123299);
+ assert(unsigned(zero_extend(0x1e1a4, 64)) == 123300);
+ assert(unsigned(zero_extend(0x1e1a5, 64)) == 123301);
+ assert(unsigned(zero_extend(0x1e1a6, 64)) == 123302);
+ assert(unsigned(zero_extend(0x1e1a7, 64)) == 123303);
+ assert(unsigned(zero_extend(0x1e1a8, 64)) == 123304);
+ assert(unsigned(zero_extend(0x1e1a9, 64)) == 123305);
+ assert(unsigned(zero_extend(0x1e1aa, 64)) == 123306);
+ assert(unsigned(zero_extend(0x1e1ab, 64)) == 123307);
+ assert(unsigned(zero_extend(0x1e1ac, 64)) == 123308);
+ assert(unsigned(zero_extend(0x1e1ad, 64)) == 123309);
+ assert(unsigned(zero_extend(0x1e1ae, 64)) == 123310);
+ assert(unsigned(zero_extend(0x1e1af, 64)) == 123311);
+ assert(unsigned(zero_extend(0x1e1b0, 64)) == 123312);
+ assert(unsigned(zero_extend(0x1e600, 64)) == 124416);
+ assert(unsigned(zero_extend(0x1e604, 64)) == 124420);
+ assert(unsigned(zero_extend(0x1e608, 64)) == 124424);
+ assert(unsigned(zero_extend(0x1e60c, 64)) == 124428);
+ assert(unsigned(zero_extend(0x1e610, 64)) == 124432);
+ assert(unsigned(zero_extend(0x1e614, 64)) == 124436);
+ assert(unsigned(zero_extend(0x1e618, 64)) == 124440);
+ assert(unsigned(zero_extend(0x1e61c, 64)) == 124444);
+ assert(unsigned(zero_extend(0x1e620, 64)) == 124448);
+ assert(unsigned(zero_extend(0x1e624, 64)) == 124452);
+ assert(unsigned(zero_extend(0x1e628, 64)) == 124456);
+ assert(unsigned(zero_extend(0x1e62c, 64)) == 124460);
+ assert(unsigned(zero_extend(0x1e630, 64)) == 124464);
+ assert(unsigned(zero_extend(0x1e634, 64)) == 124468);
+ assert(unsigned(zero_extend(0x1e638, 64)) == 124472);
+ assert(unsigned(zero_extend(0x1e63c, 64)) == 124476);
+ assert(unsigned(zero_extend(0x1e640, 64)) == 124480);
+ assert(unsigned(zero_extend(0x1e644, 64)) == 124484);
+ assert(unsigned(zero_extend(0x1e648, 64)) == 124488);
+ assert(unsigned(zero_extend(0x1e64c, 64)) == 124492);
+ assert(unsigned(zero_extend(0x1e650, 64)) == 124496);
+ assert(unsigned(zero_extend(0x1e658, 64)) == 124504);
+ assert(unsigned(zero_extend(0x1e65c, 64)) == 124508);
+ assert(unsigned(zero_extend(0x1e660, 64)) == 124512);
+ assert(unsigned(zero_extend(0x1e664, 64)) == 124516);
+ assert(unsigned(zero_extend(0x1e668, 64)) == 124520);
+ assert(unsigned(zero_extend(0x1e66c, 64)) == 124524);
+ assert(unsigned(zero_extend(0x1e670, 64)) == 124528);
+ assert(unsigned(zero_extend(0x1e674, 64)) == 124532);
+ assert(unsigned(zero_extend(0x1e678, 64)) == 124536);
+ assert(unsigned(zero_extend(0x1e67c, 64)) == 124540);
+ assert(unsigned(zero_extend(0x1e680, 64)) == 124544);
+ assert(unsigned(zero_extend(0x1e684, 64)) == 124548);
+ assert(unsigned(zero_extend(0x1e688, 64)) == 124552);
+ assert(unsigned(zero_extend(0x1e68c, 64)) == 124556);
+ assert(unsigned(zero_extend(0x1e690, 64)) == 124560);
+ assert(unsigned(zero_extend(0x1e694, 64)) == 124564);
+ assert(unsigned(zero_extend(0x1e698, 64)) == 124568);
+ assert(unsigned(zero_extend(0x1e69c, 64)) == 124572);
+ assert(unsigned(zero_extend(0x1e6a0, 64)) == 124576);
+ assert(unsigned(zero_extend(0x1e6a4, 64)) == 124580);
+ assert(unsigned(zero_extend(0x1e6a8, 64)) == 124584);
+ assert(unsigned(zero_extend(0x1e6ac, 64)) == 124588);
+ assert(unsigned(zero_extend(0x1e6b0, 64)) == 124592);
+ assert(unsigned(zero_extend(0x1e6b4, 64)) == 124596);
+ assert(unsigned(zero_extend(0x1e6b8, 64)) == 124600);
+ assert(unsigned(zero_extend(0x1e6bc, 64)) == 124604);
+ assert(unsigned(zero_extend(0x1e6c0, 64)) == 124608);
+ assert(unsigned(zero_extend(0x1e6c4, 64)) == 124612);
+ assert(unsigned(zero_extend(0x1e6c8, 64)) == 124616);
+ assert(unsigned(zero_extend(0x1e6cc, 64)) == 124620);
+ assert(unsigned(zero_extend(0x1e6d0, 64)) == 124624);
+ assert(unsigned(zero_extend(0x1e6d4, 64)) == 124628);
+ assert(unsigned(zero_extend(0x1e6d8, 64)) == 124632);
+ assert(unsigned(zero_extend(0x1e6dc, 64)) == 124636);
+ assert(unsigned(zero_extend(0x1e6e0, 64)) == 124640);
+ assert(unsigned(zero_extend(0x1e6e4, 64)) == 124644);
+ assert(unsigned(zero_extend(0x1e6e8, 64)) == 124648);
+ assert(unsigned(zero_extend(0x1e6ec, 64)) == 124652);
+ assert(unsigned(zero_extend(0x1e6f0, 64)) == 124656);
+ assert(unsigned(zero_extend(0x1e6f4, 64)) == 124660);
+ assert(unsigned(zero_extend(0x1e6f8, 64)) == 124664);
+ assert(unsigned(zero_extend(0x1e6fc, 64)) == 124668);
+ assert(unsigned(zero_extend(0x1e700, 64)) == 124672);
+ assert(unsigned(zero_extend(0x1e704, 64)) == 124676);
+ assert(unsigned(zero_extend(0x1e708, 64)) == 124680);
+ assert(unsigned(zero_extend(0x1e70c, 64)) == 124684);
+ assert(unsigned(zero_extend(0x1e710, 64)) == 124688);
+ assert(unsigned(zero_extend(0x1e714, 64)) == 124692);
+ assert(unsigned(zero_extend(0x1e718, 64)) == 124696);
+ assert(unsigned(zero_extend(0x1e71c, 64)) == 124700);
+ assert(unsigned(zero_extend(0x1e720, 64)) == 124704);
+ assert(unsigned(zero_extend(0x1e724, 64)) == 124708);
+ assert(unsigned(zero_extend(0x1e728, 64)) == 124712);
+ assert(unsigned(zero_extend(0x1e72c, 64)) == 124716);
+ assert(unsigned(zero_extend(0x1e730, 64)) == 124720);
+ assert(unsigned(zero_extend(0x1e734, 64)) == 124724);
+ assert(unsigned(zero_extend(0x1e738, 64)) == 124728);
+ assert(unsigned(zero_extend(0x1e740, 64)) == 124736);
+ assert(unsigned(zero_extend(0x1eb90, 64)) == 125840);
+ assert(unsigned(zero_extend(0x1eb94, 64)) == 125844);
+ assert(unsigned(zero_extend(0x1eb98, 64)) == 125848);
+ assert(unsigned(zero_extend(0x1eb9c, 64)) == 125852);
+ assert(unsigned(zero_extend(0x1eba0, 64)) == 125856);
+ assert(unsigned(zero_extend(0x1eba4, 64)) == 125860);
+ assert(unsigned(zero_extend(0x1eba8, 64)) == 125864);
+ assert(unsigned(zero_extend(0x1ebc0, 64)) == 125888);
+ assert(unsigned(zero_extend(0x1ebc4, 64)) == 125892);
+ assert(unsigned(zero_extend(0x1ebc8, 64)) == 125896);
+ assert(unsigned(zero_extend(0x1ebd4, 64)) == 125908);
+ assert(unsigned(zero_extend(0x1ebd8, 64)) == 125912);
+ assert(unsigned(zero_extend(0x1ebe8, 64)) == 125928);
+ assert(unsigned(zero_extend(0x1ebec, 64)) == 125932);
+ assert(unsigned(zero_extend(0x1ebf0, 64)) == 125936);
+ assert(unsigned(zero_extend(0x1ebf4, 64)) == 125940);
+ assert(unsigned(zero_extend(0x1ebf8, 64)) == 125944);
+ assert(unsigned(zero_extend(0x1ebfc, 64)) == 125948);
+ assert(unsigned(zero_extend(0x1ec00, 64)) == 125952);
+ assert(unsigned(zero_extend(0x1ec18, 64)) == 125976);
+ assert(unsigned(zero_extend(0x1ec1c, 64)) == 125980);
+ assert(unsigned(zero_extend(0x1ec20, 64)) == 125984);
+ assert(unsigned(zero_extend(0x1ec24, 64)) == 125988);
+ assert(unsigned(zero_extend(0x1ec25, 64)) == 125989);
+ assert(unsigned(zero_extend(0x1ec26, 64)) == 125990);
+ assert(unsigned(zero_extend(0x1ec27, 64)) == 125991);
+ assert(unsigned(zero_extend(0x1ec28, 64)) == 125992);
+ assert(unsigned(zero_extend(0x1ec29, 64)) == 125993);
+ assert(unsigned(zero_extend(0x1ec2a, 64)) == 125994);
+ assert(unsigned(zero_extend(0x1ec2b, 64)) == 125995);
+ assert(unsigned(zero_extend(0x1ec2c, 64)) == 125996);
+ assert(unsigned(zero_extend(0x1ec2d, 64)) == 125997);
+ assert(unsigned(zero_extend(0x1ec2e, 64)) == 125998);
+ assert(unsigned(zero_extend(0x1ec2f, 64)) == 125999);
+ assert(unsigned(zero_extend(0x1ec30, 64)) == 126000);
+ assert(unsigned(zero_extend(0x1ec31, 64)) == 126001);
+ assert(unsigned(zero_extend(0x1ec32, 64)) == 126002);
+ assert(unsigned(zero_extend(0x1ec33, 64)) == 126003);
+ assert(unsigned(zero_extend(0x1ec34, 64)) == 126004);
+ assert(unsigned(zero_extend(0x1ec35, 64)) == 126005);
+ assert(unsigned(zero_extend(0x1ec36, 64)) == 126006);
+ assert(unsigned(zero_extend(0x1ec37, 64)) == 126007);
+ assert(unsigned(zero_extend(0x1ec38, 64)) == 126008);
+ assert(unsigned(zero_extend(0x1ec39, 64)) == 126009);
+ assert(unsigned(zero_extend(0x1ec3a, 64)) == 126010);
+ assert(unsigned(zero_extend(0x1ec48, 64)) == 126024);
+ assert(unsigned(zero_extend(0x1ec7c, 64)) == 126076);
+ assert(unsigned(zero_extend(0x1ec7d, 64)) == 126077);
+ assert(unsigned(zero_extend(0x1ec7e, 64)) == 126078);
+ assert(unsigned(zero_extend(0x1ec7f, 64)) == 126079);
+ assert(unsigned(zero_extend(0x1ec80, 64)) == 126080);
+ assert(unsigned(zero_extend(0x1ec81, 64)) == 126081);
+ assert(unsigned(zero_extend(0x1ec82, 64)) == 126082);
+ assert(unsigned(zero_extend(0x1ec83, 64)) == 126083);
+ assert(unsigned(zero_extend(0x1ec84, 64)) == 126084);
+ assert(unsigned(zero_extend(0x1ec85, 64)) == 126085);
+ assert(unsigned(zero_extend(0x1ec86, 64)) == 126086);
+ assert(unsigned(zero_extend(0x1ec87, 64)) == 126087);
+ assert(unsigned(zero_extend(0x1ec88, 64)) == 126088);
+ assert(unsigned(zero_extend(0x1ec89, 64)) == 126089);
+ assert(unsigned(zero_extend(0x1ec8a, 64)) == 126090);
+ assert(unsigned(zero_extend(0x1ec8b, 64)) == 126091);
+ assert(unsigned(zero_extend(0x1ec8c, 64)) == 126092);
+ assert(unsigned(zero_extend(0x1ec8d, 64)) == 126093);
+ assert(unsigned(zero_extend(0x1ec8e, 64)) == 126094);
+ assert(unsigned(zero_extend(0x1ec8f, 64)) == 126095);
+ assert(unsigned(zero_extend(0x1ec90, 64)) == 126096);
+ assert(unsigned(zero_extend(0x1ec91, 64)) == 126097);
+ assert(unsigned(zero_extend(0x1ec92, 64)) == 126098);
+ assert(unsigned(zero_extend(0x1f, 64)) == 31);
+ assert(unsigned(zero_extend(0x1f138, 64)) == 127288);
+ assert(unsigned(zero_extend(0x1f13c, 64)) == 127292);
+ assert(unsigned(zero_extend(0x1f140, 64)) == 127296);
+ assert(unsigned(zero_extend(0x1f144, 64)) == 127300);
+ assert(unsigned(zero_extend(0x1f148, 64)) == 127304);
+ assert(unsigned(zero_extend(0x1f14c, 64)) == 127308);
+ assert(unsigned(zero_extend(0x1f150, 64)) == 127312);
+ assert(unsigned(zero_extend(0x1f154, 64)) == 127316);
+ assert(unsigned(zero_extend(0x1f158, 64)) == 127320);
+ assert(unsigned(zero_extend(0x1f15c, 64)) == 127324);
+ assert(unsigned(zero_extend(0x1f160, 64)) == 127328);
+ assert(unsigned(zero_extend(0x1f190, 64)) == 127376);
+ assert(unsigned(zero_extend(0x1f194, 64)) == 127380);
+ assert(unsigned(zero_extend(0x1f198, 64)) == 127384);
+ assert(unsigned(zero_extend(0x1f19c, 64)) == 127388);
+ assert(unsigned(zero_extend(0x1f1a0, 64)) == 127392);
+ assert(unsigned(zero_extend(0x1f1a4, 64)) == 127396);
+ assert(unsigned(zero_extend(0x1f1a8, 64)) == 127400);
+ assert(unsigned(zero_extend(0x1f1ac, 64)) == 127404);
+ assert(unsigned(zero_extend(0x1f1b0, 64)) == 127408);
+ assert(unsigned(zero_extend(0x1f1b4, 64)) == 127412);
+ assert(unsigned(zero_extend(0x1f1b8, 64)) == 127416);
+ assert(unsigned(zero_extend(0x1f2d0, 64)) == 127696);
+ assert(unsigned(zero_extend(0x1f2d4, 64)) == 127700);
+ assert(unsigned(zero_extend(0x1f2d8, 64)) == 127704);
+ assert(unsigned(zero_extend(0x1f2dc, 64)) == 127708);
+ assert(unsigned(zero_extend(0x1f2e0, 64)) == 127712);
+ assert(unsigned(zero_extend(0x1f2e4, 64)) == 127716);
+ assert(unsigned(zero_extend(0x1f2e8, 64)) == 127720);
+ assert(unsigned(zero_extend(0x1f2ec, 64)) == 127724);
+ assert(unsigned(zero_extend(0x1f2f0, 64)) == 127728);
+ assert(unsigned(zero_extend(0x1f2f4, 64)) == 127732);
+ assert(unsigned(zero_extend(0x1f2f8, 64)) == 127736);
+ assert(unsigned(zero_extend(0x1f2fc, 64)) == 127740);
+ assert(unsigned(zero_extend(0x1f300, 64)) == 127744);
+ assert(unsigned(zero_extend(0x1f304, 64)) == 127748);
+ assert(unsigned(zero_extend(0x1f308, 64)) == 127752);
+ assert(unsigned(zero_extend(0x1f310, 64)) == 127760);
+ assert(unsigned(zero_extend(0x1f328, 64)) == 127784);
+ assert(unsigned(zero_extend(0x1f32c, 64)) == 127788);
+ assert(unsigned(zero_extend(0x1f330, 64)) == 127792);
+ assert(unsigned(zero_extend(0x1f334, 64)) == 127796);
+ assert(unsigned(zero_extend(0x1f338, 64)) == 127800);
+ assert(unsigned(zero_extend(0x1f33c, 64)) == 127804);
+ assert(unsigned(zero_extend(0x1f340, 64)) == 127808);
+ assert(unsigned(zero_extend(0x1f344, 64)) == 127812);
+ assert(unsigned(zero_extend(0x1f348, 64)) == 127816);
+ assert(unsigned(zero_extend(0x1f34c, 64)) == 127820);
+ assert(unsigned(zero_extend(0x1f350, 64)) == 127824);
+ assert(unsigned(zero_extend(0x1f354, 64)) == 127828);
+ assert(unsigned(zero_extend(0x1f358, 64)) == 127832);
+ assert(unsigned(zero_extend(0x1f35c, 64)) == 127836);
+ assert(unsigned(zero_extend(0x1f360, 64)) == 127840);
+ assert(unsigned(zero_extend(0x1f368, 64)) == 127848);
+ assert(unsigned(zero_extend(0x1f558, 64)) == 128344);
+ assert(unsigned(zero_extend(0x1f55c, 64)) == 128348);
+ assert(unsigned(zero_extend(0x1f560, 64)) == 128352);
+ assert(unsigned(zero_extend(0x1f564, 64)) == 128356);
+ assert(unsigned(zero_extend(0x1f568, 64)) == 128360);
+ assert(unsigned(zero_extend(0x1f5a0, 64)) == 128416);
+ assert(unsigned(zero_extend(0x1f5a8, 64)) == 128424);
+ assert(unsigned(zero_extend(0x1f5b0, 64)) == 128432);
+ assert(unsigned(zero_extend(0x1f5b4, 64)) == 128436);
+ assert(unsigned(zero_extend(0x1f5b8, 64)) == 128440);
+ assert(unsigned(zero_extend(0x1f5bc, 64)) == 128444);
+ assert(unsigned(zero_extend(0x1f5c0, 64)) == 128448);
+ assert(unsigned(zero_extend(0x1f5f8, 64)) == 128504);
+ assert(unsigned(zero_extend(0x1f600, 64)) == 128512);
+ assert(unsigned(zero_extend(0x2, 64)) == 2);
+ assert(unsigned(zero_extend(0x20, 64)) == 32);
+ assert(unsigned(zero_extend(0x200, 64)) == 512);
+ assert(unsigned(zero_extend(0x2000, 64)) == 8192);
+ assert(unsigned(zero_extend(0x20000, 64)) == 131072);
+ assert(unsigned(zero_extend(0x20000000, 64)) == 536870912);
+ assert(unsigned(zero_extend(0x208, 64)) == 520);
+ assert(unsigned(zero_extend(0x20800, 64)) == 133120);
+ assert(unsigned(zero_extend(0x21, 64)) == 33);
+ assert(unsigned(zero_extend(0x21468, 64)) == 136296);
+ assert(unsigned(zero_extend(0x2146c, 64)) == 136300);
+ assert(unsigned(zero_extend(0x21470, 64)) == 136304);
+ assert(unsigned(zero_extend(0x21474, 64)) == 136308);
+ assert(unsigned(zero_extend(0x21478, 64)) == 136312);
+ assert(unsigned(zero_extend(0x2147c, 64)) == 136316);
+ assert(unsigned(zero_extend(0x21480, 64)) == 136320);
+ assert(unsigned(zero_extend(0x21484, 64)) == 136324);
+ assert(unsigned(zero_extend(0x21488, 64)) == 136328);
+ assert(unsigned(zero_extend(0x2148c, 64)) == 136332);
+ assert(unsigned(zero_extend(0x21490, 64)) == 136336);
+ assert(unsigned(zero_extend(0x21494, 64)) == 136340);
+ assert(unsigned(zero_extend(0x21498, 64)) == 136344);
+ assert(unsigned(zero_extend(0x2149c, 64)) == 136348);
+ assert(unsigned(zero_extend(0x214a0, 64)) == 136352);
+ assert(unsigned(zero_extend(0x214a4, 64)) == 136356);
+ assert(unsigned(zero_extend(0x214a8, 64)) == 136360);
+ assert(unsigned(zero_extend(0x214ac, 64)) == 136364);
+ assert(unsigned(zero_extend(0x214b0, 64)) == 136368);
+ assert(unsigned(zero_extend(0x214b4, 64)) == 136372);
+ assert(unsigned(zero_extend(0x214b8, 64)) == 136376);
+ assert(unsigned(zero_extend(0x214bc, 64)) == 136380);
+ assert(unsigned(zero_extend(0x214c0, 64)) == 136384);
+ assert(unsigned(zero_extend(0x214c4, 64)) == 136388);
+ assert(unsigned(zero_extend(0x214c8, 64)) == 136392);
+ assert(unsigned(zero_extend(0x214cc, 64)) == 136396);
+ assert(unsigned(zero_extend(0x214d0, 64)) == 136400);
+ assert(unsigned(zero_extend(0x214d4, 64)) == 136404);
+ assert(unsigned(zero_extend(0x214d8, 64)) == 136408);
+ assert(unsigned(zero_extend(0x214dc, 64)) == 136412);
+ assert(unsigned(zero_extend(0x214e0, 64)) == 136416);
+ assert(unsigned(zero_extend(0x214e4, 64)) == 136420);
+ assert(unsigned(zero_extend(0x214e8, 64)) == 136424);
+ assert(unsigned(zero_extend(0x214ec, 64)) == 136428);
+ assert(unsigned(zero_extend(0x214f0, 64)) == 136432);
+ assert(unsigned(zero_extend(0x214f4, 64)) == 136436);
+ assert(unsigned(zero_extend(0x214f8, 64)) == 136440);
+ assert(unsigned(zero_extend(0x214fc, 64)) == 136444);
+ assert(unsigned(zero_extend(0x21500, 64)) == 136448);
+ assert(unsigned(zero_extend(0x21504, 64)) == 136452);
+ assert(unsigned(zero_extend(0x21508, 64)) == 136456);
+ assert(unsigned(zero_extend(0x2150c, 64)) == 136460);
+ assert(unsigned(zero_extend(0x21510, 64)) == 136464);
+ assert(unsigned(zero_extend(0x21514, 64)) == 136468);
+ assert(unsigned(zero_extend(0x21518, 64)) == 136472);
+ assert(unsigned(zero_extend(0x2151c, 64)) == 136476);
+ assert(unsigned(zero_extend(0x21520, 64)) == 136480);
+ assert(unsigned(zero_extend(0x21524, 64)) == 136484);
+ assert(unsigned(zero_extend(0x21528, 64)) == 136488);
+ assert(unsigned(zero_extend(0x2152c, 64)) == 136492);
+ assert(unsigned(zero_extend(0x21530, 64)) == 136496);
+ assert(unsigned(zero_extend(0x21534, 64)) == 136500);
+ assert(unsigned(zero_extend(0x21538, 64)) == 136504);
+ assert(unsigned(zero_extend(0x2153c, 64)) == 136508);
+ assert(unsigned(zero_extend(0x21540, 64)) == 136512);
+ assert(unsigned(zero_extend(0x21544, 64)) == 136516);
+ assert(unsigned(zero_extend(0x21548, 64)) == 136520);
+ assert(unsigned(zero_extend(0x21568, 64)) == 136552);
+ assert(unsigned(zero_extend(0x2156c, 64)) == 136556);
+ assert(unsigned(zero_extend(0x21570, 64)) == 136560);
+ assert(unsigned(zero_extend(0x21574, 64)) == 136564);
+ assert(unsigned(zero_extend(0x21578, 64)) == 136568);
+ assert(unsigned(zero_extend(0x2157c, 64)) == 136572);
+ assert(unsigned(zero_extend(0x21580, 64)) == 136576);
+ assert(unsigned(zero_extend(0x21584, 64)) == 136580);
+ assert(unsigned(zero_extend(0x21588, 64)) == 136584);
+ assert(unsigned(zero_extend(0x2158c, 64)) == 136588);
+ assert(unsigned(zero_extend(0x21590, 64)) == 136592);
+ assert(unsigned(zero_extend(0x21594, 64)) == 136596);
+ assert(unsigned(zero_extend(0x21598, 64)) == 136600);
+ assert(unsigned(zero_extend(0x2159c, 64)) == 136604);
+ assert(unsigned(zero_extend(0x215a0, 64)) == 136608);
+ assert(unsigned(zero_extend(0x215a4, 64)) == 136612);
+ assert(unsigned(zero_extend(0x215c0, 64)) == 136640);
+ assert(unsigned(zero_extend(0x215c4, 64)) == 136644);
+ assert(unsigned(zero_extend(0x215c8, 64)) == 136648);
+ assert(unsigned(zero_extend(0x215cc, 64)) == 136652);
+ assert(unsigned(zero_extend(0x215d0, 64)) == 136656);
+ assert(unsigned(zero_extend(0x215d4, 64)) == 136660);
+ assert(unsigned(zero_extend(0x215d8, 64)) == 136664);
+ assert(unsigned(zero_extend(0x215dc, 64)) == 136668);
+ assert(unsigned(zero_extend(0x215e0, 64)) == 136672);
+ assert(unsigned(zero_extend(0x215e4, 64)) == 136676);
+ assert(unsigned(zero_extend(0x215e8, 64)) == 136680);
+ assert(unsigned(zero_extend(0x215ec, 64)) == 136684);
+ assert(unsigned(zero_extend(0x215f0, 64)) == 136688);
+ assert(unsigned(zero_extend(0x215f4, 64)) == 136692);
+ assert(unsigned(zero_extend(0x215f8, 64)) == 136696);
+ assert(unsigned(zero_extend(0x215fc, 64)) == 136700);
+ assert(unsigned(zero_extend(0x21680, 64)) == 136832);
+ assert(unsigned(zero_extend(0x21684, 64)) == 136836);
+ assert(unsigned(zero_extend(0x21688, 64)) == 136840);
+ assert(unsigned(zero_extend(0x2168c, 64)) == 136844);
+ assert(unsigned(zero_extend(0x21690, 64)) == 136848);
+ assert(unsigned(zero_extend(0x21694, 64)) == 136852);
+ assert(unsigned(zero_extend(0x21698, 64)) == 136856);
+ assert(unsigned(zero_extend(0x2169c, 64)) == 136860);
+ assert(unsigned(zero_extend(0x216a0, 64)) == 136864);
+ assert(unsigned(zero_extend(0x216a4, 64)) == 136868);
+ assert(unsigned(zero_extend(0x216a8, 64)) == 136872);
+ assert(unsigned(zero_extend(0x216ac, 64)) == 136876);
+ assert(unsigned(zero_extend(0x216b0, 64)) == 136880);
+ assert(unsigned(zero_extend(0x216b4, 64)) == 136884);
+ assert(unsigned(zero_extend(0x216b8, 64)) == 136888);
+ assert(unsigned(zero_extend(0x216d8, 64)) == 136920);
+ assert(unsigned(zero_extend(0x216dc, 64)) == 136924);
+ assert(unsigned(zero_extend(0x216e0, 64)) == 136928);
+ assert(unsigned(zero_extend(0x216e4, 64)) == 136932);
+ assert(unsigned(zero_extend(0x216e8, 64)) == 136936);
+ assert(unsigned(zero_extend(0x216ec, 64)) == 136940);
+ assert(unsigned(zero_extend(0x216f0, 64)) == 136944);
+ assert(unsigned(zero_extend(0x216f4, 64)) == 136948);
+ assert(unsigned(zero_extend(0x216f8, 64)) == 136952);
+ assert(unsigned(zero_extend(0x216fc, 64)) == 136956);
+ assert(unsigned(zero_extend(0x21700, 64)) == 136960);
+ assert(unsigned(zero_extend(0x21704, 64)) == 136964);
+ assert(unsigned(zero_extend(0x21708, 64)) == 136968);
+ assert(unsigned(zero_extend(0x2170c, 64)) == 136972);
+ assert(unsigned(zero_extend(0x21710, 64)) == 136976);
+ assert(unsigned(zero_extend(0x21714, 64)) == 136980);
+ assert(unsigned(zero_extend(0x21718, 64)) == 136984);
+ assert(unsigned(zero_extend(0x21720, 64)) == 136992);
+ assert(unsigned(zero_extend(0x2174c, 64)) == 137036);
+ assert(unsigned(zero_extend(0x21750, 64)) == 137040);
+ assert(unsigned(zero_extend(0x21751, 64)) == 137041);
+ assert(unsigned(zero_extend(0x21752, 64)) == 137042);
+ assert(unsigned(zero_extend(0x21753, 64)) == 137043);
+ assert(unsigned(zero_extend(0x21754, 64)) == 137044);
+ assert(unsigned(zero_extend(0x21755, 64)) == 137045);
+ assert(unsigned(zero_extend(0x21756, 64)) == 137046);
+ assert(unsigned(zero_extend(0x21757, 64)) == 137047);
+ assert(unsigned(zero_extend(0x21758, 64)) == 137048);
+ assert(unsigned(zero_extend(0x21759, 64)) == 137049);
+ assert(unsigned(zero_extend(0x2175a, 64)) == 137050);
+ assert(unsigned(zero_extend(0x2175b, 64)) == 137051);
+ assert(unsigned(zero_extend(0x2175c, 64)) == 137052);
+ assert(unsigned(zero_extend(0x2175d, 64)) == 137053);
+ assert(unsigned(zero_extend(0x2175e, 64)) == 137054);
+ assert(unsigned(zero_extend(0x2175f, 64)) == 137055);
+ assert(unsigned(zero_extend(0x21760, 64)) == 137056);
+ assert(unsigned(zero_extend(0x21761, 64)) == 137057);
+ assert(unsigned(zero_extend(0x21764, 64)) == 137060);
+ assert(unsigned(zero_extend(0x21765, 64)) == 137061);
+ assert(unsigned(zero_extend(0x21766, 64)) == 137062);
+ assert(unsigned(zero_extend(0x21767, 64)) == 137063);
+ assert(unsigned(zero_extend(0x21768, 64)) == 137064);
+ assert(unsigned(zero_extend(0x21769, 64)) == 137065);
+ assert(unsigned(zero_extend(0x2176a, 64)) == 137066);
+ assert(unsigned(zero_extend(0x2176c, 64)) == 137068);
+ assert(unsigned(zero_extend(0x21770, 64)) == 137072);
+ assert(unsigned(zero_extend(0x21778, 64)) == 137080);
+ assert(unsigned(zero_extend(0x217a8, 64)) == 137128);
+ assert(unsigned(zero_extend(0x217a9, 64)) == 137129);
+ assert(unsigned(zero_extend(0x217aa, 64)) == 137130);
+ assert(unsigned(zero_extend(0x217ab, 64)) == 137131);
+ assert(unsigned(zero_extend(0x217ac, 64)) == 137132);
+ assert(unsigned(zero_extend(0x217ad, 64)) == 137133);
+ assert(unsigned(zero_extend(0x217ae, 64)) == 137134);
+ assert(unsigned(zero_extend(0x217af, 64)) == 137135);
+ assert(unsigned(zero_extend(0x217b0, 64)) == 137136);
+ assert(unsigned(zero_extend(0x217b1, 64)) == 137137);
+ assert(unsigned(zero_extend(0x217b2, 64)) == 137138);
+ assert(unsigned(zero_extend(0x217b3, 64)) == 137139);
+ assert(unsigned(zero_extend(0x217b4, 64)) == 137140);
+ assert(unsigned(zero_extend(0x217b5, 64)) == 137141);
+ assert(unsigned(zero_extend(0x217b6, 64)) == 137142);
+ assert(unsigned(zero_extend(0x217b7, 64)) == 137143);
+ assert(unsigned(zero_extend(0x217b8, 64)) == 137144);
+ assert(unsigned(zero_extend(0x217b9, 64)) == 137145);
+ assert(unsigned(zero_extend(0x217bc, 64)) == 137148);
+ assert(unsigned(zero_extend(0x217bd, 64)) == 137149);
+ assert(unsigned(zero_extend(0x217be, 64)) == 137150);
+ assert(unsigned(zero_extend(0x217bf, 64)) == 137151);
+ assert(unsigned(zero_extend(0x217c0, 64)) == 137152);
+ assert(unsigned(zero_extend(0x217c1, 64)) == 137153);
+ assert(unsigned(zero_extend(0x217c2, 64)) == 137154);
+ assert(unsigned(zero_extend(0x21820, 64)) == 137248);
+ assert(unsigned(zero_extend(0x21824, 64)) == 137252);
+ assert(unsigned(zero_extend(0x21828, 64)) == 137256);
+ assert(unsigned(zero_extend(0x2182c, 64)) == 137260);
+ assert(unsigned(zero_extend(0x21830, 64)) == 137264);
+ assert(unsigned(zero_extend(0x21834, 64)) == 137268);
+ assert(unsigned(zero_extend(0x21838, 64)) == 137272);
+ assert(unsigned(zero_extend(0x2183c, 64)) == 137276);
+ assert(unsigned(zero_extend(0x21840, 64)) == 137280);
+ assert(unsigned(zero_extend(0x21844, 64)) == 137284);
+ assert(unsigned(zero_extend(0x21848, 64)) == 137288);
+ assert(unsigned(zero_extend(0x2184c, 64)) == 137292);
+ assert(unsigned(zero_extend(0x21850, 64)) == 137296);
+ assert(unsigned(zero_extend(0x21854, 64)) == 137300);
+ assert(unsigned(zero_extend(0x21858, 64)) == 137304);
+ assert(unsigned(zero_extend(0x2185c, 64)) == 137308);
+ assert(unsigned(zero_extend(0x21860, 64)) == 137312);
+ assert(unsigned(zero_extend(0x21864, 64)) == 137316);
+ assert(unsigned(zero_extend(0x21868, 64)) == 137320);
+ assert(unsigned(zero_extend(0x2186c, 64)) == 137324);
+ assert(unsigned(zero_extend(0x21870, 64)) == 137328);
+ assert(unsigned(zero_extend(0x21874, 64)) == 137332);
+ assert(unsigned(zero_extend(0x21878, 64)) == 137336);
+ assert(unsigned(zero_extend(0x2187c, 64)) == 137340);
+ assert(unsigned(zero_extend(0x21880, 64)) == 137344);
+ assert(unsigned(zero_extend(0x21884, 64)) == 137348);
+ assert(unsigned(zero_extend(0x21888, 64)) == 137352);
+ assert(unsigned(zero_extend(0x2188c, 64)) == 137356);
+ assert(unsigned(zero_extend(0x21890, 64)) == 137360);
+ assert(unsigned(zero_extend(0x21894, 64)) == 137364);
+ assert(unsigned(zero_extend(0x21898, 64)) == 137368);
+ assert(unsigned(zero_extend(0x2189c, 64)) == 137372);
+ assert(unsigned(zero_extend(0x218a0, 64)) == 137376);
+ assert(unsigned(zero_extend(0x218a4, 64)) == 137380);
+ assert(unsigned(zero_extend(0x218a8, 64)) == 137384);
+ assert(unsigned(zero_extend(0x218ac, 64)) == 137388);
+ assert(unsigned(zero_extend(0x218b0, 64)) == 137392);
+ assert(unsigned(zero_extend(0x218b4, 64)) == 137396);
+ assert(unsigned(zero_extend(0x218b8, 64)) == 137400);
+ assert(unsigned(zero_extend(0x218bc, 64)) == 137404);
+ assert(unsigned(zero_extend(0x218c0, 64)) == 137408);
+ assert(unsigned(zero_extend(0x218c4, 64)) == 137412);
+ assert(unsigned(zero_extend(0x218c8, 64)) == 137416);
+ assert(unsigned(zero_extend(0x218cc, 64)) == 137420);
+ assert(unsigned(zero_extend(0x218d0, 64)) == 137424);
+ assert(unsigned(zero_extend(0x218d4, 64)) == 137428);
+ assert(unsigned(zero_extend(0x218d8, 64)) == 137432);
+ assert(unsigned(zero_extend(0x218dc, 64)) == 137436);
+ assert(unsigned(zero_extend(0x218e0, 64)) == 137440);
+ assert(unsigned(zero_extend(0x218e4, 64)) == 137444);
+ assert(unsigned(zero_extend(0x218e8, 64)) == 137448);
+ assert(unsigned(zero_extend(0x218ec, 64)) == 137452);
+ assert(unsigned(zero_extend(0x218f0, 64)) == 137456);
+ assert(unsigned(zero_extend(0x218f4, 64)) == 137460);
+ assert(unsigned(zero_extend(0x218f8, 64)) == 137464);
+ assert(unsigned(zero_extend(0x218fc, 64)) == 137468);
+ assert(unsigned(zero_extend(0x21900, 64)) == 137472);
+ assert(unsigned(zero_extend(0x21904, 64)) == 137476);
+ assert(unsigned(zero_extend(0x21908, 64)) == 137480);
+ assert(unsigned(zero_extend(0x2190c, 64)) == 137484);
+ assert(unsigned(zero_extend(0x21910, 64)) == 137488);
+ assert(unsigned(zero_extend(0x21914, 64)) == 137492);
+ assert(unsigned(zero_extend(0x21918, 64)) == 137496);
+ assert(unsigned(zero_extend(0x2191c, 64)) == 137500);
+ assert(unsigned(zero_extend(0x21920, 64)) == 137504);
+ assert(unsigned(zero_extend(0x21924, 64)) == 137508);
+ assert(unsigned(zero_extend(0x21928, 64)) == 137512);
+ assert(unsigned(zero_extend(0x2192c, 64)) == 137516);
+ assert(unsigned(zero_extend(0x21930, 64)) == 137520);
+ assert(unsigned(zero_extend(0x21934, 64)) == 137524);
+ assert(unsigned(zero_extend(0x21938, 64)) == 137528);
+ assert(unsigned(zero_extend(0x2193c, 64)) == 137532);
+ assert(unsigned(zero_extend(0x21940, 64)) == 137536);
+ assert(unsigned(zero_extend(0x21944, 64)) == 137540);
+ assert(unsigned(zero_extend(0x21948, 64)) == 137544);
+ assert(unsigned(zero_extend(0x2194c, 64)) == 137548);
+ assert(unsigned(zero_extend(0x21950, 64)) == 137552);
+ assert(unsigned(zero_extend(0x21954, 64)) == 137556);
+ assert(unsigned(zero_extend(0x21958, 64)) == 137560);
+ assert(unsigned(zero_extend(0x2195c, 64)) == 137564);
+ assert(unsigned(zero_extend(0x21960, 64)) == 137568);
+ assert(unsigned(zero_extend(0x21964, 64)) == 137572);
+ assert(unsigned(zero_extend(0x21968, 64)) == 137576);
+ assert(unsigned(zero_extend(0x2196c, 64)) == 137580);
+ assert(unsigned(zero_extend(0x2196d, 64)) == 137581);
+ assert(unsigned(zero_extend(0x2196e, 64)) == 137582);
+ assert(unsigned(zero_extend(0x2196f, 64)) == 137583);
+ assert(unsigned(zero_extend(0x21970, 64)) == 137584);
+ assert(unsigned(zero_extend(0x21971, 64)) == 137585);
+ assert(unsigned(zero_extend(0x21972, 64)) == 137586);
+ assert(unsigned(zero_extend(0x21973, 64)) == 137587);
+ assert(unsigned(zero_extend(0x21974, 64)) == 137588);
+ assert(unsigned(zero_extend(0x21975, 64)) == 137589);
+ assert(unsigned(zero_extend(0x21976, 64)) == 137590);
+ assert(unsigned(zero_extend(0x21977, 64)) == 137591);
+ assert(unsigned(zero_extend(0x21978, 64)) == 137592);
+ assert(unsigned(zero_extend(0x21979, 64)) == 137593);
+ assert(unsigned(zero_extend(0x2197a, 64)) == 137594);
+ assert(unsigned(zero_extend(0x2197b, 64)) == 137595);
+ assert(unsigned(zero_extend(0x2197c, 64)) == 137596);
+ assert(unsigned(zero_extend(0x2197d, 64)) == 137597);
+ assert(unsigned(zero_extend(0x2197e, 64)) == 137598);
+ assert(unsigned(zero_extend(0x2197f, 64)) == 137599);
+ assert(unsigned(zero_extend(0x21980, 64)) == 137600);
+ assert(unsigned(zero_extend(0x21981, 64)) == 137601);
+ assert(unsigned(zero_extend(0x21982, 64)) == 137602);
+ assert(unsigned(zero_extend(0x21983, 64)) == 137603);
+ assert(unsigned(zero_extend(0x21984, 64)) == 137604);
+ assert(unsigned(zero_extend(0x21988, 64)) == 137608);
+ assert(unsigned(zero_extend(0x2198c, 64)) == 137612);
+ assert(unsigned(zero_extend(0x21990, 64)) == 137616);
+ assert(unsigned(zero_extend(0x21994, 64)) == 137620);
+ assert(unsigned(zero_extend(0x21998, 64)) == 137624);
+ assert(unsigned(zero_extend(0x2199c, 64)) == 137628);
+ assert(unsigned(zero_extend(0x219a0, 64)) == 137632);
+ assert(unsigned(zero_extend(0x219a4, 64)) == 137636);
+ assert(unsigned(zero_extend(0x219a8, 64)) == 137640);
+ assert(unsigned(zero_extend(0x219ac, 64)) == 137644);
+ assert(unsigned(zero_extend(0x219b0, 64)) == 137648);
+ assert(unsigned(zero_extend(0x219b4, 64)) == 137652);
+ assert(unsigned(zero_extend(0x219b8, 64)) == 137656);
+ assert(unsigned(zero_extend(0x219bc, 64)) == 137660);
+ assert(unsigned(zero_extend(0x219c0, 64)) == 137664);
+ assert(unsigned(zero_extend(0x219c4, 64)) == 137668);
+ assert(unsigned(zero_extend(0x219c5, 64)) == 137669);
+ assert(unsigned(zero_extend(0x219c6, 64)) == 137670);
+ assert(unsigned(zero_extend(0x219c7, 64)) == 137671);
+ assert(unsigned(zero_extend(0x219c8, 64)) == 137672);
+ assert(unsigned(zero_extend(0x219c9, 64)) == 137673);
+ assert(unsigned(zero_extend(0x219ca, 64)) == 137674);
+ assert(unsigned(zero_extend(0x219cb, 64)) == 137675);
+ assert(unsigned(zero_extend(0x219cc, 64)) == 137676);
+ assert(unsigned(zero_extend(0x219cd, 64)) == 137677);
+ assert(unsigned(zero_extend(0x219ce, 64)) == 137678);
+ assert(unsigned(zero_extend(0x219cf, 64)) == 137679);
+ assert(unsigned(zero_extend(0x219d0, 64)) == 137680);
+ assert(unsigned(zero_extend(0x219d1, 64)) == 137681);
+ assert(unsigned(zero_extend(0x219d2, 64)) == 137682);
+ assert(unsigned(zero_extend(0x219d3, 64)) == 137683);
+ assert(unsigned(zero_extend(0x219d4, 64)) == 137684);
+ assert(unsigned(zero_extend(0x219d5, 64)) == 137685);
+ assert(unsigned(zero_extend(0x219d6, 64)) == 137686);
+ assert(unsigned(zero_extend(0x219d7, 64)) == 137687);
+ assert(unsigned(zero_extend(0x219d8, 64)) == 137688);
+ assert(unsigned(zero_extend(0x219d9, 64)) == 137689);
+ assert(unsigned(zero_extend(0x219da, 64)) == 137690);
+ assert(unsigned(zero_extend(0x219db, 64)) == 137691);
+ assert(unsigned(zero_extend(0x219dc, 64)) == 137692);
+ assert(unsigned(zero_extend(0x219e0, 64)) == 137696);
+ assert(unsigned(zero_extend(0x219e4, 64)) == 137700);
+ assert(unsigned(zero_extend(0x219e8, 64)) == 137704);
+ assert(unsigned(zero_extend(0x219ec, 64)) == 137708);
+ assert(unsigned(zero_extend(0x219f0, 64)) == 137712);
+ assert(unsigned(zero_extend(0x219f4, 64)) == 137716);
+ assert(unsigned(zero_extend(0x219f8, 64)) == 137720);
+ assert(unsigned(zero_extend(0x219fc, 64)) == 137724);
+ assert(unsigned(zero_extend(0x21a00, 64)) == 137728);
+ assert(unsigned(zero_extend(0x21a04, 64)) == 137732);
+ assert(unsigned(zero_extend(0x21a08, 64)) == 137736);
+ assert(unsigned(zero_extend(0x21a0c, 64)) == 137740);
+ assert(unsigned(zero_extend(0x21a10, 64)) == 137744);
+ assert(unsigned(zero_extend(0x21a14, 64)) == 137748);
+ assert(unsigned(zero_extend(0x21a18, 64)) == 137752);
+ assert(unsigned(zero_extend(0x21a1c, 64)) == 137756);
+ assert(unsigned(zero_extend(0x21a20, 64)) == 137760);
+ assert(unsigned(zero_extend(0x21a24, 64)) == 137764);
+ assert(unsigned(zero_extend(0x21a28, 64)) == 137768);
+ assert(unsigned(zero_extend(0x21a2c, 64)) == 137772);
+ assert(unsigned(zero_extend(0x21a30, 64)) == 137776);
+ assert(unsigned(zero_extend(0x21a34, 64)) == 137780);
+ assert(unsigned(zero_extend(0x21a38, 64)) == 137784);
+ assert(unsigned(zero_extend(0x21a3c, 64)) == 137788);
+ assert(unsigned(zero_extend(0x21a40, 64)) == 137792);
+ assert(unsigned(zero_extend(0x21a44, 64)) == 137796);
+ assert(unsigned(zero_extend(0x21a48, 64)) == 137800);
+ assert(unsigned(zero_extend(0x21a4c, 64)) == 137804);
+ assert(unsigned(zero_extend(0x21a50, 64)) == 137808);
+ assert(unsigned(zero_extend(0x21a54, 64)) == 137812);
+ assert(unsigned(zero_extend(0x21a58, 64)) == 137816);
+ assert(unsigned(zero_extend(0x21a5c, 64)) == 137820);
+ assert(unsigned(zero_extend(0x21a60, 64)) == 137824);
+ assert(unsigned(zero_extend(0x21a64, 64)) == 137828);
+ assert(unsigned(zero_extend(0x21a68, 64)) == 137832);
+ assert(unsigned(zero_extend(0x21a6c, 64)) == 137836);
+ assert(unsigned(zero_extend(0x21a70, 64)) == 137840);
+ assert(unsigned(zero_extend(0x21a74, 64)) == 137844);
+ assert(unsigned(zero_extend(0x21a78, 64)) == 137848);
+ assert(unsigned(zero_extend(0x21a7c, 64)) == 137852);
+ assert(unsigned(zero_extend(0x21a80, 64)) == 137856);
+ assert(unsigned(zero_extend(0x21a84, 64)) == 137860);
+ assert(unsigned(zero_extend(0x21a88, 64)) == 137864);
+ assert(unsigned(zero_extend(0x21a8c, 64)) == 137868);
+ assert(unsigned(zero_extend(0x21a90, 64)) == 137872);
+ assert(unsigned(zero_extend(0x21a91, 64)) == 137873);
+ assert(unsigned(zero_extend(0x21a92, 64)) == 137874);
+ assert(unsigned(zero_extend(0x21a93, 64)) == 137875);
+ assert(unsigned(zero_extend(0x21a94, 64)) == 137876);
+ assert(unsigned(zero_extend(0x21a95, 64)) == 137877);
+ assert(unsigned(zero_extend(0x21a96, 64)) == 137878);
+ assert(unsigned(zero_extend(0x21a97, 64)) == 137879);
+ assert(unsigned(zero_extend(0x21a98, 64)) == 137880);
+ assert(unsigned(zero_extend(0x21a99, 64)) == 137881);
+ assert(unsigned(zero_extend(0x21a9a, 64)) == 137882);
+ assert(unsigned(zero_extend(0x21a9b, 64)) == 137883);
+ assert(unsigned(zero_extend(0x21a9c, 64)) == 137884);
+ assert(unsigned(zero_extend(0x21a9d, 64)) == 137885);
+ assert(unsigned(zero_extend(0x21a9e, 64)) == 137886);
+ assert(unsigned(zero_extend(0x21a9f, 64)) == 137887);
+ assert(unsigned(zero_extend(0x21aa0, 64)) == 137888);
+ assert(unsigned(zero_extend(0x21aa1, 64)) == 137889);
+ assert(unsigned(zero_extend(0x21aa2, 64)) == 137890);
+ assert(unsigned(zero_extend(0x21aa3, 64)) == 137891);
+ assert(unsigned(zero_extend(0x21aa4, 64)) == 137892);
+ assert(unsigned(zero_extend(0x21aa5, 64)) == 137893);
+ assert(unsigned(zero_extend(0x21aa6, 64)) == 137894);
+ assert(unsigned(zero_extend(0x21aa7, 64)) == 137895);
+ assert(unsigned(zero_extend(0x21aa8, 64)) == 137896);
+ assert(unsigned(zero_extend(0x21aa9, 64)) == 137897);
+ assert(unsigned(zero_extend(0x21aaa, 64)) == 137898);
+ assert(unsigned(zero_extend(0x21ae0, 64)) == 137952);
+ assert(unsigned(zero_extend(0x21ae8, 64)) == 137960);
+ assert(unsigned(zero_extend(0x21ae9, 64)) == 137961);
+ assert(unsigned(zero_extend(0x21aea, 64)) == 137962);
+ assert(unsigned(zero_extend(0x21aeb, 64)) == 137963);
+ assert(unsigned(zero_extend(0x21aec, 64)) == 137964);
+ assert(unsigned(zero_extend(0x21aed, 64)) == 137965);
+ assert(unsigned(zero_extend(0x21aee, 64)) == 137966);
+ assert(unsigned(zero_extend(0x21aef, 64)) == 137967);
+ assert(unsigned(zero_extend(0x21af0, 64)) == 137968);
+ assert(unsigned(zero_extend(0x21af1, 64)) == 137969);
+ assert(unsigned(zero_extend(0x21af2, 64)) == 137970);
+ assert(unsigned(zero_extend(0x21af3, 64)) == 137971);
+ assert(unsigned(zero_extend(0x21af4, 64)) == 137972);
+ assert(unsigned(zero_extend(0x21af5, 64)) == 137973);
+ assert(unsigned(zero_extend(0x21af6, 64)) == 137974);
+ assert(unsigned(zero_extend(0x21af7, 64)) == 137975);
+ assert(unsigned(zero_extend(0x21af8, 64)) == 137976);
+ assert(unsigned(zero_extend(0x21af9, 64)) == 137977);
+ assert(unsigned(zero_extend(0x21afa, 64)) == 137978);
+ assert(unsigned(zero_extend(0x21afb, 64)) == 137979);
+ assert(unsigned(zero_extend(0x21afc, 64)) == 137980);
+ assert(unsigned(zero_extend(0x21afd, 64)) == 137981);
+ assert(unsigned(zero_extend(0x21afe, 64)) == 137982);
+ assert(unsigned(zero_extend(0x21aff, 64)) == 137983);
+ assert(unsigned(zero_extend(0x21b00, 64)) == 137984);
+ assert(unsigned(zero_extend(0x21b01, 64)) == 137985);
+ assert(unsigned(zero_extend(0x21b02, 64)) == 137986);
+ assert(unsigned(zero_extend(0x21c08, 64)) == 138248);
+ assert(unsigned(zero_extend(0x21c0c, 64)) == 138252);
+ assert(unsigned(zero_extend(0x21c10, 64)) == 138256);
+ assert(unsigned(zero_extend(0x21c14, 64)) == 138260);
+ assert(unsigned(zero_extend(0x21c18, 64)) == 138264);
+ assert(unsigned(zero_extend(0x21c1c, 64)) == 138268);
+ assert(unsigned(zero_extend(0x21c20, 64)) == 138272);
+ assert(unsigned(zero_extend(0x21c24, 64)) == 138276);
+ assert(unsigned(zero_extend(0x21c28, 64)) == 138280);
+ assert(unsigned(zero_extend(0x21c2c, 64)) == 138284);
+ assert(unsigned(zero_extend(0x21c30, 64)) == 138288);
+ assert(unsigned(zero_extend(0x21c34, 64)) == 138292);
+ assert(unsigned(zero_extend(0x21c38, 64)) == 138296);
+ assert(unsigned(zero_extend(0x21c3c, 64)) == 138300);
+ assert(unsigned(zero_extend(0x21c40, 64)) == 138304);
+ assert(unsigned(zero_extend(0x21c44, 64)) == 138308);
+ assert(unsigned(zero_extend(0x21c48, 64)) == 138312);
+ assert(unsigned(zero_extend(0x21c4c, 64)) == 138316);
+ assert(unsigned(zero_extend(0x21c50, 64)) == 138320);
+ assert(unsigned(zero_extend(0x21c54, 64)) == 138324);
+ assert(unsigned(zero_extend(0x21c58, 64)) == 138328);
+ assert(unsigned(zero_extend(0x21c5c, 64)) == 138332);
+ assert(unsigned(zero_extend(0x21c60, 64)) == 138336);
+ assert(unsigned(zero_extend(0x21c64, 64)) == 138340);
+ assert(unsigned(zero_extend(0x21c68, 64)) == 138344);
+ assert(unsigned(zero_extend(0x21c6c, 64)) == 138348);
+ assert(unsigned(zero_extend(0x21c70, 64)) == 138352);
+ assert(unsigned(zero_extend(0x21c74, 64)) == 138356);
+ assert(unsigned(zero_extend(0x21c78, 64)) == 138360);
+ assert(unsigned(zero_extend(0x21c7c, 64)) == 138364);
+ assert(unsigned(zero_extend(0x21c80, 64)) == 138368);
+ assert(unsigned(zero_extend(0x21c84, 64)) == 138372);
+ assert(unsigned(zero_extend(0x21c88, 64)) == 138376);
+ assert(unsigned(zero_extend(0x21c8c, 64)) == 138380);
+ assert(unsigned(zero_extend(0x21c90, 64)) == 138384);
+ assert(unsigned(zero_extend(0x21c94, 64)) == 138388);
+ assert(unsigned(zero_extend(0x21c98, 64)) == 138392);
+ assert(unsigned(zero_extend(0x21c9c, 64)) == 138396);
+ assert(unsigned(zero_extend(0x21ca0, 64)) == 138400);
+ assert(unsigned(zero_extend(0x21ca4, 64)) == 138404);
+ assert(unsigned(zero_extend(0x21ca8, 64)) == 138408);
+ assert(unsigned(zero_extend(0x21cac, 64)) == 138412);
+ assert(unsigned(zero_extend(0x21cb0, 64)) == 138416);
+ assert(unsigned(zero_extend(0x21cb4, 64)) == 138420);
+ assert(unsigned(zero_extend(0x21cb8, 64)) == 138424);
+ assert(unsigned(zero_extend(0x21cbc, 64)) == 138428);
+ assert(unsigned(zero_extend(0x21cc0, 64)) == 138432);
+ assert(unsigned(zero_extend(0x21cc4, 64)) == 138436);
+ assert(unsigned(zero_extend(0x21cc8, 64)) == 138440);
+ assert(unsigned(zero_extend(0x21ccc, 64)) == 138444);
+ assert(unsigned(zero_extend(0x21cd0, 64)) == 138448);
+ assert(unsigned(zero_extend(0x21cd4, 64)) == 138452);
+ assert(unsigned(zero_extend(0x21cd8, 64)) == 138456);
+ assert(unsigned(zero_extend(0x21cdc, 64)) == 138460);
+ assert(unsigned(zero_extend(0x21ce0, 64)) == 138464);
+ assert(unsigned(zero_extend(0x21ce4, 64)) == 138468);
+ assert(unsigned(zero_extend(0x21ce8, 64)) == 138472);
+ assert(unsigned(zero_extend(0x21cec, 64)) == 138476);
+ assert(unsigned(zero_extend(0x21cf0, 64)) == 138480);
+ assert(unsigned(zero_extend(0x21cf4, 64)) == 138484);
+ assert(unsigned(zero_extend(0x21cf8, 64)) == 138488);
+ assert(unsigned(zero_extend(0x21cfc, 64)) == 138492);
+ assert(unsigned(zero_extend(0x21d00, 64)) == 138496);
+ assert(unsigned(zero_extend(0x21d04, 64)) == 138500);
+ assert(unsigned(zero_extend(0x21d08, 64)) == 138504);
+ assert(unsigned(zero_extend(0x21d09, 64)) == 138505);
+ assert(unsigned(zero_extend(0x21d0a, 64)) == 138506);
+ assert(unsigned(zero_extend(0x21d0b, 64)) == 138507);
+ assert(unsigned(zero_extend(0x21d0c, 64)) == 138508);
+ assert(unsigned(zero_extend(0x21d0d, 64)) == 138509);
+ assert(unsigned(zero_extend(0x21d0e, 64)) == 138510);
+ assert(unsigned(zero_extend(0x21d0f, 64)) == 138511);
+ assert(unsigned(zero_extend(0x21d10, 64)) == 138512);
+ assert(unsigned(zero_extend(0x21d11, 64)) == 138513);
+ assert(unsigned(zero_extend(0x21d14, 64)) == 138516);
+ assert(unsigned(zero_extend(0x21d15, 64)) == 138517);
+ assert(unsigned(zero_extend(0x21d16, 64)) == 138518);
+ assert(unsigned(zero_extend(0x21d17, 64)) == 138519);
+ assert(unsigned(zero_extend(0x21d18, 64)) == 138520);
+ assert(unsigned(zero_extend(0x21d19, 64)) == 138521);
+ assert(unsigned(zero_extend(0x21d1a, 64)) == 138522);
+ assert(unsigned(zero_extend(0x21d1b, 64)) == 138523);
+ assert(unsigned(zero_extend(0x21d1c, 64)) == 138524);
+ assert(unsigned(zero_extend(0x21d1d, 64)) == 138525);
+ assert(unsigned(zero_extend(0x21d1e, 64)) == 138526);
+ assert(unsigned(zero_extend(0x21d1f, 64)) == 138527);
+ assert(unsigned(zero_extend(0x21d20, 64)) == 138528);
+ assert(unsigned(zero_extend(0x21d21, 64)) == 138529);
+ assert(unsigned(zero_extend(0x21d22, 64)) == 138530);
+ assert(unsigned(zero_extend(0x21d23, 64)) == 138531);
+ assert(unsigned(zero_extend(0x21d24, 64)) == 138532);
+ assert(unsigned(zero_extend(0x21d25, 64)) == 138533);
+ assert(unsigned(zero_extend(0x21d26, 64)) == 138534);
+ assert(unsigned(zero_extend(0x21d27, 64)) == 138535);
+ assert(unsigned(zero_extend(0x21d28, 64)) == 138536);
+ assert(unsigned(zero_extend(0x21d29, 64)) == 138537);
+ assert(unsigned(zero_extend(0x21d2a, 64)) == 138538);
+ assert(unsigned(zero_extend(0x21d2b, 64)) == 138539);
+ assert(unsigned(zero_extend(0x21d2c, 64)) == 138540);
+ assert(unsigned(zero_extend(0x21d2d, 64)) == 138541);
+ assert(unsigned(zero_extend(0x21d30, 64)) == 138544);
+ assert(unsigned(zero_extend(0x21d31, 64)) == 138545);
+ assert(unsigned(zero_extend(0x21d32, 64)) == 138546);
+ assert(unsigned(zero_extend(0x21d33, 64)) == 138547);
+ assert(unsigned(zero_extend(0x21d34, 64)) == 138548);
+ assert(unsigned(zero_extend(0x21d35, 64)) == 138549);
+ assert(unsigned(zero_extend(0x21d36, 64)) == 138550);
+ assert(unsigned(zero_extend(0x21d37, 64)) == 138551);
+ assert(unsigned(zero_extend(0x21d38, 64)) == 138552);
+ assert(unsigned(zero_extend(0x21d39, 64)) == 138553);
+ assert(unsigned(zero_extend(0x21d3c, 64)) == 138556);
+ assert(unsigned(zero_extend(0x21d3d, 64)) == 138557);
+ assert(unsigned(zero_extend(0x21d3e, 64)) == 138558);
+ assert(unsigned(zero_extend(0x21d3f, 64)) == 138559);
+ assert(unsigned(zero_extend(0x21d40, 64)) == 138560);
+ assert(unsigned(zero_extend(0x21d41, 64)) == 138561);
+ assert(unsigned(zero_extend(0x21d42, 64)) == 138562);
+ assert(unsigned(zero_extend(0x21d43, 64)) == 138563);
+ assert(unsigned(zero_extend(0x21d44, 64)) == 138564);
+ assert(unsigned(zero_extend(0x21d45, 64)) == 138565);
+ assert(unsigned(zero_extend(0x21d48, 64)) == 138568);
+ assert(unsigned(zero_extend(0x21d49, 64)) == 138569);
+ assert(unsigned(zero_extend(0x21d4a, 64)) == 138570);
+ assert(unsigned(zero_extend(0x21d4b, 64)) == 138571);
+ assert(unsigned(zero_extend(0x21d4c, 64)) == 138572);
+ assert(unsigned(zero_extend(0x21d4d, 64)) == 138573);
+ assert(unsigned(zero_extend(0x21d4e, 64)) == 138574);
+ assert(unsigned(zero_extend(0x21d4f, 64)) == 138575);
+ assert(unsigned(zero_extend(0x21d50, 64)) == 138576);
+ assert(unsigned(zero_extend(0x21d51, 64)) == 138577);
+ assert(unsigned(zero_extend(0x21d54, 64)) == 138580);
+ assert(unsigned(zero_extend(0x21d55, 64)) == 138581);
+ assert(unsigned(zero_extend(0x21d56, 64)) == 138582);
+ assert(unsigned(zero_extend(0x21d57, 64)) == 138583);
+ assert(unsigned(zero_extend(0x21d58, 64)) == 138584);
+ assert(unsigned(zero_extend(0x21d59, 64)) == 138585);
+ assert(unsigned(zero_extend(0x21d5a, 64)) == 138586);
+ assert(unsigned(zero_extend(0x21d5b, 64)) == 138587);
+ assert(unsigned(zero_extend(0x21d5c, 64)) == 138588);
+ assert(unsigned(zero_extend(0x21d5d, 64)) == 138589);
+ assert(unsigned(zero_extend(0x21d60, 64)) == 138592);
+ assert(unsigned(zero_extend(0x21d61, 64)) == 138593);
+ assert(unsigned(zero_extend(0x21d62, 64)) == 138594);
+ assert(unsigned(zero_extend(0x21d63, 64)) == 138595);
+ assert(unsigned(zero_extend(0x21d64, 64)) == 138596);
+ assert(unsigned(zero_extend(0x21d65, 64)) == 138597);
+ assert(unsigned(zero_extend(0x21d66, 64)) == 138598);
+ assert(unsigned(zero_extend(0x21d67, 64)) == 138599);
+ assert(unsigned(zero_extend(0x21d68, 64)) == 138600);
+ assert(unsigned(zero_extend(0x21d69, 64)) == 138601);
+ assert(unsigned(zero_extend(0x21d6c, 64)) == 138604);
+ assert(unsigned(zero_extend(0x21d6d, 64)) == 138605);
+ assert(unsigned(zero_extend(0x21d6e, 64)) == 138606);
+ assert(unsigned(zero_extend(0x21d6f, 64)) == 138607);
+ assert(unsigned(zero_extend(0x21d70, 64)) == 138608);
+ assert(unsigned(zero_extend(0x21d71, 64)) == 138609);
+ assert(unsigned(zero_extend(0x21d72, 64)) == 138610);
+ assert(unsigned(zero_extend(0x21d73, 64)) == 138611);
+ assert(unsigned(zero_extend(0x21d74, 64)) == 138612);
+ assert(unsigned(zero_extend(0x21d75, 64)) == 138613);
+ assert(unsigned(zero_extend(0x21d76, 64)) == 138614);
+ assert(unsigned(zero_extend(0x21d77, 64)) == 138615);
+ assert(unsigned(zero_extend(0x21d78, 64)) == 138616);
+ assert(unsigned(zero_extend(0x21d79, 64)) == 138617);
+ assert(unsigned(zero_extend(0x21d7a, 64)) == 138618);
+ assert(unsigned(zero_extend(0x21d7b, 64)) == 138619);
+ assert(unsigned(zero_extend(0x21d7c, 64)) == 138620);
+ assert(unsigned(zero_extend(0x21d7d, 64)) == 138621);
+ assert(unsigned(zero_extend(0x21d7e, 64)) == 138622);
+ assert(unsigned(zero_extend(0x21d7f, 64)) == 138623);
+ assert(unsigned(zero_extend(0x21d80, 64)) == 138624);
+ assert(unsigned(zero_extend(0x21d81, 64)) == 138625);
+ assert(unsigned(zero_extend(0x21d82, 64)) == 138626);
+ assert(unsigned(zero_extend(0x21d83, 64)) == 138627);
+ assert(unsigned(zero_extend(0x21d84, 64)) == 138628);
+ assert(unsigned(zero_extend(0x21d85, 64)) == 138629);
+ assert(unsigned(zero_extend(0x21d88, 64)) == 138632);
+ assert(unsigned(zero_extend(0x21d89, 64)) == 138633);
+ assert(unsigned(zero_extend(0x21d8a, 64)) == 138634);
+ assert(unsigned(zero_extend(0x21d8b, 64)) == 138635);
+ assert(unsigned(zero_extend(0x21d8c, 64)) == 138636);
+ assert(unsigned(zero_extend(0x21d8d, 64)) == 138637);
+ assert(unsigned(zero_extend(0x21d8e, 64)) == 138638);
+ assert(unsigned(zero_extend(0x21d8f, 64)) == 138639);
+ assert(unsigned(zero_extend(0x21d90, 64)) == 138640);
+ assert(unsigned(zero_extend(0x21d91, 64)) == 138641);
+ assert(unsigned(zero_extend(0x21d94, 64)) == 138644);
+ assert(unsigned(zero_extend(0x21d95, 64)) == 138645);
+ assert(unsigned(zero_extend(0x21d96, 64)) == 138646);
+ assert(unsigned(zero_extend(0x21d97, 64)) == 138647);
+ assert(unsigned(zero_extend(0x21d98, 64)) == 138648);
+ assert(unsigned(zero_extend(0x21d99, 64)) == 138649);
+ assert(unsigned(zero_extend(0x21d9a, 64)) == 138650);
+ assert(unsigned(zero_extend(0x21d9b, 64)) == 138651);
+ assert(unsigned(zero_extend(0x21d9c, 64)) == 138652);
+ assert(unsigned(zero_extend(0x21d9d, 64)) == 138653);
+ assert(unsigned(zero_extend(0x21da0, 64)) == 138656);
+ assert(unsigned(zero_extend(0x21da1, 64)) == 138657);
+ assert(unsigned(zero_extend(0x21da2, 64)) == 138658);
+ assert(unsigned(zero_extend(0x21da3, 64)) == 138659);
+ assert(unsigned(zero_extend(0x21da4, 64)) == 138660);
+ assert(unsigned(zero_extend(0x21da5, 64)) == 138661);
+ assert(unsigned(zero_extend(0x21da6, 64)) == 138662);
+ assert(unsigned(zero_extend(0x21da7, 64)) == 138663);
+ assert(unsigned(zero_extend(0x21da8, 64)) == 138664);
+ assert(unsigned(zero_extend(0x21da9, 64)) == 138665);
+ assert(unsigned(zero_extend(0x21dac, 64)) == 138668);
+ assert(unsigned(zero_extend(0x21dad, 64)) == 138669);
+ assert(unsigned(zero_extend(0x21dae, 64)) == 138670);
+ assert(unsigned(zero_extend(0x21daf, 64)) == 138671);
+ assert(unsigned(zero_extend(0x21db0, 64)) == 138672);
+ assert(unsigned(zero_extend(0x21db1, 64)) == 138673);
+ assert(unsigned(zero_extend(0x21db2, 64)) == 138674);
+ assert(unsigned(zero_extend(0x21db3, 64)) == 138675);
+ assert(unsigned(zero_extend(0x21db4, 64)) == 138676);
+ assert(unsigned(zero_extend(0x21db5, 64)) == 138677);
+ assert(unsigned(zero_extend(0x21f68, 64)) == 139112);
+ assert(unsigned(zero_extend(0x21f6c, 64)) == 139116);
+ assert(unsigned(zero_extend(0x21f70, 64)) == 139120);
+ assert(unsigned(zero_extend(0x21f74, 64)) == 139124);
+ assert(unsigned(zero_extend(0x21f78, 64)) == 139128);
+ assert(unsigned(zero_extend(0x21f7c, 64)) == 139132);
+ assert(unsigned(zero_extend(0x21f90, 64)) == 139152);
+ assert(unsigned(zero_extend(0x21f98, 64)) == 139160);
+ assert(unsigned(zero_extend(0x21fc0, 64)) == 139200);
+ assert(unsigned(zero_extend(0x21fc4, 64)) == 139204);
+ assert(unsigned(zero_extend(0x21fc8, 64)) == 139208);
+ assert(unsigned(zero_extend(0x21fcc, 64)) == 139212);
+ assert(unsigned(zero_extend(0x21fd0, 64)) == 139216);
+ assert(unsigned(zero_extend(0x21fd4, 64)) == 139220);
+ assert(unsigned(zero_extend(0x21fe8, 64)) == 139240);
+ assert(unsigned(zero_extend(0x21ff0, 64)) == 139248);
+ assert(unsigned(zero_extend(0x21ff8, 64)) == 139256);
+ assert(unsigned(zero_extend(0x22, 64)) == 34);
+ assert(unsigned(zero_extend(0x220, 64)) == 544);
+ assert(unsigned(zero_extend(0x2200, 64)) == 8704);
+ assert(unsigned(zero_extend(0x22000, 64)) == 139264);
+ assert(unsigned(zero_extend(0x22050, 64)) == 139344);
+ assert(unsigned(zero_extend(0x22088, 64)) == 139400);
+ assert(unsigned(zero_extend(0x2208c, 64)) == 139404);
+ assert(unsigned(zero_extend(0x22090, 64)) == 139408);
+ assert(unsigned(zero_extend(0x22098, 64)) == 139416);
+ assert(unsigned(zero_extend(0x220e0, 64)) == 139488);
+ assert(unsigned(zero_extend(0x220e4, 64)) == 139492);
+ assert(unsigned(zero_extend(0x220e8, 64)) == 139496);
+ assert(unsigned(zero_extend(0x220f0, 64)) == 139504);
+ assert(unsigned(zero_extend(0x2220, 64)) == 8736);
+ assert(unsigned(zero_extend(0x2222222222222223, 64)) == 2459565876494606883);
+ assert(unsigned(zero_extend(0x22330, 64)) == 140080);
+ assert(unsigned(zero_extend(0x22334, 64)) == 140084);
+ assert(unsigned(zero_extend(0x22338, 64)) == 140088);
+ assert(unsigned(zero_extend(0x2233c, 64)) == 140092);
+ assert(unsigned(zero_extend(0x22340, 64)) == 140096);
+ assert(unsigned(zero_extend(0x22344, 64)) == 140100);
+ assert(unsigned(zero_extend(0x22348, 64)) == 140104);
+ assert(unsigned(zero_extend(0x2234c, 64)) == 140108);
+ assert(unsigned(zero_extend(0x22350, 64)) == 140112);
+ assert(unsigned(zero_extend(0x22354, 64)) == 140116);
+ assert(unsigned(zero_extend(0x22358, 64)) == 140120);
+ assert(unsigned(zero_extend(0x2235c, 64)) == 140124);
+ assert(unsigned(zero_extend(0x22360, 64)) == 140128);
+ assert(unsigned(zero_extend(0x22364, 64)) == 140132);
+ assert(unsigned(zero_extend(0x22368, 64)) == 140136);
+ assert(unsigned(zero_extend(0x2236c, 64)) == 140140);
+ assert(unsigned(zero_extend(0x22370, 64)) == 140144);
+ assert(unsigned(zero_extend(0x22374, 64)) == 140148);
+ assert(unsigned(zero_extend(0x22378, 64)) == 140152);
+ assert(unsigned(zero_extend(0x2237c, 64)) == 140156);
+ assert(unsigned(zero_extend(0x22380, 64)) == 140160);
+ assert(unsigned(zero_extend(0x22384, 64)) == 140164);
+ assert(unsigned(zero_extend(0x22388, 64)) == 140168);
+ assert(unsigned(zero_extend(0x2238c, 64)) == 140172);
+ assert(unsigned(zero_extend(0x22390, 64)) == 140176);
+ assert(unsigned(zero_extend(0x22394, 64)) == 140180);
+ assert(unsigned(zero_extend(0x22398, 64)) == 140184);
+ assert(unsigned(zero_extend(0x2239c, 64)) == 140188);
+ assert(unsigned(zero_extend(0x223a0, 64)) == 140192);
+ assert(unsigned(zero_extend(0x223a4, 64)) == 140196);
+ assert(unsigned(zero_extend(0x223a8, 64)) == 140200);
+ assert(unsigned(zero_extend(0x223ac, 64)) == 140204);
+ assert(unsigned(zero_extend(0x223b0, 64)) == 140208);
+ assert(unsigned(zero_extend(0x223b4, 64)) == 140212);
+ assert(unsigned(zero_extend(0x223b8, 64)) == 140216);
+ assert(unsigned(zero_extend(0x223bc, 64)) == 140220);
+ assert(unsigned(zero_extend(0x223c, 64)) == 8764);
+ assert(unsigned(zero_extend(0x223c0, 64)) == 140224);
+ assert(unsigned(zero_extend(0x223c4, 64)) == 140228);
+ assert(unsigned(zero_extend(0x223c8, 64)) == 140232);
+ assert(unsigned(zero_extend(0x223cc, 64)) == 140236);
+ assert(unsigned(zero_extend(0x223d0, 64)) == 140240);
+ assert(unsigned(zero_extend(0x223d4, 64)) == 140244);
+ assert(unsigned(zero_extend(0x223d8, 64)) == 140248);
+ assert(unsigned(zero_extend(0x223dc, 64)) == 140252);
+ assert(unsigned(zero_extend(0x223e0, 64)) == 140256);
+ assert(unsigned(zero_extend(0x223e4, 64)) == 140260);
+ assert(unsigned(zero_extend(0x223e8, 64)) == 140264);
+ assert(unsigned(zero_extend(0x223ec, 64)) == 140268);
+ assert(unsigned(zero_extend(0x223f0, 64)) == 140272);
+ assert(unsigned(zero_extend(0x223f4, 64)) == 140276);
+ assert(unsigned(zero_extend(0x223f8, 64)) == 140280);
+ assert(unsigned(zero_extend(0x223fc, 64)) == 140284);
+ assert(unsigned(zero_extend(0x22400, 64)) == 140288);
+ assert(unsigned(zero_extend(0x22404, 64)) == 140292);
+ assert(unsigned(zero_extend(0x22408, 64)) == 140296);
+ assert(unsigned(zero_extend(0x2240c, 64)) == 140300);
+ assert(unsigned(zero_extend(0x22410, 64)) == 140304);
+ assert(unsigned(zero_extend(0x22414, 64)) == 140308);
+ assert(unsigned(zero_extend(0x22418, 64)) == 140312);
+ assert(unsigned(zero_extend(0x22420, 64)) == 140320);
+ assert(unsigned(zero_extend(0x22c, 64)) == 556);
+ assert(unsigned(zero_extend(0x23, 64)) == 35);
+ assert(unsigned(zero_extend(0x23078, 64)) == 143480);
+ assert(unsigned(zero_extend(0x2307c, 64)) == 143484);
+ assert(unsigned(zero_extend(0x23080, 64)) == 143488);
+ assert(unsigned(zero_extend(0x23084, 64)) == 143492);
+ assert(unsigned(zero_extend(0x23088, 64)) == 143496);
+ assert(unsigned(zero_extend(0x2308c, 64)) == 143500);
+ assert(unsigned(zero_extend(0x23090, 64)) == 143504);
+ assert(unsigned(zero_extend(0x23094, 64)) == 143508);
+ assert(unsigned(zero_extend(0x23098, 64)) == 143512);
+ assert(unsigned(zero_extend(0x2309c, 64)) == 143516);
+ assert(unsigned(zero_extend(0x230a0, 64)) == 143520);
+ assert(unsigned(zero_extend(0x230a4, 64)) == 143524);
+ assert(unsigned(zero_extend(0x230a8, 64)) == 143528);
+ assert(unsigned(zero_extend(0x230ac, 64)) == 143532);
+ assert(unsigned(zero_extend(0x230b0, 64)) == 143536);
+ assert(unsigned(zero_extend(0x230b4, 64)) == 143540);
+ assert(unsigned(zero_extend(0x230b8, 64)) == 143544);
+ assert(unsigned(zero_extend(0x230bc, 64)) == 143548);
+ assert(unsigned(zero_extend(0x230c0, 64)) == 143552);
+ assert(unsigned(zero_extend(0x230c4, 64)) == 143556);
+ assert(unsigned(zero_extend(0x230c8, 64)) == 143560);
+ assert(unsigned(zero_extend(0x230cc, 64)) == 143564);
+ assert(unsigned(zero_extend(0x230d0, 64)) == 143568);
+ assert(unsigned(zero_extend(0x230d4, 64)) == 143572);
+ assert(unsigned(zero_extend(0x230d8, 64)) == 143576);
+ assert(unsigned(zero_extend(0x230dc, 64)) == 143580);
+ assert(unsigned(zero_extend(0x230e0, 64)) == 143584);
+ assert(unsigned(zero_extend(0x230e4, 64)) == 143588);
+ assert(unsigned(zero_extend(0x230e8, 64)) == 143592);
+ assert(unsigned(zero_extend(0x230ec, 64)) == 143596);
+ assert(unsigned(zero_extend(0x230f0, 64)) == 143600);
+ assert(unsigned(zero_extend(0x230f4, 64)) == 143604);
+ assert(unsigned(zero_extend(0x230f8, 64)) == 143608);
+ assert(unsigned(zero_extend(0x230fc, 64)) == 143612);
+ assert(unsigned(zero_extend(0x23100, 64)) == 143616);
+ assert(unsigned(zero_extend(0x23104, 64)) == 143620);
+ assert(unsigned(zero_extend(0x23108, 64)) == 143624);
+ assert(unsigned(zero_extend(0x2310c, 64)) == 143628);
+ assert(unsigned(zero_extend(0x23110, 64)) == 143632);
+ assert(unsigned(zero_extend(0x23114, 64)) == 143636);
+ assert(unsigned(zero_extend(0x23118, 64)) == 143640);
+ assert(unsigned(zero_extend(0x2311c, 64)) == 143644);
+ assert(unsigned(zero_extend(0x23120, 64)) == 143648);
+ assert(unsigned(zero_extend(0x23124, 64)) == 143652);
+ assert(unsigned(zero_extend(0x23128, 64)) == 143656);
+ assert(unsigned(zero_extend(0x2312c, 64)) == 143660);
+ assert(unsigned(zero_extend(0x23130, 64)) == 143664);
+ assert(unsigned(zero_extend(0x23134, 64)) == 143668);
+ assert(unsigned(zero_extend(0x23138, 64)) == 143672);
+ assert(unsigned(zero_extend(0x2313c, 64)) == 143676);
+ assert(unsigned(zero_extend(0x23140, 64)) == 143680);
+ assert(unsigned(zero_extend(0x23144, 64)) == 143684);
+ assert(unsigned(zero_extend(0x23148, 64)) == 143688);
+ assert(unsigned(zero_extend(0x2314c, 64)) == 143692);
+ assert(unsigned(zero_extend(0x23150, 64)) == 143696);
+ assert(unsigned(zero_extend(0x23154, 64)) == 143700);
+ assert(unsigned(zero_extend(0x23158, 64)) == 143704);
+ assert(unsigned(zero_extend(0x2315c, 64)) == 143708);
+ assert(unsigned(zero_extend(0x23160, 64)) == 143712);
+ assert(unsigned(zero_extend(0x23164, 64)) == 143716);
+ assert(unsigned(zero_extend(0x23168, 64)) == 143720);
+ assert(unsigned(zero_extend(0x2316c, 64)) == 143724);
+ assert(unsigned(zero_extend(0x23170, 64)) == 143728);
+ assert(unsigned(zero_extend(0x23174, 64)) == 143732);
+ assert(unsigned(zero_extend(0x23178, 64)) == 143736);
+ assert(unsigned(zero_extend(0x2317c, 64)) == 143740);
+ assert(unsigned(zero_extend(0x23180, 64)) == 143744);
+ assert(unsigned(zero_extend(0x23184, 64)) == 143748);
+ assert(unsigned(zero_extend(0x23188, 64)) == 143752);
+ assert(unsigned(zero_extend(0x23430, 64)) == 144432);
+ assert(unsigned(zero_extend(0x23434, 64)) == 144436);
+ assert(unsigned(zero_extend(0x23438, 64)) == 144440);
+ assert(unsigned(zero_extend(0x2343c, 64)) == 144444);
+ assert(unsigned(zero_extend(0x23440, 64)) == 144448);
+ assert(unsigned(zero_extend(0x23444, 64)) == 144452);
+ assert(unsigned(zero_extend(0x23448, 64)) == 144456);
+ assert(unsigned(zero_extend(0x2344c, 64)) == 144460);
+ assert(unsigned(zero_extend(0x23450, 64)) == 144464);
+ assert(unsigned(zero_extend(0x23454, 64)) == 144468);
+ assert(unsigned(zero_extend(0x23458, 64)) == 144472);
+ assert(unsigned(zero_extend(0x2345c, 64)) == 144476);
+ assert(unsigned(zero_extend(0x23460, 64)) == 144480);
+ assert(unsigned(zero_extend(0x23464, 64)) == 144484);
+ assert(unsigned(zero_extend(0x23468, 64)) == 144488);
+ assert(unsigned(zero_extend(0x23488, 64)) == 144520);
+ assert(unsigned(zero_extend(0x2348c, 64)) == 144524);
+ assert(unsigned(zero_extend(0x23490, 64)) == 144528);
+ assert(unsigned(zero_extend(0x23494, 64)) == 144532);
+ assert(unsigned(zero_extend(0x23498, 64)) == 144536);
+ assert(unsigned(zero_extend(0x2349c, 64)) == 144540);
+ assert(unsigned(zero_extend(0x234a0, 64)) == 144544);
+ assert(unsigned(zero_extend(0x234a4, 64)) == 144548);
+ assert(unsigned(zero_extend(0x234a8, 64)) == 144552);
+ assert(unsigned(zero_extend(0x234ac, 64)) == 144556);
+ assert(unsigned(zero_extend(0x234b0, 64)) == 144560);
+ assert(unsigned(zero_extend(0x234b4, 64)) == 144564);
+ assert(unsigned(zero_extend(0x234b8, 64)) == 144568);
+ assert(unsigned(zero_extend(0x234bc, 64)) == 144572);
+ assert(unsigned(zero_extend(0x234c0, 64)) == 144576);
+ assert(unsigned(zero_extend(0x234e8, 64)) == 144616);
+ assert(unsigned(zero_extend(0x234ec, 64)) == 144620);
+ assert(unsigned(zero_extend(0x234f0, 64)) == 144624);
+ assert(unsigned(zero_extend(0x234f4, 64)) == 144628);
+ assert(unsigned(zero_extend(0x234f8, 64)) == 144632);
+ assert(unsigned(zero_extend(0x234fc, 64)) == 144636);
+ assert(unsigned(zero_extend(0x23500, 64)) == 144640);
+ assert(unsigned(zero_extend(0x23504, 64)) == 144644);
+ assert(unsigned(zero_extend(0x23508, 64)) == 144648);
+ assert(unsigned(zero_extend(0x2350c, 64)) == 144652);
+ assert(unsigned(zero_extend(0x23510, 64)) == 144656);
+ assert(unsigned(zero_extend(0x23514, 64)) == 144660);
+ assert(unsigned(zero_extend(0x23518, 64)) == 144664);
+ assert(unsigned(zero_extend(0x2351c, 64)) == 144668);
+ assert(unsigned(zero_extend(0x23520, 64)) == 144672);
+ assert(unsigned(zero_extend(0x23524, 64)) == 144676);
+ assert(unsigned(zero_extend(0x23528, 64)) == 144680);
+ assert(unsigned(zero_extend(0x2352c, 64)) == 144684);
+ assert(unsigned(zero_extend(0x23530, 64)) == 144688);
+ assert(unsigned(zero_extend(0x23534, 64)) == 144692);
+ assert(unsigned(zero_extend(0x23538, 64)) == 144696);
+ assert(unsigned(zero_extend(0x2353c, 64)) == 144700);
+ assert(unsigned(zero_extend(0x23540, 64)) == 144704);
+ assert(unsigned(zero_extend(0x23544, 64)) == 144708);
+ assert(unsigned(zero_extend(0x23548, 64)) == 144712);
+ assert(unsigned(zero_extend(0x2354c, 64)) == 144716);
+ assert(unsigned(zero_extend(0x23550, 64)) == 144720);
+ assert(unsigned(zero_extend(0x23554, 64)) == 144724);
+ assert(unsigned(zero_extend(0x23558, 64)) == 144728);
+ assert(unsigned(zero_extend(0x2355c, 64)) == 144732);
+ assert(unsigned(zero_extend(0x23560, 64)) == 144736);
+ assert(unsigned(zero_extend(0x23564, 64)) == 144740);
+ assert(unsigned(zero_extend(0x23568, 64)) == 144744);
+ assert(unsigned(zero_extend(0x2356c, 64)) == 144748);
+ assert(unsigned(zero_extend(0x23570, 64)) == 144752);
+ assert(unsigned(zero_extend(0x23574, 64)) == 144756);
+ assert(unsigned(zero_extend(0x23578, 64)) == 144760);
+ assert(unsigned(zero_extend(0x2357c, 64)) == 144764);
+ assert(unsigned(zero_extend(0x23580, 64)) == 144768);
+ assert(unsigned(zero_extend(0x23584, 64)) == 144772);
+ assert(unsigned(zero_extend(0x23588, 64)) == 144776);
+ assert(unsigned(zero_extend(0x2358c, 64)) == 144780);
+ assert(unsigned(zero_extend(0x23590, 64)) == 144784);
+ assert(unsigned(zero_extend(0x23594, 64)) == 144788);
+ assert(unsigned(zero_extend(0x23598, 64)) == 144792);
+ assert(unsigned(zero_extend(0x2359c, 64)) == 144796);
+ assert(unsigned(zero_extend(0x235a0, 64)) == 144800);
+ assert(unsigned(zero_extend(0x235a4, 64)) == 144804);
+ assert(unsigned(zero_extend(0x235a8, 64)) == 144808);
+ assert(unsigned(zero_extend(0x235ac, 64)) == 144812);
+ assert(unsigned(zero_extend(0x235b0, 64)) == 144816);
+ assert(unsigned(zero_extend(0x235b4, 64)) == 144820);
+ assert(unsigned(zero_extend(0x235b8, 64)) == 144824);
+ assert(unsigned(zero_extend(0x235bc, 64)) == 144828);
+ assert(unsigned(zero_extend(0x235c0, 64)) == 144832);
+ assert(unsigned(zero_extend(0x235c4, 64)) == 144836);
+ assert(unsigned(zero_extend(0x235c8, 64)) == 144840);
+ assert(unsigned(zero_extend(0x235cc, 64)) == 144844);
+ assert(unsigned(zero_extend(0x235d0, 64)) == 144848);
+ assert(unsigned(zero_extend(0x235d4, 64)) == 144852);
+ assert(unsigned(zero_extend(0x235d8, 64)) == 144856);
+ assert(unsigned(zero_extend(0x235dc, 64)) == 144860);
+ assert(unsigned(zero_extend(0x235e0, 64)) == 144864);
+ assert(unsigned(zero_extend(0x235e1, 64)) == 144865);
+ assert(unsigned(zero_extend(0x235e2, 64)) == 144866);
+ assert(unsigned(zero_extend(0x235e3, 64)) == 144867);
+ assert(unsigned(zero_extend(0x235e4, 64)) == 144868);
+ assert(unsigned(zero_extend(0x235e5, 64)) == 144869);
+ assert(unsigned(zero_extend(0x235e6, 64)) == 144870);
+ assert(unsigned(zero_extend(0x235e7, 64)) == 144871);
+ assert(unsigned(zero_extend(0x235e8, 64)) == 144872);
+ assert(unsigned(zero_extend(0x235e9, 64)) == 144873);
+ assert(unsigned(zero_extend(0x235ea, 64)) == 144874);
+ assert(unsigned(zero_extend(0x235eb, 64)) == 144875);
+ assert(unsigned(zero_extend(0x235ec, 64)) == 144876);
+ assert(unsigned(zero_extend(0x235ed, 64)) == 144877);
+ assert(unsigned(zero_extend(0x235ee, 64)) == 144878);
+ assert(unsigned(zero_extend(0x235ef, 64)) == 144879);
+ assert(unsigned(zero_extend(0x235f0, 64)) == 144880);
+ assert(unsigned(zero_extend(0x235f1, 64)) == 144881);
+ assert(unsigned(zero_extend(0x235f2, 64)) == 144882);
+ assert(unsigned(zero_extend(0x235f3, 64)) == 144883);
+ assert(unsigned(zero_extend(0x235f4, 64)) == 144884);
+ assert(unsigned(zero_extend(0x235f5, 64)) == 144885);
+ assert(unsigned(zero_extend(0x235f6, 64)) == 144886);
+ assert(unsigned(zero_extend(0x235f7, 64)) == 144887);
+ assert(unsigned(zero_extend(0x235f8, 64)) == 144888);
+ assert(unsigned(zero_extend(0x235fc, 64)) == 144892);
+ assert(unsigned(zero_extend(0x23600, 64)) == 144896);
+ assert(unsigned(zero_extend(0x23604, 64)) == 144900);
+ assert(unsigned(zero_extend(0x23608, 64)) == 144904);
+ assert(unsigned(zero_extend(0x2360c, 64)) == 144908);
+ assert(unsigned(zero_extend(0x23610, 64)) == 144912);
+ assert(unsigned(zero_extend(0x23614, 64)) == 144916);
+ assert(unsigned(zero_extend(0x23618, 64)) == 144920);
+ assert(unsigned(zero_extend(0x2361c, 64)) == 144924);
+ assert(unsigned(zero_extend(0x23620, 64)) == 144928);
+ assert(unsigned(zero_extend(0x23624, 64)) == 144932);
+ assert(unsigned(zero_extend(0x23628, 64)) == 144936);
+ assert(unsigned(zero_extend(0x2362c, 64)) == 144940);
+ assert(unsigned(zero_extend(0x23630, 64)) == 144944);
+ assert(unsigned(zero_extend(0x23638, 64)) == 144952);
+ assert(unsigned(zero_extend(0x23639, 64)) == 144953);
+ assert(unsigned(zero_extend(0x2363a, 64)) == 144954);
+ assert(unsigned(zero_extend(0x2363b, 64)) == 144955);
+ assert(unsigned(zero_extend(0x2363c, 64)) == 144956);
+ assert(unsigned(zero_extend(0x2363d, 64)) == 144957);
+ assert(unsigned(zero_extend(0x2363e, 64)) == 144958);
+ assert(unsigned(zero_extend(0x2363f, 64)) == 144959);
+ assert(unsigned(zero_extend(0x23640, 64)) == 144960);
+ assert(unsigned(zero_extend(0x23641, 64)) == 144961);
+ assert(unsigned(zero_extend(0x23642, 64)) == 144962);
+ assert(unsigned(zero_extend(0x23643, 64)) == 144963);
+ assert(unsigned(zero_extend(0x23644, 64)) == 144964);
+ assert(unsigned(zero_extend(0x23645, 64)) == 144965);
+ assert(unsigned(zero_extend(0x23646, 64)) == 144966);
+ assert(unsigned(zero_extend(0x23647, 64)) == 144967);
+ assert(unsigned(zero_extend(0x23648, 64)) == 144968);
+ assert(unsigned(zero_extend(0x23649, 64)) == 144969);
+ assert(unsigned(zero_extend(0x2364a, 64)) == 144970);
+ assert(unsigned(zero_extend(0x2364b, 64)) == 144971);
+ assert(unsigned(zero_extend(0x2364c, 64)) == 144972);
+ assert(unsigned(zero_extend(0x2364d, 64)) == 144973);
+ assert(unsigned(zero_extend(0x2364e, 64)) == 144974);
+ assert(unsigned(zero_extend(0x2364f, 64)) == 144975);
+ assert(unsigned(zero_extend(0x23650, 64)) == 144976);
+ assert(unsigned(zero_extend(0x23658, 64)) == 144984);
+ assert(unsigned(zero_extend(0x24, 64)) == 36);
+ assert(unsigned(zero_extend(0x24c, 64)) == 588);
+ assert(unsigned(zero_extend(0x25, 64)) == 37);
+ assert(unsigned(zero_extend(0x26, 64)) == 38);
+ assert(unsigned(zero_extend(0x27, 64)) == 39);
+ assert(unsigned(zero_extend(0x270, 64)) == 624);
+ assert(unsigned(zero_extend(0x28, 64)) == 40);
+ assert(unsigned(zero_extend(0x288, 64)) == 648);
+ assert(unsigned(zero_extend(0x29, 64)) == 41);
+ assert(unsigned(zero_extend(0x2a, 64)) == 42);
+ assert(unsigned(zero_extend(0x2b, 64)) == 43);
+ assert(unsigned(zero_extend(0x2c, 64)) == 44);
+ assert(unsigned(zero_extend(0x2c000, 64)) == 180224);
+ assert(unsigned(zero_extend(0x2d, 64)) == 45);
+ assert(unsigned(zero_extend(0x2e, 64)) == 46);
+ assert(unsigned(zero_extend(0x2e00000, 64)) == 48234496);
+ assert(unsigned(zero_extend(0x2e00008, 64)) == 48234504);
+ assert(unsigned(zero_extend(0x2e00010, 64)) == 48234512);
+ assert(unsigned(zero_extend(0x2e00018, 64)) == 48234520);
+ assert(unsigned(zero_extend(0x2e00020, 64)) == 48234528);
+ assert(unsigned(zero_extend(0x2e00028, 64)) == 48234536);
+ assert(unsigned(zero_extend(0x2e00030, 64)) == 48234544);
+ assert(unsigned(zero_extend(0x2e00038, 64)) == 48234552);
+ assert(unsigned(zero_extend(0x2e00040, 64)) == 48234560);
+ assert(unsigned(zero_extend(0x2e00048, 64)) == 48234568);
+ assert(unsigned(zero_extend(0x2e00050, 64)) == 48234576);
+ assert(unsigned(zero_extend(0x2e00058, 64)) == 48234584);
+ assert(unsigned(zero_extend(0x2e00060, 64)) == 48234592);
+ assert(unsigned(zero_extend(0x2e00068, 64)) == 48234600);
+ assert(unsigned(zero_extend(0x2e00070, 64)) == 48234608);
+ assert(unsigned(zero_extend(0x2e00078, 64)) == 48234616);
+ assert(unsigned(zero_extend(0x2e00080, 64)) == 48234624);
+ assert(unsigned(zero_extend(0x2e00088, 64)) == 48234632);
+ assert(unsigned(zero_extend(0x2e00090, 64)) == 48234640);
+ assert(unsigned(zero_extend(0x2e00098, 64)) == 48234648);
+ assert(unsigned(zero_extend(0x2e000a0, 64)) == 48234656);
+ assert(unsigned(zero_extend(0x2e000a8, 64)) == 48234664);
+ assert(unsigned(zero_extend(0x2e000b0, 64)) == 48234672);
+ assert(unsigned(zero_extend(0x2e000b8, 64)) == 48234680);
+ assert(unsigned(zero_extend(0x2e000c0, 64)) == 48234688);
+ assert(unsigned(zero_extend(0x2e000c8, 64)) == 48234696);
+ assert(unsigned(zero_extend(0x2e000d0, 64)) == 48234704);
+ assert(unsigned(zero_extend(0x2e000d8, 64)) == 48234712);
+ assert(unsigned(zero_extend(0x2e000e0, 64)) == 48234720);
+ assert(unsigned(zero_extend(0x2e000e8, 64)) == 48234728);
+ assert(unsigned(zero_extend(0x2e000f0, 64)) == 48234736);
+ assert(unsigned(zero_extend(0x2e000f8, 64)) == 48234744);
+ assert(unsigned(zero_extend(0x2e00100, 64)) == 48234752);
+ assert(unsigned(zero_extend(0x2e00108, 64)) == 48234760);
+ assert(unsigned(zero_extend(0x2e00110, 64)) == 48234768);
+ assert(unsigned(zero_extend(0x2e00118, 64)) == 48234776);
+ assert(unsigned(zero_extend(0x2e00120, 64)) == 48234784);
+ assert(unsigned(zero_extend(0x2e00128, 64)) == 48234792);
+ assert(unsigned(zero_extend(0x2e00130, 64)) == 48234800);
+ assert(unsigned(zero_extend(0x2e00138, 64)) == 48234808);
+ assert(unsigned(zero_extend(0x2e00140, 64)) == 48234816);
+ assert(unsigned(zero_extend(0x2e00148, 64)) == 48234824);
+ assert(unsigned(zero_extend(0x2e00150, 64)) == 48234832);
+ assert(unsigned(zero_extend(0x2e00158, 64)) == 48234840);
+ assert(unsigned(zero_extend(0x2e00160, 64)) == 48234848);
+ assert(unsigned(zero_extend(0x2e00168, 64)) == 48234856);
+ assert(unsigned(zero_extend(0x2e00170, 64)) == 48234864);
+ assert(unsigned(zero_extend(0x2e00178, 64)) == 48234872);
+ assert(unsigned(zero_extend(0x2e00180, 64)) == 48234880);
+ assert(unsigned(zero_extend(0x2e00188, 64)) == 48234888);
+ assert(unsigned(zero_extend(0x2e00190, 64)) == 48234896);
+ assert(unsigned(zero_extend(0x2e00198, 64)) == 48234904);
+ assert(unsigned(zero_extend(0x2e001a0, 64)) == 48234912);
+ assert(unsigned(zero_extend(0x2e001a8, 64)) == 48234920);
+ assert(unsigned(zero_extend(0x2e001b0, 64)) == 48234928);
+ assert(unsigned(zero_extend(0x2e001b8, 64)) == 48234936);
+ assert(unsigned(zero_extend(0x2e001c0, 64)) == 48234944);
+ assert(unsigned(zero_extend(0x2e001c8, 64)) == 48234952);
+ assert(unsigned(zero_extend(0x2e001d0, 64)) == 48234960);
+ assert(unsigned(zero_extend(0x2e001d8, 64)) == 48234968);
+ assert(unsigned(zero_extend(0x2e001e0, 64)) == 48234976);
+ assert(unsigned(zero_extend(0x2e001e8, 64)) == 48234984);
+ assert(unsigned(zero_extend(0x2e001f0, 64)) == 48234992);
+ assert(unsigned(zero_extend(0x2e001f8, 64)) == 48235000);
+ assert(unsigned(zero_extend(0x2e00200, 64)) == 48235008);
+ assert(unsigned(zero_extend(0x2e00208, 64)) == 48235016);
+ assert(unsigned(zero_extend(0x2e00210, 64)) == 48235024);
+ assert(unsigned(zero_extend(0x2e00218, 64)) == 48235032);
+ assert(unsigned(zero_extend(0x2e00220, 64)) == 48235040);
+ assert(unsigned(zero_extend(0x2e00228, 64)) == 48235048);
+ assert(unsigned(zero_extend(0x2e00230, 64)) == 48235056);
+ assert(unsigned(zero_extend(0x2e00238, 64)) == 48235064);
+ assert(unsigned(zero_extend(0x2e00240, 64)) == 48235072);
+ assert(unsigned(zero_extend(0x2e00248, 64)) == 48235080);
+ assert(unsigned(zero_extend(0x2e00250, 64)) == 48235088);
+ assert(unsigned(zero_extend(0x2e00258, 64)) == 48235096);
+ assert(unsigned(zero_extend(0x2e00260, 64)) == 48235104);
+ assert(unsigned(zero_extend(0x2e00268, 64)) == 48235112);
+ assert(unsigned(zero_extend(0x2e00270, 64)) == 48235120);
+ assert(unsigned(zero_extend(0x2e00278, 64)) == 48235128);
+ assert(unsigned(zero_extend(0x2e00280, 64)) == 48235136);
+ assert(unsigned(zero_extend(0x2e00288, 64)) == 48235144);
+ assert(unsigned(zero_extend(0x2e00290, 64)) == 48235152);
+ assert(unsigned(zero_extend(0x2e00298, 64)) == 48235160);
+ assert(unsigned(zero_extend(0x2e002a0, 64)) == 48235168);
+ assert(unsigned(zero_extend(0x2e002a8, 64)) == 48235176);
+ assert(unsigned(zero_extend(0x2e002b0, 64)) == 48235184);
+ assert(unsigned(zero_extend(0x2e002b8, 64)) == 48235192);
+ assert(unsigned(zero_extend(0x2e002c0, 64)) == 48235200);
+ assert(unsigned(zero_extend(0x2e002c8, 64)) == 48235208);
+ assert(unsigned(zero_extend(0x2e002d0, 64)) == 48235216);
+ assert(unsigned(zero_extend(0x2e002d8, 64)) == 48235224);
+ assert(unsigned(zero_extend(0x2e002e0, 64)) == 48235232);
+ assert(unsigned(zero_extend(0x2e002e8, 64)) == 48235240);
+ assert(unsigned(zero_extend(0x2e002f0, 64)) == 48235248);
+ assert(unsigned(zero_extend(0x2e002f8, 64)) == 48235256);
+ assert(unsigned(zero_extend(0x2e00300, 64)) == 48235264);
+ assert(unsigned(zero_extend(0x2e00308, 64)) == 48235272);
+ assert(unsigned(zero_extend(0x2e00310, 64)) == 48235280);
+ assert(unsigned(zero_extend(0x2e00318, 64)) == 48235288);
+ assert(unsigned(zero_extend(0x2e00320, 64)) == 48235296);
+ assert(unsigned(zero_extend(0x2e00328, 64)) == 48235304);
+ assert(unsigned(zero_extend(0x2e00330, 64)) == 48235312);
+ assert(unsigned(zero_extend(0x2e00338, 64)) == 48235320);
+ assert(unsigned(zero_extend(0x2e00340, 64)) == 48235328);
+ assert(unsigned(zero_extend(0x2e00348, 64)) == 48235336);
+ assert(unsigned(zero_extend(0x2e00350, 64)) == 48235344);
+ assert(unsigned(zero_extend(0x2e00358, 64)) == 48235352);
+ assert(unsigned(zero_extend(0x2e00360, 64)) == 48235360);
+ assert(unsigned(zero_extend(0x2e00368, 64)) == 48235368);
+ assert(unsigned(zero_extend(0x2e00370, 64)) == 48235376);
+ assert(unsigned(zero_extend(0x2e00378, 64)) == 48235384);
+ assert(unsigned(zero_extend(0x2e00380, 64)) == 48235392);
+ assert(unsigned(zero_extend(0x2e00388, 64)) == 48235400);
+ assert(unsigned(zero_extend(0x2e00390, 64)) == 48235408);
+ assert(unsigned(zero_extend(0x2e00398, 64)) == 48235416);
+ assert(unsigned(zero_extend(0x2e003a0, 64)) == 48235424);
+ assert(unsigned(zero_extend(0x2e003a8, 64)) == 48235432);
+ assert(unsigned(zero_extend(0x2e003b0, 64)) == 48235440);
+ assert(unsigned(zero_extend(0x2e003b8, 64)) == 48235448);
+ assert(unsigned(zero_extend(0x2e003c0, 64)) == 48235456);
+ assert(unsigned(zero_extend(0x2e003c8, 64)) == 48235464);
+ assert(unsigned(zero_extend(0x2e003d0, 64)) == 48235472);
+ assert(unsigned(zero_extend(0x2e003d8, 64)) == 48235480);
+ assert(unsigned(zero_extend(0x2e003e0, 64)) == 48235488);
+ assert(unsigned(zero_extend(0x2e003e8, 64)) == 48235496);
+ assert(unsigned(zero_extend(0x2e003f0, 64)) == 48235504);
+ assert(unsigned(zero_extend(0x2e003f8, 64)) == 48235512);
+ assert(unsigned(zero_extend(0x2e00400, 64)) == 48235520);
+ assert(unsigned(zero_extend(0x2e00408, 64)) == 48235528);
+ assert(unsigned(zero_extend(0x2e00410, 64)) == 48235536);
+ assert(unsigned(zero_extend(0x2e00418, 64)) == 48235544);
+ assert(unsigned(zero_extend(0x2e00420, 64)) == 48235552);
+ assert(unsigned(zero_extend(0x2e00428, 64)) == 48235560);
+ assert(unsigned(zero_extend(0x2e00430, 64)) == 48235568);
+ assert(unsigned(zero_extend(0x2e00438, 64)) == 48235576);
+ assert(unsigned(zero_extend(0x2e00440, 64)) == 48235584);
+ assert(unsigned(zero_extend(0x2e00448, 64)) == 48235592);
+ assert(unsigned(zero_extend(0x2e00450, 64)) == 48235600);
+ assert(unsigned(zero_extend(0x2e00458, 64)) == 48235608);
+ assert(unsigned(zero_extend(0x2e00460, 64)) == 48235616);
+ assert(unsigned(zero_extend(0x2e00468, 64)) == 48235624);
+ assert(unsigned(zero_extend(0x2e00470, 64)) == 48235632);
+ assert(unsigned(zero_extend(0x2e00478, 64)) == 48235640);
+ assert(unsigned(zero_extend(0x2e00480, 64)) == 48235648);
+ assert(unsigned(zero_extend(0x2e00488, 64)) == 48235656);
+ assert(unsigned(zero_extend(0x2e00490, 64)) == 48235664);
+ assert(unsigned(zero_extend(0x2e00498, 64)) == 48235672);
+ assert(unsigned(zero_extend(0x2e004a0, 64)) == 48235680);
+ assert(unsigned(zero_extend(0x2e004a8, 64)) == 48235688);
+ assert(unsigned(zero_extend(0x2e004b0, 64)) == 48235696);
+ assert(unsigned(zero_extend(0x2e004b8, 64)) == 48235704);
+ assert(unsigned(zero_extend(0x2e004c0, 64)) == 48235712);
+ assert(unsigned(zero_extend(0x2e004c8, 64)) == 48235720);
+ assert(unsigned(zero_extend(0x2e004d0, 64)) == 48235728);
+ assert(unsigned(zero_extend(0x2e004d8, 64)) == 48235736);
+ assert(unsigned(zero_extend(0x2e004e0, 64)) == 48235744);
+ assert(unsigned(zero_extend(0x2e004e8, 64)) == 48235752);
+ assert(unsigned(zero_extend(0x2e004f0, 64)) == 48235760);
+ assert(unsigned(zero_extend(0x2e004f8, 64)) == 48235768);
+ assert(unsigned(zero_extend(0x2e00500, 64)) == 48235776);
+ assert(unsigned(zero_extend(0x2e00508, 64)) == 48235784);
+ assert(unsigned(zero_extend(0x2e00510, 64)) == 48235792);
+ assert(unsigned(zero_extend(0x2e00518, 64)) == 48235800);
+ assert(unsigned(zero_extend(0x2e00520, 64)) == 48235808);
+ assert(unsigned(zero_extend(0x2e00528, 64)) == 48235816);
+ assert(unsigned(zero_extend(0x2e01000, 64)) == 48238592);
+ assert(unsigned(zero_extend(0x2e01008, 64)) == 48238600);
+ assert(unsigned(zero_extend(0x2e01010, 64)) == 48238608);
+ assert(unsigned(zero_extend(0x2e01018, 64)) == 48238616);
+ assert(unsigned(zero_extend(0x2e01020, 64)) == 48238624);
+ assert(unsigned(zero_extend(0x2e01028, 64)) == 48238632);
+ assert(unsigned(zero_extend(0x2e01030, 64)) == 48238640);
+ assert(unsigned(zero_extend(0x2e01038, 64)) == 48238648);
+ assert(unsigned(zero_extend(0x2e01040, 64)) == 48238656);
+ assert(unsigned(zero_extend(0x2e01048, 64)) == 48238664);
+ assert(unsigned(zero_extend(0x2e01050, 64)) == 48238672);
+ assert(unsigned(zero_extend(0x2e01058, 64)) == 48238680);
+ assert(unsigned(zero_extend(0x2e01060, 64)) == 48238688);
+ assert(unsigned(zero_extend(0x2e01068, 64)) == 48238696);
+ assert(unsigned(zero_extend(0x2e01070, 64)) == 48238704);
+ assert(unsigned(zero_extend(0x2e01078, 64)) == 48238712);
+ assert(unsigned(zero_extend(0x2e01080, 64)) == 48238720);
+ assert(unsigned(zero_extend(0x2e01088, 64)) == 48238728);
+ assert(unsigned(zero_extend(0x2e01090, 64)) == 48238736);
+ assert(unsigned(zero_extend(0x2e01098, 64)) == 48238744);
+ assert(unsigned(zero_extend(0x2e010a0, 64)) == 48238752);
+ assert(unsigned(zero_extend(0x2e010a8, 64)) == 48238760);
+ assert(unsigned(zero_extend(0x2e010b0, 64)) == 48238768);
+ assert(unsigned(zero_extend(0x2e010b8, 64)) == 48238776);
+ assert(unsigned(zero_extend(0x2e010c0, 64)) == 48238784);
+ assert(unsigned(zero_extend(0x2e010c8, 64)) == 48238792);
+ assert(unsigned(zero_extend(0x2e010d0, 64)) == 48238800);
+ assert(unsigned(zero_extend(0x2e010d8, 64)) == 48238808);
+ assert(unsigned(zero_extend(0x2e010e0, 64)) == 48238816);
+ assert(unsigned(zero_extend(0x2e010e8, 64)) == 48238824);
+ assert(unsigned(zero_extend(0x2e010f0, 64)) == 48238832);
+ assert(unsigned(zero_extend(0x2e010f8, 64)) == 48238840);
+ assert(unsigned(zero_extend(0x2e01100, 64)) == 48238848);
+ assert(unsigned(zero_extend(0x2e01108, 64)) == 48238856);
+ assert(unsigned(zero_extend(0x2e01110, 64)) == 48238864);
+ assert(unsigned(zero_extend(0x2e01118, 64)) == 48238872);
+ assert(unsigned(zero_extend(0x2e01120, 64)) == 48238880);
+ assert(unsigned(zero_extend(0x2e01128, 64)) == 48238888);
+ assert(unsigned(zero_extend(0x2e01130, 64)) == 48238896);
+ assert(unsigned(zero_extend(0x2e01138, 64)) == 48238904);
+ assert(unsigned(zero_extend(0x2e01140, 64)) == 48238912);
+ assert(unsigned(zero_extend(0x2e01148, 64)) == 48238920);
+ assert(unsigned(zero_extend(0x2e01150, 64)) == 48238928);
+ assert(unsigned(zero_extend(0x2e01158, 64)) == 48238936);
+ assert(unsigned(zero_extend(0x2e01160, 64)) == 48238944);
+ assert(unsigned(zero_extend(0x2e01168, 64)) == 48238952);
+ assert(unsigned(zero_extend(0x2e01170, 64)) == 48238960);
+ assert(unsigned(zero_extend(0x2e01178, 64)) == 48238968);
+ assert(unsigned(zero_extend(0x2e01180, 64)) == 48238976);
+ assert(unsigned(zero_extend(0x2e01188, 64)) == 48238984);
+ assert(unsigned(zero_extend(0x2e01190, 64)) == 48238992);
+ assert(unsigned(zero_extend(0x2e01198, 64)) == 48239000);
+ assert(unsigned(zero_extend(0x2e011a0, 64)) == 48239008);
+ assert(unsigned(zero_extend(0x2e011a8, 64)) == 48239016);
+ assert(unsigned(zero_extend(0x2e011b0, 64)) == 48239024);
+ assert(unsigned(zero_extend(0x2e011b8, 64)) == 48239032);
+ assert(unsigned(zero_extend(0x2e011c0, 64)) == 48239040);
+ assert(unsigned(zero_extend(0x2e011c8, 64)) == 48239048);
+ assert(unsigned(zero_extend(0x2e011d0, 64)) == 48239056);
+ assert(unsigned(zero_extend(0x2e011d8, 64)) == 48239064);
+ assert(unsigned(zero_extend(0x2e011e0, 64)) == 48239072);
+ assert(unsigned(zero_extend(0x2e011e8, 64)) == 48239080);
+ assert(unsigned(zero_extend(0x2e011f0, 64)) == 48239088);
+ assert(unsigned(zero_extend(0x2e011f8, 64)) == 48239096);
+ assert(unsigned(zero_extend(0x2e01200, 64)) == 48239104);
+ assert(unsigned(zero_extend(0x2e01208, 64)) == 48239112);
+ assert(unsigned(zero_extend(0x2e01210, 64)) == 48239120);
+ assert(unsigned(zero_extend(0x2e01218, 64)) == 48239128);
+ assert(unsigned(zero_extend(0x2e01220, 64)) == 48239136);
+ assert(unsigned(zero_extend(0x2e01228, 64)) == 48239144);
+ assert(unsigned(zero_extend(0x2e01230, 64)) == 48239152);
+ assert(unsigned(zero_extend(0x2e01238, 64)) == 48239160);
+ assert(unsigned(zero_extend(0x2e01240, 64)) == 48239168);
+ assert(unsigned(zero_extend(0x2e01248, 64)) == 48239176);
+ assert(unsigned(zero_extend(0x2e01250, 64)) == 48239184);
+ assert(unsigned(zero_extend(0x2e01258, 64)) == 48239192);
+ assert(unsigned(zero_extend(0x2e01260, 64)) == 48239200);
+ assert(unsigned(zero_extend(0x2e01268, 64)) == 48239208);
+ assert(unsigned(zero_extend(0x2e01270, 64)) == 48239216);
+ assert(unsigned(zero_extend(0x2e01278, 64)) == 48239224);
+ assert(unsigned(zero_extend(0x2e01280, 64)) == 48239232);
+ assert(unsigned(zero_extend(0x2e01288, 64)) == 48239240);
+ assert(unsigned(zero_extend(0x2e01290, 64)) == 48239248);
+ assert(unsigned(zero_extend(0x2e01298, 64)) == 48239256);
+ assert(unsigned(zero_extend(0x2e012a0, 64)) == 48239264);
+ assert(unsigned(zero_extend(0x2e012a8, 64)) == 48239272);
+ assert(unsigned(zero_extend(0x2e012b0, 64)) == 48239280);
+ assert(unsigned(zero_extend(0x2e012b8, 64)) == 48239288);
+ assert(unsigned(zero_extend(0x2e012c0, 64)) == 48239296);
+ assert(unsigned(zero_extend(0x2e012c8, 64)) == 48239304);
+ assert(unsigned(zero_extend(0x2e012d0, 64)) == 48239312);
+ assert(unsigned(zero_extend(0x2e012d8, 64)) == 48239320);
+ assert(unsigned(zero_extend(0x2e012e0, 64)) == 48239328);
+ assert(unsigned(zero_extend(0x2e012e8, 64)) == 48239336);
+ assert(unsigned(zero_extend(0x2e012f0, 64)) == 48239344);
+ assert(unsigned(zero_extend(0x2e012f8, 64)) == 48239352);
+ assert(unsigned(zero_extend(0x2e01300, 64)) == 48239360);
+ assert(unsigned(zero_extend(0x2e01308, 64)) == 48239368);
+ assert(unsigned(zero_extend(0x2e01310, 64)) == 48239376);
+ assert(unsigned(zero_extend(0x2e01318, 64)) == 48239384);
+ assert(unsigned(zero_extend(0x2e01320, 64)) == 48239392);
+ assert(unsigned(zero_extend(0x2e01328, 64)) == 48239400);
+ assert(unsigned(zero_extend(0x2e01330, 64)) == 48239408);
+ assert(unsigned(zero_extend(0x2e01338, 64)) == 48239416);
+ assert(unsigned(zero_extend(0x2e01340, 64)) == 48239424);
+ assert(unsigned(zero_extend(0x2e01348, 64)) == 48239432);
+ assert(unsigned(zero_extend(0x2e01350, 64)) == 48239440);
+ assert(unsigned(zero_extend(0x2e01358, 64)) == 48239448);
+ assert(unsigned(zero_extend(0x2e01360, 64)) == 48239456);
+ assert(unsigned(zero_extend(0x2e01368, 64)) == 48239464);
+ assert(unsigned(zero_extend(0x2e01370, 64)) == 48239472);
+ assert(unsigned(zero_extend(0x2e01378, 64)) == 48239480);
+ assert(unsigned(zero_extend(0x2e01380, 64)) == 48239488);
+ assert(unsigned(zero_extend(0x2e01388, 64)) == 48239496);
+ assert(unsigned(zero_extend(0x2e01390, 64)) == 48239504);
+ assert(unsigned(zero_extend(0x2e01398, 64)) == 48239512);
+ assert(unsigned(zero_extend(0x2e013a0, 64)) == 48239520);
+ assert(unsigned(zero_extend(0x2e013a8, 64)) == 48239528);
+ assert(unsigned(zero_extend(0x2e013b0, 64)) == 48239536);
+ assert(unsigned(zero_extend(0x2e013b8, 64)) == 48239544);
+ assert(unsigned(zero_extend(0x2e013c0, 64)) == 48239552);
+ assert(unsigned(zero_extend(0x2e013c8, 64)) == 48239560);
+ assert(unsigned(zero_extend(0x2e013d0, 64)) == 48239568);
+ assert(unsigned(zero_extend(0x2e013d8, 64)) == 48239576);
+ assert(unsigned(zero_extend(0x2e013e0, 64)) == 48239584);
+ assert(unsigned(zero_extend(0x2e013e8, 64)) == 48239592);
+ assert(unsigned(zero_extend(0x2e013f0, 64)) == 48239600);
+ assert(unsigned(zero_extend(0x2e013f8, 64)) == 48239608);
+ assert(unsigned(zero_extend(0x2e01400, 64)) == 48239616);
+ assert(unsigned(zero_extend(0x2e01408, 64)) == 48239624);
+ assert(unsigned(zero_extend(0x2e01410, 64)) == 48239632);
+ assert(unsigned(zero_extend(0x2e01418, 64)) == 48239640);
+ assert(unsigned(zero_extend(0x2e01420, 64)) == 48239648);
+ assert(unsigned(zero_extend(0x2e01428, 64)) == 48239656);
+ assert(unsigned(zero_extend(0x2e01430, 64)) == 48239664);
+ assert(unsigned(zero_extend(0x2e01438, 64)) == 48239672);
+ assert(unsigned(zero_extend(0x2e01440, 64)) == 48239680);
+ assert(unsigned(zero_extend(0x2e01448, 64)) == 48239688);
+ assert(unsigned(zero_extend(0x2e01450, 64)) == 48239696);
+ assert(unsigned(zero_extend(0x2e01458, 64)) == 48239704);
+ assert(unsigned(zero_extend(0x2e01460, 64)) == 48239712);
+ assert(unsigned(zero_extend(0x2e01468, 64)) == 48239720);
+ assert(unsigned(zero_extend(0x2e01470, 64)) == 48239728);
+ assert(unsigned(zero_extend(0x2e01478, 64)) == 48239736);
+ assert(unsigned(zero_extend(0x2e01480, 64)) == 48239744);
+ assert(unsigned(zero_extend(0x2e01488, 64)) == 48239752);
+ assert(unsigned(zero_extend(0x2e01490, 64)) == 48239760);
+ assert(unsigned(zero_extend(0x2e01498, 64)) == 48239768);
+ assert(unsigned(zero_extend(0x2e014a0, 64)) == 48239776);
+ assert(unsigned(zero_extend(0x2e014a8, 64)) == 48239784);
+ assert(unsigned(zero_extend(0x2e014b0, 64)) == 48239792);
+ assert(unsigned(zero_extend(0x2e014b8, 64)) == 48239800);
+ assert(unsigned(zero_extend(0x2e014c0, 64)) == 48239808);
+ assert(unsigned(zero_extend(0x2e014c8, 64)) == 48239816);
+ assert(unsigned(zero_extend(0x2e014d0, 64)) == 48239824);
+ assert(unsigned(zero_extend(0x2e014d8, 64)) == 48239832);
+ assert(unsigned(zero_extend(0x2e014e0, 64)) == 48239840);
+ assert(unsigned(zero_extend(0x2e014e8, 64)) == 48239848);
+ assert(unsigned(zero_extend(0x2e014f0, 64)) == 48239856);
+ assert(unsigned(zero_extend(0x2e014f8, 64)) == 48239864);
+ assert(unsigned(zero_extend(0x2e01500, 64)) == 48239872);
+ assert(unsigned(zero_extend(0x2e01508, 64)) == 48239880);
+ assert(unsigned(zero_extend(0x2e01510, 64)) == 48239888);
+ assert(unsigned(zero_extend(0x2e01518, 64)) == 48239896);
+ assert(unsigned(zero_extend(0x2e01520, 64)) == 48239904);
+ assert(unsigned(zero_extend(0x2e01528, 64)) == 48239912);
+ assert(unsigned(zero_extend(0x2e01530, 64)) == 48239920);
+ assert(unsigned(zero_extend(0x2e01538, 64)) == 48239928);
+ assert(unsigned(zero_extend(0x2e01540, 64)) == 48239936);
+ assert(unsigned(zero_extend(0x2e01548, 64)) == 48239944);
+ assert(unsigned(zero_extend(0x2e01550, 64)) == 48239952);
+ assert(unsigned(zero_extend(0x2e01558, 64)) == 48239960);
+ assert(unsigned(zero_extend(0x2e01560, 64)) == 48239968);
+ assert(unsigned(zero_extend(0x2e01568, 64)) == 48239976);
+ assert(unsigned(zero_extend(0x2e01570, 64)) == 48239984);
+ assert(unsigned(zero_extend(0x2e01578, 64)) == 48239992);
+ assert(unsigned(zero_extend(0x2e01580, 64)) == 48240000);
+ assert(unsigned(zero_extend(0x2e01588, 64)) == 48240008);
+ assert(unsigned(zero_extend(0x2e01590, 64)) == 48240016);
+ assert(unsigned(zero_extend(0x2e01598, 64)) == 48240024);
+ assert(unsigned(zero_extend(0x2e015a0, 64)) == 48240032);
+ assert(unsigned(zero_extend(0x2e015a8, 64)) == 48240040);
+ assert(unsigned(zero_extend(0x2e015b0, 64)) == 48240048);
+ assert(unsigned(zero_extend(0x2e015b8, 64)) == 48240056);
+ assert(unsigned(zero_extend(0x2e015c0, 64)) == 48240064);
+ assert(unsigned(zero_extend(0x2e015c8, 64)) == 48240072);
+ assert(unsigned(zero_extend(0x2e015d0, 64)) == 48240080);
+ assert(unsigned(zero_extend(0x2e015d8, 64)) == 48240088);
+ assert(unsigned(zero_extend(0x2e015e0, 64)) == 48240096);
+ assert(unsigned(zero_extend(0x2e015e8, 64)) == 48240104);
+}
diff --git a/test/builtins/unsigned6.sail b/test/builtins/unsigned6.sail
new file mode 100644
index 00000000..556b0db6
--- /dev/null
+++ b/test/builtins/unsigned6.sail
@@ -0,0 +1,2575 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(unsigned(zero_extend(0x2e015f0, 64)) == 48240112);
+ assert(unsigned(zero_extend(0x2e015f8, 64)) == 48240120);
+ assert(unsigned(zero_extend(0x2e01600, 64)) == 48240128);
+ assert(unsigned(zero_extend(0x2e01608, 64)) == 48240136);
+ assert(unsigned(zero_extend(0x2e01610, 64)) == 48240144);
+ assert(unsigned(zero_extend(0x2e01618, 64)) == 48240152);
+ assert(unsigned(zero_extend(0x2e01620, 64)) == 48240160);
+ assert(unsigned(zero_extend(0x2e01628, 64)) == 48240168);
+ assert(unsigned(zero_extend(0x2e01630, 64)) == 48240176);
+ assert(unsigned(zero_extend(0x2e01638, 64)) == 48240184);
+ assert(unsigned(zero_extend(0x2e01640, 64)) == 48240192);
+ assert(unsigned(zero_extend(0x2e01648, 64)) == 48240200);
+ assert(unsigned(zero_extend(0x2e01650, 64)) == 48240208);
+ assert(unsigned(zero_extend(0x2e01658, 64)) == 48240216);
+ assert(unsigned(zero_extend(0x2e01660, 64)) == 48240224);
+ assert(unsigned(zero_extend(0x2e01668, 64)) == 48240232);
+ assert(unsigned(zero_extend(0x2e01670, 64)) == 48240240);
+ assert(unsigned(zero_extend(0x2e01678, 64)) == 48240248);
+ assert(unsigned(zero_extend(0x2e01680, 64)) == 48240256);
+ assert(unsigned(zero_extend(0x2e01688, 64)) == 48240264);
+ assert(unsigned(zero_extend(0x2e01690, 64)) == 48240272);
+ assert(unsigned(zero_extend(0x2e01698, 64)) == 48240280);
+ assert(unsigned(zero_extend(0x2e016a0, 64)) == 48240288);
+ assert(unsigned(zero_extend(0x2e016a8, 64)) == 48240296);
+ assert(unsigned(zero_extend(0x2e016b0, 64)) == 48240304);
+ assert(unsigned(zero_extend(0x2e016b8, 64)) == 48240312);
+ assert(unsigned(zero_extend(0x2e016c0, 64)) == 48240320);
+ assert(unsigned(zero_extend(0x2e016c8, 64)) == 48240328);
+ assert(unsigned(zero_extend(0x2e016d0, 64)) == 48240336);
+ assert(unsigned(zero_extend(0x2e016d8, 64)) == 48240344);
+ assert(unsigned(zero_extend(0x2e016e0, 64)) == 48240352);
+ assert(unsigned(zero_extend(0x2e016e8, 64)) == 48240360);
+ assert(unsigned(zero_extend(0x2e016f0, 64)) == 48240368);
+ assert(unsigned(zero_extend(0x2e016f8, 64)) == 48240376);
+ assert(unsigned(zero_extend(0x2e01700, 64)) == 48240384);
+ assert(unsigned(zero_extend(0x2e01708, 64)) == 48240392);
+ assert(unsigned(zero_extend(0x2e01710, 64)) == 48240400);
+ assert(unsigned(zero_extend(0x2e01718, 64)) == 48240408);
+ assert(unsigned(zero_extend(0x2e01720, 64)) == 48240416);
+ assert(unsigned(zero_extend(0x2e01728, 64)) == 48240424);
+ assert(unsigned(zero_extend(0x2e01730, 64)) == 48240432);
+ assert(unsigned(zero_extend(0x2e01738, 64)) == 48240440);
+ assert(unsigned(zero_extend(0x2e01740, 64)) == 48240448);
+ assert(unsigned(zero_extend(0x2e01748, 64)) == 48240456);
+ assert(unsigned(zero_extend(0x2e01750, 64)) == 48240464);
+ assert(unsigned(zero_extend(0x2e01758, 64)) == 48240472);
+ assert(unsigned(zero_extend(0x2e01760, 64)) == 48240480);
+ assert(unsigned(zero_extend(0x2e01768, 64)) == 48240488);
+ assert(unsigned(zero_extend(0x2e01770, 64)) == 48240496);
+ assert(unsigned(zero_extend(0x2e01778, 64)) == 48240504);
+ assert(unsigned(zero_extend(0x2e01780, 64)) == 48240512);
+ assert(unsigned(zero_extend(0x2e01788, 64)) == 48240520);
+ assert(unsigned(zero_extend(0x2e01790, 64)) == 48240528);
+ assert(unsigned(zero_extend(0x2e01798, 64)) == 48240536);
+ assert(unsigned(zero_extend(0x2e017a0, 64)) == 48240544);
+ assert(unsigned(zero_extend(0x2e017a8, 64)) == 48240552);
+ assert(unsigned(zero_extend(0x2e017b0, 64)) == 48240560);
+ assert(unsigned(zero_extend(0x2e017b8, 64)) == 48240568);
+ assert(unsigned(zero_extend(0x2e017c0, 64)) == 48240576);
+ assert(unsigned(zero_extend(0x2e017c8, 64)) == 48240584);
+ assert(unsigned(zero_extend(0x2e017d0, 64)) == 48240592);
+ assert(unsigned(zero_extend(0x2e017d8, 64)) == 48240600);
+ assert(unsigned(zero_extend(0x2e017e0, 64)) == 48240608);
+ assert(unsigned(zero_extend(0x2e017e8, 64)) == 48240616);
+ assert(unsigned(zero_extend(0x2e017f0, 64)) == 48240624);
+ assert(unsigned(zero_extend(0x2e017f8, 64)) == 48240632);
+ assert(unsigned(zero_extend(0x2e01800, 64)) == 48240640);
+ assert(unsigned(zero_extend(0x2e01808, 64)) == 48240648);
+ assert(unsigned(zero_extend(0x2e01810, 64)) == 48240656);
+ assert(unsigned(zero_extend(0x2e01818, 64)) == 48240664);
+ assert(unsigned(zero_extend(0x2e01820, 64)) == 48240672);
+ assert(unsigned(zero_extend(0x2e01828, 64)) == 48240680);
+ assert(unsigned(zero_extend(0x2e01830, 64)) == 48240688);
+ assert(unsigned(zero_extend(0x2e01838, 64)) == 48240696);
+ assert(unsigned(zero_extend(0x2e01840, 64)) == 48240704);
+ assert(unsigned(zero_extend(0x2e01848, 64)) == 48240712);
+ assert(unsigned(zero_extend(0x2e01850, 64)) == 48240720);
+ assert(unsigned(zero_extend(0x2e01858, 64)) == 48240728);
+ assert(unsigned(zero_extend(0x2e01860, 64)) == 48240736);
+ assert(unsigned(zero_extend(0x2e01868, 64)) == 48240744);
+ assert(unsigned(zero_extend(0x2e01870, 64)) == 48240752);
+ assert(unsigned(zero_extend(0x2e01878, 64)) == 48240760);
+ assert(unsigned(zero_extend(0x2e01880, 64)) == 48240768);
+ assert(unsigned(zero_extend(0x2e01888, 64)) == 48240776);
+ assert(unsigned(zero_extend(0x2e01890, 64)) == 48240784);
+ assert(unsigned(zero_extend(0x2e01898, 64)) == 48240792);
+ assert(unsigned(zero_extend(0x2e018a0, 64)) == 48240800);
+ assert(unsigned(zero_extend(0x2e018a8, 64)) == 48240808);
+ assert(unsigned(zero_extend(0x2e018b0, 64)) == 48240816);
+ assert(unsigned(zero_extend(0x2e018b8, 64)) == 48240824);
+ assert(unsigned(zero_extend(0x2eb0000, 64)) == 48955392);
+ assert(unsigned(zero_extend(0x2ec0000, 64)) == 49020928);
+ assert(unsigned(zero_extend(0x2ee0000, 64)) == 49152000);
+ assert(unsigned(zero_extend(0x2ef0000, 64)) == 49217536);
+ assert(unsigned(zero_extend(0x2ef0040, 64)) == 49217600);
+ assert(unsigned(zero_extend(0x2f, 64)) == 47);
+ assert(unsigned(zero_extend(0x2f0, 64)) == 752);
+ assert(unsigned(zero_extend(0x2f00000, 64)) == 49283072);
+ assert(unsigned(zero_extend(0x2f00000004, 64)) == 201863462916);
+ assert(unsigned(zero_extend(0x2f00008, 64)) == 49283080);
+ assert(unsigned(zero_extend(0x2f00010, 64)) == 49283088);
+ assert(unsigned(zero_extend(0x2f00018, 64)) == 49283096);
+ assert(unsigned(zero_extend(0x2f00020, 64)) == 49283104);
+ assert(unsigned(zero_extend(0x2f00028, 64)) == 49283112);
+ assert(unsigned(zero_extend(0x2f00030, 64)) == 49283120);
+ assert(unsigned(zero_extend(0x2f00038, 64)) == 49283128);
+ assert(unsigned(zero_extend(0x2f00040, 64)) == 49283136);
+ assert(unsigned(zero_extend(0x2f00048, 64)) == 49283144);
+ assert(unsigned(zero_extend(0x2f00050, 64)) == 49283152);
+ assert(unsigned(zero_extend(0x2f00058, 64)) == 49283160);
+ assert(unsigned(zero_extend(0x2f00060, 64)) == 49283168);
+ assert(unsigned(zero_extend(0x2f00068, 64)) == 49283176);
+ assert(unsigned(zero_extend(0x2f00070, 64)) == 49283184);
+ assert(unsigned(zero_extend(0x2f00078, 64)) == 49283192);
+ assert(unsigned(zero_extend(0x2f00080, 64)) == 49283200);
+ assert(unsigned(zero_extend(0x2f00088, 64)) == 49283208);
+ assert(unsigned(zero_extend(0x2f00090, 64)) == 49283216);
+ assert(unsigned(zero_extend(0x2f00098, 64)) == 49283224);
+ assert(unsigned(zero_extend(0x2f000a0, 64)) == 49283232);
+ assert(unsigned(zero_extend(0x2f000a8, 64)) == 49283240);
+ assert(unsigned(zero_extend(0x2f000b0, 64)) == 49283248);
+ assert(unsigned(zero_extend(0x2f000b8, 64)) == 49283256);
+ assert(unsigned(zero_extend(0x2f000c0, 64)) == 49283264);
+ assert(unsigned(zero_extend(0x2f000c8, 64)) == 49283272);
+ assert(unsigned(zero_extend(0x2f000d0, 64)) == 49283280);
+ assert(unsigned(zero_extend(0x2f000d8, 64)) == 49283288);
+ assert(unsigned(zero_extend(0x2f000e0, 64)) == 49283296);
+ assert(unsigned(zero_extend(0x2f000e8, 64)) == 49283304);
+ assert(unsigned(zero_extend(0x2f000f0, 64)) == 49283312);
+ assert(unsigned(zero_extend(0x2f000f8, 64)) == 49283320);
+ assert(unsigned(zero_extend(0x2f00100, 64)) == 49283328);
+ assert(unsigned(zero_extend(0x2f00108, 64)) == 49283336);
+ assert(unsigned(zero_extend(0x2f00110, 64)) == 49283344);
+ assert(unsigned(zero_extend(0x2f00118, 64)) == 49283352);
+ assert(unsigned(zero_extend(0x2f00120, 64)) == 49283360);
+ assert(unsigned(zero_extend(0x2f00128, 64)) == 49283368);
+ assert(unsigned(zero_extend(0x2f00130, 64)) == 49283376);
+ assert(unsigned(zero_extend(0x2f00138, 64)) == 49283384);
+ assert(unsigned(zero_extend(0x2f00140, 64)) == 49283392);
+ assert(unsigned(zero_extend(0x2f00148, 64)) == 49283400);
+ assert(unsigned(zero_extend(0x2f00150, 64)) == 49283408);
+ assert(unsigned(zero_extend(0x2f00158, 64)) == 49283416);
+ assert(unsigned(zero_extend(0x2f00160, 64)) == 49283424);
+ assert(unsigned(zero_extend(0x2f00168, 64)) == 49283432);
+ assert(unsigned(zero_extend(0x2f00170, 64)) == 49283440);
+ assert(unsigned(zero_extend(0x2f00178, 64)) == 49283448);
+ assert(unsigned(zero_extend(0x2f00180, 64)) == 49283456);
+ assert(unsigned(zero_extend(0x2f00188, 64)) == 49283464);
+ assert(unsigned(zero_extend(0x2f00190, 64)) == 49283472);
+ assert(unsigned(zero_extend(0x2f00198, 64)) == 49283480);
+ assert(unsigned(zero_extend(0x2f001a0, 64)) == 49283488);
+ assert(unsigned(zero_extend(0x2f001a8, 64)) == 49283496);
+ assert(unsigned(zero_extend(0x2f001b0, 64)) == 49283504);
+ assert(unsigned(zero_extend(0x2f001b8, 64)) == 49283512);
+ assert(unsigned(zero_extend(0x2f001c0, 64)) == 49283520);
+ assert(unsigned(zero_extend(0x2f001c8, 64)) == 49283528);
+ assert(unsigned(zero_extend(0x2f001d0, 64)) == 49283536);
+ assert(unsigned(zero_extend(0x2f001d8, 64)) == 49283544);
+ assert(unsigned(zero_extend(0x2f001e0, 64)) == 49283552);
+ assert(unsigned(zero_extend(0x2f001e8, 64)) == 49283560);
+ assert(unsigned(zero_extend(0x2f001f0, 64)) == 49283568);
+ assert(unsigned(zero_extend(0x2f001f8, 64)) == 49283576);
+ assert(unsigned(zero_extend(0x2f00200, 64)) == 49283584);
+ assert(unsigned(zero_extend(0x2f00208, 64)) == 49283592);
+ assert(unsigned(zero_extend(0x2f00210, 64)) == 49283600);
+ assert(unsigned(zero_extend(0x2f00218, 64)) == 49283608);
+ assert(unsigned(zero_extend(0x2f00220, 64)) == 49283616);
+ assert(unsigned(zero_extend(0x2f00228, 64)) == 49283624);
+ assert(unsigned(zero_extend(0x2f00230, 64)) == 49283632);
+ assert(unsigned(zero_extend(0x2f00238, 64)) == 49283640);
+ assert(unsigned(zero_extend(0x2f00240, 64)) == 49283648);
+ assert(unsigned(zero_extend(0x2f00248, 64)) == 49283656);
+ assert(unsigned(zero_extend(0x2f00250, 64)) == 49283664);
+ assert(unsigned(zero_extend(0x2f00258, 64)) == 49283672);
+ assert(unsigned(zero_extend(0x2f00260, 64)) == 49283680);
+ assert(unsigned(zero_extend(0x2f00268, 64)) == 49283688);
+ assert(unsigned(zero_extend(0x2f00270, 64)) == 49283696);
+ assert(unsigned(zero_extend(0x2f00278, 64)) == 49283704);
+ assert(unsigned(zero_extend(0x2f00280, 64)) == 49283712);
+ assert(unsigned(zero_extend(0x2f00288, 64)) == 49283720);
+ assert(unsigned(zero_extend(0x2f00290, 64)) == 49283728);
+ assert(unsigned(zero_extend(0x2f00298, 64)) == 49283736);
+ assert(unsigned(zero_extend(0x2f002a0, 64)) == 49283744);
+ assert(unsigned(zero_extend(0x2f002a8, 64)) == 49283752);
+ assert(unsigned(zero_extend(0x2f002b0, 64)) == 49283760);
+ assert(unsigned(zero_extend(0x2f002b8, 64)) == 49283768);
+ assert(unsigned(zero_extend(0x2f002c0, 64)) == 49283776);
+ assert(unsigned(zero_extend(0x2f002c8, 64)) == 49283784);
+ assert(unsigned(zero_extend(0x2f002d0, 64)) == 49283792);
+ assert(unsigned(zero_extend(0x2f002d8, 64)) == 49283800);
+ assert(unsigned(zero_extend(0x2f002e0, 64)) == 49283808);
+ assert(unsigned(zero_extend(0x2f002e8, 64)) == 49283816);
+ assert(unsigned(zero_extend(0x2f002f0, 64)) == 49283824);
+ assert(unsigned(zero_extend(0x2f002f8, 64)) == 49283832);
+ assert(unsigned(zero_extend(0x2f00300, 64)) == 49283840);
+ assert(unsigned(zero_extend(0x2f00308, 64)) == 49283848);
+ assert(unsigned(zero_extend(0x2f00310, 64)) == 49283856);
+ assert(unsigned(zero_extend(0x2f00318, 64)) == 49283864);
+ assert(unsigned(zero_extend(0x2f00320, 64)) == 49283872);
+ assert(unsigned(zero_extend(0x2f00328, 64)) == 49283880);
+ assert(unsigned(zero_extend(0x2f00330, 64)) == 49283888);
+ assert(unsigned(zero_extend(0x2f00338, 64)) == 49283896);
+ assert(unsigned(zero_extend(0x2f00340, 64)) == 49283904);
+ assert(unsigned(zero_extend(0x2f00348, 64)) == 49283912);
+ assert(unsigned(zero_extend(0x2f00350, 64)) == 49283920);
+ assert(unsigned(zero_extend(0x2f00358, 64)) == 49283928);
+ assert(unsigned(zero_extend(0x2f00360, 64)) == 49283936);
+ assert(unsigned(zero_extend(0x2f00368, 64)) == 49283944);
+ assert(unsigned(zero_extend(0x2f00370, 64)) == 49283952);
+ assert(unsigned(zero_extend(0x2f00378, 64)) == 49283960);
+ assert(unsigned(zero_extend(0x2f00380, 64)) == 49283968);
+ assert(unsigned(zero_extend(0x2f00388, 64)) == 49283976);
+ assert(unsigned(zero_extend(0x2f00390, 64)) == 49283984);
+ assert(unsigned(zero_extend(0x2f00398, 64)) == 49283992);
+ assert(unsigned(zero_extend(0x2f003a0, 64)) == 49284000);
+ assert(unsigned(zero_extend(0x2f003a8, 64)) == 49284008);
+ assert(unsigned(zero_extend(0x2f003b0, 64)) == 49284016);
+ assert(unsigned(zero_extend(0x2f003b8, 64)) == 49284024);
+ assert(unsigned(zero_extend(0x2f003c0, 64)) == 49284032);
+ assert(unsigned(zero_extend(0x2f003c8, 64)) == 49284040);
+ assert(unsigned(zero_extend(0x2f003d0, 64)) == 49284048);
+ assert(unsigned(zero_extend(0x2f003d8, 64)) == 49284056);
+ assert(unsigned(zero_extend(0x2f003e0, 64)) == 49284064);
+ assert(unsigned(zero_extend(0x2f003e8, 64)) == 49284072);
+ assert(unsigned(zero_extend(0x2f003f0, 64)) == 49284080);
+ assert(unsigned(zero_extend(0x2f003f8, 64)) == 49284088);
+ assert(unsigned(zero_extend(0x2f00400, 64)) == 49284096);
+ assert(unsigned(zero_extend(0x2f00408, 64)) == 49284104);
+ assert(unsigned(zero_extend(0x2f00410, 64)) == 49284112);
+ assert(unsigned(zero_extend(0x2f00418, 64)) == 49284120);
+ assert(unsigned(zero_extend(0x2f00420, 64)) == 49284128);
+ assert(unsigned(zero_extend(0x2f00428, 64)) == 49284136);
+ assert(unsigned(zero_extend(0x2f00430, 64)) == 49284144);
+ assert(unsigned(zero_extend(0x2f00438, 64)) == 49284152);
+ assert(unsigned(zero_extend(0x2f00440, 64)) == 49284160);
+ assert(unsigned(zero_extend(0x2f00448, 64)) == 49284168);
+ assert(unsigned(zero_extend(0x2f00450, 64)) == 49284176);
+ assert(unsigned(zero_extend(0x2f00458, 64)) == 49284184);
+ assert(unsigned(zero_extend(0x2f00460, 64)) == 49284192);
+ assert(unsigned(zero_extend(0x2f00468, 64)) == 49284200);
+ assert(unsigned(zero_extend(0x2f00470, 64)) == 49284208);
+ assert(unsigned(zero_extend(0x2f00478, 64)) == 49284216);
+ assert(unsigned(zero_extend(0x2f00480, 64)) == 49284224);
+ assert(unsigned(zero_extend(0x2f00488, 64)) == 49284232);
+ assert(unsigned(zero_extend(0x2f00490, 64)) == 49284240);
+ assert(unsigned(zero_extend(0x2f00498, 64)) == 49284248);
+ assert(unsigned(zero_extend(0x2f004a0, 64)) == 49284256);
+ assert(unsigned(zero_extend(0x2f004a8, 64)) == 49284264);
+ assert(unsigned(zero_extend(0x2f004b0, 64)) == 49284272);
+ assert(unsigned(zero_extend(0x2f004b8, 64)) == 49284280);
+ assert(unsigned(zero_extend(0x2f004c0, 64)) == 49284288);
+ assert(unsigned(zero_extend(0x2f004c8, 64)) == 49284296);
+ assert(unsigned(zero_extend(0x2f004d0, 64)) == 49284304);
+ assert(unsigned(zero_extend(0x2f004d8, 64)) == 49284312);
+ assert(unsigned(zero_extend(0x2f004e0, 64)) == 49284320);
+ assert(unsigned(zero_extend(0x2f004e8, 64)) == 49284328);
+ assert(unsigned(zero_extend(0x2f004f0, 64)) == 49284336);
+ assert(unsigned(zero_extend(0x2f004f8, 64)) == 49284344);
+ assert(unsigned(zero_extend(0x2f00500, 64)) == 49284352);
+ assert(unsigned(zero_extend(0x2f00508, 64)) == 49284360);
+ assert(unsigned(zero_extend(0x2f00510, 64)) == 49284368);
+ assert(unsigned(zero_extend(0x2f00518, 64)) == 49284376);
+ assert(unsigned(zero_extend(0x2f00520, 64)) == 49284384);
+ assert(unsigned(zero_extend(0x2f00528, 64)) == 49284392);
+ assert(unsigned(zero_extend(0x2f00530, 64)) == 49284400);
+ assert(unsigned(zero_extend(0x2f00538, 64)) == 49284408);
+ assert(unsigned(zero_extend(0x2f00540, 64)) == 49284416);
+ assert(unsigned(zero_extend(0x2f00548, 64)) == 49284424);
+ assert(unsigned(zero_extend(0x2f00550, 64)) == 49284432);
+ assert(unsigned(zero_extend(0x2f00558, 64)) == 49284440);
+ assert(unsigned(zero_extend(0x2f00560, 64)) == 49284448);
+ assert(unsigned(zero_extend(0x2f00568, 64)) == 49284456);
+ assert(unsigned(zero_extend(0x2f00570, 64)) == 49284464);
+ assert(unsigned(zero_extend(0x2f00578, 64)) == 49284472);
+ assert(unsigned(zero_extend(0x2f00580, 64)) == 49284480);
+ assert(unsigned(zero_extend(0x2f00588, 64)) == 49284488);
+ assert(unsigned(zero_extend(0x2f00590, 64)) == 49284496);
+ assert(unsigned(zero_extend(0x2f00598, 64)) == 49284504);
+ assert(unsigned(zero_extend(0x2f005a0, 64)) == 49284512);
+ assert(unsigned(zero_extend(0x2f005a8, 64)) == 49284520);
+ assert(unsigned(zero_extend(0x2f005b0, 64)) == 49284528);
+ assert(unsigned(zero_extend(0x2f005b8, 64)) == 49284536);
+ assert(unsigned(zero_extend(0x2f005c0, 64)) == 49284544);
+ assert(unsigned(zero_extend(0x2f005c8, 64)) == 49284552);
+ assert(unsigned(zero_extend(0x2f005d0, 64)) == 49284560);
+ assert(unsigned(zero_extend(0x2f005d8, 64)) == 49284568);
+ assert(unsigned(zero_extend(0x2f005e0, 64)) == 49284576);
+ assert(unsigned(zero_extend(0x2f005e8, 64)) == 49284584);
+ assert(unsigned(zero_extend(0x2f005f0, 64)) == 49284592);
+ assert(unsigned(zero_extend(0x2f005f8, 64)) == 49284600);
+ assert(unsigned(zero_extend(0x2f00600, 64)) == 49284608);
+ assert(unsigned(zero_extend(0x2f00608, 64)) == 49284616);
+ assert(unsigned(zero_extend(0x2f00610, 64)) == 49284624);
+ assert(unsigned(zero_extend(0x2f00618, 64)) == 49284632);
+ assert(unsigned(zero_extend(0x2f00620, 64)) == 49284640);
+ assert(unsigned(zero_extend(0x2f00628, 64)) == 49284648);
+ assert(unsigned(zero_extend(0x2f00630, 64)) == 49284656);
+ assert(unsigned(zero_extend(0x2f00638, 64)) == 49284664);
+ assert(unsigned(zero_extend(0x2f00640, 64)) == 49284672);
+ assert(unsigned(zero_extend(0x2f00648, 64)) == 49284680);
+ assert(unsigned(zero_extend(0x2f00650, 64)) == 49284688);
+ assert(unsigned(zero_extend(0x2f00658, 64)) == 49284696);
+ assert(unsigned(zero_extend(0x2f00660, 64)) == 49284704);
+ assert(unsigned(zero_extend(0x2f00668, 64)) == 49284712);
+ assert(unsigned(zero_extend(0x2f00670, 64)) == 49284720);
+ assert(unsigned(zero_extend(0x2f00678, 64)) == 49284728);
+ assert(unsigned(zero_extend(0x2f00680, 64)) == 49284736);
+ assert(unsigned(zero_extend(0x2f00688, 64)) == 49284744);
+ assert(unsigned(zero_extend(0x2f00690, 64)) == 49284752);
+ assert(unsigned(zero_extend(0x2f00698, 64)) == 49284760);
+ assert(unsigned(zero_extend(0x2f006a0, 64)) == 49284768);
+ assert(unsigned(zero_extend(0x2f006a8, 64)) == 49284776);
+ assert(unsigned(zero_extend(0x2f006b0, 64)) == 49284784);
+ assert(unsigned(zero_extend(0x2f006b8, 64)) == 49284792);
+ assert(unsigned(zero_extend(0x2f006c0, 64)) == 49284800);
+ assert(unsigned(zero_extend(0x2f006c8, 64)) == 49284808);
+ assert(unsigned(zero_extend(0x2f006d0, 64)) == 49284816);
+ assert(unsigned(zero_extend(0x2f006d8, 64)) == 49284824);
+ assert(unsigned(zero_extend(0x2f006e0, 64)) == 49284832);
+ assert(unsigned(zero_extend(0x2f006e8, 64)) == 49284840);
+ assert(unsigned(zero_extend(0x2f006f0, 64)) == 49284848);
+ assert(unsigned(zero_extend(0x2f006f8, 64)) == 49284856);
+ assert(unsigned(zero_extend(0x2f00700, 64)) == 49284864);
+ assert(unsigned(zero_extend(0x2f00708, 64)) == 49284872);
+ assert(unsigned(zero_extend(0x2f00710, 64)) == 49284880);
+ assert(unsigned(zero_extend(0x2f00718, 64)) == 49284888);
+ assert(unsigned(zero_extend(0x2f00720, 64)) == 49284896);
+ assert(unsigned(zero_extend(0x2f00728, 64)) == 49284904);
+ assert(unsigned(zero_extend(0x2f00730, 64)) == 49284912);
+ assert(unsigned(zero_extend(0x2f00738, 64)) == 49284920);
+ assert(unsigned(zero_extend(0x2f00740, 64)) == 49284928);
+ assert(unsigned(zero_extend(0x2f00748, 64)) == 49284936);
+ assert(unsigned(zero_extend(0x2f00750, 64)) == 49284944);
+ assert(unsigned(zero_extend(0x2f00758, 64)) == 49284952);
+ assert(unsigned(zero_extend(0x2f00760, 64)) == 49284960);
+ assert(unsigned(zero_extend(0x2f00768, 64)) == 49284968);
+ assert(unsigned(zero_extend(0x2f00770, 64)) == 49284976);
+ assert(unsigned(zero_extend(0x2f00778, 64)) == 49284984);
+ assert(unsigned(zero_extend(0x2f00780, 64)) == 49284992);
+ assert(unsigned(zero_extend(0x2f00788, 64)) == 49285000);
+ assert(unsigned(zero_extend(0x2f00790, 64)) == 49285008);
+ assert(unsigned(zero_extend(0x2f00798, 64)) == 49285016);
+ assert(unsigned(zero_extend(0x2f007a0, 64)) == 49285024);
+ assert(unsigned(zero_extend(0x2f007a8, 64)) == 49285032);
+ assert(unsigned(zero_extend(0x2f007b0, 64)) == 49285040);
+ assert(unsigned(zero_extend(0x2f007b8, 64)) == 49285048);
+ assert(unsigned(zero_extend(0x2f007c0, 64)) == 49285056);
+ assert(unsigned(zero_extend(0x2f007c8, 64)) == 49285064);
+ assert(unsigned(zero_extend(0x2f007d0, 64)) == 49285072);
+ assert(unsigned(zero_extend(0x2f007d8, 64)) == 49285080);
+ assert(unsigned(zero_extend(0x2f007e0, 64)) == 49285088);
+ assert(unsigned(zero_extend(0x2f007e8, 64)) == 49285096);
+ assert(unsigned(zero_extend(0x2f007f0, 64)) == 49285104);
+ assert(unsigned(zero_extend(0x2f007f8, 64)) == 49285112);
+ assert(unsigned(zero_extend(0x2f00800, 64)) == 49285120);
+ assert(unsigned(zero_extend(0x2f00808, 64)) == 49285128);
+ assert(unsigned(zero_extend(0x2f00810, 64)) == 49285136);
+ assert(unsigned(zero_extend(0x2f00818, 64)) == 49285144);
+ assert(unsigned(zero_extend(0x2f00820, 64)) == 49285152);
+ assert(unsigned(zero_extend(0x2f00828, 64)) == 49285160);
+ assert(unsigned(zero_extend(0x2f00830, 64)) == 49285168);
+ assert(unsigned(zero_extend(0x2f00838, 64)) == 49285176);
+ assert(unsigned(zero_extend(0x2f00840, 64)) == 49285184);
+ assert(unsigned(zero_extend(0x2f00848, 64)) == 49285192);
+ assert(unsigned(zero_extend(0x2f00850, 64)) == 49285200);
+ assert(unsigned(zero_extend(0x2f00858, 64)) == 49285208);
+ assert(unsigned(zero_extend(0x2f00860, 64)) == 49285216);
+ assert(unsigned(zero_extend(0x2f00868, 64)) == 49285224);
+ assert(unsigned(zero_extend(0x2f00870, 64)) == 49285232);
+ assert(unsigned(zero_extend(0x2f00878, 64)) == 49285240);
+ assert(unsigned(zero_extend(0x2f00880, 64)) == 49285248);
+ assert(unsigned(zero_extend(0x2f00888, 64)) == 49285256);
+ assert(unsigned(zero_extend(0x2f00890, 64)) == 49285264);
+ assert(unsigned(zero_extend(0x2f00898, 64)) == 49285272);
+ assert(unsigned(zero_extend(0x2f008a0, 64)) == 49285280);
+ assert(unsigned(zero_extend(0x2f008a8, 64)) == 49285288);
+ assert(unsigned(zero_extend(0x2f008b0, 64)) == 49285296);
+ assert(unsigned(zero_extend(0x2f008b8, 64)) == 49285304);
+ assert(unsigned(zero_extend(0x2f008c0, 64)) == 49285312);
+ assert(unsigned(zero_extend(0x2f008c8, 64)) == 49285320);
+ assert(unsigned(zero_extend(0x2f008d0, 64)) == 49285328);
+ assert(unsigned(zero_extend(0x2f008d8, 64)) == 49285336);
+ assert(unsigned(zero_extend(0x2f008e0, 64)) == 49285344);
+ assert(unsigned(zero_extend(0x2f008e8, 64)) == 49285352);
+ assert(unsigned(zero_extend(0x2f008f0, 64)) == 49285360);
+ assert(unsigned(zero_extend(0x2f008f8, 64)) == 49285368);
+ assert(unsigned(zero_extend(0x2f00900, 64)) == 49285376);
+ assert(unsigned(zero_extend(0x2f00908, 64)) == 49285384);
+ assert(unsigned(zero_extend(0x2f00910, 64)) == 49285392);
+ assert(unsigned(zero_extend(0x2f00918, 64)) == 49285400);
+ assert(unsigned(zero_extend(0x2f00920, 64)) == 49285408);
+ assert(unsigned(zero_extend(0x2f00928, 64)) == 49285416);
+ assert(unsigned(zero_extend(0x2f00930, 64)) == 49285424);
+ assert(unsigned(zero_extend(0x2f00938, 64)) == 49285432);
+ assert(unsigned(zero_extend(0x2f00940, 64)) == 49285440);
+ assert(unsigned(zero_extend(0x2f00948, 64)) == 49285448);
+ assert(unsigned(zero_extend(0x2f00950, 64)) == 49285456);
+ assert(unsigned(zero_extend(0x2f00958, 64)) == 49285464);
+ assert(unsigned(zero_extend(0x2f00960, 64)) == 49285472);
+ assert(unsigned(zero_extend(0x2f00968, 64)) == 49285480);
+ assert(unsigned(zero_extend(0x2f00970, 64)) == 49285488);
+ assert(unsigned(zero_extend(0x2f00978, 64)) == 49285496);
+ assert(unsigned(zero_extend(0x2f00980, 64)) == 49285504);
+ assert(unsigned(zero_extend(0x2f00988, 64)) == 49285512);
+ assert(unsigned(zero_extend(0x2f00990, 64)) == 49285520);
+ assert(unsigned(zero_extend(0x2f00998, 64)) == 49285528);
+ assert(unsigned(zero_extend(0x2f009a0, 64)) == 49285536);
+ assert(unsigned(zero_extend(0x2f009a8, 64)) == 49285544);
+ assert(unsigned(zero_extend(0x2f009b0, 64)) == 49285552);
+ assert(unsigned(zero_extend(0x2f009b8, 64)) == 49285560);
+ assert(unsigned(zero_extend(0x2f009c0, 64)) == 49285568);
+ assert(unsigned(zero_extend(0x2f009c8, 64)) == 49285576);
+ assert(unsigned(zero_extend(0x2f009d0, 64)) == 49285584);
+ assert(unsigned(zero_extend(0x2f009d8, 64)) == 49285592);
+ assert(unsigned(zero_extend(0x2f009e0, 64)) == 49285600);
+ assert(unsigned(zero_extend(0x2f009e8, 64)) == 49285608);
+ assert(unsigned(zero_extend(0x2f009f0, 64)) == 49285616);
+ assert(unsigned(zero_extend(0x2f009f8, 64)) == 49285624);
+ assert(unsigned(zero_extend(0x2f00a00, 64)) == 49285632);
+ assert(unsigned(zero_extend(0x2f00a08, 64)) == 49285640);
+ assert(unsigned(zero_extend(0x2f00a10, 64)) == 49285648);
+ assert(unsigned(zero_extend(0x2f00a18, 64)) == 49285656);
+ assert(unsigned(zero_extend(0x2f00a20, 64)) == 49285664);
+ assert(unsigned(zero_extend(0x2f00a28, 64)) == 49285672);
+ assert(unsigned(zero_extend(0x2f00a30, 64)) == 49285680);
+ assert(unsigned(zero_extend(0x2f00a38, 64)) == 49285688);
+ assert(unsigned(zero_extend(0x2f00a40, 64)) == 49285696);
+ assert(unsigned(zero_extend(0x2f00a48, 64)) == 49285704);
+ assert(unsigned(zero_extend(0x2f00a50, 64)) == 49285712);
+ assert(unsigned(zero_extend(0x2f00a58, 64)) == 49285720);
+ assert(unsigned(zero_extend(0x2f00a60, 64)) == 49285728);
+ assert(unsigned(zero_extend(0x2f00a68, 64)) == 49285736);
+ assert(unsigned(zero_extend(0x2f00a70, 64)) == 49285744);
+ assert(unsigned(zero_extend(0x2f00a78, 64)) == 49285752);
+ assert(unsigned(zero_extend(0x2f00a80, 64)) == 49285760);
+ assert(unsigned(zero_extend(0x2f00a88, 64)) == 49285768);
+ assert(unsigned(zero_extend(0x2f00a90, 64)) == 49285776);
+ assert(unsigned(zero_extend(0x2f00a98, 64)) == 49285784);
+ assert(unsigned(zero_extend(0x2f00aa0, 64)) == 49285792);
+ assert(unsigned(zero_extend(0x2f00aa8, 64)) == 49285800);
+ assert(unsigned(zero_extend(0x2f00ab0, 64)) == 49285808);
+ assert(unsigned(zero_extend(0x2f00ab8, 64)) == 49285816);
+ assert(unsigned(zero_extend(0x2f00ac0, 64)) == 49285824);
+ assert(unsigned(zero_extend(0x2f00ac8, 64)) == 49285832);
+ assert(unsigned(zero_extend(0x2f00ad0, 64)) == 49285840);
+ assert(unsigned(zero_extend(0x2f00ad8, 64)) == 49285848);
+ assert(unsigned(zero_extend(0x2f00ae0, 64)) == 49285856);
+ assert(unsigned(zero_extend(0x2f00ae8, 64)) == 49285864);
+ assert(unsigned(zero_extend(0x2f00af0, 64)) == 49285872);
+ assert(unsigned(zero_extend(0x2f00af8, 64)) == 49285880);
+ assert(unsigned(zero_extend(0x2f00b00, 64)) == 49285888);
+ assert(unsigned(zero_extend(0x2f00b08, 64)) == 49285896);
+ assert(unsigned(zero_extend(0x2f00b10, 64)) == 49285904);
+ assert(unsigned(zero_extend(0x2f00b18, 64)) == 49285912);
+ assert(unsigned(zero_extend(0x2f00b20, 64)) == 49285920);
+ assert(unsigned(zero_extend(0x2f00b28, 64)) == 49285928);
+ assert(unsigned(zero_extend(0x2f00b30, 64)) == 49285936);
+ assert(unsigned(zero_extend(0x2f00b38, 64)) == 49285944);
+ assert(unsigned(zero_extend(0x2f00b40, 64)) == 49285952);
+ assert(unsigned(zero_extend(0x2f00b48, 64)) == 49285960);
+ assert(unsigned(zero_extend(0x2f00b50, 64)) == 49285968);
+ assert(unsigned(zero_extend(0x2f00b58, 64)) == 49285976);
+ assert(unsigned(zero_extend(0x2f00b60, 64)) == 49285984);
+ assert(unsigned(zero_extend(0x2f00b68, 64)) == 49285992);
+ assert(unsigned(zero_extend(0x2f00b70, 64)) == 49286000);
+ assert(unsigned(zero_extend(0x2f00b78, 64)) == 49286008);
+ assert(unsigned(zero_extend(0x2f00b80, 64)) == 49286016);
+ assert(unsigned(zero_extend(0x2f00b88, 64)) == 49286024);
+ assert(unsigned(zero_extend(0x2f00b90, 64)) == 49286032);
+ assert(unsigned(zero_extend(0x2f00b98, 64)) == 49286040);
+ assert(unsigned(zero_extend(0x2f00ba0, 64)) == 49286048);
+ assert(unsigned(zero_extend(0x2f00ba8, 64)) == 49286056);
+ assert(unsigned(zero_extend(0x2f00bb0, 64)) == 49286064);
+ assert(unsigned(zero_extend(0x2f00bb8, 64)) == 49286072);
+ assert(unsigned(zero_extend(0x2f00bc0, 64)) == 49286080);
+ assert(unsigned(zero_extend(0x2f00bc8, 64)) == 49286088);
+ assert(unsigned(zero_extend(0x2f00bd0, 64)) == 49286096);
+ assert(unsigned(zero_extend(0x2f00bd8, 64)) == 49286104);
+ assert(unsigned(zero_extend(0x2f00be0, 64)) == 49286112);
+ assert(unsigned(zero_extend(0x2f00be8, 64)) == 49286120);
+ assert(unsigned(zero_extend(0x2f00bf0, 64)) == 49286128);
+ assert(unsigned(zero_extend(0x2f00bf8, 64)) == 49286136);
+ assert(unsigned(zero_extend(0x2f00c00, 64)) == 49286144);
+ assert(unsigned(zero_extend(0x2f00c08, 64)) == 49286152);
+ assert(unsigned(zero_extend(0x2f00c10, 64)) == 49286160);
+ assert(unsigned(zero_extend(0x2f00c18, 64)) == 49286168);
+ assert(unsigned(zero_extend(0x2f00c20, 64)) == 49286176);
+ assert(unsigned(zero_extend(0x2f00c28, 64)) == 49286184);
+ assert(unsigned(zero_extend(0x2f00c30, 64)) == 49286192);
+ assert(unsigned(zero_extend(0x2f00c38, 64)) == 49286200);
+ assert(unsigned(zero_extend(0x2f00c40, 64)) == 49286208);
+ assert(unsigned(zero_extend(0x2f00c48, 64)) == 49286216);
+ assert(unsigned(zero_extend(0x2f00c50, 64)) == 49286224);
+ assert(unsigned(zero_extend(0x2f00c58, 64)) == 49286232);
+ assert(unsigned(zero_extend(0x2f00c60, 64)) == 49286240);
+ assert(unsigned(zero_extend(0x2f00c68, 64)) == 49286248);
+ assert(unsigned(zero_extend(0x2f00c70, 64)) == 49286256);
+ assert(unsigned(zero_extend(0x2f00c78, 64)) == 49286264);
+ assert(unsigned(zero_extend(0x2f00c80, 64)) == 49286272);
+ assert(unsigned(zero_extend(0x2f00c88, 64)) == 49286280);
+ assert(unsigned(zero_extend(0x2f00c90, 64)) == 49286288);
+ assert(unsigned(zero_extend(0x2f00c98, 64)) == 49286296);
+ assert(unsigned(zero_extend(0x2f00ca0, 64)) == 49286304);
+ assert(unsigned(zero_extend(0x2f00ca8, 64)) == 49286312);
+ assert(unsigned(zero_extend(0x2f00cb0, 64)) == 49286320);
+ assert(unsigned(zero_extend(0x2f00cb8, 64)) == 49286328);
+ assert(unsigned(zero_extend(0x2f00cc0, 64)) == 49286336);
+ assert(unsigned(zero_extend(0x2f00cc8, 64)) == 49286344);
+ assert(unsigned(zero_extend(0x2f00cd0, 64)) == 49286352);
+ assert(unsigned(zero_extend(0x2f00cd8, 64)) == 49286360);
+ assert(unsigned(zero_extend(0x2f00ce0, 64)) == 49286368);
+ assert(unsigned(zero_extend(0x2f00ce8, 64)) == 49286376);
+ assert(unsigned(zero_extend(0x2f00cf0, 64)) == 49286384);
+ assert(unsigned(zero_extend(0x2f00cf8, 64)) == 49286392);
+ assert(unsigned(zero_extend(0x2f00d00, 64)) == 49286400);
+ assert(unsigned(zero_extend(0x2f00d08, 64)) == 49286408);
+ assert(unsigned(zero_extend(0x2f00d10, 64)) == 49286416);
+ assert(unsigned(zero_extend(0x2f00d18, 64)) == 49286424);
+ assert(unsigned(zero_extend(0x2f00d20, 64)) == 49286432);
+ assert(unsigned(zero_extend(0x2f00d28, 64)) == 49286440);
+ assert(unsigned(zero_extend(0x2f00d30, 64)) == 49286448);
+ assert(unsigned(zero_extend(0x2f00d38, 64)) == 49286456);
+ assert(unsigned(zero_extend(0x2f00d40, 64)) == 49286464);
+ assert(unsigned(zero_extend(0x2f00d48, 64)) == 49286472);
+ assert(unsigned(zero_extend(0x2f00d50, 64)) == 49286480);
+ assert(unsigned(zero_extend(0x2f00d58, 64)) == 49286488);
+ assert(unsigned(zero_extend(0x2f00d60, 64)) == 49286496);
+ assert(unsigned(zero_extend(0x2f00d68, 64)) == 49286504);
+ assert(unsigned(zero_extend(0x2f00d70, 64)) == 49286512);
+ assert(unsigned(zero_extend(0x2f00d78, 64)) == 49286520);
+ assert(unsigned(zero_extend(0x2f00d80, 64)) == 49286528);
+ assert(unsigned(zero_extend(0x2f00d88, 64)) == 49286536);
+ assert(unsigned(zero_extend(0x2f00d90, 64)) == 49286544);
+ assert(unsigned(zero_extend(0x2f00d98, 64)) == 49286552);
+ assert(unsigned(zero_extend(0x2f00da0, 64)) == 49286560);
+ assert(unsigned(zero_extend(0x2f00da8, 64)) == 49286568);
+ assert(unsigned(zero_extend(0x2f00db0, 64)) == 49286576);
+ assert(unsigned(zero_extend(0x2f00db8, 64)) == 49286584);
+ assert(unsigned(zero_extend(0x2f00dc0, 64)) == 49286592);
+ assert(unsigned(zero_extend(0x2f00dc8, 64)) == 49286600);
+ assert(unsigned(zero_extend(0x2f00dd0, 64)) == 49286608);
+ assert(unsigned(zero_extend(0x2f00dd8, 64)) == 49286616);
+ assert(unsigned(zero_extend(0x2f00de0, 64)) == 49286624);
+ assert(unsigned(zero_extend(0x2f00de8, 64)) == 49286632);
+ assert(unsigned(zero_extend(0x2f00df0, 64)) == 49286640);
+ assert(unsigned(zero_extend(0x2f10000, 64)) == 49348608);
+ assert(unsigned(zero_extend(0x2f10800, 64)) == 49350656);
+ assert(unsigned(zero_extend(0x2f40000, 64)) == 49545216);
+ assert(unsigned(zero_extend(0x2f50000, 64)) == 49610752);
+ assert(unsigned(zero_extend(0x2f50040, 64)) == 49610816);
+ assert(unsigned(zero_extend(0x2f60000, 64)) == 49676288);
+ assert(unsigned(zero_extend(0x2f60200, 64)) == 49676800);
+ assert(unsigned(zero_extend(0x2f70000, 64)) == 49741824);
+ assert(unsigned(zero_extend(0x2f70800, 64)) == 49743872);
+ assert(unsigned(zero_extend(0x3, 64)) == 3);
+ assert(unsigned(zero_extend(0x30, 64)) == 48);
+ assert(unsigned(zero_extend(0x3000, 64)) == 12288);
+ assert(unsigned(zero_extend(0x30000, 64)) == 196608);
+ assert(unsigned(zero_extend(0x300000, 64)) == 3145728);
+ assert(unsigned(zero_extend(0x300001, 64)) == 3145729);
+ assert(unsigned(zero_extend(0x3000014, 64)) == 50331668);
+ assert(unsigned(zero_extend(0x3000018, 64)) == 50331672);
+ assert(unsigned(zero_extend(0x300001c, 64)) == 50331676);
+ assert(unsigned(zero_extend(0x300002, 64)) == 3145730);
+ assert(unsigned(zero_extend(0x3000020, 64)) == 50331680);
+ assert(unsigned(zero_extend(0x3000024, 64)) == 50331684);
+ assert(unsigned(zero_extend(0x300003, 64)) == 3145731);
+ assert(unsigned(zero_extend(0x3000030, 64)) == 50331696);
+ assert(unsigned(zero_extend(0x300004, 64)) == 3145732);
+ assert(unsigned(zero_extend(0x300005, 64)) == 3145733);
+ assert(unsigned(zero_extend(0x3000054, 64)) == 50331732);
+ assert(unsigned(zero_extend(0x3000058, 64)) == 50331736);
+ assert(unsigned(zero_extend(0x300005c, 64)) == 50331740);
+ assert(unsigned(zero_extend(0x300006, 64)) == 3145734);
+ assert(unsigned(zero_extend(0x3000068, 64)) == 50331752);
+ assert(unsigned(zero_extend(0x300007, 64)) == 3145735);
+ assert(unsigned(zero_extend(0x300008, 64)) == 3145736);
+ assert(unsigned(zero_extend(0x300009, 64)) == 3145737);
+ assert(unsigned(zero_extend(0x30000a, 64)) == 3145738);
+ assert(unsigned(zero_extend(0x30000b, 64)) == 3145739);
+ assert(unsigned(zero_extend(0x30000c, 64)) == 3145740);
+ assert(unsigned(zero_extend(0x30000c4, 64)) == 50331844);
+ assert(unsigned(zero_extend(0x30000c8, 64)) == 50331848);
+ assert(unsigned(zero_extend(0x30000cc, 64)) == 50331852);
+ assert(unsigned(zero_extend(0x30000d, 64)) == 3145741);
+ assert(unsigned(zero_extend(0x30000e, 64)) == 3145742);
+ assert(unsigned(zero_extend(0x3000288, 64)) == 50332296);
+ assert(unsigned(zero_extend(0x30002a0, 64)) == 50332320);
+ assert(unsigned(zero_extend(0x3002940, 64)) == 50342208);
+ assert(unsigned(zero_extend(0x3006b10, 64)) == 50359056);
+ assert(unsigned(zero_extend(0x3006b14, 64)) == 50359060);
+ assert(unsigned(zero_extend(0x3006b1c, 64)) == 50359068);
+ assert(unsigned(zero_extend(0x3006e40, 64)) == 50359872);
+ assert(unsigned(zero_extend(0x3008d20, 64)) == 50367776);
+ assert(unsigned(zero_extend(0x3008d21, 64)) == 50367777);
+ assert(unsigned(zero_extend(0x3008d24, 64)) == 50367780);
+ assert(unsigned(zero_extend(0x3008d28, 64)) == 50367784);
+ assert(unsigned(zero_extend(0x3008d30, 64)) == 50367792);
+ assert(unsigned(zero_extend(0x3008d38, 64)) == 50367800);
+ assert(unsigned(zero_extend(0x3008d40, 64)) == 50367808);
+ assert(unsigned(zero_extend(0x3008d48, 64)) == 50367816);
+ assert(unsigned(zero_extend(0x3008d50, 64)) == 50367824);
+ assert(unsigned(zero_extend(0x3008d51, 64)) == 50367825);
+ assert(unsigned(zero_extend(0x3008d54, 64)) == 50367828);
+ assert(unsigned(zero_extend(0x3008d58, 64)) == 50367832);
+ assert(unsigned(zero_extend(0x3008d5c, 64)) == 50367836);
+ assert(unsigned(zero_extend(0x3008d60, 64)) == 50367840);
+ assert(unsigned(zero_extend(0x3008d64, 64)) == 50367844);
+ assert(unsigned(zero_extend(0x3008d68, 64)) == 50367848);
+ assert(unsigned(zero_extend(0x3008d6c, 64)) == 50367852);
+ assert(unsigned(zero_extend(0x3008d70, 64)) == 50367856);
+ assert(unsigned(zero_extend(0x3008d74, 64)) == 50367860);
+ assert(unsigned(zero_extend(0x3008d78, 64)) == 50367864);
+ assert(unsigned(zero_extend(0x3008d7c, 64)) == 50367868);
+ assert(unsigned(zero_extend(0x3008d80, 64)) == 50367872);
+ assert(unsigned(zero_extend(0x3008d84, 64)) == 50367876);
+ assert(unsigned(zero_extend(0x3008d88, 64)) == 50367880);
+ assert(unsigned(zero_extend(0x3008d8c, 64)) == 50367884);
+ assert(unsigned(zero_extend(0x3008d90, 64)) == 50367888);
+ assert(unsigned(zero_extend(0x3008d94, 64)) == 50367892);
+ assert(unsigned(zero_extend(0x3008d98, 64)) == 50367896);
+ assert(unsigned(zero_extend(0x3008d9c, 64)) == 50367900);
+ assert(unsigned(zero_extend(0x3008da0, 64)) == 50367904);
+ assert(unsigned(zero_extend(0x3008da4, 64)) == 50367908);
+ assert(unsigned(zero_extend(0x3008da8, 64)) == 50367912);
+ assert(unsigned(zero_extend(0x3008dac, 64)) == 50367916);
+ assert(unsigned(zero_extend(0x3008db0, 64)) == 50367920);
+ assert(unsigned(zero_extend(0x3008db4, 64)) == 50367924);
+ assert(unsigned(zero_extend(0x3008db8, 64)) == 50367928);
+ assert(unsigned(zero_extend(0x3008dbc, 64)) == 50367932);
+ assert(unsigned(zero_extend(0x3008dc0, 64)) == 50367936);
+ assert(unsigned(zero_extend(0x3008dc4, 64)) == 50367940);
+ assert(unsigned(zero_extend(0x3008dc8, 64)) == 50367944);
+ assert(unsigned(zero_extend(0x3008dcc, 64)) == 50367948);
+ assert(unsigned(zero_extend(0x3008dd0, 64)) == 50367952);
+ assert(unsigned(zero_extend(0x3008dd4, 64)) == 50367956);
+ assert(unsigned(zero_extend(0x3008dd8, 64)) == 50367960);
+ assert(unsigned(zero_extend(0x3008ddc, 64)) == 50367964);
+ assert(unsigned(zero_extend(0x3008de0, 64)) == 50367968);
+ assert(unsigned(zero_extend(0x3008de4, 64)) == 50367972);
+ assert(unsigned(zero_extend(0x3008de8, 64)) == 50367976);
+ assert(unsigned(zero_extend(0x3008dec, 64)) == 50367980);
+ assert(unsigned(zero_extend(0x3008df0, 64)) == 50367984);
+ assert(unsigned(zero_extend(0x3008df8, 64)) == 50367992);
+ assert(unsigned(zero_extend(0x3008e00, 64)) == 50368000);
+ assert(unsigned(zero_extend(0x3008e08, 64)) == 50368008);
+ assert(unsigned(zero_extend(0x3008e10, 64)) == 50368016);
+ assert(unsigned(zero_extend(0x3008e18, 64)) == 50368024);
+ assert(unsigned(zero_extend(0x3008e20, 64)) == 50368032);
+ assert(unsigned(zero_extend(0x3008e28, 64)) == 50368040);
+ assert(unsigned(zero_extend(0x3008e30, 64)) == 50368048);
+ assert(unsigned(zero_extend(0x3008e38, 64)) == 50368056);
+ assert(unsigned(zero_extend(0x3008e40, 64)) == 50368064);
+ assert(unsigned(zero_extend(0x3010e40, 64)) == 50400832);
+ assert(unsigned(zero_extend(0x30e0000, 64)) == 51249152);
+ assert(unsigned(zero_extend(0x30f0000, 64)) == 51314688);
+ assert(unsigned(zero_extend(0x31, 64)) == 49);
+ assert(unsigned(zero_extend(0x3100000, 64)) == 51380224);
+ assert(unsigned(zero_extend(0x3100040, 64)) == 51380288);
+ assert(unsigned(zero_extend(0x3110000, 64)) == 51445760);
+ assert(unsigned(zero_extend(0x3110208, 64)) == 51446280);
+ assert(unsigned(zero_extend(0x3120000, 64)) == 51511296);
+ assert(unsigned(zero_extend(0x3120800, 64)) == 51513344);
+ assert(unsigned(zero_extend(0x31d0000, 64)) == 52232192);
+ assert(unsigned(zero_extend(0x31d0004, 64)) == 52232196);
+ assert(unsigned(zero_extend(0x31d0008, 64)) == 52232200);
+ assert(unsigned(zero_extend(0x31d000c, 64)) == 52232204);
+ assert(unsigned(zero_extend(0x31d0010, 64)) == 52232208);
+ assert(unsigned(zero_extend(0x31d0014, 64)) == 52232212);
+ assert(unsigned(zero_extend(0x31d0018, 64)) == 52232216);
+ assert(unsigned(zero_extend(0x31d001c, 64)) == 52232220);
+ assert(unsigned(zero_extend(0x31d0020, 64)) == 52232224);
+ assert(unsigned(zero_extend(0x31d0040, 64)) == 52232256);
+ assert(unsigned(zero_extend(0x31d0044, 64)) == 52232260);
+ assert(unsigned(zero_extend(0x31d0048, 64)) == 52232264);
+ assert(unsigned(zero_extend(0x31d004c, 64)) == 52232268);
+ assert(unsigned(zero_extend(0x31d0050, 64)) == 52232272);
+ assert(unsigned(zero_extend(0x31d0054, 64)) == 52232276);
+ assert(unsigned(zero_extend(0x31d0058, 64)) == 52232280);
+ assert(unsigned(zero_extend(0x31d005c, 64)) == 52232284);
+ assert(unsigned(zero_extend(0x31d0060, 64)) == 52232288);
+ assert(unsigned(zero_extend(0x31d0064, 64)) == 52232292);
+ assert(unsigned(zero_extend(0x31d0068, 64)) == 52232296);
+ assert(unsigned(zero_extend(0x31d006c, 64)) == 52232300);
+ assert(unsigned(zero_extend(0x31d0070, 64)) == 52232304);
+ assert(unsigned(zero_extend(0x31d0074, 64)) == 52232308);
+ assert(unsigned(zero_extend(0x31d0078, 64)) == 52232312);
+ assert(unsigned(zero_extend(0x31d007c, 64)) == 52232316);
+ assert(unsigned(zero_extend(0x31d0080, 64)) == 52232320);
+ assert(unsigned(zero_extend(0x31d0084, 64)) == 52232324);
+ assert(unsigned(zero_extend(0x31d0088, 64)) == 52232328);
+ assert(unsigned(zero_extend(0x31d008c, 64)) == 52232332);
+ assert(unsigned(zero_extend(0x31d0090, 64)) == 52232336);
+ assert(unsigned(zero_extend(0x31d0094, 64)) == 52232340);
+ assert(unsigned(zero_extend(0x31d0098, 64)) == 52232344);
+ assert(unsigned(zero_extend(0x31d009c, 64)) == 52232348);
+ assert(unsigned(zero_extend(0x31d00a0, 64)) == 52232352);
+ assert(unsigned(zero_extend(0x31d00a4, 64)) == 52232356);
+ assert(unsigned(zero_extend(0x31d00a8, 64)) == 52232360);
+ assert(unsigned(zero_extend(0x31d00ac, 64)) == 52232364);
+ assert(unsigned(zero_extend(0x31d00b0, 64)) == 52232368);
+ assert(unsigned(zero_extend(0x31d00b4, 64)) == 52232372);
+ assert(unsigned(zero_extend(0x31d00b8, 64)) == 52232376);
+ assert(unsigned(zero_extend(0x31d00bc, 64)) == 52232380);
+ assert(unsigned(zero_extend(0x31d00c0, 64)) == 52232384);
+ assert(unsigned(zero_extend(0x31d00c4, 64)) == 52232388);
+ assert(unsigned(zero_extend(0x31d00c8, 64)) == 52232392);
+ assert(unsigned(zero_extend(0x31d00cc, 64)) == 52232396);
+ assert(unsigned(zero_extend(0x31d00d0, 64)) == 52232400);
+ assert(unsigned(zero_extend(0x31d00d4, 64)) == 52232404);
+ assert(unsigned(zero_extend(0x31d00d8, 64)) == 52232408);
+ assert(unsigned(zero_extend(0x31d00dc, 64)) == 52232412);
+ assert(unsigned(zero_extend(0x31d00e0, 64)) == 52232416);
+ assert(unsigned(zero_extend(0x31d00e4, 64)) == 52232420);
+ assert(unsigned(zero_extend(0x31d00e8, 64)) == 52232424);
+ assert(unsigned(zero_extend(0x31d00ec, 64)) == 52232428);
+ assert(unsigned(zero_extend(0x31d00f0, 64)) == 52232432);
+ assert(unsigned(zero_extend(0x31d00f4, 64)) == 52232436);
+ assert(unsigned(zero_extend(0x31d00f8, 64)) == 52232440);
+ assert(unsigned(zero_extend(0x31d00fc, 64)) == 52232444);
+ assert(unsigned(zero_extend(0x31d0100, 64)) == 52232448);
+ assert(unsigned(zero_extend(0x31d0104, 64)) == 52232452);
+ assert(unsigned(zero_extend(0x31d0108, 64)) == 52232456);
+ assert(unsigned(zero_extend(0x31d010c, 64)) == 52232460);
+ assert(unsigned(zero_extend(0x31d0110, 64)) == 52232464);
+ assert(unsigned(zero_extend(0x31d0138, 64)) == 52232504);
+ assert(unsigned(zero_extend(0x31d013c, 64)) == 52232508);
+ assert(unsigned(zero_extend(0x31d0140, 64)) == 52232512);
+ assert(unsigned(zero_extend(0x31d0144, 64)) == 52232516);
+ assert(unsigned(zero_extend(0x31d0178, 64)) == 52232568);
+ assert(unsigned(zero_extend(0x31d017c, 64)) == 52232572);
+ assert(unsigned(zero_extend(0x31d0194, 64)) == 52232596);
+ assert(unsigned(zero_extend(0x31d01a0, 64)) == 52232608);
+ assert(unsigned(zero_extend(0x31d01c0, 64)) == 52232640);
+ assert(unsigned(zero_extend(0x31d01e0, 64)) == 52232672);
+ assert(unsigned(zero_extend(0x31d01e8, 64)) == 52232680);
+ assert(unsigned(zero_extend(0x31d01f0, 64)) == 52232688);
+ assert(unsigned(zero_extend(0x31d0200, 64)) == 52232704);
+ assert(unsigned(zero_extend(0x31d0208, 64)) == 52232712);
+ assert(unsigned(zero_extend(0x31d0218, 64)) == 52232728);
+ assert(unsigned(zero_extend(0x31d0220, 64)) == 52232736);
+ assert(unsigned(zero_extend(0x31d0228, 64)) == 52232744);
+ assert(unsigned(zero_extend(0x31d0230, 64)) == 52232752);
+ assert(unsigned(zero_extend(0x31d0248, 64)) == 52232776);
+ assert(unsigned(zero_extend(0x31d0250, 64)) == 52232784);
+ assert(unsigned(zero_extend(0x31d0258, 64)) == 52232792);
+ assert(unsigned(zero_extend(0x31d0260, 64)) == 52232800);
+ assert(unsigned(zero_extend(0x31d02e0, 64)) == 52232928);
+ assert(unsigned(zero_extend(0x31d02f0, 64)) == 52232944);
+ assert(unsigned(zero_extend(0x31d02f8, 64)) == 52232952);
+ assert(unsigned(zero_extend(0x31d0300, 64)) == 52232960);
+ assert(unsigned(zero_extend(0x31d0308, 64)) == 52232968);
+ assert(unsigned(zero_extend(0x31d0318, 64)) == 52232984);
+ assert(unsigned(zero_extend(0x31d0320, 64)) == 52232992);
+ assert(unsigned(zero_extend(0x31d0328, 64)) == 52233000);
+ assert(unsigned(zero_extend(0x31d04d0, 64)) == 52233424);
+ assert(unsigned(zero_extend(0x31d04d4, 64)) == 52233428);
+ assert(unsigned(zero_extend(0x31d04d8, 64)) == 52233432);
+ assert(unsigned(zero_extend(0x31d04dc, 64)) == 52233436);
+ assert(unsigned(zero_extend(0x31d04e0, 64)) == 52233440);
+ assert(unsigned(zero_extend(0x31d04e4, 64)) == 52233444);
+ assert(unsigned(zero_extend(0x31d04e8, 64)) == 52233448);
+ assert(unsigned(zero_extend(0x31d04ec, 64)) == 52233452);
+ assert(unsigned(zero_extend(0x31d04f0, 64)) == 52233456);
+ assert(unsigned(zero_extend(0x31d04f4, 64)) == 52233460);
+ assert(unsigned(zero_extend(0x31d04f8, 64)) == 52233464);
+ assert(unsigned(zero_extend(0x31d04fc, 64)) == 52233468);
+ assert(unsigned(zero_extend(0x31d0500, 64)) == 52233472);
+ assert(unsigned(zero_extend(0x31d0504, 64)) == 52233476);
+ assert(unsigned(zero_extend(0x31d0508, 64)) == 52233480);
+ assert(unsigned(zero_extend(0x31d050c, 64)) == 52233484);
+ assert(unsigned(zero_extend(0x31d0510, 64)) == 52233488);
+ assert(unsigned(zero_extend(0x31d0514, 64)) == 52233492);
+ assert(unsigned(zero_extend(0x31d0518, 64)) == 52233496);
+ assert(unsigned(zero_extend(0x31d051c, 64)) == 52233500);
+ assert(unsigned(zero_extend(0x31d0520, 64)) == 52233504);
+ assert(unsigned(zero_extend(0x31d0524, 64)) == 52233508);
+ assert(unsigned(zero_extend(0x31d0528, 64)) == 52233512);
+ assert(unsigned(zero_extend(0x31d052c, 64)) == 52233516);
+ assert(unsigned(zero_extend(0x31d0530, 64)) == 52233520);
+ assert(unsigned(zero_extend(0x31d0534, 64)) == 52233524);
+ assert(unsigned(zero_extend(0x31d0538, 64)) == 52233528);
+ assert(unsigned(zero_extend(0x31d053c, 64)) == 52233532);
+ assert(unsigned(zero_extend(0x31d0540, 64)) == 52233536);
+ assert(unsigned(zero_extend(0x31d0544, 64)) == 52233540);
+ assert(unsigned(zero_extend(0x31d0548, 64)) == 52233544);
+ assert(unsigned(zero_extend(0x31d054c, 64)) == 52233548);
+ assert(unsigned(zero_extend(0x31d0550, 64)) == 52233552);
+ assert(unsigned(zero_extend(0x31d0554, 64)) == 52233556);
+ assert(unsigned(zero_extend(0x31d0558, 64)) == 52233560);
+ assert(unsigned(zero_extend(0x31d055c, 64)) == 52233564);
+ assert(unsigned(zero_extend(0x31d0560, 64)) == 52233568);
+ assert(unsigned(zero_extend(0x31d0564, 64)) == 52233572);
+ assert(unsigned(zero_extend(0x31d0568, 64)) == 52233576);
+ assert(unsigned(zero_extend(0x31d056c, 64)) == 52233580);
+ assert(unsigned(zero_extend(0x31d0570, 64)) == 52233584);
+ assert(unsigned(zero_extend(0x31d0574, 64)) == 52233588);
+ assert(unsigned(zero_extend(0x31d0578, 64)) == 52233592);
+ assert(unsigned(zero_extend(0x31d057c, 64)) == 52233596);
+ assert(unsigned(zero_extend(0x31d0580, 64)) == 52233600);
+ assert(unsigned(zero_extend(0x31d0584, 64)) == 52233604);
+ assert(unsigned(zero_extend(0x31d0588, 64)) == 52233608);
+ assert(unsigned(zero_extend(0x31d058c, 64)) == 52233612);
+ assert(unsigned(zero_extend(0x31d0590, 64)) == 52233616);
+ assert(unsigned(zero_extend(0x31d0594, 64)) == 52233620);
+ assert(unsigned(zero_extend(0x31d0598, 64)) == 52233624);
+ assert(unsigned(zero_extend(0x31d059c, 64)) == 52233628);
+ assert(unsigned(zero_extend(0x31d05a0, 64)) == 52233632);
+ assert(unsigned(zero_extend(0x31d05a4, 64)) == 52233636);
+ assert(unsigned(zero_extend(0x31d05a8, 64)) == 52233640);
+ assert(unsigned(zero_extend(0x31d05ac, 64)) == 52233644);
+ assert(unsigned(zero_extend(0x31d05b0, 64)) == 52233648);
+ assert(unsigned(zero_extend(0x31d05b4, 64)) == 52233652);
+ assert(unsigned(zero_extend(0x31d05b8, 64)) == 52233656);
+ assert(unsigned(zero_extend(0x31d05bc, 64)) == 52233660);
+ assert(unsigned(zero_extend(0x31d05c0, 64)) == 52233664);
+ assert(unsigned(zero_extend(0x31d05c4, 64)) == 52233668);
+ assert(unsigned(zero_extend(0x31d05c8, 64)) == 52233672);
+ assert(unsigned(zero_extend(0x31d05cc, 64)) == 52233676);
+ assert(unsigned(zero_extend(0x31d05d0, 64)) == 52233680);
+ assert(unsigned(zero_extend(0x31d05d4, 64)) == 52233684);
+ assert(unsigned(zero_extend(0x31d05d8, 64)) == 52233688);
+ assert(unsigned(zero_extend(0x31d05dc, 64)) == 52233692);
+ assert(unsigned(zero_extend(0x31d05e0, 64)) == 52233696);
+ assert(unsigned(zero_extend(0x31d05e4, 64)) == 52233700);
+ assert(unsigned(zero_extend(0x31d05e8, 64)) == 52233704);
+ assert(unsigned(zero_extend(0x31d05ec, 64)) == 52233708);
+ assert(unsigned(zero_extend(0x31d05f0, 64)) == 52233712);
+ assert(unsigned(zero_extend(0x31d05f4, 64)) == 52233716);
+ assert(unsigned(zero_extend(0x31d05f8, 64)) == 52233720);
+ assert(unsigned(zero_extend(0x31d05fc, 64)) == 52233724);
+ assert(unsigned(zero_extend(0x31d0600, 64)) == 52233728);
+ assert(unsigned(zero_extend(0x31d0604, 64)) == 52233732);
+ assert(unsigned(zero_extend(0x31d0608, 64)) == 52233736);
+ assert(unsigned(zero_extend(0x31d060c, 64)) == 52233740);
+ assert(unsigned(zero_extend(0x31d0610, 64)) == 52233744);
+ assert(unsigned(zero_extend(0x31d0614, 64)) == 52233748);
+ assert(unsigned(zero_extend(0x31d0618, 64)) == 52233752);
+ assert(unsigned(zero_extend(0x31d061c, 64)) == 52233756);
+ assert(unsigned(zero_extend(0x31d0620, 64)) == 52233760);
+ assert(unsigned(zero_extend(0x31d0624, 64)) == 52233764);
+ assert(unsigned(zero_extend(0x31d0628, 64)) == 52233768);
+ assert(unsigned(zero_extend(0x31d062c, 64)) == 52233772);
+ assert(unsigned(zero_extend(0x31d0630, 64)) == 52233776);
+ assert(unsigned(zero_extend(0x31d0634, 64)) == 52233780);
+ assert(unsigned(zero_extend(0x31d0638, 64)) == 52233784);
+ assert(unsigned(zero_extend(0x31d063c, 64)) == 52233788);
+ assert(unsigned(zero_extend(0x31d0640, 64)) == 52233792);
+ assert(unsigned(zero_extend(0x31d0644, 64)) == 52233796);
+ assert(unsigned(zero_extend(0x31d0648, 64)) == 52233800);
+ assert(unsigned(zero_extend(0x31d064c, 64)) == 52233804);
+ assert(unsigned(zero_extend(0x31d0650, 64)) == 52233808);
+ assert(unsigned(zero_extend(0x31d0654, 64)) == 52233812);
+ assert(unsigned(zero_extend(0x31d0658, 64)) == 52233816);
+ assert(unsigned(zero_extend(0x31d065c, 64)) == 52233820);
+ assert(unsigned(zero_extend(0x31d0660, 64)) == 52233824);
+ assert(unsigned(zero_extend(0x31d0664, 64)) == 52233828);
+ assert(unsigned(zero_extend(0x31d0668, 64)) == 52233832);
+ assert(unsigned(zero_extend(0x31d066c, 64)) == 52233836);
+ assert(unsigned(zero_extend(0x31d0670, 64)) == 52233840);
+ assert(unsigned(zero_extend(0x31d0674, 64)) == 52233844);
+ assert(unsigned(zero_extend(0x31d0678, 64)) == 52233848);
+ assert(unsigned(zero_extend(0x31d067c, 64)) == 52233852);
+ assert(unsigned(zero_extend(0x31d0680, 64)) == 52233856);
+ assert(unsigned(zero_extend(0x31d0684, 64)) == 52233860);
+ assert(unsigned(zero_extend(0x31d0688, 64)) == 52233864);
+ assert(unsigned(zero_extend(0x31d068c, 64)) == 52233868);
+ assert(unsigned(zero_extend(0x31d0690, 64)) == 52233872);
+ assert(unsigned(zero_extend(0x31d0694, 64)) == 52233876);
+ assert(unsigned(zero_extend(0x31d0698, 64)) == 52233880);
+ assert(unsigned(zero_extend(0x31d06b0, 64)) == 52233904);
+ assert(unsigned(zero_extend(0x31d06b4, 64)) == 52233908);
+ assert(unsigned(zero_extend(0x31d06b8, 64)) == 52233912);
+ assert(unsigned(zero_extend(0x31d06bc, 64)) == 52233916);
+ assert(unsigned(zero_extend(0x31d06c0, 64)) == 52233920);
+ assert(unsigned(zero_extend(0x31d06c4, 64)) == 52233924);
+ assert(unsigned(zero_extend(0x31d06c8, 64)) == 52233928);
+ assert(unsigned(zero_extend(0x31d06cc, 64)) == 52233932);
+ assert(unsigned(zero_extend(0x31d06d0, 64)) == 52233936);
+ assert(unsigned(zero_extend(0x31d06d4, 64)) == 52233940);
+ assert(unsigned(zero_extend(0x31d06d8, 64)) == 52233944);
+ assert(unsigned(zero_extend(0x31d06dc, 64)) == 52233948);
+ assert(unsigned(zero_extend(0x31d06e0, 64)) == 52233952);
+ assert(unsigned(zero_extend(0x31d06e4, 64)) == 52233956);
+ assert(unsigned(zero_extend(0x31d06e8, 64)) == 52233960);
+ assert(unsigned(zero_extend(0x31d0700, 64)) == 52233984);
+ assert(unsigned(zero_extend(0x31d0704, 64)) == 52233988);
+ assert(unsigned(zero_extend(0x31d0708, 64)) == 52233992);
+ assert(unsigned(zero_extend(0x31d070c, 64)) == 52233996);
+ assert(unsigned(zero_extend(0x31d0710, 64)) == 52234000);
+ assert(unsigned(zero_extend(0x31d0714, 64)) == 52234004);
+ assert(unsigned(zero_extend(0x31d0718, 64)) == 52234008);
+ assert(unsigned(zero_extend(0x31d071c, 64)) == 52234012);
+ assert(unsigned(zero_extend(0x31d0720, 64)) == 52234016);
+ assert(unsigned(zero_extend(0x31d0724, 64)) == 52234020);
+ assert(unsigned(zero_extend(0x31d073c, 64)) == 52234044);
+ assert(unsigned(zero_extend(0x31d0740, 64)) == 52234048);
+ assert(unsigned(zero_extend(0x31d0744, 64)) == 52234052);
+ assert(unsigned(zero_extend(0x31d0748, 64)) == 52234056);
+ assert(unsigned(zero_extend(0x31d074c, 64)) == 52234060);
+ assert(unsigned(zero_extend(0x31d0750, 64)) == 52234064);
+ assert(unsigned(zero_extend(0x31d0754, 64)) == 52234068);
+ assert(unsigned(zero_extend(0x31d0758, 64)) == 52234072);
+ assert(unsigned(zero_extend(0x31d075c, 64)) == 52234076);
+ assert(unsigned(zero_extend(0x31d0760, 64)) == 52234080);
+ assert(unsigned(zero_extend(0x31d0764, 64)) == 52234084);
+ assert(unsigned(zero_extend(0x31d0768, 64)) == 52234088);
+ assert(unsigned(zero_extend(0x31d076c, 64)) == 52234092);
+ assert(unsigned(zero_extend(0x31d0770, 64)) == 52234096);
+ assert(unsigned(zero_extend(0x31d0774, 64)) == 52234100);
+ assert(unsigned(zero_extend(0x31d0778, 64)) == 52234104);
+ assert(unsigned(zero_extend(0x31d077c, 64)) == 52234108);
+ assert(unsigned(zero_extend(0x31d0780, 64)) == 52234112);
+ assert(unsigned(zero_extend(0x31d0784, 64)) == 52234116);
+ assert(unsigned(zero_extend(0x31d0788, 64)) == 52234120);
+ assert(unsigned(zero_extend(0x31d078c, 64)) == 52234124);
+ assert(unsigned(zero_extend(0x31d0790, 64)) == 52234128);
+ assert(unsigned(zero_extend(0x31d07d8, 64)) == 52234200);
+ assert(unsigned(zero_extend(0x31d07dc, 64)) == 52234204);
+ assert(unsigned(zero_extend(0x31d07e0, 64)) == 52234208);
+ assert(unsigned(zero_extend(0x31d07e4, 64)) == 52234212);
+ assert(unsigned(zero_extend(0x31d07e8, 64)) == 52234216);
+ assert(unsigned(zero_extend(0x31d07ec, 64)) == 52234220);
+ assert(unsigned(zero_extend(0x31d07f0, 64)) == 52234224);
+ assert(unsigned(zero_extend(0x31d07f4, 64)) == 52234228);
+ assert(unsigned(zero_extend(0x31d07f8, 64)) == 52234232);
+ assert(unsigned(zero_extend(0x31d07fc, 64)) == 52234236);
+ assert(unsigned(zero_extend(0x31d0800, 64)) == 52234240);
+ assert(unsigned(zero_extend(0x31d0804, 64)) == 52234244);
+ assert(unsigned(zero_extend(0x31d0808, 64)) == 52234248);
+ assert(unsigned(zero_extend(0x31d080c, 64)) == 52234252);
+ assert(unsigned(zero_extend(0x31d0810, 64)) == 52234256);
+ assert(unsigned(zero_extend(0x31d0814, 64)) == 52234260);
+ assert(unsigned(zero_extend(0x31d0818, 64)) == 52234264);
+ assert(unsigned(zero_extend(0x31d081c, 64)) == 52234268);
+ assert(unsigned(zero_extend(0x31d0820, 64)) == 52234272);
+ assert(unsigned(zero_extend(0x31d0824, 64)) == 52234276);
+ assert(unsigned(zero_extend(0x31d0828, 64)) == 52234280);
+ assert(unsigned(zero_extend(0x31d082c, 64)) == 52234284);
+ assert(unsigned(zero_extend(0x31d0830, 64)) == 52234288);
+ assert(unsigned(zero_extend(0x31d0834, 64)) == 52234292);
+ assert(unsigned(zero_extend(0x31d0838, 64)) == 52234296);
+ assert(unsigned(zero_extend(0x31d083c, 64)) == 52234300);
+ assert(unsigned(zero_extend(0x31d0840, 64)) == 52234304);
+ assert(unsigned(zero_extend(0x31d0844, 64)) == 52234308);
+ assert(unsigned(zero_extend(0x31d0848, 64)) == 52234312);
+ assert(unsigned(zero_extend(0x31d084c, 64)) == 52234316);
+ assert(unsigned(zero_extend(0x31d0850, 64)) == 52234320);
+ assert(unsigned(zero_extend(0x31d0854, 64)) == 52234324);
+ assert(unsigned(zero_extend(0x31d0858, 64)) == 52234328);
+ assert(unsigned(zero_extend(0x31d085c, 64)) == 52234332);
+ assert(unsigned(zero_extend(0x31d0860, 64)) == 52234336);
+ assert(unsigned(zero_extend(0x31d0864, 64)) == 52234340);
+ assert(unsigned(zero_extend(0x31d0868, 64)) == 52234344);
+ assert(unsigned(zero_extend(0x31d086c, 64)) == 52234348);
+ assert(unsigned(zero_extend(0x31d0870, 64)) == 52234352);
+ assert(unsigned(zero_extend(0x31d0874, 64)) == 52234356);
+ assert(unsigned(zero_extend(0x31d0890, 64)) == 52234384);
+ assert(unsigned(zero_extend(0x31d0898, 64)) == 52234392);
+ assert(unsigned(zero_extend(0x31d08a0, 64)) == 52234400);
+ assert(unsigned(zero_extend(0x31d08a8, 64)) == 52234408);
+ assert(unsigned(zero_extend(0x31d08ac, 64)) == 52234412);
+ assert(unsigned(zero_extend(0x31d08b0, 64)) == 52234416);
+ assert(unsigned(zero_extend(0x31d08b4, 64)) == 52234420);
+ assert(unsigned(zero_extend(0x31d08b8, 64)) == 52234424);
+ assert(unsigned(zero_extend(0x31d08bc, 64)) == 52234428);
+ assert(unsigned(zero_extend(0x31d08c0, 64)) == 52234432);
+ assert(unsigned(zero_extend(0x31d08c4, 64)) == 52234436);
+ assert(unsigned(zero_extend(0x31d08c8, 64)) == 52234440);
+ assert(unsigned(zero_extend(0x31d08cc, 64)) == 52234444);
+ assert(unsigned(zero_extend(0x31d08d0, 64)) == 52234448);
+ assert(unsigned(zero_extend(0x31d08d4, 64)) == 52234452);
+ assert(unsigned(zero_extend(0x31d08d8, 64)) == 52234456);
+ assert(unsigned(zero_extend(0x31d08dc, 64)) == 52234460);
+ assert(unsigned(zero_extend(0x31d08e0, 64)) == 52234464);
+ assert(unsigned(zero_extend(0x31d08e4, 64)) == 52234468);
+ assert(unsigned(zero_extend(0x31d08e8, 64)) == 52234472);
+ assert(unsigned(zero_extend(0x31d08ec, 64)) == 52234476);
+ assert(unsigned(zero_extend(0x31d08f0, 64)) == 52234480);
+ assert(unsigned(zero_extend(0x31d08f4, 64)) == 52234484);
+ assert(unsigned(zero_extend(0x31d08fc, 64)) == 52234492);
+ assert(unsigned(zero_extend(0x31d0900, 64)) == 52234496);
+ assert(unsigned(zero_extend(0x31d0904, 64)) == 52234500);
+ assert(unsigned(zero_extend(0x31d0908, 64)) == 52234504);
+ assert(unsigned(zero_extend(0x31d090c, 64)) == 52234508);
+ assert(unsigned(zero_extend(0x31d0910, 64)) == 52234512);
+ assert(unsigned(zero_extend(0x31d0914, 64)) == 52234516);
+ assert(unsigned(zero_extend(0x31d0918, 64)) == 52234520);
+ assert(unsigned(zero_extend(0x31d091c, 64)) == 52234524);
+ assert(unsigned(zero_extend(0x31d0920, 64)) == 52234528);
+ assert(unsigned(zero_extend(0x31d0924, 64)) == 52234532);
+ assert(unsigned(zero_extend(0x31d0928, 64)) == 52234536);
+ assert(unsigned(zero_extend(0x31d092c, 64)) == 52234540);
+ assert(unsigned(zero_extend(0x31d0930, 64)) == 52234544);
+ assert(unsigned(zero_extend(0x31d0934, 64)) == 52234548);
+ assert(unsigned(zero_extend(0x31d0938, 64)) == 52234552);
+ assert(unsigned(zero_extend(0x31d093c, 64)) == 52234556);
+ assert(unsigned(zero_extend(0x31d0940, 64)) == 52234560);
+ assert(unsigned(zero_extend(0x31d0944, 64)) == 52234564);
+ assert(unsigned(zero_extend(0x31d0948, 64)) == 52234568);
+ assert(unsigned(zero_extend(0x31d094c, 64)) == 52234572);
+ assert(unsigned(zero_extend(0x31d0950, 64)) == 52234576);
+ assert(unsigned(zero_extend(0x31d0954, 64)) == 52234580);
+ assert(unsigned(zero_extend(0x31d0958, 64)) == 52234584);
+ assert(unsigned(zero_extend(0x31d095c, 64)) == 52234588);
+ assert(unsigned(zero_extend(0x31d0960, 64)) == 52234592);
+ assert(unsigned(zero_extend(0x31d0964, 64)) == 52234596);
+ assert(unsigned(zero_extend(0x31d0968, 64)) == 52234600);
+ assert(unsigned(zero_extend(0x31d096c, 64)) == 52234604);
+ assert(unsigned(zero_extend(0x31d0970, 64)) == 52234608);
+ assert(unsigned(zero_extend(0x31d0974, 64)) == 52234612);
+ assert(unsigned(zero_extend(0x31d0978, 64)) == 52234616);
+ assert(unsigned(zero_extend(0x31d097c, 64)) == 52234620);
+ assert(unsigned(zero_extend(0x31d0980, 64)) == 52234624);
+ assert(unsigned(zero_extend(0x31d0984, 64)) == 52234628);
+ assert(unsigned(zero_extend(0x31d0988, 64)) == 52234632);
+ assert(unsigned(zero_extend(0x31d098c, 64)) == 52234636);
+ assert(unsigned(zero_extend(0x31d0990, 64)) == 52234640);
+ assert(unsigned(zero_extend(0x31d0994, 64)) == 52234644);
+ assert(unsigned(zero_extend(0x31d0998, 64)) == 52234648);
+ assert(unsigned(zero_extend(0x31d099c, 64)) == 52234652);
+ assert(unsigned(zero_extend(0x31d09a0, 64)) == 52234656);
+ assert(unsigned(zero_extend(0x31d09a4, 64)) == 52234660);
+ assert(unsigned(zero_extend(0x31d09a8, 64)) == 52234664);
+ assert(unsigned(zero_extend(0x31d09ac, 64)) == 52234668);
+ assert(unsigned(zero_extend(0x31d09b0, 64)) == 52234672);
+ assert(unsigned(zero_extend(0x31d09b4, 64)) == 52234676);
+ assert(unsigned(zero_extend(0x31d09b8, 64)) == 52234680);
+ assert(unsigned(zero_extend(0x31d09bc, 64)) == 52234684);
+ assert(unsigned(zero_extend(0x31d09c0, 64)) == 52234688);
+ assert(unsigned(zero_extend(0x31d09c4, 64)) == 52234692);
+ assert(unsigned(zero_extend(0x31d09c8, 64)) == 52234696);
+ assert(unsigned(zero_extend(0x31d09cc, 64)) == 52234700);
+ assert(unsigned(zero_extend(0x31d09d0, 64)) == 52234704);
+ assert(unsigned(zero_extend(0x31d09d4, 64)) == 52234708);
+ assert(unsigned(zero_extend(0x31d09dc, 64)) == 52234716);
+ assert(unsigned(zero_extend(0x31d09e0, 64)) == 52234720);
+ assert(unsigned(zero_extend(0x31d09e4, 64)) == 52234724);
+ assert(unsigned(zero_extend(0x31d09e8, 64)) == 52234728);
+ assert(unsigned(zero_extend(0x31d09ec, 64)) == 52234732);
+ assert(unsigned(zero_extend(0x31d09f0, 64)) == 52234736);
+ assert(unsigned(zero_extend(0x31d09f4, 64)) == 52234740);
+ assert(unsigned(zero_extend(0x31d09f8, 64)) == 52234744);
+ assert(unsigned(zero_extend(0x31d09fc, 64)) == 52234748);
+ assert(unsigned(zero_extend(0x31d0a08, 64)) == 52234760);
+ assert(unsigned(zero_extend(0x31d0a0c, 64)) == 52234764);
+ assert(unsigned(zero_extend(0x31d0a10, 64)) == 52234768);
+ assert(unsigned(zero_extend(0x31d0a14, 64)) == 52234772);
+ assert(unsigned(zero_extend(0x31d0a18, 64)) == 52234776);
+ assert(unsigned(zero_extend(0x31d0a1c, 64)) == 52234780);
+ assert(unsigned(zero_extend(0x31d0a20, 64)) == 52234784);
+ assert(unsigned(zero_extend(0x31d0a24, 64)) == 52234788);
+ assert(unsigned(zero_extend(0x31d0a28, 64)) == 52234792);
+ assert(unsigned(zero_extend(0x31d0a2c, 64)) == 52234796);
+ assert(unsigned(zero_extend(0x31d0a30, 64)) == 52234800);
+ assert(unsigned(zero_extend(0x31d0a34, 64)) == 52234804);
+ assert(unsigned(zero_extend(0x31d0a38, 64)) == 52234808);
+ assert(unsigned(zero_extend(0x31d0a3c, 64)) == 52234812);
+ assert(unsigned(zero_extend(0x31d0a40, 64)) == 52234816);
+ assert(unsigned(zero_extend(0x31d0a44, 64)) == 52234820);
+ assert(unsigned(zero_extend(0x31d0a48, 64)) == 52234824);
+ assert(unsigned(zero_extend(0x31d0a4c, 64)) == 52234828);
+ assert(unsigned(zero_extend(0x31d0a50, 64)) == 52234832);
+ assert(unsigned(zero_extend(0x31d0a54, 64)) == 52234836);
+ assert(unsigned(zero_extend(0x31d0a58, 64)) == 52234840);
+ assert(unsigned(zero_extend(0x31d0a5c, 64)) == 52234844);
+ assert(unsigned(zero_extend(0x31d0a60, 64)) == 52234848);
+ assert(unsigned(zero_extend(0x31d0a64, 64)) == 52234852);
+ assert(unsigned(zero_extend(0x31d0a68, 64)) == 52234856);
+ assert(unsigned(zero_extend(0x31d0a6c, 64)) == 52234860);
+ assert(unsigned(zero_extend(0x31d0a70, 64)) == 52234864);
+ assert(unsigned(zero_extend(0x31d0a74, 64)) == 52234868);
+ assert(unsigned(zero_extend(0x31d0a78, 64)) == 52234872);
+ assert(unsigned(zero_extend(0x31d0a7c, 64)) == 52234876);
+ assert(unsigned(zero_extend(0x31d0a80, 64)) == 52234880);
+ assert(unsigned(zero_extend(0x31d0a84, 64)) == 52234884);
+ assert(unsigned(zero_extend(0x31d0a88, 64)) == 52234888);
+ assert(unsigned(zero_extend(0x31d0a8c, 64)) == 52234892);
+ assert(unsigned(zero_extend(0x31d0a90, 64)) == 52234896);
+ assert(unsigned(zero_extend(0x31d0a94, 64)) == 52234900);
+ assert(unsigned(zero_extend(0x31d0a98, 64)) == 52234904);
+ assert(unsigned(zero_extend(0x31d0a9c, 64)) == 52234908);
+ assert(unsigned(zero_extend(0x31d0aa0, 64)) == 52234912);
+ assert(unsigned(zero_extend(0x31d0aa4, 64)) == 52234916);
+ assert(unsigned(zero_extend(0x31d0aa8, 64)) == 52234920);
+ assert(unsigned(zero_extend(0x31d0aac, 64)) == 52234924);
+ assert(unsigned(zero_extend(0x31d0ab0, 64)) == 52234928);
+ assert(unsigned(zero_extend(0x31d0ab4, 64)) == 52234932);
+ assert(unsigned(zero_extend(0x31d0ab8, 64)) == 52234936);
+ assert(unsigned(zero_extend(0x31d0abc, 64)) == 52234940);
+ assert(unsigned(zero_extend(0x31d0ac0, 64)) == 52234944);
+ assert(unsigned(zero_extend(0x31d0ac4, 64)) == 52234948);
+ assert(unsigned(zero_extend(0x31d0ac8, 64)) == 52234952);
+ assert(unsigned(zero_extend(0x31d0acc, 64)) == 52234956);
+ assert(unsigned(zero_extend(0x31d0ad0, 64)) == 52234960);
+ assert(unsigned(zero_extend(0x31d0ad4, 64)) == 52234964);
+ assert(unsigned(zero_extend(0x31d0ad8, 64)) == 52234968);
+ assert(unsigned(zero_extend(0x31d0adc, 64)) == 52234972);
+ assert(unsigned(zero_extend(0x31d0ae0, 64)) == 52234976);
+ assert(unsigned(zero_extend(0x31d0ae4, 64)) == 52234980);
+ assert(unsigned(zero_extend(0x31d0ae8, 64)) == 52234984);
+ assert(unsigned(zero_extend(0x31d0aec, 64)) == 52234988);
+ assert(unsigned(zero_extend(0x31d0af0, 64)) == 52234992);
+ assert(unsigned(zero_extend(0x31d0af4, 64)) == 52234996);
+ assert(unsigned(zero_extend(0x31d0af8, 64)) == 52235000);
+ assert(unsigned(zero_extend(0x31d0b08, 64)) == 52235016);
+ assert(unsigned(zero_extend(0x31d0b0c, 64)) == 52235020);
+ assert(unsigned(zero_extend(0x31d0b10, 64)) == 52235024);
+ assert(unsigned(zero_extend(0x31d0b14, 64)) == 52235028);
+ assert(unsigned(zero_extend(0x31d0b18, 64)) == 52235032);
+ assert(unsigned(zero_extend(0x31d0b1c, 64)) == 52235036);
+ assert(unsigned(zero_extend(0x31d0b20, 64)) == 52235040);
+ assert(unsigned(zero_extend(0x31d0b24, 64)) == 52235044);
+ assert(unsigned(zero_extend(0x31d0b28, 64)) == 52235048);
+ assert(unsigned(zero_extend(0x31d0b34, 64)) == 52235060);
+ assert(unsigned(zero_extend(0x31d0b38, 64)) == 52235064);
+ assert(unsigned(zero_extend(0x31d0b3c, 64)) == 52235068);
+ assert(unsigned(zero_extend(0x31d0b40, 64)) == 52235072);
+ assert(unsigned(zero_extend(0x31d0b50, 64)) == 52235088);
+ assert(unsigned(zero_extend(0x31d0b54, 64)) == 52235092);
+ assert(unsigned(zero_extend(0x31d0b58, 64)) == 52235096);
+ assert(unsigned(zero_extend(0x31d0b5c, 64)) == 52235100);
+ assert(unsigned(zero_extend(0x31d0b60, 64)) == 52235104);
+ assert(unsigned(zero_extend(0x31d0b64, 64)) == 52235108);
+ assert(unsigned(zero_extend(0x31d0b68, 64)) == 52235112);
+ assert(unsigned(zero_extend(0x31d0b6c, 64)) == 52235116);
+ assert(unsigned(zero_extend(0x31d0b70, 64)) == 52235120);
+ assert(unsigned(zero_extend(0x31d0b74, 64)) == 52235124);
+ assert(unsigned(zero_extend(0x31d0b78, 64)) == 52235128);
+ assert(unsigned(zero_extend(0x31d0b7c, 64)) == 52235132);
+ assert(unsigned(zero_extend(0x31d0b80, 64)) == 52235136);
+ assert(unsigned(zero_extend(0x31d0b84, 64)) == 52235140);
+ assert(unsigned(zero_extend(0x31d0b88, 64)) == 52235144);
+ assert(unsigned(zero_extend(0x31d0b8c, 64)) == 52235148);
+ assert(unsigned(zero_extend(0x31d0b90, 64)) == 52235152);
+ assert(unsigned(zero_extend(0x31d0b94, 64)) == 52235156);
+ assert(unsigned(zero_extend(0x31d0b98, 64)) == 52235160);
+ assert(unsigned(zero_extend(0x31d0b9c, 64)) == 52235164);
+ assert(unsigned(zero_extend(0x31d0ba0, 64)) == 52235168);
+ assert(unsigned(zero_extend(0x31d0ba4, 64)) == 52235172);
+ assert(unsigned(zero_extend(0x31d0ba8, 64)) == 52235176);
+ assert(unsigned(zero_extend(0x31d0bac, 64)) == 52235180);
+ assert(unsigned(zero_extend(0x31d0bb0, 64)) == 52235184);
+ assert(unsigned(zero_extend(0x31d0bb4, 64)) == 52235188);
+ assert(unsigned(zero_extend(0x31d0bb8, 64)) == 52235192);
+ assert(unsigned(zero_extend(0x31d0bbc, 64)) == 52235196);
+ assert(unsigned(zero_extend(0x31d0bc0, 64)) == 52235200);
+ assert(unsigned(zero_extend(0x31d0bc4, 64)) == 52235204);
+ assert(unsigned(zero_extend(0x31d0bc8, 64)) == 52235208);
+ assert(unsigned(zero_extend(0x31d0bcc, 64)) == 52235212);
+ assert(unsigned(zero_extend(0x31d0bd0, 64)) == 52235216);
+ assert(unsigned(zero_extend(0x31d0bd4, 64)) == 52235220);
+ assert(unsigned(zero_extend(0x31d0bd8, 64)) == 52235224);
+ assert(unsigned(zero_extend(0x31d0bdc, 64)) == 52235228);
+ assert(unsigned(zero_extend(0x31d0be0, 64)) == 52235232);
+ assert(unsigned(zero_extend(0x31d0be4, 64)) == 52235236);
+ assert(unsigned(zero_extend(0x31d0be8, 64)) == 52235240);
+ assert(unsigned(zero_extend(0x31d0bec, 64)) == 52235244);
+ assert(unsigned(zero_extend(0x31d0bf0, 64)) == 52235248);
+ assert(unsigned(zero_extend(0x31d0bf4, 64)) == 52235252);
+ assert(unsigned(zero_extend(0x31d0bf8, 64)) == 52235256);
+ assert(unsigned(zero_extend(0x31d0bfc, 64)) == 52235260);
+ assert(unsigned(zero_extend(0x31d0c00, 64)) == 52235264);
+ assert(unsigned(zero_extend(0x31d0c04, 64)) == 52235268);
+ assert(unsigned(zero_extend(0x31d0c08, 64)) == 52235272);
+ assert(unsigned(zero_extend(0x31d0c0c, 64)) == 52235276);
+ assert(unsigned(zero_extend(0x31d0c1c, 64)) == 52235292);
+ assert(unsigned(zero_extend(0x31d0c20, 64)) == 52235296);
+ assert(unsigned(zero_extend(0x31d0c24, 64)) == 52235300);
+ assert(unsigned(zero_extend(0x31d0c28, 64)) == 52235304);
+ assert(unsigned(zero_extend(0x31d0c2c, 64)) == 52235308);
+ assert(unsigned(zero_extend(0x31d0c30, 64)) == 52235312);
+ assert(unsigned(zero_extend(0x31d0c34, 64)) == 52235316);
+ assert(unsigned(zero_extend(0x31d0c38, 64)) == 52235320);
+ assert(unsigned(zero_extend(0x31d0c3c, 64)) == 52235324);
+ assert(unsigned(zero_extend(0x31d0c48, 64)) == 52235336);
+ assert(unsigned(zero_extend(0x31d0c4c, 64)) == 52235340);
+ assert(unsigned(zero_extend(0x31d0c50, 64)) == 52235344);
+ assert(unsigned(zero_extend(0x31d0c54, 64)) == 52235348);
+ assert(unsigned(zero_extend(0x31d0c64, 64)) == 52235364);
+ assert(unsigned(zero_extend(0x31d0c68, 64)) == 52235368);
+ assert(unsigned(zero_extend(0x31d0c6c, 64)) == 52235372);
+ assert(unsigned(zero_extend(0x31d0c70, 64)) == 52235376);
+ assert(unsigned(zero_extend(0x31d0c74, 64)) == 52235380);
+ assert(unsigned(zero_extend(0x31d0c78, 64)) == 52235384);
+ assert(unsigned(zero_extend(0x31d0c7c, 64)) == 52235388);
+ assert(unsigned(zero_extend(0x31d0c80, 64)) == 52235392);
+ assert(unsigned(zero_extend(0x31d0c84, 64)) == 52235396);
+ assert(unsigned(zero_extend(0x31d0c88, 64)) == 52235400);
+ assert(unsigned(zero_extend(0x31d0c8c, 64)) == 52235404);
+ assert(unsigned(zero_extend(0x31d0c90, 64)) == 52235408);
+ assert(unsigned(zero_extend(0x31d0c94, 64)) == 52235412);
+ assert(unsigned(zero_extend(0x31d0c98, 64)) == 52235416);
+ assert(unsigned(zero_extend(0x31d0c9c, 64)) == 52235420);
+ assert(unsigned(zero_extend(0x31d0ca0, 64)) == 52235424);
+ assert(unsigned(zero_extend(0x31d0ca4, 64)) == 52235428);
+ assert(unsigned(zero_extend(0x31d0ca8, 64)) == 52235432);
+ assert(unsigned(zero_extend(0x31d0cac, 64)) == 52235436);
+ assert(unsigned(zero_extend(0x31d0cb0, 64)) == 52235440);
+ assert(unsigned(zero_extend(0x31d0cb4, 64)) == 52235444);
+ assert(unsigned(zero_extend(0x31d0cb8, 64)) == 52235448);
+ assert(unsigned(zero_extend(0x31d0cbc, 64)) == 52235452);
+ assert(unsigned(zero_extend(0x31d0cc0, 64)) == 52235456);
+ assert(unsigned(zero_extend(0x31d0cc4, 64)) == 52235460);
+ assert(unsigned(zero_extend(0x31d0cc8, 64)) == 52235464);
+ assert(unsigned(zero_extend(0x31d0ccc, 64)) == 52235468);
+ assert(unsigned(zero_extend(0x31d0cd0, 64)) == 52235472);
+ assert(unsigned(zero_extend(0x31d0cd4, 64)) == 52235476);
+ assert(unsigned(zero_extend(0x31d0cd8, 64)) == 52235480);
+ assert(unsigned(zero_extend(0x31d0cdc, 64)) == 52235484);
+ assert(unsigned(zero_extend(0x31d0ce0, 64)) == 52235488);
+ assert(unsigned(zero_extend(0x31d0ce4, 64)) == 52235492);
+ assert(unsigned(zero_extend(0x31d0ce8, 64)) == 52235496);
+ assert(unsigned(zero_extend(0x31d0cec, 64)) == 52235500);
+ assert(unsigned(zero_extend(0x31d0cf0, 64)) == 52235504);
+ assert(unsigned(zero_extend(0x31d0cf4, 64)) == 52235508);
+ assert(unsigned(zero_extend(0x31d0cf8, 64)) == 52235512);
+ assert(unsigned(zero_extend(0x31d0cfc, 64)) == 52235516);
+ assert(unsigned(zero_extend(0x31d0d00, 64)) == 52235520);
+ assert(unsigned(zero_extend(0x31d0d04, 64)) == 52235524);
+ assert(unsigned(zero_extend(0x31d0d08, 64)) == 52235528);
+ assert(unsigned(zero_extend(0x31d0d0c, 64)) == 52235532);
+ assert(unsigned(zero_extend(0x31d0d10, 64)) == 52235536);
+ assert(unsigned(zero_extend(0x31d0d14, 64)) == 52235540);
+ assert(unsigned(zero_extend(0x31d0d24, 64)) == 52235556);
+ assert(unsigned(zero_extend(0x31d0d28, 64)) == 52235560);
+ assert(unsigned(zero_extend(0x31d0d2c, 64)) == 52235564);
+ assert(unsigned(zero_extend(0x31d0d30, 64)) == 52235568);
+ assert(unsigned(zero_extend(0x31d0d34, 64)) == 52235572);
+ assert(unsigned(zero_extend(0x31d0d38, 64)) == 52235576);
+ assert(unsigned(zero_extend(0x31d0d3c, 64)) == 52235580);
+ assert(unsigned(zero_extend(0x31d0d48, 64)) == 52235592);
+ assert(unsigned(zero_extend(0x31d0d4c, 64)) == 52235596);
+ assert(unsigned(zero_extend(0x31d0d50, 64)) == 52235600);
+ assert(unsigned(zero_extend(0x31d0d54, 64)) == 52235604);
+ assert(unsigned(zero_extend(0x31d0d64, 64)) == 52235620);
+ assert(unsigned(zero_extend(0x31d0d68, 64)) == 52235624);
+ assert(unsigned(zero_extend(0x31d0d6c, 64)) == 52235628);
+ assert(unsigned(zero_extend(0x31d0d70, 64)) == 52235632);
+ assert(unsigned(zero_extend(0x31d0d74, 64)) == 52235636);
+ assert(unsigned(zero_extend(0x31d0d78, 64)) == 52235640);
+ assert(unsigned(zero_extend(0x31d0d7c, 64)) == 52235644);
+ assert(unsigned(zero_extend(0x31d0d80, 64)) == 52235648);
+ assert(unsigned(zero_extend(0x31d0d84, 64)) == 52235652);
+ assert(unsigned(zero_extend(0x31d0d88, 64)) == 52235656);
+ assert(unsigned(zero_extend(0x31d0d8c, 64)) == 52235660);
+ assert(unsigned(zero_extend(0x31d0d90, 64)) == 52235664);
+ assert(unsigned(zero_extend(0x31d0d94, 64)) == 52235668);
+ assert(unsigned(zero_extend(0x31d0d98, 64)) == 52235672);
+ assert(unsigned(zero_extend(0x31d0d9c, 64)) == 52235676);
+ assert(unsigned(zero_extend(0x31d0da0, 64)) == 52235680);
+ assert(unsigned(zero_extend(0x31d0da4, 64)) == 52235684);
+ assert(unsigned(zero_extend(0x31d0da8, 64)) == 52235688);
+ assert(unsigned(zero_extend(0x31d0dac, 64)) == 52235692);
+ assert(unsigned(zero_extend(0x31d0db0, 64)) == 52235696);
+ assert(unsigned(zero_extend(0x31d0db4, 64)) == 52235700);
+ assert(unsigned(zero_extend(0x31d0db8, 64)) == 52235704);
+ assert(unsigned(zero_extend(0x31d0dbc, 64)) == 52235708);
+ assert(unsigned(zero_extend(0x31d0dc0, 64)) == 52235712);
+ assert(unsigned(zero_extend(0x31d0dc4, 64)) == 52235716);
+ assert(unsigned(zero_extend(0x31d0dc8, 64)) == 52235720);
+ assert(unsigned(zero_extend(0x31d0dcc, 64)) == 52235724);
+ assert(unsigned(zero_extend(0x31d0dd0, 64)) == 52235728);
+ assert(unsigned(zero_extend(0x31d0dd4, 64)) == 52235732);
+ assert(unsigned(zero_extend(0x31d0dd8, 64)) == 52235736);
+ assert(unsigned(zero_extend(0x31d0ddc, 64)) == 52235740);
+ assert(unsigned(zero_extend(0x31d0de0, 64)) == 52235744);
+ assert(unsigned(zero_extend(0x31d0de4, 64)) == 52235748);
+ assert(unsigned(zero_extend(0x31d0de8, 64)) == 52235752);
+ assert(unsigned(zero_extend(0x31d0dec, 64)) == 52235756);
+ assert(unsigned(zero_extend(0x31d0df0, 64)) == 52235760);
+ assert(unsigned(zero_extend(0x31d0df4, 64)) == 52235764);
+ assert(unsigned(zero_extend(0x31d0df8, 64)) == 52235768);
+ assert(unsigned(zero_extend(0x31d0dfc, 64)) == 52235772);
+ assert(unsigned(zero_extend(0x31d0e00, 64)) == 52235776);
+ assert(unsigned(zero_extend(0x31d0e04, 64)) == 52235780);
+ assert(unsigned(zero_extend(0x31d0e08, 64)) == 52235784);
+ assert(unsigned(zero_extend(0x31d0e0c, 64)) == 52235788);
+ assert(unsigned(zero_extend(0x31d0e10, 64)) == 52235792);
+ assert(unsigned(zero_extend(0x31d0e14, 64)) == 52235796);
+ assert(unsigned(zero_extend(0x31d0e18, 64)) == 52235800);
+ assert(unsigned(zero_extend(0x31d0e1c, 64)) == 52235804);
+ assert(unsigned(zero_extend(0x31d0e20, 64)) == 52235808);
+ assert(unsigned(zero_extend(0x31d0e24, 64)) == 52235812);
+ assert(unsigned(zero_extend(0x31d0e28, 64)) == 52235816);
+ assert(unsigned(zero_extend(0x31d0e2c, 64)) == 52235820);
+ assert(unsigned(zero_extend(0x31d0e30, 64)) == 52235824);
+ assert(unsigned(zero_extend(0x31d0e34, 64)) == 52235828);
+ assert(unsigned(zero_extend(0x31d0e38, 64)) == 52235832);
+ assert(unsigned(zero_extend(0x31d0e40, 64)) == 52235840);
+ assert(unsigned(zero_extend(0x31d0e48, 64)) == 52235848);
+ assert(unsigned(zero_extend(0x31d0e50, 64)) == 52235856);
+ assert(unsigned(zero_extend(0x31d0e58, 64)) == 52235864);
+ assert(unsigned(zero_extend(0x31d0e5c, 64)) == 52235868);
+ assert(unsigned(zero_extend(0x31d0e60, 64)) == 52235872);
+ assert(unsigned(zero_extend(0x31d0e64, 64)) == 52235876);
+ assert(unsigned(zero_extend(0x31d0e68, 64)) == 52235880);
+ assert(unsigned(zero_extend(0x31d0e6c, 64)) == 52235884);
+ assert(unsigned(zero_extend(0x31d0e70, 64)) == 52235888);
+ assert(unsigned(zero_extend(0x31d0e74, 64)) == 52235892);
+ assert(unsigned(zero_extend(0x31d0e78, 64)) == 52235896);
+ assert(unsigned(zero_extend(0x31d0e7c, 64)) == 52235900);
+ assert(unsigned(zero_extend(0x31d0e80, 64)) == 52235904);
+ assert(unsigned(zero_extend(0x31d0e84, 64)) == 52235908);
+ assert(unsigned(zero_extend(0x31d0e88, 64)) == 52235912);
+ assert(unsigned(zero_extend(0x31d0e8c, 64)) == 52235916);
+ assert(unsigned(zero_extend(0x31d0f3c, 64)) == 52236092);
+ assert(unsigned(zero_extend(0x31d0f40, 64)) == 52236096);
+ assert(unsigned(zero_extend(0x31d0f44, 64)) == 52236100);
+ assert(unsigned(zero_extend(0x31d0f48, 64)) == 52236104);
+ assert(unsigned(zero_extend(0x31d0f4c, 64)) == 52236108);
+ assert(unsigned(zero_extend(0x31d0f50, 64)) == 52236112);
+ assert(unsigned(zero_extend(0x31d0f54, 64)) == 52236116);
+ assert(unsigned(zero_extend(0x31d0f58, 64)) == 52236120);
+ assert(unsigned(zero_extend(0x31d0f5c, 64)) == 52236124);
+ assert(unsigned(zero_extend(0x31d0f60, 64)) == 52236128);
+ assert(unsigned(zero_extend(0x31d0f64, 64)) == 52236132);
+ assert(unsigned(zero_extend(0x31d0f68, 64)) == 52236136);
+ assert(unsigned(zero_extend(0x31d0f6c, 64)) == 52236140);
+ assert(unsigned(zero_extend(0x31d0f70, 64)) == 52236144);
+ assert(unsigned(zero_extend(0x31d0f74, 64)) == 52236148);
+ assert(unsigned(zero_extend(0x31d0f78, 64)) == 52236152);
+ assert(unsigned(zero_extend(0x31d0f7c, 64)) == 52236156);
+ assert(unsigned(zero_extend(0x31d0f8c, 64)) == 52236172);
+ assert(unsigned(zero_extend(0x31d0f90, 64)) == 52236176);
+ assert(unsigned(zero_extend(0x31d0f94, 64)) == 52236180);
+ assert(unsigned(zero_extend(0x31d0f98, 64)) == 52236184);
+ assert(unsigned(zero_extend(0x31d0f9c, 64)) == 52236188);
+ assert(unsigned(zero_extend(0x31d0fa0, 64)) == 52236192);
+ assert(unsigned(zero_extend(0x31d0fb0, 64)) == 52236208);
+ assert(unsigned(zero_extend(0x31d0fb4, 64)) == 52236212);
+ assert(unsigned(zero_extend(0x31d0fb8, 64)) == 52236216);
+ assert(unsigned(zero_extend(0x31d0fbc, 64)) == 52236220);
+ assert(unsigned(zero_extend(0x31d0fc0, 64)) == 52236224);
+ assert(unsigned(zero_extend(0x31d0fc4, 64)) == 52236228);
+ assert(unsigned(zero_extend(0x31d105c, 64)) == 52236380);
+ assert(unsigned(zero_extend(0x31d1060, 64)) == 52236384);
+ assert(unsigned(zero_extend(0x31d1064, 64)) == 52236388);
+ assert(unsigned(zero_extend(0x31d1068, 64)) == 52236392);
+ assert(unsigned(zero_extend(0x31d106c, 64)) == 52236396);
+ assert(unsigned(zero_extend(0x31d1078, 64)) == 52236408);
+ assert(unsigned(zero_extend(0x31d107c, 64)) == 52236412);
+ assert(unsigned(zero_extend(0x31d1080, 64)) == 52236416);
+ assert(unsigned(zero_extend(0x31d1084, 64)) == 52236420);
+ assert(unsigned(zero_extend(0x31d1088, 64)) == 52236424);
+ assert(unsigned(zero_extend(0x31d108c, 64)) == 52236428);
+ assert(unsigned(zero_extend(0x31d1090, 64)) == 52236432);
+ assert(unsigned(zero_extend(0x31d1094, 64)) == 52236436);
+ assert(unsigned(zero_extend(0x31d10a0, 64)) == 52236448);
+ assert(unsigned(zero_extend(0x31d10a4, 64)) == 52236452);
+ assert(unsigned(zero_extend(0x31d10a8, 64)) == 52236456);
+ assert(unsigned(zero_extend(0x31d10b0, 64)) == 52236464);
+ assert(unsigned(zero_extend(0x31d10b8, 64)) == 52236472);
+ assert(unsigned(zero_extend(0x31d10bc, 64)) == 52236476);
+ assert(unsigned(zero_extend(0x31d10c0, 64)) == 52236480);
+ assert(unsigned(zero_extend(0x31d10c4, 64)) == 52236484);
+ assert(unsigned(zero_extend(0x31d10c8, 64)) == 52236488);
+ assert(unsigned(zero_extend(0x31d10cc, 64)) == 52236492);
+ assert(unsigned(zero_extend(0x31d10d0, 64)) == 52236496);
+ assert(unsigned(zero_extend(0x31d10d4, 64)) == 52236500);
+ assert(unsigned(zero_extend(0x31d10d8, 64)) == 52236504);
+ assert(unsigned(zero_extend(0x31d10dc, 64)) == 52236508);
+ assert(unsigned(zero_extend(0x31d10e0, 64)) == 52236512);
+ assert(unsigned(zero_extend(0x31d10e4, 64)) == 52236516);
+ assert(unsigned(zero_extend(0x31d10e8, 64)) == 52236520);
+ assert(unsigned(zero_extend(0x31d10ec, 64)) == 52236524);
+ assert(unsigned(zero_extend(0x31d10f0, 64)) == 52236528);
+ assert(unsigned(zero_extend(0x31d10f4, 64)) == 52236532);
+ assert(unsigned(zero_extend(0x31d10f8, 64)) == 52236536);
+ assert(unsigned(zero_extend(0x31d1100, 64)) == 52236544);
+ assert(unsigned(zero_extend(0x31d1108, 64)) == 52236552);
+ assert(unsigned(zero_extend(0x31d1110, 64)) == 52236560);
+ assert(unsigned(zero_extend(0x31d1118, 64)) == 52236568);
+ assert(unsigned(zero_extend(0x31d111c, 64)) == 52236572);
+ assert(unsigned(zero_extend(0x31d1120, 64)) == 52236576);
+ assert(unsigned(zero_extend(0x31d1124, 64)) == 52236580);
+ assert(unsigned(zero_extend(0x31d1128, 64)) == 52236584);
+ assert(unsigned(zero_extend(0x31d112c, 64)) == 52236588);
+ assert(unsigned(zero_extend(0x31d1130, 64)) == 52236592);
+ assert(unsigned(zero_extend(0x31d1134, 64)) == 52236596);
+ assert(unsigned(zero_extend(0x31d1138, 64)) == 52236600);
+ assert(unsigned(zero_extend(0x31d113c, 64)) == 52236604);
+ assert(unsigned(zero_extend(0x31d1140, 64)) == 52236608);
+ assert(unsigned(zero_extend(0x31d1144, 64)) == 52236612);
+ assert(unsigned(zero_extend(0x31d1148, 64)) == 52236616);
+ assert(unsigned(zero_extend(0x31d114c, 64)) == 52236620);
+ assert(unsigned(zero_extend(0x31d1150, 64)) == 52236624);
+ assert(unsigned(zero_extend(0x31d1154, 64)) == 52236628);
+ assert(unsigned(zero_extend(0x31d1158, 64)) == 52236632);
+ assert(unsigned(zero_extend(0x31d115c, 64)) == 52236636);
+ assert(unsigned(zero_extend(0x31d1160, 64)) == 52236640);
+ assert(unsigned(zero_extend(0x31d1164, 64)) == 52236644);
+ assert(unsigned(zero_extend(0x31d1168, 64)) == 52236648);
+ assert(unsigned(zero_extend(0x31d1170, 64)) == 52236656);
+ assert(unsigned(zero_extend(0x31d1178, 64)) == 52236664);
+ assert(unsigned(zero_extend(0x31d1180, 64)) == 52236672);
+ assert(unsigned(zero_extend(0x31d1184, 64)) == 52236676);
+ assert(unsigned(zero_extend(0x31d1188, 64)) == 52236680);
+ assert(unsigned(zero_extend(0x31d118c, 64)) == 52236684);
+ assert(unsigned(zero_extend(0x31d1190, 64)) == 52236688);
+ assert(unsigned(zero_extend(0x31d1194, 64)) == 52236692);
+ assert(unsigned(zero_extend(0x31d1198, 64)) == 52236696);
+ assert(unsigned(zero_extend(0x31d119c, 64)) == 52236700);
+ assert(unsigned(zero_extend(0x31d11a0, 64)) == 52236704);
+ assert(unsigned(zero_extend(0x31d11a4, 64)) == 52236708);
+ assert(unsigned(zero_extend(0x31d11a8, 64)) == 52236712);
+ assert(unsigned(zero_extend(0x31d11ac, 64)) == 52236716);
+ assert(unsigned(zero_extend(0x31d11b0, 64)) == 52236720);
+ assert(unsigned(zero_extend(0x31d11b4, 64)) == 52236724);
+ assert(unsigned(zero_extend(0x31d11b8, 64)) == 52236728);
+ assert(unsigned(zero_extend(0x31d11bc, 64)) == 52236732);
+ assert(unsigned(zero_extend(0x31d11c0, 64)) == 52236736);
+ assert(unsigned(zero_extend(0x31d11c4, 64)) == 52236740);
+ assert(unsigned(zero_extend(0x31d11c8, 64)) == 52236744);
+ assert(unsigned(zero_extend(0x31d11cc, 64)) == 52236748);
+ assert(unsigned(zero_extend(0x31d11d0, 64)) == 52236752);
+ assert(unsigned(zero_extend(0x31d11d4, 64)) == 52236756);
+ assert(unsigned(zero_extend(0x31d11d8, 64)) == 52236760);
+ assert(unsigned(zero_extend(0x31d11dc, 64)) == 52236764);
+ assert(unsigned(zero_extend(0x31d11e0, 64)) == 52236768);
+ assert(unsigned(zero_extend(0x31d11ec, 64)) == 52236780);
+ assert(unsigned(zero_extend(0x31d11f0, 64)) == 52236784);
+ assert(unsigned(zero_extend(0x31d11f8, 64)) == 52236792);
+ assert(unsigned(zero_extend(0x31d11fc, 64)) == 52236796);
+ assert(unsigned(zero_extend(0x31d1200, 64)) == 52236800);
+ assert(unsigned(zero_extend(0x31d1204, 64)) == 52236804);
+ assert(unsigned(zero_extend(0x31d1208, 64)) == 52236808);
+ assert(unsigned(zero_extend(0x31d120c, 64)) == 52236812);
+ assert(unsigned(zero_extend(0x31d1220, 64)) == 52236832);
+ assert(unsigned(zero_extend(0x31d1224, 64)) == 52236836);
+ assert(unsigned(zero_extend(0x31d1254, 64)) == 52236884);
+ assert(unsigned(zero_extend(0x31d1258, 64)) == 52236888);
+ assert(unsigned(zero_extend(0x31d125c, 64)) == 52236892);
+ assert(unsigned(zero_extend(0x31d129c, 64)) == 52236956);
+ assert(unsigned(zero_extend(0x31d12a0, 64)) == 52236960);
+ assert(unsigned(zero_extend(0x31d12a4, 64)) == 52236964);
+ assert(unsigned(zero_extend(0x31d12a8, 64)) == 52236968);
+ assert(unsigned(zero_extend(0x31d12ac, 64)) == 52236972);
+ assert(unsigned(zero_extend(0x31d12b0, 64)) == 52236976);
+ assert(unsigned(zero_extend(0x31d12b4, 64)) == 52236980);
+ assert(unsigned(zero_extend(0x31d12b8, 64)) == 52236984);
+ assert(unsigned(zero_extend(0x31d12bc, 64)) == 52236988);
+ assert(unsigned(zero_extend(0x31d12c0, 64)) == 52236992);
+ assert(unsigned(zero_extend(0x31d12c4, 64)) == 52236996);
+ assert(unsigned(zero_extend(0x31d12c8, 64)) == 52237000);
+ assert(unsigned(zero_extend(0x31d12cc, 64)) == 52237004);
+ assert(unsigned(zero_extend(0x31d12d0, 64)) == 52237008);
+ assert(unsigned(zero_extend(0x31d12d4, 64)) == 52237012);
+ assert(unsigned(zero_extend(0x31d12d8, 64)) == 52237016);
+ assert(unsigned(zero_extend(0x31d12dc, 64)) == 52237020);
+ assert(unsigned(zero_extend(0x31d12e0, 64)) == 52237024);
+ assert(unsigned(zero_extend(0x31d12e4, 64)) == 52237028);
+ assert(unsigned(zero_extend(0x31d12e8, 64)) == 52237032);
+ assert(unsigned(zero_extend(0x31d12ec, 64)) == 52237036);
+ assert(unsigned(zero_extend(0x31d12f0, 64)) == 52237040);
+ assert(unsigned(zero_extend(0x31d12f4, 64)) == 52237044);
+ assert(unsigned(zero_extend(0x31d12f8, 64)) == 52237048);
+ assert(unsigned(zero_extend(0x31d12fc, 64)) == 52237052);
+ assert(unsigned(zero_extend(0x31d1300, 64)) == 52237056);
+ assert(unsigned(zero_extend(0x31d1304, 64)) == 52237060);
+ assert(unsigned(zero_extend(0x31d1308, 64)) == 52237064);
+ assert(unsigned(zero_extend(0x31d130c, 64)) == 52237068);
+ assert(unsigned(zero_extend(0x31d1310, 64)) == 52237072);
+ assert(unsigned(zero_extend(0x31d1314, 64)) == 52237076);
+ assert(unsigned(zero_extend(0x31d1318, 64)) == 52237080);
+ assert(unsigned(zero_extend(0x31d131c, 64)) == 52237084);
+ assert(unsigned(zero_extend(0x31d1320, 64)) == 52237088);
+ assert(unsigned(zero_extend(0x31d1324, 64)) == 52237092);
+ assert(unsigned(zero_extend(0x31d1328, 64)) == 52237096);
+ assert(unsigned(zero_extend(0x31d132c, 64)) == 52237100);
+ assert(unsigned(zero_extend(0x31d1330, 64)) == 52237104);
+ assert(unsigned(zero_extend(0x31d1334, 64)) == 52237108);
+ assert(unsigned(zero_extend(0x31d1338, 64)) == 52237112);
+ assert(unsigned(zero_extend(0x31d133c, 64)) == 52237116);
+ assert(unsigned(zero_extend(0x31d1340, 64)) == 52237120);
+ assert(unsigned(zero_extend(0x31d1344, 64)) == 52237124);
+ assert(unsigned(zero_extend(0x31d1348, 64)) == 52237128);
+ assert(unsigned(zero_extend(0x31d134c, 64)) == 52237132);
+ assert(unsigned(zero_extend(0x31d1350, 64)) == 52237136);
+ assert(unsigned(zero_extend(0x31d1354, 64)) == 52237140);
+ assert(unsigned(zero_extend(0x31d1358, 64)) == 52237144);
+ assert(unsigned(zero_extend(0x31d135c, 64)) == 52237148);
+ assert(unsigned(zero_extend(0x31d1360, 64)) == 52237152);
+ assert(unsigned(zero_extend(0x31d1364, 64)) == 52237156);
+ assert(unsigned(zero_extend(0x31d1368, 64)) == 52237160);
+ assert(unsigned(zero_extend(0x31d136c, 64)) == 52237164);
+ assert(unsigned(zero_extend(0x31d1370, 64)) == 52237168);
+ assert(unsigned(zero_extend(0x31d1374, 64)) == 52237172);
+ assert(unsigned(zero_extend(0x31d1378, 64)) == 52237176);
+ assert(unsigned(zero_extend(0x31d137c, 64)) == 52237180);
+ assert(unsigned(zero_extend(0x31d1380, 64)) == 52237184);
+ assert(unsigned(zero_extend(0x31d1384, 64)) == 52237188);
+ assert(unsigned(zero_extend(0x31d1388, 64)) == 52237192);
+ assert(unsigned(zero_extend(0x31d1390, 64)) == 52237200);
+ assert(unsigned(zero_extend(0x31d1398, 64)) == 52237208);
+ assert(unsigned(zero_extend(0x31d13a0, 64)) == 52237216);
+ assert(unsigned(zero_extend(0x31d13a8, 64)) == 52237224);
+ assert(unsigned(zero_extend(0x31d13b0, 64)) == 52237232);
+ assert(unsigned(zero_extend(0x31d13b8, 64)) == 52237240);
+ assert(unsigned(zero_extend(0x31d13c0, 64)) == 52237248);
+ assert(unsigned(zero_extend(0x31d13c8, 64)) == 52237256);
+ assert(unsigned(zero_extend(0x31d13d0, 64)) == 52237264);
+ assert(unsigned(zero_extend(0x31d13d8, 64)) == 52237272);
+ assert(unsigned(zero_extend(0x31d13e0, 64)) == 52237280);
+ assert(unsigned(zero_extend(0x31d13e8, 64)) == 52237288);
+ assert(unsigned(zero_extend(0x31d13f0, 64)) == 52237296);
+ assert(unsigned(zero_extend(0x31d13f8, 64)) == 52237304);
+ assert(unsigned(zero_extend(0x31d1400, 64)) == 52237312);
+ assert(unsigned(zero_extend(0x31d1408, 64)) == 52237320);
+ assert(unsigned(zero_extend(0x31d1410, 64)) == 52237328);
+ assert(unsigned(zero_extend(0x31d1418, 64)) == 52237336);
+ assert(unsigned(zero_extend(0x31d1420, 64)) == 52237344);
+ assert(unsigned(zero_extend(0x31d1428, 64)) == 52237352);
+ assert(unsigned(zero_extend(0x31d1430, 64)) == 52237360);
+ assert(unsigned(zero_extend(0x31d1438, 64)) == 52237368);
+ assert(unsigned(zero_extend(0x31d1440, 64)) == 52237376);
+ assert(unsigned(zero_extend(0x31d1448, 64)) == 52237384);
+ assert(unsigned(zero_extend(0x31d1450, 64)) == 52237392);
+ assert(unsigned(zero_extend(0x31d1458, 64)) == 52237400);
+ assert(unsigned(zero_extend(0x31d1460, 64)) == 52237408);
+ assert(unsigned(zero_extend(0x31d1468, 64)) == 52237416);
+ assert(unsigned(zero_extend(0x31d1470, 64)) == 52237424);
+ assert(unsigned(zero_extend(0x31d1478, 64)) == 52237432);
+ assert(unsigned(zero_extend(0x31d1480, 64)) == 52237440);
+ assert(unsigned(zero_extend(0x31d1488, 64)) == 52237448);
+ assert(unsigned(zero_extend(0x31d1490, 64)) == 52237456);
+ assert(unsigned(zero_extend(0x31d1498, 64)) == 52237464);
+ assert(unsigned(zero_extend(0x31d14a0, 64)) == 52237472);
+ assert(unsigned(zero_extend(0x31d14a8, 64)) == 52237480);
+ assert(unsigned(zero_extend(0x31d14b0, 64)) == 52237488);
+ assert(unsigned(zero_extend(0x31d14b8, 64)) == 52237496);
+ assert(unsigned(zero_extend(0x31d14c0, 64)) == 52237504);
+ assert(unsigned(zero_extend(0x31d14c8, 64)) == 52237512);
+ assert(unsigned(zero_extend(0x31d14d0, 64)) == 52237520);
+ assert(unsigned(zero_extend(0x31d14d8, 64)) == 52237528);
+ assert(unsigned(zero_extend(0x31d14e0, 64)) == 52237536);
+ assert(unsigned(zero_extend(0x31d14e8, 64)) == 52237544);
+ assert(unsigned(zero_extend(0x31d14f0, 64)) == 52237552);
+ assert(unsigned(zero_extend(0x31d14f8, 64)) == 52237560);
+ assert(unsigned(zero_extend(0x31d1500, 64)) == 52237568);
+ assert(unsigned(zero_extend(0x31d1508, 64)) == 52237576);
+ assert(unsigned(zero_extend(0x31d1510, 64)) == 52237584);
+ assert(unsigned(zero_extend(0x31d1518, 64)) == 52237592);
+ assert(unsigned(zero_extend(0x31d1520, 64)) == 52237600);
+ assert(unsigned(zero_extend(0x31d1528, 64)) == 52237608);
+ assert(unsigned(zero_extend(0x31d1530, 64)) == 52237616);
+ assert(unsigned(zero_extend(0x31d1538, 64)) == 52237624);
+ assert(unsigned(zero_extend(0x31d1540, 64)) == 52237632);
+ assert(unsigned(zero_extend(0x31d1548, 64)) == 52237640);
+ assert(unsigned(zero_extend(0x31d1550, 64)) == 52237648);
+ assert(unsigned(zero_extend(0x31d1558, 64)) == 52237656);
+ assert(unsigned(zero_extend(0x31d1560, 64)) == 52237664);
+ assert(unsigned(zero_extend(0x31d1568, 64)) == 52237672);
+ assert(unsigned(zero_extend(0x31d1570, 64)) == 52237680);
+ assert(unsigned(zero_extend(0x31d1578, 64)) == 52237688);
+ assert(unsigned(zero_extend(0x31d1580, 64)) == 52237696);
+ assert(unsigned(zero_extend(0x31d1588, 64)) == 52237704);
+ assert(unsigned(zero_extend(0x31d1590, 64)) == 52237712);
+ assert(unsigned(zero_extend(0x31d1598, 64)) == 52237720);
+ assert(unsigned(zero_extend(0x31d15a0, 64)) == 52237728);
+ assert(unsigned(zero_extend(0x31d15a8, 64)) == 52237736);
+ assert(unsigned(zero_extend(0x31d15b0, 64)) == 52237744);
+ assert(unsigned(zero_extend(0x31d15b8, 64)) == 52237752);
+ assert(unsigned(zero_extend(0x31d15c0, 64)) == 52237760);
+ assert(unsigned(zero_extend(0x31d15c8, 64)) == 52237768);
+ assert(unsigned(zero_extend(0x31d15d0, 64)) == 52237776);
+ assert(unsigned(zero_extend(0x31d15d8, 64)) == 52237784);
+ assert(unsigned(zero_extend(0x31d15e0, 64)) == 52237792);
+ assert(unsigned(zero_extend(0x31d15e8, 64)) == 52237800);
+ assert(unsigned(zero_extend(0x31d15f0, 64)) == 52237808);
+ assert(unsigned(zero_extend(0x31d15f8, 64)) == 52237816);
+ assert(unsigned(zero_extend(0x31d1600, 64)) == 52237824);
+ assert(unsigned(zero_extend(0x31d1608, 64)) == 52237832);
+ assert(unsigned(zero_extend(0x31d1610, 64)) == 52237840);
+ assert(unsigned(zero_extend(0x31d1618, 64)) == 52237848);
+ assert(unsigned(zero_extend(0x31d1620, 64)) == 52237856);
+ assert(unsigned(zero_extend(0x31d1628, 64)) == 52237864);
+ assert(unsigned(zero_extend(0x31d1630, 64)) == 52237872);
+ assert(unsigned(zero_extend(0x31d1638, 64)) == 52237880);
+ assert(unsigned(zero_extend(0x31d1640, 64)) == 52237888);
+ assert(unsigned(zero_extend(0x31d1648, 64)) == 52237896);
+ assert(unsigned(zero_extend(0x31d1650, 64)) == 52237904);
+ assert(unsigned(zero_extend(0x31d1658, 64)) == 52237912);
+ assert(unsigned(zero_extend(0x31d1660, 64)) == 52237920);
+ assert(unsigned(zero_extend(0x31d1668, 64)) == 52237928);
+ assert(unsigned(zero_extend(0x31d1670, 64)) == 52237936);
+ assert(unsigned(zero_extend(0x31d1678, 64)) == 52237944);
+ assert(unsigned(zero_extend(0x31d1680, 64)) == 52237952);
+ assert(unsigned(zero_extend(0x31d1688, 64)) == 52237960);
+ assert(unsigned(zero_extend(0x31d1690, 64)) == 52237968);
+ assert(unsigned(zero_extend(0x31d1698, 64)) == 52237976);
+ assert(unsigned(zero_extend(0x31d16a0, 64)) == 52237984);
+ assert(unsigned(zero_extend(0x31d16a8, 64)) == 52237992);
+ assert(unsigned(zero_extend(0x31d16b0, 64)) == 52238000);
+ assert(unsigned(zero_extend(0x31d16b8, 64)) == 52238008);
+ assert(unsigned(zero_extend(0x31d16c0, 64)) == 52238016);
+ assert(unsigned(zero_extend(0x31d16c8, 64)) == 52238024);
+ assert(unsigned(zero_extend(0x31d16d0, 64)) == 52238032);
+ assert(unsigned(zero_extend(0x31d16d8, 64)) == 52238040);
+ assert(unsigned(zero_extend(0x31d16e0, 64)) == 52238048);
+ assert(unsigned(zero_extend(0x31d16e8, 64)) == 52238056);
+ assert(unsigned(zero_extend(0x31d16f0, 64)) == 52238064);
+ assert(unsigned(zero_extend(0x31d16f8, 64)) == 52238072);
+ assert(unsigned(zero_extend(0x31d1700, 64)) == 52238080);
+ assert(unsigned(zero_extend(0x31d1708, 64)) == 52238088);
+ assert(unsigned(zero_extend(0x31d1710, 64)) == 52238096);
+ assert(unsigned(zero_extend(0x31d1718, 64)) == 52238104);
+ assert(unsigned(zero_extend(0x31d1720, 64)) == 52238112);
+ assert(unsigned(zero_extend(0x31d1728, 64)) == 52238120);
+ assert(unsigned(zero_extend(0x31d1730, 64)) == 52238128);
+ assert(unsigned(zero_extend(0x31d1738, 64)) == 52238136);
+ assert(unsigned(zero_extend(0x31d1740, 64)) == 52238144);
+ assert(unsigned(zero_extend(0x31d1748, 64)) == 52238152);
+ assert(unsigned(zero_extend(0x31d1750, 64)) == 52238160);
+ assert(unsigned(zero_extend(0x31d1758, 64)) == 52238168);
+ assert(unsigned(zero_extend(0x31d1760, 64)) == 52238176);
+ assert(unsigned(zero_extend(0x31d1768, 64)) == 52238184);
+ assert(unsigned(zero_extend(0x31d1770, 64)) == 52238192);
+ assert(unsigned(zero_extend(0x31d1778, 64)) == 52238200);
+ assert(unsigned(zero_extend(0x31d1780, 64)) == 52238208);
+ assert(unsigned(zero_extend(0x31d17d0, 64)) == 52238288);
+ assert(unsigned(zero_extend(0x31d17d4, 64)) == 52238292);
+ assert(unsigned(zero_extend(0x31d17e0, 64)) == 52238304);
+ assert(unsigned(zero_extend(0x31d17e8, 64)) == 52238312);
+ assert(unsigned(zero_extend(0x31d17f0, 64)) == 52238320);
+ assert(unsigned(zero_extend(0x31d17f4, 64)) == 52238324);
+ assert(unsigned(zero_extend(0x31d17f8, 64)) == 52238328);
+ assert(unsigned(zero_extend(0x31d1800, 64)) == 52238336);
+ assert(unsigned(zero_extend(0x31d1808, 64)) == 52238344);
+ assert(unsigned(zero_extend(0x31d1810, 64)) == 52238352);
+ assert(unsigned(zero_extend(0x31d1818, 64)) == 52238360);
+ assert(unsigned(zero_extend(0x31d1820, 64)) == 52238368);
+ assert(unsigned(zero_extend(0x31d1828, 64)) == 52238376);
+ assert(unsigned(zero_extend(0x31d1830, 64)) == 52238384);
+ assert(unsigned(zero_extend(0x31d1838, 64)) == 52238392);
+ assert(unsigned(zero_extend(0x31d1840, 64)) == 52238400);
+ assert(unsigned(zero_extend(0x31d1848, 64)) == 52238408);
+ assert(unsigned(zero_extend(0x31d1850, 64)) == 52238416);
+ assert(unsigned(zero_extend(0x31d1858, 64)) == 52238424);
+ assert(unsigned(zero_extend(0x31d1860, 64)) == 52238432);
+ assert(unsigned(zero_extend(0x31d1868, 64)) == 52238440);
+ assert(unsigned(zero_extend(0x31d1870, 64)) == 52238448);
+ assert(unsigned(zero_extend(0x31d1878, 64)) == 52238456);
+ assert(unsigned(zero_extend(0x31d1880, 64)) == 52238464);
+ assert(unsigned(zero_extend(0x31d1888, 64)) == 52238472);
+ assert(unsigned(zero_extend(0x31d1890, 64)) == 52238480);
+ assert(unsigned(zero_extend(0x31d1898, 64)) == 52238488);
+ assert(unsigned(zero_extend(0x31d18a0, 64)) == 52238496);
+ assert(unsigned(zero_extend(0x31d18a8, 64)) == 52238504);
+ assert(unsigned(zero_extend(0x31d18b0, 64)) == 52238512);
+ assert(unsigned(zero_extend(0x31d18b8, 64)) == 52238520);
+ assert(unsigned(zero_extend(0x31d18c0, 64)) == 52238528);
+ assert(unsigned(zero_extend(0x31d18d0, 64)) == 52238544);
+ assert(unsigned(zero_extend(0x31d18d8, 64)) == 52238552);
+ assert(unsigned(zero_extend(0x31d18e0, 64)) == 52238560);
+ assert(unsigned(zero_extend(0x31d18e8, 64)) == 52238568);
+ assert(unsigned(zero_extend(0x31d18f0, 64)) == 52238576);
+ assert(unsigned(zero_extend(0x31d18f8, 64)) == 52238584);
+ assert(unsigned(zero_extend(0x31d1900, 64)) == 52238592);
+ assert(unsigned(zero_extend(0x31d1908, 64)) == 52238600);
+ assert(unsigned(zero_extend(0x31d1910, 64)) == 52238608);
+ assert(unsigned(zero_extend(0x31d1918, 64)) == 52238616);
+ assert(unsigned(zero_extend(0x31d1920, 64)) == 52238624);
+ assert(unsigned(zero_extend(0x31d1928, 64)) == 52238632);
+ assert(unsigned(zero_extend(0x31d1930, 64)) == 52238640);
+ assert(unsigned(zero_extend(0x31d1938, 64)) == 52238648);
+ assert(unsigned(zero_extend(0x31d1940, 64)) == 52238656);
+ assert(unsigned(zero_extend(0x31d1948, 64)) == 52238664);
+ assert(unsigned(zero_extend(0x31d1950, 64)) == 52238672);
+ assert(unsigned(zero_extend(0x31d1958, 64)) == 52238680);
+ assert(unsigned(zero_extend(0x31d1960, 64)) == 52238688);
+ assert(unsigned(zero_extend(0x31d1968, 64)) == 52238696);
+ assert(unsigned(zero_extend(0x31d1970, 64)) == 52238704);
+ assert(unsigned(zero_extend(0x31d1980, 64)) == 52238720);
+ assert(unsigned(zero_extend(0x31d1b80, 64)) == 52239232);
+ assert(unsigned(zero_extend(0x31d1b88, 64)) == 52239240);
+ assert(unsigned(zero_extend(0x31d1b90, 64)) == 52239248);
+ assert(unsigned(zero_extend(0x31d1b98, 64)) == 52239256);
+ assert(unsigned(zero_extend(0x31d1ba0, 64)) == 52239264);
+ assert(unsigned(zero_extend(0x31d1ba8, 64)) == 52239272);
+ assert(unsigned(zero_extend(0x31d1bb0, 64)) == 52239280);
+ assert(unsigned(zero_extend(0x31d1bb8, 64)) == 52239288);
+ assert(unsigned(zero_extend(0x31d1bc0, 64)) == 52239296);
+ assert(unsigned(zero_extend(0x31d1bc8, 64)) == 52239304);
+ assert(unsigned(zero_extend(0x31d1bd0, 64)) == 52239312);
+ assert(unsigned(zero_extend(0x31d1bd8, 64)) == 52239320);
+ assert(unsigned(zero_extend(0x31d1be0, 64)) == 52239328);
+ assert(unsigned(zero_extend(0x31d1be8, 64)) == 52239336);
+ assert(unsigned(zero_extend(0x31d1bf0, 64)) == 52239344);
+ assert(unsigned(zero_extend(0x31d1bf8, 64)) == 52239352);
+ assert(unsigned(zero_extend(0x31d1c00, 64)) == 52239360);
+ assert(unsigned(zero_extend(0x31d1c08, 64)) == 52239368);
+ assert(unsigned(zero_extend(0x31d1c10, 64)) == 52239376);
+ assert(unsigned(zero_extend(0x31d1c18, 64)) == 52239384);
+ assert(unsigned(zero_extend(0x31d1c20, 64)) == 52239392);
+ assert(unsigned(zero_extend(0x31d1c28, 64)) == 52239400);
+ assert(unsigned(zero_extend(0x31d1c2c, 64)) == 52239404);
+ assert(unsigned(zero_extend(0x31d1c30, 64)) == 52239408);
+ assert(unsigned(zero_extend(0x31d1c34, 64)) == 52239412);
+ assert(unsigned(zero_extend(0x31d1c38, 64)) == 52239416);
+ assert(unsigned(zero_extend(0x31d1c3c, 64)) == 52239420);
+ assert(unsigned(zero_extend(0x31d1c40, 64)) == 52239424);
+ assert(unsigned(zero_extend(0x31d1c44, 64)) == 52239428);
+ assert(unsigned(zero_extend(0x31d1c48, 64)) == 52239432);
+ assert(unsigned(zero_extend(0x31d1c4c, 64)) == 52239436);
+ assert(unsigned(zero_extend(0x31d1c50, 64)) == 52239440);
+ assert(unsigned(zero_extend(0x31d1c54, 64)) == 52239444);
+ assert(unsigned(zero_extend(0x31d1c58, 64)) == 52239448);
+ assert(unsigned(zero_extend(0x31d1c5c, 64)) == 52239452);
+ assert(unsigned(zero_extend(0x31d1c60, 64)) == 52239456);
+ assert(unsigned(zero_extend(0x31d1c64, 64)) == 52239460);
+ assert(unsigned(zero_extend(0x31d1c68, 64)) == 52239464);
+ assert(unsigned(zero_extend(0x31d1c6c, 64)) == 52239468);
+ assert(unsigned(zero_extend(0x31d1c70, 64)) == 52239472);
+ assert(unsigned(zero_extend(0x31d1c74, 64)) == 52239476);
+ assert(unsigned(zero_extend(0x31d1c78, 64)) == 52239480);
+ assert(unsigned(zero_extend(0x32, 64)) == 50);
+ assert(unsigned(zero_extend(0x320, 64)) == 800);
+ assert(unsigned(zero_extend(0x33, 64)) == 51);
+ assert(unsigned(zero_extend(0x34, 64)) == 52);
+ assert(unsigned(zero_extend(0x34000, 64)) == 212992);
+ assert(unsigned(zero_extend(0x34040, 64)) == 213056);
+ assert(unsigned(zero_extend(0x35, 64)) == 53);
+ assert(unsigned(zero_extend(0x36, 64)) == 54);
+ assert(unsigned(zero_extend(0x368, 64)) == 872);
+ assert(unsigned(zero_extend(0x37, 64)) == 55);
+ assert(unsigned(zero_extend(0x38, 64)) == 56);
+ assert(unsigned(zero_extend(0x3800000, 64)) == 58720256);
+ assert(unsigned(zero_extend(0x380000a, 64)) == 58720266);
+ assert(unsigned(zero_extend(0x3800010, 64)) == 58720272);
+ assert(unsigned(zero_extend(0x3800011, 64)) == 58720273);
+ assert(unsigned(zero_extend(0x3800012, 64)) == 58720274);
+ assert(unsigned(zero_extend(0x3800013, 64)) == 58720275);
+ assert(unsigned(zero_extend(0x3800018, 64)) == 58720280);
+ assert(unsigned(zero_extend(0x3800038, 64)) == 58720312);
+ assert(unsigned(zero_extend(0x380003a, 64)) == 58720314);
+ assert(unsigned(zero_extend(0x380003b, 64)) == 58720315);
+ assert(unsigned(zero_extend(0x380003c, 64)) == 58720316);
+ assert(unsigned(zero_extend(0x380003d, 64)) == 58720317);
+ assert(unsigned(zero_extend(0x3800040, 64)) == 58720320);
+ assert(unsigned(zero_extend(0x380004b, 64)) == 58720331);
+ assert(unsigned(zero_extend(0x380004c, 64)) == 58720332);
+ assert(unsigned(zero_extend(0x380004d, 64)) == 58720333);
+ assert(unsigned(zero_extend(0x380004e, 64)) == 58720334);
+ assert(unsigned(zero_extend(0x3800050, 64)) == 58720336);
+ assert(unsigned(zero_extend(0x3800060, 64)) == 58720352);
+ assert(unsigned(zero_extend(0x38002c0, 64)) == 58720960);
+ assert(unsigned(zero_extend(0x38002c8, 64)) == 58720968);
+ assert(unsigned(zero_extend(0x38002d0, 64)) == 58720976);
+ assert(unsigned(zero_extend(0x38002d8, 64)) == 58720984);
+ assert(unsigned(zero_extend(0x38002e0, 64)) == 58720992);
+ assert(unsigned(zero_extend(0x38002e8, 64)) == 58721000);
+ assert(unsigned(zero_extend(0x38002f0, 64)) == 58721008);
+ assert(unsigned(zero_extend(0x38002f8, 64)) == 58721016);
+ assert(unsigned(zero_extend(0x3800300, 64)) == 58721024);
+ assert(unsigned(zero_extend(0x3800310, 64)) == 58721040);
+ assert(unsigned(zero_extend(0x3800318, 64)) == 58721048);
+ assert(unsigned(zero_extend(0x3800320, 64)) == 58721056);
+ assert(unsigned(zero_extend(0x3800328, 64)) == 58721064);
+ assert(unsigned(zero_extend(0x3800330, 64)) == 58721072);
+ assert(unsigned(zero_extend(0x3800338, 64)) == 58721080);
+ assert(unsigned(zero_extend(0x3800340, 64)) == 58721088);
+ assert(unsigned(zero_extend(0x3800350, 64)) == 58721104);
+ assert(unsigned(zero_extend(0x3800358, 64)) == 58721112);
+ assert(unsigned(zero_extend(0x3800360, 64)) == 58721120);
+ assert(unsigned(zero_extend(0x3800368, 64)) == 58721128);
+ assert(unsigned(zero_extend(0x38003a0, 64)) == 58721184);
+ assert(unsigned(zero_extend(0x38003a8, 64)) == 58721192);
+ assert(unsigned(zero_extend(0x38003b0, 64)) == 58721200);
+ assert(unsigned(zero_extend(0x38003b4, 64)) == 58721204);
+ assert(unsigned(zero_extend(0x38003b8, 64)) == 58721208);
+ assert(unsigned(zero_extend(0x38003bc, 64)) == 58721212);
+ assert(unsigned(zero_extend(0x38003c0, 64)) == 58721216);
+ assert(unsigned(zero_extend(0x38003c4, 64)) == 58721220);
+ assert(unsigned(zero_extend(0x38003c8, 64)) == 58721224);
+ assert(unsigned(zero_extend(0x38003cc, 64)) == 58721228);
+ assert(unsigned(zero_extend(0x38003d0, 64)) == 58721232);
+ assert(unsigned(zero_extend(0x38003d4, 64)) == 58721236);
+ assert(unsigned(zero_extend(0x38003d8, 64)) == 58721240);
+ assert(unsigned(zero_extend(0x38003dc, 64)) == 58721244);
+ assert(unsigned(zero_extend(0x38003e0, 64)) == 58721248);
+ assert(unsigned(zero_extend(0x38003e4, 64)) == 58721252);
+ assert(unsigned(zero_extend(0x38003e8, 64)) == 58721256);
+ assert(unsigned(zero_extend(0x38003ec, 64)) == 58721260);
+ assert(unsigned(zero_extend(0x38003f0, 64)) == 58721264);
+ assert(unsigned(zero_extend(0x38003f8, 64)) == 58721272);
+ assert(unsigned(zero_extend(0x3800400, 64)) == 58721280);
+ assert(unsigned(zero_extend(0x3800408, 64)) == 58721288);
+ assert(unsigned(zero_extend(0x3800410, 64)) == 58721296);
+ assert(unsigned(zero_extend(0x3800418, 64)) == 58721304);
+ assert(unsigned(zero_extend(0x3800420, 64)) == 58721312);
+ assert(unsigned(zero_extend(0x3800428, 64)) == 58721320);
+ assert(unsigned(zero_extend(0x3800430, 64)) == 58721328);
+ assert(unsigned(zero_extend(0x3800438, 64)) == 58721336);
+ assert(unsigned(zero_extend(0x3800440, 64)) == 58721344);
+ assert(unsigned(zero_extend(0x3800448, 64)) == 58721352);
+ assert(unsigned(zero_extend(0x3800450, 64)) == 58721360);
+ assert(unsigned(zero_extend(0x3800458, 64)) == 58721368);
+ assert(unsigned(zero_extend(0x3800460, 64)) == 58721376);
+ assert(unsigned(zero_extend(0x3808060, 64)) == 58753120);
+ assert(unsigned(zero_extend(0x3808064, 64)) == 58753124);
+ assert(unsigned(zero_extend(0x3808068, 64)) == 58753128);
+ assert(unsigned(zero_extend(0x3808070, 64)) == 58753136);
+ assert(unsigned(zero_extend(0x3808078, 64)) == 58753144);
+ assert(unsigned(zero_extend(0x3808080, 64)) == 58753152);
+ assert(unsigned(zero_extend(0x3808140, 64)) == 58753344);
+ assert(unsigned(zero_extend(0x3808148, 64)) == 58753352);
+ assert(unsigned(zero_extend(0x3808248, 64)) == 58753608);
+ assert(unsigned(zero_extend(0x3808250, 64)) == 58753616);
+ assert(unsigned(zero_extend(0x3808258, 64)) == 58753624);
+ assert(unsigned(zero_extend(0x3808a00, 64)) == 58755584);
+ assert(unsigned(zero_extend(0x3808a04, 64)) == 58755588);
+ assert(unsigned(zero_extend(0x3808a08, 64)) == 58755592);
+ assert(unsigned(zero_extend(0x3808a10, 64)) == 58755600);
+ assert(unsigned(zero_extend(0x3808a18, 64)) == 58755608);
+ assert(unsigned(zero_extend(0x3808a20, 64)) == 58755616);
+ assert(unsigned(zero_extend(0x3808a70, 64)) == 58755696);
+ assert(unsigned(zero_extend(0x3808a78, 64)) == 58755704);
+ assert(unsigned(zero_extend(0x3808b78, 64)) == 58755960);
+ assert(unsigned(zero_extend(0x3808b80, 64)) == 58755968);
+ assert(unsigned(zero_extend(0x380d000, 64)) == 58773504);
+ assert(unsigned(zero_extend(0x380d610, 64)) == 58775056);
+ assert(unsigned(zero_extend(0x380d880, 64)) == 58775680);
+ assert(unsigned(zero_extend(0x380d888, 64)) == 58775688);
+ assert(unsigned(zero_extend(0x380d890, 64)) == 58775696);
+ assert(unsigned(zero_extend(0x380d898, 64)) == 58775704);
+ assert(unsigned(zero_extend(0x380d8a0, 64)) == 58775712);
+ assert(unsigned(zero_extend(0x380d8a8, 64)) == 58775720);
+ assert(unsigned(zero_extend(0x380d8b0, 64)) == 58775728);
+ assert(unsigned(zero_extend(0x380d8b8, 64)) == 58775736);
+ assert(unsigned(zero_extend(0x380d8c0, 64)) == 58775744);
+ assert(unsigned(zero_extend(0x380d8c8, 64)) == 58775752);
+ assert(unsigned(zero_extend(0x380d8d0, 64)) == 58775760);
+ assert(unsigned(zero_extend(0x380d8d8, 64)) == 58775768);
+ assert(unsigned(zero_extend(0x380d8e0, 64)) == 58775776);
+ assert(unsigned(zero_extend(0x380d8e8, 64)) == 58775784);
+ assert(unsigned(zero_extend(0x380d8f0, 64)) == 58775792);
+ assert(unsigned(zero_extend(0x380d8f8, 64)) == 58775800);
+ assert(unsigned(zero_extend(0x380d900, 64)) == 58775808);
+ assert(unsigned(zero_extend(0x380d908, 64)) == 58775816);
+ assert(unsigned(zero_extend(0x380d910, 64)) == 58775824);
+ assert(unsigned(zero_extend(0x380d960, 64)) == 58775904);
+ assert(unsigned(zero_extend(0x380d968, 64)) == 58775912);
+ assert(unsigned(zero_extend(0x380d970, 64)) == 58775920);
+ assert(unsigned(zero_extend(0x380d974, 64)) == 58775924);
+ assert(unsigned(zero_extend(0x380d978, 64)) == 58775928);
+ assert(unsigned(zero_extend(0x380d97c, 64)) == 58775932);
+ assert(unsigned(zero_extend(0x380d980, 64)) == 58775936);
+ assert(unsigned(zero_extend(0x380d984, 64)) == 58775940);
+ assert(unsigned(zero_extend(0x380d988, 64)) == 58775944);
+ assert(unsigned(zero_extend(0x380d98c, 64)) == 58775948);
+ assert(unsigned(zero_extend(0x380d990, 64)) == 58775952);
+ assert(unsigned(zero_extend(0x380d994, 64)) == 58775956);
+ assert(unsigned(zero_extend(0x380d998, 64)) == 58775960);
+ assert(unsigned(zero_extend(0x380d99c, 64)) == 58775964);
+ assert(unsigned(zero_extend(0x380d9a0, 64)) == 58775968);
+ assert(unsigned(zero_extend(0x380d9a4, 64)) == 58775972);
+ assert(unsigned(zero_extend(0x380d9a8, 64)) == 58775976);
+ assert(unsigned(zero_extend(0x380d9ac, 64)) == 58775980);
+ assert(unsigned(zero_extend(0x380d9b0, 64)) == 58775984);
+ assert(unsigned(zero_extend(0x380d9b8, 64)) == 58775992);
+ assert(unsigned(zero_extend(0x380d9c0, 64)) == 58776000);
+ assert(unsigned(zero_extend(0x380d9c8, 64)) == 58776008);
+ assert(unsigned(zero_extend(0x380d9d0, 64)) == 58776016);
+ assert(unsigned(zero_extend(0x380d9d8, 64)) == 58776024);
+ assert(unsigned(zero_extend(0x380d9e0, 64)) == 58776032);
+ assert(unsigned(zero_extend(0x380d9e8, 64)) == 58776040);
+ assert(unsigned(zero_extend(0x380d9f0, 64)) == 58776048);
+ assert(unsigned(zero_extend(0x380d9f8, 64)) == 58776056);
+ assert(unsigned(zero_extend(0x380da00, 64)) == 58776064);
+ assert(unsigned(zero_extend(0x380da08, 64)) == 58776072);
+ assert(unsigned(zero_extend(0x380da10, 64)) == 58776080);
+ assert(unsigned(zero_extend(0x3811610, 64)) == 58791440);
+ assert(unsigned(zero_extend(0x3813610, 64)) == 58799632);
+ assert(unsigned(zero_extend(0x3815610, 64)) == 58807824);
+ assert(unsigned(zero_extend(0x3815618, 64)) == 58807832);
+ assert(unsigned(zero_extend(0x3815624, 64)) == 58807844);
+ assert(unsigned(zero_extend(0x3815628, 64)) == 58807848);
+ assert(unsigned(zero_extend(0x3815630, 64)) == 58807856);
+ assert(unsigned(zero_extend(0x3815638, 64)) == 58807864);
+ assert(unsigned(zero_extend(0x381563c, 64)) == 58807868);
+ assert(unsigned(zero_extend(0x3815640, 64)) == 58807872);
+ assert(unsigned(zero_extend(0x3815648, 64)) == 58807880);
+ assert(unsigned(zero_extend(0x3815650, 64)) == 58807888);
+ assert(unsigned(zero_extend(0x3815658, 64)) == 58807896);
+ assert(unsigned(zero_extend(0x3815668, 64)) == 58807912);
+ assert(unsigned(zero_extend(0x3815670, 64)) == 58807920);
+ assert(unsigned(zero_extend(0x3815678, 64)) == 58807928);
+ assert(unsigned(zero_extend(0x3815778, 64)) == 58808184);
+ assert(unsigned(zero_extend(0x3815780, 64)) == 58808192);
+ assert(unsigned(zero_extend(0x3815b50, 64)) == 58809168);
+ assert(unsigned(zero_extend(0x3815b58, 64)) == 58809176);
+ assert(unsigned(zero_extend(0x3815c58, 64)) == 58809432);
+ assert(unsigned(zero_extend(0x3815c60, 64)) == 58809440);
+ assert(unsigned(zero_extend(0x3815d80, 64)) == 58809728);
+ assert(unsigned(zero_extend(0x3817d80, 64)) == 58817920);
+ assert(unsigned(zero_extend(0x3819d80, 64)) == 58826112);
+ assert(unsigned(zero_extend(0x3819d84, 64)) == 58826116);
+ assert(unsigned(zero_extend(0x3819d88, 64)) == 58826120);
+ assert(unsigned(zero_extend(0x3819d8c, 64)) == 58826124);
+ assert(unsigned(zero_extend(0x3819d90, 64)) == 58826128);
+ assert(unsigned(zero_extend(0x3819d98, 64)) == 58826136);
+ assert(unsigned(zero_extend(0x3819da0, 64)) == 58826144);
+ assert(unsigned(zero_extend(0x3819da8, 64)) == 58826152);
+ assert(unsigned(zero_extend(0x3819db8, 64)) == 58826168);
+ assert(unsigned(zero_extend(0x3819dc0, 64)) == 58826176);
+ assert(unsigned(zero_extend(0x3819dc8, 64)) == 58826184);
+ assert(unsigned(zero_extend(0x3819ed0, 64)) == 58826448);
+ assert(unsigned(zero_extend(0x381a000, 64)) == 58826752);
+ assert(unsigned(zero_extend(0x381a280, 64)) == 58827392);
+ assert(unsigned(zero_extend(0x381a284, 64)) == 58827396);
+ assert(unsigned(zero_extend(0x381a288, 64)) == 58827400);
+ assert(unsigned(zero_extend(0x381a28c, 64)) == 58827404);
+ assert(unsigned(zero_extend(0x381a290, 64)) == 58827408);
+ assert(unsigned(zero_extend(0x381a298, 64)) == 58827416);
+ assert(unsigned(zero_extend(0x381a2a0, 64)) == 58827424);
+ assert(unsigned(zero_extend(0x381a2a8, 64)) == 58827432);
+ assert(unsigned(zero_extend(0x381a2b8, 64)) == 58827448);
+ assert(unsigned(zero_extend(0x381a2c0, 64)) == 58827456);
+ assert(unsigned(zero_extend(0x381a2c8, 64)) == 58827464);
+ assert(unsigned(zero_extend(0x381a3c8, 64)) == 58827720);
+ assert(unsigned(zero_extend(0x381a3d0, 64)) == 58827728);
+ assert(unsigned(zero_extend(0x381a4f0, 64)) == 58828016);
+ assert(unsigned(zero_extend(0x381a780, 64)) == 58828672);
+ assert(unsigned(zero_extend(0x381a784, 64)) == 58828676);
+ assert(unsigned(zero_extend(0x381a788, 64)) == 58828680);
+ assert(unsigned(zero_extend(0x381a790, 64)) == 58828688);
+ assert(unsigned(zero_extend(0x381a798, 64)) == 58828696);
+ assert(unsigned(zero_extend(0x381a7a0, 64)) == 58828704);
+ assert(unsigned(zero_extend(0x381a7a4, 64)) == 58828708);
+ assert(unsigned(zero_extend(0x381a7ac, 64)) == 58828716);
+ assert(unsigned(zero_extend(0x381a7b0, 64)) == 58828720);
+ assert(unsigned(zero_extend(0x381a7b8, 64)) == 58828728);
+ assert(unsigned(zero_extend(0x381a7c0, 64)) == 58828736);
+ assert(unsigned(zero_extend(0x381a7c8, 64)) == 58828744);
+ assert(unsigned(zero_extend(0x381a7d8, 64)) == 58828760);
+ assert(unsigned(zero_extend(0x381a7e0, 64)) == 58828768);
+ assert(unsigned(zero_extend(0x381a8e0, 64)) == 58829024);
+ assert(unsigned(zero_extend(0x381a8e8, 64)) == 58829032);
+ assert(unsigned(zero_extend(0x381aa08, 64)) == 58829320);
+ assert(unsigned(zero_extend(0x381acb0, 64)) == 58830000);
+ assert(unsigned(zero_extend(0x381acb8, 64)) == 58830008);
+ assert(unsigned(zero_extend(0x381adb8, 64)) == 58830264);
+ assert(unsigned(zero_extend(0x381adc0, 64)) == 58830272);
+ assert(unsigned(zero_extend(0x381aee0, 64)) == 58830560);
+ assert(unsigned(zero_extend(0x381aee4, 64)) == 58830564);
+ assert(unsigned(zero_extend(0x381aee8, 64)) == 58830568);
+ assert(unsigned(zero_extend(0x381af00, 64)) == 58830592);
+ assert(unsigned(zero_extend(0x381b150, 64)) == 58831184);
+ assert(unsigned(zero_extend(0x381b158, 64)) == 58831192);
+ assert(unsigned(zero_extend(0x381b160, 64)) == 58831200);
+ assert(unsigned(zero_extend(0x381b168, 64)) == 58831208);
+ assert(unsigned(zero_extend(0x381b170, 64)) == 58831216);
+ assert(unsigned(zero_extend(0x381b178, 64)) == 58831224);
+ assert(unsigned(zero_extend(0x381b180, 64)) == 58831232);
+ assert(unsigned(zero_extend(0x381b188, 64)) == 58831240);
+ assert(unsigned(zero_extend(0x381b190, 64)) == 58831248);
+ assert(unsigned(zero_extend(0x381b1a0, 64)) == 58831264);
+ assert(unsigned(zero_extend(0x381b1a8, 64)) == 58831272);
+ assert(unsigned(zero_extend(0x381b1b0, 64)) == 58831280);
+ assert(unsigned(zero_extend(0x381b1b8, 64)) == 58831288);
+ assert(unsigned(zero_extend(0x381b1c0, 64)) == 58831296);
+ assert(unsigned(zero_extend(0x381b1c8, 64)) == 58831304);
+ assert(unsigned(zero_extend(0x381b1d0, 64)) == 58831312);
+ assert(unsigned(zero_extend(0x381b1d8, 64)) == 58831320);
+ assert(unsigned(zero_extend(0x381b1e0, 64)) == 58831328);
+ assert(unsigned(zero_extend(0x381b1e8, 64)) == 58831336);
+ assert(unsigned(zero_extend(0x381b1f0, 64)) == 58831344);
+ assert(unsigned(zero_extend(0x381b1f8, 64)) == 58831352);
+ assert(unsigned(zero_extend(0x381b200, 64)) == 58831360);
+ assert(unsigned(zero_extend(0x381b240, 64)) == 58831424);
+ assert(unsigned(zero_extend(0x381b248, 64)) == 58831432);
+ assert(unsigned(zero_extend(0x381b250, 64)) == 58831440);
+ assert(unsigned(zero_extend(0x381b254, 64)) == 58831444);
+ assert(unsigned(zero_extend(0x381b258, 64)) == 58831448);
+ assert(unsigned(zero_extend(0x381b25c, 64)) == 58831452);
+ assert(unsigned(zero_extend(0x381b260, 64)) == 58831456);
+ assert(unsigned(zero_extend(0x381b264, 64)) == 58831460);
+ assert(unsigned(zero_extend(0x381b268, 64)) == 58831464);
+ assert(unsigned(zero_extend(0x381b26c, 64)) == 58831468);
+ assert(unsigned(zero_extend(0x381b270, 64)) == 58831472);
+ assert(unsigned(zero_extend(0x381b274, 64)) == 58831476);
+ assert(unsigned(zero_extend(0x381b278, 64)) == 58831480);
+ assert(unsigned(zero_extend(0x381b27c, 64)) == 58831484);
+ assert(unsigned(zero_extend(0x381b280, 64)) == 58831488);
+ assert(unsigned(zero_extend(0x381b284, 64)) == 58831492);
+ assert(unsigned(zero_extend(0x381b288, 64)) == 58831496);
+ assert(unsigned(zero_extend(0x381b28c, 64)) == 58831500);
+ assert(unsigned(zero_extend(0x381b290, 64)) == 58831504);
+ assert(unsigned(zero_extend(0x381b298, 64)) == 58831512);
+ assert(unsigned(zero_extend(0x381b2a0, 64)) == 58831520);
+ assert(unsigned(zero_extend(0x381b2a8, 64)) == 58831528);
+ assert(unsigned(zero_extend(0x381b2b0, 64)) == 58831536);
+ assert(unsigned(zero_extend(0x381b2b8, 64)) == 58831544);
+ assert(unsigned(zero_extend(0x381b2c0, 64)) == 58831552);
+ assert(unsigned(zero_extend(0x381b2c8, 64)) == 58831560);
+ assert(unsigned(zero_extend(0x381b2d0, 64)) == 58831568);
+ assert(unsigned(zero_extend(0x381b2d8, 64)) == 58831576);
+ assert(unsigned(zero_extend(0x381b2e0, 64)) == 58831584);
+ assert(unsigned(zero_extend(0x381b2e8, 64)) == 58831592);
+ assert(unsigned(zero_extend(0x381b2f0, 64)) == 58831600);
+ assert(unsigned(zero_extend(0x381b2f8, 64)) == 58831608);
+ assert(unsigned(zero_extend(0x381b300, 64)) == 58831616);
+ assert(unsigned(zero_extend(0x39, 64)) == 57);
+ assert(unsigned(zero_extend(0x3a, 64)) == 58);
+ assert(unsigned(zero_extend(0x3b, 64)) == 59);
+ assert(unsigned(zero_extend(0x3c, 64)) == 60);
+ assert(unsigned(zero_extend(0x3d, 64)) == 61);
+ assert(unsigned(zero_extend(0x3e, 64)) == 62);
+ assert(unsigned(zero_extend(0x3f, 64)) == 63);
+ assert(unsigned(zero_extend(0x3ff83ff83ff83ff8, 64)) == 4609504554071375864);
+ assert(unsigned(zero_extend(0x3fff, 64)) == 16383);
+ assert(unsigned(zero_extend(0x3ffffffff, 64)) == 17179869183);
+ assert(unsigned(zero_extend(0x4, 64)) == 4);
+ assert(unsigned(zero_extend(0x40, 64)) == 64);
+ assert(unsigned(zero_extend(0x400, 64)) == 1024);
+ assert(unsigned(zero_extend(0x4000, 64)) == 16384);
+ assert(unsigned(zero_extend(0x400000000, 64)) == 17179869184);
+ assert(unsigned(zero_extend(0x41, 64)) == 65);
+ assert(unsigned(zero_extend(0x42, 64)) == 66);
+ assert(unsigned(zero_extend(0x43, 64)) == 67);
+ assert(unsigned(zero_extend(0x44, 64)) == 68);
+ assert(unsigned(zero_extend(0x45, 64)) == 69);
+ assert(unsigned(zero_extend(0x46, 64)) == 70);
+ assert(unsigned(zero_extend(0x47, 64)) == 71);
+ assert(unsigned(zero_extend(0x48, 64)) == 72);
+ assert(unsigned(zero_extend(0x49, 64)) == 73);
+ assert(unsigned(zero_extend(0x4a, 64)) == 74);
+ assert(unsigned(zero_extend(0x4b, 64)) == 75);
+ assert(unsigned(zero_extend(0x4c, 64)) == 76);
+ assert(unsigned(zero_extend(0x4c000, 64)) == 311296);
+ assert(unsigned(zero_extend(0x4c800, 64)) == 313344);
+ assert(unsigned(zero_extend(0x4d, 64)) == 77);
+ assert(unsigned(zero_extend(0x4e, 64)) == 78);
+ assert(unsigned(zero_extend(0x4f, 64)) == 79);
+ assert(unsigned(zero_extend(0x5, 64)) == 5);
+ assert(unsigned(zero_extend(0x50, 64)) == 80);
+ assert(unsigned(zero_extend(0x51, 64)) == 81);
+ assert(unsigned(zero_extend(0x52, 64)) == 82);
+ assert(unsigned(zero_extend(0x53, 64)) == 83);
+ assert(unsigned(zero_extend(0x530, 64)) == 1328);
+ assert(unsigned(zero_extend(0x54, 64)) == 84);
+ assert(unsigned(zero_extend(0x54000, 64)) == 344064);
+ assert(unsigned(zero_extend(0x55, 64)) == 85);
+ assert(unsigned(zero_extend(0x56, 64)) == 86);
+ assert(unsigned(zero_extend(0x57, 64)) == 87);
+ assert(unsigned(zero_extend(0x58, 64)) == 88);
+ assert(unsigned(zero_extend(0x58000, 64)) == 360448);
+ assert(unsigned(zero_extend(0x59, 64)) == 89);
+ assert(unsigned(zero_extend(0x5a, 64)) == 90);
+ assert(unsigned(zero_extend(0x5a5a, 64)) == 23130);
+ assert(unsigned(zero_extend(0x5a5a5a59, 64)) == 1515870809);
+ assert(unsigned(zero_extend(0x5a5a5a5a, 64)) == 1515870810);
+ assert(unsigned(zero_extend(0x5a5a5a5a5a5a5a59, 64)) == 6510615555426900569);
+ assert(unsigned(zero_extend(0x5a5a5a5a5a5a5a5a, 64)) == 6510615555426900570);
+ assert(unsigned(zero_extend(0x5b, 64)) == 91);
+ assert(unsigned(zero_extend(0x5c, 64)) == 92);
+ assert(unsigned(zero_extend(0x5c000, 64)) == 376832);
+ assert(unsigned(zero_extend(0x5c040, 64)) == 376896);
+ assert(unsigned(zero_extend(0x5d, 64)) == 93);
+ assert(unsigned(zero_extend(0x5e, 64)) == 94);
+ assert(unsigned(zero_extend(0x5f, 64)) == 95);
+ assert(unsigned(zero_extend(0x6, 64)) == 6);
+ assert(unsigned(zero_extend(0x60, 64)) == 96);
+ assert(unsigned(zero_extend(0x61, 64)) == 97);
+ assert(unsigned(zero_extend(0x610, 64)) == 1552);
+ assert(unsigned(zero_extend(0x62, 64)) == 98);
+ assert(unsigned(zero_extend(0x620e000, 64)) == 102817792);
+ assert(unsigned(zero_extend(0x620e010, 64)) == 102817808);
+ assert(unsigned(zero_extend(0x6216000, 64)) == 102850560);
+ assert(unsigned(zero_extend(0x6216001, 64)) == 102850561);
+ assert(unsigned(zero_extend(0x6216002, 64)) == 102850562);
+ assert(unsigned(zero_extend(0x6216003, 64)) == 102850563);
+ assert(unsigned(zero_extend(0x6216004, 64)) == 102850564);
+ assert(unsigned(zero_extend(0x6216005, 64)) == 102850565);
+ assert(unsigned(zero_extend(0x6216006, 64)) == 102850566);
+ assert(unsigned(zero_extend(0x6216007, 64)) == 102850567);
+ assert(unsigned(zero_extend(0x6216008, 64)) == 102850568);
+ assert(unsigned(zero_extend(0x6216009, 64)) == 102850569);
+ assert(unsigned(zero_extend(0x621600a, 64)) == 102850570);
+ assert(unsigned(zero_extend(0x621600b, 64)) == 102850571);
+ assert(unsigned(zero_extend(0x621600c, 64)) == 102850572);
+ assert(unsigned(zero_extend(0x621600d, 64)) == 102850573);
+ assert(unsigned(zero_extend(0x621600e, 64)) == 102850574);
+ assert(unsigned(zero_extend(0x621600f, 64)) == 102850575);
+ assert(unsigned(zero_extend(0x6216030, 64)) == 102850608);
+ assert(unsigned(zero_extend(0x6216031, 64)) == 102850609);
+ assert(unsigned(zero_extend(0x6216032, 64)) == 102850610);
+ assert(unsigned(zero_extend(0x6216033, 64)) == 102850611);
+ assert(unsigned(zero_extend(0x6216034, 64)) == 102850612);
+ assert(unsigned(zero_extend(0x6216035, 64)) == 102850613);
+ assert(unsigned(zero_extend(0x6216036, 64)) == 102850614);
+ assert(unsigned(zero_extend(0x6216037, 64)) == 102850615);
+ assert(unsigned(zero_extend(0x6216038, 64)) == 102850616);
+ assert(unsigned(zero_extend(0x6216039, 64)) == 102850617);
+ assert(unsigned(zero_extend(0x621603a, 64)) == 102850618);
+ assert(unsigned(zero_extend(0x621603b, 64)) == 102850619);
+ assert(unsigned(zero_extend(0x621603c, 64)) == 102850620);
+ assert(unsigned(zero_extend(0x621603d, 64)) == 102850621);
+ assert(unsigned(zero_extend(0x621603e, 64)) == 102850622);
+ assert(unsigned(zero_extend(0x621603f, 64)) == 102850623);
+ assert(unsigned(zero_extend(0x6216040, 64)) == 102850624);
+ assert(unsigned(zero_extend(0x6216041, 64)) == 102850625);
+ assert(unsigned(zero_extend(0x6216042, 64)) == 102850626);
+ assert(unsigned(zero_extend(0x6216043, 64)) == 102850627);
+ assert(unsigned(zero_extend(0x6216044, 64)) == 102850628);
+ assert(unsigned(zero_extend(0x6216045, 64)) == 102850629);
+ assert(unsigned(zero_extend(0x6216046, 64)) == 102850630);
+ assert(unsigned(zero_extend(0x6216047, 64)) == 102850631);
+ assert(unsigned(zero_extend(0x6216048, 64)) == 102850632);
+ assert(unsigned(zero_extend(0x6216049, 64)) == 102850633);
+ assert(unsigned(zero_extend(0x621604a, 64)) == 102850634);
+ assert(unsigned(zero_extend(0x621604b, 64)) == 102850635);
+ assert(unsigned(zero_extend(0x621604c, 64)) == 102850636);
+ assert(unsigned(zero_extend(0x621604d, 64)) == 102850637);
+ assert(unsigned(zero_extend(0x621604e, 64)) == 102850638);
+ assert(unsigned(zero_extend(0x621604f, 64)) == 102850639);
+ assert(unsigned(zero_extend(0x6216050, 64)) == 102850640);
+ assert(unsigned(zero_extend(0x6216054, 64)) == 102850644);
+ assert(unsigned(zero_extend(0x6216058, 64)) == 102850648);
+ assert(unsigned(zero_extend(0x621605c, 64)) == 102850652);
+ assert(unsigned(zero_extend(0x6216064, 64)) == 102850660);
+ assert(unsigned(zero_extend(0x6216065, 64)) == 102850661);
+ assert(unsigned(zero_extend(0x6216066, 64)) == 102850662);
+ assert(unsigned(zero_extend(0x6216067, 64)) == 102850663);
+ assert(unsigned(zero_extend(0x6216069, 64)) == 102850665);
+ assert(unsigned(zero_extend(0x621606a, 64)) == 102850666);
+ assert(unsigned(zero_extend(0x621606b, 64)) == 102850667);
+ assert(unsigned(zero_extend(0x621606c, 64)) == 102850668);
+ assert(unsigned(zero_extend(0x62160aa, 64)) == 102850730);
+ assert(unsigned(zero_extend(0x63, 64)) == 99);
+ assert(unsigned(zero_extend(0x64, 64)) == 100);
+ assert(unsigned(zero_extend(0x65, 64)) == 101);
+ assert(unsigned(zero_extend(0x66, 64)) == 102);
+ assert(unsigned(zero_extend(0x67, 64)) == 103);
+ assert(unsigned(zero_extend(0x68, 64)) == 104);
+ assert(unsigned(zero_extend(0x69, 64)) == 105);
+ assert(unsigned(zero_extend(0x6a, 64)) == 106);
+ assert(unsigned(zero_extend(0x6b, 64)) == 107);
+ assert(unsigned(zero_extend(0x6b7c8d9f, 64)) == 1803324831);
+ assert(unsigned(zero_extend(0x6c, 64)) == 108);
+ assert(unsigned(zero_extend(0x6d, 64)) == 109);
+ assert(unsigned(zero_extend(0x6e, 64)) == 110);
+ assert(unsigned(zero_extend(0x6ede4cbc6ede4cbb, 64)) == 7988907161199463611);
+ assert(unsigned(zero_extend(0x6f, 64)) == 111);
+ assert(unsigned(zero_extend(0x6ffffffffffffffe, 64)) == 8070450532247928830);
+ assert(unsigned(zero_extend(0x6fffffffffffffff, 64)) == 8070450532247928831);
+ assert(unsigned(zero_extend(0x7, 64)) == 7);
+ assert(unsigned(zero_extend(0x70, 64)) == 112);
+ assert(unsigned(zero_extend(0x71, 64)) == 113);
+ assert(unsigned(zero_extend(0x72, 64)) == 114);
+ assert(unsigned(zero_extend(0x73, 64)) == 115);
+ assert(unsigned(zero_extend(0x74, 64)) == 116);
+ assert(unsigned(zero_extend(0x75, 64)) == 117);
+ assert(unsigned(zero_extend(0x76, 64)) == 118);
+ assert(unsigned(zero_extend(0x764c321, 64)) == 124044065);
+ assert(unsigned(zero_extend(0x77, 64)) == 119);
+ assert(unsigned(zero_extend(0x7765554377655542, 64)) == 8603376411415500098);
+ assert(unsigned(zero_extend(0x7766554477665542, 64)) == 8603657890687243586);
+ assert(unsigned(zero_extend(0x78, 64)) == 120);
+ assert(unsigned(zero_extend(0x789abcdef0123456, 64)) == 8690466096661279830);
+ assert(unsigned(zero_extend(0x79, 64)) == 121);
+ assert(unsigned(zero_extend(0x7a, 64)) == 122);
+ assert(unsigned(zero_extend(0x7b, 64)) == 123);
+ assert(unsigned(zero_extend(0x7c, 64)) == 124);
+ assert(unsigned(zero_extend(0x7d, 64)) == 125);
+ assert(unsigned(zero_extend(0x7e, 64)) == 126);
+ assert(unsigned(zero_extend(0x7f, 64)) == 127);
+ assert(unsigned(zero_extend(0x7ff, 64)) == 2047);
+ assert(unsigned(zero_extend(0x7ffc, 64)) == 32764);
+ assert(unsigned(zero_extend(0x7ffe, 64)) == 32766);
+ assert(unsigned(zero_extend(0x7fff, 64)) == 32767);
+ assert(unsigned(zero_extend(0x7fff7fff, 64)) == 2147450879);
+ assert(unsigned(zero_extend(0x7fff7fff7fff7ffd, 64)) == 9223231297218904061);
+ assert(unsigned(zero_extend(0x7fff7fff7fff7fff, 64)) == 9223231297218904063);
+ assert(unsigned(zero_extend(0x7fffffc, 64)) == 134217724);
+ assert(unsigned(zero_extend(0x7ffffffe, 64)) == 2147483646);
+ assert(unsigned(zero_extend(0x7fffffff, 64)) == 2147483647);
+ assert(unsigned(zero_extend(0x7fffffff00000000, 64)) == 9223372032559808512);
+ assert(unsigned(zero_extend(0x7fffffff00000001, 64)) == 9223372032559808513);
+ assert(unsigned(zero_extend(0x7fffffff7ffffffe, 64)) == 9223372034707292158);
+ assert(unsigned(zero_extend(0x7fffffff7fffffff, 64)) == 9223372034707292159);
+ assert(unsigned(zero_extend(0x7fffffff80000000, 64)) == 9223372034707292160);
+ assert(unsigned(zero_extend(0x7fffffff80000001, 64)) == 9223372034707292161);
+ assert(unsigned(zero_extend(0x7fffffffffff0000, 64)) == 9223372036854710272);
+ assert(unsigned(zero_extend(0x7fffffffffff0001, 64)) == 9223372036854710273);
+ assert(unsigned(zero_extend(0x7fffffffffff7ffe, 64)) == 9223372036854743038);
+ assert(unsigned(zero_extend(0x7fffffffffff7fff, 64)) == 9223372036854743039);
+ assert(unsigned(zero_extend(0x7fffffffffff8000, 64)) == 9223372036854743040);
+ assert(unsigned(zero_extend(0x7fffffffffff8001, 64)) == 9223372036854743041);
+ assert(unsigned(zero_extend(0x7ffffffffffffffc, 64)) == 9223372036854775804);
+ assert(unsigned(zero_extend(0x7ffffffffffffffd, 64)) == 9223372036854775805);
+ assert(unsigned(zero_extend(0x7ffffffffffffffe, 64)) == 9223372036854775806);
+ assert(unsigned(zero_extend(0x7fffffffffffffff, 64)) == 9223372036854775807);
+ assert(unsigned(zero_extend(0x8, 64)) == 8);
+ assert(unsigned(zero_extend(0x80, 64)) == 128);
+ assert(unsigned(zero_extend(0x800, 64)) == 2048);
+ assert(unsigned(zero_extend(0x8000, 64)) == 32768);
+ assert(unsigned(zero_extend(0x80000000, 64)) == 2147483648);
+ assert(unsigned(zero_extend(0x8000000000000000, 64)) == 9223372036854775808);
+ assert(unsigned(zero_extend(0x8000000000000001, 64)) == 9223372036854775809);
+ assert(unsigned(zero_extend(0x8000000000000002, 64)) == 9223372036854775810);
+ assert(unsigned(zero_extend(0x8000000000000003, 64)) == 9223372036854775811);
+ assert(unsigned(zero_extend(0x8000000000007ffe, 64)) == 9223372036854808574);
+ assert(unsigned(zero_extend(0x8000000000007fff, 64)) == 9223372036854808575);
+ assert(unsigned(zero_extend(0x8000000000008000, 64)) == 9223372036854808576);
+ assert(unsigned(zero_extend(0x8000000000008001, 64)) == 9223372036854808577);
+ assert(unsigned(zero_extend(0x800000000000fffe, 64)) == 9223372036854841342);
+ assert(unsigned(zero_extend(0x800000000000ffff, 64)) == 9223372036854841343);
+ assert(unsigned(zero_extend(0x800000007ffffffe, 64)) == 9223372039002259454);
+ assert(unsigned(zero_extend(0x800000007fffffff, 64)) == 9223372039002259455);
+ assert(unsigned(zero_extend(0x8000000080000000, 64)) == 9223372039002259456);
+ assert(unsigned(zero_extend(0x8000000080000001, 64)) == 9223372039002259457);
+ assert(unsigned(zero_extend(0x80000000fffffffe, 64)) == 9223372041149743102);
+ assert(unsigned(zero_extend(0x80000000ffffffff, 64)) == 9223372041149743103);
+ assert(unsigned(zero_extend(0x80000001, 64)) == 2147483649);
+ assert(unsigned(zero_extend(0x80000002, 64)) == 2147483650);
+ assert(unsigned(zero_extend(0x80000003, 64)) == 2147483651);
+ assert(unsigned(zero_extend(0x80008000, 64)) == 2147516416);
+ assert(unsigned(zero_extend(0x8000800080008000, 64)) == 9223512776490647552);
+ assert(unsigned(zero_extend(0x8000800080008002, 64)) == 9223512776490647554);
+ assert(unsigned(zero_extend(0x8001, 64)) == 32769);
+ assert(unsigned(zero_extend(0x80010003, 64)) == 2147549187);
+ assert(unsigned(zero_extend(0x8002, 64)) == 32770);
+ assert(unsigned(zero_extend(0x8003, 64)) == 32771);
+ assert(unsigned(zero_extend(0x8004, 64)) == 32772);
+ assert(unsigned(zero_extend(0x8008, 64)) == 32776);
+ assert(unsigned(zero_extend(0x800c, 64)) == 32780);
+ assert(unsigned(zero_extend(0x8030, 64)) == 32816);
+ assert(unsigned(zero_extend(0x8034, 64)) == 32820);
+ assert(unsigned(zero_extend(0x8038, 64)) == 32824);
+ assert(unsigned(zero_extend(0x803c, 64)) == 32828);
+ assert(unsigned(zero_extend(0x8040, 64)) == 32832);
+ assert(unsigned(zero_extend(0x8054, 64)) == 32852);
+ assert(unsigned(zero_extend(0x8058, 64)) == 32856);
+ assert(unsigned(zero_extend(0x8064, 64)) == 32868);
+ assert(unsigned(zero_extend(0x8069, 64)) == 32873);
+ assert(unsigned(zero_extend(0x80aa, 64)) == 32938);
+ assert(unsigned(zero_extend(0x81, 64)) == 129);
+ assert(unsigned(zero_extend(0x82, 64)) == 130);
+ assert(unsigned(zero_extend(0x83, 64)) == 131);
+ assert(unsigned(zero_extend(0x84, 64)) == 132);
+ assert(unsigned(zero_extend(0x84000, 64)) == 540672);
+ assert(unsigned(zero_extend(0x84800, 64)) == 542720);
+ assert(unsigned(zero_extend(0x85, 64)) == 133);
+ assert(unsigned(zero_extend(0x86, 64)) == 134);
+ assert(unsigned(zero_extend(0x87, 64)) == 135);
+ assert(unsigned(zero_extend(0x87654321, 64)) == 2271560481);
+ assert(unsigned(zero_extend(0x876543210fedcba9, 64)) == 9756277977048271785);
+ assert(unsigned(zero_extend(0x88, 64)) == 136);
+ assert(unsigned(zero_extend(0x8899aabb, 64)) == 2291772091);
+ assert(unsigned(zero_extend(0x8899aabb8899aabb, 64)) == 9843086183022308027);
+ assert(unsigned(zero_extend(0x8899aabb8899aabd, 64)) == 9843086183022308029);
+ assert(unsigned(zero_extend(0x889aaabc889aaabd, 64)) == 9843367662294051517);
+ assert(unsigned(zero_extend(0x89, 64)) == 137);
+ assert(unsigned(zero_extend(0x89ab, 64)) == 35243);
+ assert(unsigned(zero_extend(0x8a, 64)) == 138);
+ assert(unsigned(zero_extend(0x8b, 64)) == 139);
+ assert(unsigned(zero_extend(0x8c, 64)) == 140);
+ assert(unsigned(zero_extend(0x8d, 64)) == 141);
+ assert(unsigned(zero_extend(0x8fffffffffffffff, 64)) == 10376293541461622783);
+ assert(unsigned(zero_extend(0x9, 64)) == 9);
+ assert(unsigned(zero_extend(0x90, 64)) == 144);
+ assert(unsigned(zero_extend(0x90000000, 64)) == 2415919104);
+ assert(unsigned(zero_extend(0x9000000000000000, 64)) == 10376293541461622784);
+ assert(unsigned(zero_extend(0x9000000000000001, 64)) == 10376293541461622785);
+ assert(unsigned(zero_extend(0x90000001, 64)) == 2415919105);
+ assert(unsigned(zero_extend(0x9121b3439121b344, 64)) == 10457836912510088004);
+ assert(unsigned(zero_extend(0x9200000, 64)) == 153092096);
+ assert(unsigned(zero_extend(0x9200004, 64)) == 153092100);
+ assert(unsigned(zero_extend(0x9200008, 64)) == 153092104);
+ assert(unsigned(zero_extend(0x9200010, 64)) == 153092112);
+ assert(unsigned(zero_extend(0x9200014, 64)) == 153092116);
+ assert(unsigned(zero_extend(0x9200018, 64)) == 153092120);
+ assert(unsigned(zero_extend(0x9200020, 64)) == 153092128);
+ assert(unsigned(zero_extend(0x9200024, 64)) == 153092132);
+ assert(unsigned(zero_extend(0x9200028, 64)) == 153092136);
+ assert(unsigned(zero_extend(0x9200030, 64)) == 153092144);
+ assert(unsigned(zero_extend(0x9200034, 64)) == 153092148);
+ assert(unsigned(zero_extend(0x9200038, 64)) == 153092152);
+ assert(unsigned(zero_extend(0x920003c, 64)) == 153092156);
+ assert(unsigned(zero_extend(0x9200040, 64)) == 153092160);
+ assert(unsigned(zero_extend(0x9200044, 64)) == 153092164);
+ assert(unsigned(zero_extend(0x9200048, 64)) == 153092168);
+ assert(unsigned(zero_extend(0x920004c, 64)) == 153092172);
+ assert(unsigned(zero_extend(0x9200050, 64)) == 153092176);
+ assert(unsigned(zero_extend(0x9200054, 64)) == 153092180);
+ assert(unsigned(zero_extend(0x9200058, 64)) == 153092184);
+ assert(unsigned(zero_extend(0x920005c, 64)) == 153092188);
+ assert(unsigned(zero_extend(0x9200060, 64)) == 153092192);
+ assert(unsigned(zero_extend(0x9200064, 64)) == 153092196);
+ assert(unsigned(zero_extend(0x9200068, 64)) == 153092200);
+ assert(unsigned(zero_extend(0x920006c, 64)) == 153092204);
+ assert(unsigned(zero_extend(0x9200070, 64)) == 153092208);
+ assert(unsigned(zero_extend(0x9200074, 64)) == 153092212);
+ assert(unsigned(zero_extend(0x9200078, 64)) == 153092216);
+ assert(unsigned(zero_extend(0x920007c, 64)) == 153092220);
+ assert(unsigned(zero_extend(0x9200080, 64)) == 153092224);
+ assert(unsigned(zero_extend(0x9200084, 64)) == 153092228);
+ assert(unsigned(zero_extend(0x9200088, 64)) == 153092232);
+ assert(unsigned(zero_extend(0x920008c, 64)) == 153092236);
+ assert(unsigned(zero_extend(0x9234567a, 64)) == 2452903546);
+ assert(unsigned(zero_extend(0x9be0, 64)) == 39904);
+ assert(unsigned(zero_extend(0xa, 64)) == 10);
+ assert(unsigned(zero_extend(0xa0, 64)) == 160);
+ assert(unsigned(zero_extend(0xa000, 64)) == 40960);
+ assert(unsigned(zero_extend(0xa0000000, 64)) == 2684354560);
+ assert(unsigned(zero_extend(0xa200000, 64)) == 169869312);
+ assert(unsigned(zero_extend(0xa200004, 64)) == 169869316);
+ assert(unsigned(zero_extend(0xa200008, 64)) == 169869320);
+ assert(unsigned(zero_extend(0xa200010, 64)) == 169869328);
+ assert(unsigned(zero_extend(0xa200014, 64)) == 169869332);
+ assert(unsigned(zero_extend(0xa200018, 64)) == 169869336);
+ assert(unsigned(zero_extend(0xa200020, 64)) == 169869344);
+ assert(unsigned(zero_extend(0xa200024, 64)) == 169869348);
+ assert(unsigned(zero_extend(0xa200028, 64)) == 169869352);
+ assert(unsigned(zero_extend(0xa200030, 64)) == 169869360);
+ assert(unsigned(zero_extend(0xa200034, 64)) == 169869364);
+ assert(unsigned(zero_extend(0xa200038, 64)) == 169869368);
+ assert(unsigned(zero_extend(0xa200040, 64)) == 169869376);
+ assert(unsigned(zero_extend(0xa200044, 64)) == 169869380);
+ assert(unsigned(zero_extend(0xa200048, 64)) == 169869384);
+ assert(unsigned(zero_extend(0xa200050, 64)) == 169869392);
+ assert(unsigned(zero_extend(0xa200054, 64)) == 169869396);
+ assert(unsigned(zero_extend(0xa200058, 64)) == 169869400);
+ assert(unsigned(zero_extend(0xa20005c, 64)) == 169869404);
+ assert(unsigned(zero_extend(0xa200060, 64)) == 169869408);
+ assert(unsigned(zero_extend(0xa200064, 64)) == 169869412);
+ assert(unsigned(zero_extend(0xa200068, 64)) == 169869416);
+ assert(unsigned(zero_extend(0xa20006c, 64)) == 169869420);
+ assert(unsigned(zero_extend(0xa200070, 64)) == 169869424);
+ assert(unsigned(zero_extend(0xa200074, 64)) == 169869428);
+ assert(unsigned(zero_extend(0xa200078, 64)) == 169869432);
+ assert(unsigned(zero_extend(0xa20007c, 64)) == 169869436);
+ assert(unsigned(zero_extend(0xa200080, 64)) == 169869440);
+ assert(unsigned(zero_extend(0xa200084, 64)) == 169869444);
+ assert(unsigned(zero_extend(0xa200088, 64)) == 169869448);
+ assert(unsigned(zero_extend(0xa20008c, 64)) == 169869452);
+ assert(unsigned(zero_extend(0xa200090, 64)) == 169869456);
+ assert(unsigned(zero_extend(0xa200094, 64)) == 169869460);
+ assert(unsigned(zero_extend(0xa200098, 64)) == 169869464);
+ assert(unsigned(zero_extend(0xa20009c, 64)) == 169869468);
+ assert(unsigned(zero_extend(0xa2000a0, 64)) == 169869472);
+ assert(unsigned(zero_extend(0xa2000a4, 64)) == 169869476);
+ assert(unsigned(zero_extend(0xa2000a8, 64)) == 169869480);
+ assert(unsigned(zero_extend(0xa2000ac, 64)) == 169869484);
+ assert(unsigned(zero_extend(0xa50006c, 64)) == 173015148);
+ assert(unsigned(zero_extend(0xa500070, 64)) == 173015152);
+ assert(unsigned(zero_extend(0xa500074, 64)) == 173015156);
+ assert(unsigned(zero_extend(0xa5a5, 64)) == 42405);
+ assert(unsigned(zero_extend(0xa5a5a5a5, 64)) == 2779096485);
+ assert(unsigned(zero_extend(0xa5a5a5a5a5a5a5a5, 64)) == 11936128518282651045);
+ assert(unsigned(zero_extend(0xa8, 64)) == 168);
+ assert(unsigned(zero_extend(0xb, 64)) == 11);
+ assert(unsigned(zero_extend(0xb0, 64)) == 176);
+ assert(unsigned(zero_extend(0xb8, 64)) == 184);
+ assert(unsigned(zero_extend(0xc, 64)) == 12);
+ assert(unsigned(zero_extend(0xc0, 64)) == 192);
+ assert(unsigned(zero_extend(0xc00fefff, 64)) == 3222269951);
+ assert(unsigned(zero_extend(0xd, 64)) == 13);
+ assert(unsigned(zero_extend(0xd0, 64)) == 208);
+ assert(unsigned(zero_extend(0xdddddddddddddddc, 64)) == 15987178197214944732);
+ assert(unsigned(zero_extend(0xe, 64)) == 14);
+ assert(unsigned(zero_extend(0xe0, 64)) == 224);
+ assert(unsigned(zero_extend(0xedcba9876543210e, 64)) == 17134975606245761294);
+ assert(unsigned(zero_extend(0xf, 64)) == 15);
+ assert(unsigned(zero_extend(0xf00, 64)) == 3840);
+ assert(unsigned(zero_extend(0xf000000000000000, 64)) == 17293822569102704640);
+ assert(unsigned(zero_extend(0xff, 64)) == 255);
+ assert(unsigned(zero_extend(0xfffe, 64)) == 65534);
+ assert(unsigned(zero_extend(0xffff, 64)) == 65535);
+ assert(unsigned(zero_extend(0xffff8000, 64)) == 4294934528);
+ assert(unsigned(zero_extend(0xffffc, 64)) == 1048572);
+ assert(unsigned(zero_extend(0xffffe000ffffe000, 64)) == 18446708893632421888);
+ assert(unsigned(zero_extend(0xfffffff, 64)) == 268435455);
+ assert(unsigned(zero_extend(0xfffffffe, 64)) == 4294967294);
+ assert(unsigned(zero_extend(0xfffffffe77665544, 64)) == 18446744067122812228);
+ assert(unsigned(zero_extend(0xfffffffe7fffffff, 64)) == 18446744067267100671);
+ assert(unsigned(zero_extend(0xfffffffe80000000, 64)) == 18446744067267100672);
+ assert(unsigned(zero_extend(0xfffffffef89b3cde, 64)) == 18446744069290540254);
+ assert(unsigned(zero_extend(0xfffffffefffffffe, 64)) == 18446744069414584318);
+ assert(unsigned(zero_extend(0xfffffffeffffffff, 64)) == 18446744069414584319);
+ assert(unsigned(zero_extend(0xffffffff, 64)) == 4294967295);
+ assert(unsigned(zero_extend(0xffffffff00000000, 64)) == 18446744069414584320);
+ assert(unsigned(zero_extend(0xffffffff00000001, 64)) == 18446744069414584321);
+ assert(unsigned(zero_extend(0xffffffff00007fff, 64)) == 18446744069414617087);
+ assert(unsigned(zero_extend(0xffffffff3ff01000, 64)) == 18446744070487281664);
+ assert(unsigned(zero_extend(0xffffffff5fffffff, 64)) == 18446744071025197055);
+ assert(unsigned(zero_extend(0xffffffff6dcba985, 64)) == 18446744071256648069);
+ assert(unsigned(zero_extend(0xffffffff6ffffffe, 64)) == 18446744071293632510);
+ assert(unsigned(zero_extend(0xffffffff6fffffff, 64)) == 18446744071293632511);
+ assert(unsigned(zero_extend(0xffffffff77665544, 64)) == 18446744071417779524);
+ assert(unsigned(zero_extend(0xffffffff7ffefffc, 64)) == 18446744071562002428);
+ assert(unsigned(zero_extend(0xffffffff7ffffffc, 64)) == 18446744071562067964);
+ assert(unsigned(zero_extend(0xffffffff7ffffffd, 64)) == 18446744071562067965);
+ assert(unsigned(zero_extend(0xffffffff7ffffffe, 64)) == 18446744071562067966);
+ assert(unsigned(zero_extend(0xffffffff7fffffff, 64)) == 18446744071562067967);
+ assert(unsigned(zero_extend(0xffffffff80000000, 64)) == 18446744071562067968);
+ assert(unsigned(zero_extend(0xffffffff80000001, 64)) == 18446744071562067969);
+ assert(unsigned(zero_extend(0xffffffff94837260, 64)) == 18446744071906226784);
+ assert(unsigned(zero_extend(0xffffffffdfffffff, 64)) == 18446744073172680703);
+ assert(unsigned(zero_extend(0xffffffffed9fff7f, 64)) == 18446744073401270143);
+ assert(unsigned(zero_extend(0xffffffffedafff8f, 64)) == 18446744073402318735);
+ assert(unsigned(zero_extend(0xfffffffff0000000, 64)) == 18446744073441116160);
+ assert(unsigned(zero_extend(0xfffffffff7ffffff, 64)) == 18446744073575333887);
+ assert(unsigned(zero_extend(0xfffffffff89b3cde, 64)) == 18446744073585507550);
+ assert(unsigned(zero_extend(0xfffffffffcefffff, 64)) == 18446744073658171391);
+ assert(unsigned(zero_extend(0xfffffffffcf0ffff, 64)) == 18446744073658236927);
+ assert(unsigned(zero_extend(0xfffffffffcf1ffff, 64)) == 18446744073658302463);
+ assert(unsigned(zero_extend(0xfffffffffcf84000, 64)) == 18446744073658712064);
+ assert(unsigned(zero_extend(0xfffffffffcf94000, 64)) == 18446744073658777600);
+ assert(unsigned(zero_extend(0xfffffffffcfa4000, 64)) == 18446744073658843136);
+ assert(unsigned(zero_extend(0xfffffffffd0affff, 64)) == 18446744073659940863);
+ assert(unsigned(zero_extend(0xfffffffffd0bffff, 64)) == 18446744073660006399);
+ assert(unsigned(zero_extend(0xfffffffffd0fc000, 64)) == 18446744073660252160);
+ assert(unsigned(zero_extend(0xfffffffffd10c000, 64)) == 18446744073660317696);
+ assert(unsigned(zero_extend(0xfffffffffd10ffff, 64)) == 18446744073660334079);
+ assert(unsigned(zero_extend(0xfffffffffd11ffff, 64)) == 18446744073660399615);
+ assert(unsigned(zero_extend(0xfffffffffd130000, 64)) == 18446744073660465152);
+ assert(unsigned(zero_extend(0xfffffffffd13ffff, 64)) == 18446744073660530687);
+ assert(unsigned(zero_extend(0xfffffffffd140000, 64)) == 18446744073660530688);
+ assert(unsigned(zero_extend(0xfffffffffd14ffff, 64)) == 18446744073660596223);
+ assert(unsigned(zero_extend(0xfffffffffd170000, 64)) == 18446744073660727296);
+ assert(unsigned(zero_extend(0xfffffffffd18c000, 64)) == 18446744073660841984);
+ assert(unsigned(zero_extend(0xfffffffffebffe6b, 64)) == 18446744073688579691);
+ assert(unsigned(zero_extend(0xfffffffffebffefb, 64)) == 18446744073688579835);
+ assert(unsigned(zero_extend(0xfffffffffebfff3b, 64)) == 18446744073688579899);
+ assert(unsigned(zero_extend(0xffffffffffefffff, 64)) == 18446744073708503039);
+ assert(unsigned(zero_extend(0xfffffffffff, 64)) == 17592186044415);
+ assert(unsigned(zero_extend(0xfffffffffff70000, 64)) == 18446744073708961792);
+ assert(unsigned(zero_extend(0xfffffffffff80000, 64)) == 18446744073709027328);
+ assert(unsigned(zero_extend(0xfffffffffffc0000, 64)) == 18446744073709289472);
+ assert(unsigned(zero_extend(0xfffffffffffd0000, 64)) == 18446744073709355008);
+ assert(unsigned(zero_extend(0xfffffffffffdffff, 64)) == 18446744073709420543);
+ assert(unsigned(zero_extend(0xfffffffffffe0000, 64)) == 18446744073709420544);
+ assert(unsigned(zero_extend(0xfffffffffffe7ffe, 64)) == 18446744073709453310);
+ assert(unsigned(zero_extend(0xfffffffffffe7fff, 64)) == 18446744073709453311);
+ assert(unsigned(zero_extend(0xfffffffffffe8000, 64)) == 18446744073709453312);
+ assert(unsigned(zero_extend(0xfffffffffffe8001, 64)) == 18446744073709453313);
+ assert(unsigned(zero_extend(0xfffffffffffefffe, 64)) == 18446744073709486078);
+ assert(unsigned(zero_extend(0xfffffffffffeffff, 64)) == 18446744073709486079);
+ assert(unsigned(zero_extend(0xffffffffffff0000, 64)) == 18446744073709486080);
+ assert(unsigned(zero_extend(0xffffffffffff0001, 64)) == 18446744073709486081);
+ assert(unsigned(zero_extend(0xffffffffffff641f, 64)) == 18446744073709511711);
+ assert(unsigned(zero_extend(0xffffffffffff7ffc, 64)) == 18446744073709518844);
+ assert(unsigned(zero_extend(0xffffffffffff7ffd, 64)) == 18446744073709518845);
+ assert(unsigned(zero_extend(0xffffffffffff7ffe, 64)) == 18446744073709518846);
+ assert(unsigned(zero_extend(0xffffffffffff7fff, 64)) == 18446744073709518847);
+ assert(unsigned(zero_extend(0xffffffffffff8000, 64)) == 18446744073709518848);
+ assert(unsigned(zero_extend(0xffffffffffff8001, 64)) == 18446744073709518849);
+ assert(unsigned(zero_extend(0xffffffffffffbeff, 64)) == 18446744073709534975);
+ assert(unsigned(zero_extend(0xffffffffffffbf40, 64)) == 18446744073709535040);
+ assert(unsigned(zero_extend(0xffffffffffffbf41, 64)) == 18446744073709535041);
+ assert(unsigned(zero_extend(0xffffffffffffbfff, 64)) == 18446744073709535231);
+ assert(unsigned(zero_extend(0xffffffffffffc22c, 64)) == 18446744073709535788);
+ assert(unsigned(zero_extend(0xffffffffffffc24c, 64)) == 18446744073709535820);
+ assert(unsigned(zero_extend(0xffffffffffffd220, 64)) == 18446744073709539872);
+ assert(unsigned(zero_extend(0xffffffffffffd23c, 64)) == 18446744073709539900);
+ assert(unsigned(zero_extend(0xffffffffffffe220, 64)) == 18446744073709543968);
+ assert(unsigned(zero_extend(0xffffffffffffe23c, 64)) == 18446744073709543996);
+ assert(unsigned(zero_extend(0xffffffffffffefff, 64)) == 18446744073709547519);
+ assert(unsigned(zero_extend(0xfffffffffffffeef, 64)) == 18446744073709551343);
+ assert(unsigned(zero_extend(0xfffffffffffffeff, 64)) == 18446744073709551359);
+ assert(unsigned(zero_extend(0xffffffffffffff1f, 64)) == 18446744073709551391);
+ assert(unsigned(zero_extend(0xffffffffffffff2f, 64)) == 18446744073709551407);
+ assert(unsigned(zero_extend(0xffffffffffffff4f, 64)) == 18446744073709551439);
+ assert(unsigned(zero_extend(0xffffffffffffff6f, 64)) == 18446744073709551471);
+ assert(unsigned(zero_extend(0xffffffffffffff80, 64)) == 18446744073709551488);
+ assert(unsigned(zero_extend(0xffffffffffffff8f, 64)) == 18446744073709551503);
+ assert(unsigned(zero_extend(0xffffffffffffff9f, 64)) == 18446744073709551519);
+ assert(unsigned(zero_extend(0xffffffffffffffa0, 64)) == 18446744073709551520);
+ assert(unsigned(zero_extend(0xffffffffffffffaf, 64)) == 18446744073709551535);
+ assert(unsigned(zero_extend(0xffffffffffffffbf, 64)) == 18446744073709551551);
+ assert(unsigned(zero_extend(0xffffffffffffffc2, 64)) == 18446744073709551554);
+ assert(unsigned(zero_extend(0xffffffffffffffc4, 64)) == 18446744073709551556);
+ assert(unsigned(zero_extend(0xffffffffffffffc6, 64)) == 18446744073709551558);
+ assert(unsigned(zero_extend(0xffffffffffffffc8, 64)) == 18446744073709551560);
+ assert(unsigned(zero_extend(0xffffffffffffffca, 64)) == 18446744073709551562);
+ assert(unsigned(zero_extend(0xffffffffffffffcc, 64)) == 18446744073709551564);
+ assert(unsigned(zero_extend(0xffffffffffffffce, 64)) == 18446744073709551566);
+ assert(unsigned(zero_extend(0xffffffffffffffcf, 64)) == 18446744073709551567);
+ assert(unsigned(zero_extend(0xffffffffffffffd0, 64)) == 18446744073709551568);
+ assert(unsigned(zero_extend(0xffffffffffffffd2, 64)) == 18446744073709551570);
+ assert(unsigned(zero_extend(0xffffffffffffffd4, 64)) == 18446744073709551572);
+ assert(unsigned(zero_extend(0xffffffffffffffd6, 64)) == 18446744073709551574);
+ assert(unsigned(zero_extend(0xffffffffffffffd8, 64)) == 18446744073709551576);
+ assert(unsigned(zero_extend(0xffffffffffffffda, 64)) == 18446744073709551578);
+ assert(unsigned(zero_extend(0xffffffffffffffdb, 64)) == 18446744073709551579);
+ assert(unsigned(zero_extend(0xffffffffffffffdc, 64)) == 18446744073709551580);
+ assert(unsigned(zero_extend(0xffffffffffffffde, 64)) == 18446744073709551582);
+ assert(unsigned(zero_extend(0xffffffffffffffdf, 64)) == 18446744073709551583);
+ assert(unsigned(zero_extend(0xffffffffffffffe0, 64)) == 18446744073709551584);
+ assert(unsigned(zero_extend(0xffffffffffffffe2, 64)) == 18446744073709551586);
+ assert(unsigned(zero_extend(0xffffffffffffffe4, 64)) == 18446744073709551588);
+ assert(unsigned(zero_extend(0xffffffffffffffe6, 64)) == 18446744073709551590);
+ assert(unsigned(zero_extend(0xffffffffffffffe7, 64)) == 18446744073709551591);
+ assert(unsigned(zero_extend(0xffffffffffffffe8, 64)) == 18446744073709551592);
+ assert(unsigned(zero_extend(0xffffffffffffffea, 64)) == 18446744073709551594);
+ assert(unsigned(zero_extend(0xffffffffffffffec, 64)) == 18446744073709551596);
+ assert(unsigned(zero_extend(0xffffffffffffffee, 64)) == 18446744073709551598);
+ assert(unsigned(zero_extend(0xffffffffffffffef, 64)) == 18446744073709551599);
+ assert(unsigned(zero_extend(0xfffffffffffffff, 64)) == 1152921504606846975);
+ assert(unsigned(zero_extend(0xfffffffffffffff0, 64)) == 18446744073709551600);
+ assert(unsigned(zero_extend(0xfffffffffffffff1, 64)) == 18446744073709551601);
+ assert(unsigned(zero_extend(0xfffffffffffffff2, 64)) == 18446744073709551602);
+ assert(unsigned(zero_extend(0xfffffffffffffff4, 64)) == 18446744073709551604);
+ assert(unsigned(zero_extend(0xfffffffffffffff6, 64)) == 18446744073709551606);
+ assert(unsigned(zero_extend(0xfffffffffffffff7, 64)) == 18446744073709551607);
+ assert(unsigned(zero_extend(0xfffffffffffffff8, 64)) == 18446744073709551608);
+ assert(unsigned(zero_extend(0xfffffffffffffffa, 64)) == 18446744073709551610);
+ assert(unsigned(zero_extend(0xfffffffffffffffb, 64)) == 18446744073709551611);
+ assert(unsigned(zero_extend(0xfffffffffffffffc, 64)) == 18446744073709551612);
+ assert(unsigned(zero_extend(0xfffffffffffffffd, 64)) == 18446744073709551613);
+ assert(unsigned(zero_extend(0xfffffffffffffffe, 64)) == 18446744073709551614);
+ assert(unsigned(zero_extend(0xffffffffffffffff, 64)) == 18446744073709551615);
+ assert(unsigned(zero_extend(0x0, 8)) == 0);
+ assert(unsigned(zero_extend(0x20, 8)) == 32);
+ assert(unsigned(zero_extend(0x28, 8)) == 40);
+ assert(unsigned(zero_extend(0x29, 8)) == 41);
+ assert(unsigned(zero_extend(0x2a, 8)) == 42);
+ assert(unsigned(zero_extend(0x2d, 8)) == 45);
+ assert(unsigned(zero_extend(0x30, 8)) == 48);
+ assert(unsigned(zero_extend(0x31, 8)) == 49);
+ assert(unsigned(zero_extend(0x32, 8)) == 50);
+ assert(unsigned(zero_extend(0x33, 8)) == 51);
+ assert(unsigned(zero_extend(0x34, 8)) == 52);
+ assert(unsigned(zero_extend(0x35, 8)) == 53);
+ assert(unsigned(zero_extend(0x36, 8)) == 54);
+ assert(unsigned(zero_extend(0x37, 8)) == 55);
+ assert(unsigned(zero_extend(0x38, 8)) == 56);
+ assert(unsigned(zero_extend(0x39, 8)) == 57);
+ assert(unsigned(zero_extend(0x3a, 8)) == 58);
+ assert(unsigned(zero_extend(0x3e, 8)) == 62);
+ assert(unsigned(zero_extend(0x41, 8)) == 65);
+ assert(unsigned(zero_extend(0x43, 8)) == 67);
+ assert(unsigned(zero_extend(0x44, 8)) == 68);
+ assert(unsigned(zero_extend(0x45, 8)) == 69);
+ assert(unsigned(zero_extend(0x46, 8)) == 70);
+ assert(unsigned(zero_extend(0x4b, 8)) == 75);
+ assert(unsigned(zero_extend(0x4c, 8)) == 76);
+ assert(unsigned(zero_extend(0x4e, 8)) == 78);
+ assert(unsigned(zero_extend(0x4f, 8)) == 79);
+ assert(unsigned(zero_extend(0x50, 8)) == 80);
+ assert(unsigned(zero_extend(0x52, 8)) == 82);
+ assert(unsigned(zero_extend(0x53, 8)) == 83);
+ assert(unsigned(zero_extend(0x54, 8)) == 84);
+ assert(unsigned(zero_extend(0x55, 8)) == 85);
+ assert(unsigned(zero_extend(0x5f, 8)) == 95);
+ assert(unsigned(zero_extend(0x61, 8)) == 97);
+ assert(unsigned(zero_extend(0x62, 8)) == 98);
+ assert(unsigned(zero_extend(0x63, 8)) == 99);
+ assert(unsigned(zero_extend(0x64, 8)) == 100);
+ assert(unsigned(zero_extend(0x65, 8)) == 101);
+ assert(unsigned(zero_extend(0x66, 8)) == 102);
+ assert(unsigned(zero_extend(0x68, 8)) == 104);
+ assert(unsigned(zero_extend(0x69, 8)) == 105);
+ assert(unsigned(zero_extend(0x6c, 8)) == 108);
+ assert(unsigned(zero_extend(0x6d, 8)) == 109);
+ assert(unsigned(zero_extend(0x6e, 8)) == 110);
+ assert(unsigned(zero_extend(0x6f, 8)) == 111);
+ assert(unsigned(zero_extend(0x70, 8)) == 112);
+ assert(unsigned(zero_extend(0x72, 8)) == 114);
+ assert(unsigned(zero_extend(0x73, 8)) == 115);
+ assert(unsigned(zero_extend(0x74, 8)) == 116);
+ assert(unsigned(zero_extend(0x75, 8)) == 117);
+ assert(unsigned(zero_extend(0x76, 8)) == 118);
+ assert(unsigned(zero_extend(0x9, 8)) == 9);
+ assert(unsigned(zero_extend(0xa, 8)) == 10);
+}
diff --git a/test/builtins/vector_update_subrange.sail b/test/builtins/vector_update_subrange.sail
new file mode 100644
index 00000000..b287b047
--- /dev/null
+++ b/test/builtins/vector_update_subrange.sail
@@ -0,0 +1,15 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ v = 0x0BEEF0;
+ v[19 .. 4] = 0xDEAD;
+ assert(v == 0x0DEAD0, "v == 0x0DEAD0");
+ v[0 .. 0] = 0b1;
+ assert(v == 0x0DEAD1, "v == 0x0DEAD1");
+ v[1 .. 0] = 0b11;
+ assert(v == 0x0DEAD3, "v == 0x0DEAD3");
+} \ No newline at end of file
diff --git a/test/builtins/zeros.sail b/test/builtins/zeros.sail
new file mode 100644
index 00000000..79500469
--- /dev/null
+++ b/test/builtins/zeros.sail
@@ -0,0 +1,72 @@
+default Order dec
+
+$include <exception_basic.sail>
+$include <flow.sail>
+$include <vector_dec.sail>
+
+function main (() : unit) -> unit = {
+ assert(zeros(1) == 1^0b0);
+ assert(zeros(10) == 10^0x0);
+ assert(zeros(100) == 100^0x0);
+ assert(zeros(102) == 102^0x0);
+ assert(zeros(104) == 104^0x0);
+ assert(zeros(106) == 106^0x0);
+ assert(zeros(108) == 108^0x0);
+ assert(zeros(110) == 110^0x0);
+ assert(zeros(111) == 111^0x0);
+ assert(zeros(112) == 112^0x0);
+ assert(zeros(114) == 114^0x0);
+ assert(zeros(116) == 116^0x0);
+ assert(zeros(118) == 118^0x0);
+ assert(zeros(120) == 120^0x0);
+ assert(zeros(122) == 122^0x0);
+ assert(zeros(124) == 124^0x0);
+ assert(zeros(126) == 126^0x0);
+ assert(zeros(128) == 128^0x0);
+ assert(zeros(15) == 15^0x0);
+ assert(zeros(16) == 16^0x0);
+ assert(zeros(2) == 2^0x0);
+ assert(zeros(24) == 24^0x0);
+ assert(zeros(25) == 25^0x0);
+ assert(zeros(3) == 3^0x0);
+ assert(zeros(31) == 31^0x0);
+ assert(zeros(32) == 32^0x0);
+ assert(zeros(36) == 36^0x0);
+ assert(zeros(38) == 38^0x0);
+ assert(zeros(39) == 39^0x0);
+ assert(zeros(4) == 4^0x0);
+ assert(zeros(40) == 40^0x0);
+ assert(zeros(43) == 43^0x0);
+ assert(zeros(48) == 48^0x0);
+ assert(zeros(52) == 52^0x0);
+ assert(zeros(53) == 53^0x0);
+ assert(zeros(56) == 56^0x0);
+ assert(zeros(57) == 57^0x0);
+ assert(zeros(58) == 58^0x0);
+ assert(zeros(6) == 6^0x0);
+ assert(zeros(64) == 64^0x0);
+ assert(zeros(65) == 65^0x0);
+ assert(zeros(66) == 66^0x0);
+ assert(zeros(67) == 67^0x0);
+ assert(zeros(68) == 68^0x0);
+ assert(zeros(69) == 69^0x0);
+ assert(zeros(70) == 70^0x0);
+ assert(zeros(72) == 72^0x0);
+ assert(zeros(74) == 74^0x0);
+ assert(zeros(75) == 75^0x0);
+ assert(zeros(76) == 76^0x0);
+ assert(zeros(77) == 77^0x0);
+ assert(zeros(78) == 78^0x0);
+ assert(zeros(8) == 8^0x0);
+ assert(zeros(80) == 80^0x0);
+ assert(zeros(82) == 82^0x0);
+ assert(zeros(84) == 84^0x0);
+ assert(zeros(86) == 86^0x0);
+ assert(zeros(88) == 88^0x0);
+ assert(zeros(89) == 89^0x0);
+ assert(zeros(90) == 90^0x0);
+ assert(zeros(92) == 92^0x0);
+ assert(zeros(94) == 94^0x0);
+ assert(zeros(96) == 96^0x0);
+ assert(zeros(98) == 98^0x0);
+} \ No newline at end of file
diff --git a/test/run_tests.sh b/test/run_tests.sh
index 522e0952..d39b65cb 100755
--- a/test/run_tests.sh
+++ b/test/run_tests.sh
@@ -30,6 +30,12 @@ printf "******************************************\n\n"
./test/lem/run_tests.sh
printf "******************************************\n"
+printf "* Builtins tests *\n"
+printf "******************************************\n\n"
+
+./test/builtins/run_tests.sh
+
+printf "******************************************\n"
printf "* ARM spec tests *\n"
printf "******************************************\n\n"