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 {
17931793 /// The upper bound is `calcTwosCompLimbCount(a.len)`.
17941794 pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
17951795 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
17971801 // Handle 0-bit integers.
1798 if (req_limbs == 0 or a.eqlZero()) {
1802 if (req_limbs == 0 or abs_trunc_a.eqlZero()) {
17991803 r.set(0);
18001804 return;
18011805 }
......@@ -1810,15 +1814,10 @@ pub const Mutable = struct {
18101814 // Note, we simply take req_limbs * @bitSizeOf(Limb) as the
18111815 // target bit count.
18121816
1813 r.addScalar(a.abs(), -1);
1817 r.addScalar(abs_trunc_a, -1);
18141818
18151819 // Zero-extend the result
1816 if (req_limbs > r.len) {
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);
1820 @memset(r.limbs[r.len..req_limbs], 0);
18221821 r.len = req_limbs;
18231822
18241823 // Without truncating, we can already peek at the sign bit of the result here.
......@@ -1846,16 +1845,10 @@ pub const Mutable = struct {
18461845 r.normalize(r.len);
18471846 }
18481847 } else {
1849 if (a.limbs.len < req_limbs) {
1850 // Integer fits within target bits, no wrapping required.
1851 r.copy(a);
1852 return;
1853 }
1848 r.copy(abs_trunc_a);
1849 // If the integer fits within target bits, no wrapping is required.
1850 if (r.len < req_limbs) return;
18541851
1855 r.copy(.{
1856 .positive = a.positive,
1857 .limbs = a.limbs[0..req_limbs],
1858 });
18591852 r.limbs[r.len - 1] &= mask;
18601853 r.normalize(r.len);
18611854
lib/std/math/big/int_test.zig+25
......@@ -1934,6 +1934,31 @@ test "truncate multi unsigned many" {
19341934 try testing.expect((try b.toInt(i1)) == 0);
19351935}
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
19371962test "saturate single signed positive" {
19381963 var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);
19391964 defer a.deinit();
src/Air.zig+1-1
......@@ -573,7 +573,7 @@ pub const Inst = struct {
573573 /// and the operand is not a valid value of this type; i.e. equivalent to
574574 /// a safety check based on `.is_named_enum_value`
575575 intcast_safe,
576 /// Truncate higher bits from an integer, resulting in an integer with the same
576 /// Truncate higher bits from an integer, resulting in an integer type with the same
577577 /// sign but an equal or smaller number of bits.
578578 /// Uses the `ty_op` field.
579579 trunc,
src/arch/x86_64/CodeGen.zig+636-69
......@@ -2414,7 +2414,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24142414}
24152415
24162416fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2417 @setEvalBranchQuota(4_500);
2417 @setEvalBranchQuota(4_600);
24182418 const pt = cg.pt;
24192419 const zcu = pt.zcu;
24202420 const ip = &zcu.intern_pool;
......@@ -2499,7 +2499,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24992499 .cmp_lt_errors_len => try cg.airCmpLtErrorsLen(inst),
25002500
25012501 .bitcast => try cg.airBitCast(inst),
2502 .trunc => try cg.airTrunc(inst),
25032502 .is_non_null => try cg.airIsNonNull(inst),
25042503 .is_null => try cg.airIsNull(inst),
25052504 .is_non_err => try cg.airIsNonErr(inst),
......@@ -25507,7 +25506,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2550725506 }, .{
2550825507 .required_features = .{ .@"64bit", null, null, null },
2550925508 .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 } }},
2551125510 .patterns = &.{
2551225511 .{ .src = .{ .mem, .none } },
2551325512 .{ .src = .{ .to_gpr, .none } },
......@@ -25564,7 +25563,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2556425563 } },
2556525564 }, .{
2556625565 .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 } }},
2556825567 .patterns = &.{
2556925568 .{ .src = .{ .mem, .none } },
2557025569 .{ .src = .{ .to_gpr, .none } },
......@@ -25667,7 +25666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2566725666 }, .{
2566825667 .required_features = .{ .@"64bit", null, null, null },
2566925668 .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 } }},
2567125670 .patterns = &.{
2567225671 .{ .src = .{ .mem, .none } },
2567325672 .{ .src = .{ .to_gpr, .none } },
......@@ -25724,7 +25723,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2572425723 } },
2572525724 }, .{
2572625725 .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 } }},
2572825727 .patterns = &.{
2572925728 .{ .src = .{ .mem, .none } },
2573025729 .{ .src = .{ .to_gpr, .none } },
......@@ -25805,7 +25804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2580525804 }, .{
2580625805 .required_features = .{ .@"64bit", null, null, null },
2580725806 .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 } }},
2580925808 .patterns = &.{
2581025809 .{ .src = .{ .mem, .none } },
2581125810 .{ .src = .{ .to_gpr, .none } },
......@@ -25862,7 +25861,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2586225861 } },
2586325862 }, .{
2586425863 .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 } }},
2586625865 .patterns = &.{
2586725866 .{ .src = .{ .mem, .none } },
2586825867 .{ .src = .{ .to_gpr, .none } },
......@@ -25919,7 +25918,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2591925918 }, .{
2592025919 .required_features = .{ .@"64bit", null, null, null },
2592125920 .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 } }},
2592325922 .patterns = &.{
2592425923 .{ .src = .{ .mem, .none } },
2592525924 .{ .src = .{ .to_gpr, .none } },
......@@ -25976,8 +25975,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2597625975 } },
2597725976 }, .{
2597825977 .required_features = .{ .@"64bit", null, null, null },
25979 .src_constraints = .{ .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }, .any },
25980 .dst_constraints = .{.{ .signed_remainder_int = .{ .of = .qword, .is = .qword } }},
25978 .src_constraints = .{ .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, .any },
25979 .dst_constraints = .{.{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }},
2598125980 .patterns = &.{
2598225981 .{ .src = .{ .to_mem, .none } },
2598325982 },
......@@ -28855,6 +28854,524 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2885528854 };
2885628855 try res[0].finish(inst, &.{ty_op.operand}, &ops, cg);
2885728856 },
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 },
2885829375 .optional_payload_ptr => if (use_old) try cg.airOptionalPayloadPtr(inst) else {
2885929376 const ty_op = air_datas[@intFromEnum(inst)].ty_op;
2886029377 const ops = try cg.tempsFromOperands(inst, .{ty_op.operand});
......@@ -48551,8 +49068,8 @@ const Temp = struct {
4855149068 }, .{
4855249069 .required_features = .{ .@"64bit", null, null, null },
4855349070 .src_constraints = .{
48554 .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },
48555 .{ .signed_remainder_int = .{ .of = .qword, .is = .qword } },
49071 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
49072 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
4855649073 },
4855749074 .patterns = &.{
4855849075 .{ .src = .{ .to_mem, .to_mem } },
......@@ -48583,8 +49100,8 @@ const Temp = struct {
4858349100 }, .{
4858449101 .required_features = .{ .@"64bit", null, null, null },
4858549102 .src_constraints = .{
48586 .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },
48587 .{ .unsigned_remainder_int = .{ .of = .qword, .is = .qword } },
49103 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
49104 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
4858849105 },
4858949106 .patterns = &.{
4859049107 .{ .src = .{ .to_mem, .to_mem } },
......@@ -48612,8 +49129,8 @@ const Temp = struct {
4861249129 } },
4861349130 }, .{
4861449131 .src_constraints = .{
48615 .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },
48616 .{ .signed_remainder_int = .{ .of = .dword, .is = .dword } },
49132 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
49133 .{ .remainder_signed_int = .{ .of = .dword, .is = .dword } },
4861749134 },
4861849135 .patterns = &.{
4861949136 .{ .src = .{ .to_mem, .to_mem } },
......@@ -48643,8 +49160,8 @@ const Temp = struct {
4864349160 } },
4864449161 }, .{
4864549162 .src_constraints = .{
48646 .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },
48647 .{ .unsigned_remainder_int = .{ .of = .dword, .is = .dword } },
49163 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
49164 .{ .remainder_unsigned_int = .{ .of = .dword, .is = .dword } },
4864849165 },
4864949166 .patterns = &.{
4865049167 .{ .src = .{ .to_mem, .to_mem } },
......@@ -49536,6 +50053,7 @@ const Operand = union(enum) {
4953650053
4953750054const Select = struct {
4953850055 cg: *CodeGen,
50056 types: [@intFromEnum(Select.Operand.Ref.none)]Type,
4953950057 temps: [@intFromEnum(Select.Operand.Ref.none)]Temp,
4954050058 labels: [@intFromEnum(Label._)]struct {
4954150059 backward: ?Mir.Inst.Index,
......@@ -49762,9 +50280,11 @@ const Select = struct {
4976250280 signed_po2_int: Memory.Size,
4976350281 unsigned_po2_or_exact_int: Memory.Size,
4976450282 remainder_int: OfIsSizes,
49765 signed_remainder_int: OfIsSizes,
49766 unsigned_remainder_int: OfIsSizes,
50283 remainder_signed_int: OfIsSizes,
50284 remainder_unsigned_int: OfIsSizes,
4976750285 exact_remainder_int: OfIsSizes,
50286 exact_remainder_signed_int: OfIsSizes,
50287 exact_remainder_unsigned_int: OfIsSizes,
4976850288 signed_or_exact_remainder_int: OfIsSizes,
4976950289 unsigned_or_exact_remainder_int: OfIsSizes,
4977050290 signed_int: Memory.Size,
......@@ -49878,14 +50398,18 @@ const Select = struct {
4987850398 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
4987950399 else
4988050400 false,
49881 .signed_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
50401 .remainder_signed_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .signed and
4988250402 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 and
50403 .remainder_unsigned_int => |of_is| if (cg.intInfo(ty)) |int_info| int_info.signedness == .unsigned and
4988450404 of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1 else false,
4988550405 .exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info|
4988650406 of_is.is.bitSize(cg.target) == (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1
4988750407 else
4988850408 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,
4988950413 .signed_or_exact_remainder_int => |of_is| if (cg.intInfo(ty)) |int_info| switch (int_info.signedness) {
4989050414 .signed => of_is.is.bitSize(cg.target) >= (int_info.bits - 1) % of_is.of.bitSize(cg.target) + 1,
4989150415 .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 {
5012950653 .unused => unreachable,
5013050654 .any => .{ try cg.tempAlloc(spec.type), true },
5013150655 .cc => |cc| .{ try cg.tempInit(spec.type, .{ .eflags = cc }), true },
50132 .ref => |ref| .{ ref.deref(s), false },
50656 .ref => |ref| .{ ref.tempOf(s), false },
5013350657 .reg => |reg| .{ try cg.tempInit(spec.type, .{ .register = reg }), true },
5013450658 .rc => |rc| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc)), true },
5013550659 .mut_rc => |ref_rc| {
50136 const temp = ref_rc.ref.deref(s);
50660 const temp = ref_rc.ref.tempOf(s);
5013750661 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
5013850662 .register => |reg| if (reg.class() == ref_rc.rc) return .{ temp, false },
5013950663 .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 {
5014150665 };
5014250666 return .{ try cg.tempAllocReg(spec.type, regSetForRegClass(ref_rc.rc)), true };
5014350667 },
50144 .ref_mask => |ref_mask| .{ ref_mask.ref.deref(s), false },
50668 .ref_mask => |ref_mask| .{ ref_mask.ref.tempOf(s), false },
5014550669 .rc_mask => |rc_mask| .{ try cg.tempAllocReg(spec.type, regSetForRegClass(rc_mask.rc)), true },
5014650670 .mut_rc_mask => |ref_rc_mask| {
50147 const temp = ref_rc_mask.ref.deref(s);
50671 const temp = ref_rc_mask.ref.tempOf(s);
5014850672 if (temp.isMut(cg)) switch (temp.tracking(cg).short) {
5014950673 .register => |reg| if (reg.class() == ref_rc_mask.rc) return .{ temp, false },
5015050674 .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 {
5015750681 const pt = cg.pt;
5015850682 const zcu = pt.zcu;
5015950683 const ip = &zcu.intern_pool;
50160 const ty = const_info.ref.deref(s).typeOf(cg);
50684 const ty = const_info.ref.typeOf(s);
5016150685 const vector_len, const scalar_ty: Type = switch (ip.indexToKey(ty.toIntern())) {
5016250686 else => .{ null, ty },
5016350687 .vector_type => |vector_type| .{ vector_type.len, .fromInterned(vector_type.child) },
......@@ -50246,7 +50770,7 @@ const Select = struct {
5024650770 flags: packed struct(u16) {
5024750771 tag: Tag,
5024850772 adjust: Adjust = .none,
50249 unused: u4 = 0,
50773 unused: u3 = 0,
5025050774 },
5025150775 base: Ref.Sized = .none,
5025250776 index: packed struct(u6) {
......@@ -50265,7 +50789,7 @@ const Select = struct {
5026550789 lea,
5026650790 mem,
5026750791 };
50268 const Adjust = packed struct(u9) {
50792 const Adjust = packed struct(u10) {
5026950793 sign: enum(u1) { neg, pos },
5027050794 lhs: enum(u5) {
5027150795 none,
......@@ -50288,7 +50812,7 @@ const Select = struct {
5028850812 smax,
5028950813 umax,
5029050814 },
50291 op: enum(u1) { mul, div },
50815 op: enum(u2) { mul, div, rem_8_mul },
5029250816 rhs: Memory.Scale,
5029350817
5029450818 const none: Adjust = .{ .sign = .pos, .lhs = .none, .op = .mul, .rhs = .@"1" };
......@@ -50308,6 +50832,7 @@ const Select = struct {
5030850832 const sub_unaligned_size: Adjust = .{ .sign = .neg, .lhs = .unaligned_size, .op = .mul, .rhs = .@"1" };
5030950833 const add_2_bit_size: Adjust = .{ .sign = .pos, .lhs = .bit_size, .op = .mul, .rhs = .@"2" };
5031050834 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" };
5031150836 const sub_bit_size: Adjust = .{ .sign = .neg, .lhs = .bit_size, .op = .mul, .rhs = .@"1" };
5031250837 const add_src0_bit_size: Adjust = .{ .sign = .pos, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
5031350838 const sub_src0_bit_size: Adjust = .{ .sign = .neg, .lhs = .src0_bit_size, .op = .mul, .rhs = .@"1" };
......@@ -50356,6 +50881,7 @@ const Select = struct {
5035650881 const tmp0w: Sized = .{ .ref = .tmp0, .size = .word };
5035750882 const tmp0d: Sized = .{ .ref = .tmp0, .size = .dword };
5035850883 const tmp0p: Sized = .{ .ref = .tmp0, .size = .ptr };
50884 const tmp0g: Sized = .{ .ref = .tmp0, .size = .gpr };
5035950885 const tmp0q: Sized = .{ .ref = .tmp0, .size = .qword };
5036050886 const tmp0t: Sized = .{ .ref = .tmp0, .size = .tbyte };
5036150887 const tmp0x: Sized = .{ .ref = .tmp0, .size = .xword };
......@@ -50366,6 +50892,7 @@ const Select = struct {
5036650892 const tmp1w: Sized = .{ .ref = .tmp1, .size = .word };
5036750893 const tmp1d: Sized = .{ .ref = .tmp1, .size = .dword };
5036850894 const tmp1p: Sized = .{ .ref = .tmp1, .size = .ptr };
50895 const tmp1g: Sized = .{ .ref = .tmp1, .size = .gpr };
5036950896 const tmp1q: Sized = .{ .ref = .tmp1, .size = .qword };
5037050897 const tmp1t: Sized = .{ .ref = .tmp1, .size = .tbyte };
5037150898 const tmp1x: Sized = .{ .ref = .tmp1, .size = .xword };
......@@ -50376,6 +50903,7 @@ const Select = struct {
5037650903 const tmp2w: Sized = .{ .ref = .tmp2, .size = .word };
5037750904 const tmp2d: Sized = .{ .ref = .tmp2, .size = .dword };
5037850905 const tmp2p: Sized = .{ .ref = .tmp2, .size = .ptr };
50906 const tmp2g: Sized = .{ .ref = .tmp2, .size = .gpr };
5037950907 const tmp2q: Sized = .{ .ref = .tmp2, .size = .qword };
5038050908 const tmp2t: Sized = .{ .ref = .tmp2, .size = .tbyte };
5038150909 const tmp2x: Sized = .{ .ref = .tmp2, .size = .xword };
......@@ -50386,6 +50914,7 @@ const Select = struct {
5038650914 const tmp3w: Sized = .{ .ref = .tmp3, .size = .word };
5038750915 const tmp3d: Sized = .{ .ref = .tmp3, .size = .dword };
5038850916 const tmp3p: Sized = .{ .ref = .tmp3, .size = .ptr };
50917 const tmp3g: Sized = .{ .ref = .tmp3, .size = .gpr };
5038950918 const tmp3q: Sized = .{ .ref = .tmp3, .size = .qword };
5039050919 const tmp3t: Sized = .{ .ref = .tmp3, .size = .tbyte };
5039150920 const tmp3x: Sized = .{ .ref = .tmp3, .size = .xword };
......@@ -50396,6 +50925,7 @@ const Select = struct {
5039650925 const tmp4w: Sized = .{ .ref = .tmp4, .size = .word };
5039750926 const tmp4d: Sized = .{ .ref = .tmp4, .size = .dword };
5039850927 const tmp4p: Sized = .{ .ref = .tmp4, .size = .ptr };
50928 const tmp4g: Sized = .{ .ref = .tmp4, .size = .gpr };
5039950929 const tmp4q: Sized = .{ .ref = .tmp4, .size = .qword };
5040050930 const tmp4t: Sized = .{ .ref = .tmp4, .size = .tbyte };
5040150931 const tmp4x: Sized = .{ .ref = .tmp4, .size = .xword };
......@@ -50406,6 +50936,7 @@ const Select = struct {
5040650936 const tmp5w: Sized = .{ .ref = .tmp5, .size = .word };
5040750937 const tmp5d: Sized = .{ .ref = .tmp5, .size = .dword };
5040850938 const tmp5p: Sized = .{ .ref = .tmp5, .size = .ptr };
50939 const tmp5g: Sized = .{ .ref = .tmp5, .size = .gpr };
5040950940 const tmp5q: Sized = .{ .ref = .tmp5, .size = .qword };
5041050941 const tmp5t: Sized = .{ .ref = .tmp5, .size = .tbyte };
5041150942 const tmp5x: Sized = .{ .ref = .tmp5, .size = .xword };
......@@ -50416,6 +50947,7 @@ const Select = struct {
5041650947 const tmp6w: Sized = .{ .ref = .tmp6, .size = .word };
5041750948 const tmp6d: Sized = .{ .ref = .tmp6, .size = .dword };
5041850949 const tmp6p: Sized = .{ .ref = .tmp6, .size = .ptr };
50950 const tmp6g: Sized = .{ .ref = .tmp6, .size = .gpr };
5041950951 const tmp6q: Sized = .{ .ref = .tmp6, .size = .qword };
5042050952 const tmp6t: Sized = .{ .ref = .tmp6, .size = .tbyte };
5042150953 const tmp6x: Sized = .{ .ref = .tmp6, .size = .xword };
......@@ -50426,6 +50958,7 @@ const Select = struct {
5042650958 const tmp7w: Sized = .{ .ref = .tmp7, .size = .word };
5042750959 const tmp7d: Sized = .{ .ref = .tmp7, .size = .dword };
5042850960 const tmp7p: Sized = .{ .ref = .tmp7, .size = .ptr };
50961 const tmp7g: Sized = .{ .ref = .tmp7, .size = .gpr };
5042950962 const tmp7q: Sized = .{ .ref = .tmp7, .size = .qword };
5043050963 const tmp7t: Sized = .{ .ref = .tmp7, .size = .tbyte };
5043150964 const tmp7x: Sized = .{ .ref = .tmp7, .size = .xword };
......@@ -50436,6 +50969,7 @@ const Select = struct {
5043650969 const tmp8w: Sized = .{ .ref = .tmp8, .size = .word };
5043750970 const tmp8d: Sized = .{ .ref = .tmp8, .size = .dword };
5043850971 const tmp8p: Sized = .{ .ref = .tmp8, .size = .ptr };
50972 const tmp8g: Sized = .{ .ref = .tmp8, .size = .gpr };
5043950973 const tmp8q: Sized = .{ .ref = .tmp8, .size = .qword };
5044050974 const tmp8t: Sized = .{ .ref = .tmp8, .size = .tbyte };
5044150975 const tmp8x: Sized = .{ .ref = .tmp8, .size = .xword };
......@@ -50446,6 +50980,7 @@ const Select = struct {
5044650980 const dst0w: Sized = .{ .ref = .dst0, .size = .word };
5044750981 const dst0d: Sized = .{ .ref = .dst0, .size = .dword };
5044850982 const dst0p: Sized = .{ .ref = .dst0, .size = .ptr };
50983 const dst0g: Sized = .{ .ref = .dst0, .size = .gpr };
5044950984 const dst0q: Sized = .{ .ref = .dst0, .size = .qword };
5045050985 const dst0t: Sized = .{ .ref = .dst0, .size = .tbyte };
5045150986 const dst0x: Sized = .{ .ref = .dst0, .size = .xword };
......@@ -50456,6 +50991,7 @@ const Select = struct {
5045650991 const src0w: Sized = .{ .ref = .src0, .size = .word };
5045750992 const src0d: Sized = .{ .ref = .src0, .size = .dword };
5045850993 const src0p: Sized = .{ .ref = .src0, .size = .ptr };
50994 const src0g: Sized = .{ .ref = .src0, .size = .gpr };
5045950995 const src0q: Sized = .{ .ref = .src0, .size = .qword };
5046050996 const src0t: Sized = .{ .ref = .src0, .size = .tbyte };
5046150997 const src0x: Sized = .{ .ref = .src0, .size = .xword };
......@@ -50466,15 +51002,24 @@ const Select = struct {
5046651002 const src1w: Sized = .{ .ref = .src1, .size = .word };
5046751003 const src1d: Sized = .{ .ref = .src1, .size = .dword };
5046851004 const src1p: Sized = .{ .ref = .src1, .size = .ptr };
51005 const src1g: Sized = .{ .ref = .src1, .size = .gpr };
5046951006 const src1q: Sized = .{ .ref = .src1, .size = .qword };
5047051007 const src1t: Sized = .{ .ref = .src1, .size = .tbyte };
5047151008 const src1x: Sized = .{ .ref = .src1, .size = .xword };
5047251009 const src1y: Sized = .{ .ref = .src1, .size = .yword };
5047351010 };
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 {
5047651017 return s.temps[@intFromEnum(ref)];
5047751018 }
51019
51020 fn valueOf(ref: Ref, s: *const Select) MCValue {
51021 return s.temps[@intFromEnum(ref)].tracking(s.cg).short;
51022 }
5047851023 };
5047951024
5048051025 const @"_": Select.Operand = .{ .flags = .{ .tag = .none } };
......@@ -50490,6 +51035,7 @@ const Select = struct {
5049051035 const tmp0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0w };
5049151036 const tmp0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0d };
5049251037 const tmp0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0p };
51038 const tmp0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0g };
5049351039 const tmp0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0q };
5049451040 const tmp0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0t };
5049551041 const tmp0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp0x };
......@@ -50499,6 +51045,7 @@ const Select = struct {
5049951045 const tmp1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1w };
5050051046 const tmp1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1d };
5050151047 const tmp1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1p };
51048 const tmp1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1g };
5050251049 const tmp1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1q };
5050351050 const tmp1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1t };
5050451051 const tmp1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp1x };
......@@ -50508,6 +51055,7 @@ const Select = struct {
5050851055 const tmp2w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2w };
5050951056 const tmp2d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2d };
5051051057 const tmp2p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2p };
51058 const tmp2g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2g };
5051151059 const tmp2q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2q };
5051251060 const tmp2t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2t };
5051351061 const tmp2x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp2x };
......@@ -50517,6 +51065,7 @@ const Select = struct {
5051751065 const tmp3w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3w };
5051851066 const tmp3d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3d };
5051951067 const tmp3p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3p };
51068 const tmp3g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3g };
5052051069 const tmp3q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3q };
5052151070 const tmp3t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3t };
5052251071 const tmp3x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp3x };
......@@ -50526,6 +51075,7 @@ const Select = struct {
5052651075 const tmp4w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4w };
5052751076 const tmp4d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4d };
5052851077 const tmp4p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4p };
51078 const tmp4g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4g };
5052951079 const tmp4q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4q };
5053051080 const tmp4t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4t };
5053151081 const tmp4x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp4x };
......@@ -50535,6 +51085,7 @@ const Select = struct {
5053551085 const tmp5w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5w };
5053651086 const tmp5d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5d };
5053751087 const tmp5p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5p };
51088 const tmp5g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5g };
5053851089 const tmp5q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5q };
5053951090 const tmp5t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5t };
5054051091 const tmp5x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp5x };
......@@ -50544,6 +51095,7 @@ const Select = struct {
5054451095 const tmp6w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6w };
5054551096 const tmp6d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6d };
5054651097 const tmp6p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6p };
51098 const tmp6g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6g };
5054751099 const tmp6q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6q };
5054851100 const tmp6t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6t };
5054951101 const tmp6x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp6x };
......@@ -50553,6 +51105,7 @@ const Select = struct {
5055351105 const tmp7w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7w };
5055451106 const tmp7d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7d };
5055551107 const tmp7p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7p };
51108 const tmp7g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7g };
5055651109 const tmp7q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7q };
5055751110 const tmp7t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7t };
5055851111 const tmp7x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp7x };
......@@ -50562,6 +51115,7 @@ const Select = struct {
5056251115 const tmp8w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8w };
5056351116 const tmp8d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8d };
5056451117 const tmp8p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8p };
51118 const tmp8g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8g };
5056551119 const tmp8q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8q };
5056651120 const tmp8t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8t };
5056751121 const tmp8x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .tmp8x };
......@@ -50571,6 +51125,7 @@ const Select = struct {
5057151125 const dst0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0w };
5057251126 const dst0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0d };
5057351127 const dst0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0p };
51128 const dst0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0g };
5057451129 const dst0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0q };
5057551130 const dst0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0t };
5057651131 const dst0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .dst0x };
......@@ -50580,6 +51135,7 @@ const Select = struct {
5058051135 const src0w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0w };
5058151136 const src0d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0d };
5058251137 const src0p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0p };
51138 const src0g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0g };
5058351139 const src0q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0q };
5058451140 const src0t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0t };
5058551141 const src0x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src0x };
......@@ -50589,6 +51145,7 @@ const Select = struct {
5058951145 const src1w: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1w };
5059051146 const src1d: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1d };
5059151147 const src1p: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1p };
51148 const src1g: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1g };
5059251149 const src1q: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1q };
5059351150 const src1t: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1t };
5059451151 const src1x: Select.Operand = .{ .flags = .{ .tag = .ref }, .base = .src1x };
......@@ -50786,36 +51343,36 @@ const Select = struct {
5078651343 .none => 0,
5078751344 .ptr_size => @divExact(s.cg.target.ptrBitWidth(), 8),
5078851345 .ptr_bit_size => s.cg.target.ptrBitWidth(),
50789 .size => @intCast(op.base.ref.deref(s).typeOf(s.cg).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))) -
50791 @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).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))) -
50793 @as(SignedImm, @intCast(op.index.ref.deref(s).typeOf(s.cg).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
51346 .size => @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu)),
51347 .delta_size => @intCast(@as(SignedImm, @intCast(op.base.ref.typeOf(s).abiSize(s.cg.pt.zcu))) -
51348 @as(SignedImm, @intCast(op.index.ref.typeOf(s).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))) -
51350 @as(SignedImm, @intCast(op.index.ref.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu)))),
5079451351 .size_sub_elem_size => {
50795 const ty = op.base.ref.deref(s).typeOf(s.cg);
51352 const ty = op.base.ref.typeOf(s);
5079651353 break :lhs @intCast(ty.abiSize(s.cg.pt.zcu) - ty.elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu));
5079751354 },
50798 .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.deref(s).typeOf(s.cg))),
50799 .bit_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).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)),
50801 .len => @intCast(op.base.ref.deref(s).typeOf(s.cg).vectorLen(s.cg.pt.zcu)),
51355 .unaligned_size => @intCast(s.cg.unalignedSize(op.base.ref.typeOf(s))),
51356 .bit_size => @intCast(op.base.ref.typeOf(s).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)),
51358 .len => @intCast(op.base.ref.typeOf(s).vectorLen(s.cg.pt.zcu)),
5080251359 .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),
5080451361 @divExact(op.base.size.bitSize(s.cg.target), 8),
5080551362 )),
50806 .elem_size => @intCast(op.base.ref.deref(s).typeOf(s.cg).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)),
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) *
50809 Select.Operand.Ref.src1.deref(s).tracking(s.cg).short.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))),
51363 .elem_size => @intCast(op.base.ref.typeOf(s).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)),
51365 .src0_elem_size_times_src1 => @intCast(Select.Operand.Ref.src0.typeOf(s).elemType2(s.cg.pt.zcu).abiSize(s.cg.pt.zcu) *
51366 Select.Operand.Ref.src1.valueOf(s).immediate),
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))),
5081151368 .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),
5081351370 ),
5081451371 .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),
5081651373 ),
5081751374 .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),
5081951376 )),
5082051377 };
5082151378 const rhs = op.flags.adjust.rhs.toLog2();
......@@ -50826,6 +51383,7 @@ const Select = struct {
5082651383 break :res res[0];
5082751384 },
5082851385 .div => @shrExact(lhs, rhs),
51386 .rem_8_mul => lhs & (@as(SignedImm, 1) << @intCast(@as(u3, 3) + rhs)) - 1,
5082951387 };
5083051388 return switch (op.flags.adjust.sign) {
5083151389 .neg => op.imm - res,
......@@ -50842,7 +51400,7 @@ const Select = struct {
5084251400 label.* = @intCast(s.cg.mir_instructions.len);
5084351401 break .{ .inst = undefined };
5084451402 } else unreachable,
50845 .ref => switch (op.base.ref.deref(s).tracking(s.cg).short) {
51403 .ref => switch (op.base.ref.valueOf(s)) {
5084651404 .immediate => |imm| .{ .imm = switch (op.base.size) {
5084751405 .byte => if (std.math.cast(i8, @as(i64, @bitCast(imm)))) |simm| .s(simm) else .u(@as(u8, @intCast(imm))),
5084851406 .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 {
5085751415 .simm => .{ .imm = .s(op.adjustedImm(i32, s)) },
5085851416 .uimm => .{ .imm = .u(@bitCast(op.adjustedImm(i64, s))) },
5085951417 .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)) },
5086151419 .mod = .{ .rm = .{
5086251420 .size = op.base.size,
5086351421 .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)),
5086551423 .none => .none,
5086651424 },
5086751425 .scale = op.index.scale,
5086851426 .disp = op.adjustedImm(i32, s),
5086951427 } },
5087051428 } },
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, .{
5087251430 .size = op.base.size,
5087351431 .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)),
5087551433 .none => .none,
5087651434 },
5087751435 .scale = op.index.scale,
......@@ -50888,7 +51446,7 @@ fn select(
5088851446 src_temps: []Temp,
5088951447 cases: []const Select.Case,
5089051448) !void {
50891 @setEvalBranchQuota(33_600);
51449 @setEvalBranchQuota(33_500);
5089251450 cases: for (cases) |case| {
5089351451 for (case.required_features) |required_feature| if (required_feature) |feature| if (!cg.hasFeature(feature)) continue :cases;
5089451452 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(
5091451472 var s: Select = .{
5091551473 .cg = cg,
5091651474 .temps = undefined,
51475 .types = undefined,
5091751476 .labels = @splat(.{ .forward = @splat(null), .backward = null }),
5091851477 .top = 0,
5091951478 };
50920 const tmp_slots = s.temps[@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)];
50922 const src_slots = s.temps[@intFromEnum(Select.Operand.Ref.src0)..@intFromEnum(Select.Operand.Ref.none)];
51479 const s_tmp_types = s.types[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
51480 const s_tmp_temps = s.temps[@intFromEnum(Select.Operand.Ref.tmp0)..@intFromEnum(Select.Operand.Ref.dst0)];
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
5092451491 caller_preserved: {
5092551492 const cc = switch (case.clobbers.caller_preserved) {
......@@ -50943,23 +51510,23 @@ fn select(
5094351510 }
5094451511 }
5094551512
50946 @memcpy(src_slots[0..src_temps.len], src_temps);
50947 std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);
51513 @memcpy(s_src_temps[0..src_temps.len], src_temps);
51514 std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
5094851515 for (dst_temps, dst_tys, case.dst_temps[0..dst_temps.len]) |*dst_temp, dst_ty, dst_kind| {
5094951516 if (dst_kind.pass() != 1) continue;
5095051517 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
5095151518 }
50952 var tmp_owned: [tmp_slots.len]bool = @splat(false);
50953 for (1..3) |pass| for (tmp_slots, &tmp_owned, case.extra_temps) |*slot, *owned, spec| {
51519 var tmp_owned: [s_tmp_temps.len]bool = @splat(false);
51520 for (1..3) |pass| for (s_tmp_temps, &tmp_owned, case.extra_temps) |*temp, *owned, spec| {
5095451521 if (spec.kind.pass() != pass) continue;
50955 slot.*, owned.* = try spec.create(&s);
51522 temp.*, owned.* = try spec.create(&s);
5095651523 };
5095751524
5095851525 while (true) for (pattern.src[0..src_temps.len], src_temps) |src_pattern, *src_temp| {
5095951526 if (try src_pattern.convert(src_temp, cg)) break;
5096051527 } else break;
50961 @memcpy(src_slots[0..src_temps.len], src_temps);
50962 std.mem.swap(Temp, &src_slots[pattern.commute[0]], &src_slots[pattern.commute[1]]);
51528 @memcpy(s_src_temps[0..src_temps.len], src_temps);
51529 std.mem.swap(Temp, &s_src_temps[pattern.commute[0]], &s_src_temps[pattern.commute[1]]);
5096351530
5096451531 if (case.clobbers.eflags) try cg.spillEflagsIfOccupied();
5096551532
......@@ -50967,7 +51534,7 @@ fn select(
5096751534 if (dst_kind.pass() != 2) continue;
5096851535 dst_temp.*, _ = try Select.TempSpec.create(.{ .type = dst_ty, .kind = dst_kind }, &s);
5096951536 }
50970 @memcpy(dst_slots[0..dst_temps.len], dst_temps);
51537 @memcpy(s_dst_temps[0..dst_temps.len], dst_temps);
5097151538
5097251539 switch (case.each) {
5097351540 .once => |body| {
......@@ -50996,7 +51563,7 @@ fn select(
5099651563 }
5099751564 }
5099851565 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);
5100051567 return;
5100151568 }
5100251569 }
src/arch/x86_64/bits.zig+7-1
......@@ -702,6 +702,7 @@ pub const Memory = struct {
702702 pub const Size = enum(u4) {
703703 none,
704704 ptr,
705 gpr,
705706 byte,
706707 word,
707708 dword,
......@@ -742,6 +743,11 @@ pub const Memory = struct {
742743 return switch (s) {
743744 .none => 0,
744745 .ptr => target.ptrBitWidth(),
746 .gpr => switch (target.cpu.arch) {
747 else => unreachable,
748 .x86 => 32,
749 .x86_64 => 64,
750 },
745751 .byte => 8,
746752 .word => 16,
747753 .dword => 32,
......@@ -763,7 +769,7 @@ pub const Memory = struct {
763769 try writer.writeAll(@tagName(s));
764770 switch (s) {
765771 .none => unreachable,
766 .ptr => {},
772 .ptr, .gpr => {},
767773 else => {
768774 try writer.writeByte(' ');
769775 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
52225222 try testArgs(f128, f128, inf(f128));
52235223 try testArgs(f128, f128, nan(f128));
52245224 }
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 }
52255940 fn testIntVectors() !void {
5226 try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
5941 try testSameSignednessIntVectors();
5942
52275943 try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});
5228 try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
52295944 try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});
5230 try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
52315945 try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});
5232 try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
52335946 try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});
5234 try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
52355947 try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});
5236 try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
52375948 try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});
5238 try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
52395949 try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});
5240 try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
52415950 try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});
52425951 try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});
5243 try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
52445952 try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});
5245 try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
52465953 try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});
5247 try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
52485954 try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});
5249 try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
52505955 try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});
5251 try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
52525956 try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});
5253 try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
52545957 try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});
5255 try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
52565958 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 });
52605960 try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });
5261 try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
52625961 try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });
5263 try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
52645962 try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });
5265 try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
52665963 try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });
5267 try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
52685964 try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });
5269 try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
52705965 try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });
5271 try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
52725966 try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });
5273 try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
52745967 try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });
52755968 try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });
5276 try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
52775969 try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });
5278 try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
52795970 try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });
5280 try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
52815971 try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });
5282 try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
52835972 try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });
5284 try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
52855973 try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });
5286 try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
52875974 try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });
5288 try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
52895975 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 });
52935977 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 });
52955978 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 });
52975979 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 });
52995980 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 });
53015981 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 });
53035982 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 });
53055983 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 });
53075984 try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
53085985 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 });
53105986 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 });
53125987 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 });
53145988 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 });
53165989 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 });
53185990 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 });
53205991 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 });
53225992 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 });
53265994 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 });
53285995 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 });
53305996 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 });
53325997 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 });
53345998 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 });
53365999 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 });
53386000 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 });
53406001 try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
53416002 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 });
53436003 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 });
53456004 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 });
53476005 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 });
53496006 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 });
53516007 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 });
53536008 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 });
53556009 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 });
53596011 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 });
53616012 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 });
53636013 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 });
53656014 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 });
53676015 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 });
53696016 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 });
53716017 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 });
53736018 try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
53746019 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 });
53766020 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 });
53786021 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 });
53806022 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 });
53826023 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 });
53846024 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 });
53866025 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 });
53886026 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 });
53926028 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 });
53946029 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 });
53966030 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 });
53986031 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 });
54006032 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 });
54026033 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 });
54046034 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 });
54066035 try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
54076036 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 });
54096037 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 });
54116038 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 });
54136039 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 });
54156040 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 });
54176041 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 });
54196042 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 });
54216043 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 });
54256045 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 });
54276046 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 });
54296047 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 });
54316048 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 });
54336049 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 });
54356050 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 });
54376051 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 });
54396052 try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
54406053 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 });
54426054 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 });
54446055 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 });
54466056 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 });
54486057 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 });
54506058 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 });
54526059 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 });
54546060 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 });
54586062 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 });
54606063 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 });
54626064 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 });
54646065 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 });
54666066 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 });
54686067 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 });
54706068 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 });
54726069 try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
54736070 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 });
54756071 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 });
54776072 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 });
54796073 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 });
54816074 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 });
54836075 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 });
54856076 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 });
54876077 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 });
54916079 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 });
54936080 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 });
54956081 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 });
54976082 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 });
54996083 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 });
55016084 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 });
55036085 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 });
55056086 try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
55066087 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 });
55086088 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 });
55106089 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 });
55126090 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 });
55146091 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 });
55166092 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 });
55186093 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 });
55206094 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 });
55246096 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 });
55266097 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 });
55286098 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 });
55306099 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 });
55326100 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 });
55346101 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 });
55366102 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 });
55386103 try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
55396104 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 });
55416105 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 });
55436106 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 });
55456107 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 });
55476108 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 });
55496109 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 });
55516110 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 });
55536111 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 });
55576113 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 });
55596114 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 });
55616115 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 });
55636116 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 });
55656117 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 });
55676118 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 });
55696119 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 });
55716120 try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
55726121 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 });
55746122 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 });
55766123 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 });
55786124 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 });
55806125 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 });
55826126 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 });
55846127 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 });
55866128 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 });
55906130 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 });
55926131 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 });
55946132 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 });
55966133 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 });
55986134 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 });
56006135 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 });
56026136 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 });
56046137 try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
56056138 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 });
56076139 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 });
56096140 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 });
56116141 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 });
56136142 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 });
56156143 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 });
56176144 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 });
56196145 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 });
56236147 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 });
56256148 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 });
56276149 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 });
56296150 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 });
56316151 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 });
56336152 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 });
56356153 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 });
56376154 try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
56386155 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 });
56406156 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 });
56426157 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 });
56446158 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 });
56466159 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 });
56486160 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 });
56506161 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 });
56526162 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 });
56566164 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 });
56586165 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 });
56606166 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 });
56626167 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 });
56646168 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 });
56666169 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 });
56686170 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 });
56706171 try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
56716172 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 });
56736173 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 });
56756174 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 });
56776175 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 });
56796176 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 });
56816177 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 });
56836178 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 });
56856179 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 });
56896181 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 });
56916182 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 });
56936183 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 });
56956184 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 });
56976185 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 });
56996186 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 });
57016187 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 });
57036188 try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
57046189 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 });
57066190 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 });
57086191 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 });
57106192 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 });
57126193 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 });
57146194 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 });
57166195 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 });
57186196 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 });
57226198 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 });
57246199 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 });
57266200 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 });
57286201 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 });
57306202 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 });
57326203 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 });
57346204 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 });
57366205 try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
57376206 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 });
57396207 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 });
57416208 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 });
57436209 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 });
57456210 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 });
57476211 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 });
57496212 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 });
57516213 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 });
57556215 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 });
57576216 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 });
57596217 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 });
57616218 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 });
57636219 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 });
57656220 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 });
57676221 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 });
57696222 try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
57706223 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 });
57726224 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 });
57746225 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 });
57766226 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 });
57786227 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 });
57806228 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 });
57826229 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 });
57846230 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 });
57886232 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 });
57906233 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 });
57926234 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 });
57946235 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 });
57966236 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 });
57986237 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 });
58006238 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 });
58026239 try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
58036240 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 });
58056241 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 });
58076242 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 });
58096243 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 });
58116244 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 });
58136245 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 });
58156246 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 });
58176247 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 });
58216249 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 });
58236250 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 });
58256251 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 });
58276252 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 });
58296253 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 });
58316254 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 });
58336255 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 });
58356256 try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
58366257 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 });
58386258 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 });
58406259 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 });
58426260 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 });
58446261 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 });
58466262 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 });
58486263 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 });
58506264 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 });
58546266 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 });
58566267 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 });
58586268 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 });
58606269 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 });
58626270 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 });
58646271 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 });
58666272 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 });
58686273 try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
58696274 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 });
58716275 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 });
58736276 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 });
58756277 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 });
58776278 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 });
58796279 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 });
58816280 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 });
58836281 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 });
58876283 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 });
58896284 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 });
58916285 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 });
58936286 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 });
58956287 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 });
58976288 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 });
58996289 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 });
59016290 try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
59026291 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 });
59046292 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 });
59066293 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 });
59086294 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 });
59106295 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 });
59126296 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 });
59146297 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 });
59166298 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 });
59206300 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 });
59226301 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 });
59246302 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 });
59266303 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 });
59286304 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 });
59306305 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 });
59326306 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 });
59346307 try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
59356308 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 });
59376309 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 });
59396310 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 });
59416311 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 });
59436312 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 });
59456313 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 });
59476314 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 });
59496315 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 });
59536317 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 });
59556318 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 });
59576319 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 });
59596320 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 });
59616321 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 });
59636322 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 });
59656323 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 });
59676324 try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
59686325 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 });
59706326 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 });
59726327 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 });
59746328 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 });
59766329 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 });
59786330 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 });
59806331 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 });
59826332 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 });
59866334 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 });
59886335 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 });
59906336 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 });
59926337 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 });
59946338 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 });
59966339 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 });
59986340 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 });
60006341 try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
60016342 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 });
60036343 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 });
60056344 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 });
60076345 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 });
60096346 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 });
60116347 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 });
60136348 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 });
60156349 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 });
60196351 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 });
60216352 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 });
60236353 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 });
60256354 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 });
60276355 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 });
60296356 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 });
60316357 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 });
60336358 try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
60346359 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 });
60366360 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 });
60386361 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 });
60406362 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 });
60426363 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 });
60446364 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 });
60466365 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 });
60486366 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 });
60526368 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 });
60546369 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 });
60566370 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 });
60586371 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 });
60606372 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 });
60626373 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 });
60646374 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 });
60666375 try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
60676376 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 });
60696377 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 });
60716378 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 });
60736379 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 });
60756380 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 });
60776381 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 });
60796382 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 });
60816383 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 });
60856385 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 });
60876386 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 });
60896387 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 });
60916388 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 });
60936389 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 });
60956390 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 });
60976391 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 });
60996392 try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
61006393 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 });
61026394 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 });
61046395 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 });
61066396 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 });
61086397 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 });
61106398 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 });
61126399 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 });
61146400 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 });
61186402 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 });
61206403 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 });
61226404 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 });
61246405 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 });
61266406 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 });
61286407 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 });
61306408 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 });
61326409 try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
61336410 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 });
61356411 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 });
61376412 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 });
61396413 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 });
61416414 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 });
61436415 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 });
61456416 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 });
61476417 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 });
61516419 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 });
61536420 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 });
61556421 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 });
61576422 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 });
61596423 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 });
61616424 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 });
61636425 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 });
61656426 try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
61666427 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 });
61686428 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 });
61706429 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 });
61726430 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 });
61746431 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 });
61766432 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 });
61786433 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 });
61806434 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 });
61846436 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 });
61866437 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 });
61886438 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 });
61906439 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 });
61926440 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 });
61946441 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 });
61966442 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 });
61986443 try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
61996444 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 });
62016445 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 });
62036446 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 });
62056447 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 });
62076448 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 });
62096449 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 });
62116450 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 });
62136451 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 });
62176453 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 });
62196454 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 });
62216455 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 });
62236456 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 });
62256457 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 });
62276458 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 });
62296459 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 });
62316460 try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
62326461 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 });
62346462 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 });
62366463 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 });
62386464 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 });
62406465 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 });
62426466 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 });
62446467 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 });
62466468 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 });
62506470 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 });
62526471 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 });
62546472 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 });
62566473 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 });
62586474 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 });
62606475 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 });
62626476 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 });
62646477 try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
62656478 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 });
62676479 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 });
62696480 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 });
62716481 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 });
62736482 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 });
62756483 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 });
62776484 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 });
62796485 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 });
62836487 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 });
62856488 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 });
62876489 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 });
62896490 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 });
62916491 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 });
62936492 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 });
62956493 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 });
62976494 try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
62986495 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 });
63006496 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 });
63026497 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 });
63046498 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 });
63066499 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 });
63086500 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 });
63106501 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 });
63126502 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 });
63166504 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 });
63186505 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 });
63206506 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 });
63226507 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 });
63246508 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 });
63266509 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 });
63286510 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 });
63306511 try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
63316512 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 });
63336513 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 });
63356514 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 });
63376515 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 });
63396516 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 });
63416517 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 });
63436518 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 });
63456519 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 });
63496521 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 });
63516522 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 });
63536523 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 });
63556524 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 });
63576525 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 });
63596526 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 });
63616527 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 });
63636528 try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
63646529 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 });
63666530 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 });
63686531 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 });
63706532 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 });
63726533 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 });
63746534 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 });
63766535 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 });
63786536 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 });
63826538 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 });
63846539 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 });
63866540 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 });
63886541 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 });
63906542 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 });
63926543 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 });
63946544 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 });
63966545 try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
63976546 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 });
63996547 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 });
64016548 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 });
64036549 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 });
64056550 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 });
64076551 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 });
64096552 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 });
64116553 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 });
64156555 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 });
64176556 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 });
64196557 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 });
64216558 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 });
64236559 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 });
64256560 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 });
64276561 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 });
64296562 try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
64306563 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 });
64326564 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 });
64346565 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 });
64366566 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 });
64386567 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 });
64406568 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 });
64426569 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 });
64446570 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 });
64486572 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 });
64506573 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 });
64526574 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 });
64546575 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 });
64566576 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 });
64586577 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 });
64606578 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 });
64626579 try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
64636580 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 });
64656581 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 });
64676582 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 });
64696583 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 });
64716584 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 });
64736585 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 });
64756586 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 });
64776587 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 });
64816589 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 });
64836590 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 });
64856591 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 });
64876592 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 });
64896593 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 });
64916594 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 });
64936595 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 });
64956596 try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
64966597 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 });
64986598 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 });
65006599 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 });
65026600 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 });
65046601 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 });
65066602 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 });
65086603 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 });
65106604 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 });
65146606 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 });
65166607 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 });
65186608 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 });
65206609 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 });
65226610 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 });
65246611 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 });
65266612 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 });
65286613 try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
65296614 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 });
65316615 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 });
65336616 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 });
65356617 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 });
65376618 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 });
65396619 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 });
65416620 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 });
65436621 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 });
65476623 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 });
65496624 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 });
65516625 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 });
65536626 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 });
65556627 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 });
65576628 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 });
65596629 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 });
65616630 try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
65626631 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 });
65646632 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 });
65666633 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 });
65686634 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 });
65706635 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 });
65726636 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 });
65746637 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 });
65766638 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 });
65806640 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 });
65826641 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 });
65846642 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 });
65866643 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 });
65886644 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 });
65906645 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 });
65926646 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 });
65946647 try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
65956648 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 });
65976649 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 });
65996650 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 });
66016651 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 });
66036652 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 });
66056653 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 });
66076654 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 });
66096655 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 });
66116656 }
66126657 fn testFloatVectors() !void {
66136658 @setEvalBranchQuota(6_700);
......@@ -10005,6 +10050,14 @@ test intCast {
1000510050 try test_int_cast.testIntVectors();
1000610051}
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
1000810061inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
1000910062 return @floatCast(rhs);
1001010063}