authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-02-03 01:18:07-05:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-02-06 16:14:53-05:00
logc58e60a042ec2a351a0d8953f602fc23763e3ecd
treebb5867e38e4171656467e0d6092cc82a04a0aa66
parentb0ed602d5d9358128471588f00a073f2545809fa

x86_64: rewrite scalar `@truncate`


6 files changed, 1404 insertions(+), 760 deletions(-)

lib/std/math/big/int.zig+10-17
...@@ -1793,9 +1793,13 @@ pub const Mutable = struct {...@@ -1793,9 +1793,13 @@ pub const Mutable = struct {
1793 /// The upper bound is `calcTwosCompLimbCount(a.len)`.1793 /// The upper bound is `calcTwosCompLimbCount(a.len)`.
1794 pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {1794 pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
1795 const req_limbs = calcTwosCompLimbCount(bit_count);1795 const req_limbs = calcTwosCompLimbCount(bit_count);
1796 const abs_trunc_a: Const = .{
1797 .positive = true,
1798 .limbs = a.limbs[0..@min(a.limbs.len, req_limbs)],
1799 };
17961800
1797 // Handle 0-bit integers.1801 // Handle 0-bit integers.
1798 if (req_limbs == 0 or a.eqlZero()) {1802 if (req_limbs == 0 or abs_trunc_a.eqlZero()) {
1799 r.set(0);1803 r.set(0);
1800 return;1804 return;
1801 }1805 }
...@@ -1810,15 +1814,10 @@ pub const Mutable = struct {...@@ -1810,15 +1814,10 @@ pub const Mutable = struct {
1810 // Note, we simply take req_limbs * @bitSizeOf(Limb) as the1814 // Note, we simply take req_limbs * @bitSizeOf(Limb) as the
1811 // target bit count.1815 // target bit count.
18121816
1813 r.addScalar(a.abs(), -1);1817 r.addScalar(abs_trunc_a, -1);
18141818
1815 // Zero-extend the result1819 // Zero-extend the result
1816 if (req_limbs > r.len) {1820 @memset(r.limbs[r.len..req_limbs], 0);
1817 @memset(r.limbs[r.len..req_limbs], 0);
1818 }
1819
1820 // Truncate to required number of limbs.
1821 assert(r.limbs.len >= req_limbs);
1822 r.len = req_limbs;1821 r.len = req_limbs;
18231822
1824 // Without truncating, we can already peek at the sign bit of the result here.1823 // Without truncating, we can already peek at the sign bit of the result here.
...@@ -1846,16 +1845,10 @@ pub const Mutable = struct {...@@ -1846,16 +1845,10 @@ pub const Mutable = struct {
1846 r.normalize(r.len);1845 r.normalize(r.len);
1847 }1846 }
1848 } else {1847 } else {
1849 if (a.limbs.len < req_limbs) {1848 r.copy(abs_trunc_a);
1850 // Integer fits within target bits, no wrapping required.1849 // If the integer fits within target bits, no wrapping is required.
1851 r.copy(a);1850 if (r.len < req_limbs) return;
1852 return;
1853 }
18541851
1855 r.copy(.{
1856 .positive = a.positive,
1857 .limbs = a.limbs[0..req_limbs],
1858 });
1859 r.limbs[r.len - 1] &= mask;1852 r.limbs[r.len - 1] &= mask;
1860 r.normalize(r.len);1853 r.normalize(r.len);
18611854
lib/std/math/big/int_test.zig+25
...@@ -1934,6 +1934,31 @@ test "truncate multi unsigned many" {...@@ -1934,6 +1934,31 @@ test "truncate multi unsigned many" {
1934 try testing.expect((try b.toInt(i1)) == 0);1934 try testing.expect((try b.toInt(i1)) == 0);
1935}1935}
19361936
1937test "truncate to mutable with fewer limbs" {
1938 var res_limbs: [1]Limb = undefined;
1939 var res: Mutable = .{
1940 .limbs = &res_limbs,
1941 .len = undefined,
1942 .positive = undefined,
1943 };
1944 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
1945 try testing.expect(res.eqlZero());
1946 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
1947 try testing.expect(res.eqlZero());
1948 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
1949 try testing.expect(res.eqlZero());
1950 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
1951 try testing.expect(res.eqlZero());
1952 res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
1953 try testing.expect(res.toConst().orderAgainstScalar(std.math.maxInt(Limb)).compare(.eq));
1954 res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
1955 try testing.expect(res.toConst().orderAgainstScalar(-1).compare(.eq));
1956 res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
1957 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
1958 res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
1959 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
1960}
1961
1937test "saturate single signed positive" {1962test "saturate single signed positive" {
1938 var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);1963 var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);
1939 defer a.deinit();1964 defer a.deinit();
src/Air.zig+1-1
...@@ -573,7 +573,7 @@ pub const Inst = struct {...@@ -573,7 +573,7 @@ pub const Inst = struct {
573 /// and the operand is not a valid value of this type; i.e. equivalent to573 /// and the operand is not a valid value of this type; i.e. equivalent to
574 /// a safety check based on `.is_named_enum_value`574 /// a safety check based on `.is_named_enum_value`
575 intcast_safe,575 intcast_safe,
576 /// Truncate higher bits from an integer, resulting in an integer with the same576 /// Truncate higher bits from an integer, resulting in an integer type with the same
577 /// sign but an equal or smaller number of bits.577 /// sign but an equal or smaller number of bits.
578 /// Uses the `ty_op` field.578 /// Uses the `ty_op` field.
579 trunc,579 trunc,
src/arch/x86_64/CodeGen.zig+636-69
...@@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2414}2414}
24152415
2416fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {2416fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2417 @setEvalBranchQuota(4_500);2417 @setEvalBranchQuota(4_600);
2418 const pt = cg.pt;2418 const pt = cg.pt;
2419 const zcu = pt.zcu;2419 const zcu = pt.zcu;
2420 const ip = &zcu.intern_pool;2420 const ip = &zcu.intern_pool;
...@@ -2499,7 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2499,7 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2499 .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst),2499 .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst),
25002500
2501 .bitcast => try cg.airBitCast(inst),2501 .bitcast => try cg.airBitCast(inst),
2502 .trunc => try cg.airTrunc(inst),
2503 .is_non_null => try cg.airIsNonNull(inst),2502 .is_non_null => try cg.airIsNonNull(inst),
2504 .is_null => try cg.airIsNull(inst),2503 .is_null => try cg.airIsNull(inst),
2505 .is_non_err => try cg.airIsNonErr(inst),2504 .is_non_err => try cg.airIsNonErr(inst),
...@@ -25507,7 +25506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25507,7 +25506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25507 }, .{25506 }, .{
25508 .required_features = .{ .@"64bit", null, null, null },25507 .required_features = .{ .@"64bit", null, null, null },
25509 .src_constraints = .{ .{ .signed_int = .byte }, .any },25508 .src_constraints = .{ .{ .signed_int = .byte }, .any },
25510 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},25509 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
25511 .patterns = &.{25510 .patterns = &.{
25512 .{ .src = .{ .mem, .none } },25511 .{ .src = .{ .mem, .none } },
25513 .{ .src = .{ .to_gpr, .none } },25512 .{ .src = .{ .to_gpr, .none } },
...@@ -25564,7 +25563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25564,7 +25563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25564 } },25563 } },
25565 }, .{25564 }, .{
25566 .src_constraints = .{ .{ .signed_int = .byte }, .any },25565 .src_constraints = .{ .{ .signed_int = .byte }, .any },
25567 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},25566 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
25568 .patterns = &.{25567 .patterns = &.{
25569 .{ .src = .{ .mem, .none } },25568 .{ .src = .{ .mem, .none } },
25570 .{ .src = .{ .to_gpr, .none } },25569 .{ .src = .{ .to_gpr, .none } },
...@@ -25667,7 +25666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25667,7 +25666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25667 }, .{25666 }, .{
25668 .required_features = .{ .@"64bit", null, null, null },25667 .required_features = .{ .@"64bit", null, null, null },
25669 .src_constraints = .{ .{ .signed_int = .word }, .any },25668 .src_constraints = .{ .{ .signed_int = .word }, .any },
25670 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},25669 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
25671 .patterns = &.{25670 .patterns = &.{
25672 .{ .src = .{ .mem, .none } },25671 .{ .src = .{ .mem, .none } },
25673 .{ .src = .{ .to_gpr, .none } },25672 .{ .src = .{ .to_gpr, .none } },
...@@ -25724,7 +25723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25724,7 +25723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25724 } },25723 } },
25725 }, .{25724 }, .{
25726 .src_constraints = .{ .{ .signed_int = .word }, .any },25725 .src_constraints = .{ .{ .signed_int = .word }, .any },
25727 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},25726 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
25728 .patterns = &.{25727 .patterns = &.{
25729 .{ .src = .{ .mem, .none } },25728 .{ .src = .{ .mem, .none } },
25730 .{ .src = .{ .to_gpr, .none } },25729 .{ .src = .{ .to_gpr, .none } },
...@@ -25805,7 +25804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25805,7 +25804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25805 }, .{25804 }, .{
25806 .required_features = .{ .@"64bit", null, null, null },25805 .required_features = .{ .@"64bit", null, null, null },
25807 .src_constraints = .{ .{ .signed_int = .dword }, .any },25806 .src_constraints = .{ .{ .signed_int = .dword }, .any },
25808 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},25807 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
25809 .patterns = &.{25808 .patterns = &.{
25810 .{ .src = .{ .mem, .none } },25809 .{ .src = .{ .mem, .none } },
25811 .{ .src = .{ .to_gpr, .none } },25810 .{ .src = .{ .to_gpr, .none } },
...@@ -25862,7 +25861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25862,7 +25861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25862 } },25861 } },
25863 }, .{25862 }, .{
25864 .src_constraints = .{ .{ .signed_int = .dword }, .any },25863 .src_constraints = .{ .{ .signed_int = .dword }, .any },
25865 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .dword, .is = .dword } }},25864 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .dword, .is = .dword } }},
25866 .patterns = &.{25865 .patterns = &.{
25867 .{ .src = .{ .mem, .none } },25866 .{ .src = .{ .mem, .none } },
25868 .{ .src = .{ .to_gpr, .none } },25867 .{ .src = .{ .to_gpr, .none } },
...@@ -25919,7 +25918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25919,7 +25918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25919 }, .{25918 }, .{
25920 .required_features = .{ .@"64bit", null, null, null },25919 .required_features = .{ .@"64bit", null, null, null },
25921 .src_constraints = .{ .{ .signed_int = .qword }, .any },25920 .src_constraints = .{ .{ .signed_int = .qword }, .any },
25922 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},25921 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
25923 .patterns = &.{25922 .patterns = &.{
25924 .{ .src = .{ .mem, .none } },25923 .{ .src = .{ .mem, .none } },
25925 .{ .src = .{ .to_gpr, .none } },25924 .{ .src = .{ .to_gpr, .none } },
...@@ -25976,8 +25975,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25976,8 +25975,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25976 } },25975 } },
25977 }, .{25976 }, .{
25978 .required_features = .{ .@"64bit", null, null, null },25977 .required_features = .{ .@"64bit", null, null, null },
25979 .src_constraints = .{ .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }, .any },25978 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
25980 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},25979 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
25981 .patterns = &.{25980 .patterns = &.{
25982 .{ .src = .{ .to_mem, .none } },25981 .{ .src = .{ .to_mem, .none } },
25983 },25982 },
...@@ -28855,6 +28854,524 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -28855,6 +28854,524 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
28855 };28854 };
28856 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);28855 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
28857 },28856 },
28857 .trunc => |air_tag| if (use_old) try cg.airTrunc(inst) else fallback: {
28858 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
28859 if (ty_op.ty.toType().isVector(zcu)) break :fallback try cg.airTrunc(inst);
28860 var ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
28861 var res: [1]Temp = undefined;
28862 cg.select(&res, &.{ty_op.ty.toType()}, &ops, comptime &.{ .{
28863 .src_constraints = .{ .{ .signed_int = .gpr }, .any },
28864 .dst_constraints = .{.{ .exact_signed_int = 1 }},
28865 .patterns = &.{
28866 .{ .src = .{ .to_mut_gpr, .none } },
28867 },
28868 .dst_temps = .{.{ .ref = .src0 }},
28869 .clobbers = .{ .eflags = true },
28870 .each = .{ .once = &.{
28871 .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ },
28872 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
28873 } },
28874 }, .{
28875 .src_constraints = .{ .any_signed_int, .any },
28876 .dst_constraints = .{.{ .exact_signed_int = 1 }},
28877 .patterns = &.{
28878 .{ .src = .{ .to_mem, .none } },
28879 },
28880 .dst_temps = .{.{ .rc = .general_purpose }},
28881 .clobbers = .{ .eflags = true },
28882 .each = .{ .once = &.{
28883 .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
28884 .{ ._, ._, .@"and", .dst0d, .si(1), ._, ._ },
28885 .{ ._, ._, .neg, .dst0d, ._, ._, ._ },
28886 } },
28887 }, .{
28888 .src_constraints = .{ .{ .int = .gpr }, .any },
28889 .dst_constraints = .{.{ .exact_int = 8 }},
28890 .patterns = &.{
28891 .{ .src = .{ .to_mut_gpr, .none } },
28892 },
28893 .dst_temps = .{.{ .ref = .src0 }},
28894 .each = .{ .once = &.{} },
28895 }, .{
28896 .src_constraints = .{ .any_signed_int, .any },
28897 .dst_constraints = .{.{ .exact_signed_int = 8 }},
28898 .patterns = &.{
28899 .{ .src = .{ .to_mem, .none } },
28900 },
28901 .dst_temps = .{.{ .rc = .general_purpose }},
28902 .each = .{ .once = &.{
28903 .{ ._, ._, .movsx, .dst0d, .mem(.src0b), ._, ._ },
28904 } },
28905 }, .{
28906 .src_constraints = .{ .any_unsigned_int, .any },
28907 .dst_constraints = .{.{ .exact_unsigned_int = 8 }},
28908 .patterns = &.{
28909 .{ .src = .{ .to_mem, .none } },
28910 },
28911 .dst_temps = .{.{ .rc = .general_purpose }},
28912 .each = .{ .once = &.{
28913 .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
28914 } },
28915 }, .{
28916 .src_constraints = .{ .{ .signed_int = .gpr }, .any },
28917 .dst_constraints = .{.{ .signed_int = .byte }},
28918 .patterns = &.{
28919 .{ .src = .{ .to_mut_gpr, .none } },
28920 },
28921 .dst_temps = .{.{ .ref = .src0 }},
28922 .clobbers = .{ .eflags = true },
28923 .each = .{ .once = &.{
28924 .{ ._, ._l, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
28925 .{ ._, ._r, .sa, .dst0b, .uia(8, .dst0, .sub_bit_size), ._, ._ },
28926 } },
28927 }, .{
28928 .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
28929 .dst_constraints = .{.{ .unsigned_int = .byte }},
28930 .patterns = &.{
28931 .{ .src = .{ .to_mut_gpr, .none } },
28932 },
28933 .dst_temps = .{.{ .ref = .src0 }},
28934 .clobbers = .{ .eflags = true },
28935 .each = .{ .once = &.{
28936 .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ },
28937 } },
28938 }, .{
28939 .src_constraints = .{ .any_int, .any },
28940 .dst_constraints = .{.{ .unsigned_int = .byte }},
28941 .patterns = &.{
28942 .{ .src = .{ .to_mem, .none } },
28943 },
28944 .dst_temps = .{.{ .rc = .general_purpose }},
28945 .clobbers = .{ .eflags = true },
28946 .each = .{ .once = &.{
28947 .{ ._, ._, .movzx, .dst0d, .mem(.src0b), ._, ._ },
28948 .{ ._, ._, .@"and", .dst0b, .sa(.dst0, .add_umax), ._, ._ },
28949 } },
28950 }, .{
28951 .src_constraints = .{ .{ .int = .gpr }, .any },
28952 .dst_constraints = .{.{ .exact_int = 16 }},
28953 .patterns = &.{
28954 .{ .src = .{ .to_mut_gpr, .none } },
28955 },
28956 .dst_temps = .{.{ .ref = .src0 }},
28957 .each = .{ .once = &.{} },
28958 }, .{
28959 .src_constraints = .{ .any_signed_int, .any },
28960 .dst_constraints = .{.{ .exact_signed_int = 16 }},
28961 .patterns = &.{
28962 .{ .src = .{ .to_mem, .none } },
28963 },
28964 .dst_temps = .{.{ .rc = .general_purpose }},
28965 .each = .{ .once = &.{
28966 .{ ._, ._, .movsx, .dst0d, .mem(.src0w), ._, ._ },
28967 } },
28968 }, .{
28969 .src_constraints = .{ .any_unsigned_int, .any },
28970 .dst_constraints = .{.{ .exact_unsigned_int = 16 }},
28971 .patterns = &.{
28972 .{ .src = .{ .to_mem, .none } },
28973 },
28974 .dst_temps = .{.{ .rc = .general_purpose }},
28975 .each = .{ .once = &.{
28976 .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ },
28977 } },
28978 }, .{
28979 .required_features = .{ .fast_imm16, null, null, null },
28980 .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
28981 .dst_constraints = .{.{ .unsigned_int = .word }},
28982 .patterns = &.{
28983 .{ .src = .{ .to_mut_gpr, .none } },
28984 },
28985 .dst_temps = .{.{ .ref = .src0 }},
28986 .clobbers = .{ .eflags = true },
28987 .each = .{ .once = &.{
28988 .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ },
28989 } },
28990 }, .{
28991 .required_features = .{ .fast_imm16, null, null, null },
28992 .src_constraints = .{ .any_unsigned_int, .any },
28993 .dst_constraints = .{.{ .unsigned_int = .word }},
28994 .patterns = &.{
28995 .{ .src = .{ .to_mem, .none } },
28996 },
28997 .dst_temps = .{.{ .rc = .general_purpose }},
28998 .clobbers = .{ .eflags = true },
28999 .each = .{ .once = &.{
29000 .{ ._, ._, .movzx, .dst0d, .mem(.src0w), ._, ._ },
29001 .{ ._, ._, .@"and", .dst0w, .sa(.dst0, .add_umax), ._, ._ },
29002 } },
29003 }, .{
29004 .src_constraints = .{ .{ .int = .gpr }, .any },
29005 .dst_constraints = .{.{ .exact_int = 32 }},
29006 .patterns = &.{
29007 .{ .src = .{ .to_mut_gpr, .none } },
29008 },
29009 .dst_temps = .{.{ .ref = .src0 }},
29010 .each = .{ .once = &.{} },
29011 }, .{
29012 .src_constraints = .{ .any_int, .any },
29013 .dst_constraints = .{.{ .exact_int = 32 }},
29014 .patterns = &.{
29015 .{ .src = .{ .to_mem, .none } },
29016 },
29017 .dst_temps = .{.{ .rc = .general_purpose }},
29018 .each = .{ .once = &.{
29019 .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
29020 } },
29021 }, .{
29022 .src_constraints = .{ .{ .signed_int = .gpr }, .any },
29023 .dst_constraints = .{.{ .signed_int = .dword }},
29024 .patterns = &.{
29025 .{ .src = .{ .to_mut_gpr, .none } },
29026 },
29027 .dst_temps = .{.{ .ref = .src0 }},
29028 .clobbers = .{ .eflags = true },
29029 .each = .{ .once = &.{
29030 .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
29031 .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
29032 } },
29033 }, .{
29034 .src_constraints = .{ .any_signed_int, .any },
29035 .dst_constraints = .{.{ .signed_int = .dword }},
29036 .patterns = &.{
29037 .{ .src = .{ .to_mem, .none } },
29038 },
29039 .dst_temps = .{.{ .rc = .general_purpose }},
29040 .clobbers = .{ .eflags = true },
29041 .each = .{ .once = &.{
29042 .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
29043 .{ ._, ._l, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
29044 .{ ._, ._r, .sa, .dst0d, .uia(32, .dst0, .sub_bit_size), ._, ._ },
29045 } },
29046 }, .{
29047 .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
29048 .dst_constraints = .{.{ .unsigned_int = .dword }},
29049 .patterns = &.{
29050 .{ .src = .{ .to_mut_gpr, .none } },
29051 },
29052 .dst_temps = .{.{ .ref = .src0 }},
29053 .clobbers = .{ .eflags = true },
29054 .each = .{ .once = &.{
29055 .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ },
29056 } },
29057 }, .{
29058 .src_constraints = .{ .any_unsigned_int, .any },
29059 .dst_constraints = .{.{ .unsigned_int = .dword }},
29060 .patterns = &.{
29061 .{ .src = .{ .to_mem, .none } },
29062 },
29063 .dst_temps = .{.{ .rc = .general_purpose }},
29064 .clobbers = .{ .eflags = true },
29065 .each = .{ .once = &.{
29066 .{ ._, ._, .mov, .dst0d, .mem(.src0d), ._, ._ },
29067 .{ ._, ._, .@"and", .dst0d, .sa(.dst0, .add_umax), ._, ._ },
29068 } },
29069 }, .{
29070 .required_features = .{ .@"64bit", null, null, null },
29071 .src_constraints = .{ .any_int, .any },
29072 .dst_constraints = .{.{ .exact_int = 64 }},
29073 .patterns = &.{
29074 .{ .src = .{ .to_mem, .none } },
29075 },
29076 .dst_temps = .{.{ .rc = .general_purpose }},
29077 .each = .{ .once = &.{
29078 .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ },
29079 } },
29080 }, .{
29081 .required_features = .{ .@"64bit", null, null, null },
29082 .src_constraints = .{ .{ .signed_int = .gpr }, .any },
29083 .dst_constraints = .{.{ .signed_int = .qword }},
29084 .patterns = &.{
29085 .{ .src = .{ .to_mut_gpr, .none } },
29086 },
29087 .dst_temps = .{.{ .ref = .src0 }},
29088 .clobbers = .{ .eflags = true },
29089 .each = .{ .once = &.{
29090 .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
29091 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
29092 } },
29093 }, .{
29094 .required_features = .{ .@"64bit", null, null, null },
29095 .src_constraints = .{ .any_signed_int, .any },
29096 .dst_constraints = .{.{ .signed_int = .qword }},
29097 .patterns = &.{
29098 .{ .src = .{ .to_mem, .none } },
29099 },
29100 .dst_temps = .{.{ .rc = .general_purpose }},
29101 .clobbers = .{ .eflags = true },
29102 .each = .{ .once = &.{
29103 .{ ._, ._, .mov, .dst0q, .mem(.src0q), ._, ._ },
29104 .{ ._, ._l, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
29105 .{ ._, ._r, .sa, .dst0q, .uia(64, .dst0, .sub_bit_size), ._, ._ },
29106 } },
29107 }, .{
29108 .required_features = .{ .@"64bit", .bmi2, null, null },
29109 .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
29110 .dst_constraints = .{.{ .unsigned_int = .qword }},
29111 .patterns = &.{
29112 .{ .src = .{ .mem, .none } },
29113 .{ .src = .{ .to_gpr, .none } },
29114 },
29115 .dst_temps = .{.{ .rc = .general_purpose }},
29116 .clobbers = .{ .eflags = true },
29117 .each = .{ .once = &.{
29118 .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ },
29119 .{ ._, ._, .bzhi, .dst0q, .src0q, .dst0q, ._ },
29120 } },
29121 }, .{
29122 .required_features = .{ .@"64bit", .bmi2, null, null },
29123 .src_constraints = .{ .any_unsigned_int, .any },
29124 .dst_constraints = .{.{ .unsigned_int = .qword }},
29125 .patterns = &.{
29126 .{ .src = .{ .to_mem, .none } },
29127 },
29128 .dst_temps = .{.{ .rc = .general_purpose }},
29129 .clobbers = .{ .eflags = true },
29130 .each = .{ .once = &.{
29131 .{ ._, ._, .mov, .dst0d, .sa(.dst0, .add_bit_size), ._, ._ },
29132 .{ ._, ._, .bzhi, .dst0q, .mem(.src0q), .dst0q, ._ },
29133 } },
29134 }, .{
29135 .required_features = .{ .@"64bit", null, null, null },
29136 .src_constraints = .{ .{ .unsigned_int = .gpr }, .any },
29137 .dst_constraints = .{.{ .unsigned_int = .qword }},
29138 .patterns = &.{
29139 .{ .src = .{ .mem, .none } },
29140 .{ .src = .{ .to_gpr, .none } },
29141 },
29142 .dst_temps = .{.{ .rc = .general_purpose }},
29143 .clobbers = .{ .eflags = true },
29144 .each = .{ .once = &.{
29145 .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ },
29146 .{ ._, ._, .@"and", .dst0q, .src0q, ._, ._ },
29147 } },
29148 }, .{
29149 .required_features = .{ .@"64bit", null, null, null },
29150 .src_constraints = .{ .any_unsigned_int, .any },
29151 .dst_constraints = .{.{ .unsigned_int = .qword }},
29152 .patterns = &.{
29153 .{ .src = .{ .to_mem, .none } },
29154 },
29155 .dst_temps = .{.{ .rc = .general_purpose }},
29156 .clobbers = .{ .eflags = true },
29157 .each = .{ .once = &.{
29158 .{ ._, ._, .mov, .dst0q, .ua(.dst0, .add_umax), ._, ._ },
29159 .{ ._, ._, .@"and", .dst0q, .mem(.src0q), ._, ._ },
29160 } },
29161 }, .{
29162 .required_features = .{ .@"64bit", null, null, null },
29163 .src_constraints = .{ .any_int, .any },
29164 .dst_constraints = .{.{ .exact_remainder_int = .{ .of = .xword, .is = .xword } }},
29165 .patterns = &.{
29166 .{ .src = .{ .to_mem, .none } },
29167 },
29168 .extra_temps = .{
29169 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29170 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29171 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29172 .unused,
29173 .unused,
29174 .unused,
29175 .unused,
29176 .unused,
29177 .unused,
29178 },
29179 .dst_temps = .{.mem},
29180 .each = .{ .once = &.{
29181 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29182 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29183 .{ ._, ._, .mov, .tmp2d, .sa(.dst0, .add_size_div_8), ._, ._ },
29184 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29185 } },
29186 }, .{
29187 .required_features = .{ .@"64bit", null, null, null },
29188 .src_constraints = .{ .any_signed_int, .any },
29189 .dst_constraints = .{.{ .exact_remainder_signed_int = .{ .of = .xword, .is = .qword } }},
29190 .patterns = &.{
29191 .{ .src = .{ .to_mem, .none } },
29192 },
29193 .extra_temps = .{
29194 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29195 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29196 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29197 .unused,
29198 .unused,
29199 .unused,
29200 .unused,
29201 .unused,
29202 .unused,
29203 },
29204 .dst_temps = .{.mem},
29205 .clobbers = .{ .eflags = true },
29206 .each = .{ .once = &.{
29207 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29208 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29209 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29210 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29211 .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
29212 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29213 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29214 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29215 } },
29216 }, .{
29217 .required_features = .{ .@"64bit", null, null, null },
29218 .src_constraints = .{ .any_signed_int, .any },
29219 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .qword } }},
29220 .patterns = &.{
29221 .{ .src = .{ .to_mem, .none } },
29222 },
29223 .extra_temps = .{
29224 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29225 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29226 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29227 .unused,
29228 .unused,
29229 .unused,
29230 .unused,
29231 .unused,
29232 .unused,
29233 },
29234 .dst_temps = .{.mem},
29235 .clobbers = .{ .eflags = true },
29236 .each = .{ .once = &.{
29237 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29238 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29239 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29240 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29241 .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
29242 .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
29243 .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
29244 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29245 .{ ._, ._r, .sa, .tmp0q, .ui(63), ._, ._ },
29246 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29247 } },
29248 }, .{
29249 .required_features = .{ .@"64bit", null, null, null },
29250 .src_constraints = .{ .any_signed_int, .any },
29251 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .xword, .is = .xword } }},
29252 .patterns = &.{
29253 .{ .src = .{ .to_mem, .none } },
29254 },
29255 .extra_temps = .{
29256 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29257 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29258 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29259 .unused,
29260 .unused,
29261 .unused,
29262 .unused,
29263 .unused,
29264 .unused,
29265 },
29266 .dst_temps = .{.mem},
29267 .clobbers = .{ .eflags = true },
29268 .each = .{ .once = &.{
29269 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29270 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29271 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
29272 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29273 .{ ._, ._, .mov, .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ },
29274 .{ ._, ._l, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
29275 .{ ._, ._r, .sa, .tmp0q, .uia(64, .dst0, .sub_bit_size_rem_64), ._, ._ },
29276 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29277 } },
29278 }, .{
29279 .required_features = .{ .@"64bit", null, null, null },
29280 .src_constraints = .{ .any_unsigned_int, .any },
29281 .dst_constraints = .{.{ .exact_remainder_unsigned_int = .{ .of = .xword, .is = .qword } }},
29282 .patterns = &.{
29283 .{ .src = .{ .to_mem, .none } },
29284 },
29285 .extra_temps = .{
29286 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29287 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29288 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29289 .unused,
29290 .unused,
29291 .unused,
29292 .unused,
29293 .unused,
29294 .unused,
29295 },
29296 .dst_temps = .{.mem},
29297 .clobbers = .{ .eflags = true },
29298 .each = .{ .once = &.{
29299 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29300 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29301 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
29302 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29303 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
29304 } },
29305 }, .{
29306 .required_features = .{ .@"64bit", null, null, null },
29307 .src_constraints = .{ .any_unsigned_int, .any },
29308 .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .qword } }},
29309 .patterns = &.{
29310 .{ .src = .{ .to_mem, .none } },
29311 },
29312 .extra_temps = .{
29313 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29314 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29315 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29316 .unused,
29317 .unused,
29318 .unused,
29319 .unused,
29320 .unused,
29321 .unused,
29322 },
29323 .dst_temps = .{.mem},
29324 .clobbers = .{ .eflags = true },
29325 .each = .{ .once = &.{
29326 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29327 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29328 .{ ._, ._, .mov, .tmp2d, .sia(-2, .dst0, .add_size_div_8), ._, ._ },
29329 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29330 .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ },
29331 .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -16), ._, ._ },
29332 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -16), .tmp0q, ._, ._ },
29333 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .si(0), ._, ._ },
29334 } },
29335 }, .{
29336 .required_features = .{ .@"64bit", null, null, null },
29337 .src_constraints = .{ .any_unsigned_int, .any },
29338 .dst_constraints = .{.{ .remainder_unsigned_int = .{ .of = .xword, .is = .xword } }},
29339 .patterns = &.{
29340 .{ .src = .{ .to_mem, .none } },
29341 },
29342 .extra_temps = .{
29343 .{ .type = .usize, .kind = .{ .reg = .rsi } },
29344 .{ .type = .usize, .kind = .{ .reg = .rdi } },
29345 .{ .type = .u32, .kind = .{ .reg = .ecx } },
29346 .unused,
29347 .unused,
29348 .unused,
29349 .unused,
29350 .unused,
29351 .unused,
29352 },
29353 .dst_temps = .{.mem},
29354 .clobbers = .{ .eflags = true },
29355 .each = .{ .once = &.{
29356 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
29357 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
29358 .{ ._, ._, .mov, .tmp2d, .sia(-1, .dst0, .add_size_div_8), ._, ._ },
29359 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
29360 .{ ._, ._, .mov, .tmp0q, .ua(.dst0, .add_umax), ._, ._ },
29361 .{ ._, ._, .@"and", .tmp0q, .memad(.src0q, .add_size, -8), ._, ._ },
29362 .{ ._, ._, .mov, .memad(.dst0q, .add_size, -8), .tmp0q, ._, ._ },
29363 } },
29364 } }) catch |err| switch (err) {
29365 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
29366 @tagName(air_tag),
29367 ty_op.ty.toType().fmt(pt),
29368 cg.typeOf(ty_op.operand).fmt(pt),
29369 ops[0].tracking(cg),
29370 }),
29371 else => |e| return e,
29372 };
29373 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
29374 },
28858 .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else {29375 .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else {
28859 const ty_op = air_datas[@intFromEnum(inst)].ty_op;29376 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
28860 const ops = try cg.tempsFromOperands(inst, .{ty_op.operand});29377 const ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
...@@ -48551,8 +49068,8 @@ const Temp = struct {...@@ -48551,8 +49068,8 @@ const Temp = struct {
48551 }, .{49068 }, .{
48552 .required_features = .{ .@"64bit", null, null, null },49069 .required_features = .{ .@"64bit", null, null, null },
48553 .src_constraints = .{49070 .src_constraints = .{
48554 .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },49071 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
48555 .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },49072 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
48556 },49073 },
48557 .patterns = &.{49074 .patterns = &.{
48558 .{ .src = .{ .to_mem, .to_mem } },49075 .{ .src = .{ .to_mem, .to_mem } },
...@@ -48583,8 +49100,8 @@ const Temp = struct {...@@ -48583,8 +49100,8 @@ const Temp = struct {
48583 }, .{49100 }, .{
48584 .required_features = .{ .@"64bit", null, null, null },49101 .required_features = .{ .@"64bit", null, null, null },
48585 .src_constraints = .{49102 .src_constraints = .{
48586 .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },49103 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
48587 .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },49104 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
48588 },49105 },
48589 .patterns = &.{49106 .patterns = &.{
48590 .{ .src = .{ .to_mem, .to_mem } },49107 .{ .src = .{ .to_mem, .to_mem } },
...@@ -48612,8 +49129,8 @@ const Temp = struct {...@@ -48612,8 +49129,8 @@ const Temp = struct {
48612 } },49129 } },
48613 }, .{49130 }, .{
48614 .src_constraints = .{49131 .src_constraints = .{
48615 .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },49132 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
48616 .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },49133 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
48617 },49134 },
48618 .patterns = &.{49135 .patterns = &.{
48619 .{ .src = .{ .to_mem, .to_mem } },49136 .{ .src = .{ .to_mem, .to_mem } },
...@@ -48643,8 +49160,8 @@ const Temp = struct {...@@ -48643,8 +49160,8 @@ const Temp = struct {
48643 } },49160 } },
48644 }, .{49161 }, .{
48645 .src_constraints = .{49162 .src_constraints = .{
48646 .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },49163 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
48647 .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },49164 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
48648 },49165 },
48649 .patterns = &.{49166 .patterns = &.{
48650 .{ .src = .{ .to_mem, .to_mem } },49167 .{ .src = .{ .to_mem, .to_mem } },
...@@ -49536,6 +50053,7 @@ const Operand = union(enum) {...@@ -49536,6 +50053,7 @@ const Operand = union(enum) {
4953650053
49537const Select = struct {50054const Select = struct {
49538 cg: *CodeGen,50055 cg: *CodeGen,
50056 types: [@intFromEnum(Select.Operand.Ref.none)]Type,
49539 temps: [@intFromEnum(Select.Operand.Ref.none)]Temp,50057 temps: [@intFromEnum(Select.Operand.Ref.none)]Temp,
49540 labels: [@intFromEnum(Label._)]struct {50058 labels: [@intFromEnum(Label._)]struct {
49541 backward: ?Mir.Inst.Index,50059 backward: ?Mir.Inst.Index,
...@@ -49762,9 +50280,11 @@ const Select = struct {...@@ -49762,9 +50280,11 @@ const Select = struct {
49762 signed_po2_int: Memory.Size,50280 signed_po2_int: Memory.Size,
49763 unsigned_po2_or_exact_int: Memory.Size,50281 unsigned_po2_or_exact_int: Memory.Size,
49764 remainder_int: OfIsSizes,50282 remainder_int: OfIsSizes,
49765 signed_remainder_int: OfIsSizes,50283 remainder_signed_int: OfIsSizes,
49766 unsigned_remainder_int: OfIsSizes,50284 remainder_unsigned_int: OfIsSizes,
49767 exact_remainder_int: OfIsSizes,50285 exact_remainder_int: OfIsSizes,
50286 exact_remainder_signed_int: OfIsSizes,
50287 exact_remainder_unsigned_int: OfIsSizes,
49768 signed_or_exact_remainder_int: OfIsSizes,50288 signed_or_exact_remainder_int: OfIsSizes,
49769 unsigned_or_exact_remainder_int: OfIsSizes,50289 unsigned_or_exact_remainder_int: OfIsSizes,
49770 signed_int: Memory.Size,50290 signed_int: Memory.Size,
...@@ -49878,14 +50398,18 @@ const Select = struct {...@@ -49878,14 +50398,18 @@ const Select = struct {
49878 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 150398 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
49879 else50399 else
49880 false,50400 false,
49881 .signed_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and50401 .remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
49882 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,50402 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
49883 .unsigned_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and50403 .remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
49884 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,50404 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
49885 .exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|50405 .exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|
49886 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 150406 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
49887 else50407 else
49888 false,50408 false,
50409 .exact_remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
50410 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
50411 .exact_remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
50412 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
49889 .signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {50413 .signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
49890 .signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,50414 .signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
49891 .unsigned => of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,50415 .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 {...@@ -50129,11 +50653,11 @@ const Select = struct {
50129 .unused => unreachable,50653 .unused => unreachable,
50130 .any => .{ try cg.tempAlloc(spec.type), true },50654 .any => .{ try cg.tempAlloc(spec.type), true },
50131 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },50655 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },
50132 .ref => |ref| .{ ref.deref(s), false },50656 .ref => |ref| .{ ref.tempOf(s), false },
50133 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },50657 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },
50134 .rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true },50658 .rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true },
50135 .mut_rc => |ref_rc| {50659 .mut_rc => |ref_rc| {
50136 const temp = ref_rc.ref.deref(s);50660 const temp = ref_rc.ref.tempOf(s);
50137 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {50661 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
50138 .register => |reg| if (reg.class() == ref_rc.rc) return .{ temp, false },50662 .register => |reg| if (reg.class() == ref_rc.rc) return .{ temp, false },
50139 .register_offset => |reg_off| if (reg_off.off == 0 and reg_off.reg.class() == ref_rc.rc) return .{ temp, false },50663 .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 {...@@ -50141,10 +50665,10 @@ const Select = struct {
50141 };50665 };
50142 return .{ try cg.tempAllocReg(spec.type, regSetForRegClass(ref_rc.rc)), true };50666 return .{ try cg.tempAllocReg(spec.type, regSetForRegClass(ref_rc.rc)), true };
50143 },50667 },
50144 .ref_mask => |ref_mask| .{ ref_mask.ref.deref(s), false },50668 .ref_mask => |ref_mask| .{ ref_mask.ref.tempOf(s), false },
50145 .rc_mask => |rc_mask| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc_mask.rc)), true },50669 .rc_mask => |rc_mask| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc_mask.rc)), true },
50146 .mut_rc_mask => |ref_rc_mask| {50670 .mut_rc_mask => |ref_rc_mask| {
50147 const temp = ref_rc_mask.ref.deref(s);50671 const temp = ref_rc_mask.ref.tempOf(s);
50148 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {50672 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
50149 .register => |reg| if (reg.class() == ref_rc_mask.rc) return .{ temp, false },50673 .register => |reg| if (reg.class() == ref_rc_mask.rc) return .{ temp, false },
50150 .register_offset => |reg_off| if (reg_off.off == 0 and reg_off.reg.class() == ref_rc_mask.rc) return .{ temp, false },50674 .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 {...@@ -50157,7 +50681,7 @@ const Select = struct {
50157 const pt = cg.pt;50681 const pt = cg.pt;
50158 const zcu = pt.zcu;50682 const zcu = pt.zcu;
50159 const ip = &zcu.intern_pool;50683 const ip = &zcu.intern_pool;
50160 const ty = const_info.ref.deref(s).typeOf(cg);50684 const ty = const_info.ref.typeOf(s);
50161 const vector_len, const scalar_ty: Type = switch (ip.indexToKey(ty.toIntern())) {50685 const vector_len, const scalar_ty: Type = switch (ip.indexToKey(ty.toIntern())) {
50162 else => .{ null, ty },50686 else => .{ null, ty },
50163 .vector_type => |vector_type| .{ vector_type.len, .fromInterned(vector_type.child) },50687 .vector_type => |vector_type| .{ vector_type.len, .fromInterned(vector_type.child) },
...@@ -50246,7 +50770,7 @@ const Select = struct {...@@ -50246,7 +50770,7 @@ const Select = struct {
50246 flags: packed struct(u16) {50770 flags: packed struct(u16) {
50247 tag: Tag,50771 tag: Tag,
50248 adjust: Adjust = .none,50772 adjust: Adjust = .none,
50249 unused: u4 = 0,50773 unused: u3 = 0,
50250 },50774 },
50251 base: Ref.Sized = .none,50775 base: Ref.Sized = .none,
50252 index: packed struct(u6) {50776 index: packed struct(u6) {
...@@ -50265,7 +50789,7 @@ const Select = struct {...@@ -50265,7 +50789,7 @@ const Select = struct {
50265 lea,50789 lea,
50266 mem,50790 mem,
50267 };50791 };
50268 const Adjust = packed struct(u9) {50792 const Adjust = packed struct(u10) {
50269 sign: enum(u1) { neg, pos },50793 sign: enum(u1) { neg, pos },
50270 lhs: enum(u5) {50794 lhs: enum(u5) {
50271 none,50795 none,
...@@ -50288,7 +50812,7 @@ const Select = struct {...@@ -50288,7 +50812,7 @@ const Select = struct {
50288 smax,50812 smax,
50289 umax,50813 umax,
50290 },50814 },
50291 op: enum(u1) { mul, div },50815 op: enum(u2) { mul, div, rem_8_mul },
50292 rhs: Memory.Scale,50816 rhs: Memory.Scale,
5029350817
50294 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };50818 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };
...@@ -50308,6 +50832,7 @@ const Select = struct {...@@ -50308,6 +50832,7 @@ const Select = struct {
50308 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };50832 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
50309 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };50833 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
50310 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };50834 const add_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
50835 const sub_bit_size_rem_64: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .rem_8_mul, .rhs = .@"8" };
50311 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };50836 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
50312 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };50837 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
50313 const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };50838 const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
...@@ -50356,6 +50881,7 @@ const Select = struct {...@@ -50356,6 +50881,7 @@ const Select = struct {
50356 const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };50881 const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };
50357 const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };50882 const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };
50358 const tmp0p: Sized = .{ .ref = .tmp0, .size = .ptr };50883 const tmp0p: Sized = .{ .ref = .tmp0, .size = .ptr };
50884 const tmp0g: Sized = .{ .ref = .tmp0, .size = .gpr };
50359 const tmp0q: Sized = .{ .ref = .tmp0, .size = .qword };50885 const tmp0q: Sized = .{ .ref = .tmp0, .size = .qword };
50360 const tmp0t: Sized = .{ .ref = .tmp0, .size = .tbyte };50886 const tmp0t: Sized = .{ .ref = .tmp0, .size = .tbyte };
50361 const tmp0x: Sized = .{ .ref = .tmp0, .size = .xword };50887 const tmp0x: Sized = .{ .ref = .tmp0, .size = .xword };
...@@ -50366,6 +50892,7 @@ const Select = struct {...@@ -50366,6 +50892,7 @@ const Select = struct {
50366 const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };50892 const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };
50367 const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };50893 const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };
50368 const tmp1p: Sized = .{ .ref = .tmp1, .size = .ptr };50894 const tmp1p: Sized = .{ .ref = .tmp1, .size = .ptr };
50895 const tmp1g: Sized = .{ .ref = .tmp1, .size = .gpr };
50369 const tmp1q: Sized = .{ .ref = .tmp1, .size = .qword };50896 const tmp1q: Sized = .{ .ref = .tmp1, .size = .qword };
50370 const tmp1t: Sized = .{ .ref = .tmp1, .size = .tbyte };50897 const tmp1t: Sized = .{ .ref = .tmp1, .size = .tbyte };
50371 const tmp1x: Sized = .{ .ref = .tmp1, .size = .xword };50898 const tmp1x: Sized = .{ .ref = .tmp1, .size = .xword };
...@@ -50376,6 +50903,7 @@ const Select = struct {...@@ -50376,6 +50903,7 @@ const Select = struct {
50376 const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };50903 const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };
50377 const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };50904 const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };
50378 const tmp2p: Sized = .{ .ref = .tmp2, .size = .ptr };50905 const tmp2p: Sized = .{ .ref = .tmp2, .size = .ptr };
50906 const tmp2g: Sized = .{ .ref = .tmp2, .size = .gpr };
50379 const tmp2q: Sized = .{ .ref = .tmp2, .size = .qword };50907 const tmp2q: Sized = .{ .ref = .tmp2, .size = .qword };
50380 const tmp2t: Sized = .{ .ref = .tmp2, .size = .tbyte };50908 const tmp2t: Sized = .{ .ref = .tmp2, .size = .tbyte };
50381 const tmp2x: Sized = .{ .ref = .tmp2, .size = .xword };50909 const tmp2x: Sized = .{ .ref = .tmp2, .size = .xword };
...@@ -50386,6 +50914,7 @@ const Select = struct {...@@ -50386,6 +50914,7 @@ const Select = struct {
50386 const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };50914 const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };
50387 const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };50915 const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };
50388 const tmp3p: Sized = .{ .ref = .tmp3, .size = .ptr };50916 const tmp3p: Sized = .{ .ref = .tmp3, .size = .ptr };
50917 const tmp3g: Sized = .{ .ref = .tmp3, .size = .gpr };
50389 const tmp3q: Sized = .{ .ref = .tmp3, .size = .qword };50918 const tmp3q: Sized = .{ .ref = .tmp3, .size = .qword };
50390 const tmp3t: Sized = .{ .ref = .tmp3, .size = .tbyte };50919 const tmp3t: Sized = .{ .ref = .tmp3, .size = .tbyte };
50391 const tmp3x: Sized = .{ .ref = .tmp3, .size = .xword };50920 const tmp3x: Sized = .{ .ref = .tmp3, .size = .xword };
...@@ -50396,6 +50925,7 @@ const Select = struct {...@@ -50396,6 +50925,7 @@ const Select = struct {
50396 const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };50925 const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };
50397 const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };50926 const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };
50398 const tmp4p: Sized = .{ .ref = .tmp4, .size = .ptr };50927 const tmp4p: Sized = .{ .ref = .tmp4, .size = .ptr };
50928 const tmp4g: Sized = .{ .ref = .tmp4, .size = .gpr };
50399 const tmp4q: Sized = .{ .ref = .tmp4, .size = .qword };50929 const tmp4q: Sized = .{ .ref = .tmp4, .size = .qword };
50400 const tmp4t: Sized = .{ .ref = .tmp4, .size = .tbyte };50930 const tmp4t: Sized = .{ .ref = .tmp4, .size = .tbyte };
50401 const tmp4x: Sized = .{ .ref = .tmp4, .size = .xword };50931 const tmp4x: Sized = .{ .ref = .tmp4, .size = .xword };
...@@ -50406,6 +50936,7 @@ const Select = struct {...@@ -50406,6 +50936,7 @@ const Select = struct {
50406 const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };50936 const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };
50407 const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };50937 const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };
50408 const tmp5p: Sized = .{ .ref = .tmp5, .size = .ptr };50938 const tmp5p: Sized = .{ .ref = .tmp5, .size = .ptr };
50939 const tmp5g: Sized = .{ .ref = .tmp5, .size = .gpr };
50409 const tmp5q: Sized = .{ .ref = .tmp5, .size = .qword };50940 const tmp5q: Sized = .{ .ref = .tmp5, .size = .qword };
50410 const tmp5t: Sized = .{ .ref = .tmp5, .size = .tbyte };50941 const tmp5t: Sized = .{ .ref = .tmp5, .size = .tbyte };
50411 const tmp5x: Sized = .{ .ref = .tmp5, .size = .xword };50942 const tmp5x: Sized = .{ .ref = .tmp5, .size = .xword };
...@@ -50416,6 +50947,7 @@ const Select = struct {...@@ -50416,6 +50947,7 @@ const Select = struct {
50416 const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };50947 const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };
50417 const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };50948 const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };
50418 const tmp6p: Sized = .{ .ref = .tmp6, .size = .ptr };50949 const tmp6p: Sized = .{ .ref = .tmp6, .size = .ptr };
50950 const tmp6g: Sized = .{ .ref = .tmp6, .size = .gpr };
50419 const tmp6q: Sized = .{ .ref = .tmp6, .size = .qword };50951 const tmp6q: Sized = .{ .ref = .tmp6, .size = .qword };
50420 const tmp6t: Sized = .{ .ref = .tmp6, .size = .tbyte };50952 const tmp6t: Sized = .{ .ref = .tmp6, .size = .tbyte };
50421 const tmp6x: Sized = .{ .ref = .tmp6, .size = .xword };50953 const tmp6x: Sized = .{ .ref = .tmp6, .size = .xword };
...@@ -50426,6 +50958,7 @@ const Select = struct {...@@ -50426,6 +50958,7 @@ const Select = struct {
50426 const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };50958 const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };
50427 const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };50959 const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };
50428 const tmp7p: Sized = .{ .ref = .tmp7, .size = .ptr };50960 const tmp7p: Sized = .{ .ref = .tmp7, .size = .ptr };
50961 const tmp7g: Sized = .{ .ref = .tmp7, .size = .gpr };
50429 const tmp7q: Sized = .{ .ref = .tmp7, .size = .qword };50962 const tmp7q: Sized = .{ .ref = .tmp7, .size = .qword };
50430 const tmp7t: Sized = .{ .ref = .tmp7, .size = .tbyte };50963 const tmp7t: Sized = .{ .ref = .tmp7, .size = .tbyte };
50431 const tmp7x: Sized = .{ .ref = .tmp7, .size = .xword };50964 const tmp7x: Sized = .{ .ref = .tmp7, .size = .xword };
...@@ -50436,6 +50969,7 @@ const Select = struct {...@@ -50436,6 +50969,7 @@ const Select = struct {
50436 const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };50969 const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };
50437 const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };50970 const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };
50438 const tmp8p: Sized = .{ .ref = .tmp8, .size = .ptr };50971 const tmp8p: Sized = .{ .ref = .tmp8, .size = .ptr };
50972 const tmp8g: Sized = .{ .ref = .tmp8, .size = .gpr };
50439 const tmp8q: Sized = .{ .ref = .tmp8, .size = .qword };50973 const tmp8q: Sized = .{ .ref = .tmp8, .size = .qword };
50440 const tmp8t: Sized = .{ .ref = .tmp8, .size = .tbyte };50974 const tmp8t: Sized = .{ .ref = .tmp8, .size = .tbyte };
50441 const tmp8x: Sized = .{ .ref = .tmp8, .size = .xword };50975 const tmp8x: Sized = .{ .ref = .tmp8, .size = .xword };
...@@ -50446,6 +50980,7 @@ const Select = struct {...@@ -50446,6 +50980,7 @@ const Select = struct {
50446 const dst0w: Sized = .{ .ref = .dst0, .size = .word };50980 const dst0w: Sized = .{ .ref = .dst0, .size = .word };
50447 const dst0d: Sized = .{ .ref = .dst0, .size = .dword };50981 const dst0d: Sized = .{ .ref = .dst0, .size = .dword };
50448 const dst0p: Sized = .{ .ref = .dst0, .size = .ptr };50982 const dst0p: Sized = .{ .ref = .dst0, .size = .ptr };
50983 const dst0g: Sized = .{ .ref = .dst0, .size = .gpr };
50449 const dst0q: Sized = .{ .ref = .dst0, .size = .qword };50984 const dst0q: Sized = .{ .ref = .dst0, .size = .qword };
50450 const dst0t: Sized = .{ .ref = .dst0, .size = .tbyte };50985 const dst0t: Sized = .{ .ref = .dst0, .size = .tbyte };
50451 const dst0x: Sized = .{ .ref = .dst0, .size = .xword };50986 const dst0x: Sized = .{ .ref = .dst0, .size = .xword };
...@@ -50456,6 +50991,7 @@ const Select = struct {...@@ -50456,6 +50991,7 @@ const Select = struct {
50456 const src0w: Sized = .{ .ref = .src0, .size = .word };50991 const src0w: Sized = .{ .ref = .src0, .size = .word };
50457 const src0d: Sized = .{ .ref = .src0, .size = .dword };50992 const src0d: Sized = .{ .ref = .src0, .size = .dword };
50458 const src0p: Sized = .{ .ref = .src0, .size = .ptr };50993 const src0p: Sized = .{ .ref = .src0, .size = .ptr };
50994 const src0g: Sized = .{ .ref = .src0, .size = .gpr };
50459 const src0q: Sized = .{ .ref = .src0, .size = .qword };50995 const src0q: Sized = .{ .ref = .src0, .size = .qword };
50460 const src0t: Sized = .{ .ref = .src0, .size = .tbyte };50996 const src0t: Sized = .{ .ref = .src0, .size = .tbyte };
50461 const src0x: Sized = .{ .ref = .src0, .size = .xword };50997 const src0x: Sized = .{ .ref = .src0, .size = .xword };
...@@ -50466,15 +51002,24 @@ const Select = struct {...@@ -50466,15 +51002,24 @@ const Select = struct {
50466 const src1w: Sized = .{ .ref = .src1, .size = .word };51002 const src1w: Sized = .{ .ref = .src1, .size = .word };
50467 const src1d: Sized = .{ .ref = .src1, .size = .dword };51003 const src1d: Sized = .{ .ref = .src1, .size = .dword };
50468 const src1p: Sized = .{ .ref = .src1, .size = .ptr };51004 const src1p: Sized = .{ .ref = .src1, .size = .ptr };
51005 const src1g: Sized = .{ .ref = .src1, .size = .gpr };
50469 const src1q: Sized = .{ .ref = .src1, .size = .qword };51006 const src1q: Sized = .{ .ref = .src1, .size = .qword };
50470 const src1t: Sized = .{ .ref = .src1, .size = .tbyte };51007 const src1t: Sized = .{ .ref = .src1, .size = .tbyte };
50471 const src1x: Sized = .{ .ref = .src1, .size = .xword };51008 const src1x: Sized = .{ .ref = .src1, .size = .xword };
50472 const src1y: Sized = .{ .ref = .src1, .size = .yword };51009 const src1y: Sized = .{ .ref = .src1, .size = .yword };
50473 };51010 };
5047451011
50475 fn deref(ref: Ref, s: *const Select) Temp {51012 fn typeOf(ref: Ref, s: *const Select) Type {
51013 return s.types[@intFromEnum(ref)];
51014 }
51015
51016 fn tempOf(ref: Ref, s: *const Select) Temp {
50476 return s.temps[@intFromEnum(ref)];51017 return s.temps[@intFromEnum(ref)];
50477 }51018 }
51019
51020 fn valueOf(ref: Ref, s: *const Select) MCValue {
51021 return s.temps[@intFromEnum(ref)].tracking(s.cg).short;
51022 }
50478 };51023 };
5047951024
50480 const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };51025 const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };
...@@ -50490,6 +51035,7 @@ const Select = struct {...@@ -50490,6 +51035,7 @@ const Select = struct {
50490 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };51035 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };
50491 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };51036 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };
50492 const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };51037 const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };
51038 const tmp0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0g };
50493 const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };51039 const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };
50494 const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };51040 const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };
50495 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };51041 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };
...@@ -50499,6 +51045,7 @@ const Select = struct {...@@ -50499,6 +51045,7 @@ const Select = struct {
50499 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };51045 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };
50500 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };51046 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };
50501 const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };51047 const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };
51048 const tmp1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1g };
50502 const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };51049 const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };
50503 const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };51050 const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };
50504 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };51051 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };
...@@ -50508,6 +51055,7 @@ const Select = struct {...@@ -50508,6 +51055,7 @@ const Select = struct {
50508 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };51055 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };
50509 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };51056 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };
50510 const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };51057 const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };
51058 const tmp2g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2g };
50511 const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };51059 const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };
50512 const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };51060 const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };
50513 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };51061 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };
...@@ -50517,6 +51065,7 @@ const Select = struct {...@@ -50517,6 +51065,7 @@ const Select = struct {
50517 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };51065 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };
50518 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };51066 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };
50519 const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };51067 const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };
51068 const tmp3g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3g };
50520 const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };51069 const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };
50521 const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };51070 const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };
50522 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };51071 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };
...@@ -50526,6 +51075,7 @@ const Select = struct {...@@ -50526,6 +51075,7 @@ const Select = struct {
50526 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };51075 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };
50527 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };51076 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };
50528 const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };51077 const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };
51078 const tmp4g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4g };
50529 const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };51079 const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };
50530 const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };51080 const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };
50531 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };51081 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };
...@@ -50535,6 +51085,7 @@ const Select = struct {...@@ -50535,6 +51085,7 @@ const Select = struct {
50535 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };51085 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };
50536 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };51086 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };
50537 const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };51087 const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };
51088 const tmp5g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5g };
50538 const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };51089 const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };
50539 const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };51090 const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };
50540 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };51091 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };
...@@ -50544,6 +51095,7 @@ const Select = struct {...@@ -50544,6 +51095,7 @@ const Select = struct {
50544 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };51095 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };
50545 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };51096 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };
50546 const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };51097 const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };
51098 const tmp6g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6g };
50547 const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };51099 const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };
50548 const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };51100 const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };
50549 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };51101 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };
...@@ -50553,6 +51105,7 @@ const Select = struct {...@@ -50553,6 +51105,7 @@ const Select = struct {
50553 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };51105 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };
50554 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };51106 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };
50555 const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };51107 const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };
51108 const tmp7g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7g };
50556 const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };51109 const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };
50557 const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };51110 const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };
50558 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };51111 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };
...@@ -50562,6 +51115,7 @@ const Select = struct {...@@ -50562,6 +51115,7 @@ const Select = struct {
50562 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };51115 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };
50563 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };51116 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };
50564 const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };51117 const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };
51118 const tmp8g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8g };
50565 const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };51119 const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };
50566 const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };51120 const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };
50567 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };51121 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };
...@@ -50571,6 +51125,7 @@ const Select = struct {...@@ -50571,6 +51125,7 @@ const Select = struct {
50571 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };51125 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };
50572 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };51126 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };
50573 const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };51127 const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };
51128 const dst0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0g };
50574 const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };51129 const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };
50575 const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };51130 const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };
50576 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };51131 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };
...@@ -50580,6 +51135,7 @@ const Select = struct {...@@ -50580,6 +51135,7 @@ const Select = struct {
50580 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };51135 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };
50581 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };51136 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };
50582 const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };51137 const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };
51138 const src0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0g };
50583 const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };51139 const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };
50584 const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };51140 const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };
50585 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };51141 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };
...@@ -50589,6 +51145,7 @@ const Select = struct {...@@ -50589,6 +51145,7 @@ const Select = struct {
50589 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };51145 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };
50590 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };51146 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };
50591 const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };51147 const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };
51148 const src1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1g };
50592 const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };51149 const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };
50593 const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };51150 const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };
50594 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };51151 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };
...@@ -50786,36 +51343,36 @@ const Select = struct {...@@ -50786,36 +51343,36 @@ const Select = struct {
50786 .none => 0,51343 .none => 0,
50787 .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),51344 .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),
50788 .ptr_bit_size => s.cg.target.ptrBitWidth(),51345 .ptr_bit_size => s.cg.target.ptrBitWidth(),
50789 .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)),51346 .size => @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)),
50790 .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu))) -51347 .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) -
50791 @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).abiSize(s.cg.pt.zcu)))),51348 @as(SignedImm, @intCast(op.index.ref.typeOf(s).abiSize(s.cg.pt.zcu)))),
50792 .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))) -51349 .delta_elem_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))) -
50793 @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),51350 @as(SignedImm, @intCast(op.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
50794 .size_sub_elem_size => {51351 .size_sub_elem_size => {
50795 const ty = op.base.ref.deref(s).typeOf(s.cg);51352 const ty = op.base.ref.typeOf(s);
50796 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));51353 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
50797 },51354 },
50798 .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.deref(s).typeOf(s.cg))),51355 .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.typeOf(s))),
50799 .bit_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),51356 .bit_size => @intCast(op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
50800 .src0_bit_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),51357 .src0_bit_size => @intCast(Select.Operand.Ref.src0.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu)),
50801 .len => @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu)),51358 .len => @intCast(op.base.ref.typeOf(s).vectorLen(s.cg.pt.zcu)),
50802 .elem_limbs => @intCast(@divExact(51359 .elem_limbs => @intCast(@divExact(
50803 op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),51360 op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).abiSize(s.cg.pt.zcu),
50804 @divExact(op.base.size.bitSize(s.cg.target), 8),51361 @divExact(op.base.size.bitSize(s.cg.target), 8),
50805 )),51362 )),
50806 .elem_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),51363 .elem_size => @intCast(op.base.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
50807 .src0_elem_size => @intCast(Select.Operand.Ref.src0.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),51364 .src0_elem_size => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)),
50808 .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) *51365 .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) *
50809 Select.Operand.Ref.src1.deref(s).tracking(s.cg).short.immediate),51366 Select.Operand.Ref.src1.valueOf(s).immediate),
50810 .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))),51367 .log2_src0_elem_size => @intCast(std.math.log2(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu))),
50811 .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(51368 .smin => @as(SignedImm, std.math.minInt(SignedImm)) >> @truncate(
50812 -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),51369 -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
50813 ),51370 ),
50814 .smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(51371 .smax => @as(SignedImm, std.math.maxInt(SignedImm)) >> @truncate(
50815 -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),51372 -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
50816 ),51373 ),
50817 .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(51374 .umax => @bitCast(@as(UnsignedImm, std.math.maxInt(UnsignedImm)) >> @truncate(
50818 -%op.base.ref.deref(s).typeOf(s.cg).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),51375 -%op.base.ref.typeOf(s).scalarType(s.cg.pt.zcu).bitSize(s.cg.pt.zcu),
50819 )),51376 )),
50820 };51377 };
50821 const rhs = op.flags.adjust.rhs.toLog2();51378 const rhs = op.flags.adjust.rhs.toLog2();
...@@ -50826,6 +51383,7 @@ const Select = struct {...@@ -50826,6 +51383,7 @@ const Select = struct {
50826 break :res res[0];51383 break :res res[0];
50827 },51384 },
50828 .div => @shrExact(lhs, rhs),51385 .div => @shrExact(lhs, rhs),
51386 .rem_8_mul => lhs & (@as(SignedImm, 1) << @intCast(@as(u3, 3) + rhs)) - 1,
50829 };51387 };
50830 return switch (op.flags.adjust.sign) {51388 return switch (op.flags.adjust.sign) {
50831 .neg => op.imm - res,51389 .neg => op.imm - res,
...@@ -50842,7 +51400,7 @@ const Select = struct {...@@ -50842,7 +51400,7 @@ const Select = struct {
50842 label.* = @intCast(s.cg.mir_instructions.len);51400 label.* = @intCast(s.cg.mir_instructions.len);
50843 break .{ .inst = undefined };51401 break .{ .inst = undefined };
50844 } else unreachable,51402 } else unreachable,
50845 .ref => switch (op.base.ref.deref(s).tracking(s.cg).short) {51403 .ref => switch (op.base.ref.valueOf(s)) {
50846 .immediate => |imm| .{ .imm = switch (op.base.size) {51404 .immediate => |imm| .{ .imm = switch (op.base.size) {
50847 .byte => if (std.math.cast(i8, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u8, @intCast(imm))),51405 .byte => if (std.math.cast(i8, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u8, @intCast(imm))),
50848 .word => if (std.math.cast(i16, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u16, @intCast(imm))),51406 .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 {...@@ -50857,21 +51415,21 @@ const Select = struct {
50857 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },51415 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
50858 .uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) },51416 .uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) },
50859 .lea => .{ .mem = .{51417 .lea => .{ .mem = .{
50860 .base = .{ .reg = registerAlias(op.base.ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)) },51418 .base = .{ .reg = registerAlias(op.base.ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)) },
50861 .mod = .{ .rm = .{51419 .mod = .{ .rm = .{
50862 .size = op.base.size,51420 .size = op.base.size,
50863 .index = switch (op.index.ref) {51421 .index = switch (op.index.ref) {
50864 else => |ref| registerAlias(ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)),51422 else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),
50865 .none => .none,51423 .none => .none,
50866 },51424 },
50867 .scale = op.index.scale,51425 .scale = op.index.scale,
50868 .disp = op.adjustedImm(i32, s),51426 .disp = op.adjustedImm(i32, s),
50869 } },51427 } },
50870 } },51428 } },
50871 .mem => .{ .mem = try op.base.ref.deref(s).tracking(s.cg).short.mem(s.cg, .{51429 .mem => .{ .mem = try op.base.ref.valueOf(s).mem(s.cg, .{
50872 .size = op.base.size,51430 .size = op.base.size,
50873 .index = switch (op.index.ref) {51431 .index = switch (op.index.ref) {
50874 else => |ref| registerAlias(ref.deref(s).tracking(s.cg).short.register, @divExact(s.cg.target.ptrBitWidth(), 8)),51432 else => |ref| registerAlias(ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),
50875 .none => .none,51433 .none => .none,
50876 },51434 },
50877 .scale = op.index.scale,51435 .scale = op.index.scale,
...@@ -50888,7 +51446,7 @@ fn select(...@@ -50888,7 +51446,7 @@ fn select(
50888 src_temps: []Temp,51446 src_temps: []Temp,
50889 cases: []const Select.Case,51447 cases: []const Select.Case,
50890) !void {51448) !void {
50891 @setEvalBranchQuota(33_600);51449 @setEvalBranchQuota(33_500);
50892 cases: for (cases) |case| {51450 cases: for (cases) |case| {
50893 for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases;51451 for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases;
50894 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;51452 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(...@@ -50914,12 +51472,21 @@ fn select(
50914 var s: Select = .{51472 var s: Select = .{
50915 .cg = cg,51473 .cg = cg,
50916 .temps = undefined,51474 .temps = undefined,
51475 .types = undefined,
50917 .labels = @splat(.{ .forward = @splat(null), .backward = null }),51476 .labels = @splat(.{ .forward = @splat(null), .backward = null }),
50918 .top = 0,51477 .top = 0,
50919 };51478 };
50920 const tmp_slots = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];51479 const s_tmp_types = s.types[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
50921 const dst_slots = s.temps[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];51480 const s_tmp_temps = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
50922 const src_slots = s.temps[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];51481 const s_dst_types = s.types[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
51482 const s_dst_temps = s.temps[@intFromEnum(Select.Operand.Ref.dst0)..@intFromEnum(Select.Operand.Ref.src0)];
51483 const s_src_types = s.types[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
51484 const s_src_temps = s.temps[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
51485
51486 for (s_tmp_types, case.extra_temps) |*ty, spec| ty.* = spec.type;
51487 @memcpy(s_dst_types[0..dst_tys.len], dst_tys);
51488 for (s_src_types[0..src_temps.len], src_temps) |*ty, temp| ty.* = temp.typeOf(cg);
51489 std.mem.swap(Type, &s_src_types[pattern.commute[0]], &s_src_types[pattern.commute[1]]);
5092351490
50924 caller_preserved: {51491 caller_preserved: {
50925 const cc = switch (case.clobbers.caller_preserved) {51492 const cc = switch (case.clobbers.caller_preserved) {
...@@ -50943,23 +51510,23 @@ fn select(...@@ -50943,23 +51510,23 @@ fn select(
50943 }51510 }
50944 }51511 }
5094551512
50946 @memcpy(src_slots[0..src_temps.len], src_temps);51513 @memcpy(s_src_temps[0..src_temps.len], src_temps);
50947 std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);51514 std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
50948 for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| {51515 for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| {
50949 if (dst_kind.pass() != 1) continue;51516 if (dst_kind.pass() != 1) continue;
50950 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);51517 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
50951 }51518 }
50952 var tmp_owned: [tmp_slots.len]bool = @splat(false);51519 var tmp_owned: [s_tmp_temps.len]bool = @splat(false);
50953 for (1..3) |pass| for (tmp_slots, &tmp_owned, case.extra_temps) |*slot, *owned, spec| {51520 for (1..3) |pass| for (s_tmp_temps, &tmp_owned, case.extra_temps) |*temp, *owned, spec| {
50954 if (spec.kind.pass() != pass) continue;51521 if (spec.kind.pass() != pass) continue;
50955 slot.*, owned.* = try spec.create(&s);51522 temp.*, owned.* = try spec.create(&s);
50956 };51523 };
5095751524
50958 while (true) for (pattern.src[0..src_temps.len], src_temps) |src_pattern, *src_temp| {51525 while (true) for (pattern.src[0..src_temps.len], src_temps) |src_pattern, *src_temp| {
50959 if (try src_pattern.convert(src_temp, cg)) break;51526 if (try src_pattern.convert(src_temp, cg)) break;
50960 } else break;51527 } else break;
50961 @memcpy(src_slots[0..src_temps.len], src_temps);51528 @memcpy(s_src_temps[0..src_temps.len], src_temps);
50962 std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);51529 std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
5096351530
50964 if (case.clobbers.eflags) try cg.spillEflagsIfOccupied();51531 if (case.clobbers.eflags) try cg.spillEflagsIfOccupied();
5096551532
...@@ -50967,7 +51534,7 @@ fn select(...@@ -50967,7 +51534,7 @@ fn select(
50967 if (dst_kind.pass() != 2) continue;51534 if (dst_kind.pass() != 2) continue;
50968 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);51535 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
50969 }51536 }
50970 @memcpy(dst_slots[0..dst_temps.len], dst_temps);51537 @memcpy(s_dst_temps[0..dst_temps.len], dst_temps);
5097151538
50972 switch (case.each) {51539 switch (case.each) {
50973 .once => |body| {51540 .once => |body| {
...@@ -50996,7 +51563,7 @@ fn select(...@@ -50996,7 +51563,7 @@ fn select(
50996 }51563 }
50997 }51564 }
50998 for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, dst_kind| dst_kind.finish(dst_temp, &s);51565 for (dst_temps, case.dst_temps[0..dst_temps.len]) |dst_temp, dst_kind| dst_kind.finish(dst_temp, &s);
50999 for (tmp_owned, tmp_slots) |owned, temp| if (owned) try temp.die(cg);51566 for (tmp_owned, s_tmp_temps) |owned, temp| if (owned) try temp.die(cg);
51000 return;51567 return;
51001 }51568 }
51002 }51569 }
src/arch/x86_64/bits.zig+7-1
...@@ -702,6 +702,7 @@ pub const Memory = struct {...@@ -702,6 +702,7 @@ pub const Memory = struct {
702 pub const Size = enum(u4) {702 pub const Size = enum(u4) {
703 none,703 none,
704 ptr,704 ptr,
705 gpr,
705 byte,706 byte,
706 word,707 word,
707 dword,708 dword,
...@@ -742,6 +743,11 @@ pub const Memory = struct {...@@ -742,6 +743,11 @@ pub const Memory = struct {
742 return switch (s) {743 return switch (s) {
743 .none => 0,744 .none => 0,
744 .ptr => target.ptrBitWidth(),745 .ptr => target.ptrBitWidth(),
746 .gpr => switch (target.cpu.arch) {
747 else => unreachable,
748 .x86 => 32,
749 .x86_64 => 64,
750 },
745 .byte => 8,751 .byte => 8,
746 .word => 16,752 .word => 16,
747 .dword => 32,753 .dword => 32,
...@@ -763,7 +769,7 @@ pub const Memory = struct {...@@ -763,7 +769,7 @@ pub const Memory = struct {
763 try writer.writeAll(@tagName(s));769 try writer.writeAll(@tagName(s));
764 switch (s) {770 switch (s) {
765 .none => unreachable,771 .none => unreachable,
766 .ptr => {},772 .ptr, .gpr => {},
767 else => {773 else => {
768 try writer.writeByte(' ');774 try writer.writeByte(' ');
769 try writer.writeAll("ptr");775 try writer.writeAll("ptr");
test/behavior/x86_64/math.zig+725-672
...@@ -5222,1392 +5222,1437 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty...@@ -5222,1392 +5222,1437 @@ fn cast(comptime op: anytype, comptime opts: struct { strict: bool = false }) ty
5222 try testArgs(f128, f128, inf(f128));5222 try testArgs(f128, f128, inf(f128));
5223 try testArgs(f128, f128, nan(f128));5223 try testArgs(f128, f128, nan(f128));
5224 }5224 }
5225 fn testSameSignednessIntVectors() !void {
5226 try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
5227 try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
5228 try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
5229 try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
5230 try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
5231 try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
5232 try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
5233 try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
5234 try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
5235 try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
5236 try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
5237 try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
5238 try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
5239 try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
5240 try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
5241 try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
5242
5243 try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
5244 try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
5245 try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
5246 try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
5247 try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
5248 try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
5249 try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
5250 try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
5251 try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
5252 try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
5253 try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
5254 try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
5255 try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
5256 try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
5257 try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
5258 try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
5259
5260 try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5261 try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5262 try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5263 try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5264 try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5265 try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5266 try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5267 try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5268 try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5269 try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5270 try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5271 try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5272 try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5273 try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5274 try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5275 try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5276
5277 try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5278 try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5279 try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5280 try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5281 try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5282 try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5283 try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5284 try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5285 try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5286 try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5287 try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5288 try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5289 try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5290 try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5291 try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5292 try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5293
5294 try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5295 try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5296 try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5297 try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5298 try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5299 try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5300 try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5301 try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5302 try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5303 try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5304 try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5305 try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5306 try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5307 try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5308 try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5309 try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5310
5311 try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5312 try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5313 try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5314 try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5315 try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5316 try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5317 try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5318 try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5319 try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5320 try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5321 try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5322 try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5323 try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5324 try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5325 try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5326 try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5327
5328 try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5329 try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5330 try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5331 try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5332 try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5333 try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5334 try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5335 try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5336 try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5337 try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5338 try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5339 try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5340 try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5341 try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5342 try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5343 try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5344
5345 try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5346 try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5347 try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5348 try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5349 try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5350 try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5351 try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5352 try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5353 try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5354 try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5355 try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5356 try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5357 try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5358 try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5359 try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5360 try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5361
5362 try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5363 try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5364 try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5365 try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5366 try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5367 try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5368 try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5369 try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5370 try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5371 try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5372 try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5373 try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5374 try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5375 try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5376 try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5377 try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5378
5379 try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5380 try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5381 try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5382 try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5383 try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5384 try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5385 try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5386 try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5387 try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5388 try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5389 try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5390 try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5391 try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5392 try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5393 try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5394 try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5395
5396 try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5397 try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5398 try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5399 try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5400 try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5401 try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5402 try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5403 try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5404 try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5405 try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5406 try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5407 try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5408 try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5409 try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5410 try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5411 try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5412
5413 try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5414 try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5415 try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5416 try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5417 try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5418 try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5419 try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5420 try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5421 try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5422 try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5423 try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5424 try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5425 try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5426 try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5427 try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5428 try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5429
5430 try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5431 try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5432 try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5433 try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5434 try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5435 try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5436 try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5437 try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5438 try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5439 try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5440 try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5441 try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5442 try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5443 try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5444 try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5445 try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5446
5447 try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5448 try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5449 try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5450 try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5451 try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5452 try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5453 try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5454 try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5455 try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5456 try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5457 try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5458 try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5459 try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5460 try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5461 try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5462 try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5463
5464 try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5465 try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5466 try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5467 try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5468 try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5469 try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5470 try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5471 try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5472 try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5473 try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5474 try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5475 try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5476 try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5477 try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5478 try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5479 try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5480
5481 try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5482 try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5483 try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5484 try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5485 try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5486 try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5487 try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5488 try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5489 try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5490 try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5491 try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5492 try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5493 try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5494 try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5495 try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5496 try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5497
5498 try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5499 try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5500 try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5501 try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5502 try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5503 try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5504 try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5505 try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5506 try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5507 try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5508 try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5509 try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5510 try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5511 try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5512 try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5513 try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5514
5515 try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5516 try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5517 try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5518 try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5519 try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5520 try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5521 try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5522 try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5523 try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5524 try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5525 try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5526 try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5527 try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5528 try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5529 try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5530 try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5531
5532 try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5533 try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5534 try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5535 try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5536 try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5537 try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5538 try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5539 try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5540 try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5541 try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5542 try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5543 try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5544 try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5545 try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5546 try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5547 try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5548
5549 try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5550 try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5551 try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5552 try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5553 try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5554 try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5555 try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5556 try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5557 try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5558 try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5559 try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5560 try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5561 try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5562 try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5563 try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5564 try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5565
5566 try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5567 try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5568 try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5569 try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5570 try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5571 try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5572 try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5573 try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5574 try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5575 try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5576 try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5577 try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5578 try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5579 try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5580 try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5581 try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5582
5583 try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5584 try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5585 try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5586 try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5587 try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5588 try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5589 try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5590 try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5591 try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5592 try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5593 try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5594 try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5595 try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5596 try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5597 try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5598 try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5599
5600 try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5601 try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5602 try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5603 try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5604 try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5605 try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5606 try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5607 try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5608 try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5609 try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5610 try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5611 try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5612 try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5613 try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5614 try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5615 try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5616
5617 try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5618 try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5619 try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5620 try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5621 try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5622 try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5623 try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5624 try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5625 try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5626 try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5627 try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5628 try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5629 try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5630 try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5631 try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5632 try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
5633
5634 try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5635 try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5636 try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5637 try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5638 try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5639 try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5640 try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5641 try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
5642 try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5643 try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5644 try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5645 try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5646 try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5647 try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5648 try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5649 try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
5650
5651 try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5652 try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5653 try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5654 try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5655 try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5656 try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5657 try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5658 try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
5659 try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5660 try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5661 try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5662 try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5663 try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5664 try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5665 try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5666 try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
5667
5668 try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5669 try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5670 try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5671 try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5672 try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5673 try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5674 try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5675 try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
5676 try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5677 try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5678 try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5679 try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5680 try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5681 try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5682 try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5683 try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
5684
5685 try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5686 try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5687 try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5688 try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5689 try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5690 try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5691 try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5692 try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
5693 try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5694 try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5695 try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5696 try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5697 try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5698 try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5699 try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5700 try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
5701
5702 try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5703 try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5704 try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5705 try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5706 try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5707 try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5708 try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5709 try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5710 try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5711 try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5712 try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5713 try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5714 try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5715 try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5716 try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5717 try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5718
5719 try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5720 try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5721 try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5722 try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5723 try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5724 try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5725 try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5726 try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5727 try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5728 try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5729 try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5730 try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5731 try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5732 try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5733 try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5734 try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5735
5736 try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5737 try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5738 try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5739 try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5740 try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5741 try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5742 try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5743 try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5744 try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5745 try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5746 try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5747 try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5748 try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5749 try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5750 try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5751 try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5752
5753 try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5754 try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5755 try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5756 try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5757 try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5758 try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5759 try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5760 try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5761 try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5762 try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5763 try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5764 try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5765 try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5766 try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5767 try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5768 try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5769
5770 try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5771 try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5772 try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5773 try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5774 try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5775 try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5776 try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5777 try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5778 try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5779 try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5780 try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5781 try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5782 try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5783 try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5784 try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5785 try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5786
5787 try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5788 try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5789 try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5790 try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5791 try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5792 try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5793 try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5794 try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5795 try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5796 try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5797 try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5798 try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5799 try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5800 try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5801 try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5802 try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5803
5804 try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5805 try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5806 try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5807 try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5808 try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5809 try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5810 try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5811 try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5812 try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5813 try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5814 try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5815 try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5816 try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5817 try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5818 try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5819 try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5820
5821 try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5822 try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5823 try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5824 try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5825 try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5826 try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5827 try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5828 try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5829 try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5830 try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5831 try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5832 try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5833 try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5834 try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5835 try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5836 try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5837
5838 try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5839 try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5840 try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5841 try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5842 try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5843 try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5844 try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5845 try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5846 try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5847 try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5848 try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5849 try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5850 try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5851 try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5852 try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5853 try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5854
5855 try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5856 try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5857 try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5858 try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5859 try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5860 try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5861 try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5862 try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5863 try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5864 try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5865 try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5866 try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5867 try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5868 try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5869 try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5870 try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5871
5872 try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5873 try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5874 try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5875 try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5876 try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5877 try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5878 try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5879 try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5880 try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5881 try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5882 try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5883 try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5884 try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5885 try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5886 try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5887 try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5888
5889 try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5890 try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5891 try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5892 try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5893 try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5894 try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5895 try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5896 try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5897 try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5898 try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5899 try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5900 try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5901 try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5902 try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5903 try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5904 try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5905
5906 try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5907 try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5908 try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5909 try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5910 try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5911 try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5912 try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5913 try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5914 try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5915 try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5916 try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5917 try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5918 try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5919 try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5920 try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5921 try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5922
5923 try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5924 try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5925 try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5926 try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5927 try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5928 try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5929 try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5930 try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5931 try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5932 try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5933 try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5934 try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5935 try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5936 try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5937 try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5938 try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5939 }
5225 fn testIntVectors() !void {5940 fn testIntVectors() !void {
5226 try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});5941 try testSameSignednessIntVectors();
5942
5227 try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});5943 try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});
5228 try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
5229 try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});5944 try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});
5230 try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
5231 try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});5945 try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});
5232 try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
5233 try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});5946 try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});
5234 try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
5235 try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});5947 try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});
5236 try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
5237 try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});5948 try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});
5238 try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
5239 try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});5949 try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});
5240 try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
5241 try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});5950 try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});
5242 try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});5951 try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});
5243 try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
5244 try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});5952 try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});
5245 try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
5246 try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});5953 try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});
5247 try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
5248 try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});5954 try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});
5249 try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
5250 try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});5955 try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});
5251 try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
5252 try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});5956 try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});
5253 try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
5254 try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});5957 try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});
5255 try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
5256 try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1});5958 try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1});
5257 try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
52585959
5259 try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
5260 try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });5960 try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });
5261 try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
5262 try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });5961 try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });
5263 try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
5264 try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });5962 try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });
5265 try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
5266 try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });5963 try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });
5267 try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
5268 try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });5964 try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });
5269 try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
5270 try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });5965 try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });
5271 try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
5272 try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });5966 try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });
5273 try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
5274 try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });5967 try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });
5275 try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });5968 try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });
5276 try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
5277 try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });5969 try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });
5278 try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
5279 try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });5970 try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });
5280 try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
5281 try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });5971 try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });
5282 try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
5283 try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });5972 try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });
5284 try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
5285 try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });5973 try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });
5286 try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
5287 try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });5974 try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });
5288 try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
5289 try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 });5975 try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 });
5290 try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
52915976
5292 try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5293 try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 });5977 try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5294 try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5295 try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 });5978 try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5296 try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5297 try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 });5979 try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5298 try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5299 try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 });5980 try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5300 try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5301 try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 });5981 try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5302 try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5303 try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 });5982 try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5304 try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5305 try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 });5983 try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5306 try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5307 try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });5984 try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5308 try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 });5985 try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5309 try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5310 try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 });5986 try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5311 try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5312 try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 });5987 try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5313 try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5314 try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 });5988 try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5315 try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5316 try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 });5989 try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5317 try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5318 try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 });5990 try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5319 try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5320 try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 });5991 try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5321 try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5322 try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });5992 try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5323 try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
53245993
5325 try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5326 try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 });5994 try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5327 try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5328 try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 });5995 try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5329 try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5330 try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 });5996 try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5331 try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5332 try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 });5997 try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5333 try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5334 try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 });5998 try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5335 try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5336 try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 });5999 try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5337 try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5338 try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 });6000 try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5339 try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5340 try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });6001 try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5341 try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 });6002 try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5342 try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5343 try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 });6003 try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5344 try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5345 try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 });6004 try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5346 try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5347 try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 });6005 try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5348 try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5349 try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 });6006 try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5350 try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5351 try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 });6007 try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5352 try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5353 try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 });6008 try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5354 try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5355 try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });6009 try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5356 try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
53576010
5358 try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5359 try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 });6011 try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5360 try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5361 try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 });6012 try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5362 try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5363 try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 });6013 try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5364 try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5365 try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 });6014 try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5366 try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5367 try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 });6015 try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5368 try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5369 try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 });6016 try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5370 try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5371 try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 });6017 try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5372 try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5373 try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });6018 try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5374 try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 });6019 try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5375 try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5376 try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 });6020 try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5377 try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5378 try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 });6021 try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5379 try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5380 try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 });6022 try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5381 try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5382 try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 });6023 try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5383 try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5384 try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 });6024 try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5385 try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5386 try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 });6025 try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5387 try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5388 try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });6026 try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5389 try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
53906027
5391 try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5392 try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 });6028 try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5393 try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5394 try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 });6029 try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5395 try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5396 try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 });6030 try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5397 try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5398 try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 });6031 try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5399 try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5400 try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 });6032 try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5401 try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5402 try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 });6033 try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5403 try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5404 try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 });6034 try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5405 try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5406 try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });6035 try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5407 try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 });6036 try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5408 try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5409 try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 });6037 try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5410 try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5411 try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 });6038 try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5412 try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5413 try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 });6039 try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5414 try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5415 try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 });6040 try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5416 try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5417 try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 });6041 try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5418 try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5419 try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 });6042 try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5420 try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5421 try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });6043 try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5422 try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
54236044
5424 try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5425 try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 });6045 try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5426 try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5427 try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 });6046 try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5428 try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5429 try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 });6047 try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5430 try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5431 try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 });6048 try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5432 try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5433 try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 });6049 try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5434 try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5435 try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 });6050 try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5436 try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5437 try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 });6051 try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5438 try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5439 try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });6052 try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5440 try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 });6053 try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5441 try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5442 try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 });6054 try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5443 try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5444 try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 });6055 try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5445 try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5446 try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 });6056 try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5447 try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5448 try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 });6057 try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5449 try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5450 try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 });6058 try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5451 try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5452 try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 });6059 try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5453 try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5454 try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });6060 try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5455 try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
54566061
5457 try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5458 try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 });6062 try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5459 try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5460 try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 });6063 try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5461 try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5462 try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 });6064 try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5463 try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5464 try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 });6065 try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5465 try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5466 try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 });6066 try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5467 try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5468 try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 });6067 try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5469 try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5470 try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 });6068 try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5471 try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5472 try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });6069 try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5473 try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 });6070 try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5474 try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5475 try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 });6071 try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5476 try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5477 try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 });6072 try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5478 try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5479 try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 });6073 try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5480 try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5481 try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 });6074 try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5482 try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5483 try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 });6075 try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5484 try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5485 try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 });6076 try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5486 try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5487 try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });6077 try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5488 try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
54896078
5490 try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5491 try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 });6079 try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5492 try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5493 try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 });6080 try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5494 try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5495 try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 });6081 try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5496 try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5497 try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 });6082 try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5498 try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5499 try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 });6083 try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5500 try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5501 try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 });6084 try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5502 try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5503 try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 });6085 try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5504 try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5505 try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });6086 try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5506 try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 });6087 try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5507 try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5508 try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 });6088 try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5509 try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5510 try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 });6089 try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5511 try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5512 try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 });6090 try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5513 try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5514 try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 });6091 try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5515 try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5516 try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 });6092 try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5517 try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5518 try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 });6093 try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5519 try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5520 try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });6094 try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5521 try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
55226095
5523 try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5524 try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 });6096 try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5525 try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5526 try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 });6097 try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5527 try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5528 try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 });6098 try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5529 try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5530 try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 });6099 try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5531 try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5532 try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 });6100 try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5533 try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5534 try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 });6101 try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5535 try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5536 try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 });6102 try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5537 try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5538 try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });6103 try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5539 try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 });6104 try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5540 try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5541 try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 });6105 try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5542 try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5543 try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 });6106 try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5544 try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5545 try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 });6107 try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5546 try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5547 try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 });6108 try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5548 try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5549 try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 });6109 try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5550 try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5551 try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 });6110 try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5552 try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5553 try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });6111 try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5554 try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
55556112
5556 try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5557 try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 });6113 try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5558 try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5559 try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 });6114 try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5560 try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5561 try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 });6115 try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5562 try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5563 try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 });6116 try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5564 try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5565 try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 });6117 try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5566 try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5567 try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 });6118 try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5568 try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5569 try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 });6119 try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5570 try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5571 try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });6120 try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5572 try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 });6121 try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5573 try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5574 try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 });6122 try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5575 try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5576 try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 });6123 try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5577 try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5578 try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 });6124 try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5579 try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5580 try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 });6125 try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5581 try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5582 try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 });6126 try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5583 try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5584 try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 });6127 try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5585 try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5586 try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });6128 try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5587 try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
55886129
5589 try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5590 try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 });6130 try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5591 try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5592 try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 });6131 try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5593 try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5594 try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 });6132 try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5595 try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5596 try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 });6133 try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5597 try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5598 try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 });6134 try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5599 try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5600 try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 });6135 try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5601 try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5602 try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 });6136 try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5603 try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5604 try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });6137 try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5605 try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 });6138 try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5606 try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5607 try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 });6139 try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5608 try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5609 try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 });6140 try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5610 try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5611 try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 });6141 try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5612 try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5613 try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 });6142 try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5614 try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5615 try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 });6143 try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5616 try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5617 try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 });6144 try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5618 try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5619 try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });6145 try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5620 try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
56216146
5622 try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5623 try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 });6147 try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5624 try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5625 try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 });6148 try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5626 try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5627 try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 });6149 try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5628 try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5629 try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 });6150 try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5630 try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5631 try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 });6151 try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5632 try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5633 try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 });6152 try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5634 try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5635 try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 });6153 try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5636 try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5637 try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });6154 try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5638 try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 });6155 try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5639 try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5640 try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 });6156 try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5641 try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5642 try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 });6157 try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5643 try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5644 try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 });6158 try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5645 try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5646 try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 });6159 try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5647 try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5648 try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 });6160 try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5649 try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5650 try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 });6161 try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5651 try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5652 try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });6162 try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5653 try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
56546163
5655 try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5656 try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 });6164 try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5657 try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5658 try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 });6165 try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5659 try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5660 try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 });6166 try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5661 try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5662 try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 });6167 try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5663 try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5664 try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 });6168 try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5665 try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5666 try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 });6169 try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5667 try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5668 try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 });6170 try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5669 try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5670 try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });6171 try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5671 try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 });6172 try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5672 try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5673 try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 });6173 try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5674 try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5675 try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 });6174 try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5676 try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5677 try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 });6175 try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5678 try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5679 try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 });6176 try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5680 try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5681 try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 });6177 try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5682 try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5683 try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 });6178 try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5684 try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5685 try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });6179 try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5686 try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
56876180
5688 try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5689 try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 });6181 try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5690 try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5691 try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 });6182 try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5692 try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5693 try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 });6183 try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5694 try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5695 try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 });6184 try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5696 try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5697 try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 });6185 try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5698 try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5699 try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 });6186 try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5700 try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5701 try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 });6187 try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5702 try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5703 try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });6188 try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5704 try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 });6189 try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5705 try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5706 try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 });6190 try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5707 try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5708 try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 });6191 try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5709 try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5710 try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 });6192 try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5711 try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5712 try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 });6193 try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5713 try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5714 try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 });6194 try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5715 try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5716 try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 });6195 try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5717 try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5718 try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });6196 try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5719 try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
57206197
5721 try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5722 try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 });6198 try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5723 try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5724 try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 });6199 try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5725 try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5726 try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 });6200 try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5727 try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5728 try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 });6201 try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5729 try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5730 try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 });6202 try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5731 try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5732 try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 });6203 try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5733 try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5734 try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 });6204 try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5735 try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5736 try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });6205 try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5737 try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 });6206 try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5738 try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5739 try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 });6207 try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5740 try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5741 try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 });6208 try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5742 try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5743 try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 });6209 try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5744 try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5745 try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 });6210 try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5746 try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5747 try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 });6211 try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5748 try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5749 try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 });6212 try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5750 try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5751 try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });6213 try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5752 try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
57536214
5754 try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5755 try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 });6215 try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5756 try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5757 try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 });6216 try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5758 try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5759 try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 });6217 try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5760 try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5761 try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 });6218 try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5762 try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5763 try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 });6219 try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5764 try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5765 try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 });6220 try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5766 try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5767 try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 });6221 try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5768 try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5769 try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });6222 try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5770 try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 });6223 try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5771 try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5772 try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 });6224 try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5773 try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5774 try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 });6225 try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5775 try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5776 try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 });6226 try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5777 try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5778 try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 });6227 try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5779 try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5780 try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 });6228 try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5781 try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5782 try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 });6229 try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5783 try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5784 try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });6230 try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5785 try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
57866231
5787 try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5788 try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 });6232 try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5789 try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5790 try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 });6233 try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5791 try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5792 try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 });6234 try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5793 try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5794 try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 });6235 try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5795 try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5796 try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 });6236 try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5797 try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5798 try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 });6237 try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5799 try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5800 try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 });6238 try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5801 try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5802 try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });6239 try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5803 try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 });6240 try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5804 try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5805 try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 });6241 try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5806 try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5807 try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 });6242 try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5808 try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5809 try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 });6243 try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5810 try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5811 try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 });6244 try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5812 try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5813 try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 });6245 try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5814 try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5815 try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 });6246 try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5816 try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5817 try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });6247 try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5818 try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
58196248
5820 try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5821 try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 });6249 try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5822 try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5823 try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 });6250 try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5824 try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5825 try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 });6251 try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5826 try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5827 try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 });6252 try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5828 try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5829 try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 });6253 try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5830 try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5831 try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 });6254 try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5832 try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5833 try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 });6255 try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5834 try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5835 try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });6256 try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5836 try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 });6257 try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5837 try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5838 try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 });6258 try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5839 try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5840 try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 });6259 try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5841 try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5842 try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 });6260 try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5843 try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5844 try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 });6261 try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5845 try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5846 try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 });6262 try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5847 try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5848 try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 });6263 try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5849 try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5850 try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });6264 try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5851 try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
58526265
5853 try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5854 try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 });6266 try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5855 try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5856 try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 });6267 try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5857 try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5858 try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 });6268 try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5859 try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5860 try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 });6269 try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5861 try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5862 try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 });6270 try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5863 try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5864 try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 });6271 try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5865 try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5866 try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 });6272 try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5867 try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5868 try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });6273 try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5869 try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 });6274 try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5870 try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5871 try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 });6275 try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5872 try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5873 try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 });6276 try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5874 try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5875 try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 });6277 try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5876 try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5877 try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 });6278 try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5878 try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5879 try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 });6279 try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5880 try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5881 try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 });6280 try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5882 try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5883 try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });6281 try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
5884 try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
58856282
5886 try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5887 try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 });6283 try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5888 try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5889 try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 });6284 try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5890 try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5891 try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 });6285 try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5892 try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5893 try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 });6286 try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5894 try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5895 try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 });6287 try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5896 try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5897 try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 });6288 try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5898 try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5899 try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 });6289 try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5900 try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5901 try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });6290 try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
5902 try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 });6291 try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5903 try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5904 try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 });6292 try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5905 try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5906 try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 });6293 try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5907 try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5908 try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 });6294 try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5909 try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5910 try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 });6295 try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5911 try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5912 try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 });6296 try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5913 try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5914 try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 });6297 try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5915 try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5916 try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });6298 try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
5917 try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
59186299
5919 try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5920 try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 });6300 try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5921 try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5922 try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 });6301 try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5923 try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5924 try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 });6302 try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5925 try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5926 try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 });6303 try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5927 try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5928 try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 });6304 try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5929 try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5930 try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 });6305 try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5931 try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5932 try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 });6306 try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5933 try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5934 try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });6307 try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
5935 try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 });6308 try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5936 try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5937 try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 });6309 try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5938 try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5939 try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 });6310 try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5940 try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5941 try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 });6311 try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5942 try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5943 try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 });6312 try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5944 try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5945 try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 });6313 try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5946 try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5947 try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 });6314 try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5948 try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5949 try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });6315 try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
5950 try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
59516316
5952 try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5953 try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 });6317 try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5954 try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5955 try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 });6318 try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5956 try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5957 try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 });6319 try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5958 try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5959 try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 });6320 try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5960 try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5961 try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 });6321 try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5962 try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5963 try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 });6322 try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5964 try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5965 try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 });6323 try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5966 try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5967 try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });6324 try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
5968 try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 });6325 try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5969 try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5970 try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 });6326 try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5971 try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5972 try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 });6327 try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5973 try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5974 try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 });6328 try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5975 try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5976 try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 });6329 try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5977 try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5978 try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 });6330 try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5979 try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5980 try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 });6331 try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5981 try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5982 try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });6332 try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
5983 try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
59846333
5985 try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5986 try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 });6334 try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5987 try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5988 try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 });6335 try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5989 try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5990 try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 });6336 try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5991 try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5992 try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 });6337 try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5993 try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5994 try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 });6338 try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5995 try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5996 try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 });6339 try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5997 try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5998 try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 });6340 try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
5999 try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6000 try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });6341 try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6001 try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 });6342 try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6002 try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6003 try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 });6343 try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6004 try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6005 try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 });6344 try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6006 try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6007 try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 });6345 try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6008 try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6009 try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 });6346 try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6010 try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6011 try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 });6347 try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6012 try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6013 try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 });6348 try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6014 try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6015 try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });6349 try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6016 try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
60176350
6018 try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6019 try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 });6351 try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6020 try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6021 try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 });6352 try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6022 try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6023 try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 });6353 try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6024 try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6025 try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 });6354 try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6026 try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6027 try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 });6355 try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6028 try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6029 try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 });6356 try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6030 try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6031 try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 });6357 try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6032 try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6033 try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });6358 try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6034 try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 });6359 try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6035 try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6036 try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 });6360 try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6037 try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6038 try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 });6361 try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6039 try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6040 try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 });6362 try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6041 try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6042 try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 });6363 try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6043 try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6044 try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 });6364 try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6045 try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6046 try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 });6365 try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6047 try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6048 try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });6366 try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6049 try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
60506367
6051 try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6052 try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 });6368 try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6053 try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6054 try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 });6369 try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6055 try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6056 try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 });6370 try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6057 try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6058 try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 });6371 try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6059 try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6060 try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 });6372 try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6061 try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6062 try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 });6373 try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6063 try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6064 try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 });6374 try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6065 try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6066 try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });6375 try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6067 try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 });6376 try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6068 try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6069 try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 });6377 try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6070 try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6071 try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 });6378 try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6072 try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6073 try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 });6379 try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6074 try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6075 try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 });6380 try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6076 try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6077 try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 });6381 try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6078 try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6079 try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 });6382 try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6080 try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6081 try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });6383 try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6082 try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
60836384
6084 try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6085 try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 });6385 try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6086 try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6087 try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 });6386 try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6088 try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6089 try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 });6387 try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6090 try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6091 try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 });6388 try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6092 try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6093 try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 });6389 try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6094 try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6095 try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 });6390 try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6096 try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6097 try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 });6391 try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6098 try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6099 try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });6392 try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6100 try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 });6393 try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6101 try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6102 try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 });6394 try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6103 try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6104 try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 });6395 try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6105 try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6106 try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 });6396 try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6107 try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6108 try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 });6397 try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6109 try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6110 try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 });6398 try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6111 try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6112 try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 });6399 try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6113 try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6114 try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });6400 try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6115 try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
61166401
6117 try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6118 try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 });6402 try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6119 try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6120 try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 });6403 try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6121 try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6122 try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 });6404 try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6123 try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6124 try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 });6405 try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6125 try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6126 try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 });6406 try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6127 try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6128 try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 });6407 try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6129 try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6130 try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 });6408 try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6131 try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6132 try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });6409 try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6133 try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 });6410 try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6134 try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6135 try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 });6411 try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6136 try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6137 try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 });6412 try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6138 try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6139 try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 });6413 try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6140 try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6141 try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 });6414 try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6142 try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6143 try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 });6415 try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6144 try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6145 try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 });6416 try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6146 try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6147 try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });6417 try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6148 try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
61496418
6150 try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6151 try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 });6419 try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6152 try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6153 try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 });6420 try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6154 try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6155 try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 });6421 try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6156 try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6157 try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 });6422 try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6158 try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6159 try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 });6423 try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6160 try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6161 try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 });6424 try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6162 try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6163 try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 });6425 try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6164 try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6165 try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });6426 try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6166 try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 });6427 try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6167 try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6168 try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 });6428 try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6169 try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6170 try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 });6429 try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6171 try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6172 try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 });6430 try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6173 try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6174 try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 });6431 try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6175 try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6176 try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 });6432 try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6177 try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6178 try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 });6433 try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6179 try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6180 try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });6434 try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6181 try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
61826435
6183 try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6184 try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 });6436 try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6185 try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6186 try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 });6437 try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6187 try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6188 try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 });6438 try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6189 try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6190 try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 });6439 try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6191 try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6192 try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 });6440 try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6193 try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6194 try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 });6441 try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6195 try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6196 try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 });6442 try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6197 try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6198 try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });6443 try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6199 try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 });6444 try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6200 try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6201 try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 });6445 try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6202 try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6203 try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 });6446 try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6204 try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6205 try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 });6447 try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6206 try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6207 try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 });6448 try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6208 try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6209 try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 });6449 try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6210 try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6211 try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 });6450 try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6212 try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6213 try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });6451 try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6214 try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
62156452
6216 try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6217 try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 });6453 try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6218 try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6219 try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 });6454 try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6220 try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6221 try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 });6455 try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6222 try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6223 try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 });6456 try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6224 try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6225 try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 });6457 try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6226 try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6227 try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 });6458 try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6228 try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6229 try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 });6459 try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6230 try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6231 try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });6460 try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6232 try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 });6461 try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6233 try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6234 try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 });6462 try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6235 try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6236 try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 });6463 try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6237 try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6238 try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 });6464 try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6239 try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6240 try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 });6465 try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6241 try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6242 try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 });6466 try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6243 try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6244 try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 });6467 try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6245 try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6246 try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });6468 try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6247 try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
62486469
6249 try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6250 try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 });6470 try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6251 try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6252 try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 });6471 try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6253 try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6254 try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 });6472 try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6255 try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6256 try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 });6473 try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6257 try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6258 try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 });6474 try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6259 try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6260 try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 });6475 try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6261 try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6262 try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 });6476 try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6263 try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6264 try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });6477 try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6265 try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 });6478 try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6266 try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6267 try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 });6479 try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6268 try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6269 try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 });6480 try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6270 try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6271 try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 });6481 try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6272 try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6273 try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 });6482 try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6274 try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6275 try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 });6483 try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6276 try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6277 try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 });6484 try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6278 try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6279 try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });6485 try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6280 try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
62816486
6282 try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6283 try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 });6487 try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6284 try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6285 try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 });6488 try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6286 try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6287 try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 });6489 try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6288 try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6289 try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 });6490 try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6290 try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6291 try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 });6491 try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6292 try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6293 try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 });6492 try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6294 try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6295 try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 });6493 try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6296 try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6297 try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });6494 try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6298 try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 });6495 try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6299 try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6300 try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 });6496 try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6301 try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6302 try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 });6497 try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6303 try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6304 try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 });6498 try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6305 try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6306 try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 });6499 try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6307 try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6308 try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 });6500 try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6309 try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6310 try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 });6501 try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6311 try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6312 try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });6502 try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6313 try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
63146503
6315 try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6316 try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 });6504 try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6317 try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6318 try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 });6505 try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6319 try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6320 try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 });6506 try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6321 try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6322 try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 });6507 try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6323 try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6324 try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 });6508 try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6325 try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6326 try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 });6509 try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6327 try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6328 try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 });6510 try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6329 try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6330 try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });6511 try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6331 try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 });6512 try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6332 try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6333 try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 });6513 try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6334 try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6335 try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 });6514 try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6336 try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6337 try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 });6515 try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6338 try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6339 try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 });6516 try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6340 try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6341 try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 });6517 try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6342 try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6343 try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 });6518 try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6344 try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6345 try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });6519 try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6346 try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
63476520
6348 try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6349 try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 });6521 try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6350 try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6351 try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 });6522 try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6352 try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6353 try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 });6523 try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6354 try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6355 try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 });6524 try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6356 try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6357 try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 });6525 try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6358 try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6359 try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 });6526 try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6360 try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6361 try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 });6527 try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6362 try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6363 try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });6528 try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6364 try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 });6529 try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6365 try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6366 try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 });6530 try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6367 try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6368 try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 });6531 try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6369 try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6370 try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 });6532 try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6371 try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6372 try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 });6533 try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6373 try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6374 try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 });6534 try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6375 try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6376 try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 });6535 try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6377 try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6378 try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });6536 try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6379 try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
63806537
6381 try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6382 try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 });6538 try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6383 try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6384 try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 });6539 try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6385 try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6386 try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 });6540 try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6387 try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6388 try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 });6541 try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6389 try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6390 try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 });6542 try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6391 try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6392 try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 });6543 try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6393 try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6394 try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 });6544 try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6395 try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6396 try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });6545 try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6397 try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 });6546 try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6398 try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6399 try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 });6547 try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6400 try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6401 try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 });6548 try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6402 try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6403 try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 });6549 try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6404 try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6405 try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 });6550 try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6406 try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6407 try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 });6551 try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6408 try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6409 try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 });6552 try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6410 try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6411 try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });6553 try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6412 try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
64136554
6414 try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6415 try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 });6555 try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6416 try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6417 try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 });6556 try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6418 try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6419 try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 });6557 try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6420 try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6421 try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 });6558 try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6422 try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6423 try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 });6559 try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6424 try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6425 try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 });6560 try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6426 try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6427 try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 });6561 try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6428 try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6429 try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });6562 try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6430 try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 });6563 try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6431 try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6432 try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 });6564 try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6433 try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6434 try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 });6565 try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6435 try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6436 try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 });6566 try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6437 try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6438 try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 });6567 try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6439 try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6440 try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 });6568 try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6441 try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6442 try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 });6569 try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6443 try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6444 try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });6570 try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6445 try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
64466571
6447 try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6448 try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 });6572 try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6449 try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6450 try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 });6573 try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6451 try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6452 try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 });6574 try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6453 try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6454 try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 });6575 try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6455 try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6456 try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 });6576 try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6457 try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6458 try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 });6577 try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6459 try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6460 try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 });6578 try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6461 try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6462 try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });6579 try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6463 try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 });6580 try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6464 try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6465 try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 });6581 try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6466 try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6467 try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 });6582 try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6468 try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6469 try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 });6583 try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6470 try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6471 try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 });6584 try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6472 try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6473 try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 });6585 try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6474 try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6475 try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 });6586 try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6476 try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6477 try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });6587 try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6478 try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
64796588
6480 try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6481 try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 });6589 try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6482 try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6483 try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 });6590 try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6484 try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6485 try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 });6591 try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6486 try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6487 try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 });6592 try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6488 try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6489 try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 });6593 try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6490 try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6491 try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 });6594 try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6492 try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6493 try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 });6595 try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6494 try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6495 try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });6596 try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6496 try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 });6597 try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6497 try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6498 try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 });6598 try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6499 try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6500 try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 });6599 try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6501 try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6502 try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 });6600 try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6503 try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6504 try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 });6601 try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6505 try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6506 try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 });6602 try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6507 try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6508 try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 });6603 try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6509 try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6510 try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });6604 try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6511 try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
65126605
6513 try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6514 try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6606 try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6515 try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6516 try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6607 try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6517 try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6518 try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6608 try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6519 try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6520 try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6609 try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6521 try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6522 try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6610 try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6523 try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6524 try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6611 try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6525 try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6526 try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6612 try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6527 try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6528 try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });6613 try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6529 try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6614 try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6530 try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6531 try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6615 try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6532 try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6533 try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6616 try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6534 try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6535 try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6617 try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6536 try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6537 try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6618 try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6538 try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6539 try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6619 try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6540 try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6541 try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6620 try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6542 try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6543 try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });6621 try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6544 try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
65456622
6546 try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6547 try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6623 try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6548 try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6549 try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6624 try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6550 try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6551 try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6625 try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6552 try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6553 try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6626 try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6554 try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6555 try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6627 try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6556 try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6557 try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6628 try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6558 try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6559 try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6629 try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6560 try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6561 try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });6630 try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6562 try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6631 try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6563 try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6564 try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6632 try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6565 try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6566 try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6633 try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6567 try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6568 try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6634 try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6569 try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6570 try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6635 try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6571 try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6572 try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6636 try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6573 try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6574 try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6637 try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6575 try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6576 try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });6638 try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6577 try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
65786639
6579 try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6580 try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6640 try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6581 try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6582 try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6641 try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6583 try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6584 try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6642 try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6585 try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6586 try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6643 try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6587 try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6588 try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6644 try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6589 try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6590 try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6645 try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6591 try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6592 try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6646 try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6593 try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6594 try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });6647 try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6595 try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6648 try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6596 try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6597 try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6649 try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6598 try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6599 try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6650 try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6600 try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6601 try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6651 try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6602 try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6603 try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6652 try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6604 try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6605 try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6653 try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6606 try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6607 try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6654 try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6608 try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6609 try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });6655 try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6610 try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6611 }6656 }
6612 fn testFloatVectors() !void {6657 fn testFloatVectors() !void {
6613 @setEvalBranchQuota(6_700);6658 @setEvalBranchQuota(6_700);
...@@ -10005,6 +10050,14 @@ test intCast {...@@ -10005,6 +10050,14 @@ test intCast {
10005 try test_int_cast.testIntVectors();10050 try test_int_cast.testIntVectors();
10006}10051}
1000710052
10053inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
10054 return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs;
10055}
10056test truncate {
10057 const test_truncate = cast(truncate, .{});
10058 try test_truncate.testSameSignednessInts();
10059}
10060
10008inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {10061inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
10009 return @floatCast(rhs);10062 return @floatCast(rhs);
10010}10063}