diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2025-01-30 22:06:18 -0500 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2025-01-31 23:09:36 -0500 |
| commit | f0ac14ce97c4fa7f10ddd0d74a6dfade0a04cbc1 (patch) | |
| tree | 62c0e3cfebfb19f775063ba354e2870b7c282e34 /test | |
| parent | b9531f5de6a36d016a551be68080a314b90eb154 (diff) | |
| download | zig-f0ac14ce97c4fa7f10ddd0d74a6dfade0a04cbc1.tar.gz zig-f0ac14ce97c4fa7f10ddd0d74a6dfade0a04cbc1.zip | |
x86_64: rewrite scalar `@intCast`
Diffstat (limited to 'test')
| -rw-r--r-- | test/behavior/x86_64/math.zig | 3935 |
1 files changed, 1544 insertions, 2391 deletions
diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index 4642f822a3..9cc957614c 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -1680,165 +1680,85 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty imm_arg, ); } - fn testInts() !void { + fn testSameSignednessInts() !void { try testArgs(i8, i1, -1); try testArgs(i8, i1, 0); - try testArgs(u8, i1, -1); - try testArgs(u8, i1, 0); try testArgs(i16, i1, -1); try testArgs(i16, i1, 0); - try testArgs(u16, i1, -1); - try testArgs(u16, i1, 0); try testArgs(i32, i1, -1); try testArgs(i32, i1, 0); - try testArgs(u32, i1, -1); - try testArgs(u32, i1, 0); try testArgs(i64, i1, -1); try testArgs(i64, i1, 0); - try testArgs(u64, i1, -1); - try testArgs(u64, i1, 0); try testArgs(i128, i1, -1); try testArgs(i128, i1, 0); - try testArgs(u128, i1, -1); - try testArgs(u128, i1, 0); try testArgs(i256, i1, -1); try testArgs(i256, i1, 0); - try testArgs(u256, i1, -1); - try testArgs(u256, i1, 0); try testArgs(i512, i1, -1); try testArgs(i512, i1, 0); - try testArgs(u512, i1, -1); - try testArgs(u512, i1, 0); try testArgs(i1024, i1, -1); try testArgs(i1024, i1, 0); - try testArgs(u1024, i1, -1); - try testArgs(u1024, i1, 0); - try testArgs(i8, u1, 0); - try testArgs(i8, u1, 1 << 0); try testArgs(u8, u1, 0); try testArgs(u8, u1, 1 << 0); - try testArgs(i16, u1, 0); - try testArgs(i16, u1, 1 << 0); try testArgs(u16, u1, 0); try testArgs(u16, u1, 1 << 0); - try testArgs(i32, u1, 0); - try testArgs(i32, u1, 1 << 0); try testArgs(u32, u1, 0); try testArgs(u32, u1, 1 << 0); - try testArgs(i64, u1, 0); - try testArgs(i64, u1, 1 << 0); try testArgs(u64, u1, 0); try testArgs(u64, u1, 1 << 0); - try testArgs(i128, u1, 0); - try testArgs(i128, u1, 1 << 0); try testArgs(u128, u1, 0); try testArgs(u128, u1, 1 << 0); - try testArgs(i256, u1, 0); - try testArgs(i256, u1, 1 << 0); try testArgs(u256, u1, 0); try testArgs(u256, u1, 1 << 0); - try testArgs(i512, u1, 0); - try testArgs(i512, u1, 1 << 0); try testArgs(u512, u1, 0); try testArgs(u512, u1, 1 << 0); - try testArgs(i1024, u1, 0); - try testArgs(i1024, u1, 1 << 0); try testArgs(u1024, u1, 0); try testArgs(u1024, u1, 1 << 0); try testArgs(i8, i2, -1 << 1); try testArgs(i8, i2, -1); try testArgs(i8, i2, 0); - try testArgs(u8, i2, -1 << 1); - try testArgs(u8, i2, -1); - try testArgs(u8, i2, 0); try testArgs(i16, i2, -1 << 1); try testArgs(i16, i2, -1); try testArgs(i16, i2, 0); - try testArgs(u16, i2, -1 << 1); - try testArgs(u16, i2, -1); - try testArgs(u16, i2, 0); try testArgs(i32, i2, -1 << 1); try testArgs(i32, i2, -1); try testArgs(i32, i2, 0); - try testArgs(u32, i2, -1 << 1); - try testArgs(u32, i2, -1); - try testArgs(u32, i2, 0); try testArgs(i64, i2, -1 << 1); try testArgs(i64, i2, -1); try testArgs(i64, i2, 0); - try testArgs(u64, i2, -1 << 1); - try testArgs(u64, i2, -1); - try testArgs(u64, i2, 0); try testArgs(i128, i2, -1 << 1); try testArgs(i128, i2, -1); try testArgs(i128, i2, 0); - try testArgs(u128, i2, -1 << 1); - try testArgs(u128, i2, -1); - try testArgs(u128, i2, 0); try testArgs(i256, i2, -1 << 1); try testArgs(i256, i2, -1); try testArgs(i256, i2, 0); - try testArgs(u256, i2, -1 << 1); - try testArgs(u256, i2, -1); - try testArgs(u256, i2, 0); try testArgs(i512, i2, -1 << 1); try testArgs(i512, i2, -1); try testArgs(i512, i2, 0); - try testArgs(u512, i2, -1 << 1); - try testArgs(u512, i2, -1); - try testArgs(u512, i2, 0); try testArgs(i1024, i2, -1 << 1); try testArgs(i1024, i2, -1); try testArgs(i1024, i2, 0); - try testArgs(u1024, i2, -1 << 1); - try testArgs(u1024, i2, -1); - try testArgs(u1024, i2, 0); - try testArgs(i8, u2, 0); - try testArgs(i8, u2, 1 << 0); - try testArgs(i8, u2, 1 << 1); try testArgs(u8, u2, 0); try testArgs(u8, u2, 1 << 0); try testArgs(u8, u2, 1 << 1); - try testArgs(i16, u2, 0); - try testArgs(i16, u2, 1 << 0); - try testArgs(i16, u2, 1 << 1); try testArgs(u16, u2, 0); try testArgs(u16, u2, 1 << 0); try testArgs(u16, u2, 1 << 1); - try testArgs(i32, u2, 0); - try testArgs(i32, u2, 1 << 0); - try testArgs(i32, u2, 1 << 1); try testArgs(u32, u2, 0); try testArgs(u32, u2, 1 << 0); try testArgs(u32, u2, 1 << 1); - try testArgs(i64, u2, 0); - try testArgs(i64, u2, 1 << 0); - try testArgs(i64, u2, 1 << 1); try testArgs(u64, u2, 0); try testArgs(u64, u2, 1 << 0); try testArgs(u64, u2, 1 << 1); - try testArgs(i128, u2, 0); - try testArgs(i128, u2, 1 << 0); - try testArgs(i128, u2, 1 << 1); try testArgs(u128, u2, 0); try testArgs(u128, u2, 1 << 0); try testArgs(u128, u2, 1 << 1); - try testArgs(i256, u2, 0); - try testArgs(i256, u2, 1 << 0); - try testArgs(i256, u2, 1 << 1); try testArgs(u256, u2, 0); try testArgs(u256, u2, 1 << 0); try testArgs(u256, u2, 1 << 1); - try testArgs(i512, u2, 0); - try testArgs(i512, u2, 1 << 0); - try testArgs(i512, u2, 1 << 1); try testArgs(u512, u2, 0); try testArgs(u512, u2, 1 << 0); try testArgs(u512, u2, 1 << 1); - try testArgs(i1024, u2, 0); - try testArgs(i1024, u2, 1 << 0); - try testArgs(i1024, u2, 1 << 1); try testArgs(u1024, u2, 0); try testArgs(u1024, u2, 1 << 0); try testArgs(u1024, u2, 1 << 1); @@ -1846,96 +1766,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i3, -1 << 2); try testArgs(i8, i3, -1); try testArgs(i8, i3, 0); - try testArgs(u8, i3, -1 << 2); - try testArgs(u8, i3, -1); - try testArgs(u8, i3, 0); try testArgs(i16, i3, -1 << 2); try testArgs(i16, i3, -1); try testArgs(i16, i3, 0); - try testArgs(u16, i3, -1 << 2); - try testArgs(u16, i3, -1); - try testArgs(u16, i3, 0); try testArgs(i32, i3, -1 << 2); try testArgs(i32, i3, -1); try testArgs(i32, i3, 0); - try testArgs(u32, i3, -1 << 2); - try testArgs(u32, i3, -1); - try testArgs(u32, i3, 0); try testArgs(i64, i3, -1 << 2); try testArgs(i64, i3, -1); try testArgs(i64, i3, 0); - try testArgs(u64, i3, -1 << 2); - try testArgs(u64, i3, -1); - try testArgs(u64, i3, 0); try testArgs(i128, i3, -1 << 2); try testArgs(i128, i3, -1); try testArgs(i128, i3, 0); - try testArgs(u128, i3, -1 << 2); - try testArgs(u128, i3, -1); - try testArgs(u128, i3, 0); try testArgs(i256, i3, -1 << 2); try testArgs(i256, i3, -1); try testArgs(i256, i3, 0); - try testArgs(u256, i3, -1 << 2); - try testArgs(u256, i3, -1); - try testArgs(u256, i3, 0); try testArgs(i512, i3, -1 << 2); try testArgs(i512, i3, -1); try testArgs(i512, i3, 0); - try testArgs(u512, i3, -1 << 2); - try testArgs(u512, i3, -1); - try testArgs(u512, i3, 0); try testArgs(i1024, i3, -1 << 2); try testArgs(i1024, i3, -1); try testArgs(i1024, i3, 0); - try testArgs(u1024, i3, -1 << 2); - try testArgs(u1024, i3, -1); - try testArgs(u1024, i3, 0); - try testArgs(i8, u3, 0); - try testArgs(i8, u3, 1 << 0); - try testArgs(i8, u3, 1 << 2); try testArgs(u8, u3, 0); try testArgs(u8, u3, 1 << 0); try testArgs(u8, u3, 1 << 2); - try testArgs(i16, u3, 0); - try testArgs(i16, u3, 1 << 0); - try testArgs(i16, u3, 1 << 2); try testArgs(u16, u3, 0); try testArgs(u16, u3, 1 << 0); try testArgs(u16, u3, 1 << 2); - try testArgs(i32, u3, 0); - try testArgs(i32, u3, 1 << 0); - try testArgs(i32, u3, 1 << 2); try testArgs(u32, u3, 0); try testArgs(u32, u3, 1 << 0); try testArgs(u32, u3, 1 << 2); - try testArgs(i64, u3, 0); - try testArgs(i64, u3, 1 << 0); - try testArgs(i64, u3, 1 << 2); try testArgs(u64, u3, 0); try testArgs(u64, u3, 1 << 0); try testArgs(u64, u3, 1 << 2); - try testArgs(i128, u3, 0); - try testArgs(i128, u3, 1 << 0); - try testArgs(i128, u3, 1 << 2); try testArgs(u128, u3, 0); try testArgs(u128, u3, 1 << 0); try testArgs(u128, u3, 1 << 2); - try testArgs(i256, u3, 0); - try testArgs(i256, u3, 1 << 0); - try testArgs(i256, u3, 1 << 2); try testArgs(u256, u3, 0); try testArgs(u256, u3, 1 << 0); try testArgs(u256, u3, 1 << 2); - try testArgs(i512, u3, 0); - try testArgs(i512, u3, 1 << 0); - try testArgs(i512, u3, 1 << 2); try testArgs(u512, u3, 0); try testArgs(u512, u3, 1 << 0); try testArgs(u512, u3, 1 << 2); - try testArgs(i1024, u3, 0); - try testArgs(i1024, u3, 1 << 0); - try testArgs(i1024, u3, 1 << 2); try testArgs(u1024, u3, 0); try testArgs(u1024, u3, 1 << 0); try testArgs(u1024, u3, 1 << 2); @@ -1943,96 +1815,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i4, -1 << 3); try testArgs(i8, i4, -1); try testArgs(i8, i4, 0); - try testArgs(u8, i4, -1 << 3); - try testArgs(u8, i4, -1); - try testArgs(u8, i4, 0); try testArgs(i16, i4, -1 << 3); try testArgs(i16, i4, -1); try testArgs(i16, i4, 0); - try testArgs(u16, i4, -1 << 3); - try testArgs(u16, i4, -1); - try testArgs(u16, i4, 0); try testArgs(i32, i4, -1 << 3); try testArgs(i32, i4, -1); try testArgs(i32, i4, 0); - try testArgs(u32, i4, -1 << 3); - try testArgs(u32, i4, -1); - try testArgs(u32, i4, 0); try testArgs(i64, i4, -1 << 3); try testArgs(i64, i4, -1); try testArgs(i64, i4, 0); - try testArgs(u64, i4, -1 << 3); - try testArgs(u64, i4, -1); - try testArgs(u64, i4, 0); try testArgs(i128, i4, -1 << 3); try testArgs(i128, i4, -1); try testArgs(i128, i4, 0); - try testArgs(u128, i4, -1 << 3); - try testArgs(u128, i4, -1); - try testArgs(u128, i4, 0); try testArgs(i256, i4, -1 << 3); try testArgs(i256, i4, -1); try testArgs(i256, i4, 0); - try testArgs(u256, i4, -1 << 3); - try testArgs(u256, i4, -1); - try testArgs(u256, i4, 0); try testArgs(i512, i4, -1 << 3); try testArgs(i512, i4, -1); try testArgs(i512, i4, 0); - try testArgs(u512, i4, -1 << 3); - try testArgs(u512, i4, -1); - try testArgs(u512, i4, 0); try testArgs(i1024, i4, -1 << 3); try testArgs(i1024, i4, -1); try testArgs(i1024, i4, 0); - try testArgs(u1024, i4, -1 << 3); - try testArgs(u1024, i4, -1); - try testArgs(u1024, i4, 0); - try testArgs(i8, u4, 0); - try testArgs(i8, u4, 1 << 0); - try testArgs(i8, u4, 1 << 3); try testArgs(u8, u4, 0); try testArgs(u8, u4, 1 << 0); try testArgs(u8, u4, 1 << 3); - try testArgs(i16, u4, 0); - try testArgs(i16, u4, 1 << 0); - try testArgs(i16, u4, 1 << 3); try testArgs(u16, u4, 0); try testArgs(u16, u4, 1 << 0); try testArgs(u16, u4, 1 << 3); - try testArgs(i32, u4, 0); - try testArgs(i32, u4, 1 << 0); - try testArgs(i32, u4, 1 << 3); try testArgs(u32, u4, 0); try testArgs(u32, u4, 1 << 0); try testArgs(u32, u4, 1 << 3); - try testArgs(i64, u4, 0); - try testArgs(i64, u4, 1 << 0); - try testArgs(i64, u4, 1 << 3); try testArgs(u64, u4, 0); try testArgs(u64, u4, 1 << 0); try testArgs(u64, u4, 1 << 3); - try testArgs(i128, u4, 0); - try testArgs(i128, u4, 1 << 0); - try testArgs(i128, u4, 1 << 3); try testArgs(u128, u4, 0); try testArgs(u128, u4, 1 << 0); try testArgs(u128, u4, 1 << 3); - try testArgs(i256, u4, 0); - try testArgs(i256, u4, 1 << 0); - try testArgs(i256, u4, 1 << 3); try testArgs(u256, u4, 0); try testArgs(u256, u4, 1 << 0); try testArgs(u256, u4, 1 << 3); - try testArgs(i512, u4, 0); - try testArgs(i512, u4, 1 << 0); - try testArgs(i512, u4, 1 << 3); try testArgs(u512, u4, 0); try testArgs(u512, u4, 1 << 0); try testArgs(u512, u4, 1 << 3); - try testArgs(i1024, u4, 0); - try testArgs(i1024, u4, 1 << 0); - try testArgs(i1024, u4, 1 << 3); try testArgs(u1024, u4, 0); try testArgs(u1024, u4, 1 << 0); try testArgs(u1024, u4, 1 << 3); @@ -2040,96 +1864,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i5, -1 << 4); try testArgs(i8, i5, -1); try testArgs(i8, i5, 0); - try testArgs(u8, i5, -1 << 4); - try testArgs(u8, i5, -1); - try testArgs(u8, i5, 0); try testArgs(i16, i5, -1 << 4); try testArgs(i16, i5, -1); try testArgs(i16, i5, 0); - try testArgs(u16, i5, -1 << 4); - try testArgs(u16, i5, -1); - try testArgs(u16, i5, 0); try testArgs(i32, i5, -1 << 4); try testArgs(i32, i5, -1); try testArgs(i32, i5, 0); - try testArgs(u32, i5, -1 << 4); - try testArgs(u32, i5, -1); - try testArgs(u32, i5, 0); try testArgs(i64, i5, -1 << 4); try testArgs(i64, i5, -1); try testArgs(i64, i5, 0); - try testArgs(u64, i5, -1 << 4); - try testArgs(u64, i5, -1); - try testArgs(u64, i5, 0); try testArgs(i128, i5, -1 << 4); try testArgs(i128, i5, -1); try testArgs(i128, i5, 0); - try testArgs(u128, i5, -1 << 4); - try testArgs(u128, i5, -1); - try testArgs(u128, i5, 0); try testArgs(i256, i5, -1 << 4); try testArgs(i256, i5, -1); try testArgs(i256, i5, 0); - try testArgs(u256, i5, -1 << 4); - try testArgs(u256, i5, -1); - try testArgs(u256, i5, 0); try testArgs(i512, i5, -1 << 4); try testArgs(i512, i5, -1); try testArgs(i512, i5, 0); - try testArgs(u512, i5, -1 << 4); - try testArgs(u512, i5, -1); - try testArgs(u512, i5, 0); try testArgs(i1024, i5, -1 << 4); try testArgs(i1024, i5, -1); try testArgs(i1024, i5, 0); - try testArgs(u1024, i5, -1 << 4); - try testArgs(u1024, i5, -1); - try testArgs(u1024, i5, 0); - try testArgs(i8, u5, 0); - try testArgs(i8, u5, 1 << 0); - try testArgs(i8, u5, 1 << 4); try testArgs(u8, u5, 0); try testArgs(u8, u5, 1 << 0); try testArgs(u8, u5, 1 << 4); - try testArgs(i16, u5, 0); - try testArgs(i16, u5, 1 << 0); - try testArgs(i16, u5, 1 << 4); try testArgs(u16, u5, 0); try testArgs(u16, u5, 1 << 0); try testArgs(u16, u5, 1 << 4); - try testArgs(i32, u5, 0); - try testArgs(i32, u5, 1 << 0); - try testArgs(i32, u5, 1 << 4); try testArgs(u32, u5, 0); try testArgs(u32, u5, 1 << 0); try testArgs(u32, u5, 1 << 4); - try testArgs(i64, u5, 0); - try testArgs(i64, u5, 1 << 0); - try testArgs(i64, u5, 1 << 4); try testArgs(u64, u5, 0); try testArgs(u64, u5, 1 << 0); try testArgs(u64, u5, 1 << 4); - try testArgs(i128, u5, 0); - try testArgs(i128, u5, 1 << 0); - try testArgs(i128, u5, 1 << 4); try testArgs(u128, u5, 0); try testArgs(u128, u5, 1 << 0); try testArgs(u128, u5, 1 << 4); - try testArgs(i256, u5, 0); - try testArgs(i256, u5, 1 << 0); - try testArgs(i256, u5, 1 << 4); try testArgs(u256, u5, 0); try testArgs(u256, u5, 1 << 0); try testArgs(u256, u5, 1 << 4); - try testArgs(i512, u5, 0); - try testArgs(i512, u5, 1 << 0); - try testArgs(i512, u5, 1 << 4); try testArgs(u512, u5, 0); try testArgs(u512, u5, 1 << 0); try testArgs(u512, u5, 1 << 4); - try testArgs(i1024, u5, 0); - try testArgs(i1024, u5, 1 << 0); - try testArgs(i1024, u5, 1 << 4); try testArgs(u1024, u5, 0); try testArgs(u1024, u5, 1 << 0); try testArgs(u1024, u5, 1 << 4); @@ -2137,96 +1913,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i7, -1 << 6); try testArgs(i8, i7, -1); try testArgs(i8, i7, 0); - try testArgs(u8, i7, -1 << 6); - try testArgs(u8, i7, -1); - try testArgs(u8, i7, 0); try testArgs(i16, i7, -1 << 6); try testArgs(i16, i7, -1); try testArgs(i16, i7, 0); - try testArgs(u16, i7, -1 << 6); - try testArgs(u16, i7, -1); - try testArgs(u16, i7, 0); try testArgs(i32, i7, -1 << 6); try testArgs(i32, i7, -1); try testArgs(i32, i7, 0); - try testArgs(u32, i7, -1 << 6); - try testArgs(u32, i7, -1); - try testArgs(u32, i7, 0); try testArgs(i64, i7, -1 << 6); try testArgs(i64, i7, -1); try testArgs(i64, i7, 0); - try testArgs(u64, i7, -1 << 6); - try testArgs(u64, i7, -1); - try testArgs(u64, i7, 0); try testArgs(i128, i7, -1 << 6); try testArgs(i128, i7, -1); try testArgs(i128, i7, 0); - try testArgs(u128, i7, -1 << 6); - try testArgs(u128, i7, -1); - try testArgs(u128, i7, 0); try testArgs(i256, i7, -1 << 6); try testArgs(i256, i7, -1); try testArgs(i256, i7, 0); - try testArgs(u256, i7, -1 << 6); - try testArgs(u256, i7, -1); - try testArgs(u256, i7, 0); try testArgs(i512, i7, -1 << 6); try testArgs(i512, i7, -1); try testArgs(i512, i7, 0); - try testArgs(u512, i7, -1 << 6); - try testArgs(u512, i7, -1); - try testArgs(u512, i7, 0); try testArgs(i1024, i7, -1 << 6); try testArgs(i1024, i7, -1); try testArgs(i1024, i7, 0); - try testArgs(u1024, i7, -1 << 6); - try testArgs(u1024, i7, -1); - try testArgs(u1024, i7, 0); - try testArgs(i8, u7, 0); - try testArgs(i8, u7, 1 << 0); - try testArgs(i8, u7, 1 << 6); try testArgs(u8, u7, 0); try testArgs(u8, u7, 1 << 0); try testArgs(u8, u7, 1 << 6); - try testArgs(i16, u7, 0); - try testArgs(i16, u7, 1 << 0); - try testArgs(i16, u7, 1 << 6); try testArgs(u16, u7, 0); try testArgs(u16, u7, 1 << 0); try testArgs(u16, u7, 1 << 6); - try testArgs(i32, u7, 0); - try testArgs(i32, u7, 1 << 0); - try testArgs(i32, u7, 1 << 6); try testArgs(u32, u7, 0); try testArgs(u32, u7, 1 << 0); try testArgs(u32, u7, 1 << 6); - try testArgs(i64, u7, 0); - try testArgs(i64, u7, 1 << 0); - try testArgs(i64, u7, 1 << 6); try testArgs(u64, u7, 0); try testArgs(u64, u7, 1 << 0); try testArgs(u64, u7, 1 << 6); - try testArgs(i128, u7, 0); - try testArgs(i128, u7, 1 << 0); - try testArgs(i128, u7, 1 << 6); try testArgs(u128, u7, 0); try testArgs(u128, u7, 1 << 0); try testArgs(u128, u7, 1 << 6); - try testArgs(i256, u7, 0); - try testArgs(i256, u7, 1 << 0); - try testArgs(i256, u7, 1 << 6); try testArgs(u256, u7, 0); try testArgs(u256, u7, 1 << 0); try testArgs(u256, u7, 1 << 6); - try testArgs(i512, u7, 0); - try testArgs(i512, u7, 1 << 0); - try testArgs(i512, u7, 1 << 6); try testArgs(u512, u7, 0); try testArgs(u512, u7, 1 << 0); try testArgs(u512, u7, 1 << 6); - try testArgs(i1024, u7, 0); - try testArgs(i1024, u7, 1 << 0); - try testArgs(i1024, u7, 1 << 6); try testArgs(u1024, u7, 0); try testArgs(u1024, u7, 1 << 0); try testArgs(u1024, u7, 1 << 6); @@ -2234,96 +1962,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i8, -1 << 7); try testArgs(i8, i8, -1); try testArgs(i8, i8, 0); - try testArgs(u8, i8, -1 << 7); - try testArgs(u8, i8, -1); - try testArgs(u8, i8, 0); try testArgs(i16, i8, -1 << 7); try testArgs(i16, i8, -1); try testArgs(i16, i8, 0); - try testArgs(u16, i8, -1 << 7); - try testArgs(u16, i8, -1); - try testArgs(u16, i8, 0); try testArgs(i32, i8, -1 << 7); try testArgs(i32, i8, -1); try testArgs(i32, i8, 0); - try testArgs(u32, i8, -1 << 7); - try testArgs(u32, i8, -1); - try testArgs(u32, i8, 0); try testArgs(i64, i8, -1 << 7); try testArgs(i64, i8, -1); try testArgs(i64, i8, 0); - try testArgs(u64, i8, -1 << 7); - try testArgs(u64, i8, -1); - try testArgs(u64, i8, 0); try testArgs(i128, i8, -1 << 7); try testArgs(i128, i8, -1); try testArgs(i128, i8, 0); - try testArgs(u128, i8, -1 << 7); - try testArgs(u128, i8, -1); - try testArgs(u128, i8, 0); try testArgs(i256, i8, -1 << 7); try testArgs(i256, i8, -1); try testArgs(i256, i8, 0); - try testArgs(u256, i8, -1 << 7); - try testArgs(u256, i8, -1); - try testArgs(u256, i8, 0); try testArgs(i512, i8, -1 << 7); try testArgs(i512, i8, -1); try testArgs(i512, i8, 0); - try testArgs(u512, i8, -1 << 7); - try testArgs(u512, i8, -1); - try testArgs(u512, i8, 0); try testArgs(i1024, i8, -1 << 7); try testArgs(i1024, i8, -1); try testArgs(i1024, i8, 0); - try testArgs(u1024, i8, -1 << 7); - try testArgs(u1024, i8, -1); - try testArgs(u1024, i8, 0); - try testArgs(i8, u8, 0); - try testArgs(i8, u8, 1 << 0); - try testArgs(i8, u8, 1 << 7); try testArgs(u8, u8, 0); try testArgs(u8, u8, 1 << 0); try testArgs(u8, u8, 1 << 7); - try testArgs(i16, u8, 0); - try testArgs(i16, u8, 1 << 0); - try testArgs(i16, u8, 1 << 7); try testArgs(u16, u8, 0); try testArgs(u16, u8, 1 << 0); try testArgs(u16, u8, 1 << 7); - try testArgs(i32, u8, 0); - try testArgs(i32, u8, 1 << 0); - try testArgs(i32, u8, 1 << 7); try testArgs(u32, u8, 0); try testArgs(u32, u8, 1 << 0); try testArgs(u32, u8, 1 << 7); - try testArgs(i64, u8, 0); - try testArgs(i64, u8, 1 << 0); - try testArgs(i64, u8, 1 << 7); try testArgs(u64, u8, 0); try testArgs(u64, u8, 1 << 0); try testArgs(u64, u8, 1 << 7); - try testArgs(i128, u8, 0); - try testArgs(i128, u8, 1 << 0); - try testArgs(i128, u8, 1 << 7); try testArgs(u128, u8, 0); try testArgs(u128, u8, 1 << 0); try testArgs(u128, u8, 1 << 7); - try testArgs(i256, u8, 0); - try testArgs(i256, u8, 1 << 0); - try testArgs(i256, u8, 1 << 7); try testArgs(u256, u8, 0); try testArgs(u256, u8, 1 << 0); try testArgs(u256, u8, 1 << 7); - try testArgs(i512, u8, 0); - try testArgs(i512, u8, 1 << 0); - try testArgs(i512, u8, 1 << 7); try testArgs(u512, u8, 0); try testArgs(u512, u8, 1 << 0); try testArgs(u512, u8, 1 << 7); - try testArgs(i1024, u8, 0); - try testArgs(i1024, u8, 1 << 0); - try testArgs(i1024, u8, 1 << 7); try testArgs(u1024, u8, 0); try testArgs(u1024, u8, 1 << 0); try testArgs(u1024, u8, 1 << 7); @@ -2331,96 +2011,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i9, -1 << 8); try testArgs(i8, i9, -1); try testArgs(i8, i9, 0); - try testArgs(u8, i9, -1 << 8); - try testArgs(u8, i9, -1); - try testArgs(u8, i9, 0); try testArgs(i16, i9, -1 << 8); try testArgs(i16, i9, -1); try testArgs(i16, i9, 0); - try testArgs(u16, i9, -1 << 8); - try testArgs(u16, i9, -1); - try testArgs(u16, i9, 0); try testArgs(i32, i9, -1 << 8); try testArgs(i32, i9, -1); try testArgs(i32, i9, 0); - try testArgs(u32, i9, -1 << 8); - try testArgs(u32, i9, -1); - try testArgs(u32, i9, 0); try testArgs(i64, i9, -1 << 8); try testArgs(i64, i9, -1); try testArgs(i64, i9, 0); - try testArgs(u64, i9, -1 << 8); - try testArgs(u64, i9, -1); - try testArgs(u64, i9, 0); try testArgs(i128, i9, -1 << 8); try testArgs(i128, i9, -1); try testArgs(i128, i9, 0); - try testArgs(u128, i9, -1 << 8); - try testArgs(u128, i9, -1); - try testArgs(u128, i9, 0); try testArgs(i256, i9, -1 << 8); try testArgs(i256, i9, -1); try testArgs(i256, i9, 0); - try testArgs(u256, i9, -1 << 8); - try testArgs(u256, i9, -1); - try testArgs(u256, i9, 0); try testArgs(i512, i9, -1 << 8); try testArgs(i512, i9, -1); try testArgs(i512, i9, 0); - try testArgs(u512, i9, -1 << 8); - try testArgs(u512, i9, -1); - try testArgs(u512, i9, 0); try testArgs(i1024, i9, -1 << 8); try testArgs(i1024, i9, -1); try testArgs(i1024, i9, 0); - try testArgs(u1024, i9, -1 << 8); - try testArgs(u1024, i9, -1); - try testArgs(u1024, i9, 0); - try testArgs(i8, u9, 0); - try testArgs(i8, u9, 1 << 0); - try testArgs(i8, u9, 1 << 8); try testArgs(u8, u9, 0); try testArgs(u8, u9, 1 << 0); try testArgs(u8, u9, 1 << 8); - try testArgs(i16, u9, 0); - try testArgs(i16, u9, 1 << 0); - try testArgs(i16, u9, 1 << 8); try testArgs(u16, u9, 0); try testArgs(u16, u9, 1 << 0); try testArgs(u16, u9, 1 << 8); - try testArgs(i32, u9, 0); - try testArgs(i32, u9, 1 << 0); - try testArgs(i32, u9, 1 << 8); try testArgs(u32, u9, 0); try testArgs(u32, u9, 1 << 0); try testArgs(u32, u9, 1 << 8); - try testArgs(i64, u9, 0); - try testArgs(i64, u9, 1 << 0); - try testArgs(i64, u9, 1 << 8); try testArgs(u64, u9, 0); try testArgs(u64, u9, 1 << 0); try testArgs(u64, u9, 1 << 8); - try testArgs(i128, u9, 0); - try testArgs(i128, u9, 1 << 0); - try testArgs(i128, u9, 1 << 8); try testArgs(u128, u9, 0); try testArgs(u128, u9, 1 << 0); try testArgs(u128, u9, 1 << 8); - try testArgs(i256, u9, 0); - try testArgs(i256, u9, 1 << 0); - try testArgs(i256, u9, 1 << 8); try testArgs(u256, u9, 0); try testArgs(u256, u9, 1 << 0); try testArgs(u256, u9, 1 << 8); - try testArgs(i512, u9, 0); - try testArgs(i512, u9, 1 << 0); - try testArgs(i512, u9, 1 << 8); try testArgs(u512, u9, 0); try testArgs(u512, u9, 1 << 0); try testArgs(u512, u9, 1 << 8); - try testArgs(i1024, u9, 0); - try testArgs(i1024, u9, 1 << 0); - try testArgs(i1024, u9, 1 << 8); try testArgs(u1024, u9, 0); try testArgs(u1024, u9, 1 << 0); try testArgs(u1024, u9, 1 << 8); @@ -2428,96 +2060,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i15, -1 << 14); try testArgs(i8, i15, -1); try testArgs(i8, i15, 0); - try testArgs(u8, i15, -1 << 14); - try testArgs(u8, i15, -1); - try testArgs(u8, i15, 0); try testArgs(i16, i15, -1 << 14); try testArgs(i16, i15, -1); try testArgs(i16, i15, 0); - try testArgs(u16, i15, -1 << 14); - try testArgs(u16, i15, -1); - try testArgs(u16, i15, 0); try testArgs(i32, i15, -1 << 14); try testArgs(i32, i15, -1); try testArgs(i32, i15, 0); - try testArgs(u32, i15, -1 << 14); - try testArgs(u32, i15, -1); - try testArgs(u32, i15, 0); try testArgs(i64, i15, -1 << 14); try testArgs(i64, i15, -1); try testArgs(i64, i15, 0); - try testArgs(u64, i15, -1 << 14); - try testArgs(u64, i15, -1); - try testArgs(u64, i15, 0); try testArgs(i128, i15, -1 << 14); try testArgs(i128, i15, -1); try testArgs(i128, i15, 0); - try testArgs(u128, i15, -1 << 14); - try testArgs(u128, i15, -1); - try testArgs(u128, i15, 0); try testArgs(i256, i15, -1 << 14); try testArgs(i256, i15, -1); try testArgs(i256, i15, 0); - try testArgs(u256, i15, -1 << 14); - try testArgs(u256, i15, -1); - try testArgs(u256, i15, 0); try testArgs(i512, i15, -1 << 14); try testArgs(i512, i15, -1); try testArgs(i512, i15, 0); - try testArgs(u512, i15, -1 << 14); - try testArgs(u512, i15, -1); - try testArgs(u512, i15, 0); try testArgs(i1024, i15, -1 << 14); try testArgs(i1024, i15, -1); try testArgs(i1024, i15, 0); - try testArgs(u1024, i15, -1 << 14); - try testArgs(u1024, i15, -1); - try testArgs(u1024, i15, 0); - try testArgs(i8, u15, 0); - try testArgs(i8, u15, 1 << 0); - try testArgs(i8, u15, 1 << 14); try testArgs(u8, u15, 0); try testArgs(u8, u15, 1 << 0); try testArgs(u8, u15, 1 << 14); - try testArgs(i16, u15, 0); - try testArgs(i16, u15, 1 << 0); - try testArgs(i16, u15, 1 << 14); try testArgs(u16, u15, 0); try testArgs(u16, u15, 1 << 0); try testArgs(u16, u15, 1 << 14); - try testArgs(i32, u15, 0); - try testArgs(i32, u15, 1 << 0); - try testArgs(i32, u15, 1 << 14); try testArgs(u32, u15, 0); try testArgs(u32, u15, 1 << 0); try testArgs(u32, u15, 1 << 14); - try testArgs(i64, u15, 0); - try testArgs(i64, u15, 1 << 0); - try testArgs(i64, u15, 1 << 14); try testArgs(u64, u15, 0); try testArgs(u64, u15, 1 << 0); try testArgs(u64, u15, 1 << 14); - try testArgs(i128, u15, 0); - try testArgs(i128, u15, 1 << 0); - try testArgs(i128, u15, 1 << 14); try testArgs(u128, u15, 0); try testArgs(u128, u15, 1 << 0); try testArgs(u128, u15, 1 << 14); - try testArgs(i256, u15, 0); - try testArgs(i256, u15, 1 << 0); - try testArgs(i256, u15, 1 << 14); try testArgs(u256, u15, 0); try testArgs(u256, u15, 1 << 0); try testArgs(u256, u15, 1 << 14); - try testArgs(i512, u15, 0); - try testArgs(i512, u15, 1 << 0); - try testArgs(i512, u15, 1 << 14); try testArgs(u512, u15, 0); try testArgs(u512, u15, 1 << 0); try testArgs(u512, u15, 1 << 14); - try testArgs(i1024, u15, 0); - try testArgs(i1024, u15, 1 << 0); - try testArgs(i1024, u15, 1 << 14); try testArgs(u1024, u15, 0); try testArgs(u1024, u15, 1 << 0); try testArgs(u1024, u15, 1 << 14); @@ -2525,96 +2109,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i16, -1 << 15); try testArgs(i8, i16, -1); try testArgs(i8, i16, 0); - try testArgs(u8, i16, -1 << 15); - try testArgs(u8, i16, -1); - try testArgs(u8, i16, 0); try testArgs(i16, i16, -1 << 15); try testArgs(i16, i16, -1); try testArgs(i16, i16, 0); - try testArgs(u16, i16, -1 << 15); - try testArgs(u16, i16, -1); - try testArgs(u16, i16, 0); try testArgs(i32, i16, -1 << 15); try testArgs(i32, i16, -1); try testArgs(i32, i16, 0); - try testArgs(u32, i16, -1 << 15); - try testArgs(u32, i16, -1); - try testArgs(u32, i16, 0); try testArgs(i64, i16, -1 << 15); try testArgs(i64, i16, -1); try testArgs(i64, i16, 0); - try testArgs(u64, i16, -1 << 15); - try testArgs(u64, i16, -1); - try testArgs(u64, i16, 0); try testArgs(i128, i16, -1 << 15); try testArgs(i128, i16, -1); try testArgs(i128, i16, 0); - try testArgs(u128, i16, -1 << 15); - try testArgs(u128, i16, -1); - try testArgs(u128, i16, 0); try testArgs(i256, i16, -1 << 15); try testArgs(i256, i16, -1); try testArgs(i256, i16, 0); - try testArgs(u256, i16, -1 << 15); - try testArgs(u256, i16, -1); - try testArgs(u256, i16, 0); try testArgs(i512, i16, -1 << 15); try testArgs(i512, i16, -1); try testArgs(i512, i16, 0); - try testArgs(u512, i16, -1 << 15); - try testArgs(u512, i16, -1); - try testArgs(u512, i16, 0); try testArgs(i1024, i16, -1 << 15); try testArgs(i1024, i16, -1); try testArgs(i1024, i16, 0); - try testArgs(u1024, i16, -1 << 15); - try testArgs(u1024, i16, -1); - try testArgs(u1024, i16, 0); - try testArgs(i8, u16, 0); - try testArgs(i8, u16, 1 << 0); - try testArgs(i8, u16, 1 << 15); try testArgs(u8, u16, 0); try testArgs(u8, u16, 1 << 0); try testArgs(u8, u16, 1 << 15); - try testArgs(i16, u16, 0); - try testArgs(i16, u16, 1 << 0); - try testArgs(i16, u16, 1 << 15); try testArgs(u16, u16, 0); try testArgs(u16, u16, 1 << 0); try testArgs(u16, u16, 1 << 15); - try testArgs(i32, u16, 0); - try testArgs(i32, u16, 1 << 0); - try testArgs(i32, u16, 1 << 15); try testArgs(u32, u16, 0); try testArgs(u32, u16, 1 << 0); try testArgs(u32, u16, 1 << 15); - try testArgs(i64, u16, 0); - try testArgs(i64, u16, 1 << 0); - try testArgs(i64, u16, 1 << 15); try testArgs(u64, u16, 0); try testArgs(u64, u16, 1 << 0); try testArgs(u64, u16, 1 << 15); - try testArgs(i128, u16, 0); - try testArgs(i128, u16, 1 << 0); - try testArgs(i128, u16, 1 << 15); try testArgs(u128, u16, 0); try testArgs(u128, u16, 1 << 0); try testArgs(u128, u16, 1 << 15); - try testArgs(i256, u16, 0); - try testArgs(i256, u16, 1 << 0); - try testArgs(i256, u16, 1 << 15); try testArgs(u256, u16, 0); try testArgs(u256, u16, 1 << 0); try testArgs(u256, u16, 1 << 15); - try testArgs(i512, u16, 0); - try testArgs(i512, u16, 1 << 0); - try testArgs(i512, u16, 1 << 15); try testArgs(u512, u16, 0); try testArgs(u512, u16, 1 << 0); try testArgs(u512, u16, 1 << 15); - try testArgs(i1024, u16, 0); - try testArgs(i1024, u16, 1 << 0); - try testArgs(i1024, u16, 1 << 15); try testArgs(u1024, u16, 0); try testArgs(u1024, u16, 1 << 0); try testArgs(u1024, u16, 1 << 15); @@ -2622,96 +2158,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i17, -1 << 16); try testArgs(i8, i17, -1); try testArgs(i8, i17, 0); - try testArgs(u8, i17, -1 << 16); - try testArgs(u8, i17, -1); - try testArgs(u8, i17, 0); try testArgs(i16, i17, -1 << 16); try testArgs(i16, i17, -1); try testArgs(i16, i17, 0); - try testArgs(u16, i17, -1 << 16); - try testArgs(u16, i17, -1); - try testArgs(u16, i17, 0); try testArgs(i32, i17, -1 << 16); try testArgs(i32, i17, -1); try testArgs(i32, i17, 0); - try testArgs(u32, i17, -1 << 16); - try testArgs(u32, i17, -1); - try testArgs(u32, i17, 0); try testArgs(i64, i17, -1 << 16); try testArgs(i64, i17, -1); try testArgs(i64, i17, 0); - try testArgs(u64, i17, -1 << 16); - try testArgs(u64, i17, -1); - try testArgs(u64, i17, 0); try testArgs(i128, i17, -1 << 16); try testArgs(i128, i17, -1); try testArgs(i128, i17, 0); - try testArgs(u128, i17, -1 << 16); - try testArgs(u128, i17, -1); - try testArgs(u128, i17, 0); try testArgs(i256, i17, -1 << 16); try testArgs(i256, i17, -1); try testArgs(i256, i17, 0); - try testArgs(u256, i17, -1 << 16); - try testArgs(u256, i17, -1); - try testArgs(u256, i17, 0); try testArgs(i512, i17, -1 << 16); try testArgs(i512, i17, -1); try testArgs(i512, i17, 0); - try testArgs(u512, i17, -1 << 16); - try testArgs(u512, i17, -1); - try testArgs(u512, i17, 0); try testArgs(i1024, i17, -1 << 16); try testArgs(i1024, i17, -1); try testArgs(i1024, i17, 0); - try testArgs(u1024, i17, -1 << 16); - try testArgs(u1024, i17, -1); - try testArgs(u1024, i17, 0); - try testArgs(i8, u17, 0); - try testArgs(i8, u17, 1 << 0); - try testArgs(i8, u17, 1 << 16); try testArgs(u8, u17, 0); try testArgs(u8, u17, 1 << 0); try testArgs(u8, u17, 1 << 16); - try testArgs(i16, u17, 0); - try testArgs(i16, u17, 1 << 0); - try testArgs(i16, u17, 1 << 16); try testArgs(u16, u17, 0); try testArgs(u16, u17, 1 << 0); try testArgs(u16, u17, 1 << 16); - try testArgs(i32, u17, 0); - try testArgs(i32, u17, 1 << 0); - try testArgs(i32, u17, 1 << 16); try testArgs(u32, u17, 0); try testArgs(u32, u17, 1 << 0); try testArgs(u32, u17, 1 << 16); - try testArgs(i64, u17, 0); - try testArgs(i64, u17, 1 << 0); - try testArgs(i64, u17, 1 << 16); try testArgs(u64, u17, 0); try testArgs(u64, u17, 1 << 0); try testArgs(u64, u17, 1 << 16); - try testArgs(i128, u17, 0); - try testArgs(i128, u17, 1 << 0); - try testArgs(i128, u17, 1 << 16); try testArgs(u128, u17, 0); try testArgs(u128, u17, 1 << 0); try testArgs(u128, u17, 1 << 16); - try testArgs(i256, u17, 0); - try testArgs(i256, u17, 1 << 0); - try testArgs(i256, u17, 1 << 16); try testArgs(u256, u17, 0); try testArgs(u256, u17, 1 << 0); try testArgs(u256, u17, 1 << 16); - try testArgs(i512, u17, 0); - try testArgs(i512, u17, 1 << 0); - try testArgs(i512, u17, 1 << 16); try testArgs(u512, u17, 0); try testArgs(u512, u17, 1 << 0); try testArgs(u512, u17, 1 << 16); - try testArgs(i1024, u17, 0); - try testArgs(i1024, u17, 1 << 0); - try testArgs(i1024, u17, 1 << 16); try testArgs(u1024, u17, 0); try testArgs(u1024, u17, 1 << 0); try testArgs(u1024, u17, 1 << 16); @@ -2719,96 +2207,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i31, -1 << 30); try testArgs(i8, i31, -1); try testArgs(i8, i31, 0); - try testArgs(u8, i31, -1 << 30); - try testArgs(u8, i31, -1); - try testArgs(u8, i31, 0); try testArgs(i16, i31, -1 << 30); try testArgs(i16, i31, -1); try testArgs(i16, i31, 0); - try testArgs(u16, i31, -1 << 30); - try testArgs(u16, i31, -1); - try testArgs(u16, i31, 0); try testArgs(i32, i31, -1 << 30); try testArgs(i32, i31, -1); try testArgs(i32, i31, 0); - try testArgs(u32, i31, -1 << 30); - try testArgs(u32, i31, -1); - try testArgs(u32, i31, 0); try testArgs(i64, i31, -1 << 30); try testArgs(i64, i31, -1); try testArgs(i64, i31, 0); - try testArgs(u64, i31, -1 << 30); - try testArgs(u64, i31, -1); - try testArgs(u64, i31, 0); try testArgs(i128, i31, -1 << 30); try testArgs(i128, i31, -1); try testArgs(i128, i31, 0); - try testArgs(u128, i31, -1 << 30); - try testArgs(u128, i31, -1); - try testArgs(u128, i31, 0); try testArgs(i256, i31, -1 << 30); try testArgs(i256, i31, -1); try testArgs(i256, i31, 0); - try testArgs(u256, i31, -1 << 30); - try testArgs(u256, i31, -1); - try testArgs(u256, i31, 0); try testArgs(i512, i31, -1 << 30); try testArgs(i512, i31, -1); try testArgs(i512, i31, 0); - try testArgs(u512, i31, -1 << 30); - try testArgs(u512, i31, -1); - try testArgs(u512, i31, 0); try testArgs(i1024, i31, -1 << 30); try testArgs(i1024, i31, -1); try testArgs(i1024, i31, 0); - try testArgs(u1024, i31, -1 << 30); - try testArgs(u1024, i31, -1); - try testArgs(u1024, i31, 0); - try testArgs(i8, u31, 0); - try testArgs(i8, u31, 1 << 0); - try testArgs(i8, u31, 1 << 30); try testArgs(u8, u31, 0); try testArgs(u8, u31, 1 << 0); try testArgs(u8, u31, 1 << 30); - try testArgs(i16, u31, 0); - try testArgs(i16, u31, 1 << 0); - try testArgs(i16, u31, 1 << 30); try testArgs(u16, u31, 0); try testArgs(u16, u31, 1 << 0); try testArgs(u16, u31, 1 << 30); - try testArgs(i32, u31, 0); - try testArgs(i32, u31, 1 << 0); - try testArgs(i32, u31, 1 << 30); try testArgs(u32, u31, 0); try testArgs(u32, u31, 1 << 0); try testArgs(u32, u31, 1 << 30); - try testArgs(i64, u31, 0); - try testArgs(i64, u31, 1 << 0); - try testArgs(i64, u31, 1 << 30); try testArgs(u64, u31, 0); try testArgs(u64, u31, 1 << 0); try testArgs(u64, u31, 1 << 30); - try testArgs(i128, u31, 0); - try testArgs(i128, u31, 1 << 0); - try testArgs(i128, u31, 1 << 30); try testArgs(u128, u31, 0); try testArgs(u128, u31, 1 << 0); try testArgs(u128, u31, 1 << 30); - try testArgs(i256, u31, 0); - try testArgs(i256, u31, 1 << 0); - try testArgs(i256, u31, 1 << 30); try testArgs(u256, u31, 0); try testArgs(u256, u31, 1 << 0); try testArgs(u256, u31, 1 << 30); - try testArgs(i512, u31, 0); - try testArgs(i512, u31, 1 << 0); - try testArgs(i512, u31, 1 << 30); try testArgs(u512, u31, 0); try testArgs(u512, u31, 1 << 0); try testArgs(u512, u31, 1 << 30); - try testArgs(i1024, u31, 0); - try testArgs(i1024, u31, 1 << 0); - try testArgs(i1024, u31, 1 << 30); try testArgs(u1024, u31, 0); try testArgs(u1024, u31, 1 << 0); try testArgs(u1024, u31, 1 << 30); @@ -2816,96 +2256,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i32, -1 << 31); try testArgs(i8, i32, -1); try testArgs(i8, i32, 0); - try testArgs(u8, i32, -1 << 31); - try testArgs(u8, i32, -1); - try testArgs(u8, i32, 0); try testArgs(i16, i32, -1 << 31); try testArgs(i16, i32, -1); try testArgs(i16, i32, 0); - try testArgs(u16, i32, -1 << 31); - try testArgs(u16, i32, -1); - try testArgs(u16, i32, 0); try testArgs(i32, i32, -1 << 31); try testArgs(i32, i32, -1); try testArgs(i32, i32, 0); - try testArgs(u32, i32, -1 << 31); - try testArgs(u32, i32, -1); - try testArgs(u32, i32, 0); try testArgs(i64, i32, -1 << 31); try testArgs(i64, i32, -1); try testArgs(i64, i32, 0); - try testArgs(u64, i32, -1 << 31); - try testArgs(u64, i32, -1); - try testArgs(u64, i32, 0); try testArgs(i128, i32, -1 << 31); try testArgs(i128, i32, -1); try testArgs(i128, i32, 0); - try testArgs(u128, i32, -1 << 31); - try testArgs(u128, i32, -1); - try testArgs(u128, i32, 0); try testArgs(i256, i32, -1 << 31); try testArgs(i256, i32, -1); try testArgs(i256, i32, 0); - try testArgs(u256, i32, -1 << 31); - try testArgs(u256, i32, -1); - try testArgs(u256, i32, 0); try testArgs(i512, i32, -1 << 31); try testArgs(i512, i32, -1); try testArgs(i512, i32, 0); - try testArgs(u512, i32, -1 << 31); - try testArgs(u512, i32, -1); - try testArgs(u512, i32, 0); try testArgs(i1024, i32, -1 << 31); try testArgs(i1024, i32, -1); try testArgs(i1024, i32, 0); - try testArgs(u1024, i32, -1 << 31); - try testArgs(u1024, i32, -1); - try testArgs(u1024, i32, 0); - try testArgs(i8, u32, 0); - try testArgs(i8, u32, 1 << 0); - try testArgs(i8, u32, 1 << 31); try testArgs(u8, u32, 0); try testArgs(u8, u32, 1 << 0); try testArgs(u8, u32, 1 << 31); - try testArgs(i16, u32, 0); - try testArgs(i16, u32, 1 << 0); - try testArgs(i16, u32, 1 << 31); try testArgs(u16, u32, 0); try testArgs(u16, u32, 1 << 0); try testArgs(u16, u32, 1 << 31); - try testArgs(i32, u32, 0); - try testArgs(i32, u32, 1 << 0); - try testArgs(i32, u32, 1 << 31); try testArgs(u32, u32, 0); try testArgs(u32, u32, 1 << 0); try testArgs(u32, u32, 1 << 31); - try testArgs(i64, u32, 0); - try testArgs(i64, u32, 1 << 0); - try testArgs(i64, u32, 1 << 31); try testArgs(u64, u32, 0); try testArgs(u64, u32, 1 << 0); try testArgs(u64, u32, 1 << 31); - try testArgs(i128, u32, 0); - try testArgs(i128, u32, 1 << 0); - try testArgs(i128, u32, 1 << 31); try testArgs(u128, u32, 0); try testArgs(u128, u32, 1 << 0); try testArgs(u128, u32, 1 << 31); - try testArgs(i256, u32, 0); - try testArgs(i256, u32, 1 << 0); - try testArgs(i256, u32, 1 << 31); try testArgs(u256, u32, 0); try testArgs(u256, u32, 1 << 0); try testArgs(u256, u32, 1 << 31); - try testArgs(i512, u32, 0); - try testArgs(i512, u32, 1 << 0); - try testArgs(i512, u32, 1 << 31); try testArgs(u512, u32, 0); try testArgs(u512, u32, 1 << 0); try testArgs(u512, u32, 1 << 31); - try testArgs(i1024, u32, 0); - try testArgs(i1024, u32, 1 << 0); - try testArgs(i1024, u32, 1 << 31); try testArgs(u1024, u32, 0); try testArgs(u1024, u32, 1 << 0); try testArgs(u1024, u32, 1 << 31); @@ -2913,96 +2305,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i33, -1 << 32); try testArgs(i8, i33, -1); try testArgs(i8, i33, 0); - try testArgs(u8, i33, -1 << 32); - try testArgs(u8, i33, -1); - try testArgs(u8, i33, 0); try testArgs(i16, i33, -1 << 32); try testArgs(i16, i33, -1); try testArgs(i16, i33, 0); - try testArgs(u16, i33, -1 << 32); - try testArgs(u16, i33, -1); - try testArgs(u16, i33, 0); try testArgs(i32, i33, -1 << 32); try testArgs(i32, i33, -1); try testArgs(i32, i33, 0); - try testArgs(u32, i33, -1 << 32); - try testArgs(u32, i33, -1); - try testArgs(u32, i33, 0); try testArgs(i64, i33, -1 << 32); try testArgs(i64, i33, -1); try testArgs(i64, i33, 0); - try testArgs(u64, i33, -1 << 32); - try testArgs(u64, i33, -1); - try testArgs(u64, i33, 0); try testArgs(i128, i33, -1 << 32); try testArgs(i128, i33, -1); try testArgs(i128, i33, 0); - try testArgs(u128, i33, -1 << 32); - try testArgs(u128, i33, -1); - try testArgs(u128, i33, 0); try testArgs(i256, i33, -1 << 32); try testArgs(i256, i33, -1); try testArgs(i256, i33, 0); - try testArgs(u256, i33, -1 << 32); - try testArgs(u256, i33, -1); - try testArgs(u256, i33, 0); try testArgs(i512, i33, -1 << 32); try testArgs(i512, i33, -1); try testArgs(i512, i33, 0); - try testArgs(u512, i33, -1 << 32); - try testArgs(u512, i33, -1); - try testArgs(u512, i33, 0); try testArgs(i1024, i33, -1 << 32); try testArgs(i1024, i33, -1); try testArgs(i1024, i33, 0); - try testArgs(u1024, i33, -1 << 32); - try testArgs(u1024, i33, -1); - try testArgs(u1024, i33, 0); - try testArgs(i8, u33, 0); - try testArgs(i8, u33, 1 << 0); - try testArgs(i8, u33, 1 << 32); try testArgs(u8, u33, 0); try testArgs(u8, u33, 1 << 0); try testArgs(u8, u33, 1 << 32); - try testArgs(i16, u33, 0); - try testArgs(i16, u33, 1 << 0); - try testArgs(i16, u33, 1 << 32); try testArgs(u16, u33, 0); try testArgs(u16, u33, 1 << 0); try testArgs(u16, u33, 1 << 32); - try testArgs(i32, u33, 0); - try testArgs(i32, u33, 1 << 0); - try testArgs(i32, u33, 1 << 32); try testArgs(u32, u33, 0); try testArgs(u32, u33, 1 << 0); try testArgs(u32, u33, 1 << 32); - try testArgs(i64, u33, 0); - try testArgs(i64, u33, 1 << 0); - try testArgs(i64, u33, 1 << 32); try testArgs(u64, u33, 0); try testArgs(u64, u33, 1 << 0); try testArgs(u64, u33, 1 << 32); - try testArgs(i128, u33, 0); - try testArgs(i128, u33, 1 << 0); - try testArgs(i128, u33, 1 << 32); try testArgs(u128, u33, 0); try testArgs(u128, u33, 1 << 0); try testArgs(u128, u33, 1 << 32); - try testArgs(i256, u33, 0); - try testArgs(i256, u33, 1 << 0); - try testArgs(i256, u33, 1 << 32); try testArgs(u256, u33, 0); try testArgs(u256, u33, 1 << 0); try testArgs(u256, u33, 1 << 32); - try testArgs(i512, u33, 0); - try testArgs(i512, u33, 1 << 0); - try testArgs(i512, u33, 1 << 32); try testArgs(u512, u33, 0); try testArgs(u512, u33, 1 << 0); try testArgs(u512, u33, 1 << 32); - try testArgs(i1024, u33, 0); - try testArgs(i1024, u33, 1 << 0); - try testArgs(i1024, u33, 1 << 32); try testArgs(u1024, u33, 0); try testArgs(u1024, u33, 1 << 0); try testArgs(u1024, u33, 1 << 32); @@ -3010,96 +2354,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i63, -1 << 62); try testArgs(i8, i63, -1); try testArgs(i8, i63, 0); - try testArgs(u8, i63, -1 << 62); - try testArgs(u8, i63, -1); - try testArgs(u8, i63, 0); try testArgs(i16, i63, -1 << 62); try testArgs(i16, i63, -1); try testArgs(i16, i63, 0); - try testArgs(u16, i63, -1 << 62); - try testArgs(u16, i63, -1); - try testArgs(u16, i63, 0); try testArgs(i32, i63, -1 << 62); try testArgs(i32, i63, -1); try testArgs(i32, i63, 0); - try testArgs(u32, i63, -1 << 62); - try testArgs(u32, i63, -1); - try testArgs(u32, i63, 0); try testArgs(i64, i63, -1 << 62); try testArgs(i64, i63, -1); try testArgs(i64, i63, 0); - try testArgs(u64, i63, -1 << 62); - try testArgs(u64, i63, -1); - try testArgs(u64, i63, 0); try testArgs(i128, i63, -1 << 62); try testArgs(i128, i63, -1); try testArgs(i128, i63, 0); - try testArgs(u128, i63, -1 << 62); - try testArgs(u128, i63, -1); - try testArgs(u128, i63, 0); try testArgs(i256, i63, -1 << 62); try testArgs(i256, i63, -1); try testArgs(i256, i63, 0); - try testArgs(u256, i63, -1 << 62); - try testArgs(u256, i63, -1); - try testArgs(u256, i63, 0); try testArgs(i512, i63, -1 << 62); try testArgs(i512, i63, -1); try testArgs(i512, i63, 0); - try testArgs(u512, i63, -1 << 62); - try testArgs(u512, i63, -1); - try testArgs(u512, i63, 0); try testArgs(i1024, i63, -1 << 62); try testArgs(i1024, i63, -1); try testArgs(i1024, i63, 0); - try testArgs(u1024, i63, -1 << 62); - try testArgs(u1024, i63, -1); - try testArgs(u1024, i63, 0); - try testArgs(i8, u63, 0); - try testArgs(i8, u63, 1 << 0); - try testArgs(i8, u63, 1 << 62); try testArgs(u8, u63, 0); try testArgs(u8, u63, 1 << 0); try testArgs(u8, u63, 1 << 62); - try testArgs(i16, u63, 0); - try testArgs(i16, u63, 1 << 0); - try testArgs(i16, u63, 1 << 62); try testArgs(u16, u63, 0); try testArgs(u16, u63, 1 << 0); try testArgs(u16, u63, 1 << 62); - try testArgs(i32, u63, 0); - try testArgs(i32, u63, 1 << 0); - try testArgs(i32, u63, 1 << 62); try testArgs(u32, u63, 0); try testArgs(u32, u63, 1 << 0); try testArgs(u32, u63, 1 << 62); - try testArgs(i64, u63, 0); - try testArgs(i64, u63, 1 << 0); - try testArgs(i64, u63, 1 << 62); try testArgs(u64, u63, 0); try testArgs(u64, u63, 1 << 0); try testArgs(u64, u63, 1 << 62); - try testArgs(i128, u63, 0); - try testArgs(i128, u63, 1 << 0); - try testArgs(i128, u63, 1 << 62); try testArgs(u128, u63, 0); try testArgs(u128, u63, 1 << 0); try testArgs(u128, u63, 1 << 62); - try testArgs(i256, u63, 0); - try testArgs(i256, u63, 1 << 0); - try testArgs(i256, u63, 1 << 62); try testArgs(u256, u63, 0); try testArgs(u256, u63, 1 << 0); try testArgs(u256, u63, 1 << 62); - try testArgs(i512, u63, 0); - try testArgs(i512, u63, 1 << 0); - try testArgs(i512, u63, 1 << 62); try testArgs(u512, u63, 0); try testArgs(u512, u63, 1 << 0); try testArgs(u512, u63, 1 << 62); - try testArgs(i1024, u63, 0); - try testArgs(i1024, u63, 1 << 0); - try testArgs(i1024, u63, 1 << 62); try testArgs(u1024, u63, 0); try testArgs(u1024, u63, 1 << 0); try testArgs(u1024, u63, 1 << 62); @@ -3107,96 +2403,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i64, -1 << 63); try testArgs(i8, i64, -1); try testArgs(i8, i64, 0); - try testArgs(u8, i64, -1 << 63); - try testArgs(u8, i64, -1); - try testArgs(u8, i64, 0); try testArgs(i16, i64, -1 << 63); try testArgs(i16, i64, -1); try testArgs(i16, i64, 0); - try testArgs(u16, i64, -1 << 63); - try testArgs(u16, i64, -1); - try testArgs(u16, i64, 0); try testArgs(i32, i64, -1 << 63); try testArgs(i32, i64, -1); try testArgs(i32, i64, 0); - try testArgs(u32, i64, -1 << 63); - try testArgs(u32, i64, -1); - try testArgs(u32, i64, 0); try testArgs(i64, i64, -1 << 63); try testArgs(i64, i64, -1); try testArgs(i64, i64, 0); - try testArgs(u64, i64, -1 << 63); - try testArgs(u64, i64, -1); - try testArgs(u64, i64, 0); try testArgs(i128, i64, -1 << 63); try testArgs(i128, i64, -1); try testArgs(i128, i64, 0); - try testArgs(u128, i64, -1 << 63); - try testArgs(u128, i64, -1); - try testArgs(u128, i64, 0); try testArgs(i256, i64, -1 << 63); try testArgs(i256, i64, -1); try testArgs(i256, i64, 0); - try testArgs(u256, i64, -1 << 63); - try testArgs(u256, i64, -1); - try testArgs(u256, i64, 0); try testArgs(i512, i64, -1 << 63); try testArgs(i512, i64, -1); try testArgs(i512, i64, 0); - try testArgs(u512, i64, -1 << 63); - try testArgs(u512, i64, -1); - try testArgs(u512, i64, 0); try testArgs(i1024, i64, -1 << 63); try testArgs(i1024, i64, -1); try testArgs(i1024, i64, 0); - try testArgs(u1024, i64, -1 << 63); - try testArgs(u1024, i64, -1); - try testArgs(u1024, i64, 0); - try testArgs(i8, u64, 0); - try testArgs(i8, u64, 1 << 0); - try testArgs(i8, u64, 1 << 63); try testArgs(u8, u64, 0); try testArgs(u8, u64, 1 << 0); try testArgs(u8, u64, 1 << 63); - try testArgs(i16, u64, 0); - try testArgs(i16, u64, 1 << 0); - try testArgs(i16, u64, 1 << 63); try testArgs(u16, u64, 0); try testArgs(u16, u64, 1 << 0); try testArgs(u16, u64, 1 << 63); - try testArgs(i32, u64, 0); - try testArgs(i32, u64, 1 << 0); - try testArgs(i32, u64, 1 << 63); try testArgs(u32, u64, 0); try testArgs(u32, u64, 1 << 0); try testArgs(u32, u64, 1 << 63); - try testArgs(i64, u64, 0); - try testArgs(i64, u64, 1 << 0); - try testArgs(i64, u64, 1 << 63); try testArgs(u64, u64, 0); try testArgs(u64, u64, 1 << 0); try testArgs(u64, u64, 1 << 63); - try testArgs(i128, u64, 0); - try testArgs(i128, u64, 1 << 0); - try testArgs(i128, u64, 1 << 63); try testArgs(u128, u64, 0); try testArgs(u128, u64, 1 << 0); try testArgs(u128, u64, 1 << 63); - try testArgs(i256, u64, 0); - try testArgs(i256, u64, 1 << 0); - try testArgs(i256, u64, 1 << 63); try testArgs(u256, u64, 0); try testArgs(u256, u64, 1 << 0); try testArgs(u256, u64, 1 << 63); - try testArgs(i512, u64, 0); - try testArgs(i512, u64, 1 << 0); - try testArgs(i512, u64, 1 << 63); try testArgs(u512, u64, 0); try testArgs(u512, u64, 1 << 0); try testArgs(u512, u64, 1 << 63); - try testArgs(i1024, u64, 0); - try testArgs(i1024, u64, 1 << 0); - try testArgs(i1024, u64, 1 << 63); try testArgs(u1024, u64, 0); try testArgs(u1024, u64, 1 << 0); try testArgs(u1024, u64, 1 << 63); @@ -3204,96 +2452,48 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i65, -1 << 64); try testArgs(i8, i65, -1); try testArgs(i8, i65, 0); - try testArgs(u8, i65, -1 << 64); - try testArgs(u8, i65, -1); - try testArgs(u8, i65, 0); try testArgs(i16, i65, -1 << 64); try testArgs(i16, i65, -1); try testArgs(i16, i65, 0); - try testArgs(u16, i65, -1 << 64); - try testArgs(u16, i65, -1); - try testArgs(u16, i65, 0); try testArgs(i32, i65, -1 << 64); try testArgs(i32, i65, -1); try testArgs(i32, i65, 0); - try testArgs(u32, i65, -1 << 64); - try testArgs(u32, i65, -1); - try testArgs(u32, i65, 0); try testArgs(i64, i65, -1 << 64); try testArgs(i64, i65, -1); try testArgs(i64, i65, 0); - try testArgs(u64, i65, -1 << 64); - try testArgs(u64, i65, -1); - try testArgs(u64, i65, 0); try testArgs(i128, i65, -1 << 64); try testArgs(i128, i65, -1); try testArgs(i128, i65, 0); - try testArgs(u128, i65, -1 << 64); - try testArgs(u128, i65, -1); - try testArgs(u128, i65, 0); try testArgs(i256, i65, -1 << 64); try testArgs(i256, i65, -1); try testArgs(i256, i65, 0); - try testArgs(u256, i65, -1 << 64); - try testArgs(u256, i65, -1); - try testArgs(u256, i65, 0); try testArgs(i512, i65, -1 << 64); try testArgs(i512, i65, -1); try testArgs(i512, i65, 0); - try testArgs(u512, i65, -1 << 64); - try testArgs(u512, i65, -1); - try testArgs(u512, i65, 0); try testArgs(i1024, i65, -1 << 64); try testArgs(i1024, i65, -1); try testArgs(i1024, i65, 0); - try testArgs(u1024, i65, -1 << 64); - try testArgs(u1024, i65, -1); - try testArgs(u1024, i65, 0); - try testArgs(i8, u65, 0); - try testArgs(i8, u65, 1 << 0); - try testArgs(i8, u65, 1 << 64); try testArgs(u8, u65, 0); try testArgs(u8, u65, 1 << 0); try testArgs(u8, u65, 1 << 64); - try testArgs(i16, u65, 0); - try testArgs(i16, u65, 1 << 0); - try testArgs(i16, u65, 1 << 64); try testArgs(u16, u65, 0); try testArgs(u16, u65, 1 << 0); try testArgs(u16, u65, 1 << 64); - try testArgs(i32, u65, 0); - try testArgs(i32, u65, 1 << 0); - try testArgs(i32, u65, 1 << 64); try testArgs(u32, u65, 0); try testArgs(u32, u65, 1 << 0); try testArgs(u32, u65, 1 << 64); - try testArgs(i64, u65, 0); - try testArgs(i64, u65, 1 << 0); - try testArgs(i64, u65, 1 << 64); try testArgs(u64, u65, 0); try testArgs(u64, u65, 1 << 0); try testArgs(u64, u65, 1 << 64); - try testArgs(i128, u65, 0); - try testArgs(i128, u65, 1 << 0); - try testArgs(i128, u65, 1 << 64); try testArgs(u128, u65, 0); try testArgs(u128, u65, 1 << 0); try testArgs(u128, u65, 1 << 64); - try testArgs(i256, u65, 0); - try testArgs(i256, u65, 1 << 0); - try testArgs(i256, u65, 1 << 64); try testArgs(u256, u65, 0); try testArgs(u256, u65, 1 << 0); try testArgs(u256, u65, 1 << 64); - try testArgs(i512, u65, 0); - try testArgs(i512, u65, 1 << 0); - try testArgs(i512, u65, 1 << 64); try testArgs(u512, u65, 0); try testArgs(u512, u65, 1 << 0); try testArgs(u512, u65, 1 << 64); - try testArgs(i1024, u65, 0); - try testArgs(i1024, u65, 1 << 0); - try testArgs(i1024, u65, 1 << 64); try testArgs(u1024, u65, 0); try testArgs(u1024, u65, 1 << 0); try testArgs(u1024, u65, 1 << 64); @@ -3301,2330 +2501,2243 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty try testArgs(i8, i95, -1 << 94); try testArgs(i8, i95, -1); try testArgs(i8, i95, 0); - try testArgs(u8, i95, -1 << 94); - try testArgs(u8, i95, -1); - try testArgs(u8, i95, 0); try testArgs(i16, i95, -1 << 94); try testArgs(i16, i95, -1); try testArgs(i16, i95, 0); - try testArgs(u16, i95, -1 << 94); - try testArgs(u16, i95, -1); - try testArgs(u16, i95, 0); try testArgs(i32, i95, -1 << 94); try testArgs(i32, i95, -1); try testArgs(i32, i95, 0); - try testArgs(u32, i95, -1 << 94); - try testArgs(u32, i95, -1); - try testArgs(u32, i95, 0); try testArgs(i64, i95, -1 << 94); try testArgs(i64, i95, -1); try testArgs(i64, i95, 0); - try testArgs(u64, i95, -1 << 94); - try testArgs(u64, i95, -1); - try testArgs(u64, i95, 0); try testArgs(i128, i95, -1 << 94); try testArgs(i128, i95, -1); try testArgs(i128, i95, 0); - try testArgs(u128, i95, -1 << 94); - try testArgs(u128, i95, -1); - try testArgs(u128, i95, 0); try testArgs(i256, i95, -1 << 94); try testArgs(i256, i95, -1); try testArgs(i256, i95, 0); - try testArgs(u256, i95, -1 << 94); - try testArgs(u256, i95, -1); - try testArgs(u256, i95, 0); try testArgs(i512, i95, -1 << 94); try testArgs(i512, i95, -1); try testArgs(i512, i95, 0); - try testArgs(u512, i95, -1 << 94); - try testArgs(u512, i95, -1); - try testArgs(u512, i95, 0); try testArgs(i1024, i95, -1 << 94); try testArgs(i1024, i95, -1); try testArgs(i1024, i95, 0); + try testArgs(u8, u95, 0); + try testArgs(u8, u95, 1 << 0); + try testArgs(u8, u95, 1 << 94); + try testArgs(u16, u95, 0); + try testArgs(u16, u95, 1 << 0); + try testArgs(u16, u95, 1 << 94); + try testArgs(u32, u95, 0); + try testArgs(u32, u95, 1 << 0); + try testArgs(u32, u95, 1 << 94); + try testArgs(u64, u95, 0); + try testArgs(u64, u95, 1 << 0); + try testArgs(u64, u95, 1 << 94); + try testArgs(u128, u95, 0); + try testArgs(u128, u95, 1 << 0); + try testArgs(u128, u95, 1 << 94); + try testArgs(u256, u95, 0); + try testArgs(u256, u95, 1 << 0); + try testArgs(u256, u95, 1 << 94); + try testArgs(u512, u95, 0); + try testArgs(u512, u95, 1 << 0); + try testArgs(u512, u95, 1 << 94); + try testArgs(u1024, u95, 0); + try testArgs(u1024, u95, 1 << 0); + try testArgs(u1024, u95, 1 << 94); + + try testArgs(i8, i97, -1 << 96); + try testArgs(i8, i97, -1); + try testArgs(i8, i97, 0); + try testArgs(i16, i97, -1 << 96); + try testArgs(i16, i97, -1); + try testArgs(i16, i97, 0); + try testArgs(i32, i97, -1 << 96); + try testArgs(i32, i97, -1); + try testArgs(i32, i97, 0); + try testArgs(i64, i97, -1 << 96); + try testArgs(i64, i97, -1); + try testArgs(i64, i97, 0); + try testArgs(i128, i97, -1 << 96); + try testArgs(i128, i97, -1); + try testArgs(i128, i97, 0); + try testArgs(i256, i97, -1 << 96); + try testArgs(i256, i97, -1); + try testArgs(i256, i97, 0); + try testArgs(i512, i97, -1 << 96); + try testArgs(i512, i97, -1); + try testArgs(i512, i97, 0); + try testArgs(i1024, i97, -1 << 96); + try testArgs(i1024, i97, -1); + try testArgs(i1024, i97, 0); + try testArgs(u8, u97, 0); + try testArgs(u8, u97, 1 << 0); + try testArgs(u8, u97, 1 << 96); + try testArgs(u16, u97, 0); + try testArgs(u16, u97, 1 << 0); + try testArgs(u16, u97, 1 << 96); + try testArgs(u32, u97, 0); + try testArgs(u32, u97, 1 << 0); + try testArgs(u32, u97, 1 << 96); + try testArgs(u64, u97, 0); + try testArgs(u64, u97, 1 << 0); + try testArgs(u64, u97, 1 << 96); + try testArgs(u128, u97, 0); + try testArgs(u128, u97, 1 << 0); + try testArgs(u128, u97, 1 << 96); + try testArgs(u256, u97, 0); + try testArgs(u256, u97, 1 << 0); + try testArgs(u256, u97, 1 << 96); + try testArgs(u512, u97, 0); + try testArgs(u512, u97, 1 << 0); + try testArgs(u512, u97, 1 << 96); + try testArgs(u1024, u97, 0); + try testArgs(u1024, u97, 1 << 0); + try testArgs(u1024, u97, 1 << 96); + + try testArgs(i8, i127, -1 << 126); + try testArgs(i8, i127, -1); + try testArgs(i8, i127, 0); + try testArgs(i16, i127, -1 << 126); + try testArgs(i16, i127, -1); + try testArgs(i16, i127, 0); + try testArgs(i32, i127, -1 << 126); + try testArgs(i32, i127, -1); + try testArgs(i32, i127, 0); + try testArgs(i64, i127, -1 << 126); + try testArgs(i64, i127, -1); + try testArgs(i64, i127, 0); + try testArgs(i128, i127, -1 << 126); + try testArgs(i128, i127, -1); + try testArgs(i128, i127, 0); + try testArgs(i256, i127, -1 << 126); + try testArgs(i256, i127, -1); + try testArgs(i256, i127, 0); + try testArgs(i512, i127, -1 << 126); + try testArgs(i512, i127, -1); + try testArgs(i512, i127, 0); + try testArgs(i1024, i127, -1 << 126); + try testArgs(i1024, i127, -1); + try testArgs(i1024, i127, 0); + try testArgs(u8, u127, 0); + try testArgs(u8, u127, 1 << 0); + try testArgs(u8, u127, 1 << 126); + try testArgs(u16, u127, 0); + try testArgs(u16, u127, 1 << 0); + try testArgs(u16, u127, 1 << 126); + try testArgs(u32, u127, 0); + try testArgs(u32, u127, 1 << 0); + try testArgs(u32, u127, 1 << 126); + try testArgs(u64, u127, 0); + try testArgs(u64, u127, 1 << 0); + try testArgs(u64, u127, 1 << 126); + try testArgs(u128, u127, 0); + try testArgs(u128, u127, 1 << 0); + try testArgs(u128, u127, 1 << 126); + try testArgs(u256, u127, 0); + try testArgs(u256, u127, 1 << 0); + try testArgs(u256, u127, 1 << 126); + try testArgs(u512, u127, 0); + try testArgs(u512, u127, 1 << 0); + try testArgs(u512, u127, 1 << 126); + try testArgs(u1024, u127, 0); + try testArgs(u1024, u127, 1 << 0); + try testArgs(u1024, u127, 1 << 126); + + try testArgs(i8, i128, -1 << 127); + try testArgs(i8, i128, -1); + try testArgs(i8, i128, 0); + try testArgs(i16, i128, -1 << 127); + try testArgs(i16, i128, -1); + try testArgs(i16, i128, 0); + try testArgs(i32, i128, -1 << 127); + try testArgs(i32, i128, -1); + try testArgs(i32, i128, 0); + try testArgs(i64, i128, -1 << 127); + try testArgs(i64, i128, -1); + try testArgs(i64, i128, 0); + try testArgs(i128, i128, -1 << 127); + try testArgs(i128, i128, -1); + try testArgs(i128, i128, 0); + try testArgs(i256, i128, -1 << 127); + try testArgs(i256, i128, -1); + try testArgs(i256, i128, 0); + try testArgs(i512, i128, -1 << 127); + try testArgs(i512, i128, -1); + try testArgs(i512, i128, 0); + try testArgs(i1024, i128, -1 << 127); + try testArgs(i1024, i128, -1); + try testArgs(i1024, i128, 0); + try testArgs(u8, u128, 0); + try testArgs(u8, u128, 1 << 0); + try testArgs(u8, u128, 1 << 127); + try testArgs(u16, u128, 0); + try testArgs(u16, u128, 1 << 0); + try testArgs(u16, u128, 1 << 127); + try testArgs(u32, u128, 0); + try testArgs(u32, u128, 1 << 0); + try testArgs(u32, u128, 1 << 127); + try testArgs(u64, u128, 0); + try testArgs(u64, u128, 1 << 0); + try testArgs(u64, u128, 1 << 127); + try testArgs(u128, u128, 0); + try testArgs(u128, u128, 1 << 0); + try testArgs(u128, u128, 1 << 127); + try testArgs(u256, u128, 0); + try testArgs(u256, u128, 1 << 0); + try testArgs(u256, u128, 1 << 127); + try testArgs(u512, u128, 0); + try testArgs(u512, u128, 1 << 0); + try testArgs(u512, u128, 1 << 127); + try testArgs(u1024, u128, 0); + try testArgs(u1024, u128, 1 << 0); + try testArgs(u1024, u128, 1 << 127); + + try testArgs(i8, i129, -1 << 128); + try testArgs(i8, i129, -1); + try testArgs(i8, i129, 0); + try testArgs(i16, i129, -1 << 128); + try testArgs(i16, i129, -1); + try testArgs(i16, i129, 0); + try testArgs(i32, i129, -1 << 128); + try testArgs(i32, i129, -1); + try testArgs(i32, i129, 0); + try testArgs(i64, i129, -1 << 128); + try testArgs(i64, i129, -1); + try testArgs(i64, i129, 0); + try testArgs(i128, i129, -1 << 128); + try testArgs(i128, i129, -1); + try testArgs(i128, i129, 0); + try testArgs(i256, i129, -1 << 128); + try testArgs(i256, i129, -1); + try testArgs(i256, i129, 0); + try testArgs(i512, i129, -1 << 128); + try testArgs(i512, i129, -1); + try testArgs(i512, i129, 0); + try testArgs(i1024, i129, -1 << 128); + try testArgs(i1024, i129, -1); + try testArgs(i1024, i129, 0); + try testArgs(u8, u129, 0); + try testArgs(u8, u129, 1 << 0); + try testArgs(u8, u129, 1 << 128); + try testArgs(u16, u129, 0); + try testArgs(u16, u129, 1 << 0); + try testArgs(u16, u129, 1 << 128); + try testArgs(u32, u129, 0); + try testArgs(u32, u129, 1 << 0); + try testArgs(u32, u129, 1 << 128); + try testArgs(u64, u129, 0); + try testArgs(u64, u129, 1 << 0); + try testArgs(u64, u129, 1 << 128); + try testArgs(u128, u129, 0); + try testArgs(u128, u129, 1 << 0); + try testArgs(u128, u129, 1 << 128); + try testArgs(u256, u129, 0); + try testArgs(u256, u129, 1 << 0); + try testArgs(u256, u129, 1 << 128); + try testArgs(u512, u129, 0); + try testArgs(u512, u129, 1 << 0); + try testArgs(u512, u129, 1 << 128); + try testArgs(u1024, u129, 0); + try testArgs(u1024, u129, 1 << 0); + try testArgs(u1024, u129, 1 << 128); + + try testArgs(i8, i255, -1 << 254); + try testArgs(i8, i255, -1); + try testArgs(i8, i255, 0); + try testArgs(i16, i255, -1 << 254); + try testArgs(i16, i255, -1); + try testArgs(i16, i255, 0); + try testArgs(i32, i255, -1 << 254); + try testArgs(i32, i255, -1); + try testArgs(i32, i255, 0); + try testArgs(i64, i255, -1 << 254); + try testArgs(i64, i255, -1); + try testArgs(i64, i255, 0); + try testArgs(i128, i255, -1 << 254); + try testArgs(i128, i255, -1); + try testArgs(i128, i255, 0); + try testArgs(i256, i255, -1 << 254); + try testArgs(i256, i255, -1); + try testArgs(i256, i255, 0); + try testArgs(i512, i255, -1 << 254); + try testArgs(i512, i255, -1); + try testArgs(i512, i255, 0); + try testArgs(i1024, i255, -1 << 254); + try testArgs(i1024, i255, -1); + try testArgs(i1024, i255, 0); + try testArgs(u8, u255, 0); + try testArgs(u8, u255, 1 << 0); + try testArgs(u8, u255, 1 << 254); + try testArgs(u16, u255, 0); + try testArgs(u16, u255, 1 << 0); + try testArgs(u16, u255, 1 << 254); + try testArgs(u32, u255, 0); + try testArgs(u32, u255, 1 << 0); + try testArgs(u32, u255, 1 << 254); + try testArgs(u64, u255, 0); + try testArgs(u64, u255, 1 << 0); + try testArgs(u64, u255, 1 << 254); + try testArgs(u128, u255, 0); + try testArgs(u128, u255, 1 << 0); + try testArgs(u128, u255, 1 << 254); + try testArgs(u256, u255, 0); + try testArgs(u256, u255, 1 << 0); + try testArgs(u256, u255, 1 << 254); + try testArgs(u512, u255, 0); + try testArgs(u512, u255, 1 << 0); + try testArgs(u512, u255, 1 << 254); + try testArgs(u1024, u255, 0); + try testArgs(u1024, u255, 1 << 0); + try testArgs(u1024, u255, 1 << 254); + + try testArgs(i8, i256, -1 << 255); + try testArgs(i8, i256, -1); + try testArgs(i8, i256, 0); + try testArgs(i16, i256, -1 << 255); + try testArgs(i16, i256, -1); + try testArgs(i16, i256, 0); + try testArgs(i32, i256, -1 << 255); + try testArgs(i32, i256, -1); + try testArgs(i32, i256, 0); + try testArgs(i64, i256, -1 << 255); + try testArgs(i64, i256, -1); + try testArgs(i64, i256, 0); + try testArgs(i128, i256, -1 << 255); + try testArgs(i128, i256, -1); + try testArgs(i128, i256, 0); + try testArgs(i256, i256, -1 << 255); + try testArgs(i256, i256, -1); + try testArgs(i256, i256, 0); + try testArgs(i512, i256, -1 << 255); + try testArgs(i512, i256, -1); + try testArgs(i512, i256, 0); + try testArgs(i1024, i256, -1 << 255); + try testArgs(i1024, i256, -1); + try testArgs(i1024, i256, 0); + try testArgs(u8, u256, 0); + try testArgs(u8, u256, 1 << 0); + try testArgs(u8, u256, 1 << 255); + try testArgs(u16, u256, 0); + try testArgs(u16, u256, 1 << 0); + try testArgs(u16, u256, 1 << 255); + try testArgs(u32, u256, 0); + try testArgs(u32, u256, 1 << 0); + try testArgs(u32, u256, 1 << 255); + try testArgs(u64, u256, 0); + try testArgs(u64, u256, 1 << 0); + try testArgs(u64, u256, 1 << 255); + try testArgs(u128, u256, 0); + try testArgs(u128, u256, 1 << 0); + try testArgs(u128, u256, 1 << 255); + try testArgs(u256, u256, 0); + try testArgs(u256, u256, 1 << 0); + try testArgs(u256, u256, 1 << 255); + try testArgs(u512, u256, 0); + try testArgs(u512, u256, 1 << 0); + try testArgs(u512, u256, 1 << 255); + try testArgs(u1024, u256, 0); + try testArgs(u1024, u256, 1 << 0); + try testArgs(u1024, u256, 1 << 255); + + try testArgs(i8, i257, -1 << 256); + try testArgs(i8, i257, -1); + try testArgs(i8, i257, 0); + try testArgs(i16, i257, -1 << 256); + try testArgs(i16, i257, -1); + try testArgs(i16, i257, 0); + try testArgs(i32, i257, -1 << 256); + try testArgs(i32, i257, -1); + try testArgs(i32, i257, 0); + try testArgs(i64, i257, -1 << 256); + try testArgs(i64, i257, -1); + try testArgs(i64, i257, 0); + try testArgs(i128, i257, -1 << 256); + try testArgs(i128, i257, -1); + try testArgs(i128, i257, 0); + try testArgs(i256, i257, -1 << 256); + try testArgs(i256, i257, -1); + try testArgs(i256, i257, 0); + try testArgs(i512, i257, -1 << 256); + try testArgs(i512, i257, -1); + try testArgs(i512, i257, 0); + try testArgs(i1024, i257, -1 << 256); + try testArgs(i1024, i257, -1); + try testArgs(i1024, i257, 0); + try testArgs(u8, u257, 0); + try testArgs(u8, u257, 1 << 0); + try testArgs(u8, u257, 1 << 256); + try testArgs(u16, u257, 0); + try testArgs(u16, u257, 1 << 0); + try testArgs(u16, u257, 1 << 256); + try testArgs(u32, u257, 0); + try testArgs(u32, u257, 1 << 0); + try testArgs(u32, u257, 1 << 256); + try testArgs(u64, u257, 0); + try testArgs(u64, u257, 1 << 0); + try testArgs(u64, u257, 1 << 256); + try testArgs(u128, u257, 0); + try testArgs(u128, u257, 1 << 0); + try testArgs(u128, u257, 1 << 256); + try testArgs(u256, u257, 0); + try testArgs(u256, u257, 1 << 0); + try testArgs(u256, u257, 1 << 256); + try testArgs(u512, u257, 0); + try testArgs(u512, u257, 1 << 0); + try testArgs(u512, u257, 1 << 256); + try testArgs(u1024, u257, 0); + try testArgs(u1024, u257, 1 << 0); + try testArgs(u1024, u257, 1 << 256); + + try testArgs(i8, i511, -1 << 510); + try testArgs(i8, i511, -1); + try testArgs(i8, i511, 0); + try testArgs(i16, i511, -1 << 510); + try testArgs(i16, i511, -1); + try testArgs(i16, i511, 0); + try testArgs(i32, i511, -1 << 510); + try testArgs(i32, i511, -1); + try testArgs(i32, i511, 0); + try testArgs(i64, i511, -1 << 510); + try testArgs(i64, i511, -1); + try testArgs(i64, i511, 0); + try testArgs(i128, i511, -1 << 510); + try testArgs(i128, i511, -1); + try testArgs(i128, i511, 0); + try testArgs(i256, i511, -1 << 510); + try testArgs(i256, i511, -1); + try testArgs(i256, i511, 0); + try testArgs(i512, i511, -1 << 510); + try testArgs(i512, i511, -1); + try testArgs(i512, i511, 0); + try testArgs(i1024, i511, -1 << 510); + try testArgs(i1024, i511, -1); + try testArgs(i1024, i511, 0); + try testArgs(u8, u511, 0); + try testArgs(u8, u511, 1 << 0); + try testArgs(u8, u511, 1 << 510); + try testArgs(u16, u511, 0); + try testArgs(u16, u511, 1 << 0); + try testArgs(u16, u511, 1 << 510); + try testArgs(u32, u511, 0); + try testArgs(u32, u511, 1 << 0); + try testArgs(u32, u511, 1 << 510); + try testArgs(u64, u511, 0); + try testArgs(u64, u511, 1 << 0); + try testArgs(u64, u511, 1 << 510); + try testArgs(u128, u511, 0); + try testArgs(u128, u511, 1 << 0); + try testArgs(u128, u511, 1 << 510); + try testArgs(u256, u511, 0); + try testArgs(u256, u511, 1 << 0); + try testArgs(u256, u511, 1 << 510); + try testArgs(u512, u511, 0); + try testArgs(u512, u511, 1 << 0); + try testArgs(u512, u511, 1 << 510); + try testArgs(u1024, u511, 0); + try testArgs(u1024, u511, 1 << 0); + try testArgs(u1024, u511, 1 << 510); + + try testArgs(i8, i512, -1 << 511); + try testArgs(i8, i512, -1); + try testArgs(i8, i512, 0); + try testArgs(i16, i512, -1 << 511); + try testArgs(i16, i512, -1); + try testArgs(i16, i512, 0); + try testArgs(i32, i512, -1 << 511); + try testArgs(i32, i512, -1); + try testArgs(i32, i512, 0); + try testArgs(i64, i512, -1 << 511); + try testArgs(i64, i512, -1); + try testArgs(i64, i512, 0); + try testArgs(i128, i512, -1 << 511); + try testArgs(i128, i512, -1); + try testArgs(i128, i512, 0); + try testArgs(i256, i512, -1 << 511); + try testArgs(i256, i512, -1); + try testArgs(i256, i512, 0); + try testArgs(i512, i512, -1 << 511); + try testArgs(i512, i512, -1); + try testArgs(i512, i512, 0); + try testArgs(i1024, i512, -1 << 511); + try testArgs(i1024, i512, -1); + try testArgs(i1024, i512, 0); + try testArgs(u8, u512, 0); + try testArgs(u8, u512, 1 << 0); + try testArgs(u8, u512, 1 << 511); + try testArgs(u16, u512, 0); + try testArgs(u16, u512, 1 << 0); + try testArgs(u16, u512, 1 << 511); + try testArgs(u32, u512, 0); + try testArgs(u32, u512, 1 << 0); + try testArgs(u32, u512, 1 << 511); + try testArgs(u64, u512, 0); + try testArgs(u64, u512, 1 << 0); + try testArgs(u64, u512, 1 << 511); + try testArgs(u128, u512, 0); + try testArgs(u128, u512, 1 << 0); + try testArgs(u128, u512, 1 << 511); + try testArgs(u256, u512, 0); + try testArgs(u256, u512, 1 << 0); + try testArgs(u256, u512, 1 << 511); + try testArgs(u512, u512, 0); + try testArgs(u512, u512, 1 << 0); + try testArgs(u512, u512, 1 << 511); + try testArgs(u1024, u512, 0); + try testArgs(u1024, u512, 1 << 0); + try testArgs(u1024, u512, 1 << 511); + + try testArgs(i8, i513, -1 << 512); + try testArgs(i8, i513, -1); + try testArgs(i8, i513, 0); + try testArgs(i16, i513, -1 << 512); + try testArgs(i16, i513, -1); + try testArgs(i16, i513, 0); + try testArgs(i32, i513, -1 << 512); + try testArgs(i32, i513, -1); + try testArgs(i32, i513, 0); + try testArgs(i64, i513, -1 << 512); + try testArgs(i64, i513, -1); + try testArgs(i64, i513, 0); + try testArgs(i128, i513, -1 << 512); + try testArgs(i128, i513, -1); + try testArgs(i128, i513, 0); + try testArgs(i256, i513, -1 << 512); + try testArgs(i256, i513, -1); + try testArgs(i256, i513, 0); + try testArgs(i512, i513, -1 << 512); + try testArgs(i512, i513, -1); + try testArgs(i512, i513, 0); + try testArgs(i1024, i513, -1 << 512); + try testArgs(i1024, i513, -1); + try testArgs(i1024, i513, 0); + try testArgs(u8, u513, 0); + try testArgs(u8, u513, 1 << 0); + try testArgs(u8, u513, 1 << 512); + try testArgs(u16, u513, 0); + try testArgs(u16, u513, 1 << 0); + try testArgs(u16, u513, 1 << 512); + try testArgs(u32, u513, 0); + try testArgs(u32, u513, 1 << 0); + try testArgs(u32, u513, 1 << 512); + try testArgs(u64, u513, 0); + try testArgs(u64, u513, 1 << 0); + try testArgs(u64, u513, 1 << 512); + try testArgs(u128, u513, 0); + try testArgs(u128, u513, 1 << 0); + try testArgs(u128, u513, 1 << 512); + try testArgs(u256, u513, 0); + try testArgs(u256, u513, 1 << 0); + try testArgs(u256, u513, 1 << 512); + try testArgs(u512, u513, 0); + try testArgs(u512, u513, 1 << 0); + try testArgs(u512, u513, 1 << 512); + try testArgs(u1024, u513, 0); + try testArgs(u1024, u513, 1 << 0); + try testArgs(u1024, u513, 1 << 512); + + try testArgs(i8, i1023, -1 << 1022); + try testArgs(i8, i1023, -1); + try testArgs(i8, i1023, 0); + try testArgs(i16, i1023, -1 << 1022); + try testArgs(i16, i1023, -1); + try testArgs(i16, i1023, 0); + try testArgs(i32, i1023, -1 << 1022); + try testArgs(i32, i1023, -1); + try testArgs(i32, i1023, 0); + try testArgs(i64, i1023, -1 << 1022); + try testArgs(i64, i1023, -1); + try testArgs(i64, i1023, 0); + try testArgs(i128, i1023, -1 << 1022); + try testArgs(i128, i1023, -1); + try testArgs(i128, i1023, 0); + try testArgs(i256, i1023, -1 << 1022); + try testArgs(i256, i1023, -1); + try testArgs(i256, i1023, 0); + try testArgs(i512, i1023, -1 << 1022); + try testArgs(i512, i1023, -1); + try testArgs(i512, i1023, 0); + try testArgs(i1024, i1023, -1 << 1022); + try testArgs(i1024, i1023, -1); + try testArgs(i1024, i1023, 0); + try testArgs(u8, u1023, 0); + try testArgs(u8, u1023, 1 << 0); + try testArgs(u8, u1023, 1 << 1022); + try testArgs(u16, u1023, 0); + try testArgs(u16, u1023, 1 << 0); + try testArgs(u16, u1023, 1 << 1022); + try testArgs(u32, u1023, 0); + try testArgs(u32, u1023, 1 << 0); + try testArgs(u32, u1023, 1 << 1022); + try testArgs(u64, u1023, 0); + try testArgs(u64, u1023, 1 << 0); + try testArgs(u64, u1023, 1 << 1022); + try testArgs(u128, u1023, 0); + try testArgs(u128, u1023, 1 << 0); + try testArgs(u128, u1023, 1 << 1022); + try testArgs(u256, u1023, 0); + try testArgs(u256, u1023, 1 << 0); + try testArgs(u256, u1023, 1 << 1022); + try testArgs(u512, u1023, 0); + try testArgs(u512, u1023, 1 << 0); + try testArgs(u512, u1023, 1 << 1022); + try testArgs(u1024, u1023, 0); + try testArgs(u1024, u1023, 1 << 0); + try testArgs(u1024, u1023, 1 << 1022); + + try testArgs(i8, i1024, -1 << 1023); + try testArgs(i8, i1024, -1); + try testArgs(i8, i1024, 0); + try testArgs(i16, i1024, -1 << 1023); + try testArgs(i16, i1024, -1); + try testArgs(i16, i1024, 0); + try testArgs(i32, i1024, -1 << 1023); + try testArgs(i32, i1024, -1); + try testArgs(i32, i1024, 0); + try testArgs(i64, i1024, -1 << 1023); + try testArgs(i64, i1024, -1); + try testArgs(i64, i1024, 0); + try testArgs(i128, i1024, -1 << 1023); + try testArgs(i128, i1024, -1); + try testArgs(i128, i1024, 0); + try testArgs(i256, i1024, -1 << 1023); + try testArgs(i256, i1024, -1); + try testArgs(i256, i1024, 0); + try testArgs(i512, i1024, -1 << 1023); + try testArgs(i512, i1024, -1); + try testArgs(i512, i1024, 0); + try testArgs(i1024, i1024, -1 << 1023); + try testArgs(i1024, i1024, -1); + try testArgs(i1024, i1024, 0); + try testArgs(u8, u1024, 0); + try testArgs(u8, u1024, 1 << 0); + try testArgs(u8, u1024, 1 << 1023); + try testArgs(u16, u1024, 0); + try testArgs(u16, u1024, 1 << 0); + try testArgs(u16, u1024, 1 << 1023); + try testArgs(u32, u1024, 0); + try testArgs(u32, u1024, 1 << 0); + try testArgs(u32, u1024, 1 << 1023); + try testArgs(u64, u1024, 0); + try testArgs(u64, u1024, 1 << 0); + try testArgs(u64, u1024, 1 << 1023); + try testArgs(u128, u1024, 0); + try testArgs(u128, u1024, 1 << 0); + try testArgs(u128, u1024, 1 << 1023); + try testArgs(u256, u1024, 0); + try testArgs(u256, u1024, 1 << 0); + try testArgs(u256, u1024, 1 << 1023); + try testArgs(u512, u1024, 0); + try testArgs(u512, u1024, 1 << 0); + try testArgs(u512, u1024, 1 << 1023); + try testArgs(u1024, u1024, 0); + try testArgs(u1024, u1024, 1 << 0); + try testArgs(u1024, u1024, 1 << 1023); + + try testArgs(i8, i1025, -1 << 1024); + try testArgs(i8, i1025, -1); + try testArgs(i8, i1025, 0); + try testArgs(i16, i1025, -1 << 1024); + try testArgs(i16, i1025, -1); + try testArgs(i16, i1025, 0); + try testArgs(i32, i1025, -1 << 1024); + try testArgs(i32, i1025, -1); + try testArgs(i32, i1025, 0); + try testArgs(i64, i1025, -1 << 1024); + try testArgs(i64, i1025, -1); + try testArgs(i64, i1025, 0); + try testArgs(i128, i1025, -1 << 1024); + try testArgs(i128, i1025, -1); + try testArgs(i128, i1025, 0); + try testArgs(i256, i1025, -1 << 1024); + try testArgs(i256, i1025, -1); + try testArgs(i256, i1025, 0); + try testArgs(i512, i1025, -1 << 1024); + try testArgs(i512, i1025, -1); + try testArgs(i512, i1025, 0); + try testArgs(i1024, i1025, -1 << 1024); + try testArgs(i1024, i1025, -1); + try testArgs(i1024, i1025, 0); + try testArgs(u8, u1025, 0); + try testArgs(u8, u1025, 1 << 0); + try testArgs(u8, u1025, 1 << 1024); + try testArgs(u16, u1025, 0); + try testArgs(u16, u1025, 1 << 0); + try testArgs(u16, u1025, 1 << 1024); + try testArgs(u32, u1025, 0); + try testArgs(u32, u1025, 1 << 0); + try testArgs(u32, u1025, 1 << 1024); + try testArgs(u64, u1025, 0); + try testArgs(u64, u1025, 1 << 0); + try testArgs(u64, u1025, 1 << 1024); + try testArgs(u128, u1025, 0); + try testArgs(u128, u1025, 1 << 0); + try testArgs(u128, u1025, 1 << 1024); + try testArgs(u256, u1025, 0); + try testArgs(u256, u1025, 1 << 0); + try testArgs(u256, u1025, 1 << 1024); + try testArgs(u512, u1025, 0); + try testArgs(u512, u1025, 1 << 0); + try testArgs(u512, u1025, 1 << 1024); + try testArgs(u1024, u1025, 0); + try testArgs(u1024, u1025, 1 << 0); + try testArgs(u1024, u1025, 1 << 1024); + } + fn testInts() !void { + try testSameSignednessInts(); + + try testArgs(u8, i1, -1); + try testArgs(u8, i1, 0); + try testArgs(u16, i1, -1); + try testArgs(u16, i1, 0); + try testArgs(u32, i1, -1); + try testArgs(u32, i1, 0); + try testArgs(u64, i1, -1); + try testArgs(u64, i1, 0); + try testArgs(u128, i1, -1); + try testArgs(u128, i1, 0); + try testArgs(u256, i1, -1); + try testArgs(u256, i1, 0); + try testArgs(u512, i1, -1); + try testArgs(u512, i1, 0); + try testArgs(u1024, i1, -1); + try testArgs(u1024, i1, 0); + try testArgs(i8, u1, 0); + try testArgs(i8, u1, 1 << 0); + try testArgs(i16, u1, 0); + try testArgs(i16, u1, 1 << 0); + try testArgs(i32, u1, 0); + try testArgs(i32, u1, 1 << 0); + try testArgs(i64, u1, 0); + try testArgs(i64, u1, 1 << 0); + try testArgs(i128, u1, 0); + try testArgs(i128, u1, 1 << 0); + try testArgs(i256, u1, 0); + try testArgs(i256, u1, 1 << 0); + try testArgs(i512, u1, 0); + try testArgs(i512, u1, 1 << 0); + try testArgs(i1024, u1, 0); + try testArgs(i1024, u1, 1 << 0); + + try testArgs(u8, i2, -1 << 1); + try testArgs(u8, i2, -1); + try testArgs(u8, i2, 0); + try testArgs(u16, i2, -1 << 1); + try testArgs(u16, i2, -1); + try testArgs(u16, i2, 0); + try testArgs(u32, i2, -1 << 1); + try testArgs(u32, i2, -1); + try testArgs(u32, i2, 0); + try testArgs(u64, i2, -1 << 1); + try testArgs(u64, i2, -1); + try testArgs(u64, i2, 0); + try testArgs(u128, i2, -1 << 1); + try testArgs(u128, i2, -1); + try testArgs(u128, i2, 0); + try testArgs(u256, i2, -1 << 1); + try testArgs(u256, i2, -1); + try testArgs(u256, i2, 0); + try testArgs(u512, i2, -1 << 1); + try testArgs(u512, i2, -1); + try testArgs(u512, i2, 0); + try testArgs(u1024, i2, -1 << 1); + try testArgs(u1024, i2, -1); + try testArgs(u1024, i2, 0); + try testArgs(i8, u2, 0); + try testArgs(i8, u2, 1 << 0); + try testArgs(i8, u2, 1 << 1); + try testArgs(i16, u2, 0); + try testArgs(i16, u2, 1 << 0); + try testArgs(i16, u2, 1 << 1); + try testArgs(i32, u2, 0); + try testArgs(i32, u2, 1 << 0); + try testArgs(i32, u2, 1 << 1); + try testArgs(i64, u2, 0); + try testArgs(i64, u2, 1 << 0); + try testArgs(i64, u2, 1 << 1); + try testArgs(i128, u2, 0); + try testArgs(i128, u2, 1 << 0); + try testArgs(i128, u2, 1 << 1); + try testArgs(i256, u2, 0); + try testArgs(i256, u2, 1 << 0); + try testArgs(i256, u2, 1 << 1); + try testArgs(i512, u2, 0); + try testArgs(i512, u2, 1 << 0); + try testArgs(i512, u2, 1 << 1); + try testArgs(i1024, u2, 0); + try testArgs(i1024, u2, 1 << 0); + try testArgs(i1024, u2, 1 << 1); + + try testArgs(u8, i3, -1 << 2); + try testArgs(u8, i3, -1); + try testArgs(u8, i3, 0); + try testArgs(u16, i3, -1 << 2); + try testArgs(u16, i3, -1); + try testArgs(u16, i3, 0); + try testArgs(u32, i3, -1 << 2); + try testArgs(u32, i3, -1); + try testArgs(u32, i3, 0); + try testArgs(u64, i3, -1 << 2); + try testArgs(u64, i3, -1); + try testArgs(u64, i3, 0); + try testArgs(u128, i3, -1 << 2); + try testArgs(u128, i3, -1); + try testArgs(u128, i3, 0); + try testArgs(u256, i3, -1 << 2); + try testArgs(u256, i3, -1); + try testArgs(u256, i3, 0); + try testArgs(u512, i3, -1 << 2); + try testArgs(u512, i3, -1); + try testArgs(u512, i3, 0); + try testArgs(u1024, i3, -1 << 2); + try testArgs(u1024, i3, -1); + try testArgs(u1024, i3, 0); + try testArgs(i8, u3, 0); + try testArgs(i8, u3, 1 << 0); + try testArgs(i8, u3, 1 << 2); + try testArgs(i16, u3, 0); + try testArgs(i16, u3, 1 << 0); + try testArgs(i16, u3, 1 << 2); + try testArgs(i32, u3, 0); + try testArgs(i32, u3, 1 << 0); + try testArgs(i32, u3, 1 << 2); + try testArgs(i64, u3, 0); + try testArgs(i64, u3, 1 << 0); + try testArgs(i64, u3, 1 << 2); + try testArgs(i128, u3, 0); + try testArgs(i128, u3, 1 << 0); + try testArgs(i128, u3, 1 << 2); + try testArgs(i256, u3, 0); + try testArgs(i256, u3, 1 << 0); + try testArgs(i256, u3, 1 << 2); + try testArgs(i512, u3, 0); + try testArgs(i512, u3, 1 << 0); + try testArgs(i512, u3, 1 << 2); + try testArgs(i1024, u3, 0); + try testArgs(i1024, u3, 1 << 0); + try testArgs(i1024, u3, 1 << 2); + + try testArgs(u8, i4, -1 << 3); + try testArgs(u8, i4, -1); + try testArgs(u8, i4, 0); + try testArgs(u16, i4, -1 << 3); + try testArgs(u16, i4, -1); + try testArgs(u16, i4, 0); + try testArgs(u32, i4, -1 << 3); + try testArgs(u32, i4, -1); + try testArgs(u32, i4, 0); + try testArgs(u64, i4, -1 << 3); + try testArgs(u64, i4, -1); + try testArgs(u64, i4, 0); + try testArgs(u128, i4, -1 << 3); + try testArgs(u128, i4, -1); + try testArgs(u128, i4, 0); + try testArgs(u256, i4, -1 << 3); + try testArgs(u256, i4, -1); + try testArgs(u256, i4, 0); + try testArgs(u512, i4, -1 << 3); + try testArgs(u512, i4, -1); + try testArgs(u512, i4, 0); + try testArgs(u1024, i4, -1 << 3); + try testArgs(u1024, i4, -1); + try testArgs(u1024, i4, 0); + try testArgs(i8, u4, 0); + try testArgs(i8, u4, 1 << 0); + try testArgs(i8, u4, 1 << 3); + try testArgs(i16, u4, 0); + try testArgs(i16, u4, 1 << 0); + try testArgs(i16, u4, 1 << 3); + try testArgs(i32, u4, 0); + try testArgs(i32, u4, 1 << 0); + try testArgs(i32, u4, 1 << 3); + try testArgs(i64, u4, 0); + try testArgs(i64, u4, 1 << 0); + try testArgs(i64, u4, 1 << 3); + try testArgs(i128, u4, 0); + try testArgs(i128, u4, 1 << 0); + try testArgs(i128, u4, 1 << 3); + try testArgs(i256, u4, 0); + try testArgs(i256, u4, 1 << 0); + try testArgs(i256, u4, 1 << 3); + try testArgs(i512, u4, 0); + try testArgs(i512, u4, 1 << 0); + try testArgs(i512, u4, 1 << 3); + try testArgs(i1024, u4, 0); + try testArgs(i1024, u4, 1 << 0); + try testArgs(i1024, u4, 1 << 3); + + try testArgs(u8, i5, -1 << 4); + try testArgs(u8, i5, -1); + try testArgs(u8, i5, 0); + try testArgs(u16, i5, -1 << 4); + try testArgs(u16, i5, -1); + try testArgs(u16, i5, 0); + try testArgs(u32, i5, -1 << 4); + try testArgs(u32, i5, -1); + try testArgs(u32, i5, 0); + try testArgs(u64, i5, -1 << 4); + try testArgs(u64, i5, -1); + try testArgs(u64, i5, 0); + try testArgs(u128, i5, -1 << 4); + try testArgs(u128, i5, -1); + try testArgs(u128, i5, 0); + try testArgs(u256, i5, -1 << 4); + try testArgs(u256, i5, -1); + try testArgs(u256, i5, 0); + try testArgs(u512, i5, -1 << 4); + try testArgs(u512, i5, -1); + try testArgs(u512, i5, 0); + try testArgs(u1024, i5, -1 << 4); + try testArgs(u1024, i5, -1); + try testArgs(u1024, i5, 0); + try testArgs(i8, u5, 0); + try testArgs(i8, u5, 1 << 0); + try testArgs(i8, u5, 1 << 4); + try testArgs(i16, u5, 0); + try testArgs(i16, u5, 1 << 0); + try testArgs(i16, u5, 1 << 4); + try testArgs(i32, u5, 0); + try testArgs(i32, u5, 1 << 0); + try testArgs(i32, u5, 1 << 4); + try testArgs(i64, u5, 0); + try testArgs(i64, u5, 1 << 0); + try testArgs(i64, u5, 1 << 4); + try testArgs(i128, u5, 0); + try testArgs(i128, u5, 1 << 0); + try testArgs(i128, u5, 1 << 4); + try testArgs(i256, u5, 0); + try testArgs(i256, u5, 1 << 0); + try testArgs(i256, u5, 1 << 4); + try testArgs(i512, u5, 0); + try testArgs(i512, u5, 1 << 0); + try testArgs(i512, u5, 1 << 4); + try testArgs(i1024, u5, 0); + try testArgs(i1024, u5, 1 << 0); + try testArgs(i1024, u5, 1 << 4); + + try testArgs(u8, i7, -1 << 6); + try testArgs(u8, i7, -1); + try testArgs(u8, i7, 0); + try testArgs(u16, i7, -1 << 6); + try testArgs(u16, i7, -1); + try testArgs(u16, i7, 0); + try testArgs(u32, i7, -1 << 6); + try testArgs(u32, i7, -1); + try testArgs(u32, i7, 0); + try testArgs(u64, i7, -1 << 6); + try testArgs(u64, i7, -1); + try testArgs(u64, i7, 0); + try testArgs(u128, i7, -1 << 6); + try testArgs(u128, i7, -1); + try testArgs(u128, i7, 0); + try testArgs(u256, i7, -1 << 6); + try testArgs(u256, i7, -1); + try testArgs(u256, i7, 0); + try testArgs(u512, i7, -1 << 6); + try testArgs(u512, i7, -1); + try testArgs(u512, i7, 0); + try testArgs(u1024, i7, -1 << 6); + try testArgs(u1024, i7, -1); + try testArgs(u1024, i7, 0); + try testArgs(i8, u7, 0); + try testArgs(i8, u7, 1 << 0); + try testArgs(i8, u7, 1 << 6); + try testArgs(i16, u7, 0); + try testArgs(i16, u7, 1 << 0); + try testArgs(i16, u7, 1 << 6); + try testArgs(i32, u7, 0); + try testArgs(i32, u7, 1 << 0); + try testArgs(i32, u7, 1 << 6); + try testArgs(i64, u7, 0); + try testArgs(i64, u7, 1 << 0); + try testArgs(i64, u7, 1 << 6); + try testArgs(i128, u7, 0); + try testArgs(i128, u7, 1 << 0); + try testArgs(i128, u7, 1 << 6); + try testArgs(i256, u7, 0); + try testArgs(i256, u7, 1 << 0); + try testArgs(i256, u7, 1 << 6); + try testArgs(i512, u7, 0); + try testArgs(i512, u7, 1 << 0); + try testArgs(i512, u7, 1 << 6); + try testArgs(i1024, u7, 0); + try testArgs(i1024, u7, 1 << 0); + try testArgs(i1024, u7, 1 << 6); + + try testArgs(u8, i8, -1 << 7); + try testArgs(u8, i8, -1); + try testArgs(u8, i8, 0); + try testArgs(u16, i8, -1 << 7); + try testArgs(u16, i8, -1); + try testArgs(u16, i8, 0); + try testArgs(u32, i8, -1 << 7); + try testArgs(u32, i8, -1); + try testArgs(u32, i8, 0); + try testArgs(u64, i8, -1 << 7); + try testArgs(u64, i8, -1); + try testArgs(u64, i8, 0); + try testArgs(u128, i8, -1 << 7); + try testArgs(u128, i8, -1); + try testArgs(u128, i8, 0); + try testArgs(u256, i8, -1 << 7); + try testArgs(u256, i8, -1); + try testArgs(u256, i8, 0); + try testArgs(u512, i8, -1 << 7); + try testArgs(u512, i8, -1); + try testArgs(u512, i8, 0); + try testArgs(u1024, i8, -1 << 7); + try testArgs(u1024, i8, -1); + try testArgs(u1024, i8, 0); + try testArgs(i8, u8, 0); + try testArgs(i8, u8, 1 << 0); + try testArgs(i8, u8, 1 << 7); + try testArgs(i16, u8, 0); + try testArgs(i16, u8, 1 << 0); + try testArgs(i16, u8, 1 << 7); + try testArgs(i32, u8, 0); + try testArgs(i32, u8, 1 << 0); + try testArgs(i32, u8, 1 << 7); + try testArgs(i64, u8, 0); + try testArgs(i64, u8, 1 << 0); + try testArgs(i64, u8, 1 << 7); + try testArgs(i128, u8, 0); + try testArgs(i128, u8, 1 << 0); + try testArgs(i128, u8, 1 << 7); + try testArgs(i256, u8, 0); + try testArgs(i256, u8, 1 << 0); + try testArgs(i256, u8, 1 << 7); + try testArgs(i512, u8, 0); + try testArgs(i512, u8, 1 << 0); + try testArgs(i512, u8, 1 << 7); + try testArgs(i1024, u8, 0); + try testArgs(i1024, u8, 1 << 0); + try testArgs(i1024, u8, 1 << 7); + + try testArgs(u8, i9, -1 << 8); + try testArgs(u8, i9, -1); + try testArgs(u8, i9, 0); + try testArgs(u16, i9, -1 << 8); + try testArgs(u16, i9, -1); + try testArgs(u16, i9, 0); + try testArgs(u32, i9, -1 << 8); + try testArgs(u32, i9, -1); + try testArgs(u32, i9, 0); + try testArgs(u64, i9, -1 << 8); + try testArgs(u64, i9, -1); + try testArgs(u64, i9, 0); + try testArgs(u128, i9, -1 << 8); + try testArgs(u128, i9, -1); + try testArgs(u128, i9, 0); + try testArgs(u256, i9, -1 << 8); + try testArgs(u256, i9, -1); + try testArgs(u256, i9, 0); + try testArgs(u512, i9, -1 << 8); + try testArgs(u512, i9, -1); + try testArgs(u512, i9, 0); + try testArgs(u1024, i9, -1 << 8); + try testArgs(u1024, i9, -1); + try testArgs(u1024, i9, 0); + try testArgs(i8, u9, 0); + try testArgs(i8, u9, 1 << 0); + try testArgs(i8, u9, 1 << 8); + try testArgs(i16, u9, 0); + try testArgs(i16, u9, 1 << 0); + try testArgs(i16, u9, 1 << 8); + try testArgs(i32, u9, 0); + try testArgs(i32, u9, 1 << 0); + try testArgs(i32, u9, 1 << 8); + try testArgs(i64, u9, 0); + try testArgs(i64, u9, 1 << 0); + try testArgs(i64, u9, 1 << 8); + try testArgs(i128, u9, 0); + try testArgs(i128, u9, 1 << 0); + try testArgs(i128, u9, 1 << 8); + try testArgs(i256, u9, 0); + try testArgs(i256, u9, 1 << 0); + try testArgs(i256, u9, 1 << 8); + try testArgs(i512, u9, 0); + try testArgs(i512, u9, 1 << 0); + try testArgs(i512, u9, 1 << 8); + try testArgs(i1024, u9, 0); + try testArgs(i1024, u9, 1 << 0); + try testArgs(i1024, u9, 1 << 8); + + try testArgs(u8, i15, -1 << 14); + try testArgs(u8, i15, -1); + try testArgs(u8, i15, 0); + try testArgs(u16, i15, -1 << 14); + try testArgs(u16, i15, -1); + try testArgs(u16, i15, 0); + try testArgs(u32, i15, -1 << 14); + try testArgs(u32, i15, -1); + try testArgs(u32, i15, 0); + try testArgs(u64, i15, -1 << 14); + try testArgs(u64, i15, -1); + try testArgs(u64, i15, 0); + try testArgs(u128, i15, -1 << 14); + try testArgs(u128, i15, -1); + try testArgs(u128, i15, 0); + try testArgs(u256, i15, -1 << 14); + try testArgs(u256, i15, -1); + try testArgs(u256, i15, 0); + try testArgs(u512, i15, -1 << 14); + try testArgs(u512, i15, -1); + try testArgs(u512, i15, 0); + try testArgs(u1024, i15, -1 << 14); + try testArgs(u1024, i15, -1); + try testArgs(u1024, i15, 0); + try testArgs(i8, u15, 0); + try testArgs(i8, u15, 1 << 0); + try testArgs(i8, u15, 1 << 14); + try testArgs(i16, u15, 0); + try testArgs(i16, u15, 1 << 0); + try testArgs(i16, u15, 1 << 14); + try testArgs(i32, u15, 0); + try testArgs(i32, u15, 1 << 0); + try testArgs(i32, u15, 1 << 14); + try testArgs(i64, u15, 0); + try testArgs(i64, u15, 1 << 0); + try testArgs(i64, u15, 1 << 14); + try testArgs(i128, u15, 0); + try testArgs(i128, u15, 1 << 0); + try testArgs(i128, u15, 1 << 14); + try testArgs(i256, u15, 0); + try testArgs(i256, u15, 1 << 0); + try testArgs(i256, u15, 1 << 14); + try testArgs(i512, u15, 0); + try testArgs(i512, u15, 1 << 0); + try testArgs(i512, u15, 1 << 14); + try testArgs(i1024, u15, 0); + try testArgs(i1024, u15, 1 << 0); + try testArgs(i1024, u15, 1 << 14); + + try testArgs(u8, i16, -1 << 15); + try testArgs(u8, i16, -1); + try testArgs(u8, i16, 0); + try testArgs(u16, i16, -1 << 15); + try testArgs(u16, i16, -1); + try testArgs(u16, i16, 0); + try testArgs(u32, i16, -1 << 15); + try testArgs(u32, i16, -1); + try testArgs(u32, i16, 0); + try testArgs(u64, i16, -1 << 15); + try testArgs(u64, i16, -1); + try testArgs(u64, i16, 0); + try testArgs(u128, i16, -1 << 15); + try testArgs(u128, i16, -1); + try testArgs(u128, i16, 0); + try testArgs(u256, i16, -1 << 15); + try testArgs(u256, i16, -1); + try testArgs(u256, i16, 0); + try testArgs(u512, i16, -1 << 15); + try testArgs(u512, i16, -1); + try testArgs(u512, i16, 0); + try testArgs(u1024, i16, -1 << 15); + try testArgs(u1024, i16, -1); + try testArgs(u1024, i16, 0); + try testArgs(i8, u16, 0); + try testArgs(i8, u16, 1 << 0); + try testArgs(i8, u16, 1 << 15); + try testArgs(i16, u16, 0); + try testArgs(i16, u16, 1 << 0); + try testArgs(i16, u16, 1 << 15); + try testArgs(i32, u16, 0); + try testArgs(i32, u16, 1 << 0); + try testArgs(i32, u16, 1 << 15); + try testArgs(i64, u16, 0); + try testArgs(i64, u16, 1 << 0); + try testArgs(i64, u16, 1 << 15); + try testArgs(i128, u16, 0); + try testArgs(i128, u16, 1 << 0); + try testArgs(i128, u16, 1 << 15); + try testArgs(i256, u16, 0); + try testArgs(i256, u16, 1 << 0); + try testArgs(i256, u16, 1 << 15); + try testArgs(i512, u16, 0); + try testArgs(i512, u16, 1 << 0); + try testArgs(i512, u16, 1 << 15); + try testArgs(i1024, u16, 0); + try testArgs(i1024, u16, 1 << 0); + try testArgs(i1024, u16, 1 << 15); + + try testArgs(u8, i17, -1 << 16); + try testArgs(u8, i17, -1); + try testArgs(u8, i17, 0); + try testArgs(u16, i17, -1 << 16); + try testArgs(u16, i17, -1); + try testArgs(u16, i17, 0); + try testArgs(u32, i17, -1 << 16); + try testArgs(u32, i17, -1); + try testArgs(u32, i17, 0); + try testArgs(u64, i17, -1 << 16); + try testArgs(u64, i17, -1); + try testArgs(u64, i17, 0); + try testArgs(u128, i17, -1 << 16); + try testArgs(u128, i17, -1); + try testArgs(u128, i17, 0); + try testArgs(u256, i17, -1 << 16); + try testArgs(u256, i17, -1); + try testArgs(u256, i17, 0); + try testArgs(u512, i17, -1 << 16); + try testArgs(u512, i17, -1); + try testArgs(u512, i17, 0); + try testArgs(u1024, i17, -1 << 16); + try testArgs(u1024, i17, -1); + try testArgs(u1024, i17, 0); + try testArgs(i8, u17, 0); + try testArgs(i8, u17, 1 << 0); + try testArgs(i8, u17, 1 << 16); + try testArgs(i16, u17, 0); + try testArgs(i16, u17, 1 << 0); + try testArgs(i16, u17, 1 << 16); + try testArgs(i32, u17, 0); + try testArgs(i32, u17, 1 << 0); + try testArgs(i32, u17, 1 << 16); + try testArgs(i64, u17, 0); + try testArgs(i64, u17, 1 << 0); + try testArgs(i64, u17, 1 << 16); + try testArgs(i128, u17, 0); + try testArgs(i128, u17, 1 << 0); + try testArgs(i128, u17, 1 << 16); + try testArgs(i256, u17, 0); + try testArgs(i256, u17, 1 << 0); + try testArgs(i256, u17, 1 << 16); + try testArgs(i512, u17, 0); + try testArgs(i512, u17, 1 << 0); + try testArgs(i512, u17, 1 << 16); + try testArgs(i1024, u17, 0); + try testArgs(i1024, u17, 1 << 0); + try testArgs(i1024, u17, 1 << 16); + + try testArgs(u8, i31, -1 << 30); + try testArgs(u8, i31, -1); + try testArgs(u8, i31, 0); + try testArgs(u16, i31, -1 << 30); + try testArgs(u16, i31, -1); + try testArgs(u16, i31, 0); + try testArgs(u32, i31, -1 << 30); + try testArgs(u32, i31, -1); + try testArgs(u32, i31, 0); + try testArgs(u64, i31, -1 << 30); + try testArgs(u64, i31, -1); + try testArgs(u64, i31, 0); + try testArgs(u128, i31, -1 << 30); + try testArgs(u128, i31, -1); + try testArgs(u128, i31, 0); + try testArgs(u256, i31, -1 << 30); + try testArgs(u256, i31, -1); + try testArgs(u256, i31, 0); + try testArgs(u512, i31, -1 << 30); + try testArgs(u512, i31, -1); + try testArgs(u512, i31, 0); + try testArgs(u1024, i31, -1 << 30); + try testArgs(u1024, i31, -1); + try testArgs(u1024, i31, 0); + try testArgs(i8, u31, 0); + try testArgs(i8, u31, 1 << 0); + try testArgs(i8, u31, 1 << 30); + try testArgs(i16, u31, 0); + try testArgs(i16, u31, 1 << 0); + try testArgs(i16, u31, 1 << 30); + try testArgs(i32, u31, 0); + try testArgs(i32, u31, 1 << 0); + try testArgs(i32, u31, 1 << 30); + try testArgs(i64, u31, 0); + try testArgs(i64, u31, 1 << 0); + try testArgs(i64, u31, 1 << 30); + try testArgs(i128, u31, 0); + try testArgs(i128, u31, 1 << 0); + try testArgs(i128, u31, 1 << 30); + try testArgs(i256, u31, 0); + try testArgs(i256, u31, 1 << 0); + try testArgs(i256, u31, 1 << 30); + try testArgs(i512, u31, 0); + try testArgs(i512, u31, 1 << 0); + try testArgs(i512, u31, 1 << 30); + try testArgs(i1024, u31, 0); + try testArgs(i1024, u31, 1 << 0); + try testArgs(i1024, u31, 1 << 30); + + try testArgs(u8, i32, -1 << 31); + try testArgs(u8, i32, -1); + try testArgs(u8, i32, 0); + try testArgs(u16, i32, -1 << 31); + try testArgs(u16, i32, -1); + try testArgs(u16, i32, 0); + try testArgs(u32, i32, -1 << 31); + try testArgs(u32, i32, -1); + try testArgs(u32, i32, 0); + try testArgs(u64, i32, -1 << 31); + try testArgs(u64, i32, -1); + try testArgs(u64, i32, 0); + try testArgs(u128, i32, -1 << 31); + try testArgs(u128, i32, -1); + try testArgs(u128, i32, 0); + try testArgs(u256, i32, -1 << 31); + try testArgs(u256, i32, -1); + try testArgs(u256, i32, 0); + try testArgs(u512, i32, -1 << 31); + try testArgs(u512, i32, -1); + try testArgs(u512, i32, 0); + try testArgs(u1024, i32, -1 << 31); + try testArgs(u1024, i32, -1); + try testArgs(u1024, i32, 0); + try testArgs(i8, u32, 0); + try testArgs(i8, u32, 1 << 0); + try testArgs(i8, u32, 1 << 31); + try testArgs(i16, u32, 0); + try testArgs(i16, u32, 1 << 0); + try testArgs(i16, u32, 1 << 31); + try testArgs(i32, u32, 0); + try testArgs(i32, u32, 1 << 0); + try testArgs(i32, u32, 1 << 31); + try testArgs(i64, u32, 0); + try testArgs(i64, u32, 1 << 0); + try testArgs(i64, u32, 1 << 31); + try testArgs(i128, u32, 0); + try testArgs(i128, u32, 1 << 0); + try testArgs(i128, u32, 1 << 31); + try testArgs(i256, u32, 0); + try testArgs(i256, u32, 1 << 0); + try testArgs(i256, u32, 1 << 31); + try testArgs(i512, u32, 0); + try testArgs(i512, u32, 1 << 0); + try testArgs(i512, u32, 1 << 31); + try testArgs(i1024, u32, 0); + try testArgs(i1024, u32, 1 << 0); + try testArgs(i1024, u32, 1 << 31); + + try testArgs(u8, i33, -1 << 32); + try testArgs(u8, i33, -1); + try testArgs(u8, i33, 0); + try testArgs(u16, i33, -1 << 32); + try testArgs(u16, i33, -1); + try testArgs(u16, i33, 0); + try testArgs(u32, i33, -1 << 32); + try testArgs(u32, i33, -1); + try testArgs(u32, i33, 0); + try testArgs(u64, i33, -1 << 32); + try testArgs(u64, i33, -1); + try testArgs(u64, i33, 0); + try testArgs(u128, i33, -1 << 32); + try testArgs(u128, i33, -1); + try testArgs(u128, i33, 0); + try testArgs(u256, i33, -1 << 32); + try testArgs(u256, i33, -1); + try testArgs(u256, i33, 0); + try testArgs(u512, i33, -1 << 32); + try testArgs(u512, i33, -1); + try testArgs(u512, i33, 0); + try testArgs(u1024, i33, -1 << 32); + try testArgs(u1024, i33, -1); + try testArgs(u1024, i33, 0); + try testArgs(i8, u33, 0); + try testArgs(i8, u33, 1 << 0); + try testArgs(i8, u33, 1 << 32); + try testArgs(i16, u33, 0); + try testArgs(i16, u33, 1 << 0); + try testArgs(i16, u33, 1 << 32); + try testArgs(i32, u33, 0); + try testArgs(i32, u33, 1 << 0); + try testArgs(i32, u33, 1 << 32); + try testArgs(i64, u33, 0); + try testArgs(i64, u33, 1 << 0); + try testArgs(i64, u33, 1 << 32); + try testArgs(i128, u33, 0); + try testArgs(i128, u33, 1 << 0); + try testArgs(i128, u33, 1 << 32); + try testArgs(i256, u33, 0); + try testArgs(i256, u33, 1 << 0); + try testArgs(i256, u33, 1 << 32); + try testArgs(i512, u33, 0); + try testArgs(i512, u33, 1 << 0); + try testArgs(i512, u33, 1 << 32); + try testArgs(i1024, u33, 0); + try testArgs(i1024, u33, 1 << 0); + try testArgs(i1024, u33, 1 << 32); + + try testArgs(u8, i63, -1 << 62); + try testArgs(u8, i63, -1); + try testArgs(u8, i63, 0); + try testArgs(u16, i63, -1 << 62); + try testArgs(u16, i63, -1); + try testArgs(u16, i63, 0); + try testArgs(u32, i63, -1 << 62); + try testArgs(u32, i63, -1); + try testArgs(u32, i63, 0); + try testArgs(u64, i63, -1 << 62); + try testArgs(u64, i63, -1); + try testArgs(u64, i63, 0); + try testArgs(u128, i63, -1 << 62); + try testArgs(u128, i63, -1); + try testArgs(u128, i63, 0); + try testArgs(u256, i63, -1 << 62); + try testArgs(u256, i63, -1); + try testArgs(u256, i63, 0); + try testArgs(u512, i63, -1 << 62); + try testArgs(u512, i63, -1); + try testArgs(u512, i63, 0); + try testArgs(u1024, i63, -1 << 62); + try testArgs(u1024, i63, -1); + try testArgs(u1024, i63, 0); + try testArgs(i8, u63, 0); + try testArgs(i8, u63, 1 << 0); + try testArgs(i8, u63, 1 << 62); + try testArgs(i16, u63, 0); + try testArgs(i16, u63, 1 << 0); + try testArgs(i16, u63, 1 << 62); + try testArgs(i32, u63, 0); + try testArgs(i32, u63, 1 << 0); + try testArgs(i32, u63, 1 << 62); + try testArgs(i64, u63, 0); + try testArgs(i64, u63, 1 << 0); + try testArgs(i64, u63, 1 << 62); + try testArgs(i128, u63, 0); + try testArgs(i128, u63, 1 << 0); + try testArgs(i128, u63, 1 << 62); + try testArgs(i256, u63, 0); + try testArgs(i256, u63, 1 << 0); + try testArgs(i256, u63, 1 << 62); + try testArgs(i512, u63, 0); + try testArgs(i512, u63, 1 << 0); + try testArgs(i512, u63, 1 << 62); + try testArgs(i1024, u63, 0); + try testArgs(i1024, u63, 1 << 0); + try testArgs(i1024, u63, 1 << 62); + + try testArgs(u8, i64, -1 << 63); + try testArgs(u8, i64, -1); + try testArgs(u8, i64, 0); + try testArgs(u16, i64, -1 << 63); + try testArgs(u16, i64, -1); + try testArgs(u16, i64, 0); + try testArgs(u32, i64, -1 << 63); + try testArgs(u32, i64, -1); + try testArgs(u32, i64, 0); + try testArgs(u64, i64, -1 << 63); + try testArgs(u64, i64, -1); + try testArgs(u64, i64, 0); + try testArgs(u128, i64, -1 << 63); + try testArgs(u128, i64, -1); + try testArgs(u128, i64, 0); + try testArgs(u256, i64, -1 << 63); + try testArgs(u256, i64, -1); + try testArgs(u256, i64, 0); + try testArgs(u512, i64, -1 << 63); + try testArgs(u512, i64, -1); + try testArgs(u512, i64, 0); + try testArgs(u1024, i64, -1 << 63); + try testArgs(u1024, i64, -1); + try testArgs(u1024, i64, 0); + try testArgs(i8, u64, 0); + try testArgs(i8, u64, 1 << 0); + try testArgs(i8, u64, 1 << 63); + try testArgs(i16, u64, 0); + try testArgs(i16, u64, 1 << 0); + try testArgs(i16, u64, 1 << 63); + try testArgs(i32, u64, 0); + try testArgs(i32, u64, 1 << 0); + try testArgs(i32, u64, 1 << 63); + try testArgs(i64, u64, 0); + try testArgs(i64, u64, 1 << 0); + try testArgs(i64, u64, 1 << 63); + try testArgs(i128, u64, 0); + try testArgs(i128, u64, 1 << 0); + try testArgs(i128, u64, 1 << 63); + try testArgs(i256, u64, 0); + try testArgs(i256, u64, 1 << 0); + try testArgs(i256, u64, 1 << 63); + try testArgs(i512, u64, 0); + try testArgs(i512, u64, 1 << 0); + try testArgs(i512, u64, 1 << 63); + try testArgs(i1024, u64, 0); + try testArgs(i1024, u64, 1 << 0); + try testArgs(i1024, u64, 1 << 63); + + try testArgs(u8, i65, -1 << 64); + try testArgs(u8, i65, -1); + try testArgs(u8, i65, 0); + try testArgs(u16, i65, -1 << 64); + try testArgs(u16, i65, -1); + try testArgs(u16, i65, 0); + try testArgs(u32, i65, -1 << 64); + try testArgs(u32, i65, -1); + try testArgs(u32, i65, 0); + try testArgs(u64, i65, -1 << 64); + try testArgs(u64, i65, -1); + try testArgs(u64, i65, 0); + try testArgs(u128, i65, -1 << 64); + try testArgs(u128, i65, -1); + try testArgs(u128, i65, 0); + try testArgs(u256, i65, -1 << 64); + try testArgs(u256, i65, -1); + try testArgs(u256, i65, 0); + try testArgs(u512, i65, -1 << 64); + try testArgs(u512, i65, -1); + try testArgs(u512, i65, 0); + try testArgs(u1024, i65, -1 << 64); + try testArgs(u1024, i65, -1); + try testArgs(u1024, i65, 0); + try testArgs(i8, u65, 0); + try testArgs(i8, u65, 1 << 0); + try testArgs(i8, u65, 1 << 64); + try testArgs(i16, u65, 0); + try testArgs(i16, u65, 1 << 0); + try testArgs(i16, u65, 1 << 64); + try testArgs(i32, u65, 0); + try testArgs(i32, u65, 1 << 0); + try testArgs(i32, u65, 1 << 64); + try testArgs(i64, u65, 0); + try testArgs(i64, u65, 1 << 0); + try testArgs(i64, u65, 1 << 64); + try testArgs(i128, u65, 0); + try testArgs(i128, u65, 1 << 0); + try testArgs(i128, u65, 1 << 64); + try testArgs(i256, u65, 0); + try testArgs(i256, u65, 1 << 0); + try testArgs(i256, u65, 1 << 64); + try testArgs(i512, u65, 0); + try testArgs(i512, u65, 1 << 0); + try testArgs(i512, u65, 1 << 64); + try testArgs(i1024, u65, 0); + try testArgs(i1024, u65, 1 << 0); + try testArgs(i1024, u65, 1 << 64); + + try testArgs(u8, i95, -1 << 94); + try testArgs(u8, i95, -1); + try testArgs(u8, i95, 0); + try testArgs(u16, i95, -1 << 94); + try testArgs(u16, i95, -1); + try testArgs(u16, i95, 0); + try testArgs(u32, i95, -1 << 94); + try testArgs(u32, i95, -1); + try testArgs(u32, i95, 0); + try testArgs(u64, i95, -1 << 94); + try testArgs(u64, i95, -1); + try testArgs(u64, i95, 0); + try testArgs(u128, i95, -1 << 94); + try testArgs(u128, i95, -1); + try testArgs(u128, i95, 0); + try testArgs(u256, i95, -1 << 94); + try testArgs(u256, i95, -1); + try testArgs(u256, i95, 0); + try testArgs(u512, i95, -1 << 94); + try testArgs(u512, i95, -1); + try testArgs(u512, i95, 0); try testArgs(u1024, i95, -1 << 94); try testArgs(u1024, i95, -1); try testArgs(u1024, i95, 0); try testArgs(i8, u95, 0); try testArgs(i8, u95, 1 << 0); try testArgs(i8, u95, 1 << 94); - try testArgs(u8, u95, 0); - try testArgs(u8, u95, 1 << 0); - try testArgs(u8, u95, 1 << 94); try testArgs(i16, u95, 0); try testArgs(i16, u95, 1 << 0); try testArgs(i16, u95, 1 << 94); - try testArgs(u16, u95, 0); - try testArgs(u16, u95, 1 << 0); - try testArgs(u16, u95, 1 << 94); try testArgs(i32, u95, 0); try testArgs(i32, u95, 1 << 0); try testArgs(i32, u95, 1 << 94); - try testArgs(u32, u95, 0); - try testArgs(u32, u95, 1 << 0); - try testArgs(u32, u95, 1 << 94); try testArgs(i64, u95, 0); try testArgs(i64, u95, 1 << 0); try testArgs(i64, u95, 1 << 94); - try testArgs(u64, u95, 0); - try testArgs(u64, u95, 1 << 0); - try testArgs(u64, u95, 1 << 94); try testArgs(i128, u95, 0); try testArgs(i128, u95, 1 << 0); try testArgs(i128, u95, 1 << 94); - try testArgs(u128, u95, 0); - try testArgs(u128, u95, 1 << 0); - try testArgs(u128, u95, 1 << 94); try testArgs(i256, u95, 0); try testArgs(i256, u95, 1 << 0); try testArgs(i256, u95, 1 << 94); - try testArgs(u256, u95, 0); - try testArgs(u256, u95, 1 << 0); - try testArgs(u256, u95, 1 << 94); try testArgs(i512, u95, 0); try testArgs(i512, u95, 1 << 0); try testArgs(i512, u95, 1 << 94); - try testArgs(u512, u95, 0); - try testArgs(u512, u95, 1 << 0); - try testArgs(u512, u95, 1 << 94); try testArgs(i1024, u95, 0); try testArgs(i1024, u95, 1 << 0); try testArgs(i1024, u95, 1 << 94); - try testArgs(u1024, u95, 0); - try testArgs(u1024, u95, 1 << 0); - try testArgs(u1024, u95, 1 << 94); - try testArgs(i8, i96, -1 << 95); - try testArgs(i8, i96, -1); - try testArgs(i8, i96, 0); try testArgs(u8, i96, -1 << 95); try testArgs(u8, i96, -1); try testArgs(u8, i96, 0); - try testArgs(i16, i96, -1 << 95); - try testArgs(i16, i96, -1); - try testArgs(i16, i96, 0); try testArgs(u16, i96, -1 << 95); try testArgs(u16, i96, -1); try testArgs(u16, i96, 0); - try testArgs(i32, i96, -1 << 95); - try testArgs(i32, i96, -1); - try testArgs(i32, i96, 0); try testArgs(u32, i96, -1 << 95); try testArgs(u32, i96, -1); try testArgs(u32, i96, 0); - try testArgs(i64, i96, -1 << 95); - try testArgs(i64, i96, -1); - try testArgs(i64, i96, 0); try testArgs(u64, i96, -1 << 95); try testArgs(u64, i96, -1); try testArgs(u64, i96, 0); - try testArgs(i128, i96, -1 << 95); - try testArgs(i128, i96, -1); - try testArgs(i128, i96, 0); try testArgs(u128, i96, -1 << 95); try testArgs(u128, i96, -1); try testArgs(u128, i96, 0); - try testArgs(i256, i96, -1 << 95); - try testArgs(i256, i96, -1); - try testArgs(i256, i96, 0); try testArgs(u256, i96, -1 << 95); try testArgs(u256, i96, -1); try testArgs(u256, i96, 0); - try testArgs(i512, i96, -1 << 95); - try testArgs(i512, i96, -1); - try testArgs(i512, i96, 0); try testArgs(u512, i96, -1 << 95); try testArgs(u512, i96, -1); try testArgs(u512, i96, 0); - try testArgs(i1024, i96, -1 << 95); - try testArgs(i1024, i96, -1); - try testArgs(i1024, i96, 0); try testArgs(u1024, i96, -1 << 95); try testArgs(u1024, i96, -1); try testArgs(u1024, i96, 0); try testArgs(i8, u96, 0); try testArgs(i8, u96, 1 << 0); try testArgs(i8, u96, 1 << 95); - try testArgs(u8, u96, 0); - try testArgs(u8, u96, 1 << 0); - try testArgs(u8, u96, 1 << 95); try testArgs(i16, u96, 0); try testArgs(i16, u96, 1 << 0); try testArgs(i16, u96, 1 << 95); - try testArgs(u16, u96, 0); - try testArgs(u16, u96, 1 << 0); - try testArgs(u16, u96, 1 << 95); try testArgs(i32, u96, 0); try testArgs(i32, u96, 1 << 0); try testArgs(i32, u96, 1 << 95); - try testArgs(u32, u96, 0); - try testArgs(u32, u96, 1 << 0); - try testArgs(u32, u96, 1 << 95); try testArgs(i64, u96, 0); try testArgs(i64, u96, 1 << 0); try testArgs(i64, u96, 1 << 95); - try testArgs(u64, u96, 0); - try testArgs(u64, u96, 1 << 0); - try testArgs(u64, u96, 1 << 95); try testArgs(i128, u96, 0); try testArgs(i128, u96, 1 << 0); try testArgs(i128, u96, 1 << 95); - try testArgs(u128, u96, 0); - try testArgs(u128, u96, 1 << 0); - try testArgs(u128, u96, 1 << 95); try testArgs(i256, u96, 0); try testArgs(i256, u96, 1 << 0); try testArgs(i256, u96, 1 << 95); - try testArgs(u256, u96, 0); - try testArgs(u256, u96, 1 << 0); - try testArgs(u256, u96, 1 << 95); try testArgs(i512, u96, 0); try testArgs(i512, u96, 1 << 0); try testArgs(i512, u96, 1 << 95); - try testArgs(u512, u96, 0); - try testArgs(u512, u96, 1 << 0); - try testArgs(u512, u96, 1 << 95); try testArgs(i1024, u96, 0); try testArgs(i1024, u96, 1 << 0); try testArgs(i1024, u96, 1 << 95); - try testArgs(u1024, u96, 0); - try testArgs(u1024, u96, 1 << 0); - try testArgs(u1024, u96, 1 << 95); - try testArgs(i8, i97, -1 << 96); - try testArgs(i8, i97, -1); - try testArgs(i8, i97, 0); try testArgs(u8, i97, -1 << 96); try testArgs(u8, i97, -1); try testArgs(u8, i97, 0); - try testArgs(i16, i97, -1 << 96); - try testArgs(i16, i97, -1); - try testArgs(i16, i97, 0); try testArgs(u16, i97, -1 << 96); try testArgs(u16, i97, -1); try testArgs(u16, i97, 0); - try testArgs(i32, i97, -1 << 96); - try testArgs(i32, i97, -1); - try testArgs(i32, i97, 0); try testArgs(u32, i97, -1 << 96); try testArgs(u32, i97, -1); try testArgs(u32, i97, 0); - try testArgs(i64, i97, -1 << 96); - try testArgs(i64, i97, -1); - try testArgs(i64, i97, 0); try testArgs(u64, i97, -1 << 96); try testArgs(u64, i97, -1); try testArgs(u64, i97, 0); - try testArgs(i128, i97, -1 << 96); - try testArgs(i128, i97, -1); - try testArgs(i128, i97, 0); try testArgs(u128, i97, -1 << 96); try testArgs(u128, i97, -1); try testArgs(u128, i97, 0); - try testArgs(i256, i97, -1 << 96); - try testArgs(i256, i97, -1); - try testArgs(i256, i97, 0); try testArgs(u256, i97, -1 << 96); try testArgs(u256, i97, -1); try testArgs(u256, i97, 0); - try testArgs(i512, i97, -1 << 96); - try testArgs(i512, i97, -1); - try testArgs(i512, i97, 0); try testArgs(u512, i97, -1 << 96); try testArgs(u512, i97, -1); try testArgs(u512, i97, 0); - try testArgs(i1024, i97, -1 << 96); - try testArgs(i1024, i97, -1); - try testArgs(i1024, i97, 0); try testArgs(u1024, i97, -1 << 96); try testArgs(u1024, i97, -1); try testArgs(u1024, i97, 0); try testArgs(i8, u97, 0); try testArgs(i8, u97, 1 << 0); try testArgs(i8, u97, 1 << 96); - try testArgs(u8, u97, 0); - try testArgs(u8, u97, 1 << 0); - try testArgs(u8, u97, 1 << 96); try testArgs(i16, u97, 0); try testArgs(i16, u97, 1 << 0); try testArgs(i16, u97, 1 << 96); - try testArgs(u16, u97, 0); - try testArgs(u16, u97, 1 << 0); - try testArgs(u16, u97, 1 << 96); try testArgs(i32, u97, 0); try testArgs(i32, u97, 1 << 0); try testArgs(i32, u97, 1 << 96); - try testArgs(u32, u97, 0); - try testArgs(u32, u97, 1 << 0); - try testArgs(u32, u97, 1 << 96); try testArgs(i64, u97, 0); try testArgs(i64, u97, 1 << 0); try testArgs(i64, u97, 1 << 96); - try testArgs(u64, u97, 0); - try testArgs(u64, u97, 1 << 0); - try testArgs(u64, u97, 1 << 96); try testArgs(i128, u97, 0); try testArgs(i128, u97, 1 << 0); try testArgs(i128, u97, 1 << 96); - try testArgs(u128, u97, 0); - try testArgs(u128, u97, 1 << 0); - try testArgs(u128, u97, 1 << 96); try testArgs(i256, u97, 0); try testArgs(i256, u97, 1 << 0); try testArgs(i256, u97, 1 << 96); - try testArgs(u256, u97, 0); - try testArgs(u256, u97, 1 << 0); - try testArgs(u256, u97, 1 << 96); try testArgs(i512, u97, 0); try testArgs(i512, u97, 1 << 0); try testArgs(i512, u97, 1 << 96); - try testArgs(u512, u97, 0); - try testArgs(u512, u97, 1 << 0); - try testArgs(u512, u97, 1 << 96); try testArgs(i1024, u97, 0); try testArgs(i1024, u97, 1 << 0); try testArgs(i1024, u97, 1 << 96); - try testArgs(u1024, u97, 0); - try testArgs(u1024, u97, 1 << 0); - try testArgs(u1024, u97, 1 << 96); - try testArgs(i8, i127, -1 << 126); - try testArgs(i8, i127, -1); - try testArgs(i8, i127, 0); try testArgs(u8, i127, -1 << 126); try testArgs(u8, i127, -1); try testArgs(u8, i127, 0); - try testArgs(i16, i127, -1 << 126); - try testArgs(i16, i127, -1); - try testArgs(i16, i127, 0); try testArgs(u16, i127, -1 << 126); try testArgs(u16, i127, -1); try testArgs(u16, i127, 0); - try testArgs(i32, i127, -1 << 126); - try testArgs(i32, i127, -1); - try testArgs(i32, i127, 0); try testArgs(u32, i127, -1 << 126); try testArgs(u32, i127, -1); try testArgs(u32, i127, 0); - try testArgs(i64, i127, -1 << 126); - try testArgs(i64, i127, -1); - try testArgs(i64, i127, 0); try testArgs(u64, i127, -1 << 126); try testArgs(u64, i127, -1); try testArgs(u64, i127, 0); - try testArgs(i128, i127, -1 << 126); - try testArgs(i128, i127, -1); - try testArgs(i128, i127, 0); try testArgs(u128, i127, -1 << 126); try testArgs(u128, i127, -1); try testArgs(u128, i127, 0); - try testArgs(i256, i127, -1 << 126); - try testArgs(i256, i127, -1); - try testArgs(i256, i127, 0); try testArgs(u256, i127, -1 << 126); try testArgs(u256, i127, -1); try testArgs(u256, i127, 0); - try testArgs(i512, i127, -1 << 126); - try testArgs(i512, i127, -1); - try testArgs(i512, i127, 0); try testArgs(u512, i127, -1 << 126); try testArgs(u512, i127, -1); try testArgs(u512, i127, 0); - try testArgs(i1024, i127, -1 << 126); - try testArgs(i1024, i127, -1); - try testArgs(i1024, i127, 0); try testArgs(u1024, i127, -1 << 126); try testArgs(u1024, i127, -1); try testArgs(u1024, i127, 0); try testArgs(i8, u127, 0); try testArgs(i8, u127, 1 << 0); try testArgs(i8, u127, 1 << 126); - try testArgs(u8, u127, 0); - try testArgs(u8, u127, 1 << 0); - try testArgs(u8, u127, 1 << 126); try testArgs(i16, u127, 0); try testArgs(i16, u127, 1 << 0); try testArgs(i16, u127, 1 << 126); - try testArgs(u16, u127, 0); - try testArgs(u16, u127, 1 << 0); - try testArgs(u16, u127, 1 << 126); try testArgs(i32, u127, 0); try testArgs(i32, u127, 1 << 0); try testArgs(i32, u127, 1 << 126); - try testArgs(u32, u127, 0); - try testArgs(u32, u127, 1 << 0); - try testArgs(u32, u127, 1 << 126); try testArgs(i64, u127, 0); try testArgs(i64, u127, 1 << 0); try testArgs(i64, u127, 1 << 126); - try testArgs(u64, u127, 0); - try testArgs(u64, u127, 1 << 0); - try testArgs(u64, u127, 1 << 126); try testArgs(i128, u127, 0); try testArgs(i128, u127, 1 << 0); try testArgs(i128, u127, 1 << 126); - try testArgs(u128, u127, 0); - try testArgs(u128, u127, 1 << 0); - try testArgs(u128, u127, 1 << 126); try testArgs(i256, u127, 0); try testArgs(i256, u127, 1 << 0); try testArgs(i256, u127, 1 << 126); - try testArgs(u256, u127, 0); - try testArgs(u256, u127, 1 << 0); - try testArgs(u256, u127, 1 << 126); try testArgs(i512, u127, 0); try testArgs(i512, u127, 1 << 0); try testArgs(i512, u127, 1 << 126); - try testArgs(u512, u127, 0); - try testArgs(u512, u127, 1 << 0); - try testArgs(u512, u127, 1 << 126); try testArgs(i1024, u127, 0); try testArgs(i1024, u127, 1 << 0); try testArgs(i1024, u127, 1 << 126); - try testArgs(u1024, u127, 0); - try testArgs(u1024, u127, 1 << 0); - try testArgs(u1024, u127, 1 << 126); - try testArgs(i8, i128, -1 << 127); - try testArgs(i8, i128, -1); - try testArgs(i8, i128, 0); try testArgs(u8, i128, -1 << 127); try testArgs(u8, i128, -1); try testArgs(u8, i128, 0); - try testArgs(i16, i128, -1 << 127); - try testArgs(i16, i128, -1); - try testArgs(i16, i128, 0); try testArgs(u16, i128, -1 << 127); try testArgs(u16, i128, -1); try testArgs(u16, i128, 0); - try testArgs(i32, i128, -1 << 127); - try testArgs(i32, i128, -1); - try testArgs(i32, i128, 0); try testArgs(u32, i128, -1 << 127); try testArgs(u32, i128, -1); try testArgs(u32, i128, 0); - try testArgs(i64, i128, -1 << 127); - try testArgs(i64, i128, -1); - try testArgs(i64, i128, 0); try testArgs(u64, i128, -1 << 127); try testArgs(u64, i128, -1); try testArgs(u64, i128, 0); - try testArgs(i128, i128, -1 << 127); - try testArgs(i128, i128, -1); - try testArgs(i128, i128, 0); try testArgs(u128, i128, -1 << 127); try testArgs(u128, i128, -1); try testArgs(u128, i128, 0); - try testArgs(i256, i128, -1 << 127); - try testArgs(i256, i128, -1); - try testArgs(i256, i128, 0); try testArgs(u256, i128, -1 << 127); try testArgs(u256, i128, -1); try testArgs(u256, i128, 0); - try testArgs(i512, i128, -1 << 127); - try testArgs(i512, i128, -1); - try testArgs(i512, i128, 0); try testArgs(u512, i128, -1 << 127); try testArgs(u512, i128, -1); try testArgs(u512, i128, 0); - try testArgs(i1024, i128, -1 << 127); - try testArgs(i1024, i128, -1); - try testArgs(i1024, i128, 0); try testArgs(u1024, i128, -1 << 127); try testArgs(u1024, i128, -1); try testArgs(u1024, i128, 0); try testArgs(i8, u128, 0); try testArgs(i8, u128, 1 << 0); try testArgs(i8, u128, 1 << 127); - try testArgs(u8, u128, 0); - try testArgs(u8, u128, 1 << 0); - try testArgs(u8, u128, 1 << 127); try testArgs(i16, u128, 0); try testArgs(i16, u128, 1 << 0); try testArgs(i16, u128, 1 << 127); - try testArgs(u16, u128, 0); - try testArgs(u16, u128, 1 << 0); - try testArgs(u16, u128, 1 << 127); try testArgs(i32, u128, 0); try testArgs(i32, u128, 1 << 0); try testArgs(i32, u128, 1 << 127); - try testArgs(u32, u128, 0); - try testArgs(u32, u128, 1 << 0); - try testArgs(u32, u128, 1 << 127); try testArgs(i64, u128, 0); try testArgs(i64, u128, 1 << 0); try testArgs(i64, u128, 1 << 127); - try testArgs(u64, u128, 0); - try testArgs(u64, u128, 1 << 0); - try testArgs(u64, u128, 1 << 127); try testArgs(i128, u128, 0); try testArgs(i128, u128, 1 << 0); try testArgs(i128, u128, 1 << 127); - try testArgs(u128, u128, 0); - try testArgs(u128, u128, 1 << 0); - try testArgs(u128, u128, 1 << 127); try testArgs(i256, u128, 0); try testArgs(i256, u128, 1 << 0); try testArgs(i256, u128, 1 << 127); - try testArgs(u256, u128, 0); - try testArgs(u256, u128, 1 << 0); - try testArgs(u256, u128, 1 << 127); try testArgs(i512, u128, 0); try testArgs(i512, u128, 1 << 0); try testArgs(i512, u128, 1 << 127); - try testArgs(u512, u128, 0); - try testArgs(u512, u128, 1 << 0); - try testArgs(u512, u128, 1 << 127); try testArgs(i1024, u128, 0); try testArgs(i1024, u128, 1 << 0); try testArgs(i1024, u128, 1 << 127); - try testArgs(u1024, u128, 0); - try testArgs(u1024, u128, 1 << 0); - try testArgs(u1024, u128, 1 << 127); - try testArgs(i8, i129, -1 << 128); - try testArgs(i8, i129, -1); - try testArgs(i8, i129, 0); try testArgs(u8, i129, -1 << 128); try testArgs(u8, i129, -1); try testArgs(u8, i129, 0); - try testArgs(i16, i129, -1 << 128); - try testArgs(i16, i129, -1); - try testArgs(i16, i129, 0); try testArgs(u16, i129, -1 << 128); try testArgs(u16, i129, -1); try testArgs(u16, i129, 0); - try testArgs(i32, i129, -1 << 128); - try testArgs(i32, i129, -1); - try testArgs(i32, i129, 0); try testArgs(u32, i129, -1 << 128); try testArgs(u32, i129, -1); try testArgs(u32, i129, 0); - try testArgs(i64, i129, -1 << 128); - try testArgs(i64, i129, -1); - try testArgs(i64, i129, 0); try testArgs(u64, i129, -1 << 128); try testArgs(u64, i129, -1); try testArgs(u64, i129, 0); - try testArgs(i128, i129, -1 << 128); - try testArgs(i128, i129, -1); - try testArgs(i128, i129, 0); try testArgs(u128, i129, -1 << 128); try testArgs(u128, i129, -1); try testArgs(u128, i129, 0); - try testArgs(i256, i129, -1 << 128); - try testArgs(i256, i129, -1); - try testArgs(i256, i129, 0); try testArgs(u256, i129, -1 << 128); try testArgs(u256, i129, -1); try testArgs(u256, i129, 0); - try testArgs(i512, i129, -1 << 128); - try testArgs(i512, i129, -1); - try testArgs(i512, i129, 0); try testArgs(u512, i129, -1 << 128); try testArgs(u512, i129, -1); try testArgs(u512, i129, 0); - try testArgs(i1024, i129, -1 << 128); - try testArgs(i1024, i129, -1); - try testArgs(i1024, i129, 0); try testArgs(u1024, i129, -1 << 128); try testArgs(u1024, i129, -1); try testArgs(u1024, i129, 0); try testArgs(i8, u129, 0); try testArgs(i8, u129, 1 << 0); try testArgs(i8, u129, 1 << 128); - try testArgs(u8, u129, 0); - try testArgs(u8, u129, 1 << 0); - try testArgs(u8, u129, 1 << 128); try testArgs(i16, u129, 0); try testArgs(i16, u129, 1 << 0); try testArgs(i16, u129, 1 << 128); - try testArgs(u16, u129, 0); - try testArgs(u16, u129, 1 << 0); - try testArgs(u16, u129, 1 << 128); try testArgs(i32, u129, 0); try testArgs(i32, u129, 1 << 0); try testArgs(i32, u129, 1 << 128); - try testArgs(u32, u129, 0); - try testArgs(u32, u129, 1 << 0); - try testArgs(u32, u129, 1 << 128); try testArgs(i64, u129, 0); try testArgs(i64, u129, 1 << 0); try testArgs(i64, u129, 1 << 128); - try testArgs(u64, u129, 0); - try testArgs(u64, u129, 1 << 0); - try testArgs(u64, u129, 1 << 128); try testArgs(i128, u129, 0); try testArgs(i128, u129, 1 << 0); try testArgs(i128, u129, 1 << 128); - try testArgs(u128, u129, 0); - try testArgs(u128, u129, 1 << 0); - try testArgs(u128, u129, 1 << 128); try testArgs(i256, u129, 0); try testArgs(i256, u129, 1 << 0); try testArgs(i256, u129, 1 << 128); - try testArgs(u256, u129, 0); - try testArgs(u256, u129, 1 << 0); - try testArgs(u256, u129, 1 << 128); try testArgs(i512, u129, 0); try testArgs(i512, u129, 1 << 0); try testArgs(i512, u129, 1 << 128); - try testArgs(u512, u129, 0); - try testArgs(u512, u129, 1 << 0); - try testArgs(u512, u129, 1 << 128); try testArgs(i1024, u129, 0); try testArgs(i1024, u129, 1 << 0); try testArgs(i1024, u129, 1 << 128); - try testArgs(u1024, u129, 0); - try testArgs(u1024, u129, 1 << 0); - try testArgs(u1024, u129, 1 << 128); - - try testArgs(i8, i159, -1 << 158); - try testArgs(i8, i159, -1); - try testArgs(i8, i159, 0); - try testArgs(u8, i159, -1 << 158); - try testArgs(u8, i159, -1); - try testArgs(u8, i159, 0); - try testArgs(i16, i159, -1 << 158); - try testArgs(i16, i159, -1); - try testArgs(i16, i159, 0); - try testArgs(u16, i159, -1 << 158); - try testArgs(u16, i159, -1); - try testArgs(u16, i159, 0); - try testArgs(i32, i159, -1 << 158); - try testArgs(i32, i159, -1); - try testArgs(i32, i159, 0); - try testArgs(u32, i159, -1 << 158); - try testArgs(u32, i159, -1); - try testArgs(u32, i159, 0); - try testArgs(i64, i159, -1 << 158); - try testArgs(i64, i159, -1); - try testArgs(i64, i159, 0); - try testArgs(u64, i159, -1 << 158); - try testArgs(u64, i159, -1); - try testArgs(u64, i159, 0); - try testArgs(i128, i159, -1 << 158); - try testArgs(i128, i159, -1); - try testArgs(i128, i159, 0); - try testArgs(u128, i159, -1 << 158); - try testArgs(u128, i159, -1); - try testArgs(u128, i159, 0); - try testArgs(i256, i159, -1 << 158); - try testArgs(i256, i159, -1); - try testArgs(i256, i159, 0); - try testArgs(u256, i159, -1 << 158); - try testArgs(u256, i159, -1); - try testArgs(u256, i159, 0); - try testArgs(i512, i159, -1 << 158); - try testArgs(i512, i159, -1); - try testArgs(i512, i159, 0); - try testArgs(u512, i159, -1 << 158); - try testArgs(u512, i159, -1); - try testArgs(u512, i159, 0); - try testArgs(i1024, i159, -1 << 158); - try testArgs(i1024, i159, -1); - try testArgs(i1024, i159, 0); - try testArgs(u1024, i159, -1 << 158); - try testArgs(u1024, i159, -1); - try testArgs(u1024, i159, 0); - try testArgs(i8, u159, 0); - try testArgs(i8, u159, 1 << 0); - try testArgs(i8, u159, 1 << 158); - try testArgs(u8, u159, 0); - try testArgs(u8, u159, 1 << 0); - try testArgs(u8, u159, 1 << 158); - try testArgs(i16, u159, 0); - try testArgs(i16, u159, 1 << 0); - try testArgs(i16, u159, 1 << 158); - try testArgs(u16, u159, 0); - try testArgs(u16, u159, 1 << 0); - try testArgs(u16, u159, 1 << 158); - try testArgs(i32, u159, 0); - try testArgs(i32, u159, 1 << 0); - try testArgs(i32, u159, 1 << 158); - try testArgs(u32, u159, 0); - try testArgs(u32, u159, 1 << 0); - try testArgs(u32, u159, 1 << 158); - try testArgs(i64, u159, 0); - try testArgs(i64, u159, 1 << 0); - try testArgs(i64, u159, 1 << 158); - try testArgs(u64, u159, 0); - try testArgs(u64, u159, 1 << 0); - try testArgs(u64, u159, 1 << 158); - try testArgs(i128, u159, 0); - try testArgs(i128, u159, 1 << 0); - try testArgs(i128, u159, 1 << 158); - try testArgs(u128, u159, 0); - try testArgs(u128, u159, 1 << 0); - try testArgs(u128, u159, 1 << 158); - try testArgs(i256, u159, 0); - try testArgs(i256, u159, 1 << 0); - try testArgs(i256, u159, 1 << 158); - try testArgs(u256, u159, 0); - try testArgs(u256, u159, 1 << 0); - try testArgs(u256, u159, 1 << 158); - try testArgs(i512, u159, 0); - try testArgs(i512, u159, 1 << 0); - try testArgs(i512, u159, 1 << 158); - try testArgs(u512, u159, 0); - try testArgs(u512, u159, 1 << 0); - try testArgs(u512, u159, 1 << 158); - try testArgs(i1024, u159, 0); - try testArgs(i1024, u159, 1 << 0); - try testArgs(i1024, u159, 1 << 158); - try testArgs(u1024, u159, 0); - try testArgs(u1024, u159, 1 << 0); - try testArgs(u1024, u159, 1 << 158); - - try testArgs(i8, i160, -1 << 159); - try testArgs(i8, i160, -1); - try testArgs(i8, i160, 0); - try testArgs(u8, i160, -1 << 159); - try testArgs(u8, i160, -1); - try testArgs(u8, i160, 0); - try testArgs(i16, i160, -1 << 159); - try testArgs(i16, i160, -1); - try testArgs(i16, i160, 0); - try testArgs(u16, i160, -1 << 159); - try testArgs(u16, i160, -1); - try testArgs(u16, i160, 0); - try testArgs(i32, i160, -1 << 159); - try testArgs(i32, i160, -1); - try testArgs(i32, i160, 0); - try testArgs(u32, i160, -1 << 159); - try testArgs(u32, i160, -1); - try testArgs(u32, i160, 0); - try testArgs(i64, i160, -1 << 159); - try testArgs(i64, i160, -1); - try testArgs(i64, i160, 0); - try testArgs(u64, i160, -1 << 159); - try testArgs(u64, i160, -1); - try testArgs(u64, i160, 0); - try testArgs(i128, i160, -1 << 159); - try testArgs(i128, i160, -1); - try testArgs(i128, i160, 0); - try testArgs(u128, i160, -1 << 159); - try testArgs(u128, i160, -1); - try testArgs(u128, i160, 0); - try testArgs(i256, i160, -1 << 159); - try testArgs(i256, i160, -1); - try testArgs(i256, i160, 0); - try testArgs(u256, i160, -1 << 159); - try testArgs(u256, i160, -1); - try testArgs(u256, i160, 0); - try testArgs(i512, i160, -1 << 159); - try testArgs(i512, i160, -1); - try testArgs(i512, i160, 0); - try testArgs(u512, i160, -1 << 159); - try testArgs(u512, i160, -1); - try testArgs(u512, i160, 0); - try testArgs(i1024, i160, -1 << 159); - try testArgs(i1024, i160, -1); - try testArgs(i1024, i160, 0); - try testArgs(u1024, i160, -1 << 159); - try testArgs(u1024, i160, -1); - try testArgs(u1024, i160, 0); - try testArgs(i8, u160, 0); - try testArgs(i8, u160, 1 << 0); - try testArgs(i8, u160, 1 << 159); - try testArgs(u8, u160, 0); - try testArgs(u8, u160, 1 << 0); - try testArgs(u8, u160, 1 << 159); - try testArgs(i16, u160, 0); - try testArgs(i16, u160, 1 << 0); - try testArgs(i16, u160, 1 << 159); - try testArgs(u16, u160, 0); - try testArgs(u16, u160, 1 << 0); - try testArgs(u16, u160, 1 << 159); - try testArgs(i32, u160, 0); - try testArgs(i32, u160, 1 << 0); - try testArgs(i32, u160, 1 << 159); - try testArgs(u32, u160, 0); - try testArgs(u32, u160, 1 << 0); - try testArgs(u32, u160, 1 << 159); - try testArgs(i64, u160, 0); - try testArgs(i64, u160, 1 << 0); - try testArgs(i64, u160, 1 << 159); - try testArgs(u64, u160, 0); - try testArgs(u64, u160, 1 << 0); - try testArgs(u64, u160, 1 << 159); - try testArgs(i128, u160, 0); - try testArgs(i128, u160, 1 << 0); - try testArgs(i128, u160, 1 << 159); - try testArgs(u128, u160, 0); - try testArgs(u128, u160, 1 << 0); - try testArgs(u128, u160, 1 << 159); - try testArgs(i256, u160, 0); - try testArgs(i256, u160, 1 << 0); - try testArgs(i256, u160, 1 << 159); - try testArgs(u256, u160, 0); - try testArgs(u256, u160, 1 << 0); - try testArgs(u256, u160, 1 << 159); - try testArgs(i512, u160, 0); - try testArgs(i512, u160, 1 << 0); - try testArgs(i512, u160, 1 << 159); - try testArgs(u512, u160, 0); - try testArgs(u512, u160, 1 << 0); - try testArgs(u512, u160, 1 << 159); - try testArgs(i1024, u160, 0); - try testArgs(i1024, u160, 1 << 0); - try testArgs(i1024, u160, 1 << 159); - try testArgs(u1024, u160, 0); - try testArgs(u1024, u160, 1 << 0); - try testArgs(u1024, u160, 1 << 159); - - try testArgs(i8, i161, -1 << 160); - try testArgs(i8, i161, -1); - try testArgs(i8, i161, 0); - try testArgs(u8, i161, -1 << 160); - try testArgs(u8, i161, -1); - try testArgs(u8, i161, 0); - try testArgs(i16, i161, -1 << 160); - try testArgs(i16, i161, -1); - try testArgs(i16, i161, 0); - try testArgs(u16, i161, -1 << 160); - try testArgs(u16, i161, -1); - try testArgs(u16, i161, 0); - try testArgs(i32, i161, -1 << 160); - try testArgs(i32, i161, -1); - try testArgs(i32, i161, 0); - try testArgs(u32, i161, -1 << 160); - try testArgs(u32, i161, -1); - try testArgs(u32, i161, 0); - try testArgs(i64, i161, -1 << 160); - try testArgs(i64, i161, -1); - try testArgs(i64, i161, 0); - try testArgs(u64, i161, -1 << 160); - try testArgs(u64, i161, -1); - try testArgs(u64, i161, 0); - try testArgs(i128, i161, -1 << 160); - try testArgs(i128, i161, -1); - try testArgs(i128, i161, 0); - try testArgs(u128, i161, -1 << 160); - try testArgs(u128, i161, -1); - try testArgs(u128, i161, 0); - try testArgs(i256, i161, -1 << 160); - try testArgs(i256, i161, -1); - try testArgs(i256, i161, 0); - try testArgs(u256, i161, -1 << 160); - try testArgs(u256, i161, -1); - try testArgs(u256, i161, 0); - try testArgs(i512, i161, -1 << 160); - try testArgs(i512, i161, -1); - try testArgs(i512, i161, 0); - try testArgs(u512, i161, -1 << 160); - try testArgs(u512, i161, -1); - try testArgs(u512, i161, 0); - try testArgs(i1024, i161, -1 << 160); - try testArgs(i1024, i161, -1); - try testArgs(i1024, i161, 0); - try testArgs(u1024, i161, -1 << 160); - try testArgs(u1024, i161, -1); - try testArgs(u1024, i161, 0); - try testArgs(i8, u161, 0); - try testArgs(i8, u161, 1 << 0); - try testArgs(i8, u161, 1 << 160); - try testArgs(u8, u161, 0); - try testArgs(u8, u161, 1 << 0); - try testArgs(u8, u161, 1 << 160); - try testArgs(i16, u161, 0); - try testArgs(i16, u161, 1 << 0); - try testArgs(i16, u161, 1 << 160); - try testArgs(u16, u161, 0); - try testArgs(u16, u161, 1 << 0); - try testArgs(u16, u161, 1 << 160); - try testArgs(i32, u161, 0); - try testArgs(i32, u161, 1 << 0); - try testArgs(i32, u161, 1 << 160); - try testArgs(u32, u161, 0); - try testArgs(u32, u161, 1 << 0); - try testArgs(u32, u161, 1 << 160); - try testArgs(i64, u161, 0); - try testArgs(i64, u161, 1 << 0); - try testArgs(i64, u161, 1 << 160); - try testArgs(u64, u161, 0); - try testArgs(u64, u161, 1 << 0); - try testArgs(u64, u161, 1 << 160); - try testArgs(i128, u161, 0); - try testArgs(i128, u161, 1 << 0); - try testArgs(i128, u161, 1 << 160); - try testArgs(u128, u161, 0); - try testArgs(u128, u161, 1 << 0); - try testArgs(u128, u161, 1 << 160); - try testArgs(i256, u161, 0); - try testArgs(i256, u161, 1 << 0); - try testArgs(i256, u161, 1 << 160); - try testArgs(u256, u161, 0); - try testArgs(u256, u161, 1 << 0); - try testArgs(u256, u161, 1 << 160); - try testArgs(i512, u161, 0); - try testArgs(i512, u161, 1 << 0); - try testArgs(i512, u161, 1 << 160); - try testArgs(u512, u161, 0); - try testArgs(u512, u161, 1 << 0); - try testArgs(u512, u161, 1 << 160); - try testArgs(i1024, u161, 0); - try testArgs(i1024, u161, 1 << 0); - try testArgs(i1024, u161, 1 << 160); - try testArgs(u1024, u161, 0); - try testArgs(u1024, u161, 1 << 0); - try testArgs(u1024, u161, 1 << 160); - - try testArgs(i8, i191, -1 << 190); - try testArgs(i8, i191, -1); - try testArgs(i8, i191, 0); - try testArgs(u8, i191, -1 << 190); - try testArgs(u8, i191, -1); - try testArgs(u8, i191, 0); - try testArgs(i16, i191, -1 << 190); - try testArgs(i16, i191, -1); - try testArgs(i16, i191, 0); - try testArgs(u16, i191, -1 << 190); - try testArgs(u16, i191, -1); - try testArgs(u16, i191, 0); - try testArgs(i32, i191, -1 << 190); - try testArgs(i32, i191, -1); - try testArgs(i32, i191, 0); - try testArgs(u32, i191, -1 << 190); - try testArgs(u32, i191, -1); - try testArgs(u32, i191, 0); - try testArgs(i64, i191, -1 << 190); - try testArgs(i64, i191, -1); - try testArgs(i64, i191, 0); - try testArgs(u64, i191, -1 << 190); - try testArgs(u64, i191, -1); - try testArgs(u64, i191, 0); - try testArgs(i128, i191, -1 << 190); - try testArgs(i128, i191, -1); - try testArgs(i128, i191, 0); - try testArgs(u128, i191, -1 << 190); - try testArgs(u128, i191, -1); - try testArgs(u128, i191, 0); - try testArgs(i256, i191, -1 << 190); - try testArgs(i256, i191, -1); - try testArgs(i256, i191, 0); - try testArgs(u256, i191, -1 << 190); - try testArgs(u256, i191, -1); - try testArgs(u256, i191, 0); - try testArgs(i512, i191, -1 << 190); - try testArgs(i512, i191, -1); - try testArgs(i512, i191, 0); - try testArgs(u512, i191, -1 << 190); - try testArgs(u512, i191, -1); - try testArgs(u512, i191, 0); - try testArgs(i1024, i191, -1 << 190); - try testArgs(i1024, i191, -1); - try testArgs(i1024, i191, 0); - try testArgs(u1024, i191, -1 << 190); - try testArgs(u1024, i191, -1); - try testArgs(u1024, i191, 0); - try testArgs(i8, u191, 0); - try testArgs(i8, u191, 1 << 0); - try testArgs(i8, u191, 1 << 190); - try testArgs(u8, u191, 0); - try testArgs(u8, u191, 1 << 0); - try testArgs(u8, u191, 1 << 190); - try testArgs(i16, u191, 0); - try testArgs(i16, u191, 1 << 0); - try testArgs(i16, u191, 1 << 190); - try testArgs(u16, u191, 0); - try testArgs(u16, u191, 1 << 0); - try testArgs(u16, u191, 1 << 190); - try testArgs(i32, u191, 0); - try testArgs(i32, u191, 1 << 0); - try testArgs(i32, u191, 1 << 190); - try testArgs(u32, u191, 0); - try testArgs(u32, u191, 1 << 0); - try testArgs(u32, u191, 1 << 190); - try testArgs(i64, u191, 0); - try testArgs(i64, u191, 1 << 0); - try testArgs(i64, u191, 1 << 190); - try testArgs(u64, u191, 0); - try testArgs(u64, u191, 1 << 0); - try testArgs(u64, u191, 1 << 190); - try testArgs(i128, u191, 0); - try testArgs(i128, u191, 1 << 0); - try testArgs(i128, u191, 1 << 190); - try testArgs(u128, u191, 0); - try testArgs(u128, u191, 1 << 0); - try testArgs(u128, u191, 1 << 190); - try testArgs(i256, u191, 0); - try testArgs(i256, u191, 1 << 0); - try testArgs(i256, u191, 1 << 190); - try testArgs(u256, u191, 0); - try testArgs(u256, u191, 1 << 0); - try testArgs(u256, u191, 1 << 190); - try testArgs(i512, u191, 0); - try testArgs(i512, u191, 1 << 0); - try testArgs(i512, u191, 1 << 190); - try testArgs(u512, u191, 0); - try testArgs(u512, u191, 1 << 0); - try testArgs(u512, u191, 1 << 190); - try testArgs(i1024, u191, 0); - try testArgs(i1024, u191, 1 << 0); - try testArgs(i1024, u191, 1 << 190); - try testArgs(u1024, u191, 0); - try testArgs(u1024, u191, 1 << 0); - try testArgs(u1024, u191, 1 << 190); - - try testArgs(i8, i192, -1 << 191); - try testArgs(i8, i192, -1); - try testArgs(i8, i192, 0); - try testArgs(u8, i192, -1 << 191); - try testArgs(u8, i192, -1); - try testArgs(u8, i192, 0); - try testArgs(i16, i192, -1 << 191); - try testArgs(i16, i192, -1); - try testArgs(i16, i192, 0); - try testArgs(u16, i192, -1 << 191); - try testArgs(u16, i192, -1); - try testArgs(u16, i192, 0); - try testArgs(i32, i192, -1 << 191); - try testArgs(i32, i192, -1); - try testArgs(i32, i192, 0); - try testArgs(u32, i192, -1 << 191); - try testArgs(u32, i192, -1); - try testArgs(u32, i192, 0); - try testArgs(i64, i192, -1 << 191); - try testArgs(i64, i192, -1); - try testArgs(i64, i192, 0); - try testArgs(u64, i192, -1 << 191); - try testArgs(u64, i192, -1); - try testArgs(u64, i192, 0); - try testArgs(i128, i192, -1 << 191); - try testArgs(i128, i192, -1); - try testArgs(i128, i192, 0); - try testArgs(u128, i192, -1 << 191); - try testArgs(u128, i192, -1); - try testArgs(u128, i192, 0); - try testArgs(i256, i192, -1 << 191); - try testArgs(i256, i192, -1); - try testArgs(i256, i192, 0); - try testArgs(u256, i192, -1 << 191); - try testArgs(u256, i192, -1); - try testArgs(u256, i192, 0); - try testArgs(i512, i192, -1 << 191); - try testArgs(i512, i192, -1); - try testArgs(i512, i192, 0); - try testArgs(u512, i192, -1 << 191); - try testArgs(u512, i192, -1); - try testArgs(u512, i192, 0); - try testArgs(i1024, i192, -1 << 191); - try testArgs(i1024, i192, -1); - try testArgs(i1024, i192, 0); - try testArgs(u1024, i192, -1 << 191); - try testArgs(u1024, i192, -1); - try testArgs(u1024, i192, 0); - try testArgs(i8, u192, 0); - try testArgs(i8, u192, 1 << 0); - try testArgs(i8, u192, 1 << 191); - try testArgs(u8, u192, 0); - try testArgs(u8, u192, 1 << 0); - try testArgs(u8, u192, 1 << 191); - try testArgs(i16, u192, 0); - try testArgs(i16, u192, 1 << 0); - try testArgs(i16, u192, 1 << 191); - try testArgs(u16, u192, 0); - try testArgs(u16, u192, 1 << 0); - try testArgs(u16, u192, 1 << 191); - try testArgs(i32, u192, 0); - try testArgs(i32, u192, 1 << 0); - try testArgs(i32, u192, 1 << 191); - try testArgs(u32, u192, 0); - try testArgs(u32, u192, 1 << 0); - try testArgs(u32, u192, 1 << 191); - try testArgs(i64, u192, 0); - try testArgs(i64, u192, 1 << 0); - try testArgs(i64, u192, 1 << 191); - try testArgs(u64, u192, 0); - try testArgs(u64, u192, 1 << 0); - try testArgs(u64, u192, 1 << 191); - try testArgs(i128, u192, 0); - try testArgs(i128, u192, 1 << 0); - try testArgs(i128, u192, 1 << 191); - try testArgs(u128, u192, 0); - try testArgs(u128, u192, 1 << 0); - try testArgs(u128, u192, 1 << 191); - try testArgs(i256, u192, 0); - try testArgs(i256, u192, 1 << 0); - try testArgs(i256, u192, 1 << 191); - try testArgs(u256, u192, 0); - try testArgs(u256, u192, 1 << 0); - try testArgs(u256, u192, 1 << 191); - try testArgs(i512, u192, 0); - try testArgs(i512, u192, 1 << 0); - try testArgs(i512, u192, 1 << 191); - try testArgs(u512, u192, 0); - try testArgs(u512, u192, 1 << 0); - try testArgs(u512, u192, 1 << 191); - try testArgs(i1024, u192, 0); - try testArgs(i1024, u192, 1 << 0); - try testArgs(i1024, u192, 1 << 191); - try testArgs(u1024, u192, 0); - try testArgs(u1024, u192, 1 << 0); - try testArgs(u1024, u192, 1 << 191); - - try testArgs(i8, i193, -1 << 192); - try testArgs(i8, i193, -1); - try testArgs(i8, i193, 0); - try testArgs(u8, i193, -1 << 192); - try testArgs(u8, i193, -1); - try testArgs(u8, i193, 0); - try testArgs(i16, i193, -1 << 192); - try testArgs(i16, i193, -1); - try testArgs(i16, i193, 0); - try testArgs(u16, i193, -1 << 192); - try testArgs(u16, i193, -1); - try testArgs(u16, i193, 0); - try testArgs(i32, i193, -1 << 192); - try testArgs(i32, i193, -1); - try testArgs(i32, i193, 0); - try testArgs(u32, i193, -1 << 192); - try testArgs(u32, i193, -1); - try testArgs(u32, i193, 0); - try testArgs(i64, i193, -1 << 192); - try testArgs(i64, i193, -1); - try testArgs(i64, i193, 0); - try testArgs(u64, i193, -1 << 192); - try testArgs(u64, i193, -1); - try testArgs(u64, i193, 0); - try testArgs(i128, i193, -1 << 192); - try testArgs(i128, i193, -1); - try testArgs(i128, i193, 0); - try testArgs(u128, i193, -1 << 192); - try testArgs(u128, i193, -1); - try testArgs(u128, i193, 0); - try testArgs(i256, i193, -1 << 192); - try testArgs(i256, i193, -1); - try testArgs(i256, i193, 0); - try testArgs(u256, i193, -1 << 192); - try testArgs(u256, i193, -1); - try testArgs(u256, i193, 0); - try testArgs(i512, i193, -1 << 192); - try testArgs(i512, i193, -1); - try testArgs(i512, i193, 0); - try testArgs(u512, i193, -1 << 192); - try testArgs(u512, i193, -1); - try testArgs(u512, i193, 0); - try testArgs(i1024, i193, -1 << 192); - try testArgs(i1024, i193, -1); - try testArgs(i1024, i193, 0); - try testArgs(u1024, i193, -1 << 192); - try testArgs(u1024, i193, -1); - try testArgs(u1024, i193, 0); - try testArgs(i8, u193, 0); - try testArgs(i8, u193, 1 << 0); - try testArgs(i8, u193, 1 << 192); - try testArgs(u8, u193, 0); - try testArgs(u8, u193, 1 << 0); - try testArgs(u8, u193, 1 << 192); - try testArgs(i16, u193, 0); - try testArgs(i16, u193, 1 << 0); - try testArgs(i16, u193, 1 << 192); - try testArgs(u16, u193, 0); - try testArgs(u16, u193, 1 << 0); - try testArgs(u16, u193, 1 << 192); - try testArgs(i32, u193, 0); - try testArgs(i32, u193, 1 << 0); - try testArgs(i32, u193, 1 << 192); - try testArgs(u32, u193, 0); - try testArgs(u32, u193, 1 << 0); - try testArgs(u32, u193, 1 << 192); - try testArgs(i64, u193, 0); - try testArgs(i64, u193, 1 << 0); - try testArgs(i64, u193, 1 << 192); - try testArgs(u64, u193, 0); - try testArgs(u64, u193, 1 << 0); - try testArgs(u64, u193, 1 << 192); - try testArgs(i128, u193, 0); - try testArgs(i128, u193, 1 << 0); - try testArgs(i128, u193, 1 << 192); - try testArgs(u128, u193, 0); - try testArgs(u128, u193, 1 << 0); - try testArgs(u128, u193, 1 << 192); - try testArgs(i256, u193, 0); - try testArgs(i256, u193, 1 << 0); - try testArgs(i256, u193, 1 << 192); - try testArgs(u256, u193, 0); - try testArgs(u256, u193, 1 << 0); - try testArgs(u256, u193, 1 << 192); - try testArgs(i512, u193, 0); - try testArgs(i512, u193, 1 << 0); - try testArgs(i512, u193, 1 << 192); - try testArgs(u512, u193, 0); - try testArgs(u512, u193, 1 << 0); - try testArgs(u512, u193, 1 << 192); - try testArgs(i1024, u193, 0); - try testArgs(i1024, u193, 1 << 0); - try testArgs(i1024, u193, 1 << 192); - try testArgs(u1024, u193, 0); - try testArgs(u1024, u193, 1 << 0); - try testArgs(u1024, u193, 1 << 192); - - try testArgs(i8, i223, -1 << 222); - try testArgs(i8, i223, -1); - try testArgs(i8, i223, 0); - try testArgs(u8, i223, -1 << 222); - try testArgs(u8, i223, -1); - try testArgs(u8, i223, 0); - try testArgs(i16, i223, -1 << 222); - try testArgs(i16, i223, -1); - try testArgs(i16, i223, 0); - try testArgs(u16, i223, -1 << 222); - try testArgs(u16, i223, -1); - try testArgs(u16, i223, 0); - try testArgs(i32, i223, -1 << 222); - try testArgs(i32, i223, -1); - try testArgs(i32, i223, 0); - try testArgs(u32, i223, -1 << 222); - try testArgs(u32, i223, -1); - try testArgs(u32, i223, 0); - try testArgs(i64, i223, -1 << 222); - try testArgs(i64, i223, -1); - try testArgs(i64, i223, 0); - try testArgs(u64, i223, -1 << 222); - try testArgs(u64, i223, -1); - try testArgs(u64, i223, 0); - try testArgs(i128, i223, -1 << 222); - try testArgs(i128, i223, -1); - try testArgs(i128, i223, 0); - try testArgs(u128, i223, -1 << 222); - try testArgs(u128, i223, -1); - try testArgs(u128, i223, 0); - try testArgs(i256, i223, -1 << 222); - try testArgs(i256, i223, -1); - try testArgs(i256, i223, 0); - try testArgs(u256, i223, -1 << 222); - try testArgs(u256, i223, -1); - try testArgs(u256, i223, 0); - try testArgs(i512, i223, -1 << 222); - try testArgs(i512, i223, -1); - try testArgs(i512, i223, 0); - try testArgs(u512, i223, -1 << 222); - try testArgs(u512, i223, -1); - try testArgs(u512, i223, 0); - try testArgs(i1024, i223, -1 << 222); - try testArgs(i1024, i223, -1); - try testArgs(i1024, i223, 0); - try testArgs(u1024, i223, -1 << 222); - try testArgs(u1024, i223, -1); - try testArgs(u1024, i223, 0); - try testArgs(i8, u223, 0); - try testArgs(i8, u223, 1 << 0); - try testArgs(i8, u223, 1 << 222); - try testArgs(u8, u223, 0); - try testArgs(u8, u223, 1 << 0); - try testArgs(u8, u223, 1 << 222); - try testArgs(i16, u223, 0); - try testArgs(i16, u223, 1 << 0); - try testArgs(i16, u223, 1 << 222); - try testArgs(u16, u223, 0); - try testArgs(u16, u223, 1 << 0); - try testArgs(u16, u223, 1 << 222); - try testArgs(i32, u223, 0); - try testArgs(i32, u223, 1 << 0); - try testArgs(i32, u223, 1 << 222); - try testArgs(u32, u223, 0); - try testArgs(u32, u223, 1 << 0); - try testArgs(u32, u223, 1 << 222); - try testArgs(i64, u223, 0); - try testArgs(i64, u223, 1 << 0); - try testArgs(i64, u223, 1 << 222); - try testArgs(u64, u223, 0); - try testArgs(u64, u223, 1 << 0); - try testArgs(u64, u223, 1 << 222); - try testArgs(i128, u223, 0); - try testArgs(i128, u223, 1 << 0); - try testArgs(i128, u223, 1 << 222); - try testArgs(u128, u223, 0); - try testArgs(u128, u223, 1 << 0); - try testArgs(u128, u223, 1 << 222); - try testArgs(i256, u223, 0); - try testArgs(i256, u223, 1 << 0); - try testArgs(i256, u223, 1 << 222); - try testArgs(u256, u223, 0); - try testArgs(u256, u223, 1 << 0); - try testArgs(u256, u223, 1 << 222); - try testArgs(i512, u223, 0); - try testArgs(i512, u223, 1 << 0); - try testArgs(i512, u223, 1 << 222); - try testArgs(u512, u223, 0); - try testArgs(u512, u223, 1 << 0); - try testArgs(u512, u223, 1 << 222); - try testArgs(i1024, u223, 0); - try testArgs(i1024, u223, 1 << 0); - try testArgs(i1024, u223, 1 << 222); - try testArgs(u1024, u223, 0); - try testArgs(u1024, u223, 1 << 0); - try testArgs(u1024, u223, 1 << 222); - - try testArgs(i8, i224, -1 << 223); - try testArgs(i8, i224, -1); - try testArgs(i8, i224, 0); - try testArgs(u8, i224, -1 << 223); - try testArgs(u8, i224, -1); - try testArgs(u8, i224, 0); - try testArgs(i16, i224, -1 << 223); - try testArgs(i16, i224, -1); - try testArgs(i16, i224, 0); - try testArgs(u16, i224, -1 << 223); - try testArgs(u16, i224, -1); - try testArgs(u16, i224, 0); - try testArgs(i32, i224, -1 << 223); - try testArgs(i32, i224, -1); - try testArgs(i32, i224, 0); - try testArgs(u32, i224, -1 << 223); - try testArgs(u32, i224, -1); - try testArgs(u32, i224, 0); - try testArgs(i64, i224, -1 << 223); - try testArgs(i64, i224, -1); - try testArgs(i64, i224, 0); - try testArgs(u64, i224, -1 << 223); - try testArgs(u64, i224, -1); - try testArgs(u64, i224, 0); - try testArgs(i128, i224, -1 << 223); - try testArgs(i128, i224, -1); - try testArgs(i128, i224, 0); - try testArgs(u128, i224, -1 << 223); - try testArgs(u128, i224, -1); - try testArgs(u128, i224, 0); - try testArgs(i256, i224, -1 << 223); - try testArgs(i256, i224, -1); - try testArgs(i256, i224, 0); - try testArgs(u256, i224, -1 << 223); - try testArgs(u256, i224, -1); - try testArgs(u256, i224, 0); - try testArgs(i512, i224, -1 << 223); - try testArgs(i512, i224, -1); - try testArgs(i512, i224, 0); - try testArgs(u512, i224, -1 << 223); - try testArgs(u512, i224, -1); - try testArgs(u512, i224, 0); - try testArgs(i1024, i224, -1 << 223); - try testArgs(i1024, i224, -1); - try testArgs(i1024, i224, 0); - try testArgs(u1024, i224, -1 << 223); - try testArgs(u1024, i224, -1); - try testArgs(u1024, i224, 0); - try testArgs(i8, u224, 0); - try testArgs(i8, u224, 1 << 0); - try testArgs(i8, u224, 1 << 223); - try testArgs(u8, u224, 0); - try testArgs(u8, u224, 1 << 0); - try testArgs(u8, u224, 1 << 223); - try testArgs(i16, u224, 0); - try testArgs(i16, u224, 1 << 0); - try testArgs(i16, u224, 1 << 223); - try testArgs(u16, u224, 0); - try testArgs(u16, u224, 1 << 0); - try testArgs(u16, u224, 1 << 223); - try testArgs(i32, u224, 0); - try testArgs(i32, u224, 1 << 0); - try testArgs(i32, u224, 1 << 223); - try testArgs(u32, u224, 0); - try testArgs(u32, u224, 1 << 0); - try testArgs(u32, u224, 1 << 223); - try testArgs(i64, u224, 0); - try testArgs(i64, u224, 1 << 0); - try testArgs(i64, u224, 1 << 223); - try testArgs(u64, u224, 0); - try testArgs(u64, u224, 1 << 0); - try testArgs(u64, u224, 1 << 223); - try testArgs(i128, u224, 0); - try testArgs(i128, u224, 1 << 0); - try testArgs(i128, u224, 1 << 223); - try testArgs(u128, u224, 0); - try testArgs(u128, u224, 1 << 0); - try testArgs(u128, u224, 1 << 223); - try testArgs(i256, u224, 0); - try testArgs(i256, u224, 1 << 0); - try testArgs(i256, u224, 1 << 223); - try testArgs(u256, u224, 0); - try testArgs(u256, u224, 1 << 0); - try testArgs(u256, u224, 1 << 223); - try testArgs(i512, u224, 0); - try testArgs(i512, u224, 1 << 0); - try testArgs(i512, u224, 1 << 223); - try testArgs(u512, u224, 0); - try testArgs(u512, u224, 1 << 0); - try testArgs(u512, u224, 1 << 223); - try testArgs(i1024, u224, 0); - try testArgs(i1024, u224, 1 << 0); - try testArgs(i1024, u224, 1 << 223); - try testArgs(u1024, u224, 0); - try testArgs(u1024, u224, 1 << 0); - try testArgs(u1024, u224, 1 << 223); - - try testArgs(i8, i225, -1 << 224); - try testArgs(i8, i225, -1); - try testArgs(i8, i225, 0); - try testArgs(u8, i225, -1 << 224); - try testArgs(u8, i225, -1); - try testArgs(u8, i225, 0); - try testArgs(i16, i225, -1 << 224); - try testArgs(i16, i225, -1); - try testArgs(i16, i225, 0); - try testArgs(u16, i225, -1 << 224); - try testArgs(u16, i225, -1); - try testArgs(u16, i225, 0); - try testArgs(i32, i225, -1 << 224); - try testArgs(i32, i225, -1); - try testArgs(i32, i225, 0); - try testArgs(u32, i225, -1 << 224); - try testArgs(u32, i225, -1); - try testArgs(u32, i225, 0); - try testArgs(i64, i225, -1 << 224); - try testArgs(i64, i225, -1); - try testArgs(i64, i225, 0); - try testArgs(u64, i225, -1 << 224); - try testArgs(u64, i225, -1); - try testArgs(u64, i225, 0); - try testArgs(i128, i225, -1 << 224); - try testArgs(i128, i225, -1); - try testArgs(i128, i225, 0); - try testArgs(u128, i225, -1 << 224); - try testArgs(u128, i225, -1); - try testArgs(u128, i225, 0); - try testArgs(i256, i225, -1 << 224); - try testArgs(i256, i225, -1); - try testArgs(i256, i225, 0); - try testArgs(u256, i225, -1 << 224); - try testArgs(u256, i225, -1); - try testArgs(u256, i225, 0); - try testArgs(i512, i225, -1 << 224); - try testArgs(i512, i225, -1); - try testArgs(i512, i225, 0); - try testArgs(u512, i225, -1 << 224); - try testArgs(u512, i225, -1); - try testArgs(u512, i225, 0); - try testArgs(i1024, i225, -1 << 224); - try testArgs(i1024, i225, -1); - try testArgs(i1024, i225, 0); - try testArgs(u1024, i225, -1 << 224); - try testArgs(u1024, i225, -1); - try testArgs(u1024, i225, 0); - try testArgs(i8, u225, 0); - try testArgs(i8, u225, 1 << 0); - try testArgs(i8, u225, 1 << 224); - try testArgs(u8, u225, 0); - try testArgs(u8, u225, 1 << 0); - try testArgs(u8, u225, 1 << 224); - try testArgs(i16, u225, 0); - try testArgs(i16, u225, 1 << 0); - try testArgs(i16, u225, 1 << 224); - try testArgs(u16, u225, 0); - try testArgs(u16, u225, 1 << 0); - try testArgs(u16, u225, 1 << 224); - try testArgs(i32, u225, 0); - try testArgs(i32, u225, 1 << 0); - try testArgs(i32, u225, 1 << 224); - try testArgs(u32, u225, 0); - try testArgs(u32, u225, 1 << 0); - try testArgs(u32, u225, 1 << 224); - try testArgs(i64, u225, 0); - try testArgs(i64, u225, 1 << 0); - try testArgs(i64, u225, 1 << 224); - try testArgs(u64, u225, 0); - try testArgs(u64, u225, 1 << 0); - try testArgs(u64, u225, 1 << 224); - try testArgs(i128, u225, 0); - try testArgs(i128, u225, 1 << 0); - try testArgs(i128, u225, 1 << 224); - try testArgs(u128, u225, 0); - try testArgs(u128, u225, 1 << 0); - try testArgs(u128, u225, 1 << 224); - try testArgs(i256, u225, 0); - try testArgs(i256, u225, 1 << 0); - try testArgs(i256, u225, 1 << 224); - try testArgs(u256, u225, 0); - try testArgs(u256, u225, 1 << 0); - try testArgs(u256, u225, 1 << 224); - try testArgs(i512, u225, 0); - try testArgs(i512, u225, 1 << 0); - try testArgs(i512, u225, 1 << 224); - try testArgs(u512, u225, 0); - try testArgs(u512, u225, 1 << 0); - try testArgs(u512, u225, 1 << 224); - try testArgs(i1024, u225, 0); - try testArgs(i1024, u225, 1 << 0); - try testArgs(i1024, u225, 1 << 224); - try testArgs(u1024, u225, 0); - try testArgs(u1024, u225, 1 << 0); - try testArgs(u1024, u225, 1 << 224); - try testArgs(i8, i255, -1 << 254); - try testArgs(i8, i255, -1); - try testArgs(i8, i255, 0); try testArgs(u8, i255, -1 << 254); try testArgs(u8, i255, -1); try testArgs(u8, i255, 0); - try testArgs(i16, i255, -1 << 254); - try testArgs(i16, i255, -1); - try testArgs(i16, i255, 0); try testArgs(u16, i255, -1 << 254); try testArgs(u16, i255, -1); try testArgs(u16, i255, 0); - try testArgs(i32, i255, -1 << 254); - try testArgs(i32, i255, -1); - try testArgs(i32, i255, 0); try testArgs(u32, i255, -1 << 254); try testArgs(u32, i255, -1); try testArgs(u32, i255, 0); - try testArgs(i64, i255, -1 << 254); - try testArgs(i64, i255, -1); - try testArgs(i64, i255, 0); try testArgs(u64, i255, -1 << 254); try testArgs(u64, i255, -1); try testArgs(u64, i255, 0); - try testArgs(i128, i255, -1 << 254); - try testArgs(i128, i255, -1); - try testArgs(i128, i255, 0); try testArgs(u128, i255, -1 << 254); try testArgs(u128, i255, -1); try testArgs(u128, i255, 0); - try testArgs(i256, i255, -1 << 254); - try testArgs(i256, i255, -1); - try testArgs(i256, i255, 0); try testArgs(u256, i255, -1 << 254); try testArgs(u256, i255, -1); try testArgs(u256, i255, 0); - try testArgs(i512, i255, -1 << 254); - try testArgs(i512, i255, -1); - try testArgs(i512, i255, 0); try testArgs(u512, i255, -1 << 254); try testArgs(u512, i255, -1); try testArgs(u512, i255, 0); - try testArgs(i1024, i255, -1 << 254); - try testArgs(i1024, i255, -1); - try testArgs(i1024, i255, 0); try testArgs(u1024, i255, -1 << 254); try testArgs(u1024, i255, -1); try testArgs(u1024, i255, 0); try testArgs(i8, u255, 0); try testArgs(i8, u255, 1 << 0); try testArgs(i8, u255, 1 << 254); - try testArgs(u8, u255, 0); - try testArgs(u8, u255, 1 << 0); - try testArgs(u8, u255, 1 << 254); try testArgs(i16, u255, 0); try testArgs(i16, u255, 1 << 0); try testArgs(i16, u255, 1 << 254); - try testArgs(u16, u255, 0); - try testArgs(u16, u255, 1 << 0); - try testArgs(u16, u255, 1 << 254); try testArgs(i32, u255, 0); try testArgs(i32, u255, 1 << 0); try testArgs(i32, u255, 1 << 254); - try testArgs(u32, u255, 0); - try testArgs(u32, u255, 1 << 0); - try testArgs(u32, u255, 1 << 254); try testArgs(i64, u255, 0); try testArgs(i64, u255, 1 << 0); try testArgs(i64, u255, 1 << 254); - try testArgs(u64, u255, 0); - try testArgs(u64, u255, 1 << 0); - try testArgs(u64, u255, 1 << 254); try testArgs(i128, u255, 0); try testArgs(i128, u255, 1 << 0); try testArgs(i128, u255, 1 << 254); - try testArgs(u128, u255, 0); - try testArgs(u128, u255, 1 << 0); - try testArgs(u128, u255, 1 << 254); try testArgs(i256, u255, 0); try testArgs(i256, u255, 1 << 0); try testArgs(i256, u255, 1 << 254); - try testArgs(u256, u255, 0); - try testArgs(u256, u255, 1 << 0); - try testArgs(u256, u255, 1 << 254); try testArgs(i512, u255, 0); try testArgs(i512, u255, 1 << 0); try testArgs(i512, u255, 1 << 254); - try testArgs(u512, u255, 0); - try testArgs(u512, u255, 1 << 0); - try testArgs(u512, u255, 1 << 254); try testArgs(i1024, u255, 0); try testArgs(i1024, u255, 1 << 0); try testArgs(i1024, u255, 1 << 254); - try testArgs(u1024, u255, 0); - try testArgs(u1024, u255, 1 << 0); - try testArgs(u1024, u255, 1 << 254); - try testArgs(i8, i256, -1 << 255); - try testArgs(i8, i256, -1); - try testArgs(i8, i256, 0); try testArgs(u8, i256, -1 << 255); try testArgs(u8, i256, -1); try testArgs(u8, i256, 0); - try testArgs(i16, i256, -1 << 255); - try testArgs(i16, i256, -1); - try testArgs(i16, i256, 0); try testArgs(u16, i256, -1 << 255); try testArgs(u16, i256, -1); try testArgs(u16, i256, 0); - try testArgs(i32, i256, -1 << 255); - try testArgs(i32, i256, -1); - try testArgs(i32, i256, 0); try testArgs(u32, i256, -1 << 255); try testArgs(u32, i256, -1); try testArgs(u32, i256, 0); - try testArgs(i64, i256, -1 << 255); - try testArgs(i64, i256, -1); - try testArgs(i64, i256, 0); try testArgs(u64, i256, -1 << 255); try testArgs(u64, i256, -1); try testArgs(u64, i256, 0); - try testArgs(i128, i256, -1 << 255); - try testArgs(i128, i256, -1); - try testArgs(i128, i256, 0); try testArgs(u128, i256, -1 << 255); try testArgs(u128, i256, -1); try testArgs(u128, i256, 0); - try testArgs(i256, i256, -1 << 255); - try testArgs(i256, i256, -1); - try testArgs(i256, i256, 0); try testArgs(u256, i256, -1 << 255); try testArgs(u256, i256, -1); try testArgs(u256, i256, 0); - try testArgs(i512, i256, -1 << 255); - try testArgs(i512, i256, -1); - try testArgs(i512, i256, 0); try testArgs(u512, i256, -1 << 255); try testArgs(u512, i256, -1); try testArgs(u512, i256, 0); - try testArgs(i1024, i256, -1 << 255); - try testArgs(i1024, i256, -1); - try testArgs(i1024, i256, 0); try testArgs(u1024, i256, -1 << 255); try testArgs(u1024, i256, -1); try testArgs(u1024, i256, 0); try testArgs(i8, u256, 0); try testArgs(i8, u256, 1 << 0); try testArgs(i8, u256, 1 << 255); - try testArgs(u8, u256, 0); - try testArgs(u8, u256, 1 << 0); - try testArgs(u8, u256, 1 << 255); try testArgs(i16, u256, 0); try testArgs(i16, u256, 1 << 0); try testArgs(i16, u256, 1 << 255); - try testArgs(u16, u256, 0); - try testArgs(u16, u256, 1 << 0); - try testArgs(u16, u256, 1 << 255); try testArgs(i32, u256, 0); try testArgs(i32, u256, 1 << 0); try testArgs(i32, u256, 1 << 255); - try testArgs(u32, u256, 0); - try testArgs(u32, u256, 1 << 0); - try testArgs(u32, u256, 1 << 255); try testArgs(i64, u256, 0); try testArgs(i64, u256, 1 << 0); try testArgs(i64, u256, 1 << 255); - try testArgs(u64, u256, 0); - try testArgs(u64, u256, 1 << 0); - try testArgs(u64, u256, 1 << 255); try testArgs(i128, u256, 0); try testArgs(i128, u256, 1 << 0); try testArgs(i128, u256, 1 << 255); - try testArgs(u128, u256, 0); - try testArgs(u128, u256, 1 << 0); - try testArgs(u128, u256, 1 << 255); try testArgs(i256, u256, 0); try testArgs(i256, u256, 1 << 0); try testArgs(i256, u256, 1 << 255); - try testArgs(u256, u256, 0); - try testArgs(u256, u256, 1 << 0); - try testArgs(u256, u256, 1 << 255); try testArgs(i512, u256, 0); try testArgs(i512, u256, 1 << 0); try testArgs(i512, u256, 1 << 255); - try testArgs(u512, u256, 0); - try testArgs(u512, u256, 1 << 0); - try testArgs(u512, u256, 1 << 255); try testArgs(i1024, u256, 0); try testArgs(i1024, u256, 1 << 0); try testArgs(i1024, u256, 1 << 255); - try testArgs(u1024, u256, 0); - try testArgs(u1024, u256, 1 << 0); - try testArgs(u1024, u256, 1 << 255); - try testArgs(i8, i257, -1 << 256); - try testArgs(i8, i257, -1); - try testArgs(i8, i257, 0); try testArgs(u8, i257, -1 << 256); try testArgs(u8, i257, -1); try testArgs(u8, i257, 0); - try testArgs(i16, i257, -1 << 256); - try testArgs(i16, i257, -1); - try testArgs(i16, i257, 0); try testArgs(u16, i257, -1 << 256); try testArgs(u16, i257, -1); try testArgs(u16, i257, 0); - try testArgs(i32, i257, -1 << 256); - try testArgs(i32, i257, -1); - try testArgs(i32, i257, 0); try testArgs(u32, i257, -1 << 256); try testArgs(u32, i257, -1); try testArgs(u32, i257, 0); - try testArgs(i64, i257, -1 << 256); - try testArgs(i64, i257, -1); - try testArgs(i64, i257, 0); try testArgs(u64, i257, -1 << 256); try testArgs(u64, i257, -1); try testArgs(u64, i257, 0); - try testArgs(i128, i257, -1 << 256); - try testArgs(i128, i257, -1); - try testArgs(i128, i257, 0); try testArgs(u128, i257, -1 << 256); try testArgs(u128, i257, -1); try testArgs(u128, i257, 0); - try testArgs(i256, i257, -1 << 256); - try testArgs(i256, i257, -1); - try testArgs(i256, i257, 0); try testArgs(u256, i257, -1 << 256); try testArgs(u256, i257, -1); try testArgs(u256, i257, 0); - try testArgs(i512, i257, -1 << 256); - try testArgs(i512, i257, -1); - try testArgs(i512, i257, 0); try testArgs(u512, i257, -1 << 256); try testArgs(u512, i257, -1); try testArgs(u512, i257, 0); - try testArgs(i1024, i257, -1 << 256); - try testArgs(i1024, i257, -1); - try testArgs(i1024, i257, 0); try testArgs(u1024, i257, -1 << 256); try testArgs(u1024, i257, -1); try testArgs(u1024, i257, 0); try testArgs(i8, u257, 0); try testArgs(i8, u257, 1 << 0); try testArgs(i8, u257, 1 << 256); - try testArgs(u8, u257, 0); - try testArgs(u8, u257, 1 << 0); - try testArgs(u8, u257, 1 << 256); try testArgs(i16, u257, 0); try testArgs(i16, u257, 1 << 0); try testArgs(i16, u257, 1 << 256); - try testArgs(u16, u257, 0); - try testArgs(u16, u257, 1 << 0); - try testArgs(u16, u257, 1 << 256); try testArgs(i32, u257, 0); try testArgs(i32, u257, 1 << 0); try testArgs(i32, u257, 1 << 256); - try testArgs(u32, u257, 0); - try testArgs(u32, u257, 1 << 0); - try testArgs(u32, u257, 1 << 256); try testArgs(i64, u257, 0); try testArgs(i64, u257, 1 << 0); try testArgs(i64, u257, 1 << 256); - try testArgs(u64, u257, 0); - try testArgs(u64, u257, 1 << 0); - try testArgs(u64, u257, 1 << 256); try testArgs(i128, u257, 0); try testArgs(i128, u257, 1 << 0); try testArgs(i128, u257, 1 << 256); - try testArgs(u128, u257, 0); - try testArgs(u128, u257, 1 << 0); - try testArgs(u128, u257, 1 << 256); try testArgs(i256, u257, 0); try testArgs(i256, u257, 1 << 0); try testArgs(i256, u257, 1 << 256); - try testArgs(u256, u257, 0); - try testArgs(u256, u257, 1 << 0); - try testArgs(u256, u257, 1 << 256); try testArgs(i512, u257, 0); try testArgs(i512, u257, 1 << 0); try testArgs(i512, u257, 1 << 256); - try testArgs(u512, u257, 0); - try testArgs(u512, u257, 1 << 0); - try testArgs(u512, u257, 1 << 256); try testArgs(i1024, u257, 0); try testArgs(i1024, u257, 1 << 0); try testArgs(i1024, u257, 1 << 256); - try testArgs(u1024, u257, 0); - try testArgs(u1024, u257, 1 << 0); - try testArgs(u1024, u257, 1 << 256); - try testArgs(i8, i511, -1 << 510); - try testArgs(i8, i511, -1); - try testArgs(i8, i511, 0); try testArgs(u8, i511, -1 << 510); try testArgs(u8, i511, -1); try testArgs(u8, i511, 0); - try testArgs(i16, i511, -1 << 510); - try testArgs(i16, i511, -1); - try testArgs(i16, i511, 0); try testArgs(u16, i511, -1 << 510); try testArgs(u16, i511, -1); try testArgs(u16, i511, 0); - try testArgs(i32, i511, -1 << 510); - try testArgs(i32, i511, -1); - try testArgs(i32, i511, 0); try testArgs(u32, i511, -1 << 510); try testArgs(u32, i511, -1); try testArgs(u32, i511, 0); - try testArgs(i64, i511, -1 << 510); - try testArgs(i64, i511, -1); - try testArgs(i64, i511, 0); try testArgs(u64, i511, -1 << 510); try testArgs(u64, i511, -1); try testArgs(u64, i511, 0); - try testArgs(i128, i511, -1 << 510); - try testArgs(i128, i511, -1); - try testArgs(i128, i511, 0); try testArgs(u128, i511, -1 << 510); try testArgs(u128, i511, -1); try testArgs(u128, i511, 0); - try testArgs(i256, i511, -1 << 510); - try testArgs(i256, i511, -1); - try testArgs(i256, i511, 0); try testArgs(u256, i511, -1 << 510); try testArgs(u256, i511, -1); try testArgs(u256, i511, 0); - try testArgs(i512, i511, -1 << 510); - try testArgs(i512, i511, -1); - try testArgs(i512, i511, 0); try testArgs(u512, i511, -1 << 510); try testArgs(u512, i511, -1); try testArgs(u512, i511, 0); - try testArgs(i1024, i511, -1 << 510); - try testArgs(i1024, i511, -1); - try testArgs(i1024, i511, 0); try testArgs(u1024, i511, -1 << 510); try testArgs(u1024, i511, -1); try testArgs(u1024, i511, 0); try testArgs(i8, u511, 0); try testArgs(i8, u511, 1 << 0); try testArgs(i8, u511, 1 << 510); - try testArgs(u8, u511, 0); - try testArgs(u8, u511, 1 << 0); - try testArgs(u8, u511, 1 << 510); try testArgs(i16, u511, 0); try testArgs(i16, u511, 1 << 0); try testArgs(i16, u511, 1 << 510); - try testArgs(u16, u511, 0); - try testArgs(u16, u511, 1 << 0); - try testArgs(u16, u511, 1 << 510); try testArgs(i32, u511, 0); try testArgs(i32, u511, 1 << 0); try testArgs(i32, u511, 1 << 510); - try testArgs(u32, u511, 0); - try testArgs(u32, u511, 1 << 0); - try testArgs(u32, u511, 1 << 510); try testArgs(i64, u511, 0); try testArgs(i64, u511, 1 << 0); try testArgs(i64, u511, 1 << 510); - try testArgs(u64, u511, 0); - try testArgs(u64, u511, 1 << 0); - try testArgs(u64, u511, 1 << 510); try testArgs(i128, u511, 0); try testArgs(i128, u511, 1 << 0); try testArgs(i128, u511, 1 << 510); - try testArgs(u128, u511, 0); - try testArgs(u128, u511, 1 << 0); - try testArgs(u128, u511, 1 << 510); try testArgs(i256, u511, 0); try testArgs(i256, u511, 1 << 0); try testArgs(i256, u511, 1 << 510); - try testArgs(u256, u511, 0); - try testArgs(u256, u511, 1 << 0); - try testArgs(u256, u511, 1 << 510); try testArgs(i512, u511, 0); try testArgs(i512, u511, 1 << 0); try testArgs(i512, u511, 1 << 510); - try testArgs(u512, u511, 0); - try testArgs(u512, u511, 1 << 0); - try testArgs(u512, u511, 1 << 510); try testArgs(i1024, u511, 0); try testArgs(i1024, u511, 1 << 0); try testArgs(i1024, u511, 1 << 510); - try testArgs(u1024, u511, 0); - try testArgs(u1024, u511, 1 << 0); - try testArgs(u1024, u511, 1 << 510); - try testArgs(i8, i512, -1 << 511); - try testArgs(i8, i512, -1); - try testArgs(i8, i512, 0); try testArgs(u8, i512, -1 << 511); try testArgs(u8, i512, -1); try testArgs(u8, i512, 0); - try testArgs(i16, i512, -1 << 511); - try testArgs(i16, i512, -1); - try testArgs(i16, i512, 0); try testArgs(u16, i512, -1 << 511); try testArgs(u16, i512, -1); try testArgs(u16, i512, 0); - try testArgs(i32, i512, -1 << 511); - try testArgs(i32, i512, -1); - try testArgs(i32, i512, 0); try testArgs(u32, i512, -1 << 511); try testArgs(u32, i512, -1); try testArgs(u32, i512, 0); - try testArgs(i64, i512, -1 << 511); - try testArgs(i64, i512, -1); - try testArgs(i64, i512, 0); try testArgs(u64, i512, -1 << 511); try testArgs(u64, i512, -1); try testArgs(u64, i512, 0); - try testArgs(i128, i512, -1 << 511); - try testArgs(i128, i512, -1); - try testArgs(i128, i512, 0); try testArgs(u128, i512, -1 << 511); try testArgs(u128, i512, -1); try testArgs(u128, i512, 0); - try testArgs(i256, i512, -1 << 511); - try testArgs(i256, i512, -1); - try testArgs(i256, i512, 0); try testArgs(u256, i512, -1 << 511); try testArgs(u256, i512, -1); try testArgs(u256, i512, 0); - try testArgs(i512, i512, -1 << 511); - try testArgs(i512, i512, -1); - try testArgs(i512, i512, 0); try testArgs(u512, i512, -1 << 511); try testArgs(u512, i512, -1); try testArgs(u512, i512, 0); - try testArgs(i1024, i512, -1 << 511); - try testArgs(i1024, i512, -1); - try testArgs(i1024, i512, 0); try testArgs(u1024, i512, -1 << 511); try testArgs(u1024, i512, -1); try testArgs(u1024, i512, 0); try testArgs(i8, u512, 0); try testArgs(i8, u512, 1 << 0); try testArgs(i8, u512, 1 << 511); - try testArgs(u8, u512, 0); - try testArgs(u8, u512, 1 << 0); - try testArgs(u8, u512, 1 << 511); try testArgs(i16, u512, 0); try testArgs(i16, u512, 1 << 0); try testArgs(i16, u512, 1 << 511); - try testArgs(u16, u512, 0); - try testArgs(u16, u512, 1 << 0); - try testArgs(u16, u512, 1 << 511); try testArgs(i32, u512, 0); try testArgs(i32, u512, 1 << 0); try testArgs(i32, u512, 1 << 511); - try testArgs(u32, u512, 0); - try testArgs(u32, u512, 1 << 0); - try testArgs(u32, u512, 1 << 511); try testArgs(i64, u512, 0); try testArgs(i64, u512, 1 << 0); try testArgs(i64, u512, 1 << 511); - try testArgs(u64, u512, 0); - try testArgs(u64, u512, 1 << 0); - try testArgs(u64, u512, 1 << 511); try testArgs(i128, u512, 0); try testArgs(i128, u512, 1 << 0); try testArgs(i128, u512, 1 << 511); - try testArgs(u128, u512, 0); - try testArgs(u128, u512, 1 << 0); - try testArgs(u128, u512, 1 << 511); try testArgs(i256, u512, 0); try testArgs(i256, u512, 1 << 0); try testArgs(i256, u512, 1 << 511); - try testArgs(u256, u512, 0); - try testArgs(u256, u512, 1 << 0); - try testArgs(u256, u512, 1 << 511); try testArgs(i512, u512, 0); try testArgs(i512, u512, 1 << 0); try testArgs(i512, u512, 1 << 511); - try testArgs(u512, u512, 0); - try testArgs(u512, u512, 1 << 0); - try testArgs(u512, u512, 1 << 511); try testArgs(i1024, u512, 0); try testArgs(i1024, u512, 1 << 0); try testArgs(i1024, u512, 1 << 511); - try testArgs(u1024, u512, 0); - try testArgs(u1024, u512, 1 << 0); - try testArgs(u1024, u512, 1 << 511); - try testArgs(i8, i513, -1 << 512); - try testArgs(i8, i513, -1); - try testArgs(i8, i513, 0); try testArgs(u8, i513, -1 << 512); try testArgs(u8, i513, -1); try testArgs(u8, i513, 0); - try testArgs(i16, i513, -1 << 512); - try testArgs(i16, i513, -1); - try testArgs(i16, i513, 0); try testArgs(u16, i513, -1 << 512); try testArgs(u16, i513, -1); try testArgs(u16, i513, 0); - try testArgs(i32, i513, -1 << 512); - try testArgs(i32, i513, -1); - try testArgs(i32, i513, 0); try testArgs(u32, i513, -1 << 512); try testArgs(u32, i513, -1); try testArgs(u32, i513, 0); - try testArgs(i64, i513, -1 << 512); - try testArgs(i64, i513, -1); - try testArgs(i64, i513, 0); try testArgs(u64, i513, -1 << 512); try testArgs(u64, i513, -1); try testArgs(u64, i513, 0); - try testArgs(i128, i513, -1 << 512); - try testArgs(i128, i513, -1); - try testArgs(i128, i513, 0); try testArgs(u128, i513, -1 << 512); try testArgs(u128, i513, -1); try testArgs(u128, i513, 0); - try testArgs(i256, i513, -1 << 512); - try testArgs(i256, i513, -1); - try testArgs(i256, i513, 0); try testArgs(u256, i513, -1 << 512); try testArgs(u256, i513, -1); try testArgs(u256, i513, 0); - try testArgs(i512, i513, -1 << 512); - try testArgs(i512, i513, -1); - try testArgs(i512, i513, 0); try testArgs(u512, i513, -1 << 512); try testArgs(u512, i513, -1); try testArgs(u512, i513, 0); - try testArgs(i1024, i513, -1 << 512); - try testArgs(i1024, i513, -1); - try testArgs(i1024, i513, 0); try testArgs(u1024, i513, -1 << 512); try testArgs(u1024, i513, -1); try testArgs(u1024, i513, 0); try testArgs(i8, u513, 0); try testArgs(i8, u513, 1 << 0); try testArgs(i8, u513, 1 << 512); - try testArgs(u8, u513, 0); - try testArgs(u8, u513, 1 << 0); - try testArgs(u8, u513, 1 << 512); try testArgs(i16, u513, 0); try testArgs(i16, u513, 1 << 0); try testArgs(i16, u513, 1 << 512); - try testArgs(u16, u513, 0); - try testArgs(u16, u513, 1 << 0); - try testArgs(u16, u513, 1 << 512); try testArgs(i32, u513, 0); try testArgs(i32, u513, 1 << 0); try testArgs(i32, u513, 1 << 512); - try testArgs(u32, u513, 0); - try testArgs(u32, u513, 1 << 0); - try testArgs(u32, u513, 1 << 512); try testArgs(i64, u513, 0); try testArgs(i64, u513, 1 << 0); try testArgs(i64, u513, 1 << 512); - try testArgs(u64, u513, 0); - try testArgs(u64, u513, 1 << 0); - try testArgs(u64, u513, 1 << 512); try testArgs(i128, u513, 0); try testArgs(i128, u513, 1 << 0); try testArgs(i128, u513, 1 << 512); - try testArgs(u128, u513, 0); - try testArgs(u128, u513, 1 << 0); - try testArgs(u128, u513, 1 << 512); try testArgs(i256, u513, 0); try testArgs(i256, u513, 1 << 0); try testArgs(i256, u513, 1 << 512); - try testArgs(u256, u513, 0); - try testArgs(u256, u513, 1 << 0); - try testArgs(u256, u513, 1 << 512); try testArgs(i512, u513, 0); try testArgs(i512, u513, 1 << 0); try testArgs(i512, u513, 1 << 512); - try testArgs(u512, u513, 0); - try testArgs(u512, u513, 1 << 0); - try testArgs(u512, u513, 1 << 512); try testArgs(i1024, u513, 0); try testArgs(i1024, u513, 1 << 0); try testArgs(i1024, u513, 1 << 512); - try testArgs(u1024, u513, 0); - try testArgs(u1024, u513, 1 << 0); - try testArgs(u1024, u513, 1 << 512); - try testArgs(i8, i1023, -1 << 1022); - try testArgs(i8, i1023, -1); - try testArgs(i8, i1023, 0); try testArgs(u8, i1023, -1 << 1022); try testArgs(u8, i1023, -1); try testArgs(u8, i1023, 0); - try testArgs(i16, i1023, -1 << 1022); - try testArgs(i16, i1023, -1); - try testArgs(i16, i1023, 0); try testArgs(u16, i1023, -1 << 1022); try testArgs(u16, i1023, -1); try testArgs(u16, i1023, 0); - try testArgs(i32, i1023, -1 << 1022); - try testArgs(i32, i1023, -1); - try testArgs(i32, i1023, 0); try testArgs(u32, i1023, -1 << 1022); try testArgs(u32, i1023, -1); try testArgs(u32, i1023, 0); - try testArgs(i64, i1023, -1 << 1022); - try testArgs(i64, i1023, -1); - try testArgs(i64, i1023, 0); try testArgs(u64, i1023, -1 << 1022); try testArgs(u64, i1023, -1); try testArgs(u64, i1023, 0); - try testArgs(i128, i1023, -1 << 1022); - try testArgs(i128, i1023, -1); - try testArgs(i128, i1023, 0); try testArgs(u128, i1023, -1 << 1022); try testArgs(u128, i1023, -1); try testArgs(u128, i1023, 0); - try testArgs(i256, i1023, -1 << 1022); - try testArgs(i256, i1023, -1); - try testArgs(i256, i1023, 0); try testArgs(u256, i1023, -1 << 1022); try testArgs(u256, i1023, -1); try testArgs(u256, i1023, 0); - try testArgs(i512, i1023, -1 << 1022); - try testArgs(i512, i1023, -1); - try testArgs(i512, i1023, 0); try testArgs(u512, i1023, -1 << 1022); try testArgs(u512, i1023, -1); try testArgs(u512, i1023, 0); - try testArgs(i1024, i1023, -1 << 1022); - try testArgs(i1024, i1023, -1); - try testArgs(i1024, i1023, 0); try testArgs(u1024, i1023, -1 << 1022); try testArgs(u1024, i1023, -1); try testArgs(u1024, i1023, 0); try testArgs(i8, u1023, 0); try testArgs(i8, u1023, 1 << 0); try testArgs(i8, u1023, 1 << 1022); - try testArgs(u8, u1023, 0); - try testArgs(u8, u1023, 1 << 0); - try testArgs(u8, u1023, 1 << 1022); try testArgs(i16, u1023, 0); try testArgs(i16, u1023, 1 << 0); try testArgs(i16, u1023, 1 << 1022); - try testArgs(u16, u1023, 0); - try testArgs(u16, u1023, 1 << 0); - try testArgs(u16, u1023, 1 << 1022); try testArgs(i32, u1023, 0); try testArgs(i32, u1023, 1 << 0); try testArgs(i32, u1023, 1 << 1022); - try testArgs(u32, u1023, 0); - try testArgs(u32, u1023, 1 << 0); - try testArgs(u32, u1023, 1 << 1022); try testArgs(i64, u1023, 0); try testArgs(i64, u1023, 1 << 0); try testArgs(i64, u1023, 1 << 1022); - try testArgs(u64, u1023, 0); - try testArgs(u64, u1023, 1 << 0); - try testArgs(u64, u1023, 1 << 1022); try testArgs(i128, u1023, 0); try testArgs(i128, u1023, 1 << 0); try testArgs(i128, u1023, 1 << 1022); - try testArgs(u128, u1023, 0); - try testArgs(u128, u1023, 1 << 0); - try testArgs(u128, u1023, 1 << 1022); try testArgs(i256, u1023, 0); try testArgs(i256, u1023, 1 << 0); try testArgs(i256, u1023, 1 << 1022); - try testArgs(u256, u1023, 0); - try testArgs(u256, u1023, 1 << 0); - try testArgs(u256, u1023, 1 << 1022); try testArgs(i512, u1023, 0); try testArgs(i512, u1023, 1 << 0); try testArgs(i512, u1023, 1 << 1022); - try testArgs(u512, u1023, 0); - try testArgs(u512, u1023, 1 << 0); - try testArgs(u512, u1023, 1 << 1022); try testArgs(i1024, u1023, 0); try testArgs(i1024, u1023, 1 << 0); try testArgs(i1024, u1023, 1 << 1022); - try testArgs(u1024, u1023, 0); - try testArgs(u1024, u1023, 1 << 0); - try testArgs(u1024, u1023, 1 << 1022); - try testArgs(i8, i1024, -1 << 1023); - try testArgs(i8, i1024, -1); - try testArgs(i8, i1024, 0); try testArgs(u8, i1024, -1 << 1023); try testArgs(u8, i1024, -1); try testArgs(u8, i1024, 0); - try testArgs(i16, i1024, -1 << 1023); - try testArgs(i16, i1024, -1); - try testArgs(i16, i1024, 0); try testArgs(u16, i1024, -1 << 1023); try testArgs(u16, i1024, -1); try testArgs(u16, i1024, 0); - try testArgs(i32, i1024, -1 << 1023); - try testArgs(i32, i1024, -1); - try testArgs(i32, i1024, 0); try testArgs(u32, i1024, -1 << 1023); try testArgs(u32, i1024, -1); try testArgs(u32, i1024, 0); - try testArgs(i64, i1024, -1 << 1023); - try testArgs(i64, i1024, -1); - try testArgs(i64, i1024, 0); try testArgs(u64, i1024, -1 << 1023); try testArgs(u64, i1024, -1); try testArgs(u64, i1024, 0); - try testArgs(i128, i1024, -1 << 1023); - try testArgs(i128, i1024, -1); - try testArgs(i128, i1024, 0); try testArgs(u128, i1024, -1 << 1023); try testArgs(u128, i1024, -1); try testArgs(u128, i1024, 0); - try testArgs(i256, i1024, -1 << 1023); - try testArgs(i256, i1024, -1); - try testArgs(i256, i1024, 0); try testArgs(u256, i1024, -1 << 1023); try testArgs(u256, i1024, -1); try testArgs(u256, i1024, 0); - try testArgs(i512, i1024, -1 << 1023); - try testArgs(i512, i1024, -1); - try testArgs(i512, i1024, 0); try testArgs(u512, i1024, -1 << 1023); try testArgs(u512, i1024, -1); try testArgs(u512, i1024, 0); - try testArgs(i1024, i1024, -1 << 1023); - try testArgs(i1024, i1024, -1); - try testArgs(i1024, i1024, 0); try testArgs(u1024, i1024, -1 << 1023); try testArgs(u1024, i1024, -1); try testArgs(u1024, i1024, 0); try testArgs(i8, u1024, 0); try testArgs(i8, u1024, 1 << 0); try testArgs(i8, u1024, 1 << 1023); - try testArgs(u8, u1024, 0); - try testArgs(u8, u1024, 1 << 0); - try testArgs(u8, u1024, 1 << 1023); try testArgs(i16, u1024, 0); try testArgs(i16, u1024, 1 << 0); try testArgs(i16, u1024, 1 << 1023); - try testArgs(u16, u1024, 0); - try testArgs(u16, u1024, 1 << 0); - try testArgs(u16, u1024, 1 << 1023); try testArgs(i32, u1024, 0); try testArgs(i32, u1024, 1 << 0); try testArgs(i32, u1024, 1 << 1023); - try testArgs(u32, u1024, 0); - try testArgs(u32, u1024, 1 << 0); - try testArgs(u32, u1024, 1 << 1023); try testArgs(i64, u1024, 0); try testArgs(i64, u1024, 1 << 0); try testArgs(i64, u1024, 1 << 1023); - try testArgs(u64, u1024, 0); - try testArgs(u64, u1024, 1 << 0); - try testArgs(u64, u1024, 1 << 1023); try testArgs(i128, u1024, 0); try testArgs(i128, u1024, 1 << 0); try testArgs(i128, u1024, 1 << 1023); - try testArgs(u128, u1024, 0); - try testArgs(u128, u1024, 1 << 0); - try testArgs(u128, u1024, 1 << 1023); try testArgs(i256, u1024, 0); try testArgs(i256, u1024, 1 << 0); try testArgs(i256, u1024, 1 << 1023); - try testArgs(u256, u1024, 0); - try testArgs(u256, u1024, 1 << 0); - try testArgs(u256, u1024, 1 << 1023); try testArgs(i512, u1024, 0); try testArgs(i512, u1024, 1 << 0); try testArgs(i512, u1024, 1 << 1023); - try testArgs(u512, u1024, 0); - try testArgs(u512, u1024, 1 << 0); - try testArgs(u512, u1024, 1 << 1023); try testArgs(i1024, u1024, 0); try testArgs(i1024, u1024, 1 << 0); try testArgs(i1024, u1024, 1 << 1023); - try testArgs(u1024, u1024, 0); - try testArgs(u1024, u1024, 1 << 0); - try testArgs(u1024, u1024, 1 << 1023); - try testArgs(i8, i1025, -1 << 1024); - try testArgs(i8, i1025, -1); - try testArgs(i8, i1025, 0); try testArgs(u8, i1025, -1 << 1024); try testArgs(u8, i1025, -1); try testArgs(u8, i1025, 0); - try testArgs(i16, i1025, -1 << 1024); - try testArgs(i16, i1025, -1); - try testArgs(i16, i1025, 0); try testArgs(u16, i1025, -1 << 1024); try testArgs(u16, i1025, -1); try testArgs(u16, i1025, 0); - try testArgs(i32, i1025, -1 << 1024); - try testArgs(i32, i1025, -1); - try testArgs(i32, i1025, 0); try testArgs(u32, i1025, -1 << 1024); try testArgs(u32, i1025, -1); try testArgs(u32, i1025, 0); - try testArgs(i64, i1025, -1 << 1024); - try testArgs(i64, i1025, -1); - try testArgs(i64, i1025, 0); try testArgs(u64, i1025, -1 << 1024); try testArgs(u64, i1025, -1); try testArgs(u64, i1025, 0); - try testArgs(i128, i1025, -1 << 1024); - try testArgs(i128, i1025, -1); - try testArgs(i128, i1025, 0); try testArgs(u128, i1025, -1 << 1024); try testArgs(u128, i1025, -1); try testArgs(u128, i1025, 0); - try testArgs(i256, i1025, -1 << 1024); - try testArgs(i256, i1025, -1); - try testArgs(i256, i1025, 0); try testArgs(u256, i1025, -1 << 1024); try testArgs(u256, i1025, -1); try testArgs(u256, i1025, 0); - try testArgs(i512, i1025, -1 << 1024); - try testArgs(i512, i1025, -1); - try testArgs(i512, i1025, 0); try testArgs(u512, i1025, -1 << 1024); try testArgs(u512, i1025, -1); try testArgs(u512, i1025, 0); - try testArgs(i1024, i1025, -1 << 1024); - try testArgs(i1024, i1025, -1); - try testArgs(i1024, i1025, 0); try testArgs(u1024, i1025, -1 << 1024); try testArgs(u1024, i1025, -1); try testArgs(u1024, i1025, 0); try testArgs(i8, u1025, 0); try testArgs(i8, u1025, 1 << 0); try testArgs(i8, u1025, 1 << 1024); - try testArgs(u8, u1025, 0); - try testArgs(u8, u1025, 1 << 0); - try testArgs(u8, u1025, 1 << 1024); try testArgs(i16, u1025, 0); try testArgs(i16, u1025, 1 << 0); try testArgs(i16, u1025, 1 << 1024); - try testArgs(u16, u1025, 0); - try testArgs(u16, u1025, 1 << 0); - try testArgs(u16, u1025, 1 << 1024); try testArgs(i32, u1025, 0); try testArgs(i32, u1025, 1 << 0); try testArgs(i32, u1025, 1 << 1024); - try testArgs(u32, u1025, 0); - try testArgs(u32, u1025, 1 << 0); - try testArgs(u32, u1025, 1 << 1024); try testArgs(i64, u1025, 0); try testArgs(i64, u1025, 1 << 0); try testArgs(i64, u1025, 1 << 1024); - try testArgs(u64, u1025, 0); - try testArgs(u64, u1025, 1 << 0); - try testArgs(u64, u1025, 1 << 1024); try testArgs(i128, u1025, 0); try testArgs(i128, u1025, 1 << 0); try testArgs(i128, u1025, 1 << 1024); - try testArgs(u128, u1025, 0); - try testArgs(u128, u1025, 1 << 0); - try testArgs(u128, u1025, 1 << 1024); try testArgs(i256, u1025, 0); try testArgs(i256, u1025, 1 << 0); try testArgs(i256, u1025, 1 << 1024); - try testArgs(u256, u1025, 0); - try testArgs(u256, u1025, 1 << 0); - try testArgs(u256, u1025, 1 << 1024); try testArgs(i512, u1025, 0); try testArgs(i512, u1025, 1 << 0); try testArgs(i512, u1025, 1 << 1024); - try testArgs(u512, u1025, 0); - try testArgs(u512, u1025, 1 << 0); - try testArgs(u512, u1025, 1 << 1024); try testArgs(i1024, u1025, 0); try testArgs(i1024, u1025, 1 << 0); try testArgs(i1024, u1025, 1 << 1024); - try testArgs(u1024, u1025, 0); - try testArgs(u1024, u1025, 1 << 0); - try testArgs(u1024, u1025, 1 << 1024); } fn testFloats() !void { @setEvalBranchQuota(3_100); @@ -10804,6 +9917,46 @@ test clz { try test_clz.testIntVectors(); } +inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type) Result { + const res_info = switch (@typeInfo(Result)) { + .int => |info| info, + .vector => |info| @typeInfo(info.child).int, + else => @compileError(@typeName(Result)), + }; + const rhs_info = switch (@typeInfo(Type)) { + .int => |info| info, + .vector => |info| @typeInfo(info.child).int, + else => @compileError(@typeName(Type)), + }; + const min_bits = @min(res_info.bits, rhs_info.bits); + return @intCast(switch (@as(union(enum) { + shift: std.math.Log2Int(Type), + mask: std.math.Log2IntCeil(Type), + }, switch (res_info.signedness) { + .signed => switch (rhs_info.signedness) { + .signed => .{ .shift = rhs_info.bits - min_bits }, + .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) }, + }, + .unsigned => switch (rhs_info.signedness) { + .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) }, + .unsigned => .{ .mask = min_bits }, + }, + })) { + // TODO: if (bits == 0) rhs else rhs >> bits, + .shift => |bits| if (bits == 0) + rhs + else if (rhs < 0) + rhs | std.math.minInt(Type) >> bits + else + rhs & std.math.maxInt(Type) >> bits, + .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & (1 << bits) - 1, + }); +} +test intCast { + const test_int_cast = cast(intCast, .{}); + try test_int_cast.testInts(); +} + inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type) Result { return @floatCast(rhs); } |
