mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-26 13:01:34 +03:00
x86_64: fix mir rmi signedness
This commit is contained in:
+16
-17
@@ -628,12 +628,12 @@ pub const Mutable = struct {
|
||||
|
||||
// Slice of the upper bits if they exist, these will be ignored and allows us to use addCarry to determine
|
||||
// if an overflow occurred.
|
||||
const x = Const{
|
||||
const x: Const = .{
|
||||
.positive = a.positive,
|
||||
.limbs = a.limbs[0..@min(req_limbs, a.limbs.len)],
|
||||
};
|
||||
|
||||
const y = Const{
|
||||
const y: Const = .{
|
||||
.positive = b.positive,
|
||||
.limbs = b.limbs[0..@min(req_limbs, b.limbs.len)],
|
||||
};
|
||||
@@ -647,9 +647,8 @@ pub const Mutable = struct {
|
||||
// Note: after this we still might need to wrap.
|
||||
const msl = @max(a.limbs.len, b.limbs.len);
|
||||
if (msl < req_limbs) {
|
||||
r.len = msl + 1;
|
||||
r.limbs[msl] = 1;
|
||||
r.len = req_limbs;
|
||||
@memset(r.limbs[msl + 1 .. req_limbs], 0);
|
||||
} else {
|
||||
carry_truncated = true;
|
||||
}
|
||||
@@ -673,12 +672,12 @@ pub const Mutable = struct {
|
||||
|
||||
// Slice of the upper bits if they exist, these will be ignored and allows us to use addCarry to determine
|
||||
// if an overflow occurred.
|
||||
const x = Const{
|
||||
const x: Const = .{
|
||||
.positive = a.positive,
|
||||
.limbs = a.limbs[0..@min(req_limbs, a.limbs.len)],
|
||||
};
|
||||
|
||||
const y = Const{
|
||||
const y: Const = .{
|
||||
.positive = b.positive,
|
||||
.limbs = b.limbs[0..@min(req_limbs, b.limbs.len)],
|
||||
};
|
||||
@@ -690,12 +689,12 @@ pub const Mutable = struct {
|
||||
// Note: In this case, might _also_ need to saturate.
|
||||
const msl = @max(a.limbs.len, b.limbs.len);
|
||||
if (msl < req_limbs) {
|
||||
r.len = msl + 1;
|
||||
r.limbs[msl] = 1;
|
||||
r.len = req_limbs;
|
||||
// Note: Saturation may still be required if msl == req_limbs - 1
|
||||
} else {
|
||||
// Overflowed req_limbs, definitely saturate.
|
||||
r.setTwosCompIntLimit(if (r.positive) .max else .min, signedness, bit_count);
|
||||
return r.setTwosCompIntLimit(if (r.positive) .max else .min, signedness, bit_count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1374,7 +1373,7 @@ pub const Mutable = struct {
|
||||
/// r is `calcTwosCompLimbCount(bit_count)`.
|
||||
pub fn bitNotWrap(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
|
||||
r.copy(a.negate());
|
||||
const negative_one = Const{ .limbs = &.{1}, .positive = false };
|
||||
const negative_one: Const = .{ .limbs = &.{1}, .positive = false };
|
||||
_ = r.addWrap(r.toConst(), negative_one, signedness, bit_count);
|
||||
}
|
||||
|
||||
@@ -1740,13 +1739,13 @@ pub const Mutable = struct {
|
||||
r.positive = r_positive;
|
||||
} else {
|
||||
// Shrink x, y such that the trailing zero limbs shared between are removed.
|
||||
var x0 = Mutable{
|
||||
var x0: Mutable = .{
|
||||
.limbs = x.limbs[xy_trailing..],
|
||||
.len = x.len - xy_trailing,
|
||||
.positive = true,
|
||||
};
|
||||
|
||||
var y0 = Mutable{
|
||||
var y0: Mutable = .{
|
||||
.limbs = y.limbs[xy_trailing..],
|
||||
.len = y.len - xy_trailing,
|
||||
.positive = true,
|
||||
@@ -1809,7 +1808,7 @@ pub const Mutable = struct {
|
||||
// x >= y * b^(n - t) can be replaced by x/b^(n - t) >= y.
|
||||
|
||||
// 'divide' x by b^(n - t)
|
||||
var tmp = Mutable{
|
||||
var tmp: Mutable = .{
|
||||
.limbs = x.limbs[shift..],
|
||||
.len = x.len - shift,
|
||||
.positive = true,
|
||||
@@ -2108,7 +2107,7 @@ pub const Const = struct {
|
||||
pub fn toManaged(self: Const, allocator: Allocator) Allocator.Error!Managed {
|
||||
const limbs = try allocator.alloc(Limb, @max(Managed.default_capacity, self.limbs.len));
|
||||
@memcpy(limbs[0..self.limbs.len], self.limbs);
|
||||
return Managed{
|
||||
return .{
|
||||
.allocator = allocator,
|
||||
.limbs = limbs,
|
||||
.metadata = if (self.positive)
|
||||
@@ -2802,7 +2801,7 @@ pub const Managed = struct {
|
||||
/// default capacity will be used instead.
|
||||
/// The integer value after initializing is `0`.
|
||||
pub fn initCapacity(allocator: Allocator, capacity: usize) !Managed {
|
||||
return Managed{
|
||||
return .{
|
||||
.allocator = allocator,
|
||||
.metadata = 1,
|
||||
.limbs = block: {
|
||||
@@ -2868,7 +2867,7 @@ pub const Managed = struct {
|
||||
}
|
||||
|
||||
pub fn cloneWithDifferentAllocator(other: Managed, allocator: Allocator) !Managed {
|
||||
return Managed{
|
||||
return .{
|
||||
.allocator = allocator,
|
||||
.metadata = other.metadata,
|
||||
.limbs = block: {
|
||||
@@ -3454,7 +3453,7 @@ pub const Managed = struct {
|
||||
const tmp = try rma.allocator.alloc(Limb, a_len);
|
||||
defer rma.allocator.free(tmp);
|
||||
@memcpy(tmp[0..a_len], a.limbs[0..a_len]);
|
||||
const a_const = Const{ .limbs = tmp[0..a_len], .positive = a.isPositive() };
|
||||
const a_const: Const = .{ .limbs = tmp[0..a_len], .positive = a.isPositive() };
|
||||
var rma_mut = rma.toMutable();
|
||||
rma_mut.sqrNoAlias(a_const, rma.allocator);
|
||||
rma.setMetadata(rma_mut.positive, rma_mut.len);
|
||||
@@ -3479,7 +3478,7 @@ pub const Managed = struct {
|
||||
const tmp = try rma.allocator.alloc(Limb, a_len);
|
||||
defer rma.allocator.free(tmp);
|
||||
@memcpy(tmp[0..a_len], a.limbs[0..a_len]);
|
||||
const a_const = Const{ .limbs = tmp[0..a_len], .positive = a.isPositive() };
|
||||
const a_const: Const = .{ .limbs = tmp[0..a_len], .positive = a.isPositive() };
|
||||
var rma_mut = rma.toMutable();
|
||||
rma_mut.pow(a_const, b, limbs_buffer);
|
||||
rma.setMetadata(rma_mut.positive, rma_mut.len);
|
||||
|
||||
@@ -1260,6 +1260,28 @@ test "subSat single-multi, signed, limb aligned" {
|
||||
try testing.expectEqual(minInt(SignedDoubleLimb), try a.toInt(SignedDoubleLimb));
|
||||
}
|
||||
|
||||
test "addSat multi-multi, signed, unused limb" {
|
||||
var a = try Managed.initSet(testing.allocator, 1 << (@bitSizeOf(Limb) - 1));
|
||||
defer a.deinit();
|
||||
|
||||
try a.ensureTwosCompCapacity(3 * @bitSizeOf(Limb));
|
||||
try a.addSat(&a, &a, .signed, 3 * @bitSizeOf(Limb));
|
||||
|
||||
try testing.expectEqual(1 << @bitSizeOf(Limb), try a.toInt(SignedDoubleLimb));
|
||||
}
|
||||
|
||||
test "subSat multi-multi, signed, unused limb" {
|
||||
var a = try Managed.initSet(testing.allocator, -1 << (@bitSizeOf(Limb) - 1));
|
||||
defer a.deinit();
|
||||
|
||||
var b = try Managed.initSet(testing.allocator, 1 << (@bitSizeOf(Limb) - 1));
|
||||
defer b.deinit();
|
||||
|
||||
try a.subSat(&a, &b, .signed, 3 * @bitSizeOf(Limb));
|
||||
|
||||
try testing.expectEqual(-1 << @bitSizeOf(Limb), try a.toInt(SignedDoubleLimb));
|
||||
}
|
||||
|
||||
test "sub single-single" {
|
||||
var a = try Managed.initSet(testing.allocator, 50);
|
||||
defer a.deinit();
|
||||
|
||||
@@ -1850,33 +1850,10 @@ fn asmRegisterMemoryImmediate(
|
||||
m: Memory,
|
||||
imm: Immediate,
|
||||
) !void {
|
||||
if (reg.size() == .qword and tag[1] == .mul) {
|
||||
// imul does not support imm16 for RMI r64, r/m64
|
||||
const payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) {
|
||||
.signed => |s| @bitCast(s),
|
||||
.unsigned => |u| @as(u32, @intCast(u)),
|
||||
.nav, .uav, .lazy_sym, .extern_func => unreachable,
|
||||
} });
|
||||
assert(payload + 1 == try self.addExtra(Mir.Memory.encode(m)));
|
||||
_ = try self.addInst(.{
|
||||
.tag = tag[1],
|
||||
.ops = switch (imm) {
|
||||
.signed => .rmi_s,
|
||||
.unsigned => .rmi_u,
|
||||
.nav, .uav, .lazy_sym, .extern_func => unreachable,
|
||||
},
|
||||
.data = .{ .rx = .{
|
||||
.fixes = tag[0],
|
||||
.r1 = reg,
|
||||
.payload = payload,
|
||||
} },
|
||||
});
|
||||
} else if (switch (imm) {
|
||||
.signed => |s| if (std.math.cast(i16, s)) |x| @as(u16, @bitCast(x)) else null,
|
||||
.unsigned => |u| std.math.cast(u16, u),
|
||||
if (switch (imm) {
|
||||
inline .signed, .unsigned => |x| std.math.cast(i16, x),
|
||||
.nav, .uav, .lazy_sym, .extern_func => unreachable,
|
||||
}) |small_imm| {
|
||||
// This is only valid for imul RMI r16, r/m16
|
||||
_ = try self.addInst(.{
|
||||
.tag = tag[1],
|
||||
.ops = .rmi,
|
||||
@@ -1996,7 +1973,7 @@ fn asmMemoryRegisterImmediate(
|
||||
.data = .{ .rix = .{
|
||||
.fixes = tag[0],
|
||||
.r1 = reg,
|
||||
.i = @intCast(imm.unsigned),
|
||||
.i = @as(u8, @intCast(imm.unsigned)),
|
||||
.payload = try self.addExtra(Mir.Memory.encode(m)),
|
||||
} },
|
||||
});
|
||||
@@ -180148,7 +180125,7 @@ fn airMemset(self: *CodeGen, inst: Air.Inst.Index, safety: bool) !void {
|
||||
.{ .i_, .mul },
|
||||
len_reg,
|
||||
len_reg,
|
||||
.s(elem_abi_size),
|
||||
.u(elem_abi_size),
|
||||
);
|
||||
try self.genInlineMemcpy(second_elem_ptr_mcv, dst_ptr, len_mcv, .{ .no_alias = false });
|
||||
|
||||
|
||||
@@ -374,9 +374,7 @@ pub fn imm(lower: *const Lower, ops: Mir.Inst.Ops, i: u32) Immediate {
|
||||
.ri_u,
|
||||
.i_u,
|
||||
.mi_u,
|
||||
.rmi,
|
||||
.rmi_u,
|
||||
.mri,
|
||||
.rrm,
|
||||
.rrmi,
|
||||
.pseudo_dbg_arg_i_u,
|
||||
@@ -567,7 +565,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {
|
||||
.rmi => &.{
|
||||
.{ .reg = inst.data.rix.r1 },
|
||||
.{ .mem = lower.mem(1, inst.data.rix.payload) },
|
||||
.{ .imm = lower.imm(inst.ops, inst.data.rix.i) },
|
||||
.{ .imm = if (std.math.cast(u8, inst.data.rix.i)) |u| .u(u) else .s(inst.data.rix.i) },
|
||||
},
|
||||
.rmi_s, .rmi_u => &.{
|
||||
.{ .reg = inst.data.rx.r1 },
|
||||
@@ -589,7 +587,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {
|
||||
.mri => &.{
|
||||
.{ .mem = lower.mem(0, inst.data.rix.payload) },
|
||||
.{ .reg = inst.data.rix.r1 },
|
||||
.{ .imm = lower.imm(inst.ops, inst.data.rix.i) },
|
||||
.{ .imm = .u(@as(u8, @intCast(inst.data.rix.i))) },
|
||||
},
|
||||
.rrm => &.{
|
||||
.{ .reg = inst.data.rrx.r1 },
|
||||
|
||||
@@ -1371,7 +1371,7 @@ pub const Inst = struct {
|
||||
/// Register, memory, register operands.
|
||||
/// Uses `rrx` payload with extra data of type `Memory`.
|
||||
rmr,
|
||||
/// Register, memory, immediate (word) operands.
|
||||
/// Register, memory, immediate (signed word) operands.
|
||||
/// Uses `rix` payload with extra data of type `Memory`.
|
||||
rmi,
|
||||
/// Register, memory, immediate (signed) operands.
|
||||
@@ -1404,7 +1404,7 @@ pub const Inst = struct {
|
||||
/// Memory, register, register operands.
|
||||
/// Uses `rrx` payload with extra data of type `Memory`.
|
||||
mrr,
|
||||
/// Memory, register, immediate (word) operands.
|
||||
/// Memory, register, immediate (signed word) operands.
|
||||
/// Uses `rix` payload with extra data of type `Memory`.
|
||||
mri,
|
||||
/// References another Mir instruction directly.
|
||||
@@ -1685,7 +1685,7 @@ pub const Inst = struct {
|
||||
rix: struct {
|
||||
fixes: Fixes = ._,
|
||||
r1: Register,
|
||||
i: u16,
|
||||
i: i16,
|
||||
payload: u32,
|
||||
},
|
||||
/// Register, register, byte immediate, followed by Custom payload found in extra.
|
||||
|
||||
@@ -333,20 +333,20 @@
|
||||
.{ .idiv, .m, .{ .rm32 }, .{ 0xf7 }, 7, .none, .none },
|
||||
.{ .idiv, .m, .{ .rm64 }, .{ 0xf7 }, 7, .long, .none },
|
||||
|
||||
.{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .none, .none },
|
||||
.{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .rex, .none },
|
||||
.{ .imul, .m, .{ .rm16, }, .{ 0xf7 }, 5, .short, .none },
|
||||
.{ .imul, .m, .{ .rm32, }, .{ 0xf7 }, 5, .none, .none },
|
||||
.{ .imul, .m, .{ .rm64, }, .{ 0xf7 }, 5, .long, .none },
|
||||
.{ .imul, .rm, .{ .r16, .rm16, }, .{ 0x0f, 0xaf }, 0, .short, .none },
|
||||
.{ .imul, .rm, .{ .r32, .rm32, }, .{ 0x0f, 0xaf }, 0, .none, .none },
|
||||
.{ .imul, .rm, .{ .r64, .rm64, }, .{ 0x0f, 0xaf }, 0, .long, .none },
|
||||
.{ .imul, .rmi, .{ .r16, .rm16, .imm8s }, .{ 0x6b }, 0, .short, .none },
|
||||
.{ .imul, .rmi, .{ .r32, .rm32, .imm8s }, .{ 0x6b }, 0, .none, .none },
|
||||
.{ .imul, .rmi, .{ .r64, .rm64, .imm8s }, .{ 0x6b }, 0, .long, .none },
|
||||
.{ .imul, .rmi, .{ .r16, .rm16, .imm16 }, .{ 0x69 }, 0, .short, .none },
|
||||
.{ .imul, .rmi, .{ .r32, .rm32, .imm32 }, .{ 0x69 }, 0, .none, .none },
|
||||
.{ .imul, .rmi, .{ .r64, .rm64, .imm32 }, .{ 0x69 }, 0, .long, .none },
|
||||
.{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .none, .none },
|
||||
.{ .imul, .m, .{ .rm8 }, .{ 0xf6 }, 5, .rex, .none },
|
||||
.{ .imul, .m, .{ .rm16, }, .{ 0xf7 }, 5, .short, .none },
|
||||
.{ .imul, .m, .{ .rm32, }, .{ 0xf7 }, 5, .none, .none },
|
||||
.{ .imul, .m, .{ .rm64, }, .{ 0xf7 }, 5, .long, .none },
|
||||
.{ .imul, .rm, .{ .r16, .rm16, }, .{ 0x0f, 0xaf }, 0, .short, .none },
|
||||
.{ .imul, .rm, .{ .r32, .rm32, }, .{ 0x0f, 0xaf }, 0, .none, .none },
|
||||
.{ .imul, .rm, .{ .r64, .rm64, }, .{ 0x0f, 0xaf }, 0, .long, .none },
|
||||
.{ .imul, .rmi, .{ .r16, .rm16, .imm8s }, .{ 0x6b }, 0, .short, .none },
|
||||
.{ .imul, .rmi, .{ .r32, .rm32, .imm8s }, .{ 0x6b }, 0, .none, .none },
|
||||
.{ .imul, .rmi, .{ .r64, .rm64, .imm8s }, .{ 0x6b }, 0, .long, .none },
|
||||
.{ .imul, .rmi, .{ .r16, .rm16, .imm16 }, .{ 0x69 }, 0, .short, .none },
|
||||
.{ .imul, .rmi, .{ .r32, .rm32, .imm32 }, .{ 0x69 }, 0, .none, .none },
|
||||
.{ .imul, .rmi, .{ .r64, .rm64, .imm32s }, .{ 0x69 }, 0, .long, .none },
|
||||
|
||||
.{ .in, .zi, .{ .al, .imm8 }, .{ 0xe4 }, 0, .none, .none },
|
||||
.{ .in, .zi, .{ .ax, .imm8 }, .{ 0xe5 }, 0, .short, .none },
|
||||
|
||||
+135
-79
@@ -95,85 +95,141 @@ fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .rela
|
||||
try testArgs(i1, 0x0, -0x1);
|
||||
try testArgs(u1, 0x1, 0x1);
|
||||
try testArgs(i2, 0x0, -0x2);
|
||||
try testArgs(u2, 0x2, 0x1);
|
||||
try testArgs(i3, 0x1, -0x3);
|
||||
try testArgs(u3, 0x6, 0x1);
|
||||
try testArgs(i4, 0x6, 0x3);
|
||||
try testArgs(u4, 0x8, 0x5);
|
||||
try testArgs(i5, -0x9, -0xd);
|
||||
try testArgs(u5, 0x5, 0x13);
|
||||
try testArgs(i7, 0x34, 0x1d);
|
||||
try testArgs(u7, 0x31, 0x56);
|
||||
try testArgs(i8, -0x57, -0x70);
|
||||
try testArgs(u8, 0x12, 0xd6);
|
||||
try testArgs(i9, -0x8a, -0xa0);
|
||||
try testArgs(u9, 0xf8, 0x95);
|
||||
try testArgs(i15, -0x790, 0x116f);
|
||||
try testArgs(u15, 0x548b, 0x4cd6);
|
||||
try testArgs(i16, -0x2d17, -0x5c17);
|
||||
try testArgs(u16, 0xadc0, 0xb223);
|
||||
try testArgs(i17, 0xe543, 0xaad5);
|
||||
try testArgs(u17, 0x9515, 0xa3c1);
|
||||
try testArgs(i31, -0x28858a2f, 0x369e917a);
|
||||
try testArgs(u31, 0x32bab794, 0x75464e7f);
|
||||
try testArgs(i32, 0x79e74e44, 0x61fe4ab1);
|
||||
try testArgs(u32, 0xc82f8e2, 0x5dde37e2);
|
||||
try testArgs(i33, -0xa4cbaa13, -0x4d20ee61);
|
||||
try testArgs(u33, 0x17461d437, 0x16cbc228f);
|
||||
try testArgs(i63, 0x333220e16b1e53fb, 0x121a0d970a5a4504);
|
||||
try testArgs(u63, 0x2dcd94e2ae4aa2af, 0x5f401e6e287a4dd7);
|
||||
try testArgs(i64, 0x17e6bb7d8d430410, 0x760d42736f4b445c);
|
||||
try testArgs(u64, 0x430970421452be50, 0xb4b5e96f4183b5fc);
|
||||
try testArgs(i65, 0xb4477484679a6576, 0x21c9a3100d35de49);
|
||||
try testArgs(u65, 0x1b7ffa914193a316, 0x6751268790308460);
|
||||
try testArgs(i95, 0xd573e2100686f5df03aa29f, 0x4f7c921eb980b43a554b763);
|
||||
try testArgs(u95, 0x62791162d2740f3ae84a9fcf, 0x1b6e66ae70bb9785a2118ecc);
|
||||
try testArgs(i96, -0x6dc72375264ab887ea6073d5, 0x357ca705a600e94f6dd114c9);
|
||||
try testArgs(u96, 0x77867877aae9bc90b2b57ce7, 0xd9a5352eb86061b67a61b212);
|
||||
try testArgs(i97, 0x76f421e0ccfc6e7531c03ad5, 0x6775cdacdfca5455771c0dae);
|
||||
try testArgs(u97, 0xaeb79499018e490b6aa2a5fc, 0x6cf53b08068cf25bdc307606);
|
||||
try testArgs(i127, -0xc6de705251f892f8ba6a4f10aee0c7, -0x1598d3c6fd635ec0796a584af7479027);
|
||||
try testArgs(u127, 0x5b3ec94f88a61621be2f745e90153390, 0x72456ad6a7ef886decf13195a50ca4d6);
|
||||
try testArgs(i128, -0x44570544f745b89beb111016359577d5, -0x48904e59a05caede0974f916efba61a0);
|
||||
try testArgs(u128, 0x3b14f670f6ac712d087a9ec7b15394d2, 0x19b69cb71a6763a9dc5baec5bb818450);
|
||||
try testArgs(i129, 0xd58a765abb324106d83362db47fc374d, 0x548642028e222abf2ee21a1999a8ac5f);
|
||||
try testArgs(u129, 0x1144fb18eba36e437bc45a73bbe25f10e, 0xdc7cb5f65f5127b00a842adf3f5a5231);
|
||||
try testArgs(i159, 0x3121c6ae74c46679386f2051ee0520d9264e01cf, -0x34fec2cf28ce549281a5dc79f7ed834483f418af);
|
||||
try testArgs(u159, 0x2e479684775f86a8ff1a9c6fab9022b18a6f6be4, 0x63c77ea3d97ad2c715fd13db972e678fefe3efba);
|
||||
try testArgs(i160, 0x1e55924219aa114ef8d2b3193d09ae7849a3e551, -0x13f1ff6a62e562f7b78559f032bb05b2e2d15748);
|
||||
try testArgs(u160, 0x8ed3d206fcc59350cf23dcd9e042eb36bcc63e52, 0xc88e1c5a42abf98aee0a3479e7f4fe88ab53b6f2);
|
||||
try testArgs(i161, -0xd3d6885c0df36bd513aca744561684d12a62f044, 0xa519d3c4a7ea2e4768d840ec8641995689de6116);
|
||||
try testArgs(u161, 0x10b4afdfa36471c77a2b629ef85e1289b798161b, 0x15e89da33c31ec01adf6921b8d13bc943f139fba2);
|
||||
try testArgs(i191, 0x2436122b85c017733d9d28347544298d148223e1d9cbf0a2, 0x46b80688a0e0b59e66628940772893fcce258d3da7c0193);
|
||||
try testArgs(u191, 0x3d00a8da821de44f98fa70d298bda9e25f99d8f54936d09f, 0x4ad4440686be966599985094f16e364c961503214ff86519);
|
||||
try testArgs(i192, 0x124d0580271a71745f842e3a81d8cb6154c7f6f4b8b0cf39, -0x5bae9d7d471e609f1570a3f9805b80c4d672a086d44107eb);
|
||||
try testArgs(u192, 0x3b882677dc62d5c76cc942bea0d2f72925ff0a9e234d7ce9, 0x5d7825e3f2254bf214257ebe84716dc88fde6c9563218ac4);
|
||||
try testArgs(i193, 0x9c143db83d19c8fff1c23f3c93b103eaf8be02910a1cbe5, 0xcfa1059ba12508d2ff3ef9763ce8224eb1d0a0f22def289d);
|
||||
try testArgs(u193, 0x635890f170da79117490445db595c1f2bb5a5cf640abc8e8, 0xdb5a2a6a3c6db7f43949123f0886cb93bbbed2d5dd7690e);
|
||||
try testArgs(i223, -0x25e4a8d454e5957a9906a66a0c02ad53e727e3e18ca4b8be98561306, 0x8d6d3977afce56a5dffc537de19d4c73f2e5603699373d010e51d10);
|
||||
try testArgs(u223, 0x5721636a3c6d271fe9eb08420d29454775666266801a7d23d61075be, 0x7e573fd8dcbd6dc780d13b61d5255cae790ea697d1c9a5479fa51ee);
|
||||
try testArgs(i224, 0x51f97aaa96493aaed2677294bfde0715d69d961fef97a557ae9dbc84, 0x306d9305e2d5162dd0ce0454d2daaa54879b11a77386bb03e779a23e);
|
||||
try testArgs(u224, 0xdc7eb2070c048b6fd22d6df97b3ef5e9fc5f28d8d229710333defecd, 0x475662887f29712bc927fae9de37cd842d883682a26e653d7b3f2ed9);
|
||||
try testArgs(i225, -0x9b3dba4fe2026e8d90d9be4b8b2334034d2ae23569c4e1a3a311925d, -0x2ae4c074cff2da1e7fcab269ce6da7f4a9f763062f97526c0b4abf34);
|
||||
try testArgs(u225, 0xb36dd536afb070e9be7fba5eaf548fe741182cabaf9f9510f86b3ffb, 0x1f35e5728f29e2566afd9a325beaf17ebf5f894e744825bdd56bb12d0);
|
||||
try testArgs(i255, 0x2db696171e4045e17cb2a96763ff2728b459e5bf9ade6e9cd118bbc4f91aca89, -0x1580d80086052560091fe42077ce66c45d7e93173f74327f44fec7b63ed9f2aa);
|
||||
try testArgs(u255, 0x392b3639141d03da49d576fd0ce498e1bafb8fc032604e68e91e589f6d2a05a3, 0x46f60e500f01bdbe18f71fb8dbef0395245a94f55421637ca50eb8922a751977);
|
||||
try testArgs(i256, -0x2f3c22cb1d12628b2eccd705f1526d8a91258183742d9521bdc97d943591d87c, -0x864d3ef8b592e041289dbb54def60ceee798673138aa750a5efdaffcd42b62d);
|
||||
try testArgs(u256, 0x25776f0ce5f3c6761eec99ace965f9162e9416e4d4e298674e5723b64e443528, 0xb1ee7fd2efaddd5d25eea49bde34e53c40d59221757f17d53d9a4c9ab7eca3f5);
|
||||
try testArgs(i257, 0xd599706e1a09217f1f698520993d2b62ee877a4150bd8db6e5546657900dc7ce, 0x51d0faef82bb0878a4fd4331dcaec6ed57156acc2377c7e301eca6989e897346);
|
||||
try testArgs(u257, 0xb0d42105facc0db629c5a65d6e975d25163841051efb1e187b70015f8c9e22ba, 0xf0eb6d0529e15fac6e97e850f50b7bf5056c9010345884926bf056590ddf3187);
|
||||
try testArgs(i511, 0x23c07fa26fea1595de6e368cb42d05696562d8fb05a2aab6b304c443275071a31684a369f69f30fd53223017669dcf8157f7ff1bcda05ad28dcf46c92f7f2bd5, 0x44884ae45727d2c249b280cbb6795f237015f1082ade12167c52f0318422b3ae9c1753263011878e3fa4fce0db683efdd249e325188a40ccb959bd6bf050fbf);
|
||||
try testArgs(u511, 0x642d98a41a7cc71dab7845c2c568696d0d77733c266846019756937cc29382d46074c8eb86502f4855c35f6354e51d98c41674166a9a7385ab94b0c7a63f58c0, 0x3cc5230f530a12c8cae29654e55a6d7cd26fe7606beed5c9a8fef443b107bf18dd8cc034683b47a213a3a885abd7048188713e8e7b9157145cd24748e256f5b7);
|
||||
try testArgs(i512, -0x4b6d88a77e2a42d67daada905d16c6045b4dd57e608a0482f45531781d4994e2a6b71ad41a106b2dfc76e60aebd9e1d357b24b8d6889de3cf3e58ff3a48f54aa, -0x2e28e1b21ec33fd5dd9b1fbdc312e32884208b549ce0ca1661ca1150a6bd43363d4d186aa8ac70ad0595b44b5279ff070df8bd0b51095c62c8c499bfcaa7494c);
|
||||
try testArgs(u512, 0xf40ad922664478a7b71a5676fc49434a45ba86975cef377c8321159cd880b67cd543fcca70187d5912675c0bc1fa4129cb470f280cde56ac4ec848ca589f143f, 0xe20a8110780ff05718adc173677ff0579126576f1fc3857ac41d6b7d5334d93134181af15ce2d35224d2e5c63384f33e331b16ecbc6db44edbb4074134d23e97);
|
||||
try testArgs(i513, 0x55a556c6b6605897ffb7a791bdf309d5edb879f2841d1bba37006cdd0e7d00d971c85def024e28b7a17e53f3bcf5a5d5c43e780c6d13d67de1ca7b8f05deddfb, 0x53f475716443b38792e618ce109cec641aa351ce2e258a99153820c5522a4acc7f2b5b4ecd0000bcbe5a410bbee200576f6ff17ce7e8b7d1f0752390d1bb9b3f);
|
||||
try testArgs(u513, 0x1e4e15bc406c558c14f48b83090647d7f2254fa571eac7f8aad8edb76a90547f7854bd6315e50ad44ea93034db9fab450a584b53abf8537e31d39cd706a31eaa7, 0x1d348de8124b72ca1d0e382501024c9e1b0f6fc16c5cd4a86aef2731bd39c29173749afe94bb2992ea805148fe0d96abdc5980b2143bd81419c1e40bf81b2496f);
|
||||
try testArgs(i1023, -0x37781a6086d9310e4cdb24f5f374736e32af53c9545298aa53fe17854f73052cd808f658efacea622c59adb51af4d2dd636521ca2717acc43389c975505b7543da2c62f33c3152907f13b1ffa5b9881b33acec3cab1d8e33c2239ea6835277c474629a9157f8acd7c1d83076c2e75a48a8d3a94067e801c51057e47e09f0be14, 0x39ad04132dec8b795b98fd7cd085605ce8354655633068ee485d9dc78853feb922a54a3df6209989d1137e4ea8b0ad2cae48b21df2e0c04feeca56d2551f12782312a6ae483ffff466ff78446ebd4d47a61c1cba2603a62b44a72800060dda7eec8bc9060b8c5533afa7946bd38e93fddb863392500c22616dd4ae4932f20fe4);
|
||||
try testArgs(u1023, 0x6e14a9d998a9ef7ac77b6fe08225fcc176e687685736e0e32c9e6b8fe96e9a7b14b3318310e945f7f84128455075eedb4a7b7736185f58e5640688c5d3b47d785338a0b70e77f4d237fd85f7820f3ebe6eb30f5a71231e813a70d6c76963d66291f271cd6f462ce685a0270ec5f6e856340f91d7597cd2b779566fe3ff4d4a98, 0x211eafbd449691e390d14dd34cb9c4d32627ecbec485d4a0a7cca1b28bd81d2153a7a75c2f62c4c3c7f198740cfe65dfa3c86156aa0b6d22757fd07f4070ddd50e334782f045a58b96c5a8f04b4615968501e9b5e801c475bdc034919c9e9df6df3cbbd59bacfa9409b21c3365d10e132d75958774c6244446127b043d155ec4);
|
||||
try testArgs(i1024, 0xa6bd15fd4c529a24e4d727c5c0db9422ed7038ba23944b2b54ffc8d3731e2ffc19e12d885010fb10d208ea045e2a4cfec32d190f221bd453ec73fcecc03e37fd70be3fba3945c881cb9bce69f3f6ad9a6ee0d42a393b3669d1ca518d0b7b06a2c47978f22bc1db8802ef6ce29ea51b48256c6fed82e04355665f9d27ff485b, -0x69f258c2a86e97161ce2e683801591976a8e5a71b88605450961ee271637e6c2fee13459c29d42d4c5fb408f80236d3b2db34752e307fee6cbce2e5088adc817902a5adbbba72c8be84b9f8af5ce0fac464cae61cff9cbbe3a8dcdbec0af855b2e6c2c19fbe4f01baec9ca28b78bd7d383281c71d81da74fd0a2c8a5b754ee57);
|
||||
try testArgs(u1024, 0x111e0a4e0c61ab3c5229154539ddb010542cb528533b4ea13813d8dbbaca7de395aac3c22dae1bd9db8bf9005ea9ef3df253aefabdce060a93e60da6edc3b1b2d78aead4647e7a589b66aa53fb953742b71f823b539150918df0fe781ee4d00279e4da9995804391bb19504de2f108f7d6ba14d624fa175842bd429f638de8f9, 0xcf9160dcb7ed13a738f7c8b2a17ca2fe84f53620a50f6a948698c4efca88392dc104ef5d26f19c82c8f770f727585702cc8d1c4cc2bba9e691e61b055d98cd636347a7c50b3bd2b2f5dfa416dadbdd76c111d45598c93ef729588cf998a55260cfe94d376ec4e8dc132afa42b66b68bc826c50169f9f4fc798cf7e8f29df639a);
|
||||
try testArgs(i1025, 0xef2102c2cab6ad6bf2f2ba09c154440e65acc56cb14c5221a12b12404f7eafefeab4537f70cc10afb945e93c935223ffd3146911021666fd68fcaa494ded54ce66d2832b1d82b0654f24f1183bbc3ee45eb15c424a74ad41f22c7009b86cb404ac3b810445679417d7e0c5d5f4e88dec7c90352afa367004facbc1d668ab0a7, 0xc7743d3a52bad9bed0d24dbeaac4f27f4790ee14e984484f7ee077e6285394f046f2ba6d3a9c6e0aea1c07de98741a88669a035ec4d9755130fe96414223486e89d710a743ca2c2b53871fdb4851d90a595111d8d12e6732e4b580e235218edee3bc56fca3de99bc5f9a37c9dbc9a8ca5aaba710ec5e498b58b239a1be56915b);
|
||||
try testArgs(u1025, 0x1dea81169800bac2f3afcf3be5dbd2d8eefbace8a24a2da0a383a928d1109459f34028be4413119f1af00ad90ce4d63064016dc1cee5b783c79c1998a0a49de21c4db71d432273576503589fc966c7ec2d730fa9bc4c5ff3128a82653ab8149528de67804718e39722f89b91c75d012ea41c642c889f0db95c882a9790a5e922f, 0x156fe02946ab9069a644dcc1f2b1afa04ee88ab1de19575a2715abf4a52bf374d297fdf78455ccdb87a934d3d818d774b63865eaedfdad3c56a56b8fcc62703c391aedf16cf770af06d7d205f93778c012df54fe5290084e1cd2bbec86a2f295cdce69a2cd774e064580f3c9cfae60d17b12f610e86566e68d5183d706c8ad8af);
|
||||
try testArgs(u2, 0x3, 0x3);
|
||||
try testArgs(i3, -0x2, -0x4);
|
||||
try testArgs(u3, 0x1, 0x4);
|
||||
try testArgs(i4, 0x2, 0x3);
|
||||
try testArgs(u4, 0x0, 0x9);
|
||||
try testArgs(i5, -0x7, 0xa);
|
||||
try testArgs(u5, 0x17, 0x12);
|
||||
try testArgs(i7, -0x2f, -0x10);
|
||||
try testArgs(u7, 0x2, 0x5a);
|
||||
try testArgs(i8, -0x58, 0x4d);
|
||||
try testArgs(u8, 0xa6, 0x62);
|
||||
try testArgs(i9, 0x2d, -0xc8);
|
||||
try testArgs(u9, 0xb3, 0x103);
|
||||
try testArgs(i15, 0x2965, -0x356f);
|
||||
try testArgs(u15, 0x7c98, 0x365e);
|
||||
try testArgs(i16, -0x7578, -0x3313);
|
||||
try testArgs(i16, -0x3c, 0x17);
|
||||
try testArgs(u16, 0x4ee7, 0x6b62);
|
||||
try testArgs(u16, 0xb3, 0xe6);
|
||||
try testArgs(i17, 0x794a, -0x6f8e);
|
||||
try testArgs(u17, 0x1e3fa, 0x1ab2a);
|
||||
try testArgs(i31, -0x21aa4212, -0x2202d70d);
|
||||
try testArgs(u31, 0x6ac6122, 0x2fb9b257);
|
||||
try testArgs(i32, 0x6c45c413, -0x35eca389);
|
||||
try testArgs(i32, 0x5e15, 0x5576);
|
||||
try testArgs(i32, 0x6a, -0x32);
|
||||
try testArgs(u32, 0xa209dab8, 0xedd9164b);
|
||||
try testArgs(u32, 0x317d, 0xb2d1);
|
||||
try testArgs(u32, 0xf0, 0xd3);
|
||||
try testArgs(i33, 0x12ebeada, -0x1497d301);
|
||||
try testArgs(u33, 0x1baa7fa9e, 0x338605c3);
|
||||
try testArgs(i63, -0x35e3fe0b820c4f64, 0x26ac0336bf4a7d3e);
|
||||
try testArgs(u63, 0x4a92bba4f351688e, 0x5e8997c1d59f8c3e);
|
||||
try testArgs(i64, -0x4b02bbefd4ad7c08, 0xf2c7915c45d3663);
|
||||
try testArgs(i64, -0x48472f05, 0x68f6da9c);
|
||||
try testArgs(i64, -0x1bd0, -0x737);
|
||||
try testArgs(i64, 0x5f, -0x1d);
|
||||
try testArgs(u64, 0x2b6633e807c423ca, 0xd8032efc4f75196);
|
||||
try testArgs(u64, 0xeb06e992, 0x2f4e8522);
|
||||
try testArgs(u64, 0x9268, 0xcd9f);
|
||||
try testArgs(u64, 0x4d, 0x8);
|
||||
try testArgs(i65, -0x1135e9c63b0e860b, 0x1643641397dbe2ce);
|
||||
try testArgs(u65, 0x16912f027e5fcb695, 0x18e756dbf9ee61585);
|
||||
try testArgs(i95, -0xf3fcbcf5fe16065d1f1b3ef, 0x10948078d12df1f23e4a5cdd);
|
||||
try testArgs(u95, 0x2c5d24dc92fccb6cc80f8e72, 0x39d802d560e85df1599a5fb4);
|
||||
try testArgs(i96, -0x80ad7afba05064d0b355229, 0x4c33490a6fd189547f978185);
|
||||
try testArgs(u96, 0x12a3349b28f00297181d446e, 0x67736a7aa1f55bfe9f55dba0);
|
||||
try testArgs(i97, -0x837d95943fb23c369041342, -0x712105a3be57c2f0f17f9259);
|
||||
try testArgs(u97, 0x34daf6903a100ea892be10cb, 0x488d37e646767820d090bc45);
|
||||
try testArgs(i127, 0x2bc26ad5610f674505f7b32aff3049bc, -0x185866be42451ce9f7d3d3570c75a6ab);
|
||||
try testArgs(u127, 0x14dce42a62a28a9eadb759ab3cb59d2f, 0x2c98ed1cb5c79f5f472468e2a83bf879);
|
||||
try testArgs(i128, -0x353020e8596d7b9bad5d176107a8324a, -0x1a677b671e08fbbeb440356dc89827fa);
|
||||
try testArgs(i128, 0x18544b9260c70c05, 0x46f5da59902a3891);
|
||||
try testArgs(i128, 0x43bd7454, -0x3e5258d7);
|
||||
try testArgs(i128, -0x1d28, 0x5649);
|
||||
try testArgs(i128, -0x54, -0x7a);
|
||||
try testArgs(u128, 0xe535f228bdc07315b9bb88fbecff749a, 0x15c3657c196b39ba2f10283cc2633bc2);
|
||||
try testArgs(u128, 0x1b75b5b63db300c9, 0x8fa0d1eca0364719);
|
||||
try testArgs(u128, 0xa79b211c, 0xd075df9b);
|
||||
try testArgs(u128, 0x19bb, 0xa776);
|
||||
try testArgs(u128, 0xee, 0x37);
|
||||
try testArgs(i129, -0x62e38e41b503c3140eb9568f5b2b37bc, 0x18875e30d37e50e267b18de820b5f9a0);
|
||||
try testArgs(u129, 0x15b9cfdea6cdc682f06f21f13c7ce68d5, 0x115eb5bfe3b75164ae9e2c7abd115ae48);
|
||||
try testArgs(i159, -0x3ad81ba24b75031f501665851d76874d2246b6e, 0x23f39abd5841d53fecdfeacb9c45f5255f1dff96);
|
||||
try testArgs(u159, 0x5b7f03118d5378d854b4033a3353a3839978dbc5, 0x4d04a581a1ead46d85c3d3c9661d5ebe1be97581);
|
||||
try testArgs(i160, -0x11f707132115f25c4669dd2fca7e20a879dc7d5a, 0x25908ae209885e5bcc24c126d6330f7b0c2a0b5);
|
||||
try testArgs(u160, 0x5c7727eadbee50fbaf2e8c94bb6a27f4383445ab, 0x5909551b7b05451eb43f7a8791b210ea7385102b);
|
||||
try testArgs(i161, 0x5856d2b8b13730a7a8f685a454714ff812d6e657, -0xc46087a43ed9fce05e8c51b37ccc8e1a098fdc2c);
|
||||
try testArgs(u161, 0xd6c90bee661ed2d56937078dfe0db753c1111b9d, 0xc656cd6448759001381cc1c7acc98c27e2eebcde);
|
||||
try testArgs(i191, -0x2b28f64715263d8f41159c90617f48696bde9a27ba563bd7, 0x32326ec2e07b54b5b610c7d165458b6f906cb29744893585);
|
||||
try testArgs(u191, 0x7fbd89e7cf85722028bf9078e05b8d9c430352a0ef9cda6b, 0x71dceb931e412dad362aff62129ec78eeece36266931c0c9);
|
||||
try testArgs(i192, 0x45ad667d7555708d01378130b0486faac73fa8f597e04666, -0x4f7875bad89c49adfe1edc70aee49d97f6d2c510714d102d);
|
||||
try testArgs(u192, 0xf5b324a49e8c80e6607b02eacd2cbd7d3eb0fd9dad2a951c, 0x97e7b113f2e080575f1b90eae5eaf9e343e38559ac4bdcb6);
|
||||
try testArgs(i193, -0xeea3463327fc56b5a2fef18406f80fc6840f2bc031edcfa5, 0x2d4c1136e9af1385b51f1488566efded43920f615f417315);
|
||||
try testArgs(u193, 0x143eaa3d0025955f6bbfe673806073697aa8118c5e7136187, 0x1d8960a50223e21dd4d9d42d9e8a2d9d2a9c6857c9ead34be);
|
||||
try testArgs(i223, -0x1f7b7eb922c61404013cf0dba17d1a90146bf3b8c0728b7a0ea6f2ea, -0x27dc0f6d050abd8145d09b87477fed5b9a50247e4fe350f90a95b541);
|
||||
try testArgs(u223, 0x36f84d046baf5ea016e19704947906ea65d5c92f1f08042517759816, 0xd205ea00acd0d7c1671ef2f6e417b7139feb7bffa87ef1a338e2123);
|
||||
try testArgs(i224, -0xbde4a324e1ada6b2850c7cad0756c087a86167991215116d4521125, -0x32973d38bdae43339db0bba413932d75934b14e0783512d6fa72768a);
|
||||
try testArgs(u224, 0x40c4cd73222c5a57eda8606302406df4c2ce1f8457ba121d8068a689, 0x4f95cb741b7a1fd48355be3312dc744d85eafcad9463f73821814f92);
|
||||
try testArgs(i225, 0x3f6a7285ea4a8a1fbce0ccebbe8e2b3b79a9364b5ea4d10143ed2501, -0xcfc40bd560264132feee6d6691fa2226677921702c8b20c571b7940c);
|
||||
try testArgs(u225, 0x1c11965682045c0a4a55579f4bd219d53e9b94aabbb5a1367ff9fa977, 0x18fd677469772422a138f7d42031c60dcce72521e4550ff76feeb8c09);
|
||||
try testArgs(i255, -0x246de32ba0548f6332ed1460c4481d08995bca0d51354375577069261e1b128b, -0x3e3e976d27b358e8d71f11f4a74a2c06ccf1e02ff11c694509d584cbace2860b);
|
||||
try testArgs(u255, 0x195a0e8f2045178c9d7e4b4acbb0c303982b8e81a0db5a8726d301f7abf6b4fa, 0x1346dc32214a8049b6d019b3b621fca747d0ae54b01c6abfa71c9f53255bc0d);
|
||||
try testArgs(i256, -0x7656d3b6e843c1a4ba55209b78df78cb38e5df1484bddd5ab49d26123ae2b9b2, 0x7e72f13f55d969f98b4874608d6b2e175e138a1666acab3acb4ec0817ef3fb4b);
|
||||
try testArgs(i256, -0x1d6ff086af95a7a74cd928c45389b13d, -0x7e5b8a63026288e236445c612854b28c);
|
||||
try testArgs(i256, 0x2229d2778d879eee, -0x7baf8ed2a157845c);
|
||||
try testArgs(i256, 0x72b41e8f, -0x694a26be);
|
||||
try testArgs(i256, -0x445b, 0x3985);
|
||||
try testArgs(i256, -0x20, 0x25);
|
||||
try testArgs(u256, 0x50d83a5ed6d6b03a05960ec32188b5574d7a9bd3088fe3cc75f0a8634a9914ec, 0xeb3fdfbe533ac3b0870c6389983c7ae41dda0e7ca76dfaee1ce5d363f7a26487);
|
||||
try testArgs(u256, 0xe0d959827fce98b4275e695cc824004a, 0xa8ff0665dc6edb3ace0464706bbb9e99);
|
||||
try testArgs(u256, 0x124ca531713ef975, 0xb6c057747ef9b763);
|
||||
try testArgs(u256, 0x413a2414, 0xc7ad853a);
|
||||
try testArgs(u256, 0xe961, 0xbb97);
|
||||
try testArgs(u256, 0x5a, 0xca);
|
||||
try testArgs(i257, 0xff103490512264953d0c8d441d9c90cbeb5fb4b6f408acf3d52e6bee6b77729c, 0x4ba28a1cba4bd1961480733c6c5df3639834d86a5a2c0244f68af422fc66521f);
|
||||
try testArgs(u257, 0x55c4d8a412812a6425079d522f7246d62e72882cc43e53b95759a30ebcd9a5b9, 0xa31f450acc01fbd96d661be492830addfd095d1e668a7038b9638cd1bab4380e);
|
||||
try testArgs(i511, 0x87fd16a187507b466bf6cb2f76e66d5a8058004bdca76631755e6b02b76bd67f29b79affa8925b738a34d79597b7708794f3a370ab73e170babf2c4570c270c, 0x10b8284833ce712fb3a6757c6dd1f80c23d26903262d41902088fd57e272a47ff19d7d13f8d4ba5a015197a4a207739f17f7951f7ce9bcf9a6a2adc5ec2594f);
|
||||
try testArgs(u511, 0x28aa342d3d9f63f81bdf98f897b16b0d704a46ffff0bc307a8f67ccfce22a7a606ff1cdfaef8f7a9f2f8b734e9d32857f24971a345ec18563ee84b276ba93900, 0x3b0d8645fd9b90301e1799c404c75fdd7a730fd5c3b1d9a20d9c23fc7d643746a0533efd6e75359ef2ddfb610e43f32959d315062bf5617207fa2683f195c252);
|
||||
try testArgs(i512, 0x1d02c72fb01fb267355ad234d583d44804e57e0f12cb619d379cfc16cf70d79e76dfc1c871e4af2a5f61a717f6ca2cc5e9f058c79eee87f082bef99eb783a992, -0x77b5a305cecfb65928c3acf2d86d9c2dd332fa26aee15623648553b757b6eadb21fce6bf7a70cd5dc483bba79ce9cdaed3f7be5b4fc6fc45f383e00595a8658c);
|
||||
try testArgs(i512, -0x7bb493ec2c7034fc329235a63f878e79b966aa2eac4c7eb6fb2d681f92161356, -0x58a7620011739e0642ae1b63ea61785ff92b545af6c4af74b4254aafed91fae0);
|
||||
try testArgs(i512, -0x3314296f9c9686c089fdf822baa07eef, -0x328a20e658840d8361cc72fb62f996bd);
|
||||
try testArgs(i512, -0x32553c7b7a9adc17, -0x770695a5ab011937);
|
||||
try testArgs(i512, -0x627ebff4, -0x7df02a32);
|
||||
try testArgs(i512, 0x2dcd, 0x1c8);
|
||||
try testArgs(i512, 0x42, 0x40);
|
||||
try testArgs(u512, 0xe03387072d2d230573c5704ed3a2c6784537fee296d4b4881c3426ba1f5945dc08362774feb30a020bd49e2cadaa0950f97391a490db6c47b657d947015377d7, 0x16eb9d9c695012250b1f964d50704efe6fa384bd7d820e8d1c05ca03e8573426cef170e4d559f54ef749ad8cfbe080ee91e29e6ec1d13170f9c871316aa54417);
|
||||
try testArgs(u512, 0xa3dc7a7cf2cfef46b52333e4890e6ea3b852b36285c0a263045c712006ee816f, 0xd63219db46d5dff2dac67cce73679de2437ca6281a6b80980e2cc1fefe8ba59d);
|
||||
try testArgs(u512, 0xee49e47a62b950bc81343b7b366a97c9, 0x47e01773722d8b2e22753c9dfd54b654);
|
||||
try testArgs(u512, 0xfd3b5abce7aa6c3e, 0x41499f2bb5d351a4);
|
||||
try testArgs(u512, 0xfa564872, 0x800b36f1);
|
||||
try testArgs(u512, 0xc1e2, 0x1c1b);
|
||||
try testArgs(u512, 0xca, 0xce);
|
||||
try testArgs(i513, 0xc9d82f9953db8ffc4cf00ecd83e4822b189ee0b352d138dc8cb6916437abb8b4f02907093baec52ff22e97da575d237683b8d0437bef44d713be92b388ea9b34, 0xa620aabe3562093f20baa48939b24b22fb15619fdd3facc52fd70d96b9412a1e1419179ce125dff72b3e951b1e14b7306c465979da023984c7810db8922720f4);
|
||||
try testArgs(u513, 0x2c2674b2b568987019aef3a765ca944548b46223c59ac4b000612680bfd2d82a4349c0a732866566a759b2063cb046899eb036e6183677c97cf5b86b81ef298a, 0xf8a0d50b6eb1d8836f9a09669f7bb029ac84e6a30aeeb3b98d35f661365b169d92c5203a620392aafcc4e553c853cc6253f583697d17efe5962426a5d25812b6);
|
||||
try testArgs(i1023, 0x2b0855ad94ed6b38b86bd4f47d46b7f3327973db45cc0df95e5efe39d20289bacbb0da3fa026a025a255e018ad1f226d7d82dd97764da5340671edc853f24870f76369665fddd0b321ab27e760c92f471cff66fb6d2e3809090b1f2151ee167f5d636294090f2e8b6782ba294955ec6f519bd1b218ae5a0b727dc08750199a9a, -0x30a6d27cd01873a3d0130c1cc1563e5d5945b1832002eebf20e440c4675aef4a2bb83fcf48a4df984b00a0d00f9a1d2599ec1901f07106cb500df087b23a4ba80fc92d9acd2443b47cd730039567fbd664da7eae91a64fc5b8d0a9ff2738bc029e7414481e39246cbf5d8dca8accfbd3b751af4b82e8b13b8a9800bfe7ac35aa);
|
||||
try testArgs(u1023, 0x233481dcc97d64b5d0cffc40eb47a0bec1b0a49d3055f82ec1c7ecf3d284b975383f3f685bdff1ffba80340c5226ee66b23db8920b8ca127a0d742e392f2ec737f9de572a46cae192525515d841aee3d91b40fd93cbf4e7e41add2db25621479bf15dd1290d890dee4bb7eb79e7358e12e0d64c4f1ed0858fdf4a67fd26f0ea5, 0x1e27b20c220caa431ba26fc50fe90f0289b747c9a3dc5a7b673024e9f7b485030340b9211a221c1c8417df94aac2b42282adcf8d54f2bed181d0b8a0d0fea377a80da6533839d1be54ffa843f34a33dbfa88cf52888bae6a7b10ce2dcfddbcb68d976f70c4b6e68abc8d92deca7c4b37ad064f128b681d9ba895df71367572bf);
|
||||
try testArgs(i1024, -0x137015bff1717bca41f285c53e187493bac81d511af55cdc06cb0d2b0e3c36b342e27bfff765640306762b083c8ad1b3107ccbd41d9c23f5ddde6a2335ffa5772e38f10c696648076e6d76f909e0762e8cd77c1304c5ad9287fce0a935b2775ee847807e9e97813e5f364a5e1620705d8418fb6c514fb04b5960374c0c18510d, 0x146d13ca9df4cf3b25a2a672976bd3c3937da3499f2159c91f4a2cca94615861edea601c2f2834298f2ce37e920955da22087f90b18588d702fc30bfc40e675a2de110c71d700d493940fe8bef015519c7504a4c31270cdac7e8cbd25d0fbd41210a8378418cd629598bcc0bcee0cb3ccddf610279f8fefc7ac888c87417d032);
|
||||
try testArgs(i1024, 0xd83f224590913fb67cc89d8ad81cb1c3de695264caa3dbf76b078e6ac17bd66ffc149fd86655533fba5a99597845ff1d39cc0a9404f44a04e72bc90a51753d4, -0x5a9e0bd515b1aa0ecb14ac5088a63d7119574117906452b398a6860264d67a197047bf7c7caba6bfe4b1caddf72aa9a62c514a38d62c772e3b32e414f8fbe48c);
|
||||
try testArgs(i1024, 0x6a52214d12e6197115dde2e468549775a813622878cf627e113fb0d14c0e735a, 0x2687c3cc5648d62360351b9c691fb44ca9756725e1902f38439f54ef7ebbb71d);
|
||||
try testArgs(i1024, 0x5e69fa24e8d1534b9580b93713da0c26, -0x463e791749036d4f363d72cc641d4be6);
|
||||
try testArgs(i1024, -0x42d1c92c40110265, -0x3e2839e81df03bcf);
|
||||
try testArgs(i1024, -0x40f8b9ec, -0x9383cb9);
|
||||
try testArgs(i1024, -0x3f68, 0x2b0a);
|
||||
try testArgs(i1024, 0x55, -0x2f);
|
||||
try testArgs(u1024, 0xa4d16d6ed18fabb8f40bb47c15cfdabf1aa028f63cd686f5306fe66c9b8df0a9b5a1d04684c1f4d2790a4c5cb290104830b09229ab399e1e2078fae3075411aae93cd0e53ee431c18b3c5b2994e65ee324d0b07c625bcea92ad625a3111238012b4241fcc43e080ae8602e12cfd28fab477cc6ba0cb715ad91cf948e8966875e, 0x4f24a51e9b8832135cdcc7b2214a07ca65e100214e801b6ea6c1f07ca21a368fd1fb4699ced16386e806d10bacc4fd2cf08515af8964dfba853491032d1f014508051e9f362036aa2d8b1f6073efc6afd24ac5bd3ff4c13adfd20b71c4d6dcbfe58d8816017431754a92a7f9a7b00eae7304e5869bb85332575932d57d866c52);
|
||||
try testArgs(u1024, 0xa915e1376dc9e86cc0fe5c30f9fc3b02ae7bad6399fdc83e7f44e8dca57ffb0e96ecf26cb4bcf53cb693e78724569649f82ddb906e397a6e0e943fdf526349b4, 0x723228d9c145ff5e85531cad1cd242b47d89d5f1f3ff5d4c489d87ffdd14019c8d34529af5eea41b8b7a8022039cb19918d8bbd93a8a837ff9cab0c9c8ed0394);
|
||||
try testArgs(u1024, 0x432521876840200ca29b4f3754b73e708b6e076567a0a3747f04a88c41cb521a, 0x526b6f65adda401970de76f1aa36d214276eed9e3a983bdbb9fbc09e569ac5b);
|
||||
try testArgs(u1024, 0x2aacc04d41f16a1875d053bfe80946a9, 0x3d3f2001a89ed5d669e31efd382224d7);
|
||||
try testArgs(u1024, 0xea8bdcdb86fd43d2, 0xc26836cfb52165b6);
|
||||
try testArgs(u1024, 0x2c52ee51, 0xe92272b7);
|
||||
try testArgs(u1024, 0x7bf2, 0x9594);
|
||||
try testArgs(u1024, 0x4, 0x3b);
|
||||
try testArgs(i1025, -0x11cdd501bbb1002a7ce8b43ca4ed3725f30482b743aa8740eaa141e93b8cc1802a96347181471742ece35d8ca0a4987630b070051ee758261dfce16446ba6720902e649015757e6f3028fdd9f76735ae162d4097cdee43f5ab227cf71502f584764710d2feea5afd6d60b3ebb93ffec1be94b3831b5728a4b633205803001efc, 0x65c59893de60d5191e5dfb76f6fb19012675a0eaa64cda290db6765fdae806485242a02233860a0f8aea048f33560e75acb99d32898ea3d29b996c004a7967fcf26fd5737f8d446fda6df6f359aadb0d055adf45b100afdd3d53481c2b6b955581baf065ff0043cd66a14bbc22e86eadbe80d0e001cfa48225a60abab7f439d7);
|
||||
try testArgs(u1025, 0x10061b3bb3ecd437af70c918d8b1b7d08808d4dbc1f35cfa9b831fa7128ceabb33b95ea207213786ce37dd80aae327cc367d687c322bed44ce7aed76bda9a129f9e29558d0a452f2885f75aa43ec099ac6837b2be8f602d56d1ba237e3eb189439236fe2697e7d4021a029b2641f1afbbc9f187c83589db2603c54a67911edd42, 0x5faeb44e031124a6c00138457ba703ea2a40a9466a52e3080ef5671a9ce21a94a7571c323725cdf9ee6569f6d9734c24e0c4c5571310da755bc7b6f51567ba1f803f9b2dcd92bb69547744559e08f0275351902458b78b922a81a645035e3a75e8d7724d31c6845d665d74a7d6132335d0cfb936187fc0433a0bbd6c3e497290);
|
||||
}
|
||||
fn testFloats() !void {
|
||||
@setEvalBranchQuota(21_700);
|
||||
|
||||
+100
-44
@@ -193,20 +193,20 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u1025, undefined);
|
||||
}
|
||||
fn testInts() !void {
|
||||
try testArgs(i1, -1);
|
||||
try testArgs(i1, -1 << 0);
|
||||
try testArgs(i1, 0);
|
||||
try testArgs(u1, 0);
|
||||
try testArgs(u1, 1 << 0);
|
||||
|
||||
try testArgs(i2, -1 << 1);
|
||||
try testArgs(i2, -1);
|
||||
try testArgs(i2, -1 << 0);
|
||||
try testArgs(i2, 0);
|
||||
try testArgs(u2, 0);
|
||||
try testArgs(u2, 1 << 0);
|
||||
try testArgs(u2, 1 << 1);
|
||||
|
||||
try testArgs(i3, -1 << 2);
|
||||
try testArgs(i3, -1);
|
||||
try testArgs(i3, -1 << 0);
|
||||
try testArgs(i3, 0);
|
||||
try testArgs(u3, 0);
|
||||
try testArgs(u3, 1 << 0);
|
||||
@@ -214,7 +214,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u3, 1 << 2);
|
||||
|
||||
try testArgs(i4, -1 << 3);
|
||||
try testArgs(i4, -1);
|
||||
try testArgs(i4, -1 << 0);
|
||||
try testArgs(i4, 0);
|
||||
try testArgs(u4, 0);
|
||||
try testArgs(u4, 1 << 0);
|
||||
@@ -223,7 +223,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u4, 1 << 3);
|
||||
|
||||
try testArgs(i5, -1 << 4);
|
||||
try testArgs(i5, -1);
|
||||
try testArgs(i5, -1 << 0);
|
||||
try testArgs(i5, 0);
|
||||
try testArgs(u5, 0);
|
||||
try testArgs(u5, 1 << 0);
|
||||
@@ -232,7 +232,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u5, 1 << 4);
|
||||
|
||||
try testArgs(i7, -1 << 6);
|
||||
try testArgs(i7, -1);
|
||||
try testArgs(i7, -1 << 0);
|
||||
try testArgs(i7, 0);
|
||||
try testArgs(u7, 0);
|
||||
try testArgs(u7, 1 << 0);
|
||||
@@ -241,7 +241,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u7, 1 << 6);
|
||||
|
||||
try testArgs(i8, -1 << 7);
|
||||
try testArgs(i8, -1);
|
||||
try testArgs(i8, -1 << 0);
|
||||
try testArgs(i8, 0);
|
||||
try testArgs(u8, 0);
|
||||
try testArgs(u8, 1 << 0);
|
||||
@@ -250,7 +250,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u8, 1 << 7);
|
||||
|
||||
try testArgs(i9, -1 << 8);
|
||||
try testArgs(i9, -1);
|
||||
try testArgs(i9, -1 << 0);
|
||||
try testArgs(i9, 0);
|
||||
try testArgs(u9, 0);
|
||||
try testArgs(u9, 1 << 0);
|
||||
@@ -259,7 +259,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u9, 1 << 8);
|
||||
|
||||
try testArgs(i15, -1 << 14);
|
||||
try testArgs(i15, -1);
|
||||
try testArgs(i15, -1 << 0);
|
||||
try testArgs(i15, 0);
|
||||
try testArgs(u15, 0);
|
||||
try testArgs(u15, 1 << 0);
|
||||
@@ -268,16 +268,18 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u15, 1 << 14);
|
||||
|
||||
try testArgs(i16, -1 << 15);
|
||||
try testArgs(i16, -1);
|
||||
try testArgs(i16, -1 << 7);
|
||||
try testArgs(i16, -1 << 0);
|
||||
try testArgs(i16, 0);
|
||||
try testArgs(u16, 0);
|
||||
try testArgs(u16, 1 << 0);
|
||||
try testArgs(u16, 1 << 1);
|
||||
try testArgs(u16, 1 << 7);
|
||||
try testArgs(u16, 1 << 14);
|
||||
try testArgs(u16, 1 << 15);
|
||||
|
||||
try testArgs(i17, -1 << 16);
|
||||
try testArgs(i17, -1);
|
||||
try testArgs(i17, -1 << 0);
|
||||
try testArgs(i17, 0);
|
||||
try testArgs(u17, 0);
|
||||
try testArgs(u17, 1 << 0);
|
||||
@@ -286,7 +288,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u17, 1 << 16);
|
||||
|
||||
try testArgs(i31, -1 << 30);
|
||||
try testArgs(i31, -1);
|
||||
try testArgs(i31, -1 << 0);
|
||||
try testArgs(i31, 0);
|
||||
try testArgs(u31, 0);
|
||||
try testArgs(u31, 1 << 0);
|
||||
@@ -295,16 +297,20 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u31, 1 << 30);
|
||||
|
||||
try testArgs(i32, -1 << 31);
|
||||
try testArgs(i32, -1);
|
||||
try testArgs(i32, -1 << 15);
|
||||
try testArgs(i32, -1 << 7);
|
||||
try testArgs(i32, -1 << 0);
|
||||
try testArgs(i32, 0);
|
||||
try testArgs(u32, 0);
|
||||
try testArgs(u32, 1 << 0);
|
||||
try testArgs(u32, 1 << 1);
|
||||
try testArgs(u32, 1 << 7);
|
||||
try testArgs(u32, 1 << 15);
|
||||
try testArgs(u32, 1 << 30);
|
||||
try testArgs(u32, 1 << 31);
|
||||
|
||||
try testArgs(i33, -1 << 32);
|
||||
try testArgs(i33, -1);
|
||||
try testArgs(i33, -1 << 0);
|
||||
try testArgs(i33, 0);
|
||||
try testArgs(u33, 0);
|
||||
try testArgs(u33, 1 << 0);
|
||||
@@ -313,7 +319,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u33, 1 << 32);
|
||||
|
||||
try testArgs(i63, -1 << 62);
|
||||
try testArgs(i63, -1);
|
||||
try testArgs(i63, -1 << 0);
|
||||
try testArgs(i63, 0);
|
||||
try testArgs(u63, 0);
|
||||
try testArgs(u63, 1 << 0);
|
||||
@@ -322,16 +328,22 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u63, 1 << 62);
|
||||
|
||||
try testArgs(i64, -1 << 63);
|
||||
try testArgs(i64, -1);
|
||||
try testArgs(i64, -1 << 31);
|
||||
try testArgs(i64, -1 << 15);
|
||||
try testArgs(i64, -1 << 7);
|
||||
try testArgs(i64, -1 << 0);
|
||||
try testArgs(i64, 0);
|
||||
try testArgs(u64, 0);
|
||||
try testArgs(u64, 1 << 0);
|
||||
try testArgs(u64, 1 << 1);
|
||||
try testArgs(u64, 1 << 7);
|
||||
try testArgs(u64, 1 << 15);
|
||||
try testArgs(u64, 1 << 31);
|
||||
try testArgs(u64, 1 << 62);
|
||||
try testArgs(u64, 1 << 63);
|
||||
|
||||
try testArgs(i65, -1 << 64);
|
||||
try testArgs(i65, -1);
|
||||
try testArgs(i65, -1 << 0);
|
||||
try testArgs(i65, 0);
|
||||
try testArgs(u65, 0);
|
||||
try testArgs(u65, 1 << 0);
|
||||
@@ -340,7 +352,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u65, 1 << 64);
|
||||
|
||||
try testArgs(i95, -1 << 94);
|
||||
try testArgs(i95, -1);
|
||||
try testArgs(i95, -1 << 0);
|
||||
try testArgs(i95, 0);
|
||||
try testArgs(u95, 0);
|
||||
try testArgs(u95, 1 << 0);
|
||||
@@ -349,7 +361,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u95, 1 << 94);
|
||||
|
||||
try testArgs(i96, -1 << 95);
|
||||
try testArgs(i96, -1);
|
||||
try testArgs(i96, -1 << 0);
|
||||
try testArgs(i96, 0);
|
||||
try testArgs(u96, 0);
|
||||
try testArgs(u96, 1 << 0);
|
||||
@@ -358,7 +370,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u96, 1 << 95);
|
||||
|
||||
try testArgs(i97, -1 << 96);
|
||||
try testArgs(i97, -1);
|
||||
try testArgs(i97, -1 << 0);
|
||||
try testArgs(i97, 0);
|
||||
try testArgs(u97, 0);
|
||||
try testArgs(u97, 1 << 0);
|
||||
@@ -367,7 +379,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u97, 1 << 96);
|
||||
|
||||
try testArgs(i127, -1 << 126);
|
||||
try testArgs(i127, -1);
|
||||
try testArgs(i127, -1 << 0);
|
||||
try testArgs(i127, 0);
|
||||
try testArgs(u127, 0);
|
||||
try testArgs(u127, 1 << 0);
|
||||
@@ -376,16 +388,24 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u127, 1 << 126);
|
||||
|
||||
try testArgs(i128, -1 << 127);
|
||||
try testArgs(i128, -1);
|
||||
try testArgs(i128, -1 << 63);
|
||||
try testArgs(i128, -1 << 31);
|
||||
try testArgs(i128, -1 << 15);
|
||||
try testArgs(i128, -1 << 7);
|
||||
try testArgs(i128, -1 << 0);
|
||||
try testArgs(i128, 0);
|
||||
try testArgs(u128, 0);
|
||||
try testArgs(u128, 1 << 0);
|
||||
try testArgs(u128, 1 << 1);
|
||||
try testArgs(u128, 1 << 7);
|
||||
try testArgs(u128, 1 << 15);
|
||||
try testArgs(u128, 1 << 31);
|
||||
try testArgs(u128, 1 << 63);
|
||||
try testArgs(u128, 1 << 126);
|
||||
try testArgs(u128, 1 << 127);
|
||||
|
||||
try testArgs(i129, -1 << 128);
|
||||
try testArgs(i129, -1);
|
||||
try testArgs(i129, -1 << 0);
|
||||
try testArgs(i129, 0);
|
||||
try testArgs(u129, 0);
|
||||
try testArgs(u129, 1 << 0);
|
||||
@@ -394,7 +414,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u129, 1 << 128);
|
||||
|
||||
try testArgs(i159, -1 << 158);
|
||||
try testArgs(i159, -1);
|
||||
try testArgs(i159, -1 << 0);
|
||||
try testArgs(i159, 0);
|
||||
try testArgs(u159, 0);
|
||||
try testArgs(u159, 1 << 0);
|
||||
@@ -403,7 +423,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u159, 1 << 158);
|
||||
|
||||
try testArgs(i160, -1 << 159);
|
||||
try testArgs(i160, -1);
|
||||
try testArgs(i160, -1 << 0);
|
||||
try testArgs(i160, 0);
|
||||
try testArgs(u160, 0);
|
||||
try testArgs(u160, 1 << 0);
|
||||
@@ -412,7 +432,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u160, 1 << 159);
|
||||
|
||||
try testArgs(i161, -1 << 160);
|
||||
try testArgs(i161, -1);
|
||||
try testArgs(i161, -1 << 0);
|
||||
try testArgs(i161, 0);
|
||||
try testArgs(u161, 0);
|
||||
try testArgs(u161, 1 << 0);
|
||||
@@ -421,7 +441,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u161, 1 << 160);
|
||||
|
||||
try testArgs(i191, -1 << 190);
|
||||
try testArgs(i191, -1);
|
||||
try testArgs(i191, -1 << 0);
|
||||
try testArgs(i191, 0);
|
||||
try testArgs(u191, 0);
|
||||
try testArgs(u191, 1 << 0);
|
||||
@@ -430,7 +450,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u191, 1 << 190);
|
||||
|
||||
try testArgs(i192, -1 << 191);
|
||||
try testArgs(i192, -1);
|
||||
try testArgs(i192, -1 << 0);
|
||||
try testArgs(i192, 0);
|
||||
try testArgs(u192, 0);
|
||||
try testArgs(u192, 1 << 0);
|
||||
@@ -439,7 +459,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u192, 1 << 191);
|
||||
|
||||
try testArgs(i193, -1 << 192);
|
||||
try testArgs(i193, -1);
|
||||
try testArgs(i193, -1 << 0);
|
||||
try testArgs(i193, 0);
|
||||
try testArgs(u193, 0);
|
||||
try testArgs(u193, 1 << 0);
|
||||
@@ -448,7 +468,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u193, 1 << 192);
|
||||
|
||||
try testArgs(i223, -1 << 222);
|
||||
try testArgs(i223, -1);
|
||||
try testArgs(i223, -1 << 0);
|
||||
try testArgs(i223, 0);
|
||||
try testArgs(u223, 0);
|
||||
try testArgs(u223, 1 << 0);
|
||||
@@ -457,7 +477,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u223, 1 << 222);
|
||||
|
||||
try testArgs(i224, -1 << 223);
|
||||
try testArgs(i224, -1);
|
||||
try testArgs(i224, -1 << 0);
|
||||
try testArgs(i224, 0);
|
||||
try testArgs(u224, 0);
|
||||
try testArgs(u224, 1 << 0);
|
||||
@@ -466,7 +486,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u224, 1 << 223);
|
||||
|
||||
try testArgs(i225, -1 << 224);
|
||||
try testArgs(i225, -1);
|
||||
try testArgs(i225, -1 << 0);
|
||||
try testArgs(i225, 0);
|
||||
try testArgs(u225, 0);
|
||||
try testArgs(u225, 1 << 0);
|
||||
@@ -475,7 +495,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u225, 1 << 224);
|
||||
|
||||
try testArgs(i255, -1 << 254);
|
||||
try testArgs(i255, -1);
|
||||
try testArgs(i255, -1 << 0);
|
||||
try testArgs(i255, 0);
|
||||
try testArgs(u255, 0);
|
||||
try testArgs(u255, 1 << 0);
|
||||
@@ -484,16 +504,26 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u255, 1 << 254);
|
||||
|
||||
try testArgs(i256, -1 << 255);
|
||||
try testArgs(i256, -1);
|
||||
try testArgs(i256, -1 << 127);
|
||||
try testArgs(i256, -1 << 63);
|
||||
try testArgs(i256, -1 << 31);
|
||||
try testArgs(i256, -1 << 15);
|
||||
try testArgs(i256, -1 << 7);
|
||||
try testArgs(i256, -1 << 0);
|
||||
try testArgs(i256, 0);
|
||||
try testArgs(u256, 0);
|
||||
try testArgs(u256, 1 << 0);
|
||||
try testArgs(u256, 1 << 1);
|
||||
try testArgs(u256, 1 << 7);
|
||||
try testArgs(u256, 1 << 15);
|
||||
try testArgs(u256, 1 << 31);
|
||||
try testArgs(u256, 1 << 63);
|
||||
try testArgs(u256, 1 << 127);
|
||||
try testArgs(u256, 1 << 254);
|
||||
try testArgs(u256, 1 << 255);
|
||||
|
||||
try testArgs(i257, -1 << 256);
|
||||
try testArgs(i257, -1);
|
||||
try testArgs(i257, -1 << 0);
|
||||
try testArgs(i257, 0);
|
||||
try testArgs(u257, 0);
|
||||
try testArgs(u257, 1 << 0);
|
||||
@@ -502,7 +532,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u257, 1 << 256);
|
||||
|
||||
try testArgs(i383, -1 << 382);
|
||||
try testArgs(i383, -1);
|
||||
try testArgs(i383, -1 << 0);
|
||||
try testArgs(i383, 0);
|
||||
try testArgs(u383, 0);
|
||||
try testArgs(u383, 1 << 0);
|
||||
@@ -511,7 +541,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u383, 1 << 382);
|
||||
|
||||
try testArgs(i384, -1 << 383);
|
||||
try testArgs(i384, -1);
|
||||
try testArgs(i384, -1 << 0);
|
||||
try testArgs(i384, 0);
|
||||
try testArgs(u384, 0);
|
||||
try testArgs(u384, 1 << 0);
|
||||
@@ -520,7 +550,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u384, 1 << 383);
|
||||
|
||||
try testArgs(i385, -1 << 384);
|
||||
try testArgs(i385, -1);
|
||||
try testArgs(i385, -1 << 0);
|
||||
try testArgs(i385, 0);
|
||||
try testArgs(u385, 0);
|
||||
try testArgs(u385, 1 << 0);
|
||||
@@ -529,7 +559,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u385, 1 << 384);
|
||||
|
||||
try testArgs(i511, -1 << 510);
|
||||
try testArgs(i511, -1);
|
||||
try testArgs(i511, -1 << 0);
|
||||
try testArgs(i511, 0);
|
||||
try testArgs(u511, 0);
|
||||
try testArgs(u511, 1 << 0);
|
||||
@@ -538,16 +568,28 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u511, 1 << 510);
|
||||
|
||||
try testArgs(i512, -1 << 511);
|
||||
try testArgs(i512, -1);
|
||||
try testArgs(i512, -1 << 255);
|
||||
try testArgs(i512, -1 << 127);
|
||||
try testArgs(i512, -1 << 63);
|
||||
try testArgs(i512, -1 << 31);
|
||||
try testArgs(i512, -1 << 15);
|
||||
try testArgs(i512, -1 << 7);
|
||||
try testArgs(i512, -1 << 0);
|
||||
try testArgs(i512, 0);
|
||||
try testArgs(u512, 0);
|
||||
try testArgs(u512, 1 << 0);
|
||||
try testArgs(u512, 1 << 1);
|
||||
try testArgs(u512, 1 << 7);
|
||||
try testArgs(u512, 1 << 15);
|
||||
try testArgs(u512, 1 << 31);
|
||||
try testArgs(u512, 1 << 63);
|
||||
try testArgs(u512, 1 << 127);
|
||||
try testArgs(u512, 1 << 255);
|
||||
try testArgs(u512, 1 << 510);
|
||||
try testArgs(u512, 1 << 511);
|
||||
|
||||
try testArgs(i513, -1 << 512);
|
||||
try testArgs(i513, -1);
|
||||
try testArgs(i513, -1 << 0);
|
||||
try testArgs(i513, 0);
|
||||
try testArgs(u513, 0);
|
||||
try testArgs(u513, 1 << 0);
|
||||
@@ -556,7 +598,7 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u513, 1 << 512);
|
||||
|
||||
try testArgs(i1023, -1 << 1022);
|
||||
try testArgs(i1023, -1);
|
||||
try testArgs(i1023, -1 << 0);
|
||||
try testArgs(i1023, 0);
|
||||
try testArgs(u1023, 0);
|
||||
try testArgs(u1023, 1 << 0);
|
||||
@@ -565,16 +607,30 @@ fn unary(comptime op: anytype, comptime opts: struct {
|
||||
try testArgs(u1023, 1 << 1022);
|
||||
|
||||
try testArgs(i1024, -1 << 1023);
|
||||
try testArgs(i1024, -1);
|
||||
try testArgs(i1024, -1 << 511);
|
||||
try testArgs(i1024, -1 << 255);
|
||||
try testArgs(i1024, -1 << 127);
|
||||
try testArgs(i1024, -1 << 63);
|
||||
try testArgs(i1024, -1 << 31);
|
||||
try testArgs(i1024, -1 << 15);
|
||||
try testArgs(i1024, -1 << 7);
|
||||
try testArgs(i1024, -1 << 0);
|
||||
try testArgs(i1024, 0);
|
||||
try testArgs(u1024, 0);
|
||||
try testArgs(u1024, 1 << 0);
|
||||
try testArgs(u1024, 1 << 1);
|
||||
try testArgs(u1024, 1 << 7);
|
||||
try testArgs(u1024, 1 << 15);
|
||||
try testArgs(u1024, 1 << 31);
|
||||
try testArgs(u1024, 1 << 63);
|
||||
try testArgs(u1024, 1 << 127);
|
||||
try testArgs(u1024, 1 << 255);
|
||||
try testArgs(u1024, 1 << 511);
|
||||
try testArgs(u1024, 1 << 1022);
|
||||
try testArgs(u1024, 1 << 1023);
|
||||
|
||||
try testArgs(i1025, -1 << 1024);
|
||||
try testArgs(i1025, -1);
|
||||
try testArgs(i1025, -1 << 0);
|
||||
try testArgs(i1025, 0);
|
||||
try testArgs(u1025, 0);
|
||||
try testArgs(u1025, 1 << 0);
|
||||
|
||||
Reference in New Issue
Block a user