Commit c58e60a042
Changed files (6)
lib
std
math
src
arch
x86_64
test
behavior
x86_64
lib/std/math/big/int.zig
@@ -1793,9 +1793,13 @@ pub const Mutable = struct {
/// The upper bound is `calcTwosCompLimbCount(a.len)`.
pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
const req_limbs = calcTwosCompLimbCount(bit_count);
+ const abs_trunc_a: Const = .{
+ .positive = true,
+ .limbs = a.limbs[0..@min(a.limbs.len, req_limbs)],
+ };
// Handle 0-bit integers.
- if (req_limbs == 0 or a.eqlZero()) {
+ if (req_limbs == 0 or abs_trunc_a.eqlZero()) {
r.set(0);
return;
}
@@ -1810,15 +1814,10 @@ pub const Mutable = struct {
// Note, we simply take req_limbs * @bitSizeOf(Limb) as the
// target bit count.
- r.addScalar(a.abs(), -1);
+ r.addScalar(abs_trunc_a, -1);
// Zero-extend the result
- if (req_limbs > r.len) {
- @memset(r.limbs[r.len..req_limbs], 0);
- }
-
- // Truncate to required number of limbs.
- assert(r.limbs.len >= req_limbs);
+ @memset(r.limbs[r.len..req_limbs], 0);
r.len = req_limbs;
// Without truncating, we can already peek at the sign bit of the result here.
@@ -1846,16 +1845,10 @@ pub const Mutable = struct {
r.normalize(r.len);
}
} else {
- if (a.limbs.len < req_limbs) {
- // Integer fits within target bits, no wrapping required.
- r.copy(a);
- return;
- }
+ r.copy(abs_trunc_a);
+ // If the integer fits within target bits, no wrapping is required.
+ if (r.len < req_limbs) return;
- r.copy(.{
- .positive = a.positive,
- .limbs = a.limbs[0..req_limbs],
- });
r.limbs[r.len - 1] &= mask;
r.normalize(r.len);
lib/std/math/big/int_test.zig
@@ -1934,6 +1934,31 @@ test "truncate multi unsigned many" {
try testing.expect((try b.toInt(i1)) == 0);
}
+test "truncate to mutable with fewer limbs" {
+ var res_limbs: [1]Limb = undefined;
+ var res: Mutable = .{
+ .limbs = &res_limbs,
+ .len = undefined,
+ .positive = undefined,
+ };
+ res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
+ try testing.expect(res.eqlZero());
+ res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
+ try testing.expect(res.eqlZero());
+ res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
+ try testing.expect(res.eqlZero());
+ res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
+ try testing.expect(res.eqlZero());
+ res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
+ try testing.expect(res.toConst().orderAgainstScalar(std.math.maxInt(Limb)).compare(.eq));
+ res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
+ try testing.expect(res.toConst().orderAgainstScalar(-1).compare(.eq));
+ res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
+ try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
+ res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
+ try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
+}
+
test "saturate single signed positive" {
var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);
defer a.deinit();
src/arch/x86_64/bits.zig
@@ -702,6 +702,7 @@ pub const Memory = struct {
pub const Size = enum(u4) {
none,
ptr,
+ gpr,
byte,
word,
dword,
@@ -742,6 +743,11 @@ pub const Memory = struct {
return switch (s) {
.none => 0,
.ptr => target.ptrBitWidth(),
+ .gpr => switch (target.cpu.arch) {
+ else => unreachable,
+ .x86 => 32,
+ .x86_64 => 64,
+ },
.byte => 8,
.word => 16,
.dword => 32,
@@ -763,7 +769,7 @@ pub const Memory = struct {
try writer.writeAll(@tagName(s));
switch (s) {
.none => unreachable,
- .ptr => {},
+ .ptr, .gpr => {},
else => {
try writer.writeByte(' ');
try writer.writeAll("ptr");
src/arch/x86_64/CodeGen.zig
@@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}
fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
- @setEvalBranchQuota(4_500);
+ @setEvalBranchQuota(4_600);
const pt = cg.pt;
const zcu = pt.zcu;
const ip = &zcu.intern_pool;
@@ -2499,7 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
.cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst),
.bitcast => try cg.airBitCast(inst),
- .trunc => try cg.airTrunc(inst),
.is_non_null => try cg.airIsNonNull(inst),
.is_null => try cg.airIsNull(inst),
.is_non_err => try cg.airIsNonErr(inst),
@@ -25507,7 +25506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{ .{ .signed_int = .byte }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25564,7 +25563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.src_constraints = .{ .{ .signed_int = .byte }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25667,7 +25666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{ .{ .signed_int = .word }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25724,7 +25723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.src_constraints = .{ .{ .signed_int = .word }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25805,7 +25804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{ .{ .signed_int = .dword }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25862,7 +25861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.src_constraints = .{ .{ .signed_int = .dword }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25919,7 +25918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{ .{ .signed_int = .qword }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
.patterns = &.{
.{ .src = .{ .mem, .none } },
.{ .src = .{ .to_gpr, .none } },
@@ -25976,8 +25975,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
} },
}, .{
.required_features = .{ .@"64bit", null, null, null },
- .src_constraints = .{ .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }, .any },
- .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
+ .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
.patterns = &.{
.{ .src = .{ .to_mem, .none } },
},
@@ -28855,6 +28854,524 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
};
try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
},
+ .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else fallback: {
+ const ty_op = air_datas[@intFromEnum(inst)].ty_op;
+ if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airTrunc(inst);
+ var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
+ var res: [1]Temp = undefined;
+ cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{
+ .src_constraints = .{ .{ .signed_int = .gpr }, .any },
+ .dst_constraints = .{.{ .exact_signed_int = 1 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ },
+ .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .exact_signed_int = 1 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
+ .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ },
+ .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .int = .gpr }, .any },
+ .dst_constraints = .{.{ .exact_int = 8 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .each = .{ .once = &.{} },
+ }, .{
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .exact_signed_int = 8 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .exact_unsigned_int = 8 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .signed_int = .gpr }, .any },
+ .dst_constraints = .{.{ .signed_int = .byte }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
+ .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
+ .dst_constraints = .{.{ .unsigned_int = .byte }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_int, .any },
+ .dst_constraints = .{.{ .unsigned_int = .byte }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
+ .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .int = .gpr }, .any },
+ .dst_constraints = .{.{ .exact_int = 16 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .each = .{ .once = &.{} },
+ }, .{
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .exact_signed_int = 16 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .exact_unsigned_int = 16 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .fast_imm16, null, null, null },
+ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
+ .dst_constraints = .{.{ .unsigned_int = .word }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .fast_imm16, null, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .unsigned_int = .word }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ },
+ .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .int = .gpr }, .any },
+ .dst_constraints = .{.{ .exact_int = 32 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .each = .{ .once = &.{} },
+ }, .{
+ .src_constraints = .{ .any_int, .any },
+ .dst_constraints = .{.{ .exact_int = 32 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .signed_int = .gpr }, .any },
+ .dst_constraints = .{.{ .signed_int = .dword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
+ .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .signed_int = .dword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
+ .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
+ .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
+ .dst_constraints = .{.{ .unsigned_int = .dword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .unsigned_int = .dword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
+ .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_int, .any },
+ .dst_constraints = .{.{ .exact_int = 64 }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .signed_int = .gpr }, .any },
+ .dst_constraints = .{.{ .signed_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mut_gpr, .none } },
+ },
+ .dst_temps = .{.{ .ref = .src0 }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
+ .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .signed_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ },
+ .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
+ .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .bmi2, null, null },
+ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
+ .dst_constraints = .{.{ .unsigned_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .mem, .none } },
+ .{ .src = .{ .to_gpr, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", .bmi2, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .unsigned_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ },
+ .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
+ .dst_constraints = .{.{ .unsigned_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .mem, .none } },
+ .{ .src = .{ .to_gpr, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .unsigned_int = .qword }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .dst_temps = .{.{ .rc = .general_purpose }},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_int, .any },
+ .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
+ .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
+ .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
+ .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
+ .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_signed_int, .any },
+ .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ },
+ .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
+ .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
+ } },
+ }, .{
+ .required_features = .{ .@"64bit", null, null, null },
+ .src_constraints = .{ .any_unsigned_int, .any },
+ .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }},
+ .patterns = &.{
+ .{ .src = .{ .to_mem, .none } },
+ },
+ .extra_temps = .{
+ .{ .type = .usize, .kind = .{ .reg = .rsi } },
+ .{ .type = .usize, .kind = .{ .reg = .rdi } },
+ .{ .type = .u32, .kind = .{ .reg = .ecx } },
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ .unused,
+ },
+ .dst_temps = .{.mem},
+ .clobbers = .{ .eflags = true },
+ .each = .{ .once = &.{
+ .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
+ .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
+ .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
+ .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
+ .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ },
+ .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ },
+ .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
+ } },
+ } }) catch |err| switch (err) {
+ error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
+ @tagName(air_tag),
+ ty_op.ty.toType().fmt(pt),
+ cg.typeOf(ty_op.operand).fmt(pt),
+ ops[0].tracking(cg),
+ }),
+ else => |e| return e,
+ };
+ try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
+ },
.optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else {
const ty_op = air_datas[@intFromEnum(inst)].ty_op;
const ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
@@ -48551,8 +49068,8 @@ const Temp = struct {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{
- .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },
- .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
+ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem } },
@@ -48583,8 +49100,8 @@ const Temp = struct {
}, .{
.required_features = .{ .@"64bit", null, null, null },
.src_constraints = .{
- .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },
- .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },
+ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
+ .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem } },
@@ -48612,8 +49129,8 @@ const Temp = struct {
} },
}, .{
.src_constraints = .{
- .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },
- .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },
+ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
+ .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem } },
@@ -48643,8 +49160,8 @@ const Temp = struct {
} },
}, .{
.src_constraints = .{
- .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },
- .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },
+ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
+ .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
},
.patterns = &.{
.{ .src = .{ .to_mem, .to_mem } },
@@ -49536,6 +50053,7 @@ const Operand = union(enum) {
const Select = struct {
cg: *CodeGen,
+ types: [@intFromEnum(Select.Operand.Ref.none)]Type,
temps: [@intFromEnum(Select.Operand.Ref.none)]Temp,
labels: [@intFromEnum(Label._)]struct {
backward: ?Mir.Inst.Index,
@@ -49762,9 +50280,11 @@ const Select = struct {
signed_po2_int: Memory.Size,
unsigned_po2_or_exact_int: Memory.Size,
remainder_int: OfIsSizes,
- signed_remainder_int: OfIsSizes,
- unsigned_remainder_int: OfIsSizes,
+ remainder_signed_int: OfIsSizes,
+ remainder_unsigned_int: OfIsSizes,
exact_remainder_int: OfIsSizes,
+ exact_remainder_signed_int: OfIsSizes,
+ exact_remainder_unsigned_int: OfIsSizes,
signed_or_exact_remainder_int: OfIsSizes,
unsigned_or_exact_remainder_int: OfIsSizes,
signed_int: Memory.Size,
@@ -49878,14 +50398,18 @@ const Select = struct {
of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
else
false,
- .signed_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
+ .remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
- .unsigned_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
+ .remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
.exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|
of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
else
false,
+ .exact_remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
+ of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
+ .exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
+ of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
.signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
.signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
.unsigned => of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
@@ -50129,11 +50653,11 @@ const Select = struct {
.unused => unreachable,
.any => .{ try cg.tempAlloc(spec.type), true },
.cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },
- .ref => |ref| .{ ref.deref(s), false },
+ .ref => |ref| .{ ref.tempOf(s), false },
.reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },
.rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true },
.mut_rc => |ref_rc| {
- const temp = ref_rc.ref.deref(s);
+ const temp = ref_rc.ref.tempOf(s);
if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
.register => |reg| if (reg.class() == ref_rc.rc) return .{ temp, false },
.register_offset => |reg_off| if (reg_off.off == 0 and reg_off.reg.class() == ref_rc.rc) return .{ temp, false },
@@ -50141,10 +50665,10 @@ const Select = struct {
};
return .{ try cg.tempAllocReg(spec.type, regSetForRegClass(ref_rc.rc)), true };
},
- .ref_mask => |ref_mask| .{ ref_mask.ref.deref(s), false },
+ .ref_mask => |ref_mask| .{ ref_mask.ref.tempOf(s), false },
.rc_mask => |rc_mask| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc_mask.rc)), true },
.mut_rc_mask => |ref_rc_mask| {
- const temp = ref_rc_mask.ref.deref(s);
+ const temp = ref_rc_mask.ref.tempOf(s);
if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
.register => |reg| if (reg.class() == ref_rc_mask.rc) return .{ temp, false },
.register_offset => |reg_off| if (reg_off.off == 0 and reg_off.reg.class() == ref_rc_mask.rc) return .{ temp, false },
@@ -50157,7 +50681,7 @@ const Select = struct {
const pt = cg.pt;
const zcu = pt.zcu;
const ip = &zcu.intern_pool;
- const ty = const_info.ref.deref(s).typeOf(cg);
+ const ty = const_info.ref.typeOf(s);
const vector_len, const scalar_ty: Type = switch (ip.indexToKey(ty.toIntern())) {
else => .{ null, ty },
.vector_type => |vector_type| .{ vector_type.len, .fromInterned(vector_type.child) },
@@ -50246,7 +50770,7 @@ const Select = struct {
flags: packed struct(u16) {
tag: Tag,
adjust: Adjust = .none,
- unused: u4 = 0,
+ unused: u3 = 0,
},
base: Ref.Sized = .none,
index: packed struct(u6) {
@@ -50265,7 +50789,7 @@ const Select = struct {
lea,
mem,
};
- const Adjust = packed struct(u9) {
+ const Adjust = packed struct(u10) {
sign: enum(u1) { neg, pos },
lhs: enum(u5) {
none,
@@ -50288,7 +50812,7 @@ const Select = struct {
smax,
umax,
},
- op: enum(u1) { mul, div },
+ op: enum(u2) { mul, div, rem_8_mul },
rhs: Memory.Scale,
const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };
@@ -50308,6 +50832,7 @@ const Select = struct {
const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
+ const sub_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
@@ -50356,6 +50881,7 @@ const Select = struct {
const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };
const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };
const tmp0p: Sized = .{ .ref = .tmp0, .size = .ptr };
+ const tmp0g: Sized = .{ .ref = .tmp0, .size = .gpr };
const tmp0q: Sized = .{ .ref = .tmp0, .size = .qword };
const tmp0t: Sized = .{ .ref = .tmp0, .size = .tbyte };
const tmp0x: Sized = .{ .ref = .tmp0, .size = .xword };
@@ -50366,6 +50892,7 @@ const Select = struct {
const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };
const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };
const tmp1p: Sized = .{ .ref = .tmp1, .size = .ptr };
+ const tmp1g: Sized = .{ .ref = .tmp1, .size = .gpr };
const tmp1q: Sized = .{ .ref = .tmp1, .size = .qword };
const tmp1t: Sized = .{ .ref = .tmp1, .size = .tbyte };
const tmp1x: Sized = .{ .ref = .tmp1, .size = .xword };
@@ -50376,6 +50903,7 @@ const Select = struct {
const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };
const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };
const tmp2p: Sized = .{ .ref = .tmp2, .size = .ptr };
+ const tmp2g: Sized = .{ .ref = .tmp2, .size = .gpr };
const tmp2q: Sized = .{ .ref = .tmp2, .size = .qword };
const tmp2t: Sized = .{ .ref = .tmp2, .size = .tbyte };
const tmp2x: Sized = .{ .ref = .tmp2, .size = .xword };
@@ -50386,6 +50914,7 @@ const Select = struct {
const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };
const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };
const tmp3p: Sized = .{ .ref = .tmp3, .size = .ptr };
+ const tmp3g: Sized = .{ .ref = .tmp3, .size = .gpr };
const tmp3q: Sized = .{ .ref = .tmp3, .size = .qword };
const tmp3t: Sized = .{ .ref = .tmp3, .size = .tbyte };
const tmp3x: Sized = .{ .ref = .tmp3, .size = .xword };
@@ -50396,6 +50925,7 @@ const Select = struct {
const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };
const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };
const tmp4p: Sized = .{ .ref = .tmp4, .size = .ptr };
+ const tmp4g: Sized = .{ .ref = .tmp4, .size = .gpr };
const tmp4q: Sized = .{ .ref = .tmp4, .size = .qword };
const tmp4t: Sized = .{ .ref = .tmp4, .size = .tbyte };
const tmp4x: Sized = .{ .ref = .tmp4, .size = .xword };
@@ -50406,6 +50936,7 @@ const Select = struct {
const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };
const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };
const tmp5p: Sized = .{ .ref = .tmp5, .size = .ptr };
+ const tmp5g: Sized = .{ .ref = .tmp5, .size = .gpr };
const tmp5q: Sized = .{ .ref = .tmp5, .size = .qword };
const tmp5t: Sized = .{ .ref = .tmp5, .size = .tbyte };
const tmp5x: Sized = .{ .ref = .tmp5, .size = .xword };
@@ -50416,6 +50947,7 @@ const Select = struct {
const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };
const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };
const tmp6p: Sized = .{ .ref = .tmp6, .size = .ptr };
+ const tmp6g: Sized = .{ .ref = .tmp6, .size = .gpr };
const tmp6q: Sized = .{ .ref = .tmp6, .size = .qword };
const tmp6t: Sized = .{ .ref = .tmp6, .size = .tbyte };
const tmp6x: Sized = .{ .ref = .tmp6, .size = .xword };
@@ -50426,6 +50958,7 @@ const Select = struct {
const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };
const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };
const tmp7p: Sized = .{ .ref = .tmp7, .size = .ptr };
+ const tmp7g: Sized = .{ .ref = .tmp7, .size = .gpr };
const tmp7q: Sized = .{ .ref = .tmp7, .size = .qword };
const tmp7t: Sized = .{ .ref = .tmp7, .size = .tbyte };
const tmp7x: Sized = .{ .ref = .tmp7, .size = .xword };
@@ -50436,6 +50969,7 @@ const Select = struct {
const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };
const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };
const tmp8p: Sized = .{ .ref = .tmp8, .size = .ptr };
+ const tmp8g: Sized = .{ .ref = .tmp8, .size = .gpr };
const tmp8q: Sized = .{ .ref = .tmp8, .size = .qword };
const tmp8t: Sized = .{ .ref = .tmp8, .size = .tbyte };
const tmp8x: Sized = .{ .ref = .tmp8, .size = .xword };
@@ -50446,6 +50980,7 @@ const Select = struct {
const dst0w: Sized = .{ .ref = .dst0, .size = .word };
const dst0d: Sized = .{ .ref = .dst0, .size = .dword };
const dst0p: Sized = .{ .ref = .dst0, .size = .ptr };
+ const dst0g: Sized = .{ .ref = .dst0, .size = .gpr };
const dst0q: Sized = .{ .ref = .dst0, .size = .qword };
const dst0t: Sized = .{ .ref = .dst0, .size = .tbyte };
const dst0x: Sized = .{ .ref = .dst0, .size = .xword };
@@ -50456,6 +50991,7 @@ const Select = struct {
const src0w: Sized = .{ .ref = .src0, .size = .word };
const src0d: Sized = .{ .ref = .src0, .size = .dword };
const src0p: Sized = .{ .ref = .src0, .size = .ptr };
+ const src0g: Sized = .{ .ref = .src0, .size = .gpr };
const src0q: Sized = .{ .ref = .src0, .size = .qword };
const src0t: Sized = .{ .ref = .src0, .size = .tbyte };
const src0x: Sized = .{ .ref = .src0, .size = .xword };
@@ -50466,15 +51002,24 @@ const Select = struct {
const src1w: Sized = .{ .ref = .src1, .size = .word };
const src1d: Sized = .{ .ref = .src1, .size = .dword };
const src1p: Sized = .{ .ref = .src1, .size = .ptr };
+ const src1g: Sized = .{ .ref = .src1, .size = .gpr };
const src1q: Sized = .{ .ref = .src1, .size = .qword };
const src1t: Sized = .{ .ref = .src1, .size = .tbyte };
const src1x: Sized = .{ .ref = .src1, .size = .xword };
const src1y: Sized = .{ .ref = .src1, .size = .yword };
};
- fn deref(ref: Ref, s: *const Select) Temp {
+ fn typeOf(ref: Ref, s: *const Select) Type {
+ return s.types[@intFromEnum(ref)];
+ }
+
+ fn tempOf(ref: Ref, s: *const Select) Temp {
return s.temps[@intFromEnum(ref)];
}
+
+ fn valueOf(ref: Ref, s: *const Select) MCValue {
+ return s.temps[@intFromEnum(ref)].tracking(s.cg).short;
+ }
};
const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };
@@ -50490,6 +51035,7 @@ const Select = struct {
const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };
const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };
const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };
+ const tmp0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0g };
const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };
const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };
const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };
@@ -50499,6 +51045,7 @@ const Select = struct {
const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };
const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };
const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };
+ const tmp1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1g };
const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };
const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };
const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };
@@ -50508,6 +51055,7 @@ const Select = struct {
const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };
const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };
const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };
+ const tmp2g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2g };
const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };
const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };
const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };
@@ -50517,6 +51065,7 @@ const Select = struct {
const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };
const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };
const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };
+ const tmp3g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3g };
const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };
const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };
const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };
@@ -50526,6 +51075,7 @@ const Select = struct {
const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };
const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };
const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };
+ const tmp4g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4g };
const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };
const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };
const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };
@@ -50535,6 +51085,7 @@ const Select = struct {
const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };
const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };
const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };
+ const tmp5g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5g };
const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };
const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };
const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };
@@ -50544,6 +51095,7 @@ const Select = struct {
const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };
const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };
const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };
+ const tmp6g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6g };
const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };
const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };
const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };
@@ -50553,6 +51105,7 @@ const Select = struct {
const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };
const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };
const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };
+ const tmp7g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7g };
const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };
const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };
const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };
@@ -50562,6 +51115,7 @@ const Select = struct {
const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };
const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };
const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };
+ const tmp8g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8g };
const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };
const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };
const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };
@@ -50571,6 +51125,7 @@ const Select = struct {
const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };
const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };
const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };
+ const dst0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0g };
const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };
const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };
const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };
@@ -50580,6 +51135,7 @@ const Select = struct {
const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };
const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };
const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };
+ const src0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0g };
const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };
const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };
const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };
@@ -50589,6 +51145,7 @@ const Select = struct {
const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };
const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };
const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };
+ const src1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1g };
const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };
const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };
const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };
@@ -50786,36 +51343,36 @@ const Select = struct {
.none => 0,
.ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),
.ptr_bit_size => s.cg.target.ptrBitWidth(),
- .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)),
- .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))) -
- @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)))),
- .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
- @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
+ .size => @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)),
+ .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) -
+ @as(SignedImm, @intCast(op.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),
+ .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
+ @as(SignedImm, @intCast(op.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
.size_sub_elem_size => {
- const ty = op.base.ref.deref(s).typeOf(s.cg);
+ const ty = op.base.ref.typeOf(s);
break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
},
- .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.deref(s).typeOf(s.cg))),
- .bit_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
- .src0_bit_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
- .len => @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu)),
+ .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.typeOf(s))),
+ .bit_size => @intCast(op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
+ .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
+ .len => @intCast(op.base.ref.typeOf(s).vectorLen(s.cg.pt.zcu)),
.elem_limbs => @intCast(@divExact(
- op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
+ op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
@divExact(op.base.size.bitSize(s.cg.target), 8),
)),
- .elem_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
- .src0_elem_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
- .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) *
- Select.Operand.Ref.src1.deref(s).tracking(s.cg).short.immediate),
- .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
+ .elem_size => @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
+ .src0_elem_size => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
+ .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) *
+ Select.Operand.Ref.src1.valueOf(s).immediate),
+ .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
.smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(
- -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
),
.smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(
- -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
),
.umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(
- -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
+ -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
)),
};
const rhs = op.flags.adjust.rhs.toLog2();
@@ -50826,6 +51383,7 @@ const Select = struct {
break :res res[0];
},
.div => @shrExact(lhs, rhs),
+ .rem_8_mul => lhs & (@as(SignedImm, 1) << @intCast(@as(u3, 3) + rhs)) - 1,
};
return switch (op.flags.adjust.sign) {
.neg => op.imm - res,
@@ -50842,7 +51400,7 @@ const Select = struct {
label.* = @intCast(s.cg.mir_instructions.len);
break .{ .inst = undefined };
} else unreachable,
- .ref => switch (op.base.ref.deref(s).tracking(s.cg).short) {
+ .ref => switch (op.base.ref.valueOf(s)) {
.immediate => |imm| .{ .imm = switch (op.base.size) {
.byte => if (std.math.cast(i8, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u8, @intCast(imm))),
.word => if (std.math.cast(i16, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u16, @intCast(imm))),
@@ -50857,21 +51415,21 @@ const Select = struct {
.simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
.uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) },
.lea => .{ .mem = .{
- .base = .{ .reg = registerAlias(op.base.ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)) },
+ .base = .{ .reg = registerAlias(op.base.ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)) },
.mod = .{ .rm = .{
.size = op.base.size,
.index = switch (op.index.ref) {
- else => |ref| registerAlias(ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)),
+ else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),
.none => .none,
},
.scale = op.index.scale,
.disp = op.adjustedImm(i32, s),
} },
} },
- .mem => .{ .mem = try op.base.ref.deref(s).tracking(s.cg).short.mem(s.cg, .{
+ .mem => .{ .mem = try op.base.ref.valueOf(s).mem(s.cg, .{
.size = op.base.size,
.index = switch (op.index.ref) {
- else => |ref| registerAlias(ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)),
+ else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),
.none => .none,
},
.scale = op.index.scale,
@@ -50888,7 +51446,7 @@ fn select(
src_temps: []Temp,
cases: []const Select.Case,
) !void {
- @setEvalBranchQuota(33_600);
+ @setEvalBranchQuota(33_500);
cases: for (cases) |case| {
for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases;
for (case.src_constraints[0..src_temps.len], src_temps) |src_constraint, src_temp| if (!src_constraint.accepts(src_temp.typeOf(cg), cg)) continue :cases;
@@ -50914,12 +51472,21 @@ fn select(
var s: Select = .{
.cg = cg,
.temps = undefined,
+ .types = undefined,
.labels = @splat(.{ .forward = @splat(null), .backward = null }),
.top = 0,
};
- const tmp_slots = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
- const dst_slots = s.temps[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
- const src_slots = s.temps[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
+ const s_tmp_types = s.types[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
+ const s_tmp_temps = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
+ const s_dst_types = s.types[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
+ const s_dst_temps = s.temps[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
+ const s_src_types = s.types[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
+ const s_src_temps = s.temps[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
+
+ for (s_tmp_types, case.extra_temps) |*ty, spec| ty.* = spec.type;
+ @memcpy(s_dst_types[0..dst_tys.len], dst_tys);
+ for (s_src_types[0..src_temps.len], src_temps) |*ty, temp| ty.* = temp.typeOf(cg);
+ std.mem.swap(Type, &s_src_types[pattern.commute[0]], &s_src_types[pattern.commute[1]]);
caller_preserved: {
const cc = switch (case.clobbers.caller_preserved) {
@@ -50943,23 +51510,23 @@ fn select(
}
}
- @memcpy(src_slots[0..src_temps.len], src_temps);
- std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);
+ @memcpy(s_src_temps[0..src_temps.len], src_temps);
+ std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| {
if (dst_kind.pass() != 1) continue;
dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
}
- var tmp_owned: [tmp_slots.len]bool = @splat(false);
- for (1..3) |pass| for (tmp_slots, &tmp_owned, case.extra_temps) |*slot, *owned, spec| {
+ var tmp_owned: [s_tmp_temps.len]bool = @splat(false);
+ for (1..3) |pass| for (s_tmp_temps, &tmp_owned, case.extra_temps) |*temp, *owned, spec| {
if (spec.kind.pass() != pass) continue;
- slot.*, owned.* = try spec.create(&s);
+ temp.*, owned.* = try spec.create(&s);
};
while (true) for (pattern.src[0..src_temps.len], src_temps) |src_pattern, *src_temp| {
if (try src_pattern.convert(src_temp, cg)) break;
} else break;
- @memcpy(src_slots[0..src_temps.len], src_temps);
- std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);
+ @memcpy(s_src_temps[0..src_temps.len], src_temps);
+ std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
if (case.clobbers.eflags) try cg.spillEflagsIfOccupied();
@@ -50967,7 +51534,7 @@ fn select(
if (dst_kind.pass() != 2) continue;
dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
}
- @memcpy(dst_slots[0..dst_temps.len], dst_temps);
+ @memcpy(s_dst_temps[0..dst_temps.len], dst_temps);
switch (case.each) {
.once => |body| {
@@ -50996,7 +51563,7 @@ fn select(
}
}
for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, dst_kind| dst_kind.finish(dst_temp, &s);
- for (tmp_owned, tmp_slots) |owned, temp| if (owned) try temp.die(cg);
+ for (tmp_owned, s_tmp_temps) |owned, temp| if (owned) try temp.die(cg);
return;
}
}
src/Air.zig
@@ -573,7 +573,7 @@ pub const Inst = struct {
/// and the operand is not a valid value of this type; i.e. equivalent to
/// a safety check based on `.is_named_enum_value`
intcast_safe,
- /// Truncate higher bits from an integer, resulting in an integer with the same
+ /// Truncate higher bits from an integer, resulting in an integer type with the same
/// sign but an equal or smaller number of bits.
/// Uses the `ty_op` field.
trunc,
test/behavior/x86_64/math.zig
@@ -5222,1392 +5222,1437 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
try testArgs(f128, f128, inf(f128));
try testArgs(f128, f128, nan(f128));
}
+ fn testSameSignednessIntVectors() !void {
+ try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
+ try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
+ try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
+
+ try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
+ try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
+ try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
+
+ try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
+ try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
+ }
fn testIntVectors() !void {
- try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
+ try testSameSignednessIntVectors();
+
try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});
- try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});
try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1});
- try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
- try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });
- try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });
try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
- try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
- try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
- try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
- try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
- try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
- try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
- try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
- try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
- try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
- try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
- try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
- try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
- try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
- try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
- try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
- try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
- try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
- try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
- try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
- try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
- try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
- try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
- try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
- try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
- try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
- try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
- try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
- try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
- try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
- try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
- try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
- try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
- try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
- try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
- try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
- try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
- try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
- try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
- try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
- try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
- try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
- try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
}
fn testFloatVectors() !void {
@setEvalBranchQuota(6_700);
@@ -10005,6 +10050,14 @@ test intCast {
try test_int_cast.testIntVectors();
}
+inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
+ return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs;
+}
+test truncate {
+ const test_truncate = cast(truncate, .{});
+ try test_truncate.testSameSignednessInts();
+}
+
inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
return @floatCast(rhs);
}