authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-03-23 21:56:58-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-03-23 21:56:58-04:00
log98640cbeb8a714a451821a51f3aa4ebbd488d291
tree50fe4d8f2b0b5dc8307bd85deb216efe5c3276d9
parentf7e045c80619b3728c54a8aecad65ea12cbe4b75
parent3c3a6c937bba39d0edfe226e3a1548c009c04b09
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #23209 from jacobly0/x86_64-rewrite

x86_64: rewrite wrapping multiplication

23 files changed, 31657 insertions(+), 27772 deletions(-)

lib/std/math/big/int.zig+46-111
...@@ -1096,7 +1096,7 @@ pub const Mutable = struct {...@@ -1096,7 +1096,7 @@ pub const Mutable = struct {
1096 /// Asserts there is enough memory to fit the result. The upper bound Limb count is1096 /// Asserts there is enough memory to fit the result. The upper bound Limb count is
1097 /// `a.limbs.len + (shift / (@sizeOf(Limb) * 8))`.1097 /// `a.limbs.len + (shift / (@sizeOf(Limb) * 8))`.
1098 pub fn shiftLeft(r: *Mutable, a: Const, shift: usize) void {1098 pub fn shiftLeft(r: *Mutable, a: Const, shift: usize) void {
1099 llshl(r.limbs[0..], a.limbs[0..a.limbs.len], shift);1099 llshl(r.limbs, a.limbs, shift);
1100 r.normalize(a.limbs.len + (shift / limb_bits) + 1);1100 r.normalize(a.limbs.len + (shift / limb_bits) + 1);
1101 r.positive = a.positive;1101 r.positive = a.positive;
1102 }1102 }
...@@ -1165,7 +1165,7 @@ pub const Mutable = struct {...@@ -1165,7 +1165,7 @@ pub const Mutable = struct {
11651165
1166 // This shift should not be able to overflow, so invoke llshl and normalize manually1166 // This shift should not be able to overflow, so invoke llshl and normalize manually
1167 // to avoid the extra required limb.1167 // to avoid the extra required limb.
1168 llshl(r.limbs[0..], a.limbs[0..a.limbs.len], shift);1168 llshl(r.limbs, a.limbs, shift);
1169 r.normalize(a.limbs.len + (shift / limb_bits));1169 r.normalize(a.limbs.len + (shift / limb_bits));
1170 r.positive = a.positive;1170 r.positive = a.positive;
1171 }1171 }
...@@ -1202,17 +1202,11 @@ pub const Mutable = struct {...@@ -1202,17 +1202,11 @@ pub const Mutable = struct {
1202 break :nonzero a.limbs[full_limbs_shifted_out] << not_covered != 0;1202 break :nonzero a.limbs[full_limbs_shifted_out] << not_covered != 0;
1203 };1203 };
12041204
1205 llshr(r.limbs[0..], a.limbs[0..a.limbs.len], shift);1205 llshr(r.limbs, a.limbs, shift);
12061206
1207 r.len = a.limbs.len - full_limbs_shifted_out;1207 r.len = a.limbs.len - full_limbs_shifted_out;
1208 r.positive = a.positive;1208 r.positive = a.positive;
1209 if (nonzero_negative_shiftout) {1209 if (nonzero_negative_shiftout) r.addScalar(r.toConst(), -1);
1210 if (full_limbs_shifted_out > 0) {
1211 r.limbs[a.limbs.len - full_limbs_shifted_out] = 0;
1212 r.len += 1;
1213 }
1214 r.addScalar(r.toConst(), -1);
1215 }
1216 r.normalize(r.len);1210 r.normalize(r.len);
1217 }1211 }
12181212
...@@ -1755,119 +1749,60 @@ pub const Mutable = struct {...@@ -1755,119 +1749,60 @@ pub const Mutable = struct {
1755 y.shiftRight(y.toConst(), norm_shift);1749 y.shiftRight(y.toConst(), norm_shift);
1756 }1750 }
17571751
1758 /// If a is positive, this passes through to truncate.
1759 /// If a is negative, then r is set to positive with the bit pattern ~(a - 1).
1760 /// r may alias a.
1761 ///
1762 /// Asserts `r` has enough storage to store the result.
1763 /// The upper bound is `calcTwosCompLimbCount(a.len)`.
1764 pub fn convertToTwosComplement(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
1765 if (a.positive) {
1766 r.truncate(a, signedness, bit_count);
1767 return;
1768 }
1769
1770 const req_limbs = calcTwosCompLimbCount(bit_count);
1771 if (req_limbs == 0 or a.eqlZero()) {
1772 r.set(0);
1773 return;
1774 }
1775
1776 const bit = @as(Log2Limb, @truncate(bit_count - 1));
1777 const signmask = @as(Limb, 1) << bit;
1778 const mask = (signmask << 1) -% 1;
1779
1780 r.addScalar(a.abs(), -1);
1781 if (req_limbs > r.len) {
1782 @memset(r.limbs[r.len..req_limbs], 0);
1783 }
1784
1785 assert(r.limbs.len >= req_limbs);
1786 r.len = req_limbs;
1787
1788 llnot(r.limbs[0..r.len]);
1789 r.limbs[r.len - 1] &= mask;
1790 r.normalize(r.len);
1791 }
1792
1793 /// Truncate an integer to a number of bits, following 2s-complement semantics.1752 /// Truncate an integer to a number of bits, following 2s-complement semantics.
1794 /// r may alias a.1753 /// `r` may alias `a`.
1795 ///1754 ///
1796 /// Asserts `r` has enough storage to store the result.1755 /// Asserts `r` has enough storage to compute the result.
1797 /// The upper bound is `calcTwosCompLimbCount(a.len)`.1756 /// The upper bound is `calcTwosCompLimbCount(a.len)`.
1798 pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {1757 pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void {
1799 const req_limbs = calcTwosCompLimbCount(bit_count);
1800 const abs_trunc_a: Const = .{
1801 .positive = true,
1802 .limbs = a.limbs[0..@min(a.limbs.len, req_limbs)],
1803 };
1804
1805 // Handle 0-bit integers.1758 // Handle 0-bit integers.
1806 if (req_limbs == 0 or abs_trunc_a.eqlZero()) {1759 if (bit_count == 0) {
1760 @branchHint(.unlikely);
1807 r.set(0);1761 r.set(0);
1808 return;1762 return;
1809 }1763 }
18101764
1811 const bit = @as(Log2Limb, @truncate(bit_count - 1));1765 const max_limbs = calcTwosCompLimbCount(bit_count);
1812 const signmask = @as(Limb, 1) << bit; // 0b0..010...0 where 1 is the sign bit.1766 const sign_bit = @as(Limb, 1) << @truncate(bit_count - 1);
1813 const mask = (signmask << 1) -% 1; // 0b0..01..1 where the leftmost 1 is the sign bit.1767 const mask = @as(Limb, maxInt(Limb)) >> @truncate(-%bit_count);
18141768
1815 if (!a.positive) {1769 // Guess whether the result will have the same sign as `a`.
1816 // Convert the integer from sign-magnitude into twos-complement.1770 // * If the result will be signed zero, the guess is `true`.
1817 // -x = ~(x - 1)1771 // * If the result will be the minimum signed integer, the guess is `false`.
1818 // Note, we simply take req_limbs * @bitSizeOf(Limb) as the1772 // * If the result will be unsigned zero, the guess is `a.positive`.
1819 // target bit count.1773 // * Otherwise the guess is correct.
18201774 const same_sign_guess = switch (signedness) {
1821 r.addScalar(abs_trunc_a, -1);1775 .signed => max_limbs > a.limbs.len or a.limbs[max_limbs - 1] & sign_bit == 0,
1776 .unsigned => a.positive,
1777 };
18221778
1823 // Zero-extend the result1779 const abs_trunc_a: Const = .{
1824 @memset(r.limbs[r.len..req_limbs], 0);1780 .positive = true,
1825 r.len = req_limbs;1781 .limbs = a.limbs[0..llnormalize(a.limbs[0..@min(a.limbs.len, max_limbs)])],
18261782 };
1827 // Without truncating, we can already peek at the sign bit of the result here.1783 if (same_sign_guess or abs_trunc_a.eqlZero()) {
1828 // Note that it will be 0 if the result is negative, as we did not apply the flip here.1784 // One of the following is true:
1829 // If the result is negative, we have1785 // * The result is zero.
1830 // -(-x & mask)1786 // * The result is non-zero and has the same sign as `a`.
1831 // = ~(~(x - 1) & mask) + 1
1832 // = ~(~((x - 1) | ~mask)) + 1
1833 // = ((x - 1) | ~mask)) + 1
1834 // Note, this is only valid for the target bits and not the upper bits
1835 // of the most significant limb. Those still need to be cleared.
1836 // Also note that `mask` is zero for all other bits, reducing to the identity.
1837 // This means that we still need to use & mask to clear off the upper bits.
1838
1839 if (signedness == .signed and r.limbs[r.len - 1] & signmask == 0) {
1840 // Re-add the one and negate to get the result.
1841 r.limbs[r.len - 1] &= mask;
1842 // Note, addition cannot require extra limbs here as we did a subtraction before.
1843 r.addScalar(r.toConst(), 1);
1844 r.normalize(r.len);
1845 r.positive = false;
1846 } else {
1847 llnot(r.limbs[0..r.len]);
1848 r.limbs[r.len - 1] &= mask;
1849 r.normalize(r.len);
1850 }
1851 } else {
1852 r.copy(abs_trunc_a);1787 r.copy(abs_trunc_a);
1853 // If the integer fits within target bits, no wrapping is required.1788 if (max_limbs <= r.len) r.limbs[max_limbs - 1] &= mask;
1854 if (r.len < req_limbs) return;
1855
1856 r.limbs[r.len - 1] &= mask;
1857 r.normalize(r.len);1789 r.normalize(r.len);
18581790 r.positive = a.positive or r.eqlZero();
1859 if (signedness == .signed and r.limbs[r.len - 1] & signmask != 0) {1791 } else {
1860 // Convert 2s-complement back to sign-magnitude.1792 // One of the following is true:
1861 // Sign-extend the upper bits so that they are inverted correctly.1793 // * The result is the minimum signed integer.
1862 r.limbs[r.len - 1] |= ~mask;1794 // * The result is unsigned zero.
1863 llnot(r.limbs[0..r.len]);1795 // * The result is non-zero and has the opposite sign as `a`.
18641796 r.addScalar(abs_trunc_a, -1);
1865 // Note, can only overflow if r holds 0xFFF...F which can only happen if1797 llnot(r.limbs[0..r.len]);
1866 // a holds 0.1798 @memset(r.limbs[r.len..max_limbs], maxInt(Limb));
1867 r.addScalar(r.toConst(), 1);1799 r.limbs[max_limbs - 1] &= mask;
18681800 r.normalize(max_limbs);
1869 r.positive = false;1801 r.positive = switch (signedness) {
1870 }1802 // The only value with the sign bit still set is the minimum signed integer.
1803 .signed => !a.positive and r.limbs[max_limbs - 1] & sign_bit == 0,
1804 .unsigned => !a.positive or r.eqlZero(),
1805 };
1871 }1806 }
1872 }1807 }
18731808
lib/std/math/big/int_test.zig+75-11
...@@ -1020,7 +1020,7 @@ test "mul large" {...@@ -1020,7 +1020,7 @@ test "mul large" {
1020 // Generate a number that's large enough to cross the thresholds for the use1020 // Generate a number that's large enough to cross the thresholds for the use
1021 // of subquadratic algorithms1021 // of subquadratic algorithms
1022 for (a.limbs) |*p| {1022 for (a.limbs) |*p| {
1023 p.* = std.math.maxInt(Limb);1023 p.* = maxInt(Limb);
1024 }1024 }
1025 a.setMetadata(true, 50);1025 a.setMetadata(true, 50);
10261026
...@@ -1104,7 +1104,7 @@ test "mulWrap large" {...@@ -1104,7 +1104,7 @@ test "mulWrap large" {
1104 // Generate a number that's large enough to cross the thresholds for the use1104 // Generate a number that's large enough to cross the thresholds for the use
1105 // of subquadratic algorithms1105 // of subquadratic algorithms
1106 for (a.limbs) |*p| {1106 for (a.limbs) |*p| {
1107 p.* = std.math.maxInt(Limb);1107 p.* = maxInt(Limb);
1108 }1108 }
1109 a.setMetadata(true, 50);1109 a.setMetadata(true, 50);
11101110
...@@ -1961,23 +1961,78 @@ test "truncate to mutable with fewer limbs" {...@@ -1961,23 +1961,78 @@ test "truncate to mutable with fewer limbs" {
1961 .positive = undefined,1961 .positive = undefined,
1962 };1962 };
1963 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));1963 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
1964 try testing.expect(res.eqlZero());1964 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
1965 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));1965 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
1966 try testing.expect(res.eqlZero());1966 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
1967 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));1967 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
1968 try testing.expect(res.eqlZero());1968 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
1969 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));1969 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
1970 try testing.expect(res.eqlZero());1970 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
1971 res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));1971 res.truncate(.{ .positive = true, .limbs = &.{ maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
1972 try testing.expect(res.toConst().orderAgainstScalar(std.math.maxInt(Limb)).compare(.eq));1972 try testing.expect(res.toConst().orderAgainstScalar(maxInt(Limb)).compare(.eq));
1973 res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));1973 res.truncate(.{ .positive = true, .limbs = &.{ maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
1974 try testing.expect(res.toConst().orderAgainstScalar(-1).compare(.eq));1974 try testing.expect(res.toConst().orderAgainstScalar(-1).compare(.eq));
1975 res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));1975 res.truncate(.{ .positive = false, .limbs = &.{ maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb));
1976 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));1976 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
1977 res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));1977 res.truncate(.{ .positive = false, .limbs = &.{ maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb));
1978 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));1978 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
1979}1979}
19801980
1981test "truncate value that normalizes after being masked" {
1982 var res_limbs: [2]Limb = undefined;
1983 var res: Mutable = .{
1984 .limbs = &res_limbs,
1985 .len = undefined,
1986 .positive = undefined,
1987 };
1988 res.truncate(.{ .positive = true, .limbs = &.{ 0, 2 } }, .signed, 1 + @bitSizeOf(Limb));
1989 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
1990 res.truncate(.{ .positive = true, .limbs = &.{ 1, 2 } }, .signed, 1 + @bitSizeOf(Limb));
1991 try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq));
1992}
1993
1994test "truncate to zero" {
1995 var res_limbs: [1]Limb = undefined;
1996 var res: Mutable = .{
1997 .limbs = &res_limbs,
1998 .len = undefined,
1999 .positive = undefined,
2000 };
2001 res.truncate(.{ .positive = true, .limbs = &.{0} }, .signed, @bitSizeOf(Limb));
2002 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2003 res.truncate(.{ .positive = false, .limbs = &.{0} }, .signed, @bitSizeOf(Limb));
2004 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2005 res.truncate(.{ .positive = true, .limbs = &.{0} }, .unsigned, @bitSizeOf(Limb));
2006 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2007 res.truncate(.{ .positive = false, .limbs = &.{0} }, .unsigned, @bitSizeOf(Limb));
2008 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2009 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
2010 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2011 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb));
2012 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2013 res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
2014 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2015 res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb));
2016 try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0);
2017}
2018
2019test "truncate to minimum signed integer" {
2020 var res_limbs: [1]Limb = undefined;
2021 var res: Mutable = .{
2022 .limbs = &res_limbs,
2023 .len = undefined,
2024 .positive = undefined,
2025 };
2026 res.truncate(.{ .positive = true, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .signed, @bitSizeOf(Limb));
2027 try testing.expect(res.toConst().orderAgainstScalar(-1 << @bitSizeOf(Limb) - 1).compare(.eq));
2028 res.truncate(.{ .positive = false, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .signed, @bitSizeOf(Limb));
2029 try testing.expect(res.toConst().orderAgainstScalar(-1 << @bitSizeOf(Limb) - 1).compare(.eq));
2030 res.truncate(.{ .positive = true, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .unsigned, @bitSizeOf(Limb));
2031 try testing.expect(res.toConst().orderAgainstScalar(1 << @bitSizeOf(Limb) - 1).compare(.eq));
2032 res.truncate(.{ .positive = false, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .unsigned, @bitSizeOf(Limb));
2033 try testing.expect(res.toConst().orderAgainstScalar(1 << @bitSizeOf(Limb) - 1).compare(.eq));
2034}
2035
1981test "saturate single signed positive" {2036test "saturate single signed positive" {
1982 var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);2037 var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB);
1983 defer a.deinit();2038 defer a.deinit();
...@@ -2136,6 +2191,15 @@ test "shift-right negative" {...@@ -2136,6 +2191,15 @@ test "shift-right negative" {
2136 a.setSign(true);2191 a.setSign(true);
2137 try a.shiftRight(&arg7, 4);2192 try a.shiftRight(&arg7, 4);
2138 try testing.expect(try a.toInt(i16) == -2048);2193 try testing.expect(try a.toInt(i16) == -2048);
2194
2195 var arg8_limbs: [1]Limb = undefined;
2196 var arg8: Mutable = .{
2197 .limbs = &arg8_limbs,
2198 .len = undefined,
2199 .positive = undefined,
2200 };
2201 arg8.shiftRight(.{ .limbs = &.{ 1, 1 }, .positive = false }, @bitSizeOf(Limb));
2202 try testing.expect(arg8.toConst().orderAgainstScalar(-2).compare(.eq));
2139}2203}
21402204
2141test "sat shift-left simple unsigned" {2205test "sat shift-left simple unsigned" {
lib/std/zig/Zir.zig+5-1
...@@ -2136,7 +2136,7 @@ pub const Inst = struct {...@@ -2136,7 +2136,7 @@ pub const Inst = struct {
2136 ref_start_index = static_len,2136 ref_start_index = static_len,
2137 _,2137 _,
21382138
2139 pub const static_len = 93;2139 pub const static_len = 97;
21402140
2141 pub fn toRef(i: Index) Inst.Ref {2141 pub fn toRef(i: Index) Inst.Ref {
2142 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));2142 return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i));
...@@ -2221,6 +2221,10 @@ pub const Inst = struct {...@@ -2221,6 +2221,10 @@ pub const Inst = struct {
2221 slice_const_u8_sentinel_0_type,2221 slice_const_u8_sentinel_0_type,
2222 vector_16_i8_type,2222 vector_16_i8_type,
2223 vector_32_i8_type,2223 vector_32_i8_type,
2224 vector_1_u8_type,
2225 vector_2_u8_type,
2226 vector_4_u8_type,
2227 vector_8_u8_type,
2224 vector_16_u8_type,2228 vector_16_u8_type,
2225 vector_32_u8_type,2229 vector_32_u8_type,
2226 vector_8_i16_type,2230 vector_8_i16_type,
src/Air.zig+4
...@@ -985,6 +985,10 @@ pub const Inst = struct {...@@ -985,6 +985,10 @@ pub const Inst = struct {
985 slice_const_u8_sentinel_0_type = @intFromEnum(InternPool.Index.slice_const_u8_sentinel_0_type),985 slice_const_u8_sentinel_0_type = @intFromEnum(InternPool.Index.slice_const_u8_sentinel_0_type),
986 vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type),986 vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type),
987 vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type),987 vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type),
988 vector_1_u8_type = @intFromEnum(InternPool.Index.vector_1_u8_type),
989 vector_2_u8_type = @intFromEnum(InternPool.Index.vector_2_u8_type),
990 vector_4_u8_type = @intFromEnum(InternPool.Index.vector_4_u8_type),
991 vector_8_u8_type = @intFromEnum(InternPool.Index.vector_8_u8_type),
988 vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),992 vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type),
989 vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),993 vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type),
990 vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),994 vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type),
src/InternPool.zig+20
...@@ -4573,6 +4573,10 @@ pub const Index = enum(u32) {...@@ -4573,6 +4573,10 @@ pub const Index = enum(u32) {
45734573
4574 vector_16_i8_type,4574 vector_16_i8_type,
4575 vector_32_i8_type,4575 vector_32_i8_type,
4576 vector_1_u8_type,
4577 vector_2_u8_type,
4578 vector_4_u8_type,
4579 vector_8_u8_type,
4576 vector_16_u8_type,4580 vector_16_u8_type,
4577 vector_32_u8_type,4581 vector_32_u8_type,
4578 vector_8_i16_type,4582 vector_8_i16_type,
...@@ -5089,6 +5093,14 @@ pub const static_keys = [_]Key{...@@ -5089,6 +5093,14 @@ pub const static_keys = [_]Key{
5089 .{ .vector_type = .{ .len = 16, .child = .i8_type } },5093 .{ .vector_type = .{ .len = 16, .child = .i8_type } },
5090 // @Vector(32, i8)5094 // @Vector(32, i8)
5091 .{ .vector_type = .{ .len = 32, .child = .i8_type } },5095 .{ .vector_type = .{ .len = 32, .child = .i8_type } },
5096 // @Vector(1, u8)
5097 .{ .vector_type = .{ .len = 1, .child = .u8_type } },
5098 // @Vector(2, u8)
5099 .{ .vector_type = .{ .len = 2, .child = .u8_type } },
5100 // @Vector(4, u8)
5101 .{ .vector_type = .{ .len = 4, .child = .u8_type } },
5102 // @Vector(8, u8)
5103 .{ .vector_type = .{ .len = 8, .child = .u8_type } },
5092 // @Vector(16, u8)5104 // @Vector(16, u8)
5093 .{ .vector_type = .{ .len = 16, .child = .u8_type } },5105 .{ .vector_type = .{ .len = 16, .child = .u8_type } },
5094 // @Vector(32, u8)5106 // @Vector(32, u8)
...@@ -11766,6 +11778,10 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {...@@ -11766,6 +11778,10 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index {
11766 .slice_const_u8_sentinel_0_type,11778 .slice_const_u8_sentinel_0_type,
11767 .vector_16_i8_type,11779 .vector_16_i8_type,
11768 .vector_32_i8_type,11780 .vector_32_i8_type,
11781 .vector_1_u8_type,
11782 .vector_2_u8_type,
11783 .vector_4_u8_type,
11784 .vector_8_u8_type,
11769 .vector_16_u8_type,11785 .vector_16_u8_type,
11770 .vector_32_u8_type,11786 .vector_32_u8_type,
11771 .vector_8_i16_type,11787 .vector_8_i16_type,
...@@ -12106,6 +12122,10 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {...@@ -12106,6 +12122,10 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId {
1210612122
12107 .vector_16_i8_type,12123 .vector_16_i8_type,
12108 .vector_32_i8_type,12124 .vector_32_i8_type,
12125 .vector_1_u8_type,
12126 .vector_2_u8_type,
12127 .vector_4_u8_type,
12128 .vector_8_u8_type,
12109 .vector_16_u8_type,12129 .vector_16_u8_type,
12110 .vector_32_u8_type,12130 .vector_32_u8_type,
12111 .vector_8_i16_type,12131 .vector_8_i16_type,
src/Sema.zig+4
...@@ -36377,6 +36377,10 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {...@@ -36377,6 +36377,10 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value {
36377 .slice_const_u8_sentinel_0_type,36377 .slice_const_u8_sentinel_0_type,
36378 .vector_16_i8_type,36378 .vector_16_i8_type,
36379 .vector_32_i8_type,36379 .vector_32_i8_type,
36380 .vector_1_u8_type,
36381 .vector_2_u8_type,
36382 .vector_4_u8_type,
36383 .vector_8_u8_type,
36380 .vector_16_u8_type,36384 .vector_16_u8_type,
36381 .vector_32_u8_type,36385 .vector_32_u8_type,
36382 .vector_8_i16_type,36386 .vector_8_i16_type,
src/Type.zig+4
...@@ -4201,6 +4201,10 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti...@@ -4201,6 +4201,10 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti
42014201
4202pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type };4202pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type };
4203pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type };4203pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type };
4204pub const vector_1_u8: Type = .{ .ip_index = .vector_1_u8_type };
4205pub const vector_2_u8: Type = .{ .ip_index = .vector_2_u8_type };
4206pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type };
4207pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type };
4204pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };4208pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type };
4205pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };4209pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type };
4206pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };4210pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type };
src/arch/x86_64/CodeGen.zig+9256-5568
...@@ -2069,7 +2069,7 @@ fn asmRegisterMemoryImmediate(...@@ -2069,7 +2069,7 @@ fn asmRegisterMemoryImmediate(
2069 } else {2069 } else {
2070 const payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) {2070 const payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) {
2071 .signed => |s| @bitCast(s),2071 .signed => |s| @bitCast(s),
2072 .unsigned => unreachable,2072 .unsigned => |u| @as(u32, @intCast(u)),
2073 .reloc => unreachable,2073 .reloc => unreachable,
2074 } });2074 } });
2075 assert(payload + 1 == try self.addExtra(Mir.Memory.encode(m)));2075 assert(payload + 1 == try self.addExtra(Mir.Memory.encode(m)));
...@@ -2418,7 +2418,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2418,7 +2418,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2418}2418}
24192419
2420fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {2420fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2421 @setEvalBranchQuota(13_600);2421 @setEvalBranchQuota(13_900);
2422 const pt = cg.pt;2422 const pt = cg.pt;
2423 const zcu = pt.zcu;2423 const zcu = pt.zcu;
2424 const ip = &zcu.intern_pool;2424 const ip = &zcu.intern_pool;
...@@ -2454,12 +2454,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -2454,12 +2454,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
2454 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);2454 try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1);
2455 switch (air_tags[@intFromEnum(inst)]) {2455 switch (air_tags[@intFromEnum(inst)]) {
2456 // zig fmt: off2456 // zig fmt: off
2457 .shr, .shr_exact => try cg.airShlShrBinOp(inst),
2458 .shl, .shl_exact => try cg.airShlShrBinOp(inst),
2459
2460 .mul_wrap,
2461 => |air_tag| try cg.airMulDivBinOp(inst, air_tag),
2462
2463 .add_sat => try cg.airAddSat(inst),2457 .add_sat => try cg.airAddSat(inst),
2464 .sub_sat => try cg.airSubSat(inst),2458 .sub_sat => try cg.airSubSat(inst),
2465 .mul_sat => try cg.airMulSat(inst),2459 .mul_sat => try cg.airMulSat(inst),
...@@ -8896,28 +8890,121 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -8896,28 +8890,121 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
8896 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);8890 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
8897 },8891 },
8898 .mul_safe => unreachable,8892 .mul_safe => unreachable,
8899 .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {8893 .mul_wrap => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else {
8900 else => unreachable,
8901 .div_float, .div_float_optimized => .div_float,
8902 .div_exact, .div_exact_optimized => .div_exact,
8903 }) else {
8904 const bin_op = air_datas[@intFromEnum(inst)].bin_op;8894 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
8905 const ty = cg.typeOf(bin_op.lhs);8895 const ty = cg.typeOf(bin_op.lhs);
8906 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });8896 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
8907 var res: [1]Temp = undefined;8897 var res: [1]Temp = undefined;
8908 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{8898 cg.select(&res, &.{ty}, &ops, comptime &.{ .{
8909 .required_features = .{ .f16c, null, null, null },8899 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
8910 .src_constraints = .{8900 .patterns = &.{
8911 .{ .scalar_float = .{ .of = .word, .is = .word } },8901 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
8912 .{ .scalar_float = .{ .of = .word, .is = .word } },8902 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
8913 .any,8903 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
8914 },8904 },
8905 .dst_temps = .{ .{ .ref = .src0 }, .unused },
8906 .clobbers = .{ .eflags = true },
8907 .each = .{ .once = &.{
8908 .{ ._, .i_, .mul, .src1b, ._, ._, ._ },
8909 } },
8910 }, .{
8911 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
8915 .patterns = &.{8912 .patterns = &.{
8916 .{ .src = .{ .to_sse, .to_sse, .none } },8913 .{ .src = .{ .{ .to_reg = .al }, .mem, .none } },
8914 .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } },
8915 .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } },
8916 },
8917 .dst_temps = .{ .{ .ref = .src0 }, .unused },
8918 .clobbers = .{ .eflags = true },
8919 .each = .{ .once = &.{
8920 .{ ._, ._, .mul, .src1b, ._, ._, ._ },
8921 } },
8922 }, .{
8923 .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any },
8924 .patterns = &.{
8925 .{ .src = .{ .mem, .imm16, .none } },
8926 .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } },
8927 .{ .src = .{ .to_gpr, .imm16, .none } },
8928 .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } },
8929 },
8930 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
8931 .clobbers = .{ .eflags = true },
8932 .each = .{ .once = &.{
8933 .{ ._, .i_, .mul, .dst0w, .src0w, .src1w, ._ },
8934 } },
8935 }, .{
8936 .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any },
8937 .patterns = &.{
8938 .{ .src = .{ .to_mut_gpr, .mem, .none } },
8939 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
8940 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
8941 },
8942 .dst_temps = .{ .{ .ref = .src0 }, .unused },
8943 .clobbers = .{ .eflags = true },
8944 .each = .{ .once = &.{
8945 .{ ._, .i_, .mul, .dst0w, .src1w, ._, ._ },
8946 } },
8947 }, .{
8948 .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any },
8949 .patterns = &.{
8950 .{ .src = .{ .mem, .imm32, .none } },
8951 .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } },
8952 .{ .src = .{ .to_gpr, .imm32, .none } },
8953 .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
8954 },
8955 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
8956 .clobbers = .{ .eflags = true },
8957 .each = .{ .once = &.{
8958 .{ ._, .i_, .mul, .dst0d, .src0d, .src1d, ._ },
8959 } },
8960 }, .{
8961 .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any },
8962 .patterns = &.{
8963 .{ .src = .{ .to_mut_gpr, .mem, .none } },
8964 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
8965 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
8966 },
8967 .dst_temps = .{ .{ .ref = .src0 }, .unused },
8968 .clobbers = .{ .eflags = true },
8969 .each = .{ .once = &.{
8970 .{ ._, .i_, .mul, .dst0d, .src1d, ._, ._ },
8971 } },
8972 }, .{
8973 .required_features = .{ .@"64bit", null, null, null },
8974 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },
8975 .patterns = &.{
8976 .{ .src = .{ .mem, .simm32, .none } },
8977 .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } },
8978 .{ .src = .{ .to_gpr, .simm32, .none } },
8979 .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } },
8980 },
8981 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
8982 .clobbers = .{ .eflags = true },
8983 .each = .{ .once = &.{
8984 .{ ._, .i_, .mul, .dst0q, .src0q, .src1q, ._ },
8985 } },
8986 }, .{
8987 .required_features = .{ .@"64bit", null, null, null },
8988 .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any },
8989 .patterns = &.{
8990 .{ .src = .{ .to_mut_gpr, .mem, .none } },
8991 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
8992 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
8993 },
8994 .dst_temps = .{ .{ .ref = .src0 }, .unused },
8995 .clobbers = .{ .eflags = true },
8996 .each = .{ .once = &.{
8997 .{ ._, .i_, .mul, .dst0q, .src1q, ._, ._ },
8998 } },
8999 }, .{
9000 .required_features = .{ .@"64bit", null, null, null },
9001 .src_constraints = .{ .{ .int = .xword }, .{ .int = .xword }, .any },
9002 .patterns = &.{
9003 .{ .src = .{ .to_mem, .to_mem, .none } },
8917 },9004 },
8918 .extra_temps = .{9005 .extra_temps = .{
8919 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },9006 .{ .type = .u64, .kind = .{ .reg = .rax } },
8920 .unused,9007 .{ .type = .u64, .kind = .{ .reg = .rdx } },
8921 .unused,9008 .unused,
8922 .unused,9009 .unused,
8923 .unused,9010 .unused,
...@@ -8928,113 +9015,169 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -8928,113 +9015,169 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
8928 .unused,9015 .unused,
8929 .unused,9016 .unused,
8930 },9017 },
8931 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9018 .dst_temps = .{ .mem, .unused },
9019 .clobbers = .{ .eflags = true },
8932 .each = .{ .once = &.{9020 .each = .{ .once = &.{
8933 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },9021 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
8934 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },9022 .{ ._, ._, .mul, .src1q, ._, ._, ._ },
8935 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },9023 .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ },
8936 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },9024 .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ },
9025 .{ ._, .i_, .mul, .tmp0q, .memd(.src1q, 8), ._, ._ },
9026 .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ },
9027 .{ ._, ._, .mov, .tmp0q, .src1q, ._, ._ },
9028 .{ ._, .i_, .mul, .tmp0q, .memd(.src0q, 8), ._, ._ },
9029 .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ },
9030 .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ },
8937 } },9031 } },
8938 }, .{9032 }, .{
8939 .required_features = .{ .sse, null, null, null },9033 .required_features = .{ .@"64bit", .bmi2, .adx, null },
8940 .src_constraints = .{9034 .src_constraints = .{
8941 .{ .scalar_float = .{ .of = .word, .is = .word } },9035 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
8942 .{ .scalar_float = .{ .of = .word, .is = .word } },9036 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
8943 .any,9037 .any,
8944 },9038 },
8945 .patterns = &.{9039 .patterns = &.{
8946 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },9040 .{ .src = .{ .to_mem, .to_mem, .none } },
8947 },9041 },
8948 .call_frame = .{ .alignment = .@"16" },
8949 .extra_temps = .{9042 .extra_temps = .{
8950 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },9043 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
8951 .unused,9044 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
8952 .unused,9045 .{ .type = .u64, .kind = .{ .reg = .rdx } },
8953 .unused,9046 .{ .type = .isize, .kind = .{ .reg = .rcx } },
8954 .unused,9047 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8955 .unused,9048 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8956 .unused,9049 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8957 .unused,9050 .unused,
8958 .unused,9051 .unused,
8959 .unused,9052 .unused,
8960 .unused,9053 .unused,
8961 },9054 },
8962 .dst_temps = .{ .{ .ref = .src0 }, .unused },9055 .dst_temps = .{ .mem, .unused },
8963 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },9056 .clobbers = .{ .eflags = true },
8964 .each = .{ .once = &.{9057 .each = .{ .once = &.{
8965 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },9058 .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ },
9059 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
9060 .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ },
9061 .{ ._, ._, .@"or", .tmp2q, .memi(.src0q, .tmp0), ._, ._ },
9062 .{ ._, ._z, .j, .@"2f", ._, ._, ._ },
9063 .{ ._, ._, .lea, .tmp3p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ },
9064 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
9065 .{ .@"1:", ._x, .mul, .tmp6q, .tmp5q, .leai(.tmp1q, .tmp3), ._ },
9066 .{ ._, ._x, .adc, .tmp5q, .tmp4q, ._, ._ },
9067 .{ ._, ._, .mov, .memiad(.dst0q, .tmp3, .add_size, -8), .tmp5q, ._, ._ },
9068 .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ },
9069 .{ ._, ._x, .ado, .tmp6q, .memia(.dst0q, .tmp3, .add_size), ._, ._ },
9070 .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ },
9071 .{ ._, ._, .lea, .tmp3p, .lead(.tmp3, 8), ._, ._ },
9072 .{ ._, ._mp, .j, .@"1b", ._, ._, ._ },
9073 .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ },
9074 .{ .@"1:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
9075 .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ },
9076 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
8966 } },9077 } },
8967 }, .{9078 }, .{
8968 .required_features = .{ .f16c, null, null, null },9079 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
8969 .src_constraints = .{9080 .src_constraints = .{
8970 .{ .scalar_float = .{ .of = .qword, .is = .word } },9081 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
8971 .{ .scalar_float = .{ .of = .qword, .is = .word } },9082 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
8972 .any,9083 .any,
8973 },9084 },
8974 .patterns = &.{9085 .patterns = &.{
8975 .{ .src = .{ .mem, .mem, .none } },9086 .{ .src = .{ .to_mem, .to_mem, .none } },
8976 .{ .src = .{ .to_sse, .mem, .none } },
8977 .{ .src = .{ .mem, .to_sse, .none } },
8978 .{ .src = .{ .to_sse, .to_sse, .none } },
8979 },9087 },
8980 .extra_temps = .{9088 .extra_temps = .{
8981 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },9089 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
8982 .unused,9090 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
8983 .unused,9091 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
8984 .unused,9092 .{ .type = .u64, .kind = .{ .reg = .rdx } },
8985 .unused,9093 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
8986 .unused,9094 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8987 .unused,9095 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8988 .unused,9096 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
8989 .unused,9097 .unused,
8990 .unused,9098 .unused,
8991 .unused,9099 .unused,
8992 },9100 },
8993 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9101 .dst_temps = .{ .mem, .unused },
9102 .clobbers = .{ .eflags = true },
8994 .each = .{ .once = &.{9103 .each = .{ .once = &.{
8995 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },9104 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
8996 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },9105 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
8997 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },9106 .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
8998 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },9107 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
9108 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
9109 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
9110 .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
9111 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
9112 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
9113 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
9114 .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ },
9115 .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ },
9116 .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ },
9117 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
9118 .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ },
9119 .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ },
9120 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ },
9121 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
9122 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
9123 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
9124 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
9125 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
8999 } },9126 } },
9000 }, .{9127 }, .{
9001 .required_features = .{ .f16c, null, null, null },9128 .required_features = .{ .@"64bit", .bmi2, null, null },
9002 .src_constraints = .{9129 .src_constraints = .{
9003 .{ .scalar_float = .{ .of = .xword, .is = .word } },9130 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9004 .{ .scalar_float = .{ .of = .xword, .is = .word } },9131 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9005 .any,9132 .any,
9006 },9133 },
9007 .patterns = &.{9134 .patterns = &.{
9008 .{ .src = .{ .mem, .mem, .none } },9135 .{ .src = .{ .to_mem, .to_mem, .none } },
9009 .{ .src = .{ .to_sse, .mem, .none } },
9010 .{ .src = .{ .mem, .to_sse, .none } },
9011 .{ .src = .{ .to_sse, .to_sse, .none } },
9012 },9136 },
9013 .extra_temps = .{9137 .extra_temps = .{
9014 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },9138 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9015 .unused,9139 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9016 .unused,9140 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9017 .unused,9141 .{ .type = .u64, .kind = .{ .reg = .rdx } },
9018 .unused,9142 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
9019 .unused,9143 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9020 .unused,9144 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9021 .unused,9145 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9022 .unused,9146 .unused,
9023 .unused,9147 .unused,
9024 .unused,9148 .unused,
9025 },9149 },
9026 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9150 .dst_temps = .{ .mem, .unused },
9151 .clobbers = .{ .eflags = true },
9027 .each = .{ .once = &.{9152 .each = .{ .once = &.{
9028 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },9153 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
9029 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },9154 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
9030 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },9155 .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
9031 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },9156 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
9157 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
9158 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
9159 .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
9160 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
9161 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
9162 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
9163 .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ },
9164 .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ },
9165 .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ },
9166 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
9167 .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ },
9168 .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ },
9169 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ },
9170 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
9171 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
9172 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
9173 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
9174 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
9032 } },9175 } },
9033 }, .{9176 }, .{
9034 .required_features = .{ .f16c, null, null, null },9177 .required_features = .{ .@"64bit", .slow_incdec, null, null },
9035 .src_constraints = .{9178 .src_constraints = .{
9036 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },9179 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9037 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },9180 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9038 .any,9181 .any,
9039 },9182 },
9040 .patterns = &.{9183 .patterns = &.{
...@@ -9042,13 +9185,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9042,13 +9185,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9042 },9185 },
9043 .extra_temps = .{9186 .extra_temps = .{
9044 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9187 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9045 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },9188 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9046 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },9189 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9047 .unused,9190 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9048 .unused,9191 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
9192 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9193 .{ .type = .u64, .kind = .{ .reg = .rax } },
9194 .{ .type = .u64, .kind = .{ .reg = .rdx } },
9049 .unused,9195 .unused,
9050 .unused,9196 .unused,
9051 .unused,9197 .unused,
9198 },
9199 .dst_temps = .{ .mem, .unused },
9200 .clobbers = .{ .eflags = true },
9201 .each = .{ .once = &.{
9202 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
9203 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
9204 .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
9205 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
9206 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
9207 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
9208 .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
9209 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
9210 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
9211 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
9212 .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ },
9213 .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ },
9214 .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ },
9215 .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ },
9216 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ },
9217 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
9218 .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ },
9219 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ },
9220 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
9221 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
9222 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
9223 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
9224 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
9225 } },
9226 }, .{
9227 .required_features = .{ .@"64bit", null, null, null },
9228 .src_constraints = .{
9229 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9230 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
9231 .any,
9232 },
9233 .patterns = &.{
9234 .{ .src = .{ .to_mem, .to_mem, .none } },
9235 },
9236 .extra_temps = .{
9237 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9238 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9239 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9240 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9241 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
9242 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
9243 .{ .type = .u64, .kind = .{ .reg = .rax } },
9244 .{ .type = .u64, .kind = .{ .reg = .rdx } },
9052 .unused,9245 .unused,
9053 .unused,9246 .unused,
9054 .unused,9247 .unused,
...@@ -9056,30 +9249,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9056,30 +9249,48 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9056 .dst_temps = .{ .mem, .unused },9249 .dst_temps = .{ .mem, .unused },
9057 .clobbers = .{ .eflags = true },9250 .clobbers = .{ .eflags = true },
9058 .each = .{ .once = &.{9251 .each = .{ .once = &.{
9059 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9252 .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
9060 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9253 .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ },
9061 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9254 .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ },
9062 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },9255 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
9063 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },9256 .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ },
9064 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9257 .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ },
9065 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9258 .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ },
9259 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
9260 .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
9261 .{ ._, ._mp, .j, .@"3f", ._, ._, ._ },
9262 .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ },
9263 .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ },
9264 .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ },
9265 .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ },
9266 .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ },
9267 .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ },
9268 .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ },
9269 .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ },
9270 .{ ._, ._c, .in, .tmp2p, ._, ._, ._ },
9271 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
9272 .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ },
9273 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
9274 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
9066 } },9275 } },
9067 }, .{9276 }, .{
9068 .required_features = .{ .avx, null, null, null },9277 .required_features = .{ .avx, null, null, null },
9069 .src_constraints = .{9278 .src_constraints = .{
9070 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9279 .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
9071 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9280 .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
9072 .any,9281 .any,
9073 },9282 },
9074 .patterns = &.{9283 .patterns = &.{
9075 .{ .src = .{ .to_mem, .to_mem, .none } },9284 .{ .src = .{ .mem, .mem, .none } },
9285 .{ .src = .{ .to_sse, .mem, .none } },
9286 .{ .src = .{ .mem, .to_sse, .none } },
9287 .{ .src = .{ .to_sse, .to_sse, .none } },
9076 },9288 },
9077 .call_frame = .{ .alignment = .@"16" },
9078 .extra_temps = .{9289 .extra_temps = .{
9079 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9290 .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9080 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },9291 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9081 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },9292 .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9082 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },9293 .unused,
9083 .unused,9294 .unused,
9084 .unused,9295 .unused,
9085 .unused,9296 .unused,
...@@ -9088,34 +9299,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9088,34 +9299,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9088 .unused,9299 .unused,
9089 .unused,9300 .unused,
9090 },9301 },
9091 .dst_temps = .{ .mem, .unused },9302 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9092 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
9093 .each = .{ .once = &.{9303 .each = .{ .once = &.{
9094 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9304 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9095 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },9305 .{ ._, .vp_w, .movsxb, .dst0x, .src0q, ._, ._ },
9096 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },9306 .{ ._, .vp_w, .movsxb, .tmp2x, .src1q, ._, ._ },
9097 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },9307 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
9098 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },9308 .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp1x), ._ },
9099 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
9100 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
9101 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9102 } },9309 } },
9103 }, .{9310 }, .{
9104 .required_features = .{ .sse4_1, null, null, null },9311 .required_features = .{ .sse4_1, null, null, null },
9105 .src_constraints = .{9312 .src_constraints = .{
9106 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9313 .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
9107 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9314 .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } },
9108 .any,9315 .any,
9109 },9316 },
9110 .patterns = &.{9317 .patterns = &.{
9111 .{ .src = .{ .to_mem, .to_mem, .none } },9318 .{ .src = .{ .mem, .mem, .none } },
9319 .{ .src = .{ .to_sse, .mem, .none } },
9320 .{ .src = .{ .mem, .to_sse, .none } },
9321 .{ .src = .{ .to_sse, .to_sse, .none } },
9112 },9322 },
9113 .call_frame = .{ .alignment = .@"16" },
9114 .extra_temps = .{9323 .extra_temps = .{
9115 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9324 .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9116 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },9325 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9117 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },9326 .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9118 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },9327 .unused,
9119 .unused,9328 .unused,
9120 .unused,9329 .unused,
9121 .unused,9330 .unused,
...@@ -9124,36 +9333,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9124,36 +9333,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9124 .unused,9333 .unused,
9125 .unused,9334 .unused,
9126 },9335 },
9127 .dst_temps = .{ .mem, .unused },9336 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9128 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
9129 .each = .{ .once = &.{9337 .each = .{ .once = &.{
9130 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9338 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9131 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },9339 .{ ._, .p_w, .movsxb, .dst0x, .src0q, ._, ._ },
9132 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },9340 .{ ._, .p_w, .movsxb, .tmp2x, .src1q, ._, ._ },
9133 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },9341 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
9134 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },9342 .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp1x), ._, ._ },
9135 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
9136 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
9137 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
9138 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9139 } },9343 } },
9140 }, .{9344 }, .{
9141 .required_features = .{ .sse2, null, null, null },9345 .required_features = .{ .sse2, null, null, null },
9142 .src_constraints = .{9346 .src_constraints = .{
9143 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9347 .{ .scalar_int = .{ .of = .qword, .is = .byte } },
9144 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9348 .{ .scalar_int = .{ .of = .qword, .is = .byte } },
9145 .any,9349 .any,
9146 },9350 },
9147 .patterns = &.{9351 .patterns = &.{
9148 .{ .src = .{ .to_mem, .to_mem, .none } },9352 .{ .src = .{ .to_mut_sse, .to_mut_sse, .none } },
9149 },9353 },
9150 .call_frame = .{ .alignment = .@"16" },
9151 .extra_temps = .{9354 .extra_temps = .{
9152 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9355 .{ .type = .vector_16_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } },
9153 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },9356 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9154 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },9357 .unused,
9155 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },9358 .unused,
9156 .{ .type = .f16, .kind = .{ .reg = .ax } },9359 .unused,
9157 .unused,9360 .unused,
9158 .unused,9361 .unused,
9159 .unused,9362 .unused,
...@@ -9161,150 +9364,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9161,150 +9364,135 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9161 .unused,9364 .unused,
9162 .unused,9365 .unused,
9163 },9366 },
9164 .dst_temps = .{ .mem, .unused },9367 .dst_temps = .{ .{ .ref = .src0 }, .unused },
9165 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
9166 .each = .{ .once = &.{9368 .each = .{ .once = &.{
9167 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9369 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9168 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },9370 .{ ._, .p_, .unpcklbw, .dst0x, .dst0x, ._, ._ },
9169 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },9371 .{ ._, .p_, .unpcklbw, .src1x, .src1x, ._, ._ },
9170 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },9372 .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ },
9171 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },9373 .{ ._, .p_, .@"and", .dst0x, .lea(.tmp1x), ._, ._ },
9172 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },9374 .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ },
9173 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
9174 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
9175 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
9176 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9177 } },9375 } },
9178 }, .{9376 }, .{
9179 .required_features = .{ .sse, null, null, null },9377 .required_features = .{ .avx2, null, null, null },
9180 .src_constraints = .{9378 .src_constraints = .{
9181 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9379 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
9182 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },9380 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
9183 .any,9381 .any,
9184 },9382 },
9185 .patterns = &.{9383 .patterns = &.{
9186 .{ .src = .{ .to_mem, .to_mem, .none } },9384 .{ .src = .{ .mem, .mem, .none } },
9385 .{ .src = .{ .to_sse, .mem, .none } },
9386 .{ .src = .{ .mem, .to_sse, .none } },
9387 .{ .src = .{ .to_sse, .to_sse, .none } },
9187 },9388 },
9188 .call_frame = .{ .alignment = .@"16" },
9189 .extra_temps = .{9389 .extra_temps = .{
9190 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9390 .{ .type = .vector_32_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9191 .{ .type = .f16, .kind = .{ .reg = .ax } },9391 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9192 .{ .type = .f32, .kind = .mem },9392 .{ .type = .vector_16_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9193 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },9393 .unused,
9194 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },9394 .unused,
9195 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },9395 .unused,
9196 .unused,9396 .unused,
9197 .unused,9397 .unused,
9198 .unused,9398 .unused,
9199 .unused,9399 .unused,
9200 .unused,9400 .unused,
9201 },9401 },
9202 .dst_temps = .{ .mem, .unused },9402 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9203 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
9204 .each = .{ .once = &.{9403 .each = .{ .once = &.{
9205 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9404 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9206 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },9405 .{ ._, .vp_w, .movsxb, .dst0y, .src0x, ._, ._ },
9207 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },9406 .{ ._, .vp_w, .movsxb, .tmp2y, .src1x, ._, ._ },
9208 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },9407 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
9209 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },9408 .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp1y), ._ },
9210 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },9409 .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ },
9211 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
9212 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
9213 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
9214 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
9215 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
9216 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
9217 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9218 } },9410 } },
9219 }, .{9411 }, .{
9220 .required_features = .{ .avx, null, null, null },9412 .required_features = .{ .avx, null, null, null },
9221 .src_constraints = .{9413 .src_constraints = .{
9222 .{ .scalar_float = .{ .of = .dword, .is = .dword } },9414 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9223 .{ .scalar_float = .{ .of = .dword, .is = .dword } },9415 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9224 .any,9416 .any,
9225 },9417 },
9226 .patterns = &.{9418 .patterns = &.{
9419 .{ .src = .{ .mem, .mem, .none } },
9227 .{ .src = .{ .to_sse, .mem, .none } },9420 .{ .src = .{ .to_sse, .mem, .none } },
9421 .{ .src = .{ .mem, .to_sse, .none } },
9228 .{ .src = .{ .to_sse, .to_sse, .none } },9422 .{ .src = .{ .to_sse, .to_sse, .none } },
9229 },9423 },
9230 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9424 .extra_temps = .{
9231 .each = .{ .once = &.{9425 .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9232 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },9426 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9233 } },9427 .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9234 }, .{9428 .unused,
9235 .required_features = .{ .sse, null, null, null },9429 .unused,
9236 .src_constraints = .{9430 .unused,
9237 .{ .scalar_float = .{ .of = .dword, .is = .dword } },9431 .unused,
9238 .{ .scalar_float = .{ .of = .dword, .is = .dword } },9432 .unused,
9239 .any,9433 .unused,
9240 },9434 .unused,
9241 .patterns = &.{9435 .unused,
9242 .{ .src = .{ .to_mut_sse, .mem, .none } },
9243 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
9244 },9436 },
9245 .dst_temps = .{ .{ .ref = .src0 }, .unused },9437 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9246 .each = .{ .once = &.{9438 .each = .{ .once = &.{
9247 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },9439 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9440 .{ ._, .vp_w, .movzxb, .dst0x, .src0q, ._, ._ },
9441 .{ ._, .vp_w, .movzxb, .tmp2x, .src1q, ._, ._ },
9442 .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ },
9443 .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp1x), ._ },
9248 } },9444 } },
9249 }, .{9445 }, .{
9250 .required_features = .{ .avx, null, null, null },9446 .required_features = .{ .sse4_1, null, null, null },
9251 .src_constraints = .{9447 .src_constraints = .{
9252 .{ .scalar_float = .{ .of = .xword, .is = .dword } },9448 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9253 .{ .scalar_float = .{ .of = .xword, .is = .dword } },9449 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9254 .any,9450 .any,
9255 },9451 },
9256 .patterns = &.{9452 .patterns = &.{
9453 .{ .src = .{ .mem, .mem, .none } },
9257 .{ .src = .{ .to_sse, .mem, .none } },9454 .{ .src = .{ .to_sse, .mem, .none } },
9455 .{ .src = .{ .mem, .to_sse, .none } },
9258 .{ .src = .{ .to_sse, .to_sse, .none } },9456 .{ .src = .{ .to_sse, .to_sse, .none } },
9259 },9457 },
9260 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9458 .extra_temps = .{
9261 .each = .{ .once = &.{9459 .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9262 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },9460 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9263 } },9461 .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9264 }, .{9462 .unused,
9265 .required_features = .{ .sse, null, null, null },9463 .unused,
9266 .src_constraints = .{9464 .unused,
9267 .{ .scalar_float = .{ .of = .xword, .is = .dword } },9465 .unused,
9268 .{ .scalar_float = .{ .of = .xword, .is = .dword } },9466 .unused,
9269 .any,9467 .unused,
9270 },9468 .unused,
9271 .patterns = &.{9469 .unused,
9272 .{ .src = .{ .to_mut_sse, .mem, .none } },
9273 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
9274 },9470 },
9275 .dst_temps = .{ .{ .ref = .src0 }, .unused },9471 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9276 .each = .{ .once = &.{9472 .each = .{ .once = &.{
9277 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },9473 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9474 .{ ._, .p_w, .movzxb, .dst0x, .src0q, ._, ._ },
9475 .{ ._, .p_w, .movzxb, .tmp2x, .src1q, ._, ._ },
9476 .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ },
9477 .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp1x), ._, ._ },
9278 } },9478 } },
9279 }, .{9479 }, .{
9280 .required_features = .{ .avx, null, null, null },9480 .required_features = .{ .avx2, null, null, null },
9281 .src_constraints = .{9481 .src_constraints = .{
9282 .{ .scalar_float = .{ .of = .yword, .is = .dword } },9482 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
9283 .{ .scalar_float = .{ .of = .yword, .is = .dword } },9483 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
9284 .any,9484 .any,
9285 },9485 },
9286 .patterns = &.{9486 .patterns = &.{
9487 .{ .src = .{ .mem, .mem, .none } },
9287 .{ .src = .{ .to_sse, .mem, .none } },9488 .{ .src = .{ .to_sse, .mem, .none } },
9489 .{ .src = .{ .mem, .to_sse, .none } },
9288 .{ .src = .{ .to_sse, .to_sse, .none } },9490 .{ .src = .{ .to_sse, .to_sse, .none } },
9289 },9491 },
9290 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9291 .each = .{ .once = &.{
9292 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
9293 } },
9294 }, .{
9295 .required_features = .{ .avx, null, null, null },
9296 .src_constraints = .{
9297 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
9298 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
9299 .any,
9300 },
9301 .patterns = &.{
9302 .{ .src = .{ .to_mem, .to_mem, .none } },
9303 },
9304 .extra_temps = .{9492 .extra_temps = .{
9305 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9493 .{ .type = .vector_32_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } },
9306 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },9494 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
9307 .unused,9495 .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9308 .unused,9496 .unused,
9309 .unused,9497 .unused,
9310 .unused,9498 .unused,
...@@ -9314,21 +9502,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9314,21 +9502,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9314 .unused,9502 .unused,
9315 .unused,9503 .unused,
9316 },9504 },
9317 .dst_temps = .{ .mem, .unused },9505 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9318 .clobbers = .{ .eflags = true },
9319 .each = .{ .once = &.{9506 .each = .{ .once = &.{
9320 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9507 .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ },
9321 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },9508 .{ ._, .vp_w, .movzxb, .dst0y, .src0x, ._, ._ },
9322 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },9509 .{ ._, .vp_w, .movzxb, .tmp2y, .src1x, ._, ._ },
9323 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },9510 .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ },
9324 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },9511 .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp1y), ._ },
9325 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9512 .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ },
9326 } },9513 } },
9327 }, .{9514 }, .{
9328 .required_features = .{ .sse, null, null, null },9515 .required_features = .{ .avx2, null, null, null },
9329 .src_constraints = .{9516 .src_constraints = .{
9330 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },9517 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
9331 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },9518 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
9332 .any,9519 .any,
9333 },9520 },
9334 .patterns = &.{9521 .patterns = &.{
...@@ -9336,10 +9523,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9336,10 +9523,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9336 },9523 },
9337 .extra_temps = .{9524 .extra_temps = .{
9338 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9525 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9339 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },9526 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9340 .unused,9527 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
9341 .unused,9528 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
9342 .unused,9529 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
9343 .unused,9530 .unused,
9344 .unused,9531 .unused,
9345 .unused,9532 .unused,
...@@ -9350,59 +9537,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9350,59 +9537,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9350 .dst_temps = .{ .mem, .unused },9537 .dst_temps = .{ .mem, .unused },
9351 .clobbers = .{ .eflags = true },9538 .clobbers = .{ .eflags = true },
9352 .each = .{ .once = &.{9539 .each = .{ .once = &.{
9540 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9541 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
9353 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9542 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9354 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9543 .{ .@"0:", .vp_w, .movsxb, .tmp3y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
9355 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9544 .{ ._, .vp_w, .movsxb, .tmp4y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
9356 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },9545 .{ ._, .vp_w, .mull, .tmp3y, .tmp3y, .tmp4y, ._ },
9546 .{ ._, .vp_b, .shuf, .tmp3y, .tmp3y, .tmp2y, ._ },
9547 .{ ._, .v_q, .perm, .tmp3y, .tmp3y, .ui(0b10_00_10_00), ._ },
9548 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9357 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9549 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
9358 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9550 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9359 } },9551 } },
9360 }, .{9552 }, .{
9361 .required_features = .{ .avx, null, null, null },9553 .required_features = .{ .avx, null, null, null },
9362 .src_constraints = .{9554 .src_constraints = .{
9363 .{ .scalar_float = .{ .of = .qword, .is = .qword } },9555 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
9364 .{ .scalar_float = .{ .of = .qword, .is = .qword } },9556 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
9365 .any,
9366 },
9367 .patterns = &.{
9368 .{ .src = .{ .to_sse, .mem, .none } },
9369 .{ .src = .{ .to_sse, .to_sse, .none } },
9370 },
9371 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9372 .each = .{ .once = &.{
9373 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
9374 } },
9375 }, .{
9376 .required_features = .{ .sse2, null, null, null },
9377 .src_constraints = .{
9378 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
9379 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
9380 .any,
9381 },
9382 .patterns = &.{
9383 .{ .src = .{ .to_mut_sse, .mem, .none } },
9384 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
9385 },
9386 .dst_temps = .{ .{ .ref = .src0 }, .unused },
9387 .each = .{ .once = &.{
9388 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
9389 } },
9390 }, .{
9391 .required_features = .{ .x87, null, null, null },
9392 .src_constraints = .{
9393 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
9394 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
9395 .any,9557 .any,
9396 },9558 },
9397 .patterns = &.{9559 .patterns = &.{
9398 .{ .src = .{ .mem, .mem, .none } },9560 .{ .src = .{ .to_mem, .to_mem, .none } },
9399 },9561 },
9400 .extra_temps = .{9562 .extra_temps = .{
9401 .{ .type = .f64, .kind = .{ .reg = .st6 } },9563 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9402 .{ .type = .f64, .kind = .{ .reg = .st7 } },9564 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9403 .unused,9565 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
9404 .unused,9566 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
9405 .unused,9567 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
9406 .unused,9568 .unused,
9407 .unused,9569 .unused,
9408 .unused,9570 .unused,
...@@ -9411,61 +9573,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9411,61 +9573,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9411 .unused,9573 .unused,
9412 },9574 },
9413 .dst_temps = .{ .mem, .unused },9575 .dst_temps = .{ .mem, .unused },
9576 .clobbers = .{ .eflags = true },
9414 .each = .{ .once = &.{9577 .each = .{ .once = &.{
9415 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },9578 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9416 .{ ._, .f_, .div, .src1q, ._, ._, ._ },9579 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9417 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },9580 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9418 } },9581 .{ .@"0:", .vp_w, .movsxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9419 }, .{9582 .{ ._, .vp_w, .movsxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9420 .required_features = .{ .avx, null, null, null },9583 .{ ._, .vp_w, .mull, .tmp3x, .tmp3x, .tmp4x, ._ },
9421 .src_constraints = .{9584 .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ },
9422 .{ .scalar_float = .{ .of = .xword, .is = .qword } },9585 .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9423 .{ .scalar_float = .{ .of = .xword, .is = .qword } },9586 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9424 .any,9587 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9425 },
9426 .patterns = &.{
9427 .{ .src = .{ .to_sse, .mem, .none } },
9428 .{ .src = .{ .to_sse, .to_sse, .none } },
9429 },
9430 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9431 .each = .{ .once = &.{
9432 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
9433 } },
9434 }, .{
9435 .required_features = .{ .sse2, null, null, null },
9436 .src_constraints = .{
9437 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
9438 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
9439 .any,
9440 },
9441 .patterns = &.{
9442 .{ .src = .{ .to_mut_sse, .mem, .none } },
9443 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
9444 },
9445 .dst_temps = .{ .{ .ref = .src0 }, .unused },
9446 .each = .{ .once = &.{
9447 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
9448 } },
9449 }, .{
9450 .required_features = .{ .avx, null, null, null },
9451 .src_constraints = .{
9452 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
9453 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
9454 .any,
9455 },
9456 .patterns = &.{
9457 .{ .src = .{ .to_sse, .mem, .none } },
9458 .{ .src = .{ .to_sse, .to_sse, .none } },
9459 },
9460 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9461 .each = .{ .once = &.{
9462 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
9463 } },9588 } },
9464 }, .{9589 }, .{
9465 .required_features = .{ .avx, null, null, null },9590 .required_features = .{ .sse4_1, null, null, null },
9466 .src_constraints = .{9591 .src_constraints = .{
9467 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },9592 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
9468 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },9593 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } },
9469 .any,9594 .any,
9470 },9595 },
9471 .patterns = &.{9596 .patterns = &.{
...@@ -9473,10 +9598,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9473,10 +9598,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9473 },9598 },
9474 .extra_temps = .{9599 .extra_temps = .{
9475 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9600 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9476 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },9601 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9477 .unused,9602 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
9478 .unused,9603 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
9479 .unused,9604 .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } },
9480 .unused,9605 .unused,
9481 .unused,9606 .unused,
9482 .unused,9607 .unused,
...@@ -9487,18 +9612,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9487,18 +9612,22 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9487 .dst_temps = .{ .mem, .unused },9612 .dst_temps = .{ .mem, .unused },
9488 .clobbers = .{ .eflags = true },9613 .clobbers = .{ .eflags = true },
9489 .each = .{ .once = &.{9614 .each = .{ .once = &.{
9615 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9616 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9490 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9617 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9491 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },9618 .{ .@"0:", .p_w, .movsxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9492 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },9619 .{ ._, .p_w, .movsxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9493 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },9620 .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ },
9494 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },9621 .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ },
9622 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9623 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9495 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9624 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9496 } },9625 } },
9497 }, .{9626 }, .{
9498 .required_features = .{ .sse2, null, null, null },9627 .required_features = .{ .ssse3, null, null, null },
9499 .src_constraints = .{9628 .src_constraints = .{
9500 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },9629 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9501 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },9630 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9502 .any,9631 .any,
9503 },9632 },
9504 .patterns = &.{9633 .patterns = &.{
...@@ -9506,10 +9635,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9506,10 +9635,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9506 },9635 },
9507 .extra_temps = .{9636 .extra_temps = .{
9508 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9637 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9509 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },9638 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9510 .unused,9639 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
9511 .unused,9640 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9512 .unused,9641 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9513 .unused,9642 .unused,
9514 .unused,9643 .unused,
9515 .unused,9644 .unused,
...@@ -9520,18 +9649,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9520,18 +9649,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9520 .dst_temps = .{ .mem, .unused },9649 .dst_temps = .{ .mem, .unused },
9521 .clobbers = .{ .eflags = true },9650 .clobbers = .{ .eflags = true },
9522 .each = .{ .once = &.{9651 .each = .{ .once = &.{
9652 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9653 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9523 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9654 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9524 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9655 .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9525 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9656 .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ },
9526 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },9657 .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9527 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9658 .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ },
9659 .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ },
9660 .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ },
9661 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9662 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9528 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9663 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9529 } },9664 } },
9530 }, .{9665 }, .{
9531 .required_features = .{ .x87, null, null, null },9666 .required_features = .{ .sse3, null, null, null },
9532 .src_constraints = .{9667 .src_constraints = .{
9533 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },9668 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9534 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },9669 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9535 .any,9670 .any,
9536 },9671 },
9537 .patterns = &.{9672 .patterns = &.{
...@@ -9539,10 +9674,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9539,10 +9674,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9539 },9674 },
9540 .extra_temps = .{9675 .extra_temps = .{
9541 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9676 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9542 .{ .type = .f64, .kind = .{ .reg = .st6 } },9677 .{ .type = .vector_8_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } },
9543 .{ .type = .f64, .kind = .{ .reg = .st7 } },9678 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
9544 .unused,9679 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9545 .unused,9680 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9546 .unused,9681 .unused,
9547 .unused,9682 .unused,
9548 .unused,9683 .unused,
...@@ -9551,30 +9686,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9551,30 +9686,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9551 .unused,9686 .unused,
9552 },9687 },
9553 .dst_temps = .{ .mem, .unused },9688 .dst_temps = .{ .mem, .unused },
9689 .clobbers = .{ .eflags = true },
9554 .each = .{ .once = &.{9690 .each = .{ .once = &.{
9691 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9692 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9555 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9693 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9556 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },9694 .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9557 .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },9695 .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ },
9558 .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },9696 .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9697 .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ },
9698 .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ },
9699 .{ ._, .p_, .@"and", .tmp3x, .tmp2x, ._, ._ },
9700 .{ ._, .p_b, .ackusw, .tmp3x, .tmp3x, ._, ._ },
9701 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9559 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },9702 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9560 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9703 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9561 } },9704 } },
9562 }, .{9705 }, .{
9563 .required_features = .{ .x87, null, null, null },9706 .required_features = .{ .sse2, null, null, null },
9564 .src_constraints = .{9707 .src_constraints = .{
9565 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9708 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9566 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9709 .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } },
9567 .any,9710 .any,
9568 },9711 },
9569 .patterns = &.{9712 .patterns = &.{
9570 .{ .src = .{ .mem, .mem, .none } },9713 .{ .src = .{ .to_mem, .to_mem, .none } },
9571 },9714 },
9572 .extra_temps = .{9715 .extra_temps = .{
9573 .{ .type = .f80, .kind = .{ .reg = .st6 } },9716 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9574 .{ .type = .f80, .kind = .{ .reg = .st7 } },9717 .{ .type = .vector_16_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } },
9575 .unused,9718 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
9576 .unused,9719 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9577 .unused,9720 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9578 .unused,9721 .unused,
9579 .unused,9722 .unused,
9580 .unused,9723 .unused,
...@@ -9582,26 +9725,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9582,26 +9725,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9582 .unused,9725 .unused,
9583 .unused,9726 .unused,
9584 },9727 },
9585 .dst_temps = .{ .{ .rc = .x87 }, .unused },9728 .dst_temps = .{ .mem, .unused },
9729 .clobbers = .{ .eflags = true },
9586 .each = .{ .once = &.{9730 .each = .{ .once = &.{
9587 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },9731 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9588 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },9732 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
9589 .{ ._, .f_p, .div, ._, ._, ._, ._ },9733 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9590 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },9734 .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9735 .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ },
9736 .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9737 .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ },
9738 .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ },
9739 .{ ._, .p_, .@"and", .tmp3x, .tmp2x, ._, ._ },
9740 .{ ._, .p_b, .ackusw, .tmp3x, .tmp3x, ._, ._ },
9741 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9742 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9743 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9591 } },9744 } },
9592 }, .{9745 }, .{
9593 .required_features = .{ .x87, null, null, null },9746 .required_features = .{ .slow_incdec, null, null, null },
9594 .src_constraints = .{9747 .src_constraints = .{
9595 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9748 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
9596 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9749 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
9597 .any,9750 .any,
9598 },9751 },
9599 .patterns = &.{9752 .patterns = &.{
9600 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },9753 .{ .src = .{ .to_mem, .to_mem, .none } },
9601 },9754 },
9602 .extra_temps = .{9755 .extra_temps = .{
9603 .{ .type = .f80, .kind = .{ .reg = .st7 } },9756 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9604 .unused,9757 .{ .type = .i8, .kind = .{ .reg = .al } },
9605 .unused,9758 .unused,
9606 .unused,9759 .unused,
9607 .unused,9760 .unused,
...@@ -9612,26 +9765,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9612,26 +9765,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9612 .unused,9765 .unused,
9613 .unused,9766 .unused,
9614 },9767 },
9615 .dst_temps = .{ .{ .rc = .x87 }, .unused },9768 .dst_temps = .{ .mem, .unused },
9769 .clobbers = .{ .eflags = true },
9616 .each = .{ .once = &.{9770 .each = .{ .once = &.{
9617 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },9771 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9618 .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },9772 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
9619 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },9773 .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
9774 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
9775 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
9776 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9620 } },9777 } },
9621 }, .{9778 }, .{
9622 .required_features = .{ .x87, null, null, null },
9623 .src_constraints = .{9779 .src_constraints = .{
9624 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9780 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
9625 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },9781 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
9626 .any,9782 .any,
9627 },9783 },
9628 .patterns = &.{9784 .patterns = &.{
9629 .{ .src = .{ .mem, .to_x87, .none } },9785 .{ .src = .{ .to_mem, .to_mem, .none } },
9630 .{ .src = .{ .to_x87, .to_x87, .none } },
9631 },9786 },
9632 .extra_temps = .{9787 .extra_temps = .{
9633 .{ .type = .f80, .kind = .{ .reg = .st7 } },9788 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9634 .unused,9789 .{ .type = .i8, .kind = .{ .reg = .al } },
9635 .unused,9790 .unused,
9636 .unused,9791 .unused,
9637 .unused,9792 .unused,
...@@ -9642,17 +9797,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9642,17 +9797,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9642 .unused,9797 .unused,
9643 .unused,9798 .unused,
9644 },9799 },
9645 .dst_temps = .{ .{ .rc = .x87 }, .unused },9800 .dst_temps = .{ .mem, .unused },
9801 .clobbers = .{ .eflags = true },
9646 .each = .{ .once = &.{9802 .each = .{ .once = &.{
9647 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },9803 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9648 .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },9804 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
9649 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },9805 .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
9806 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
9807 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
9808 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
9650 } },9809 } },
9651 }, .{9810 }, .{
9652 .required_features = .{ .x87, null, null, null },9811 .required_features = .{ .avx2, null, null, null },
9653 .src_constraints = .{9812 .src_constraints = .{
9654 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },9813 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
9655 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },9814 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
9656 .any,9815 .any,
9657 },9816 },
9658 .patterns = &.{9817 .patterns = &.{
...@@ -9660,10 +9819,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9660,10 +9819,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9660 },9819 },
9661 .extra_temps = .{9820 .extra_temps = .{
9662 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9821 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9663 .{ .type = .f80, .kind = .{ .reg = .st6 } },9822 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9664 .{ .type = .f80, .kind = .{ .reg = .st7 } },9823 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
9665 .unused,9824 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
9666 .unused,9825 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
9667 .unused,9826 .unused,
9668 .unused,9827 .unused,
9669 .unused,9828 .unused,
...@@ -9672,32 +9831,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9672,32 +9831,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9672 .unused,9831 .unused,
9673 },9832 },
9674 .dst_temps = .{ .mem, .unused },9833 .dst_temps = .{ .mem, .unused },
9834 .clobbers = .{ .eflags = true },
9675 .each = .{ .once = &.{9835 .each = .{ .once = &.{
9836 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9837 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
9676 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9838 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9677 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },9839 .{ .@"0:", .vp_w, .movzxb, .tmp3y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
9678 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },9840 .{ ._, .vp_w, .movzxb, .tmp4y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
9679 .{ ._, .f_p, .div, ._, ._, ._, ._ },9841 .{ ._, .vp_w, .mull, .tmp3y, .tmp3y, .tmp4y, ._ },
9680 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },9842 .{ ._, .vp_b, .shuf, .tmp3y, .tmp3y, .tmp2y, ._ },
9843 .{ ._, .v_q, .perm, .tmp3y, .tmp3y, .ui(0b10_00_10_00), ._ },
9844 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9681 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9845 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
9682 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9846 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9683 } },9847 } },
9684 }, .{9848 }, .{
9685 .required_features = .{ .sse, null, null, null },9849 .required_features = .{ .avx, null, null, null },
9686 .src_constraints = .{9850 .src_constraints = .{
9687 .{ .scalar_float = .{ .of = .xword, .is = .xword } },9851 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9688 .{ .scalar_float = .{ .of = .xword, .is = .xword } },9852 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9689 .any,9853 .any,
9690 },9854 },
9691 .patterns = &.{9855 .patterns = &.{
9692 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },9856 .{ .src = .{ .to_mem, .to_mem, .none } },
9693 },9857 },
9694 .call_frame = .{ .alignment = .@"16" },
9695 .extra_temps = .{9858 .extra_temps = .{
9696 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },9859 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9697 .unused,9860 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9698 .unused,9861 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
9699 .unused,9862 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9700 .unused,9863 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9701 .unused,9864 .unused,
9702 .unused,9865 .unused,
9703 .unused,9866 .unused,
...@@ -9705,28 +9868,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9705,28 +9868,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9705 .unused,9868 .unused,
9706 .unused,9869 .unused,
9707 },9870 },
9708 .dst_temps = .{ .{ .ref = .src0 }, .unused },9871 .dst_temps = .{ .mem, .unused },
9709 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },9872 .clobbers = .{ .eflags = true },
9710 .each = .{ .once = &.{9873 .each = .{ .once = &.{
9711 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },9874 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9875 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9876 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9877 .{ .@"0:", .vp_w, .movzxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9878 .{ ._, .vp_w, .movzxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9879 .{ ._, .vp_w, .mull, .tmp3x, .tmp3x, .tmp4x, ._ },
9880 .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ },
9881 .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9882 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9883 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9712 } },9884 } },
9713 }, .{9885 }, .{
9714 .required_features = .{ .avx, null, null, null },9886 .required_features = .{ .sse4_1, null, null, null },
9715 .src_constraints = .{9887 .src_constraints = .{
9716 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9888 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9717 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9889 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
9718 .any,9890 .any,
9719 },9891 },
9720 .patterns = &.{9892 .patterns = &.{
9721 .{ .src = .{ .to_mem, .to_mem, .none } },9893 .{ .src = .{ .to_mem, .to_mem, .none } },
9722 },9894 },
9723 .call_frame = .{ .alignment = .@"16" },
9724 .extra_temps = .{9895 .extra_temps = .{
9725 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9896 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9726 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },9897 .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } },
9727 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },9898 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
9728 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },9899 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9729 .unused,9900 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9730 .unused,9901 .unused,
9731 .unused,9902 .unused,
9732 .unused,9903 .unused,
...@@ -9735,32 +9906,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9735,32 +9906,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9735 .unused,9906 .unused,
9736 },9907 },
9737 .dst_temps = .{ .mem, .unused },9908 .dst_temps = .{ .mem, .unused },
9738 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },9909 .clobbers = .{ .eflags = true },
9739 .each = .{ .once = &.{9910 .each = .{ .once = &.{
9911 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
9912 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
9740 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9913 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9741 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9914 .{ .@"0:", .p_w, .movzxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
9742 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9915 .{ ._, .p_w, .movzxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
9743 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },9916 .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ },
9744 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },9917 .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ },
9745 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9918 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ },
9919 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
9746 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9920 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9747 } },9921 } },
9748 }, .{9922 }, .{
9749 .required_features = .{ .sse2, null, null, null },9923 .required_features = .{ .slow_incdec, null, null, null },
9750 .src_constraints = .{9924 .src_constraints = .{
9751 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9925 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
9752 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9926 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
9753 .any,9927 .any,
9754 },9928 },
9755 .patterns = &.{9929 .patterns = &.{
9756 .{ .src = .{ .to_mem, .to_mem, .none } },9930 .{ .src = .{ .to_mem, .to_mem, .none } },
9757 },9931 },
9758 .call_frame = .{ .alignment = .@"16" },
9759 .extra_temps = .{9932 .extra_temps = .{
9760 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9933 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9761 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },9934 .{ .type = .u8, .kind = .{ .reg = .al } },
9762 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },9935 .unused,
9763 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },9936 .unused,
9764 .unused,9937 .unused,
9765 .unused,9938 .unused,
9766 .unused,9939 .unused,
...@@ -9770,32 +9943,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9770,32 +9943,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9770 .unused,9943 .unused,
9771 },9944 },
9772 .dst_temps = .{ .mem, .unused },9945 .dst_temps = .{ .mem, .unused },
9773 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },9946 .clobbers = .{ .eflags = true },
9774 .each = .{ .once = &.{9947 .each = .{ .once = &.{
9775 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9948 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9776 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9949 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
9777 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9950 .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
9778 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },9951 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
9779 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },9952 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
9780 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
9781 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },9953 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9782 } },9954 } },
9783 }, .{9955 }, .{
9784 .required_features = .{ .sse, null, null, null },
9785 .src_constraints = .{9956 .src_constraints = .{
9786 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9957 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
9787 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },9958 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
9788 .any,9959 .any,
9789 },9960 },
9790 .patterns = &.{9961 .patterns = &.{
9791 .{ .src = .{ .to_mem, .to_mem, .none } },9962 .{ .src = .{ .to_mem, .to_mem, .none } },
9792 },9963 },
9793 .call_frame = .{ .alignment = .@"16" },
9794 .extra_temps = .{9964 .extra_temps = .{
9795 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },9965 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9796 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },9966 .{ .type = .u8, .kind = .{ .reg = .al } },
9797 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },9967 .unused,
9798 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },9968 .unused,
9799 .unused,9969 .unused,
9800 .unused,9970 .unused,
9801 .unused,9971 .unused,
...@@ -9805,150 +9975,76 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9805,150 +9975,76 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9805 .unused,9975 .unused,
9806 },9976 },
9807 .dst_temps = .{ .mem, .unused },9977 .dst_temps = .{ .mem, .unused },
9808 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },9978 .clobbers = .{ .eflags = true },
9809 .each = .{ .once = &.{9979 .each = .{ .once = &.{
9810 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },9980 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9811 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },9981 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ },
9812 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },9982 .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ },
9813 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },9983 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ },
9814 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },9984 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
9815 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },9985 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
9816 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9817 } },9986 } },
9818 } }) else err: {9987 }, .{
9819 assert(air_tag == .div_exact);9988 .required_features = .{ .avx, null, null, null },
9820 res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
9821 }) catch |err| switch (err) {
9822 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
9823 @tagName(air_tag),
9824 ty.fmt(pt),
9825 ops[0].tracking(cg),
9826 ops[1].tracking(cg),
9827 }),
9828 else => |e| return e,
9829 };
9830 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
9831 },
9832 .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else {
9833 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
9834 const ty = cg.typeOf(bin_op.lhs);
9835 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
9836 var res: [1]Temp = undefined;
9837 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
9838 .required_features = .{ .f16c, null, null, null },
9839 .src_constraints = .{9989 .src_constraints = .{
9840 .{ .scalar_float = .{ .of = .word, .is = .word } },9990 .{ .scalar_int = .{ .of = .xword, .is = .word } },
9841 .{ .scalar_float = .{ .of = .word, .is = .word } },9991 .{ .scalar_int = .{ .of = .xword, .is = .word } },
9842 .any,9992 .any,
9843 },9993 },
9844 .patterns = &.{9994 .patterns = &.{
9995 .{ .src = .{ .to_sse, .mem, .none } },
9996 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
9845 .{ .src = .{ .to_sse, .to_sse, .none } },9997 .{ .src = .{ .to_sse, .to_sse, .none } },
9846 },9998 },
9847 .extra_temps = .{
9848 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9849 .unused,
9850 .unused,
9851 .unused,
9852 .unused,
9853 .unused,
9854 .unused,
9855 .unused,
9856 .unused,
9857 .unused,
9858 .unused,
9859 },
9860 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },9999 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9861 .each = .{ .once = &.{10000 .each = .{ .once = &.{
9862 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },10001 .{ ._, .vp_w, .mull, .dst0x, .src0x, .src1x, ._ },
9863 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
9864 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
9865 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
9866 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
9867 .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
9868 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
9869 } },10002 } },
9870 }, .{10003 }, .{
9871 .required_features = .{ .sse, null, null, null },10004 .required_features = .{ .sse2, null, null, null },
9872 .src_constraints = .{10005 .src_constraints = .{
9873 .{ .scalar_float = .{ .of = .word, .is = .word } },10006 .{ .scalar_int = .{ .of = .xword, .is = .word } },
9874 .{ .scalar_float = .{ .of = .word, .is = .word } },10007 .{ .scalar_int = .{ .of = .xword, .is = .word } },
9875 .any,10008 .any,
9876 },10009 },
9877 .patterns = &.{10010 .patterns = &.{
9878 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },10011 .{ .src = .{ .to_mut_sse, .mem, .none } },
9879 },10012 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
9880 .call_frame = .{ .alignment = .@"16" },10013 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
9881 .extra_temps = .{
9882 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
9883 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
9884 .unused,
9885 .unused,
9886 .unused,
9887 .unused,
9888 .unused,
9889 .unused,
9890 .unused,
9891 .unused,
9892 .unused,
9893 },10014 },
9894 .dst_temps = .{ .{ .ref = .src0 }, .unused },10015 .dst_temps = .{ .{ .ref = .src0 }, .unused },
9895 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
9896 .each = .{ .once = &.{10016 .each = .{ .once = &.{
9897 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },10017 .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ },
9898 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
9899 } },10018 } },
9900 }, .{10019 }, .{
9901 .required_features = .{ .f16c, null, null, null },10020 .required_features = .{ .avx2, null, null, null },
9902 .src_constraints = .{10021 .src_constraints = .{
9903 .{ .scalar_float = .{ .of = .qword, .is = .word } },10022 .{ .scalar_int = .{ .of = .yword, .is = .word } },
9904 .{ .scalar_float = .{ .of = .qword, .is = .word } },10023 .{ .scalar_int = .{ .of = .yword, .is = .word } },
9905 .any,10024 .any,
9906 },10025 },
9907 .patterns = &.{10026 .patterns = &.{
9908 .{ .src = .{ .mem, .mem, .none } },
9909 .{ .src = .{ .to_sse, .mem, .none } },10027 .{ .src = .{ .to_sse, .mem, .none } },
9910 .{ .src = .{ .mem, .to_sse, .none } },10028 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
9911 .{ .src = .{ .to_sse, .to_sse, .none } },10029 .{ .src = .{ .to_sse, .to_sse, .none } },
9912 },10030 },
9913 .extra_temps = .{
9914 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
9915 .unused,
9916 .unused,
9917 .unused,
9918 .unused,
9919 .unused,
9920 .unused,
9921 .unused,
9922 .unused,
9923 .unused,
9924 .unused,
9925 },
9926 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10031 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
9927 .each = .{ .once = &.{10032 .each = .{ .once = &.{
9928 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },10033 .{ ._, .vp_w, .mull, .dst0y, .src0y, .src1y, ._ },
9929 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
9930 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
9931 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
9932 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
9933 .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
9934 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
9935 } },10034 } },
9936 }, .{10035 }, .{
9937 .required_features = .{ .f16c, null, null, null },10036 .required_features = .{ .avx2, null, null, null },
9938 .src_constraints = .{10037 .src_constraints = .{
9939 .{ .scalar_float = .{ .of = .xword, .is = .word } },10038 .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } },
9940 .{ .scalar_float = .{ .of = .xword, .is = .word } },10039 .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } },
9941 .any,10040 .any,
9942 },10041 },
9943 .patterns = &.{10042 .patterns = &.{
9944 .{ .src = .{ .mem, .mem, .none } },10043 .{ .src = .{ .to_mem, .to_mem, .none } },
9945 .{ .src = .{ .to_sse, .mem, .none } },
9946 .{ .src = .{ .mem, .to_sse, .none } },
9947 .{ .src = .{ .to_sse, .to_sse, .none } },
9948 },10044 },
9949 .extra_temps = .{10045 .extra_temps = .{
9950 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },10046 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9951 .unused,10047 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
9952 .unused,10048 .unused,
9953 .unused,10049 .unused,
9954 .unused,10050 .unused,
...@@ -9959,21 +10055,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9959,21 +10055,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9959 .unused,10055 .unused,
9960 .unused,10056 .unused,
9961 },10057 },
9962 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10058 .dst_temps = .{ .mem, .unused },
10059 .clobbers = .{ .eflags = true },
9963 .each = .{ .once = &.{10060 .each = .{ .once = &.{
9964 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },10061 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9965 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },10062 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
9966 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },10063 .{ ._, .vp_w, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
9967 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },10064 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
9968 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },10065 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
9969 .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10066 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
9970 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
9971 } },10067 } },
9972 }, .{10068 }, .{
9973 .required_features = .{ .f16c, null, null, null },10069 .required_features = .{ .avx, null, null, null },
9974 .src_constraints = .{10070 .src_constraints = .{
9975 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },10071 .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
9976 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },10072 .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
9977 .any,10073 .any,
9978 },10074 },
9979 .patterns = &.{10075 .patterns = &.{
...@@ -9981,8 +10077,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9981,8 +10077,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9981 },10077 },
9982 .extra_temps = .{10078 .extra_temps = .{
9983 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10079 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
9984 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },10080 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
9985 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },10081 .unused,
9986 .unused,10082 .unused,
9987 .unused,10083 .unused,
9988 .unused,10084 .unused,
...@@ -9996,33 +10092,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -9996,33 +10092,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
9996 .clobbers = .{ .eflags = true },10092 .clobbers = .{ .eflags = true },
9997 .each = .{ .once = &.{10093 .each = .{ .once = &.{
9998 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10094 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
9999 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10095 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
10000 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10096 .{ ._, .vp_w, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ },
10001 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },10097 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10002 .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ },
10003 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
10004 .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10005 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
10006 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },10098 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10007 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10099 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10008 } },10100 } },
10009 }, .{10101 }, .{
10010 .required_features = .{ .avx, null, null, null },10102 .required_features = .{ .sse2, null, null, null },
10011 .src_constraints = .{10103 .src_constraints = .{
10012 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10104 .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
10013 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10105 .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } },
10014 .any,10106 .any,
10015 },10107 },
10016 .patterns = &.{10108 .patterns = &.{
10017 .{ .src = .{ .to_mem, .to_mem, .none } },10109 .{ .src = .{ .to_mem, .to_mem, .none } },
10018 },10110 },
10019 .call_frame = .{ .alignment = .@"16" },
10020 .extra_temps = .{10111 .extra_temps = .{
10021 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10112 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10022 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },10113 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
10023 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },10114 .unused,
10024 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },10115 .unused,
10025 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },10116 .unused,
10026 .unused,10117 .unused,
10027 .unused,10118 .unused,
10028 .unused,10119 .unused,
...@@ -10031,35 +10122,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10031,35 +10122,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10031 .unused,10122 .unused,
10032 },10123 },
10033 .dst_temps = .{ .mem, .unused },10124 .dst_temps = .{ .mem, .unused },
10034 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10125 .clobbers = .{ .eflags = true },
10035 .each = .{ .once = &.{10126 .each = .{ .once = &.{
10036 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10127 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10037 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },10128 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
10038 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },10129 .{ ._, .p_w, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
10039 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },10130 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10040 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },10131 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10041 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
10042 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
10043 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10044 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10132 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10045 } },10133 } },
10046 }, .{10134 }, .{
10047 .required_features = .{ .sse4_1, null, null, null },
10048 .src_constraints = .{10135 .src_constraints = .{
10049 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10136 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
10050 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10137 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
10051 .any,10138 .any,
10052 },10139 },
10053 .patterns = &.{10140 .patterns = &.{
10054 .{ .src = .{ .to_mem, .to_mem, .none } },10141 .{ .src = .{ .to_mem, .to_mem, .none } },
10055 },10142 },
10056 .call_frame = .{ .alignment = .@"16" },
10057 .extra_temps = .{10143 .extra_temps = .{
10058 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10144 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10059 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },10145 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
10060 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },10146 .unused,
10061 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },10147 .unused,
10062 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },10148 .unused,
10063 .unused,10149 .unused,
10064 .unused,10150 .unused,
10065 .unused,10151 .unused,
...@@ -10068,96 +10154,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10068,96 +10154,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10068 .unused,10154 .unused,
10069 },10155 },
10070 .dst_temps = .{ .mem, .unused },10156 .dst_temps = .{ .mem, .unused },
10071 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10157 .clobbers = .{ .eflags = true },
10072 .each = .{ .once = &.{10158 .each = .{ .once = &.{
10073 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10159 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10074 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },10160 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
10075 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },10161 .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
10076 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },10162 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
10077 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10078 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10079 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
10080 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
10081 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },10163 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10082 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10164 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10083 } },10165 } },
10084 }, .{10166 }, .{
10085 .required_features = .{ .sse2, null, null, null },
10086 .src_constraints = .{10167 .src_constraints = .{
10087 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10168 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
10088 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },10169 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
10089 .any,10170 .any,
10090 },10171 },
10091 .patterns = &.{10172 .patterns = &.{
10092 .{ .src = .{ .to_mem, .to_mem, .none } },10173 .{ .src = .{ .to_mem, .to_mem, .none } },
10093 },10174 },
10094 .call_frame = .{ .alignment = .@"16" },
10095 .extra_temps = .{10175 .extra_temps = .{
10096 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10176 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10097 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },10177 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
10098 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10099 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
10100 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
10101 .{ .type = .f16, .kind = .{ .reg = .ax } },
10102 .unused,10178 .unused,
10103 .unused,10179 .unused,
10104 .unused,10180 .unused,
10105 .unused,10181 .unused,
10106 .unused,10182 .unused,
10107 },
10108 .dst_temps = .{ .mem, .unused },
10109 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10110 .each = .{ .once = &.{
10111 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10112 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
10113 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
10114 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10115 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10116 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10117 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
10118 .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ },
10119 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ },
10120 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10121 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10122 } },
10123 }, .{
10124 .required_features = .{ .sse, null, null, null },
10125 .src_constraints = .{
10126 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10127 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10128 .any,
10129 },
10130 .patterns = &.{
10131 .{ .src = .{ .to_mem, .to_mem, .none } },
10132 },
10133 .call_frame = .{ .alignment = .@"16" },
10134 .extra_temps = .{
10135 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10136 .{ .type = .f16, .kind = .{ .reg = .ax } },
10137 .{ .type = .f32, .kind = .mem },
10138 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
10139 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10140 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
10141 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
10142 .unused,10183 .unused,
10143 .unused,10184 .unused,
10144 .unused,10185 .unused,
10145 .unused,10186 .unused,
10146 },10187 },
10147 .dst_temps = .{ .mem, .unused },10188 .dst_temps = .{ .mem, .unused },
10148 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10189 .clobbers = .{ .eflags = true },
10149 .each = .{ .once = &.{10190 .each = .{ .once = &.{
10150 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10191 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10151 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },10192 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
10152 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },10193 .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
10153 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
10154 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
10155 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
10156 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
10157 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
10158 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
10159 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
10160 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
10161 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },10194 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
10162 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },10195 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10163 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10196 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -10165,112 +10198,65 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10165,112 +10198,65 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10165 }, .{10198 }, .{
10166 .required_features = .{ .avx, null, null, null },10199 .required_features = .{ .avx, null, null, null },
10167 .src_constraints = .{10200 .src_constraints = .{
10168 .{ .scalar_float = .{ .of = .dword, .is = .dword } },10201 .{ .scalar_int = .{ .of = .xword, .is = .dword } },
10169 .{ .scalar_float = .{ .of = .dword, .is = .dword } },10202 .{ .scalar_int = .{ .of = .xword, .is = .dword } },
10170 .any,10203 .any,
10171 },10204 },
10172 .patterns = &.{10205 .patterns = &.{
10173 .{ .src = .{ .to_sse, .mem, .none } },10206 .{ .src = .{ .to_sse, .mem, .none } },
10207 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
10174 .{ .src = .{ .to_sse, .to_sse, .none } },10208 .{ .src = .{ .to_sse, .to_sse, .none } },
10175 },10209 },
10176 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10210 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10177 .each = .{ .once = &.{10211 .each = .{ .once = &.{
10178 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },10212 .{ ._, .vp_d, .mull, .dst0x, .src0x, .src1x, ._ },
10179 .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
10180 } },10213 } },
10181 }, .{10214 }, .{
10182 .required_features = .{ .sse4_1, null, null, null },10215 .required_features = .{ .sse4_1, null, null, null },
10183 .src_constraints = .{10216 .src_constraints = .{
10184 .{ .scalar_float = .{ .of = .dword, .is = .dword } },10217 .{ .scalar_int = .{ .of = .xword, .is = .dword } },
10185 .{ .scalar_float = .{ .of = .dword, .is = .dword } },10218 .{ .scalar_int = .{ .of = .xword, .is = .dword } },
10186 .any,10219 .any,
10187 },10220 },
10188 .patterns = &.{10221 .patterns = &.{
10189 .{ .src = .{ .to_mut_sse, .mem, .none } },10222 .{ .src = .{ .to_mut_sse, .mem, .none } },
10223 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
10190 .{ .src = .{ .to_mut_sse, .to_sse, .none } },10224 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
10191 },10225 },
10192 .dst_temps = .{ .{ .ref = .src0 }, .unused },10226 .dst_temps = .{ .{ .ref = .src0 }, .unused },
10193 .each = .{ .once = &.{10227 .each = .{ .once = &.{
10194 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },10228 .{ ._, .p_d, .mull, .dst0x, .src1x, ._, ._ },
10195 .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10196 } },
10197 }, .{
10198 .required_features = .{ .sse, null, null, null },
10199 .src_constraints = .{
10200 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
10201 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
10202 .any,
10203 },
10204 .patterns = &.{
10205 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
10206 },
10207 .call_frame = .{ .alignment = .@"16" },
10208 .extra_temps = .{
10209 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
10210 .unused,
10211 .unused,
10212 .unused,
10213 .unused,
10214 .unused,
10215 .unused,
10216 .unused,
10217 .unused,
10218 .unused,
10219 .unused,
10220 },
10221 .dst_temps = .{ .{ .ref = .src0 }, .unused },
10222 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10223 .each = .{ .once = &.{
10224 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
10225 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
10226 } },10229 } },
10227 }, .{10230 }, .{
10228 .required_features = .{ .avx, null, null, null },10231 .required_features = .{ .avx2, null, null, null },
10229 .src_constraints = .{10232 .src_constraints = .{
10230 .{ .scalar_float = .{ .of = .xword, .is = .dword } },10233 .{ .scalar_int = .{ .of = .yword, .is = .dword } },
10231 .{ .scalar_float = .{ .of = .xword, .is = .dword } },10234 .{ .scalar_int = .{ .of = .yword, .is = .dword } },
10232 .any,10235 .any,
10233 },10236 },
10234 .patterns = &.{10237 .patterns = &.{
10235 .{ .src = .{ .to_sse, .mem, .none } },10238 .{ .src = .{ .to_sse, .mem, .none } },
10239 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
10236 .{ .src = .{ .to_sse, .to_sse, .none } },10240 .{ .src = .{ .to_sse, .to_sse, .none } },
10237 },10241 },
10238 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10242 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10239 .each = .{ .once = &.{10243 .each = .{ .once = &.{
10240 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },10244 .{ ._, .vp_d, .mull, .dst0y, .src0y, .src1y, ._ },
10241 .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10242 } },
10243 }, .{
10244 .required_features = .{ .sse4_1, null, null, null },
10245 .src_constraints = .{
10246 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
10247 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
10248 .any,
10249 },
10250 .patterns = &.{
10251 .{ .src = .{ .to_mut_sse, .mem, .none } },
10252 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
10253 },
10254 .dst_temps = .{ .{ .ref = .src0 }, .unused },
10255 .each = .{ .once = &.{
10256 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
10257 .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10258 } },10245 } },
10259 }, .{10246 }, .{
10260 .required_features = .{ .sse, null, null, null },10247 .required_features = .{ .avx2, null, null, null },
10261 .src_constraints = .{10248 .src_constraints = .{
10262 .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },10249 .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } },
10263 .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },10250 .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } },
10264 .any,10251 .any,
10265 },10252 },
10266 .patterns = &.{10253 .patterns = &.{
10267 .{ .src = .{ .to_mem, .to_mem, .none } },10254 .{ .src = .{ .to_mem, .to_mem, .none } },
10268 },10255 },
10269 .call_frame = .{ .alignment = .@"16" },
10270 .extra_temps = .{10256 .extra_temps = .{
10271 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10257 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10272 .{ .type = .f32, .kind = .{ .reg = .xmm0 } },10258 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
10273 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },10259 .unused,
10274 .unused,10260 .unused,
10275 .unused,10261 .unused,
10276 .unused,10262 .unused,
...@@ -10281,37 +10267,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10281,37 +10267,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10281 .unused,10267 .unused,
10282 },10268 },
10283 .dst_temps = .{ .mem, .unused },10269 .dst_temps = .{ .mem, .unused },
10284 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10270 .clobbers = .{ .eflags = true },
10285 .each = .{ .once = &.{10271 .each = .{ .once = &.{
10286 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10272 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10287 .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },10273 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
10288 .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },10274 .{ ._, .vp_d, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
10289 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },10275 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
10290 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },10276 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
10291 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
10292 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10277 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10293 } },10278 } },
10294 }, .{10279 }, .{
10295 .required_features = .{ .avx, null, null, null },10280 .required_features = .{ .avx, null, null, null },
10296 .src_constraints = .{10281 .src_constraints = .{
10297 .{ .scalar_float = .{ .of = .yword, .is = .dword } },10282 .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
10298 .{ .scalar_float = .{ .of = .yword, .is = .dword } },10283 .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
10299 .any,
10300 },
10301 .patterns = &.{
10302 .{ .src = .{ .to_sse, .mem, .none } },
10303 .{ .src = .{ .to_sse, .to_sse, .none } },
10304 },
10305 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10306 .each = .{ .once = &.{
10307 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
10308 .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10309 } },
10310 }, .{
10311 .required_features = .{ .avx, null, null, null },
10312 .src_constraints = .{
10313 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
10314 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
10315 .any,10284 .any,
10316 },10285 },
10317 .patterns = &.{10286 .patterns = &.{
...@@ -10319,7 +10288,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10319,7 +10288,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10319 },10288 },
10320 .extra_temps = .{10289 .extra_temps = .{
10321 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10290 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10322 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },10291 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
10323 .unused,10292 .unused,
10324 .unused,10293 .unused,
10325 .unused,10294 .unused,
...@@ -10334,18 +10303,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10334,18 +10303,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10334 .clobbers = .{ .eflags = true },10303 .clobbers = .{ .eflags = true },
10335 .each = .{ .once = &.{10304 .each = .{ .once = &.{
10336 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10305 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10337 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },10306 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
10338 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },10307 .{ ._, .vp_d, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ },
10339 .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10308 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10340 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },10309 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10341 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
10342 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10310 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10343 } },10311 } },
10344 }, .{10312 }, .{
10345 .required_features = .{ .sse4_1, null, null, null },10313 .required_features = .{ .sse4_1, null, null, null },
10346 .src_constraints = .{10314 .src_constraints = .{
10347 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },10315 .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
10348 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },10316 .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } },
10349 .any,10317 .any,
10350 },10318 },
10351 .patterns = &.{10319 .patterns = &.{
...@@ -10353,7 +10321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10353,7 +10321,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10353 },10321 },
10354 .extra_temps = .{10322 .extra_temps = .{
10355 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10323 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10356 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },10324 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
10357 .unused,10325 .unused,
10358 .unused,10326 .unused,
10359 .unused,10327 .unused,
...@@ -10368,59 +10336,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10368,59 +10336,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10368 .clobbers = .{ .eflags = true },10336 .clobbers = .{ .eflags = true },
10369 .each = .{ .once = &.{10337 .each = .{ .once = &.{
10370 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10338 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10371 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10339 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
10372 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10340 .{ ._, .p_d, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
10373 .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10341 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10374 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10375 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },10342 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10376 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10343 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10377 } },10344 } },
10378 }, .{10345 }, .{
10379 .required_features = .{ .avx, null, null, null },
10380 .src_constraints = .{
10381 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
10382 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
10383 .any,
10384 },
10385 .patterns = &.{
10386 .{ .src = .{ .to_sse, .mem, .none } },
10387 .{ .src = .{ .to_sse, .to_sse, .none } },
10388 },
10389 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10390 .each = .{ .once = &.{
10391 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
10392 .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }) },
10393 } },
10394 }, .{
10395 .required_features = .{ .sse4_1, null, null, null },
10396 .src_constraints = .{
10397 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
10398 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
10399 .any,
10400 },
10401 .patterns = &.{
10402 .{ .src = .{ .to_mut_sse, .mem, .none } },
10403 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
10404 },
10405 .dst_temps = .{ .{ .ref = .src0 }, .unused },
10406 .each = .{ .once = &.{
10407 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
10408 .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
10409 } },
10410 }, .{
10411 .required_features = .{ .sse2, null, null, null },
10412 .src_constraints = .{10346 .src_constraints = .{
10413 .{ .scalar_float = .{ .of = .qword, .is = .qword } },10347 .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } },
10414 .{ .scalar_float = .{ .of = .qword, .is = .qword } },10348 .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } },
10415 .any,10349 .any,
10416 },10350 },
10417 .patterns = &.{10351 .patterns = &.{
10418 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },10352 .{ .src = .{ .to_mem, .to_mem, .none } },
10419 },10353 },
10420 .call_frame = .{ .alignment = .@"16" },
10421 .extra_temps = .{10354 .extra_temps = .{
10422 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },10355 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10423 .unused,10356 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
10424 .unused,10357 .unused,
10425 .unused,10358 .unused,
10426 .unused,10359 .unused,
...@@ -10431,26 +10364,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10431,26 +10364,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10431 .unused,10364 .unused,
10432 .unused,10365 .unused,
10433 },10366 },
10434 .dst_temps = .{ .{ .ref = .src0 }, .unused },10367 .dst_temps = .{ .mem, .unused },
10435 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10368 .clobbers = .{ .eflags = true },
10436 .each = .{ .once = &.{10369 .each = .{ .once = &.{
10437 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },10370 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10438 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },10371 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
10372 .{ ._, .i_, .mul, .tmp1d, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },
10373 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ },
10374 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
10375 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10439 } },10376 } },
10440 }, .{10377 }, .{
10441 .required_features = .{ .sse, null, null, null },10378 .required_features = .{ .@"64bit", null, null, null },
10442 .src_constraints = .{10379 .src_constraints = .{
10443 .{ .scalar_float = .{ .of = .qword, .is = .qword } },10380 .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } },
10444 .{ .scalar_float = .{ .of = .qword, .is = .qword } },10381 .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } },
10445 .any,10382 .any,
10446 },10383 },
10447 .patterns = &.{10384 .patterns = &.{
10448 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },10385 .{ .src = .{ .to_mem, .to_mem, .none } },
10449 },10386 },
10450 .call_frame = .{ .alignment = .@"16" },
10451 .extra_temps = .{10387 .extra_temps = .{
10452 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },10388 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10453 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },10389 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10454 .unused,10390 .unused,
10455 .unused,10391 .unused,
10456 .unused,10392 .unused,
...@@ -10461,65 +10397,180 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10461,65 +10397,180 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10461 .unused,10397 .unused,
10462 .unused,10398 .unused,
10463 },10399 },
10464 .dst_temps = .{ .{ .ref = .src0 }, .unused },10400 .dst_temps = .{ .mem, .unused },
10465 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10401 .clobbers = .{ .eflags = true },
10466 .each = .{ .once = &.{10402 .each = .{ .once = &.{
10467 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },10403 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10468 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },10404 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
10405 .{ ._, .i_, .mul, .tmp1q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
10406 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ },
10407 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
10408 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10469 } },10409 } },
10470 }, .{10410 }, .{
10471 .required_features = .{ .avx, null, null, null },10411 .required_features = .{ .@"64bit", .bmi2, .adx, null },
10472 .src_constraints = .{10412 .src_constraints = .{
10473 .{ .scalar_float = .{ .of = .xword, .is = .qword } },10413 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10474 .{ .scalar_float = .{ .of = .xword, .is = .qword } },10414 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10475 .any,10415 .any,
10476 },10416 },
10477 .patterns = &.{10417 .patterns = &.{
10478 .{ .src = .{ .to_sse, .mem, .none } },10418 .{ .src = .{ .to_mem, .to_mem, .none } },
10479 .{ .src = .{ .to_sse, .to_sse, .none } },
10480 },10419 },
10481 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10420 .extra_temps = .{
10482 .each = .{ .once = &.{10421 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10483 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },10422 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10484 .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10423 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10485 } },10424 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10486 }, .{10425 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10487 .required_features = .{ .sse4_1, null, null, null },10426 .{ .type = .u64, .kind = .{ .reg = .rdx } },
10488 .src_constraints = .{10427 .{ .type = .isize, .kind = .{ .reg = .rcx } },
10489 .{ .scalar_float = .{ .of = .xword, .is = .qword } },10428 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10490 .{ .scalar_float = .{ .of = .xword, .is = .qword } },10429 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10491 .any,10430 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10431 .unused,
10492 },10432 },
10493 .patterns = &.{10433 .dst_temps = .{ .mem, .unused },
10494 .{ .src = .{ .to_mut_sse, .mem, .none } },10434 .clobbers = .{ .eflags = true },
10495 .{ .src = .{ .to_mut_sse, .to_sse, .none } },10435 .each = .{ .once = &.{
10436 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
10437 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
10438 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size), ._, ._ },
10439 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
10440 .{ ._, ._, .mov, .tmp4d, .sia(-8, .src0, .add_elem_size), ._, ._ },
10441 .{ .@"1:", ._, .xor, .tmp5d, .tmp5d, ._, ._ },
10442 .{ ._, ._, .@"or", .tmp5q, .leai(.tmp1q, .tmp4), ._, ._ },
10443 .{ ._, ._z, .j, .@"3f", ._, ._, ._ },
10444 .{ ._, ._, .lea, .tmp6p, .leaad(.tmp4, .sub_src0_elem_size, 8), ._, ._ },
10445 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
10446 .{ .@"2:", ._x, .mul, .tmp9q, .tmp8q, .leai(.tmp2q, .tmp6), ._ },
10447 .{ ._, ._x, .adc, .tmp8q, .tmp7q, ._, ._ },
10448 .{ ._, ._, .mov, .leaiad(.tmp3q, .tmp6, .add_dst0_elem_size, -8), .tmp8q, ._, ._ },
10449 .{ ._, ._rcxz, .j, .@"2f", ._, ._, ._ },
10450 .{ ._, ._x, .ado, .tmp9q, .leaia(.tmp3q, .tmp6, .add_dst0_elem_size), ._, ._ },
10451 .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ },
10452 .{ ._, ._, .lea, .tmp6p, .lead(.tmp6, 8), ._, ._ },
10453 .{ ._, ._mp, .j, .@"2b", ._, ._, ._ },
10454 .{ .@"3:", ._, .mov, .leai(.tmp3q, .tmp4), .tmp5q, ._, ._ },
10455 .{ .@"2:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
10456 .{ ._, ._, .sub, .tmp4d, .si(8), ._, ._ },
10457 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
10458 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
10459 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10460 } },
10461 }, .{
10462 .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null },
10463 .src_constraints = .{
10464 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10465 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10466 .any,
10496 },10467 },
10497 .dst_temps = .{ .{ .ref = .src0 }, .unused },10468 .patterns = &.{
10469 .{ .src = .{ .to_mem, .to_mem, .none } },
10470 },
10471 .extra_temps = .{
10472 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10473 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10474 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10475 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10476 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10477 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10478 .{ .type = .u64, .kind = .{ .reg = .rdx } },
10479 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
10480 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10481 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10482 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10483 },
10484 .dst_temps = .{ .mem, .unused },
10485 .clobbers = .{ .eflags = true },
10498 .each = .{ .once = &.{10486 .each = .{ .once = &.{
10499 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },10487 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
10500 .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10488 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
10489 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
10490 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
10491 .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
10492 .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
10493 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
10494 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
10495 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
10496 .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
10497 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
10498 .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
10499 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
10500 .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
10501 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
10502 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
10503 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
10504 .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ },
10505 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
10506 .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
10507 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
10508 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
10509 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
10510 .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ },
10511 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
10512 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
10513 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10501 } },10514 } },
10502 }, .{10515 }, .{
10503 .required_features = .{ .avx, null, null, null },10516 .required_features = .{ .@"64bit", .bmi2, null, null },
10504 .src_constraints = .{10517 .src_constraints = .{
10505 .{ .scalar_float = .{ .of = .yword, .is = .qword } },10518 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10506 .{ .scalar_float = .{ .of = .yword, .is = .qword } },10519 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10507 .any,10520 .any,
10508 },10521 },
10509 .patterns = &.{10522 .patterns = &.{
10510 .{ .src = .{ .to_sse, .mem, .none } },10523 .{ .src = .{ .to_mem, .to_mem, .none } },
10511 .{ .src = .{ .to_sse, .to_sse, .none } },
10512 },10524 },
10513 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },10525 .extra_temps = .{
10526 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10527 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10528 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10529 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10530 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10531 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10532 .{ .type = .u64, .kind = .{ .reg = .rdx } },
10533 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
10534 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10535 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10536 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10537 },
10538 .dst_temps = .{ .mem, .unused },
10539 .clobbers = .{ .eflags = true },
10514 .each = .{ .once = &.{10540 .each = .{ .once = &.{
10515 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },10541 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
10516 .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10542 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
10543 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
10544 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
10545 .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
10546 .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
10547 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
10548 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
10549 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
10550 .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
10551 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
10552 .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
10553 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
10554 .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
10555 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
10556 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
10557 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
10558 .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ },
10559 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
10560 .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
10561 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
10562 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
10563 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
10564 .{ ._, ._c, .de, .tmp4d, ._, ._, ._ },
10565 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
10566 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
10567 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10517 } },10568 } },
10518 }, .{10569 }, .{
10519 .required_features = .{ .avx, null, null, null },10570 .required_features = .{ .@"64bit", .slow_incdec, null, null },
10520 .src_constraints = .{10571 .src_constraints = .{
10521 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },10572 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10522 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },10573 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10523 .any,10574 .any,
10524 },10575 },
10525 .patterns = &.{10576 .patterns = &.{
...@@ -10527,33 +10578,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10527,33 +10578,54 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10527 },10578 },
10528 .extra_temps = .{10579 .extra_temps = .{
10529 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10580 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10530 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },10581 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10531 .unused,10582 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10532 .unused,10583 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10533 .unused,10584 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10534 .unused,10585 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10535 .unused,10586 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10536 .unused,10587 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
10537 .unused,10588 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10538 .unused,10589 .{ .type = .u64, .kind = .{ .reg = .rax } },
10539 .unused,10590 .{ .type = .u64, .kind = .{ .reg = .rdx } },
10540 },10591 },
10541 .dst_temps = .{ .mem, .unused },10592 .dst_temps = .{ .mem, .unused },
10542 .clobbers = .{ .eflags = true },10593 .clobbers = .{ .eflags = true },
10543 .each = .{ .once = &.{10594 .each = .{ .once = &.{
10544 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10595 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
10545 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },10596 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
10546 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },10597 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
10547 .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10598 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
10548 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },10599 .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
10549 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },10600 .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
10601 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
10602 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
10603 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
10604 .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
10605 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
10606 .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
10607 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
10608 .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
10609 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
10610 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
10611 .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ },
10612 .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ },
10613 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
10614 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
10615 .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
10616 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
10617 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
10618 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
10619 .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ },
10620 .{ ._, ._ae, .j, .@"1b", ._, ._, ._ },
10621 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
10550 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10622 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10551 } },10623 } },
10552 }, .{10624 }, .{
10553 .required_features = .{ .sse4_1, null, null, null },10625 .required_features = .{ .@"64bit", null, null, null },
10554 .src_constraints = .{10626 .src_constraints = .{
10555 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },10627 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10556 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },10628 .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } },
10557 .any,10629 .any,
10558 },10630 },
10559 .patterns = &.{10631 .patterns = &.{
...@@ -10561,7 +10633,62 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10561,7 +10633,62 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10561 },10633 },
10562 .extra_temps = .{10634 .extra_temps = .{
10563 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10635 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10564 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },10636 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10637 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10638 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
10639 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10640 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10641 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10642 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
10643 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
10644 .{ .type = .u64, .kind = .{ .reg = .rax } },
10645 .{ .type = .u64, .kind = .{ .reg = .rdx } },
10646 },
10647 .dst_temps = .{ .mem, .unused },
10648 .clobbers = .{ .eflags = true },
10649 .each = .{ .once = &.{
10650 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
10651 .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ },
10652 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ },
10653 .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ },
10654 .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ },
10655 .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ },
10656 .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ },
10657 .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ },
10658 .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ },
10659 .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ },
10660 .{ ._, ._nz, .j, .@"3f", ._, ._, ._ },
10661 .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ },
10662 .{ ._, ._mp, .j, .@"4f", ._, ._, ._ },
10663 .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ },
10664 .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ },
10665 .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ },
10666 .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ },
10667 .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ },
10668 .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ },
10669 .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ },
10670 .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ },
10671 .{ ._, ._c, .in, .tmp5p, ._, ._, ._ },
10672 .{ ._, ._nz, .j, .@"2b", ._, ._, ._ },
10673 .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ },
10674 .{ ._, ._c, .de, .tmp4d, ._, ._, ._ },
10675 .{ ._, ._ns, .j, .@"1b", ._, ._, ._ },
10676 .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ },
10677 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10678 } },
10679 }, .{
10680 .required_features = .{ .f16c, null, null, null },
10681 .src_constraints = .{
10682 .{ .scalar_float = .{ .of = .word, .is = .word } },
10683 .{ .scalar_float = .{ .of = .word, .is = .word } },
10684 .any,
10685 },
10686 .patterns = &.{
10687 .{ .src = .{ .to_sse, .to_sse, .none } },
10688 },
10689 .extra_temps = .{
10690 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
10691 .unused,
10565 .unused,10692 .unused,
10566 .unused,10693 .unused,
10567 .unused,10694 .unused,
...@@ -10572,32 +10699,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10572,32 +10699,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10572 .unused,10699 .unused,
10573 .unused,10700 .unused,
10574 },10701 },
10575 .dst_temps = .{ .mem, .unused },10702 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10576 .clobbers = .{ .eflags = true },
10577 .each = .{ .once = &.{10703 .each = .{ .once = &.{
10578 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10704 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
10579 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10705 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
10580 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10706 .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ },
10581 .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },10707 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
10582 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10583 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10584 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10585 } },10708 } },
10586 }, .{10709 }, .{
10587 .required_features = .{ .sse2, null, null, null },10710 .required_features = .{ .sse, null, null, null },
10588 .src_constraints = .{10711 .src_constraints = .{
10589 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },10712 .{ .scalar_float = .{ .of = .word, .is = .word } },
10590 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },10713 .{ .scalar_float = .{ .of = .word, .is = .word } },
10591 .any,10714 .any,
10592 },10715 },
10593 .patterns = &.{10716 .patterns = &.{
10594 .{ .src = .{ .to_mem, .to_mem, .none } },10717 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
10595 },10718 },
10596 .call_frame = .{ .alignment = .@"16" },10719 .call_frame = .{ .alignment = .@"16" },
10597 .extra_temps = .{10720 .extra_temps = .{
10598 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10721 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
10599 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },10722 .unused,
10600 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },10723 .unused,
10601 .unused,10724 .unused,
10602 .unused,10725 .unused,
10603 .unused,10726 .unused,
...@@ -10607,34 +10730,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10607,34 +10730,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10607 .unused,10730 .unused,
10608 .unused,10731 .unused,
10609 },10732 },
10610 .dst_temps = .{ .mem, .unused },10733 .dst_temps = .{ .{ .ref = .src0 }, .unused },
10611 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10734 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10612 .each = .{ .once = &.{10735 .each = .{ .once = &.{
10613 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10736 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
10614 .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
10615 .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
10616 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
10617 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10618 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
10619 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10620 } },10737 } },
10621 }, .{10738 }, .{
10622 .required_features = .{ .sse, null, null, null },10739 .required_features = .{ .f16c, null, null, null },
10623 .src_constraints = .{10740 .src_constraints = .{
10624 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },10741 .{ .scalar_float = .{ .of = .qword, .is = .word } },
10625 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },10742 .{ .scalar_float = .{ .of = .qword, .is = .word } },
10626 .any,10743 .any,
10627 },10744 },
10628 .patterns = &.{10745 .patterns = &.{
10629 .{ .src = .{ .to_mem, .to_mem, .none } },10746 .{ .src = .{ .mem, .mem, .none } },
10747 .{ .src = .{ .to_sse, .mem, .none } },
10748 .{ .src = .{ .mem, .to_sse, .none } },
10749 .{ .src = .{ .to_sse, .to_sse, .none } },
10630 },10750 },
10631 .call_frame = .{ .alignment = .@"16" },
10632 .extra_temps = .{10751 .extra_temps = .{
10633 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10752 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
10634 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },10753 .unused,
10635 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },10754 .unused,
10636 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },10755 .unused,
10637 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },10756 .unused,
10638 .unused,10757 .unused,
10639 .unused,10758 .unused,
10640 .unused,10759 .unused,
...@@ -10642,36 +10761,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10642,36 +10761,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10642 .unused,10761 .unused,
10643 .unused,10762 .unused,
10644 },10763 },
10645 .dst_temps = .{ .mem, .unused },10764 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10646 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10647 .each = .{ .once = &.{10765 .each = .{ .once = &.{
10648 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10766 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
10649 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },10767 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
10650 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },10768 .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ },
10651 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },10769 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
10652 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
10653 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10654 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
10655 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
10656 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
10657 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10658 } },10770 } },
10659 }, .{10771 }, .{
10660 .required_features = .{ .x87, null, null, null },10772 .required_features = .{ .f16c, null, null, null },
10661 .src_constraints = .{10773 .src_constraints = .{
10662 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },10774 .{ .scalar_float = .{ .of = .xword, .is = .word } },
10663 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },10775 .{ .scalar_float = .{ .of = .xword, .is = .word } },
10664 .any,10776 .any,
10665 },10777 },
10666 .patterns = &.{10778 .patterns = &.{
10667 .{ .src = .{ .to_mem, .to_mem, .none } },10779 .{ .src = .{ .mem, .mem, .none } },
10780 .{ .src = .{ .to_sse, .mem, .none } },
10781 .{ .src = .{ .mem, .to_sse, .none } },
10782 .{ .src = .{ .to_sse, .to_sse, .none } },
10668 },10783 },
10669 .call_frame = .{ .size = 16, .alignment = .@"16" },
10670 .extra_temps = .{10784 .extra_temps = .{
10671 .{ .type = .f80, .kind = .{ .reg = .st6 } },10785 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
10672 .{ .type = .f80, .kind = .{ .reg = .st7 } },10786 .unused,
10673 .{ .type = .f80, .kind = .{ .frame = .call_frame } },10787 .unused,
10674 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },10788 .unused,
10675 .unused,10789 .unused,
10676 .unused,10790 .unused,
10677 .unused,10791 .unused,
...@@ -10680,32 +10794,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10680,32 +10794,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10680 .unused,10794 .unused,
10681 .unused,10795 .unused,
10682 },10796 },
10683 .dst_temps = .{ .{ .reg = .st0 }, .unused },10797 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
10684 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10685 .each = .{ .once = &.{10798 .each = .{ .once = &.{
10686 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },10799 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
10687 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },10800 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
10688 .{ ._, .f_p, .div, ._, ._, ._, ._ },10801 .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ },
10689 .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ },10802 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
10690 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10691 } },10803 } },
10692 }, .{10804 }, .{
10693 .required_features = .{ .x87, null, null, null },10805 .required_features = .{ .f16c, null, null, null },
10694 .src_constraints = .{10806 .src_constraints = .{
10695 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },10807 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
10696 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },10808 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
10697 .any,10809 .any,
10698 },10810 },
10699 .patterns = &.{10811 .patterns = &.{
10700 .{ .src = .{ .to_mem, .to_mem, .none } },10812 .{ .src = .{ .to_mem, .to_mem, .none } },
10701 },10813 },
10702 .call_frame = .{ .size = 16, .alignment = .@"16" },
10703 .extra_temps = .{10814 .extra_temps = .{
10704 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10815 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10705 .{ .type = .f80, .kind = .{ .reg = .st6 } },10816 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
10706 .{ .type = .f80, .kind = .{ .reg = .st7 } },10817 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
10707 .{ .type = .f80, .kind = .{ .frame = .call_frame } },10818 .unused,
10708 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },10819 .unused,
10709 .unused,10820 .unused,
10710 .unused,10821 .unused,
10711 .unused,10822 .unused,
...@@ -10714,35 +10825,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10714,35 +10825,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10714 .unused,10825 .unused,
10715 },10826 },
10716 .dst_temps = .{ .mem, .unused },10827 .dst_temps = .{ .mem, .unused },
10717 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10828 .clobbers = .{ .eflags = true },
10718 .each = .{ .once = &.{10829 .each = .{ .once = &.{
10719 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10830 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10720 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },10831 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
10721 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },10832 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
10722 .{ ._, .f_p, .div, ._, ._, ._, ._ },10833 .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ },
10723 .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ },10834 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
10724 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
10725 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
10726 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
10727 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },10835 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10728 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10836 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10729 } },10837 } },
10730 }, .{10838 }, .{
10731 .required_features = .{ .sse, null, null, null },10839 .required_features = .{ .avx, null, null, null },
10732 .src_constraints = .{10840 .src_constraints = .{
10733 .{ .scalar_float = .{ .of = .xword, .is = .xword } },10841 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10734 .{ .scalar_float = .{ .of = .xword, .is = .xword } },10842 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10735 .any,10843 .any,
10736 },10844 },
10737 .patterns = &.{10845 .patterns = &.{
10738 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },10846 .{ .src = .{ .to_mem, .to_mem, .none } },
10739 },10847 },
10740 .call_frame = .{ .alignment = .@"16" },10848 .call_frame = .{ .alignment = .@"16" },
10741 .extra_temps = .{10849 .extra_temps = .{
10742 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },10850 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10743 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },10851 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
10744 .unused,10852 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10745 .unused,10853 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
10746 .unused,10854 .unused,
10747 .unused,10855 .unused,
10748 .unused,10856 .unused,
...@@ -10751,17 +10859,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10751,17 +10859,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10751 .unused,10859 .unused,
10752 .unused,10860 .unused,
10753 },10861 },
10754 .dst_temps = .{ .{ .ref = .src0 }, .unused },10862 .dst_temps = .{ .mem, .unused },
10755 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10863 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10756 .each = .{ .once = &.{10864 .each = .{ .once = &.{
10757 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },10865 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10758 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },10866 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
10867 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
10868 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
10869 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10870 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
10871 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10872 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10759 } },10873 } },
10760 }, .{10874 }, .{
10761 .required_features = .{ .avx, null, null, null },10875 .required_features = .{ .sse4_1, null, null, null },
10762 .src_constraints = .{10876 .src_constraints = .{
10763 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10877 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10764 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10878 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10765 .any,10879 .any,
10766 },10880 },
10767 .patterns = &.{10881 .patterns = &.{
...@@ -10770,10 +10884,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10770,10 +10884,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10770 .call_frame = .{ .alignment = .@"16" },10884 .call_frame = .{ .alignment = .@"16" },
10771 .extra_temps = .{10885 .extra_temps = .{
10772 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10886 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10773 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },10887 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
10774 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },10888 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10775 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },10889 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
10776 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },10890 .unused,
10777 .unused,10891 .unused,
10778 .unused,10892 .unused,
10779 .unused,10893 .unused,
...@@ -10785,19 +10899,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10785,19 +10899,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10785 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10899 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10786 .each = .{ .once = &.{10900 .each = .{ .once = &.{
10787 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10901 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10788 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10902 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
10789 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10903 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
10904 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10905 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10790 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },10906 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10791 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },10907 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
10792 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },10908 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10793 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
10794 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10909 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10795 } },10910 } },
10796 }, .{10911 }, .{
10797 .required_features = .{ .sse2, null, null, null },10912 .required_features = .{ .sse2, null, null, null },
10798 .src_constraints = .{10913 .src_constraints = .{
10799 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10914 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10800 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10915 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10801 .any,10916 .any,
10802 },10917 },
10803 .patterns = &.{10918 .patterns = &.{
...@@ -10806,10 +10921,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10806,10 +10921,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10806 .call_frame = .{ .alignment = .@"16" },10921 .call_frame = .{ .alignment = .@"16" },
10807 .extra_temps = .{10922 .extra_temps = .{
10808 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10923 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10809 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },10924 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
10810 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },10925 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10811 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },10926 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
10812 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },10927 .{ .type = .f16, .kind = .{ .reg = .ax } },
10813 .unused,10928 .unused,
10814 .unused,10929 .unused,
10815 .unused,10930 .unused,
...@@ -10821,19 +10936,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10821,19 +10936,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10821 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10936 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10822 .each = .{ .once = &.{10937 .each = .{ .once = &.{
10823 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10938 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10824 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10939 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
10825 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10940 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
10941 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10942 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
10826 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },10943 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
10827 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },10944 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
10828 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },10945 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
10829 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },10946 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10830 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10947 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10831 } },10948 } },
10832 }, .{10949 }, .{
10833 .required_features = .{ .sse, null, null, null },10950 .required_features = .{ .sse, null, null, null },
10834 .src_constraints = .{10951 .src_constraints = .{
10835 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10952 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10836 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },10953 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
10837 .any,10954 .any,
10838 },10955 },
10839 .patterns = &.{10956 .patterns = &.{
...@@ -10842,11 +10959,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10842,11 +10959,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10842 .call_frame = .{ .alignment = .@"16" },10959 .call_frame = .{ .alignment = .@"16" },
10843 .extra_temps = .{10960 .extra_temps = .{
10844 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },10961 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
10845 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },10962 .{ .type = .f16, .kind = .{ .reg = .ax } },
10846 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },10963 .{ .type = .f32, .kind = .mem },
10847 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },10964 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
10848 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },10965 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
10849 .unused,10966 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } },
10850 .unused,10967 .unused,
10851 .unused,10968 .unused,
10852 .unused,10969 .unused,
...@@ -10857,21 +10974,2595 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -10857,21 +10974,2595 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
10857 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },10974 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
10858 .each = .{ .once = &.{10975 .each = .{ .once = &.{
10859 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },10976 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
10860 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },10977 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
10861 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },10978 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
10862 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },10979 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
10863 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },10980 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
10864 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },10981 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
10865 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },10982 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
10983 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
10984 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
10985 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
10986 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
10987 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
10866 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },10988 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
10867 } },10989 } },
10868 } }) else err: {10990 }, .{
10869 res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;10991 .required_features = .{ .avx, null, null, null },
10870 }) catch |err| switch (err) {10992 .src_constraints = .{
10871 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{10993 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
10872 @tagName(air_tag),10994 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
10873 ty.fmt(pt),10995 .any,
10874 ops[0].tracking(cg),10996 },
10997 .patterns = &.{
10998 .{ .src = .{ .to_sse, .mem, .none } },
10999 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11000 .{ .src = .{ .to_sse, .to_sse, .none } },
11001 },
11002 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11003 .each = .{ .once = &.{
11004 .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ },
11005 } },
11006 }, .{
11007 .required_features = .{ .sse, null, null, null },
11008 .src_constraints = .{
11009 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11010 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11011 .any,
11012 },
11013 .patterns = &.{
11014 .{ .src = .{ .to_mut_sse, .mem, .none } },
11015 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
11016 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11017 },
11018 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11019 .each = .{ .once = &.{
11020 .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ },
11021 } },
11022 }, .{
11023 .required_features = .{ .avx, null, null, null },
11024 .src_constraints = .{
11025 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11026 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11027 .any,
11028 },
11029 .patterns = &.{
11030 .{ .src = .{ .to_sse, .mem, .none } },
11031 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11032 .{ .src = .{ .to_sse, .to_sse, .none } },
11033 },
11034 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11035 .each = .{ .once = &.{
11036 .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ },
11037 } },
11038 }, .{
11039 .required_features = .{ .sse, null, null, null },
11040 .src_constraints = .{
11041 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11042 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11043 .any,
11044 },
11045 .patterns = &.{
11046 .{ .src = .{ .to_mut_sse, .mem, .none } },
11047 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
11048 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11049 },
11050 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11051 .each = .{ .once = &.{
11052 .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ },
11053 } },
11054 }, .{
11055 .required_features = .{ .avx, null, null, null },
11056 .src_constraints = .{
11057 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
11058 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
11059 .any,
11060 },
11061 .patterns = &.{
11062 .{ .src = .{ .to_sse, .mem, .none } },
11063 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11064 .{ .src = .{ .to_sse, .to_sse, .none } },
11065 },
11066 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11067 .each = .{ .once = &.{
11068 .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ },
11069 } },
11070 }, .{
11071 .required_features = .{ .avx, null, null, null },
11072 .src_constraints = .{
11073 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
11074 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
11075 .any,
11076 },
11077 .patterns = &.{
11078 .{ .src = .{ .to_mem, .to_mem, .none } },
11079 },
11080 .extra_temps = .{
11081 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11082 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
11083 .unused,
11084 .unused,
11085 .unused,
11086 .unused,
11087 .unused,
11088 .unused,
11089 .unused,
11090 .unused,
11091 .unused,
11092 },
11093 .dst_temps = .{ .mem, .unused },
11094 .clobbers = .{ .eflags = true },
11095 .each = .{ .once = &.{
11096 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11097 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
11098 .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
11099 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
11100 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
11101 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11102 } },
11103 }, .{
11104 .required_features = .{ .sse, null, null, null },
11105 .src_constraints = .{
11106 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
11107 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
11108 .any,
11109 },
11110 .patterns = &.{
11111 .{ .src = .{ .to_mem, .to_mem, .none } },
11112 },
11113 .extra_temps = .{
11114 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11115 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
11116 .unused,
11117 .unused,
11118 .unused,
11119 .unused,
11120 .unused,
11121 .unused,
11122 .unused,
11123 .unused,
11124 .unused,
11125 },
11126 .dst_temps = .{ .mem, .unused },
11127 .clobbers = .{ .eflags = true },
11128 .each = .{ .once = &.{
11129 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11130 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11131 .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11132 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
11133 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11134 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11135 } },
11136 }, .{
11137 .required_features = .{ .avx, null, null, null },
11138 .src_constraints = .{
11139 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11140 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11141 .any,
11142 },
11143 .patterns = &.{
11144 .{ .src = .{ .to_sse, .mem, .none } },
11145 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11146 .{ .src = .{ .to_sse, .to_sse, .none } },
11147 },
11148 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11149 .each = .{ .once = &.{
11150 .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ },
11151 } },
11152 }, .{
11153 .required_features = .{ .sse2, null, null, null },
11154 .src_constraints = .{
11155 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11156 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11157 .any,
11158 },
11159 .patterns = &.{
11160 .{ .src = .{ .to_mut_sse, .mem, .none } },
11161 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
11162 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11163 },
11164 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11165 .each = .{ .once = &.{
11166 .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ },
11167 } },
11168 }, .{
11169 .required_features = .{ .x87, null, null, null },
11170 .src_constraints = .{
11171 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11172 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
11173 .any,
11174 },
11175 .patterns = &.{
11176 .{ .src = .{ .mem, .mem, .none } },
11177 },
11178 .extra_temps = .{
11179 .{ .type = .f64, .kind = .{ .reg = .st6 } },
11180 .{ .type = .f64, .kind = .{ .reg = .st7 } },
11181 .unused,
11182 .unused,
11183 .unused,
11184 .unused,
11185 .unused,
11186 .unused,
11187 .unused,
11188 .unused,
11189 .unused,
11190 },
11191 .dst_temps = .{ .mem, .unused },
11192 .each = .{ .once = &.{
11193 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
11194 .{ ._, .f_, .mul, .src1q, ._, ._, ._ },
11195 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
11196 } },
11197 }, .{
11198 .required_features = .{ .avx, null, null, null },
11199 .src_constraints = .{
11200 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
11201 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
11202 .any,
11203 },
11204 .patterns = &.{
11205 .{ .src = .{ .to_sse, .mem, .none } },
11206 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11207 .{ .src = .{ .to_sse, .to_sse, .none } },
11208 },
11209 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11210 .each = .{ .once = &.{
11211 .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ },
11212 } },
11213 }, .{
11214 .required_features = .{ .sse2, null, null, null },
11215 .src_constraints = .{
11216 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
11217 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
11218 .any,
11219 },
11220 .patterns = &.{
11221 .{ .src = .{ .to_mut_sse, .mem, .none } },
11222 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
11223 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11224 },
11225 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11226 .each = .{ .once = &.{
11227 .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ },
11228 } },
11229 }, .{
11230 .required_features = .{ .avx, null, null, null },
11231 .src_constraints = .{
11232 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
11233 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
11234 .any,
11235 },
11236 .patterns = &.{
11237 .{ .src = .{ .to_sse, .mem, .none } },
11238 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
11239 .{ .src = .{ .to_sse, .to_sse, .none } },
11240 },
11241 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11242 .each = .{ .once = &.{
11243 .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ },
11244 } },
11245 }, .{
11246 .required_features = .{ .avx, null, null, null },
11247 .src_constraints = .{
11248 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
11249 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
11250 .any,
11251 },
11252 .patterns = &.{
11253 .{ .src = .{ .to_mem, .to_mem, .none } },
11254 },
11255 .extra_temps = .{
11256 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11257 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
11258 .unused,
11259 .unused,
11260 .unused,
11261 .unused,
11262 .unused,
11263 .unused,
11264 .unused,
11265 .unused,
11266 .unused,
11267 },
11268 .dst_temps = .{ .mem, .unused },
11269 .clobbers = .{ .eflags = true },
11270 .each = .{ .once = &.{
11271 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11272 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
11273 .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
11274 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
11275 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
11276 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11277 } },
11278 }, .{
11279 .required_features = .{ .sse2, null, null, null },
11280 .src_constraints = .{
11281 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
11282 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
11283 .any,
11284 },
11285 .patterns = &.{
11286 .{ .src = .{ .to_mem, .to_mem, .none } },
11287 },
11288 .extra_temps = .{
11289 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11290 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
11291 .unused,
11292 .unused,
11293 .unused,
11294 .unused,
11295 .unused,
11296 .unused,
11297 .unused,
11298 .unused,
11299 .unused,
11300 },
11301 .dst_temps = .{ .mem, .unused },
11302 .clobbers = .{ .eflags = true },
11303 .each = .{ .once = &.{
11304 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11305 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11306 .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11307 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
11308 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11309 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11310 } },
11311 }, .{
11312 .required_features = .{ .x87, null, null, null },
11313 .src_constraints = .{
11314 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
11315 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
11316 .any,
11317 },
11318 .patterns = &.{
11319 .{ .src = .{ .to_mem, .to_mem, .none } },
11320 },
11321 .extra_temps = .{
11322 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11323 .{ .type = .f64, .kind = .{ .reg = .st6 } },
11324 .{ .type = .f64, .kind = .{ .reg = .st7 } },
11325 .unused,
11326 .unused,
11327 .unused,
11328 .unused,
11329 .unused,
11330 .unused,
11331 .unused,
11332 .unused,
11333 },
11334 .dst_temps = .{ .mem, .unused },
11335 .each = .{ .once = &.{
11336 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11337 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
11338 .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
11339 .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
11340 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
11341 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11342 } },
11343 }, .{
11344 .required_features = .{ .x87, null, null, null },
11345 .src_constraints = .{
11346 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
11347 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
11348 .any,
11349 },
11350 .patterns = &.{
11351 .{ .src = .{ .mem, .mem, .none } },
11352 },
11353 .extra_temps = .{
11354 .{ .type = .f80, .kind = .{ .reg = .st6 } },
11355 .{ .type = .f80, .kind = .{ .reg = .st7 } },
11356 .unused,
11357 .unused,
11358 .unused,
11359 .unused,
11360 .unused,
11361 .unused,
11362 .unused,
11363 .unused,
11364 .unused,
11365 },
11366 .dst_temps = .{ .{ .rc = .x87 }, .unused },
11367 .each = .{ .once = &.{
11368 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
11369 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
11370 .{ ._, .f_p, .mul, ._, ._, ._, ._ },
11371 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
11372 } },
11373 }, .{
11374 .required_features = .{ .x87, null, null, null },
11375 .src_constraints = .{
11376 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
11377 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
11378 .any,
11379 },
11380 .patterns = &.{
11381 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
11382 .{ .src = .{ .mem, .to_x87, .none } },
11383 .{ .src = .{ .to_x87, .to_x87, .none } },
11384 },
11385 .extra_temps = .{
11386 .{ .type = .f80, .kind = .{ .reg = .st7 } },
11387 .unused,
11388 .unused,
11389 .unused,
11390 .unused,
11391 .unused,
11392 .unused,
11393 .unused,
11394 .unused,
11395 .unused,
11396 .unused,
11397 },
11398 .dst_temps = .{ .{ .rc = .x87 }, .unused },
11399 .each = .{ .once = &.{
11400 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
11401 .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ },
11402 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
11403 } },
11404 }, .{
11405 .required_features = .{ .x87, null, null, null },
11406 .src_constraints = .{
11407 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
11408 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
11409 .any,
11410 },
11411 .patterns = &.{
11412 .{ .src = .{ .to_mem, .to_mem, .none } },
11413 },
11414 .extra_temps = .{
11415 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11416 .{ .type = .f80, .kind = .{ .reg = .st6 } },
11417 .{ .type = .f80, .kind = .{ .reg = .st7 } },
11418 .unused,
11419 .unused,
11420 .unused,
11421 .unused,
11422 .unused,
11423 .unused,
11424 .unused,
11425 .unused,
11426 },
11427 .dst_temps = .{ .mem, .unused },
11428 .each = .{ .once = &.{
11429 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11430 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
11431 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
11432 .{ ._, .f_p, .mul, ._, ._, ._, ._ },
11433 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
11434 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11435 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11436 } },
11437 }, .{
11438 .required_features = .{ .sse, null, null, null },
11439 .src_constraints = .{
11440 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
11441 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
11442 .any,
11443 },
11444 .patterns = &.{
11445 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
11446 },
11447 .call_frame = .{ .alignment = .@"16" },
11448 .extra_temps = .{
11449 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
11450 .unused,
11451 .unused,
11452 .unused,
11453 .unused,
11454 .unused,
11455 .unused,
11456 .unused,
11457 .unused,
11458 .unused,
11459 .unused,
11460 },
11461 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11462 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11463 .each = .{ .once = &.{
11464 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
11465 } },
11466 }, .{
11467 .required_features = .{ .avx, null, null, null },
11468 .src_constraints = .{
11469 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11470 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11471 .any,
11472 },
11473 .patterns = &.{
11474 .{ .src = .{ .to_mem, .to_mem, .none } },
11475 },
11476 .call_frame = .{ .alignment = .@"16" },
11477 .extra_temps = .{
11478 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11479 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
11480 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
11481 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
11482 .unused,
11483 .unused,
11484 .unused,
11485 .unused,
11486 .unused,
11487 .unused,
11488 .unused,
11489 },
11490 .dst_temps = .{ .mem, .unused },
11491 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11492 .each = .{ .once = &.{
11493 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11494 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11495 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11496 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11497 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
11498 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11499 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11500 } },
11501 }, .{
11502 .required_features = .{ .sse2, null, null, null },
11503 .src_constraints = .{
11504 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11505 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11506 .any,
11507 },
11508 .patterns = &.{
11509 .{ .src = .{ .to_mem, .to_mem, .none } },
11510 },
11511 .call_frame = .{ .alignment = .@"16" },
11512 .extra_temps = .{
11513 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11514 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
11515 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
11516 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
11517 .unused,
11518 .unused,
11519 .unused,
11520 .unused,
11521 .unused,
11522 .unused,
11523 .unused,
11524 },
11525 .dst_temps = .{ .mem, .unused },
11526 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11527 .each = .{ .once = &.{
11528 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11529 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11530 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11531 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11532 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
11533 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11534 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11535 } },
11536 }, .{
11537 .required_features = .{ .sse, null, null, null },
11538 .src_constraints = .{
11539 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11540 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
11541 .any,
11542 },
11543 .patterns = &.{
11544 .{ .src = .{ .to_mem, .to_mem, .none } },
11545 },
11546 .call_frame = .{ .alignment = .@"16" },
11547 .extra_temps = .{
11548 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11549 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
11550 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
11551 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } },
11552 .unused,
11553 .unused,
11554 .unused,
11555 .unused,
11556 .unused,
11557 .unused,
11558 .unused,
11559 },
11560 .dst_temps = .{ .mem, .unused },
11561 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11562 .each = .{ .once = &.{
11563 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11564 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11565 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11566 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11567 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
11568 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11569 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11570 } },
11571 } }) catch |err| switch (err) {
11572 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
11573 @tagName(air_tag),
11574 ty.fmt(pt),
11575 ops[0].tracking(cg),
11576 ops[1].tracking(cg),
11577 }),
11578 else => |e| return e,
11579 };
11580 res[0].wrapInt(cg) catch |err| switch (err) {
11581 error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{
11582 cg.typeOf(bin_op.lhs).fmt(pt),
11583 ops[0].tracking(cg),
11584 ops[1].tracking(cg),
11585 }),
11586 else => |e| return e,
11587 };
11588 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
11589 },
11590 .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) {
11591 else => unreachable,
11592 .div_float, .div_float_optimized => .div_float,
11593 .div_exact, .div_exact_optimized => .div_exact,
11594 }) else {
11595 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
11596 const ty = cg.typeOf(bin_op.lhs);
11597 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
11598 var res: [1]Temp = undefined;
11599 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
11600 .required_features = .{ .f16c, null, null, null },
11601 .src_constraints = .{
11602 .{ .scalar_float = .{ .of = .word, .is = .word } },
11603 .{ .scalar_float = .{ .of = .word, .is = .word } },
11604 .any,
11605 },
11606 .patterns = &.{
11607 .{ .src = .{ .to_sse, .to_sse, .none } },
11608 },
11609 .extra_temps = .{
11610 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
11611 .unused,
11612 .unused,
11613 .unused,
11614 .unused,
11615 .unused,
11616 .unused,
11617 .unused,
11618 .unused,
11619 .unused,
11620 .unused,
11621 },
11622 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11623 .each = .{ .once = &.{
11624 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
11625 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
11626 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
11627 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
11628 } },
11629 }, .{
11630 .required_features = .{ .sse, null, null, null },
11631 .src_constraints = .{
11632 .{ .scalar_float = .{ .of = .word, .is = .word } },
11633 .{ .scalar_float = .{ .of = .word, .is = .word } },
11634 .any,
11635 },
11636 .patterns = &.{
11637 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
11638 },
11639 .call_frame = .{ .alignment = .@"16" },
11640 .extra_temps = .{
11641 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
11642 .unused,
11643 .unused,
11644 .unused,
11645 .unused,
11646 .unused,
11647 .unused,
11648 .unused,
11649 .unused,
11650 .unused,
11651 .unused,
11652 },
11653 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11654 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11655 .each = .{ .once = &.{
11656 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
11657 } },
11658 }, .{
11659 .required_features = .{ .f16c, null, null, null },
11660 .src_constraints = .{
11661 .{ .scalar_float = .{ .of = .qword, .is = .word } },
11662 .{ .scalar_float = .{ .of = .qword, .is = .word } },
11663 .any,
11664 },
11665 .patterns = &.{
11666 .{ .src = .{ .mem, .mem, .none } },
11667 .{ .src = .{ .to_sse, .mem, .none } },
11668 .{ .src = .{ .mem, .to_sse, .none } },
11669 .{ .src = .{ .to_sse, .to_sse, .none } },
11670 },
11671 .extra_temps = .{
11672 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
11673 .unused,
11674 .unused,
11675 .unused,
11676 .unused,
11677 .unused,
11678 .unused,
11679 .unused,
11680 .unused,
11681 .unused,
11682 .unused,
11683 },
11684 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11685 .each = .{ .once = &.{
11686 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
11687 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
11688 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
11689 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
11690 } },
11691 }, .{
11692 .required_features = .{ .f16c, null, null, null },
11693 .src_constraints = .{
11694 .{ .scalar_float = .{ .of = .xword, .is = .word } },
11695 .{ .scalar_float = .{ .of = .xword, .is = .word } },
11696 .any,
11697 },
11698 .patterns = &.{
11699 .{ .src = .{ .mem, .mem, .none } },
11700 .{ .src = .{ .to_sse, .mem, .none } },
11701 .{ .src = .{ .mem, .to_sse, .none } },
11702 .{ .src = .{ .to_sse, .to_sse, .none } },
11703 },
11704 .extra_temps = .{
11705 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
11706 .unused,
11707 .unused,
11708 .unused,
11709 .unused,
11710 .unused,
11711 .unused,
11712 .unused,
11713 .unused,
11714 .unused,
11715 .unused,
11716 },
11717 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11718 .each = .{ .once = &.{
11719 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
11720 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
11721 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
11722 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
11723 } },
11724 }, .{
11725 .required_features = .{ .f16c, null, null, null },
11726 .src_constraints = .{
11727 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
11728 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
11729 .any,
11730 },
11731 .patterns = &.{
11732 .{ .src = .{ .to_mem, .to_mem, .none } },
11733 },
11734 .extra_temps = .{
11735 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11736 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
11737 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
11738 .unused,
11739 .unused,
11740 .unused,
11741 .unused,
11742 .unused,
11743 .unused,
11744 .unused,
11745 .unused,
11746 },
11747 .dst_temps = .{ .mem, .unused },
11748 .clobbers = .{ .eflags = true },
11749 .each = .{ .once = &.{
11750 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11751 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
11752 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
11753 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
11754 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
11755 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
11756 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11757 } },
11758 }, .{
11759 .required_features = .{ .avx, null, null, null },
11760 .src_constraints = .{
11761 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11762 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11763 .any,
11764 },
11765 .patterns = &.{
11766 .{ .src = .{ .to_mem, .to_mem, .none } },
11767 },
11768 .call_frame = .{ .alignment = .@"16" },
11769 .extra_temps = .{
11770 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11771 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
11772 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
11773 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
11774 .unused,
11775 .unused,
11776 .unused,
11777 .unused,
11778 .unused,
11779 .unused,
11780 .unused,
11781 },
11782 .dst_temps = .{ .mem, .unused },
11783 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11784 .each = .{ .once = &.{
11785 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11786 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
11787 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
11788 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
11789 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11790 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
11791 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
11792 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11793 } },
11794 }, .{
11795 .required_features = .{ .sse4_1, null, null, null },
11796 .src_constraints = .{
11797 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11798 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11799 .any,
11800 },
11801 .patterns = &.{
11802 .{ .src = .{ .to_mem, .to_mem, .none } },
11803 },
11804 .call_frame = .{ .alignment = .@"16" },
11805 .extra_temps = .{
11806 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11807 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
11808 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
11809 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
11810 .unused,
11811 .unused,
11812 .unused,
11813 .unused,
11814 .unused,
11815 .unused,
11816 .unused,
11817 },
11818 .dst_temps = .{ .mem, .unused },
11819 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11820 .each = .{ .once = &.{
11821 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11822 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
11823 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
11824 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
11825 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
11826 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11827 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
11828 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
11829 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11830 } },
11831 }, .{
11832 .required_features = .{ .sse2, null, null, null },
11833 .src_constraints = .{
11834 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11835 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11836 .any,
11837 },
11838 .patterns = &.{
11839 .{ .src = .{ .to_mem, .to_mem, .none } },
11840 },
11841 .call_frame = .{ .alignment = .@"16" },
11842 .extra_temps = .{
11843 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11844 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
11845 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
11846 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
11847 .{ .type = .f16, .kind = .{ .reg = .ax } },
11848 .unused,
11849 .unused,
11850 .unused,
11851 .unused,
11852 .unused,
11853 .unused,
11854 },
11855 .dst_temps = .{ .mem, .unused },
11856 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11857 .each = .{ .once = &.{
11858 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11859 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
11860 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
11861 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
11862 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
11863 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
11864 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
11865 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ },
11866 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
11867 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11868 } },
11869 }, .{
11870 .required_features = .{ .sse, null, null, null },
11871 .src_constraints = .{
11872 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11873 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
11874 .any,
11875 },
11876 .patterns = &.{
11877 .{ .src = .{ .to_mem, .to_mem, .none } },
11878 },
11879 .call_frame = .{ .alignment = .@"16" },
11880 .extra_temps = .{
11881 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11882 .{ .type = .f16, .kind = .{ .reg = .ax } },
11883 .{ .type = .f32, .kind = .mem },
11884 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
11885 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
11886 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
11887 .unused,
11888 .unused,
11889 .unused,
11890 .unused,
11891 .unused,
11892 },
11893 .dst_temps = .{ .mem, .unused },
11894 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
11895 .each = .{ .once = &.{
11896 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
11897 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
11898 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
11899 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
11900 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
11901 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
11902 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
11903 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
11904 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
11905 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
11906 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
11907 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
11908 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
11909 } },
11910 }, .{
11911 .required_features = .{ .avx, null, null, null },
11912 .src_constraints = .{
11913 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11914 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11915 .any,
11916 },
11917 .patterns = &.{
11918 .{ .src = .{ .to_sse, .mem, .none } },
11919 .{ .src = .{ .to_sse, .to_sse, .none } },
11920 },
11921 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11922 .each = .{ .once = &.{
11923 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
11924 } },
11925 }, .{
11926 .required_features = .{ .sse, null, null, null },
11927 .src_constraints = .{
11928 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11929 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
11930 .any,
11931 },
11932 .patterns = &.{
11933 .{ .src = .{ .to_mut_sse, .mem, .none } },
11934 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11935 },
11936 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11937 .each = .{ .once = &.{
11938 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
11939 } },
11940 }, .{
11941 .required_features = .{ .avx, null, null, null },
11942 .src_constraints = .{
11943 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11944 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11945 .any,
11946 },
11947 .patterns = &.{
11948 .{ .src = .{ .to_sse, .mem, .none } },
11949 .{ .src = .{ .to_sse, .to_sse, .none } },
11950 },
11951 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11952 .each = .{ .once = &.{
11953 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
11954 } },
11955 }, .{
11956 .required_features = .{ .sse, null, null, null },
11957 .src_constraints = .{
11958 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11959 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
11960 .any,
11961 },
11962 .patterns = &.{
11963 .{ .src = .{ .to_mut_sse, .mem, .none } },
11964 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
11965 },
11966 .dst_temps = .{ .{ .ref = .src0 }, .unused },
11967 .each = .{ .once = &.{
11968 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
11969 } },
11970 }, .{
11971 .required_features = .{ .avx, null, null, null },
11972 .src_constraints = .{
11973 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
11974 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
11975 .any,
11976 },
11977 .patterns = &.{
11978 .{ .src = .{ .to_sse, .mem, .none } },
11979 .{ .src = .{ .to_sse, .to_sse, .none } },
11980 },
11981 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
11982 .each = .{ .once = &.{
11983 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
11984 } },
11985 }, .{
11986 .required_features = .{ .avx, null, null, null },
11987 .src_constraints = .{
11988 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
11989 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
11990 .any,
11991 },
11992 .patterns = &.{
11993 .{ .src = .{ .to_mem, .to_mem, .none } },
11994 },
11995 .extra_temps = .{
11996 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
11997 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
11998 .unused,
11999 .unused,
12000 .unused,
12001 .unused,
12002 .unused,
12003 .unused,
12004 .unused,
12005 .unused,
12006 .unused,
12007 },
12008 .dst_temps = .{ .mem, .unused },
12009 .clobbers = .{ .eflags = true },
12010 .each = .{ .once = &.{
12011 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12012 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
12013 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
12014 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
12015 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
12016 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12017 } },
12018 }, .{
12019 .required_features = .{ .sse, null, null, null },
12020 .src_constraints = .{
12021 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
12022 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
12023 .any,
12024 },
12025 .patterns = &.{
12026 .{ .src = .{ .to_mem, .to_mem, .none } },
12027 },
12028 .extra_temps = .{
12029 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12030 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
12031 .unused,
12032 .unused,
12033 .unused,
12034 .unused,
12035 .unused,
12036 .unused,
12037 .unused,
12038 .unused,
12039 .unused,
12040 },
12041 .dst_temps = .{ .mem, .unused },
12042 .clobbers = .{ .eflags = true },
12043 .each = .{ .once = &.{
12044 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12045 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12046 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12047 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12048 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12049 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12050 } },
12051 }, .{
12052 .required_features = .{ .avx, null, null, null },
12053 .src_constraints = .{
12054 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12055 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12056 .any,
12057 },
12058 .patterns = &.{
12059 .{ .src = .{ .to_sse, .mem, .none } },
12060 .{ .src = .{ .to_sse, .to_sse, .none } },
12061 },
12062 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12063 .each = .{ .once = &.{
12064 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
12065 } },
12066 }, .{
12067 .required_features = .{ .sse2, null, null, null },
12068 .src_constraints = .{
12069 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12070 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12071 .any,
12072 },
12073 .patterns = &.{
12074 .{ .src = .{ .to_mut_sse, .mem, .none } },
12075 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
12076 },
12077 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12078 .each = .{ .once = &.{
12079 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
12080 } },
12081 }, .{
12082 .required_features = .{ .x87, null, null, null },
12083 .src_constraints = .{
12084 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12085 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
12086 .any,
12087 },
12088 .patterns = &.{
12089 .{ .src = .{ .mem, .mem, .none } },
12090 },
12091 .extra_temps = .{
12092 .{ .type = .f64, .kind = .{ .reg = .st6 } },
12093 .{ .type = .f64, .kind = .{ .reg = .st7 } },
12094 .unused,
12095 .unused,
12096 .unused,
12097 .unused,
12098 .unused,
12099 .unused,
12100 .unused,
12101 .unused,
12102 .unused,
12103 },
12104 .dst_temps = .{ .mem, .unused },
12105 .each = .{ .once = &.{
12106 .{ ._, .f_, .ld, .src0q, ._, ._, ._ },
12107 .{ ._, .f_, .div, .src1q, ._, ._, ._ },
12108 .{ ._, .f_p, .st, .dst0q, ._, ._, ._ },
12109 } },
12110 }, .{
12111 .required_features = .{ .avx, null, null, null },
12112 .src_constraints = .{
12113 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
12114 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
12115 .any,
12116 },
12117 .patterns = &.{
12118 .{ .src = .{ .to_sse, .mem, .none } },
12119 .{ .src = .{ .to_sse, .to_sse, .none } },
12120 },
12121 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12122 .each = .{ .once = &.{
12123 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
12124 } },
12125 }, .{
12126 .required_features = .{ .sse2, null, null, null },
12127 .src_constraints = .{
12128 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
12129 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
12130 .any,
12131 },
12132 .patterns = &.{
12133 .{ .src = .{ .to_mut_sse, .mem, .none } },
12134 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
12135 },
12136 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12137 .each = .{ .once = &.{
12138 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
12139 } },
12140 }, .{
12141 .required_features = .{ .avx, null, null, null },
12142 .src_constraints = .{
12143 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
12144 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
12145 .any,
12146 },
12147 .patterns = &.{
12148 .{ .src = .{ .to_sse, .mem, .none } },
12149 .{ .src = .{ .to_sse, .to_sse, .none } },
12150 },
12151 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12152 .each = .{ .once = &.{
12153 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
12154 } },
12155 }, .{
12156 .required_features = .{ .avx, null, null, null },
12157 .src_constraints = .{
12158 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
12159 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
12160 .any,
12161 },
12162 .patterns = &.{
12163 .{ .src = .{ .to_mem, .to_mem, .none } },
12164 },
12165 .extra_temps = .{
12166 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12167 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
12168 .unused,
12169 .unused,
12170 .unused,
12171 .unused,
12172 .unused,
12173 .unused,
12174 .unused,
12175 .unused,
12176 .unused,
12177 },
12178 .dst_temps = .{ .mem, .unused },
12179 .clobbers = .{ .eflags = true },
12180 .each = .{ .once = &.{
12181 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12182 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
12183 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
12184 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
12185 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
12186 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12187 } },
12188 }, .{
12189 .required_features = .{ .sse2, null, null, null },
12190 .src_constraints = .{
12191 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
12192 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
12193 .any,
12194 },
12195 .patterns = &.{
12196 .{ .src = .{ .to_mem, .to_mem, .none } },
12197 },
12198 .extra_temps = .{
12199 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12200 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
12201 .unused,
12202 .unused,
12203 .unused,
12204 .unused,
12205 .unused,
12206 .unused,
12207 .unused,
12208 .unused,
12209 .unused,
12210 },
12211 .dst_temps = .{ .mem, .unused },
12212 .clobbers = .{ .eflags = true },
12213 .each = .{ .once = &.{
12214 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12215 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12216 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12217 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12218 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12219 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12220 } },
12221 }, .{
12222 .required_features = .{ .x87, null, null, null },
12223 .src_constraints = .{
12224 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
12225 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
12226 .any,
12227 },
12228 .patterns = &.{
12229 .{ .src = .{ .to_mem, .to_mem, .none } },
12230 },
12231 .extra_temps = .{
12232 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12233 .{ .type = .f64, .kind = .{ .reg = .st6 } },
12234 .{ .type = .f64, .kind = .{ .reg = .st7 } },
12235 .unused,
12236 .unused,
12237 .unused,
12238 .unused,
12239 .unused,
12240 .unused,
12241 .unused,
12242 .unused,
12243 },
12244 .dst_temps = .{ .mem, .unused },
12245 .each = .{ .once = &.{
12246 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12247 .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
12248 .{ ._, .f_, .div, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ },
12249 .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ },
12250 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
12251 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12252 } },
12253 }, .{
12254 .required_features = .{ .x87, null, null, null },
12255 .src_constraints = .{
12256 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12257 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12258 .any,
12259 },
12260 .patterns = &.{
12261 .{ .src = .{ .mem, .mem, .none } },
12262 },
12263 .extra_temps = .{
12264 .{ .type = .f80, .kind = .{ .reg = .st6 } },
12265 .{ .type = .f80, .kind = .{ .reg = .st7 } },
12266 .unused,
12267 .unused,
12268 .unused,
12269 .unused,
12270 .unused,
12271 .unused,
12272 .unused,
12273 .unused,
12274 .unused,
12275 },
12276 .dst_temps = .{ .{ .rc = .x87 }, .unused },
12277 .each = .{ .once = &.{
12278 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
12279 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
12280 .{ ._, .f_p, .div, ._, ._, ._, ._ },
12281 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
12282 } },
12283 }, .{
12284 .required_features = .{ .x87, null, null, null },
12285 .src_constraints = .{
12286 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12287 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12288 .any,
12289 },
12290 .patterns = &.{
12291 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
12292 },
12293 .extra_temps = .{
12294 .{ .type = .f80, .kind = .{ .reg = .st7 } },
12295 .unused,
12296 .unused,
12297 .unused,
12298 .unused,
12299 .unused,
12300 .unused,
12301 .unused,
12302 .unused,
12303 .unused,
12304 .unused,
12305 },
12306 .dst_temps = .{ .{ .rc = .x87 }, .unused },
12307 .each = .{ .once = &.{
12308 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
12309 .{ ._, .f_, .divr, .tmp0t, .src1t, ._, ._ },
12310 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
12311 } },
12312 }, .{
12313 .required_features = .{ .x87, null, null, null },
12314 .src_constraints = .{
12315 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12316 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
12317 .any,
12318 },
12319 .patterns = &.{
12320 .{ .src = .{ .mem, .to_x87, .none } },
12321 .{ .src = .{ .to_x87, .to_x87, .none } },
12322 },
12323 .extra_temps = .{
12324 .{ .type = .f80, .kind = .{ .reg = .st7 } },
12325 .unused,
12326 .unused,
12327 .unused,
12328 .unused,
12329 .unused,
12330 .unused,
12331 .unused,
12332 .unused,
12333 .unused,
12334 .unused,
12335 },
12336 .dst_temps = .{ .{ .rc = .x87 }, .unused },
12337 .each = .{ .once = &.{
12338 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
12339 .{ ._, .f_, .div, .tmp0t, .src1t, ._, ._ },
12340 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
12341 } },
12342 }, .{
12343 .required_features = .{ .x87, null, null, null },
12344 .src_constraints = .{
12345 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
12346 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
12347 .any,
12348 },
12349 .patterns = &.{
12350 .{ .src = .{ .to_mem, .to_mem, .none } },
12351 },
12352 .extra_temps = .{
12353 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12354 .{ .type = .f80, .kind = .{ .reg = .st6 } },
12355 .{ .type = .f80, .kind = .{ .reg = .st7 } },
12356 .unused,
12357 .unused,
12358 .unused,
12359 .unused,
12360 .unused,
12361 .unused,
12362 .unused,
12363 .unused,
12364 },
12365 .dst_temps = .{ .mem, .unused },
12366 .each = .{ .once = &.{
12367 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12368 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
12369 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
12370 .{ ._, .f_p, .div, ._, ._, ._, ._ },
12371 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
12372 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12373 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12374 } },
12375 }, .{
12376 .required_features = .{ .sse, null, null, null },
12377 .src_constraints = .{
12378 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
12379 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
12380 .any,
12381 },
12382 .patterns = &.{
12383 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
12384 },
12385 .call_frame = .{ .alignment = .@"16" },
12386 .extra_temps = .{
12387 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
12388 .unused,
12389 .unused,
12390 .unused,
12391 .unused,
12392 .unused,
12393 .unused,
12394 .unused,
12395 .unused,
12396 .unused,
12397 .unused,
12398 },
12399 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12400 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12401 .each = .{ .once = &.{
12402 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
12403 } },
12404 }, .{
12405 .required_features = .{ .avx, null, null, null },
12406 .src_constraints = .{
12407 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12408 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12409 .any,
12410 },
12411 .patterns = &.{
12412 .{ .src = .{ .to_mem, .to_mem, .none } },
12413 },
12414 .call_frame = .{ .alignment = .@"16" },
12415 .extra_temps = .{
12416 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12417 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
12418 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
12419 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
12420 .unused,
12421 .unused,
12422 .unused,
12423 .unused,
12424 .unused,
12425 .unused,
12426 .unused,
12427 },
12428 .dst_temps = .{ .mem, .unused },
12429 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12430 .each = .{ .once = &.{
12431 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12432 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12433 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12434 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12435 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12436 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12437 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12438 } },
12439 }, .{
12440 .required_features = .{ .sse2, null, null, null },
12441 .src_constraints = .{
12442 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12443 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12444 .any,
12445 },
12446 .patterns = &.{
12447 .{ .src = .{ .to_mem, .to_mem, .none } },
12448 },
12449 .call_frame = .{ .alignment = .@"16" },
12450 .extra_temps = .{
12451 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12452 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
12453 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
12454 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
12455 .unused,
12456 .unused,
12457 .unused,
12458 .unused,
12459 .unused,
12460 .unused,
12461 .unused,
12462 },
12463 .dst_temps = .{ .mem, .unused },
12464 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12465 .each = .{ .once = &.{
12466 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12467 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12468 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12469 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12470 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12471 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12472 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12473 } },
12474 }, .{
12475 .required_features = .{ .sse, null, null, null },
12476 .src_constraints = .{
12477 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12478 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
12479 .any,
12480 },
12481 .patterns = &.{
12482 .{ .src = .{ .to_mem, .to_mem, .none } },
12483 },
12484 .call_frame = .{ .alignment = .@"16" },
12485 .extra_temps = .{
12486 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12487 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
12488 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
12489 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
12490 .unused,
12491 .unused,
12492 .unused,
12493 .unused,
12494 .unused,
12495 .unused,
12496 .unused,
12497 },
12498 .dst_temps = .{ .mem, .unused },
12499 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12500 .each = .{ .once = &.{
12501 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12502 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12503 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12504 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12505 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12506 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12507 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12508 } },
12509 } }) else err: {
12510 assert(air_tag == .div_exact);
12511 res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
12512 }) catch |err| switch (err) {
12513 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
12514 @tagName(air_tag),
12515 ty.fmt(pt),
12516 ops[0].tracking(cg),
12517 ops[1].tracking(cg),
12518 }),
12519 else => |e| return e,
12520 };
12521 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
12522 },
12523 .div_trunc => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else {
12524 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
12525 const ty = cg.typeOf(bin_op.lhs);
12526 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
12527 var res: [1]Temp = undefined;
12528 (if (cg.floatBits(ty.scalarType(zcu))) |_| cg.select(&res, &.{ty}, &ops, comptime &.{ .{
12529 .required_features = .{ .f16c, null, null, null },
12530 .src_constraints = .{
12531 .{ .scalar_float = .{ .of = .word, .is = .word } },
12532 .{ .scalar_float = .{ .of = .word, .is = .word } },
12533 .any,
12534 },
12535 .patterns = &.{
12536 .{ .src = .{ .to_sse, .to_sse, .none } },
12537 },
12538 .extra_temps = .{
12539 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
12540 .unused,
12541 .unused,
12542 .unused,
12543 .unused,
12544 .unused,
12545 .unused,
12546 .unused,
12547 .unused,
12548 .unused,
12549 .unused,
12550 },
12551 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12552 .each = .{ .once = &.{
12553 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
12554 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
12555 .{ ._, .v_ss, .div, .dst0x, .dst0x, .tmp0d, ._ },
12556 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
12557 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
12558 .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
12559 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
12560 } },
12561 }, .{
12562 .required_features = .{ .sse, null, null, null },
12563 .src_constraints = .{
12564 .{ .scalar_float = .{ .of = .word, .is = .word } },
12565 .{ .scalar_float = .{ .of = .word, .is = .word } },
12566 .any,
12567 },
12568 .patterns = &.{
12569 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
12570 },
12571 .call_frame = .{ .alignment = .@"16" },
12572 .extra_temps = .{
12573 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
12574 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
12575 .unused,
12576 .unused,
12577 .unused,
12578 .unused,
12579 .unused,
12580 .unused,
12581 .unused,
12582 .unused,
12583 .unused,
12584 },
12585 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12586 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12587 .each = .{ .once = &.{
12588 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
12589 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
12590 } },
12591 }, .{
12592 .required_features = .{ .f16c, null, null, null },
12593 .src_constraints = .{
12594 .{ .scalar_float = .{ .of = .qword, .is = .word } },
12595 .{ .scalar_float = .{ .of = .qword, .is = .word } },
12596 .any,
12597 },
12598 .patterns = &.{
12599 .{ .src = .{ .mem, .mem, .none } },
12600 .{ .src = .{ .to_sse, .mem, .none } },
12601 .{ .src = .{ .mem, .to_sse, .none } },
12602 .{ .src = .{ .to_sse, .to_sse, .none } },
12603 },
12604 .extra_temps = .{
12605 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
12606 .unused,
12607 .unused,
12608 .unused,
12609 .unused,
12610 .unused,
12611 .unused,
12612 .unused,
12613 .unused,
12614 .unused,
12615 .unused,
12616 },
12617 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12618 .each = .{ .once = &.{
12619 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
12620 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
12621 .{ ._, .v_ps, .div, .dst0x, .dst0x, .tmp0x, ._ },
12622 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
12623 .{ ._, .v_ps, .cvtph2, .dst0x, .dst0q, ._, ._ },
12624 .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12625 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
12626 } },
12627 }, .{
12628 .required_features = .{ .f16c, null, null, null },
12629 .src_constraints = .{
12630 .{ .scalar_float = .{ .of = .xword, .is = .word } },
12631 .{ .scalar_float = .{ .of = .xword, .is = .word } },
12632 .any,
12633 },
12634 .patterns = &.{
12635 .{ .src = .{ .mem, .mem, .none } },
12636 .{ .src = .{ .to_sse, .mem, .none } },
12637 .{ .src = .{ .mem, .to_sse, .none } },
12638 .{ .src = .{ .to_sse, .to_sse, .none } },
12639 },
12640 .extra_temps = .{
12641 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
12642 .unused,
12643 .unused,
12644 .unused,
12645 .unused,
12646 .unused,
12647 .unused,
12648 .unused,
12649 .unused,
12650 .unused,
12651 .unused,
12652 },
12653 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12654 .each = .{ .once = &.{
12655 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
12656 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
12657 .{ ._, .v_ps, .div, .dst0y, .dst0y, .tmp0y, ._ },
12658 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
12659 .{ ._, .v_ps, .cvtph2, .dst0y, .dst0x, ._, ._ },
12660 .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12661 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
12662 } },
12663 }, .{
12664 .required_features = .{ .f16c, null, null, null },
12665 .src_constraints = .{
12666 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
12667 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
12668 .any,
12669 },
12670 .patterns = &.{
12671 .{ .src = .{ .to_mem, .to_mem, .none } },
12672 },
12673 .extra_temps = .{
12674 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12675 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
12676 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
12677 .unused,
12678 .unused,
12679 .unused,
12680 .unused,
12681 .unused,
12682 .unused,
12683 .unused,
12684 .unused,
12685 },
12686 .dst_temps = .{ .mem, .unused },
12687 .clobbers = .{ .eflags = true },
12688 .each = .{ .once = &.{
12689 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12690 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
12691 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
12692 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .tmp2y, ._ },
12693 .{ ._, .v_, .cvtps2ph, .tmp1x, .tmp1y, .rm(.{}), ._ },
12694 .{ ._, .v_ps, .cvtph2, .tmp1y, .tmp1x, ._, ._ },
12695 .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12696 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ },
12697 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
12698 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12699 } },
12700 }, .{
12701 .required_features = .{ .avx, null, null, null },
12702 .src_constraints = .{
12703 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12704 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12705 .any,
12706 },
12707 .patterns = &.{
12708 .{ .src = .{ .to_mem, .to_mem, .none } },
12709 },
12710 .call_frame = .{ .alignment = .@"16" },
12711 .extra_temps = .{
12712 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12713 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
12714 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
12715 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
12716 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
12717 .unused,
12718 .unused,
12719 .unused,
12720 .unused,
12721 .unused,
12722 .unused,
12723 },
12724 .dst_temps = .{ .mem, .unused },
12725 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12726 .each = .{ .once = &.{
12727 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12728 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
12729 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) },
12730 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) },
12731 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12732 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
12733 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
12734 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
12735 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12736 } },
12737 }, .{
12738 .required_features = .{ .sse4_1, null, null, null },
12739 .src_constraints = .{
12740 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12741 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12742 .any,
12743 },
12744 .patterns = &.{
12745 .{ .src = .{ .to_mem, .to_mem, .none } },
12746 },
12747 .call_frame = .{ .alignment = .@"16" },
12748 .extra_temps = .{
12749 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12750 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
12751 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
12752 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
12753 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
12754 .unused,
12755 .unused,
12756 .unused,
12757 .unused,
12758 .unused,
12759 .unused,
12760 },
12761 .dst_temps = .{ .mem, .unused },
12762 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12763 .each = .{ .once = &.{
12764 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12765 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
12766 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
12767 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
12768 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
12769 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12770 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
12771 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ },
12772 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
12773 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12774 } },
12775 }, .{
12776 .required_features = .{ .sse2, null, null, null },
12777 .src_constraints = .{
12778 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12779 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12780 .any,
12781 },
12782 .patterns = &.{
12783 .{ .src = .{ .to_mem, .to_mem, .none } },
12784 },
12785 .call_frame = .{ .alignment = .@"16" },
12786 .extra_temps = .{
12787 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12788 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
12789 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
12790 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
12791 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
12792 .{ .type = .f16, .kind = .{ .reg = .ax } },
12793 .unused,
12794 .unused,
12795 .unused,
12796 .unused,
12797 .unused,
12798 },
12799 .dst_temps = .{ .mem, .unused },
12800 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12801 .each = .{ .once = &.{
12802 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12803 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
12804 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
12805 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ },
12806 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ },
12807 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
12808 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
12809 .{ ._, .p_w, .extr, .tmp5d, .tmp1x, .ui(0), ._ },
12810 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp5w, ._, ._ },
12811 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
12812 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12813 } },
12814 }, .{
12815 .required_features = .{ .sse, null, null, null },
12816 .src_constraints = .{
12817 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12818 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
12819 .any,
12820 },
12821 .patterns = &.{
12822 .{ .src = .{ .to_mem, .to_mem, .none } },
12823 },
12824 .call_frame = .{ .alignment = .@"16" },
12825 .extra_temps = .{
12826 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12827 .{ .type = .f16, .kind = .{ .reg = .ax } },
12828 .{ .type = .f32, .kind = .mem },
12829 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
12830 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
12831 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divhf3" } } },
12832 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__trunch" } } },
12833 .unused,
12834 .unused,
12835 .unused,
12836 .unused,
12837 },
12838 .dst_temps = .{ .mem, .unused },
12839 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12840 .each = .{ .once = &.{
12841 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12842 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ },
12843 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
12844 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
12845 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ },
12846 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
12847 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
12848 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
12849 .{ ._, ._, .call, .tmp6d, ._, ._, ._ },
12850 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
12851 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
12852 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ },
12853 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
12854 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12855 } },
12856 }, .{
12857 .required_features = .{ .avx, null, null, null },
12858 .src_constraints = .{
12859 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12860 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12861 .any,
12862 },
12863 .patterns = &.{
12864 .{ .src = .{ .to_sse, .mem, .none } },
12865 .{ .src = .{ .to_sse, .to_sse, .none } },
12866 },
12867 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12868 .each = .{ .once = &.{
12869 .{ ._, .v_ss, .div, .dst0x, .src0x, .src1d, ._ },
12870 .{ ._, .v_ss, .round, .dst0x, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }) },
12871 } },
12872 }, .{
12873 .required_features = .{ .sse4_1, null, null, null },
12874 .src_constraints = .{
12875 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12876 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12877 .any,
12878 },
12879 .patterns = &.{
12880 .{ .src = .{ .to_mut_sse, .mem, .none } },
12881 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
12882 },
12883 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12884 .each = .{ .once = &.{
12885 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
12886 .{ ._, ._ss, .round, .dst0x, .dst0d, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12887 } },
12888 }, .{
12889 .required_features = .{ .sse, null, null, null },
12890 .src_constraints = .{
12891 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12892 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
12893 .any,
12894 },
12895 .patterns = &.{
12896 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
12897 },
12898 .call_frame = .{ .alignment = .@"16" },
12899 .extra_temps = .{
12900 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
12901 .unused,
12902 .unused,
12903 .unused,
12904 .unused,
12905 .unused,
12906 .unused,
12907 .unused,
12908 .unused,
12909 .unused,
12910 .unused,
12911 },
12912 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12913 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12914 .each = .{ .once = &.{
12915 .{ ._, ._ss, .div, .dst0x, .src1d, ._, ._ },
12916 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
12917 } },
12918 }, .{
12919 .required_features = .{ .avx, null, null, null },
12920 .src_constraints = .{
12921 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
12922 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
12923 .any,
12924 },
12925 .patterns = &.{
12926 .{ .src = .{ .to_sse, .mem, .none } },
12927 .{ .src = .{ .to_sse, .to_sse, .none } },
12928 },
12929 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12930 .each = .{ .once = &.{
12931 .{ ._, .v_ps, .div, .dst0x, .src0x, .src1x, ._ },
12932 .{ ._, .v_ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12933 } },
12934 }, .{
12935 .required_features = .{ .sse4_1, null, null, null },
12936 .src_constraints = .{
12937 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
12938 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
12939 .any,
12940 },
12941 .patterns = &.{
12942 .{ .src = .{ .to_mut_sse, .mem, .none } },
12943 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
12944 },
12945 .dst_temps = .{ .{ .ref = .src0 }, .unused },
12946 .each = .{ .once = &.{
12947 .{ ._, ._ps, .div, .dst0x, .src1x, ._, ._ },
12948 .{ ._, ._ps, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
12949 } },
12950 }, .{
12951 .required_features = .{ .sse, null, null, null },
12952 .src_constraints = .{
12953 .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
12954 .{ .multiple_scalar_float = .{ .of = .dword, .is = .dword } },
12955 .any,
12956 },
12957 .patterns = &.{
12958 .{ .src = .{ .to_mem, .to_mem, .none } },
12959 },
12960 .call_frame = .{ .alignment = .@"16" },
12961 .extra_temps = .{
12962 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
12963 .{ .type = .f32, .kind = .{ .reg = .xmm0 } },
12964 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncf" } } },
12965 .unused,
12966 .unused,
12967 .unused,
12968 .unused,
12969 .unused,
12970 .unused,
12971 .unused,
12972 .unused,
12973 },
12974 .dst_temps = .{ .mem, .unused },
12975 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
12976 .each = .{ .once = &.{
12977 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
12978 .{ .@"0:", ._ss, .mov, .tmp1x, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ },
12979 .{ ._, ._ss, .div, .tmp1x, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ },
12980 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
12981 .{ ._, ._ss, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
12982 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
12983 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
12984 } },
12985 }, .{
12986 .required_features = .{ .avx, null, null, null },
12987 .src_constraints = .{
12988 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
12989 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
12990 .any,
12991 },
12992 .patterns = &.{
12993 .{ .src = .{ .to_sse, .mem, .none } },
12994 .{ .src = .{ .to_sse, .to_sse, .none } },
12995 },
12996 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
12997 .each = .{ .once = &.{
12998 .{ ._, .v_ps, .div, .dst0y, .src0y, .src1y, ._ },
12999 .{ ._, .v_ps, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13000 } },
13001 }, .{
13002 .required_features = .{ .avx, null, null, null },
13003 .src_constraints = .{
13004 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
13005 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
13006 .any,
13007 },
13008 .patterns = &.{
13009 .{ .src = .{ .to_mem, .to_mem, .none } },
13010 },
13011 .extra_temps = .{
13012 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13013 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
13014 .unused,
13015 .unused,
13016 .unused,
13017 .unused,
13018 .unused,
13019 .unused,
13020 .unused,
13021 .unused,
13022 .unused,
13023 },
13024 .dst_temps = .{ .mem, .unused },
13025 .clobbers = .{ .eflags = true },
13026 .each = .{ .once = &.{
13027 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13028 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
13029 .{ ._, .v_ps, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
13030 .{ ._, .v_ps, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13031 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
13032 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
13033 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13034 } },
13035 }, .{
13036 .required_features = .{ .sse4_1, null, null, null },
13037 .src_constraints = .{
13038 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
13039 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
13040 .any,
13041 },
13042 .patterns = &.{
13043 .{ .src = .{ .to_mem, .to_mem, .none } },
13044 },
13045 .extra_temps = .{
13046 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13047 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
13048 .unused,
13049 .unused,
13050 .unused,
13051 .unused,
13052 .unused,
13053 .unused,
13054 .unused,
13055 .unused,
13056 .unused,
13057 },
13058 .dst_temps = .{ .mem, .unused },
13059 .clobbers = .{ .eflags = true },
13060 .each = .{ .once = &.{
13061 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13062 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
13063 .{ ._, ._ps, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
13064 .{ ._, ._ps, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13065 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13066 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13067 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13068 } },
13069 }, .{
13070 .required_features = .{ .avx, null, null, null },
13071 .src_constraints = .{
13072 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13073 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13074 .any,
13075 },
13076 .patterns = &.{
13077 .{ .src = .{ .to_sse, .mem, .none } },
13078 .{ .src = .{ .to_sse, .to_sse, .none } },
13079 },
13080 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
13081 .each = .{ .once = &.{
13082 .{ ._, .v_sd, .div, .dst0x, .src0x, .src1q, ._ },
13083 .{ ._, .v_sd, .round, .dst0x, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }) },
13084 } },
13085 }, .{
13086 .required_features = .{ .sse4_1, null, null, null },
13087 .src_constraints = .{
13088 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13089 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13090 .any,
13091 },
13092 .patterns = &.{
13093 .{ .src = .{ .to_mut_sse, .mem, .none } },
13094 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
13095 },
13096 .dst_temps = .{ .{ .ref = .src0 }, .unused },
13097 .each = .{ .once = &.{
13098 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
13099 .{ ._, ._sd, .round, .dst0x, .dst0q, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13100 } },
13101 }, .{
13102 .required_features = .{ .sse2, null, null, null },
13103 .src_constraints = .{
13104 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13105 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13106 .any,
13107 },
13108 .patterns = &.{
13109 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_mem, .none } },
13110 },
13111 .call_frame = .{ .alignment = .@"16" },
13112 .extra_temps = .{
13113 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
13114 .unused,
13115 .unused,
13116 .unused,
13117 .unused,
13118 .unused,
13119 .unused,
13120 .unused,
13121 .unused,
13122 .unused,
13123 .unused,
13124 },
13125 .dst_temps = .{ .{ .ref = .src0 }, .unused },
13126 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13127 .each = .{ .once = &.{
13128 .{ ._, ._sd, .div, .dst0x, .src1q, ._, ._ },
13129 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
13130 } },
13131 }, .{
13132 .required_features = .{ .sse, null, null, null },
13133 .src_constraints = .{
13134 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13135 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
13136 .any,
13137 },
13138 .patterns = &.{
13139 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
13140 },
13141 .call_frame = .{ .alignment = .@"16" },
13142 .extra_temps = .{
13143 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
13144 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
13145 .unused,
13146 .unused,
13147 .unused,
13148 .unused,
13149 .unused,
13150 .unused,
13151 .unused,
13152 .unused,
13153 .unused,
13154 },
13155 .dst_temps = .{ .{ .ref = .src0 }, .unused },
13156 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13157 .each = .{ .once = &.{
13158 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
13159 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
13160 } },
13161 }, .{
13162 .required_features = .{ .avx, null, null, null },
13163 .src_constraints = .{
13164 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
13165 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
13166 .any,
13167 },
13168 .patterns = &.{
13169 .{ .src = .{ .to_sse, .mem, .none } },
13170 .{ .src = .{ .to_sse, .to_sse, .none } },
13171 },
13172 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
13173 .each = .{ .once = &.{
13174 .{ ._, .v_pd, .div, .dst0x, .src0x, .src1x, ._ },
13175 .{ ._, .v_pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13176 } },
13177 }, .{
13178 .required_features = .{ .sse4_1, null, null, null },
13179 .src_constraints = .{
13180 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
13181 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
13182 .any,
13183 },
13184 .patterns = &.{
13185 .{ .src = .{ .to_mut_sse, .mem, .none } },
13186 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
13187 },
13188 .dst_temps = .{ .{ .ref = .src0 }, .unused },
13189 .each = .{ .once = &.{
13190 .{ ._, ._pd, .div, .dst0x, .src1x, ._, ._ },
13191 .{ ._, ._pd, .round, .dst0x, .dst0x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13192 } },
13193 }, .{
13194 .required_features = .{ .avx, null, null, null },
13195 .src_constraints = .{
13196 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
13197 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
13198 .any,
13199 },
13200 .patterns = &.{
13201 .{ .src = .{ .to_sse, .mem, .none } },
13202 .{ .src = .{ .to_sse, .to_sse, .none } },
13203 },
13204 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
13205 .each = .{ .once = &.{
13206 .{ ._, .v_pd, .div, .dst0y, .src0y, .src1y, ._ },
13207 .{ ._, .v_pd, .round, .dst0y, .dst0y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13208 } },
13209 }, .{
13210 .required_features = .{ .avx, null, null, null },
13211 .src_constraints = .{
13212 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
13213 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
13214 .any,
13215 },
13216 .patterns = &.{
13217 .{ .src = .{ .to_mem, .to_mem, .none } },
13218 },
13219 .extra_temps = .{
13220 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13221 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
13222 .unused,
13223 .unused,
13224 .unused,
13225 .unused,
13226 .unused,
13227 .unused,
13228 .unused,
13229 .unused,
13230 .unused,
13231 },
13232 .dst_temps = .{ .mem, .unused },
13233 .clobbers = .{ .eflags = true },
13234 .each = .{ .once = &.{
13235 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13236 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ },
13237 .{ ._, .v_pd, .div, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ },
13238 .{ ._, .v_pd, .round, .tmp1y, .tmp1y, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13239 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ },
13240 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
13241 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13242 } },
13243 }, .{
13244 .required_features = .{ .sse4_1, null, null, null },
13245 .src_constraints = .{
13246 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
13247 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
13248 .any,
13249 },
13250 .patterns = &.{
13251 .{ .src = .{ .to_mem, .to_mem, .none } },
13252 },
13253 .extra_temps = .{
13254 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13255 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
13256 .unused,
13257 .unused,
13258 .unused,
13259 .unused,
13260 .unused,
13261 .unused,
13262 .unused,
13263 .unused,
13264 .unused,
13265 },
13266 .dst_temps = .{ .mem, .unused },
13267 .clobbers = .{ .eflags = true },
13268 .each = .{ .once = &.{
13269 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13270 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
13271 .{ ._, ._pd, .div, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
13272 .{ ._, ._pd, .round, .tmp1x, .tmp1x, .rm(.{ .direction = .zero, .precision = .inexact }), ._ },
13273 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13274 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13275 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13276 } },
13277 }, .{
13278 .required_features = .{ .sse2, null, null, null },
13279 .src_constraints = .{
13280 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
13281 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
13282 .any,
13283 },
13284 .patterns = &.{
13285 .{ .src = .{ .to_mem, .to_mem, .none } },
13286 },
13287 .call_frame = .{ .alignment = .@"16" },
13288 .extra_temps = .{
13289 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13290 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
13291 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
13292 .unused,
13293 .unused,
13294 .unused,
13295 .unused,
13296 .unused,
13297 .unused,
13298 .unused,
13299 .unused,
13300 },
13301 .dst_temps = .{ .mem, .unused },
13302 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13303 .each = .{ .once = &.{
13304 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13305 .{ .@"0:", ._sd, .mov, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
13306 .{ ._, ._sd, .div, .tmp1x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
13307 .{ ._, ._, .call, .tmp2d, ._, ._, ._ },
13308 .{ ._, ._sd, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13309 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
13310 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13311 } },
13312 }, .{
13313 .required_features = .{ .sse, null, null, null },
13314 .src_constraints = .{
13315 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
13316 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
13317 .any,
13318 },
13319 .patterns = &.{
13320 .{ .src = .{ .to_mem, .to_mem, .none } },
13321 },
13322 .call_frame = .{ .alignment = .@"16" },
13323 .extra_temps = .{
13324 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13325 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
13326 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },
13327 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divdf3" } } },
13328 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "trunc" } } },
13329 .unused,
13330 .unused,
13331 .unused,
13332 .unused,
13333 .unused,
13334 .unused,
13335 },
13336 .dst_temps = .{ .mem, .unused },
13337 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13338 .each = .{ .once = &.{
13339 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13340 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
13341 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
13342 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
13343 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
13344 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
13345 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
13346 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13347 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
13348 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13349 } },
13350 }, .{
13351 .required_features = .{ .x87, null, null, null },
13352 .src_constraints = .{
13353 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
13354 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
13355 .any,
13356 },
13357 .patterns = &.{
13358 .{ .src = .{ .to_mem, .to_mem, .none } },
13359 },
13360 .call_frame = .{ .size = 16, .alignment = .@"16" },
13361 .extra_temps = .{
13362 .{ .type = .f80, .kind = .{ .reg = .st6 } },
13363 .{ .type = .f80, .kind = .{ .reg = .st7 } },
13364 .{ .type = .f80, .kind = .{ .frame = .call_frame } },
13365 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
13366 .unused,
13367 .unused,
13368 .unused,
13369 .unused,
13370 .unused,
13371 .unused,
13372 .unused,
13373 },
13374 .dst_temps = .{ .{ .reg = .st0 }, .unused },
13375 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13376 .each = .{ .once = &.{
13377 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
13378 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
13379 .{ ._, .f_p, .div, ._, ._, ._, ._ },
13380 .{ ._, .f_p, .st, .mem(.tmp2t), ._, ._, ._ },
13381 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
13382 } },
13383 }, .{
13384 .required_features = .{ .x87, null, null, null },
13385 .src_constraints = .{
13386 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
13387 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
13388 .any,
13389 },
13390 .patterns = &.{
13391 .{ .src = .{ .to_mem, .to_mem, .none } },
13392 },
13393 .call_frame = .{ .size = 16, .alignment = .@"16" },
13394 .extra_temps = .{
13395 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13396 .{ .type = .f80, .kind = .{ .reg = .st6 } },
13397 .{ .type = .f80, .kind = .{ .reg = .st7 } },
13398 .{ .type = .f80, .kind = .{ .frame = .call_frame } },
13399 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__truncx" } } },
13400 .unused,
13401 .unused,
13402 .unused,
13403 .unused,
13404 .unused,
13405 .unused,
13406 },
13407 .dst_temps = .{ .mem, .unused },
13408 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13409 .each = .{ .once = &.{
13410 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13411 .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
13412 .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ },
13413 .{ ._, .f_p, .div, ._, ._, ._, ._ },
13414 .{ ._, .f_p, .st, .mem(.tmp3t), ._, ._, ._ },
13415 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
13416 .{ .pseudo, .f_cstp, .de, ._, ._, ._, ._ },
13417 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ },
13418 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13419 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13420 } },
13421 }, .{
13422 .required_features = .{ .sse, null, null, null },
13423 .src_constraints = .{
13424 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
13425 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
13426 .any,
13427 },
13428 .patterns = &.{
13429 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
13430 },
13431 .call_frame = .{ .alignment = .@"16" },
13432 .extra_temps = .{
13433 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
13434 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
13435 .unused,
13436 .unused,
13437 .unused,
13438 .unused,
13439 .unused,
13440 .unused,
13441 .unused,
13442 .unused,
13443 .unused,
13444 },
13445 .dst_temps = .{ .{ .ref = .src0 }, .unused },
13446 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13447 .each = .{ .once = &.{
13448 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
13449 .{ ._, ._, .call, .tmp1d, ._, ._, ._ },
13450 } },
13451 }, .{
13452 .required_features = .{ .avx, null, null, null },
13453 .src_constraints = .{
13454 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13455 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13456 .any,
13457 },
13458 .patterns = &.{
13459 .{ .src = .{ .to_mem, .to_mem, .none } },
13460 },
13461 .call_frame = .{ .alignment = .@"16" },
13462 .extra_temps = .{
13463 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13464 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
13465 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
13466 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
13467 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
13468 .unused,
13469 .unused,
13470 .unused,
13471 .unused,
13472 .unused,
13473 .unused,
13474 },
13475 .dst_temps = .{ .mem, .unused },
13476 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13477 .each = .{ .once = &.{
13478 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13479 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
13480 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
13481 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
13482 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
13483 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13484 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13485 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13486 } },
13487 }, .{
13488 .required_features = .{ .sse2, null, null, null },
13489 .src_constraints = .{
13490 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13491 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13492 .any,
13493 },
13494 .patterns = &.{
13495 .{ .src = .{ .to_mem, .to_mem, .none } },
13496 },
13497 .call_frame = .{ .alignment = .@"16" },
13498 .extra_temps = .{
13499 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13500 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
13501 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
13502 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
13503 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
13504 .unused,
13505 .unused,
13506 .unused,
13507 .unused,
13508 .unused,
13509 .unused,
13510 },
13511 .dst_temps = .{ .mem, .unused },
13512 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13513 .each = .{ .once = &.{
13514 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13515 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
13516 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
13517 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
13518 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
13519 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13520 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13521 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13522 } },
13523 }, .{
13524 .required_features = .{ .sse, null, null, null },
13525 .src_constraints = .{
13526 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13527 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
13528 .any,
13529 },
13530 .patterns = &.{
13531 .{ .src = .{ .to_mem, .to_mem, .none } },
13532 },
13533 .call_frame = .{ .alignment = .@"16" },
13534 .extra_temps = .{
13535 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
13536 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
13537 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
13538 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__divtf3" } } },
13539 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "truncq" } } },
13540 .unused,
13541 .unused,
13542 .unused,
13543 .unused,
13544 .unused,
13545 .unused,
13546 },
13547 .dst_temps = .{ .mem, .unused },
13548 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
13549 .each = .{ .once = &.{
13550 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
13551 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ },
13552 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ },
13553 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
13554 .{ ._, ._, .call, .tmp4d, ._, ._, ._ },
13555 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ },
13556 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
13557 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
13558 } },
13559 } }) else err: {
13560 res[0] = ops[0].divTruncInts(&ops[1], cg) catch |err| break :err err;
13561 }) catch |err| switch (err) {
13562 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
13563 @tagName(air_tag),
13564 ty.fmt(pt),
13565 ops[0].tracking(cg),
10875 ops[1].tracking(cg),13566 ops[1].tracking(cg),
10876 }),13567 }),
10877 else => |e| return e,13568 else => |e| return e,
...@@ -16940,330 +19631,984 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -16940,330 +19631,984 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
16940 .patterns = &.{19631 .patterns = &.{
16941 .{ .src = .{ .to_gpr, .to_gpr, .none } },19632 .{ .src = .{ .to_gpr, .to_gpr, .none } },
16942 },19633 },
16943 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },19634 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
19635 .clobbers = .{ .eflags = true },
19636 .each = .{ .once = &.{
19637 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ },
19638 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
19639 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
19640 } },
19641 }, .{
19642 .dst_constraints = .{ .{ .elem_size_is = 4 }, .any },
19643 .patterns = &.{
19644 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },
19645 },
19646 .dst_temps = .{ .{ .ref = .src1 }, .unused },
19647 .clobbers = .{ .eflags = true },
19648 .each = .{ .once = &.{
19649 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
19650 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ },
19651 } },
19652 }, .{
19653 .dst_constraints = .{ .{ .elem_size_is = 4 + 1 }, .any },
19654 .patterns = &.{
19655 .{ .src = .{ .to_gpr, .to_gpr, .none } },
19656 },
19657 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
19658 .clobbers = .{ .eflags = true },
19659 .each = .{ .once = &.{
19660 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ },
19661 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
19662 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
19663 } },
19664 }, .{
19665 .required_features = .{ .@"64bit", null, null, null },
19666 .dst_constraints = .{ .{ .elem_size_is = 8 }, .any },
19667 .patterns = &.{
19668 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },
19669 },
19670 .dst_temps = .{ .{ .ref = .src1 }, .unused },
19671 .clobbers = .{ .eflags = true },
19672 .each = .{ .once = &.{
19673 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
19674 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ },
19675 } },
19676 }, .{
19677 .required_features = .{ .@"64bit", null, null, null },
19678 .dst_constraints = .{ .{ .elem_size_is = 8 + 1 }, .any },
19679 .patterns = &.{
19680 .{ .src = .{ .to_gpr, .to_gpr, .none } },
19681 },
19682 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
19683 .clobbers = .{ .eflags = true },
19684 .each = .{ .once = &.{
19685 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ },
19686 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
19687 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
19688 } },
19689 }, .{
19690 .dst_constraints = .{ .po2_elem_size, .any },
19691 .patterns = &.{
19692 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },
19693 },
19694 .dst_temps = .{ .{ .ref = .src1 }, .unused },
19695 .clobbers = .{ .eflags = true },
19696 .each = .{ .once = &.{
19697 .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ },
19698 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
19699 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
19700 } },
19701 }, .{
19702 .patterns = &.{
19703 .{ .src = .{ .to_gpr, .to_gpr, .none } },
19704 },
19705 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },
19706 .clobbers = .{ .eflags = true },
19707 .each = .{ .once = &.{
19708 .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ },
19709 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
19710 } },
19711 } }) catch |err| switch (err) {
19712 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
19713 @tagName(air_tag),
19714 cg.typeOf(bin_op.lhs).fmt(pt),
19715 ops[0].tracking(cg),
19716 ops[1].tracking(cg),
19717 }),
19718 else => |e| return e,
19719 } else res[0] = ops[0];
19720 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
19721 },
19722 .max => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
19723 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
19724 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
19725 var res: [1]Temp = undefined;
19726 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
19727 .required_features = .{ .cmov, null, null, null },
19728 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
19729 .patterns = &.{
19730 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19731 },
19732 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19733 .clobbers = .{ .eflags = true },
19734 .each = .{ .once = &.{
19735 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
19736 .{ ._, ._l, .cmov, .dst0d, .src1d, ._, ._ },
19737 } },
19738 }, .{
19739 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
19740 .patterns = &.{
19741 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19742 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19743 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19744 },
19745 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19746 .clobbers = .{ .eflags = true },
19747 .each = .{ .once = &.{
19748 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
19749 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
19750 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },
19751 } },
19752 }, .{
19753 .required_features = .{ .cmov, null, null, null },
19754 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
19755 .patterns = &.{
19756 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19757 },
19758 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19759 .clobbers = .{ .eflags = true },
19760 .each = .{ .once = &.{
19761 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
19762 .{ ._, ._b, .cmov, .dst0d, .src1d, ._, ._ },
19763 } },
19764 }, .{
19765 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
19766 .patterns = &.{
19767 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19768 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19769 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19770 },
19771 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19772 .clobbers = .{ .eflags = true },
19773 .each = .{ .once = &.{
19774 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
19775 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
19776 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },
19777 } },
19778 }, .{
19779 .required_features = .{ .cmov, null, null, null },
19780 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
19781 .patterns = &.{
19782 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19783 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19784 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19785 },
19786 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19787 .clobbers = .{ .eflags = true },
19788 .each = .{ .once = &.{
19789 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
19790 .{ ._, ._l, .cmov, .dst0w, .src1w, ._, ._ },
19791 } },
19792 }, .{
19793 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
19794 .patterns = &.{
19795 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19796 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19797 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19798 },
19799 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19800 .clobbers = .{ .eflags = true },
19801 .each = .{ .once = &.{
19802 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
19803 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
19804 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },
19805 } },
19806 }, .{
19807 .required_features = .{ .cmov, null, null, null },
19808 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
19809 .patterns = &.{
19810 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19811 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19812 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19813 },
19814 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19815 .clobbers = .{ .eflags = true },
19816 .each = .{ .once = &.{
19817 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
19818 .{ ._, ._b, .cmov, .dst0w, .src1w, ._, ._ },
19819 } },
19820 }, .{
19821 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
19822 .patterns = &.{
19823 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19824 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19825 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19826 },
19827 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19828 .clobbers = .{ .eflags = true },
19829 .each = .{ .once = &.{
19830 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
19831 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
19832 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },
19833 } },
19834 }, .{
19835 .required_features = .{ .cmov, null, null, null },
19836 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
19837 .patterns = &.{
19838 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19839 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19840 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19841 },
19842 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19843 .clobbers = .{ .eflags = true },
19844 .each = .{ .once = &.{
19845 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
19846 .{ ._, ._l, .cmov, .dst0d, .src1d, ._, ._ },
19847 } },
19848 }, .{
19849 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
19850 .patterns = &.{
19851 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19852 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19853 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19854 },
19855 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19856 .clobbers = .{ .eflags = true },
19857 .each = .{ .once = &.{
19858 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
19859 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
19860 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
19861 } },
19862 }, .{
19863 .required_features = .{ .cmov, null, null, null },
19864 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
19865 .patterns = &.{
19866 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19867 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19868 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19869 },
19870 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19871 .clobbers = .{ .eflags = true },
19872 .each = .{ .once = &.{
19873 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
19874 .{ ._, ._b, .cmov, .dst0d, .src1d, ._, ._ },
19875 } },
19876 }, .{
19877 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
19878 .patterns = &.{
19879 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19880 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19881 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19882 },
19883 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19884 .clobbers = .{ .eflags = true },
19885 .each = .{ .once = &.{
19886 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
19887 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
19888 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
19889 } },
19890 }, .{
19891 .required_features = .{ .@"64bit", .cmov, null, null },
19892 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
19893 .patterns = &.{
19894 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19895 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19896 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19897 },
19898 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19899 .clobbers = .{ .eflags = true },
19900 .each = .{ .once = &.{
19901 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
19902 .{ ._, ._l, .cmov, .dst0q, .src1q, ._, ._ },
19903 } },
19904 }, .{
19905 .required_features = .{ .@"64bit", null, null, null },
19906 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
19907 .patterns = &.{
19908 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19909 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19910 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19911 },
19912 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19913 .clobbers = .{ .eflags = true },
19914 .each = .{ .once = &.{
19915 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
19916 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
19917 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },
19918 } },
19919 }, .{
19920 .required_features = .{ .@"64bit", .cmov, null, null },
19921 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
19922 .patterns = &.{
19923 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19924 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19925 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19926 },
19927 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19928 .clobbers = .{ .eflags = true },
19929 .each = .{ .once = &.{
19930 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
19931 .{ ._, ._b, .cmov, .dst0q, .src1q, ._, ._ },
19932 } },
19933 }, .{
19934 .required_features = .{ .@"64bit", null, null, null },
19935 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
19936 .patterns = &.{
19937 .{ .src = .{ .to_mut_gpr, .mem, .none } },
19938 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
19939 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
19940 },
19941 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19942 .clobbers = .{ .eflags = true },
19943 .each = .{ .once = &.{
19944 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
19945 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
19946 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },
19947 } },
19948 }, .{
19949 .required_features = .{ .@"64bit", .cmov, null, null },
19950 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },
19951 .patterns = &.{
19952 .{ .src = .{ .to_mem, .to_mem, .none } },
19953 },
19954 .extra_temps = .{
19955 .{ .type = .isize, .kind = .{ .reg = .rsi } },
19956 .{ .type = .u64, .kind = .{ .reg = .rdi } },
19957 .{ .type = .u64, .kind = .{ .reg = .rcx } },
19958 .unused,
19959 .unused,
19960 .unused,
19961 .unused,
19962 .unused,
19963 .unused,
19964 .unused,
19965 .unused,
19966 },
19967 .dst_temps = .{ .mem, .unused },
19968 .clobbers = .{ .eflags = true },
19969 .each = .{ .once = &.{
19970 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
19971 .{ ._, ._c, .cl, ._, ._, ._, ._ },
19972 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
19973 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
19974 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
19975 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
19976 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
19977 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
19978 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
19979 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
19980 .{ ._, ._l, .cmov, .tmp0p, .tmp1p, ._, ._ },
19981 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
19982 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
19983 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19984 } },
19985 }, .{
19986 .required_features = .{ .@"64bit", null, null, null },
19987 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },
19988 .patterns = &.{
19989 .{ .src = .{ .to_mem, .to_mem, .none } },
19990 },
19991 .extra_temps = .{
19992 .{ .type = .isize, .kind = .{ .reg = .rsi } },
19993 .{ .type = .u64, .kind = .{ .reg = .rdi } },
19994 .{ .type = .u64, .kind = .{ .reg = .rcx } },
19995 .unused,
19996 .unused,
19997 .unused,
19998 .unused,
19999 .unused,
20000 .unused,
20001 .unused,
20002 .unused,
20003 },
20004 .dst_temps = .{ .mem, .unused },
16944 .clobbers = .{ .eflags = true },20005 .clobbers = .{ .eflags = true },
16945 .each = .{ .once = &.{20006 .each = .{ .once = &.{
16946 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"2", .src1), ._, ._ },20007 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
16947 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },20008 .{ ._, ._c, .cl, ._, ._, ._, ._ },
16948 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },20009 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
20010 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
20011 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20012 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
20013 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
20014 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
20015 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
20016 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
20017 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
20018 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
20019 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
20020 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
16949 } },20021 } },
16950 }, .{20022 }, .{
16951 .dst_constraints = .{ .{ .elem_size_is = 4 }, .any },20023 .required_features = .{ .@"64bit", .cmov, null, null },
20024 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },
16952 .patterns = &.{20025 .patterns = &.{
16953 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },20026 .{ .src = .{ .to_mem, .to_mem, .none } },
16954 },20027 },
16955 .dst_temps = .{ .{ .ref = .src1 }, .unused },20028 .extra_temps = .{
16956 .clobbers = .{ .eflags = true },20029 .{ .type = .isize, .kind = .{ .reg = .rsi } },
16957 .each = .{ .once = &.{20030 .{ .type = .u64, .kind = .{ .reg = .rdi } },
16958 .{ ._, ._, .neg, .src1p, ._, ._, ._ },20031 .{ .type = .u64, .kind = .{ .reg = .rcx } },
16959 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"4", .src1), ._, ._ },20032 .unused,
16960 } },20033 .unused,
16961 }, .{20034 .unused,
16962 .dst_constraints = .{ .{ .elem_size_is = 4 + 1 }, .any },20035 .unused,
16963 .patterns = &.{20036 .unused,
16964 .{ .src = .{ .to_gpr, .to_gpr, .none } },20037 .unused,
20038 .unused,
20039 .unused,
16965 },20040 },
16966 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },20041 .dst_temps = .{ .mem, .unused },
16967 .clobbers = .{ .eflags = true },20042 .clobbers = .{ .eflags = true },
16968 .each = .{ .once = &.{20043 .each = .{ .once = &.{
16969 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"4", .src1), ._, ._ },20044 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
16970 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },20045 .{ ._, ._c, .cl, ._, ._, ._, ._ },
16971 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },20046 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
20047 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
20048 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20049 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
20050 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
20051 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
20052 .{ ._, ._b, .cmov, .tmp0p, .tmp1p, ._, ._ },
20053 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
20054 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
20055 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
16972 } },20056 } },
16973 }, .{20057 }, .{
16974 .required_features = .{ .@"64bit", null, null, null },20058 .required_features = .{ .@"64bit", null, null, null },
16975 .dst_constraints = .{ .{ .elem_size_is = 8 }, .any },20059 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },
16976 .patterns = &.{20060 .patterns = &.{
16977 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },20061 .{ .src = .{ .to_mem, .to_mem, .none } },
16978 },20062 },
16979 .dst_temps = .{ .{ .ref = .src1 }, .unused },20063 .extra_temps = .{
20064 .{ .type = .isize, .kind = .{ .reg = .rsi } },
20065 .{ .type = .u64, .kind = .{ .reg = .rdi } },
20066 .{ .type = .u64, .kind = .{ .reg = .rcx } },
20067 .unused,
20068 .unused,
20069 .unused,
20070 .unused,
20071 .unused,
20072 .unused,
20073 .unused,
20074 .unused,
20075 },
20076 .dst_temps = .{ .mem, .unused },
16980 .clobbers = .{ .eflags = true },20077 .clobbers = .{ .eflags = true },
16981 .each = .{ .once = &.{20078 .each = .{ .once = &.{
16982 .{ ._, ._, .neg, .src1p, ._, ._, ._ },20079 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
16983 .{ ._, ._, .lea, .dst0p, .leasi(.src0, .@"8", .src1), ._, ._ },20080 .{ ._, ._c, .cl, ._, ._, ._, ._ },
20081 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
20082 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
20083 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20084 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
20085 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
20086 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
20087 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
20088 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
20089 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
20090 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
16984 } },20091 } },
16985 }, .{20092 }, .{
16986 .required_features = .{ .@"64bit", null, null, null },20093 .required_features = .{ .avx, null, null, null },
16987 .dst_constraints = .{ .{ .elem_size_is = 8 + 1 }, .any },20094 .src_constraints = .{
20095 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20096 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20097 .any,
20098 },
16988 .patterns = &.{20099 .patterns = &.{
16989 .{ .src = .{ .to_gpr, .to_gpr, .none } },20100 .{ .src = .{ .to_sse, .mem, .none } },
20101 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
20102 .{ .src = .{ .to_sse, .to_sse, .none } },
16990 },20103 },
16991 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },20104 .dst_temps = .{ .{ .rc = .sse }, .unused },
16992 .clobbers = .{ .eflags = true },
16993 .each = .{ .once = &.{20105 .each = .{ .once = &.{
16994 .{ ._, ._, .lea, .dst0p, .leasi(.src1, .@"8", .src1), ._, ._ },20106 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .src1x, ._ },
16995 .{ ._, ._, .neg, .dst0p, ._, ._, ._ },
16996 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },
16997 } },20107 } },
16998 }, .{20108 }, .{
16999 .dst_constraints = .{ .po2_elem_size, .any },20109 .required_features = .{ .sse4_1, null, null, null },
20110 .src_constraints = .{
20111 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20112 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20113 .any,
20114 },
17000 .patterns = &.{20115 .patterns = &.{
17001 .{ .src = .{ .to_gpr, .to_mut_gpr, .none } },20116 .{ .src = .{ .to_mut_sse, .mem, .none } },
20117 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
20118 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17002 },20119 },
17003 .dst_temps = .{ .{ .ref = .src1 }, .unused },20120 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17004 .clobbers = .{ .eflags = true },
17005 .each = .{ .once = &.{20121 .each = .{ .once = &.{
17006 .{ ._, ._l, .sa, .src1p, .sa(.none, .add_log2_src0_elem_size), ._, ._ },20122 .{ ._, .p_b, .maxs, .dst0x, .src1x, ._, ._ },
17007 .{ ._, ._, .neg, .src1p, ._, ._, ._ },
17008 .{ ._, ._, .lea, .dst0p, .leai(.src0, .src1), ._, ._ },
17009 } },20123 } },
17010 }, .{20124 }, .{
20125 .required_features = .{ .sse2, null, null, null },
20126 .src_constraints = .{
20127 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20128 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20129 .any,
20130 },
17011 .patterns = &.{20131 .patterns = &.{
17012 .{ .src = .{ .to_gpr, .to_gpr, .none } },20132 .{ .src = .{ .to_mut_sse, .mem, .none } },
20133 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
20134 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17013 },20135 },
17014 .dst_temps = .{ .{ .rc = .general_purpose }, .unused },20136 .dst_temps = .{ .{ .rc = .sse }, .unused },
17015 .clobbers = .{ .eflags = true },
17016 .each = .{ .once = &.{20137 .each = .{ .once = &.{
17017 .{ ._, .i_, .mul, .dst0p, .src1p, .sa(.none, .sub_src0_elem_size), ._ },20138 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },
17018 .{ ._, ._, .lea, .dst0p, .leai(.src0, .dst0), ._, ._ },20139 .{ ._, .p_b, .cmpgt, .dst0x, .src1x, ._, ._ },
20140 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
20141 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
20142 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
17019 } },20143 } },
17020 } }) catch |err| switch (err) {20144 }, .{
17021 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{20145 .required_features = .{ .avx2, null, null, null },
17022 @tagName(air_tag),20146 .src_constraints = .{
17023 cg.typeOf(bin_op.lhs).fmt(pt),20147 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },
17024 ops[0].tracking(cg),20148 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },
17025 ops[1].tracking(cg),20149 .any,
17026 }),20150 },
17027 else => |e| return e,
17028 } else res[0] = ops[0];
17029 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
17030 },
17031 .max => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
17032 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
17033 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
17034 var res: [1]Temp = undefined;
17035 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
17036 .required_features = .{ .cmov, null, null, null },
17037 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
17038 .patterns = &.{20151 .patterns = &.{
17039 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20152 .{ .src = .{ .to_sse, .mem, .none } },
20153 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
20154 .{ .src = .{ .to_sse, .to_sse, .none } },
17040 },20155 },
17041 .dst_temps = .{ .{ .ref = .src0 }, .unused },20156 .dst_temps = .{ .{ .rc = .sse }, .unused },
17042 .clobbers = .{ .eflags = true },
17043 .each = .{ .once = &.{20157 .each = .{ .once = &.{
17044 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },20158 .{ ._, .vp_b, .maxs, .dst0y, .src0y, .src1y, ._ },
17045 .{ ._, ._l, .cmov, .dst0d, .src1d, ._, ._ },
17046 } },20159 } },
17047 }, .{20160 }, .{
17048 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },20161 .required_features = .{ .avx2, null, null, null },
20162 .src_constraints = .{
20163 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },
20164 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },
20165 .any,
20166 },
17049 .patterns = &.{20167 .patterns = &.{
17050 .{ .src = .{ .to_mut_gpr, .mem, .none } },20168 .{ .src = .{ .to_mem, .to_mem, .none } },
17051 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17052 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17053 },20169 },
17054 .dst_temps = .{ .{ .ref = .src0 }, .unused },20170 .extra_temps = .{
20171 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20172 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
20173 .unused,
20174 .unused,
20175 .unused,
20176 .unused,
20177 .unused,
20178 .unused,
20179 .unused,
20180 .unused,
20181 .unused,
20182 },
20183 .dst_temps = .{ .mem, .unused },
17055 .clobbers = .{ .eflags = true },20184 .clobbers = .{ .eflags = true },
17056 .each = .{ .once = &.{20185 .each = .{ .once = &.{
17057 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },20186 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17058 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },20187 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
17059 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },20188 .{ ._, .vp_b, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
20189 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
20190 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
20191 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17060 } },20192 } },
17061 }, .{20193 }, .{
17062 .required_features = .{ .cmov, null, null, null },20194 .required_features = .{ .avx, null, null, null },
17063 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },20195 .src_constraints = .{
20196 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20197 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20198 .any,
20199 },
17064 .patterns = &.{20200 .patterns = &.{
17065 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20201 .{ .src = .{ .to_mem, .to_mem, .none } },
17066 },20202 },
17067 .dst_temps = .{ .{ .ref = .src0 }, .unused },20203 .extra_temps = .{
20204 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20205 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20206 .unused,
20207 .unused,
20208 .unused,
20209 .unused,
20210 .unused,
20211 .unused,
20212 .unused,
20213 .unused,
20214 .unused,
20215 },
20216 .dst_temps = .{ .mem, .unused },
17068 .clobbers = .{ .eflags = true },20217 .clobbers = .{ .eflags = true },
17069 .each = .{ .once = &.{20218 .each = .{ .once = &.{
17070 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },20219 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17071 .{ ._, ._b, .cmov, .dst0d, .src1d, ._, ._ },20220 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20221 .{ ._, .vp_b, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
20222 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20223 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20224 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17072 } },20225 } },
17073 }, .{20226 }, .{
17074 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },20227 .required_features = .{ .sse4_1, null, null, null },
20228 .src_constraints = .{
20229 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20230 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20231 .any,
20232 },
17075 .patterns = &.{20233 .patterns = &.{
17076 .{ .src = .{ .to_mut_gpr, .mem, .none } },20234 .{ .src = .{ .to_mem, .to_mem, .none } },
17077 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17078 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17079 },20235 },
17080 .dst_temps = .{ .{ .ref = .src0 }, .unused },20236 .extra_temps = .{
20237 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20238 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20239 .unused,
20240 .unused,
20241 .unused,
20242 .unused,
20243 .unused,
20244 .unused,
20245 .unused,
20246 .unused,
20247 .unused,
20248 },
20249 .dst_temps = .{ .mem, .unused },
17081 .clobbers = .{ .eflags = true },20250 .clobbers = .{ .eflags = true },
17082 .each = .{ .once = &.{20251 .each = .{ .once = &.{
17083 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },20252 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17084 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },20253 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17085 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },20254 .{ ._, .p_b, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20255 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20256 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20257 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17086 } },20258 } },
17087 }, .{20259 }, .{
17088 .required_features = .{ .cmov, null, null, null },20260 .required_features = .{ .sse2, null, null, null },
17089 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },20261 .src_constraints = .{
20262 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20263 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20264 .any,
20265 },
17090 .patterns = &.{20266 .patterns = &.{
17091 .{ .src = .{ .to_mut_gpr, .mem, .none } },20267 .{ .src = .{ .to_mem, .to_mem, .none } },
17092 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17093 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17094 },20268 },
17095 .dst_temps = .{ .{ .ref = .src0 }, .unused },20269 .extra_temps = .{
20270 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20271 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20272 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20273 .unused,
20274 .unused,
20275 .unused,
20276 .unused,
20277 .unused,
20278 .unused,
20279 .unused,
20280 .unused,
20281 },
20282 .dst_temps = .{ .mem, .unused },
17096 .clobbers = .{ .eflags = true },20283 .clobbers = .{ .eflags = true },
17097 .each = .{ .once = &.{20284 .each = .{ .once = &.{
17098 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },20285 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17099 .{ ._, ._l, .cmov, .dst0w, .src1w, ._, ._ },20286 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20287 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
20288 .{ ._, .p_b, .cmpgt, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20289 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
20290 .{ ._, .p_, .andn, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20291 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
20292 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20293 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20294 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17100 } },20295 } },
17101 }, .{20296 }, .{
17102 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },20297 .required_features = .{ .cmov, .slow_incdec, null, null },
20298 .src_constraints = .{
20299 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20300 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20301 .any,
20302 },
17103 .patterns = &.{20303 .patterns = &.{
17104 .{ .src = .{ .to_mut_gpr, .mem, .none } },20304 .{ .src = .{ .to_mem, .to_mem, .none } },
17105 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17106 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17107 },20305 },
17108 .dst_temps = .{ .{ .ref = .src0 }, .unused },20306 .extra_temps = .{
20307 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20308 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20309 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20310 .unused,
20311 .unused,
20312 .unused,
20313 .unused,
20314 .unused,
20315 .unused,
20316 .unused,
20317 .unused,
20318 },
20319 .dst_temps = .{ .mem, .unused },
17109 .clobbers = .{ .eflags = true },20320 .clobbers = .{ .eflags = true },
17110 .each = .{ .once = &.{20321 .each = .{ .once = &.{
17111 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },20322 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17112 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },20323 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17113 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },20324 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20325 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
20326 .{ ._, ._l, .cmov, .tmp1d, .tmp2d, ._, ._ },
20327 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20328 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
20329 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17114 } },20330 } },
17115 }, .{20331 }, .{
17116 .required_features = .{ .cmov, null, null, null },20332 .required_features = .{ .cmov, null, null, null },
17117 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },20333 .src_constraints = .{
20334 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20335 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20336 .any,
20337 },
17118 .patterns = &.{20338 .patterns = &.{
17119 .{ .src = .{ .to_mut_gpr, .mem, .none } },20339 .{ .src = .{ .to_mem, .to_mem, .none } },
17120 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17121 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17122 },20340 },
17123 .dst_temps = .{ .{ .ref = .src0 }, .unused },20341 .extra_temps = .{
20342 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20343 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20344 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20345 .unused,
20346 .unused,
20347 .unused,
20348 .unused,
20349 .unused,
20350 .unused,
20351 .unused,
20352 .unused,
20353 },
20354 .dst_temps = .{ .mem, .unused },
17124 .clobbers = .{ .eflags = true },20355 .clobbers = .{ .eflags = true },
17125 .each = .{ .once = &.{20356 .each = .{ .once = &.{
17126 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },20357 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17127 .{ ._, ._b, .cmov, .dst0w, .src1w, ._, ._ },20358 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
20359 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20360 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
20361 .{ ._, ._l, .cmov, .tmp1d, .tmp2d, ._, ._ },
20362 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20363 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20364 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17128 } },20365 } },
17129 }, .{20366 }, .{
17130 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },20367 .required_features = .{ .slow_incdec, null, null, null },
20368 .src_constraints = .{
20369 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20370 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20371 .any,
20372 },
17131 .patterns = &.{20373 .patterns = &.{
17132 .{ .src = .{ .to_mut_gpr, .mem, .none } },20374 .{ .src = .{ .to_mem, .to_mem, .none } },
17133 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17134 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17135 },20375 },
17136 .dst_temps = .{ .{ .ref = .src0 }, .unused },20376 .extra_temps = .{
20377 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20378 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20379 .unused,
20380 .unused,
20381 .unused,
20382 .unused,
20383 .unused,
20384 .unused,
20385 .unused,
20386 .unused,
20387 .unused,
20388 },
20389 .dst_temps = .{ .mem, .unused },
17137 .clobbers = .{ .eflags = true },20390 .clobbers = .{ .eflags = true },
17138 .each = .{ .once = &.{20391 .each = .{ .once = &.{
17139 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },20392 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17140 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },20393 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17141 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },20394 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20395 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
20396 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20397 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20398 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
20399 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17142 } },20400 } },
17143 }, .{20401 }, .{
17144 .required_features = .{ .cmov, null, null, null },20402 .src_constraints = .{
17145 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },20403 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20404 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20405 .any,
20406 },
17146 .patterns = &.{20407 .patterns = &.{
17147 .{ .src = .{ .to_mut_gpr, .mem, .none } },20408 .{ .src = .{ .to_mem, .to_mem, .none } },
17148 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17149 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17150 },20409 },
17151 .dst_temps = .{ .{ .ref = .src0 }, .unused },20410 .extra_temps = .{
20411 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20412 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20413 .unused,
20414 .unused,
20415 .unused,
20416 .unused,
20417 .unused,
20418 .unused,
20419 .unused,
20420 .unused,
20421 .unused,
20422 },
20423 .dst_temps = .{ .mem, .unused },
17152 .clobbers = .{ .eflags = true },20424 .clobbers = .{ .eflags = true },
17153 .each = .{ .once = &.{20425 .each = .{ .once = &.{
17154 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },20426 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17155 .{ ._, ._l, .cmov, .dst0d, .src1d, ._, ._ },20427 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
20428 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20429 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
20430 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20431 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20432 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20433 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17156 } },20434 } },
17157 }, .{20435 }, .{
17158 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },20436 .required_features = .{ .sse, .mmx, null, null },
20437 .src_constraints = .{
20438 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
20439 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
20440 .any,
20441 },
17159 .patterns = &.{20442 .patterns = &.{
17160 .{ .src = .{ .to_mut_gpr, .mem, .none } },20443 .{ .src = .{ .to_mut_mmx, .mem, .none } },
17161 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },20444 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },
17162 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20445 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },
17163 },20446 },
17164 .dst_temps = .{ .{ .ref = .src0 }, .unused },20447 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17165 .clobbers = .{ .eflags = true },
17166 .each = .{ .once = &.{20448 .each = .{ .once = &.{
17167 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },20449 .{ ._, .p_b, .maxu, .dst0q, .src1q, ._, ._ },
17168 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
17169 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
17170 } },20450 } },
17171 }, .{20451 }, .{
17172 .required_features = .{ .cmov, null, null, null },20452 .required_features = .{ .avx, null, null, null },
17173 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },20453 .src_constraints = .{
20454 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20455 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20456 .any,
20457 },
17174 .patterns = &.{20458 .patterns = &.{
17175 .{ .src = .{ .to_mut_gpr, .mem, .none } },20459 .{ .src = .{ .to_sse, .mem, .none } },
17176 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },20460 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
17177 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20461 .{ .src = .{ .to_sse, .to_sse, .none } },
17178 },20462 },
17179 .dst_temps = .{ .{ .ref = .src0 }, .unused },20463 .dst_temps = .{ .{ .rc = .sse }, .unused },
17180 .clobbers = .{ .eflags = true },
17181 .each = .{ .once = &.{20464 .each = .{ .once = &.{
17182 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },20465 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .src1x, ._ },
17183 .{ ._, ._b, .cmov, .dst0d, .src1d, ._, ._ },
17184 } },20466 } },
17185 }, .{20467 }, .{
17186 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },20468 .required_features = .{ .sse2, null, null, null },
20469 .src_constraints = .{
20470 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20471 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20472 .any,
20473 },
17187 .patterns = &.{20474 .patterns = &.{
17188 .{ .src = .{ .to_mut_gpr, .mem, .none } },20475 .{ .src = .{ .to_mut_sse, .mem, .none } },
17189 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },20476 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
17190 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20477 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17191 },20478 },
17192 .dst_temps = .{ .{ .ref = .src0 }, .unused },20479 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17193 .clobbers = .{ .eflags = true },
17194 .each = .{ .once = &.{20480 .each = .{ .once = &.{
17195 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },20481 .{ ._, .p_b, .maxu, .dst0x, .src1x, ._, ._ },
17196 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
17197 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
17198 } },20482 } },
17199 }, .{20483 }, .{
17200 .required_features = .{ .@"64bit", .cmov, null, null },20484 .required_features = .{ .avx2, null, null, null },
17201 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },20485 .src_constraints = .{
20486 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
20487 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
20488 .any,
20489 },
17202 .patterns = &.{20490 .patterns = &.{
17203 .{ .src = .{ .to_mut_gpr, .mem, .none } },20491 .{ .src = .{ .to_sse, .mem, .none } },
17204 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },20492 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
17205 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },20493 .{ .src = .{ .to_sse, .to_sse, .none } },
17206 },20494 },
17207 .dst_temps = .{ .{ .ref = .src0 }, .unused },20495 .dst_temps = .{ .{ .rc = .sse }, .unused },
17208 .clobbers = .{ .eflags = true },
17209 .each = .{ .once = &.{20496 .each = .{ .once = &.{
17210 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },20497 .{ ._, .vp_b, .maxu, .dst0y, .src0y, .src1y, ._ },
17211 .{ ._, ._l, .cmov, .dst0q, .src1q, ._, ._ },
17212 } },20498 } },
17213 }, .{20499 }, .{
17214 .required_features = .{ .@"64bit", null, null, null },20500 .required_features = .{ .avx2, null, null, null },
17215 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },20501 .src_constraints = .{
20502 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
20503 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
20504 .any,
20505 },
17216 .patterns = &.{20506 .patterns = &.{
17217 .{ .src = .{ .to_mut_gpr, .mem, .none } },20507 .{ .src = .{ .to_mem, .to_mem, .none } },
17218 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17219 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17220 },20508 },
17221 .dst_temps = .{ .{ .ref = .src0 }, .unused },20509 .extra_temps = .{
20510 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20511 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
20512 .unused,
20513 .unused,
20514 .unused,
20515 .unused,
20516 .unused,
20517 .unused,
20518 .unused,
20519 .unused,
20520 .unused,
20521 },
20522 .dst_temps = .{ .mem, .unused },
17222 .clobbers = .{ .eflags = true },20523 .clobbers = .{ .eflags = true },
17223 .each = .{ .once = &.{20524 .each = .{ .once = &.{
17224 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },20525 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17225 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },20526 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
17226 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },20527 .{ ._, .vp_b, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
20528 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
20529 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
20530 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17227 } },20531 } },
17228 }, .{20532 }, .{
17229 .required_features = .{ .@"64bit", .cmov, null, null },20533 .required_features = .{ .avx, null, null, null },
17230 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },20534 .src_constraints = .{
20535 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20536 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20537 .any,
20538 },
17231 .patterns = &.{20539 .patterns = &.{
17232 .{ .src = .{ .to_mut_gpr, .mem, .none } },20540 .{ .src = .{ .to_mem, .to_mem, .none } },
17233 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17234 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17235 },20541 },
17236 .dst_temps = .{ .{ .ref = .src0 }, .unused },20542 .extra_temps = .{
20543 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20544 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
20545 .unused,
20546 .unused,
20547 .unused,
20548 .unused,
20549 .unused,
20550 .unused,
20551 .unused,
20552 .unused,
20553 .unused,
20554 },
20555 .dst_temps = .{ .mem, .unused },
17237 .clobbers = .{ .eflags = true },20556 .clobbers = .{ .eflags = true },
17238 .each = .{ .once = &.{20557 .each = .{ .once = &.{
17239 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },20558 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17240 .{ ._, ._b, .cmov, .dst0q, .src1q, ._, ._ },20559 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20560 .{ ._, .vp_b, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
20561 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20562 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20563 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17241 } },20564 } },
17242 }, .{20565 }, .{
17243 .required_features = .{ .@"64bit", null, null, null },20566 .required_features = .{ .sse2, null, null, null },
17244 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },20567 .src_constraints = .{
20568 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20569 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
20570 .any,
20571 },
17245 .patterns = &.{20572 .patterns = &.{
17246 .{ .src = .{ .to_mut_gpr, .mem, .none } },20573 .{ .src = .{ .to_mem, .to_mem, .none } },
17247 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
17248 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
17249 },20574 },
17250 .dst_temps = .{ .{ .ref = .src0 }, .unused },20575 .extra_temps = .{
20576 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20577 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
20578 .unused,
20579 .unused,
20580 .unused,
20581 .unused,
20582 .unused,
20583 .unused,
20584 .unused,
20585 .unused,
20586 .unused,
20587 },
20588 .dst_temps = .{ .mem, .unused },
17251 .clobbers = .{ .eflags = true },20589 .clobbers = .{ .eflags = true },
17252 .each = .{ .once = &.{20590 .each = .{ .once = &.{
17253 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },20591 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17254 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },20592 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17255 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },20593 .{ ._, .p_b, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20594 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20595 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20596 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17256 } },20597 } },
17257 }, .{20598 }, .{
17258 .required_features = .{ .@"64bit", .cmov, null, null },20599 .required_features = .{ .cmov, .slow_incdec, null, null },
17259 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },20600 .src_constraints = .{
20601 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20602 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20603 .any,
20604 },
17260 .patterns = &.{20605 .patterns = &.{
17261 .{ .src = .{ .to_mem, .to_mem, .none } },20606 .{ .src = .{ .to_mem, .to_mem, .none } },
17262 },20607 },
17263 .extra_temps = .{20608 .extra_temps = .{
17264 .{ .type = .isize, .kind = .{ .reg = .rsi } },20609 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17265 .{ .type = .u64, .kind = .{ .reg = .rdi } },20610 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17266 .{ .type = .u64, .kind = .{ .reg = .rcx } },20611 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17267 .unused,20612 .unused,
17268 .unused,20613 .unused,
17269 .unused,20614 .unused,
...@@ -17276,31 +20621,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17276,31 +20621,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17276 .dst_temps = .{ .mem, .unused },20621 .dst_temps = .{ .mem, .unused },
17277 .clobbers = .{ .eflags = true },20622 .clobbers = .{ .eflags = true },
17278 .each = .{ .once = &.{20623 .each = .{ .once = &.{
17279 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },20624 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17280 .{ ._, ._c, .cl, ._, ._, ._, ._ },20625 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17281 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },20626 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17282 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },20627 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
17283 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },20628 .{ ._, ._b, .cmov, .tmp1d, .tmp2d, ._, ._ },
17284 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },20629 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17285 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },20630 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
17286 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },20631 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17287 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
17288 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
17289 .{ ._, ._l, .cmov, .tmp0p, .tmp1p, ._, ._ },
17290 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
17291 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
17292 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
17293 } },20632 } },
17294 }, .{20633 }, .{
17295 .required_features = .{ .@"64bit", null, null, null },20634 .required_features = .{ .cmov, null, null, null },
17296 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },20635 .src_constraints = .{
20636 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20637 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20638 .any,
20639 },
17297 .patterns = &.{20640 .patterns = &.{
17298 .{ .src = .{ .to_mem, .to_mem, .none } },20641 .{ .src = .{ .to_mem, .to_mem, .none } },
17299 },20642 },
17300 .extra_temps = .{20643 .extra_temps = .{
17301 .{ .type = .isize, .kind = .{ .reg = .rsi } },20644 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17302 .{ .type = .u64, .kind = .{ .reg = .rdi } },20645 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17303 .{ .type = .u64, .kind = .{ .reg = .rcx } },20646 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17304 .unused,20647 .unused,
17305 .unused,20648 .unused,
17306 .unused,20649 .unused,
...@@ -17313,31 +20656,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17313,31 +20656,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17313 .dst_temps = .{ .mem, .unused },20656 .dst_temps = .{ .mem, .unused },
17314 .clobbers = .{ .eflags = true },20657 .clobbers = .{ .eflags = true },
17315 .each = .{ .once = &.{20658 .each = .{ .once = &.{
17316 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },20659 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17317 .{ ._, ._c, .cl, ._, ._, ._, ._ },20660 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17318 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },20661 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17319 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },20662 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
20663 .{ ._, ._b, .cmov, .tmp1d, .tmp2d, ._, ._ },
20664 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17320 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },20665 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
17321 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },20666 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17322 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
17323 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
17324 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
17325 .{ ._, ._nl, .j, .@"0f", ._, ._, ._ },
17326 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
17327 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
17328 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
17329 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
17330 } },20667 } },
17331 }, .{20668 }, .{
17332 .required_features = .{ .@"64bit", .cmov, null, null },20669 .required_features = .{ .slow_incdec, null, null, null },
17333 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },20670 .src_constraints = .{
20671 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20672 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20673 .any,
20674 },
17334 .patterns = &.{20675 .patterns = &.{
17335 .{ .src = .{ .to_mem, .to_mem, .none } },20676 .{ .src = .{ .to_mem, .to_mem, .none } },
17336 },20677 },
17337 .extra_temps = .{20678 .extra_temps = .{
17338 .{ .type = .isize, .kind = .{ .reg = .rsi } },20679 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17339 .{ .type = .u64, .kind = .{ .reg = .rdi } },20680 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17340 .{ .type = .u64, .kind = .{ .reg = .rcx } },20681 .unused,
17341 .unused,20682 .unused,
17342 .unused,20683 .unused,
17343 .unused,20684 .unused,
...@@ -17350,29 +20691,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17350,29 +20691,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17350 .dst_temps = .{ .mem, .unused },20691 .dst_temps = .{ .mem, .unused },
17351 .clobbers = .{ .eflags = true },20692 .clobbers = .{ .eflags = true },
17352 .each = .{ .once = &.{20693 .each = .{ .once = &.{
17353 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },20694 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17354 .{ ._, ._c, .cl, ._, ._, ._, ._ },20695 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17355 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },20696 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17356 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },20697 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
17357 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },20698 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17358 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },20699 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17359 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },20700 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
17360 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },20701 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17361 .{ ._, ._b, .cmov, .tmp0p, .tmp1p, ._, ._ },
17362 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
17363 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
17364 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
17365 } },20702 } },
17366 }, .{20703 }, .{
17367 .required_features = .{ .@"64bit", null, null, null },20704 .src_constraints = .{
17368 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },20705 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20706 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
20707 .any,
20708 },
17369 .patterns = &.{20709 .patterns = &.{
17370 .{ .src = .{ .to_mem, .to_mem, .none } },20710 .{ .src = .{ .to_mem, .to_mem, .none } },
17371 },20711 },
17372 .extra_temps = .{20712 .extra_temps = .{
17373 .{ .type = .isize, .kind = .{ .reg = .rsi } },20713 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17374 .{ .type = .u64, .kind = .{ .reg = .rdi } },20714 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17375 .{ .type = .u64, .kind = .{ .reg = .rcx } },20715 .unused,
17376 .unused,20716 .unused,
17377 .unused,20717 .unused,
17378 .unused,20718 .unused,
...@@ -17385,56 +20725,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17385,56 +20725,52 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17385 .dst_temps = .{ .mem, .unused },20725 .dst_temps = .{ .mem, .unused },
17386 .clobbers = .{ .eflags = true },20726 .clobbers = .{ .eflags = true },
17387 .each = .{ .once = &.{20727 .each = .{ .once = &.{
17388 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },20728 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17389 .{ ._, ._c, .cl, ._, ._, ._, ._ },20729 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17390 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },20730 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17391 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },20731 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
20732 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20733 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17392 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },20734 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
17393 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },20735 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17394 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
17395 .{ ._, ._nb, .j, .@"0f", ._, ._, ._ },
17396 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
17397 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
17398 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
17399 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
17400 } },20736 } },
17401 }, .{20737 }, .{
17402 .required_features = .{ .avx, null, null, null },20738 .required_features = .{ .sse, .mmx, null, null },
17403 .src_constraints = .{20739 .src_constraints = .{
17404 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20740 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
17405 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20741 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
17406 .any,20742 .any,
17407 },20743 },
17408 .patterns = &.{20744 .patterns = &.{
17409 .{ .src = .{ .to_sse, .mem, .none } },20745 .{ .src = .{ .to_mut_mmx, .mem, .none } },
17410 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },20746 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },
17411 .{ .src = .{ .to_sse, .to_sse, .none } },20747 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },
17412 },20748 },
17413 .dst_temps = .{ .{ .rc = .sse }, .unused },20749 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17414 .each = .{ .once = &.{20750 .each = .{ .once = &.{
17415 .{ ._, .vp_b, .maxs, .dst0x, .src0x, .src1x, ._ },20751 .{ ._, .p_w, .maxs, .dst0q, .src1q, ._, ._ },
17416 } },20752 } },
17417 }, .{20753 }, .{
17418 .required_features = .{ .sse4_1, null, null, null },20754 .required_features = .{ .avx, null, null, null },
17419 .src_constraints = .{20755 .src_constraints = .{
17420 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20756 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
17421 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20757 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
17422 .any,20758 .any,
17423 },20759 },
17424 .patterns = &.{20760 .patterns = &.{
17425 .{ .src = .{ .to_mut_sse, .mem, .none } },20761 .{ .src = .{ .to_sse, .mem, .none } },
17426 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },20762 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
17427 .{ .src = .{ .to_mut_sse, .to_sse, .none } },20763 .{ .src = .{ .to_sse, .to_sse, .none } },
17428 },20764 },
17429 .dst_temps = .{ .{ .ref = .src0 }, .unused },20765 .dst_temps = .{ .{ .rc = .sse }, .unused },
17430 .each = .{ .once = &.{20766 .each = .{ .once = &.{
17431 .{ ._, .p_b, .maxs, .dst0x, .src1x, ._, ._ },20767 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .src1x, ._ },
17432 } },20768 } },
17433 }, .{20769 }, .{
17434 .required_features = .{ .sse2, null, null, null },20770 .required_features = .{ .sse2, null, null, null },
17435 .src_constraints = .{20771 .src_constraints = .{
17436 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20772 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
17437 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },20773 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
17438 .any,20774 .any,
17439 },20775 },
17440 .patterns = &.{20776 .patterns = &.{
...@@ -17442,19 +20778,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17442,19 +20778,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17442 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },20778 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
17443 .{ .src = .{ .to_mut_sse, .to_sse, .none } },20779 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17444 },20780 },
17445 .dst_temps = .{ .{ .rc = .sse }, .unused },20781 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17446 .each = .{ .once = &.{20782 .each = .{ .once = &.{
17447 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },20783 .{ ._, .p_w, .maxs, .dst0x, .src1x, ._, ._ },
17448 .{ ._, .p_b, .cmpgt, .dst0x, .src1x, ._, ._ },
17449 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
17450 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
17451 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
17452 } },20784 } },
17453 }, .{20785 }, .{
17454 .required_features = .{ .avx2, null, null, null },20786 .required_features = .{ .avx2, null, null, null },
17455 .src_constraints = .{20787 .src_constraints = .{
17456 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },20788 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },
17457 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },20789 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },
17458 .any,20790 .any,
17459 },20791 },
17460 .patterns = &.{20792 .patterns = &.{
...@@ -17464,13 +20796,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17464,13 +20796,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17464 },20796 },
17465 .dst_temps = .{ .{ .rc = .sse }, .unused },20797 .dst_temps = .{ .{ .rc = .sse }, .unused },
17466 .each = .{ .once = &.{20798 .each = .{ .once = &.{
17467 .{ ._, .vp_b, .maxs, .dst0y, .src0y, .src1y, ._ },20799 .{ ._, .vp_w, .maxs, .dst0y, .src0y, .src1y, ._ },
17468 } },20800 } },
17469 }, .{20801 }, .{
17470 .required_features = .{ .avx2, null, null, null },20802 .required_features = .{ .avx2, null, null, null },
17471 .src_constraints = .{20803 .src_constraints = .{
17472 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },20804 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },
17473 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },20805 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },
17474 .any,20806 .any,
17475 },20807 },
17476 .patterns = &.{20808 .patterns = &.{
...@@ -17478,7 +20810,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17478,7 +20810,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17478 },20810 },
17479 .extra_temps = .{20811 .extra_temps = .{
17480 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },20812 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17481 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },20813 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
17482 .unused,20814 .unused,
17483 .unused,20815 .unused,
17484 .unused,20816 .unused,
...@@ -17494,7 +20826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17494,7 +20826,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17494 .each = .{ .once = &.{20826 .each = .{ .once = &.{
17495 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },20827 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17496 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },20828 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
17497 .{ ._, .vp_b, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },20829 .{ ._, .vp_w, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
17498 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },20830 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
17499 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },20831 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
17500 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },20832 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -17502,8 +20834,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17502,8 +20834,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17502 }, .{20834 }, .{
17503 .required_features = .{ .avx, null, null, null },20835 .required_features = .{ .avx, null, null, null },
17504 .src_constraints = .{20836 .src_constraints = .{
17505 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },20837 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
17506 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },20838 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
17507 .any,20839 .any,
17508 },20840 },
17509 .patterns = &.{20841 .patterns = &.{
...@@ -17511,7 +20843,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17511,7 +20843,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17511 },20843 },
17512 .extra_temps = .{20844 .extra_temps = .{
17513 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },20845 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17514 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },20846 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
17515 .unused,20847 .unused,
17516 .unused,20848 .unused,
17517 .unused,20849 .unused,
...@@ -17527,16 +20859,182 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17527,16 +20859,182 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17527 .each = .{ .once = &.{20859 .each = .{ .once = &.{
17528 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },20860 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17529 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },20861 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17530 .{ ._, .vp_b, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },20862 .{ ._, .vp_w, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
17531 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },20863 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17532 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },20864 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17533 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },20865 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17534 } },20866 } },
20867 }, .{
20868 .required_features = .{ .sse2, null, null, null },
20869 .src_constraints = .{
20870 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
20871 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
20872 .any,
20873 },
20874 .patterns = &.{
20875 .{ .src = .{ .to_mem, .to_mem, .none } },
20876 },
20877 .extra_temps = .{
20878 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20879 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
20880 .unused,
20881 .unused,
20882 .unused,
20883 .unused,
20884 .unused,
20885 .unused,
20886 .unused,
20887 .unused,
20888 .unused,
20889 },
20890 .dst_temps = .{ .mem, .unused },
20891 .clobbers = .{ .eflags = true },
20892 .each = .{ .once = &.{
20893 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20894 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20895 .{ ._, .p_w, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20896 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20897 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20898 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20899 } },
20900 }, .{
20901 .required_features = .{ .cmov, null, null, null },
20902 .src_constraints = .{
20903 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
20904 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
20905 .any,
20906 },
20907 .patterns = &.{
20908 .{ .src = .{ .to_mem, .to_mem, .none } },
20909 },
20910 .extra_temps = .{
20911 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20912 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
20913 .unused,
20914 .unused,
20915 .unused,
20916 .unused,
20917 .unused,
20918 .unused,
20919 .unused,
20920 .unused,
20921 .unused,
20922 },
20923 .dst_temps = .{ .mem, .unused },
20924 .clobbers = .{ .eflags = true },
20925 .each = .{ .once = &.{
20926 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20927 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
20928 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
20929 .{ ._, ._l, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
20930 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
20931 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
20932 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20933 } },
20934 }, .{
20935 .src_constraints = .{
20936 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
20937 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
20938 .any,
20939 },
20940 .patterns = &.{
20941 .{ .src = .{ .to_mem, .to_mem, .none } },
20942 },
20943 .extra_temps = .{
20944 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20945 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
20946 .unused,
20947 .unused,
20948 .unused,
20949 .unused,
20950 .unused,
20951 .unused,
20952 .unused,
20953 .unused,
20954 .unused,
20955 },
20956 .dst_temps = .{ .mem, .unused },
20957 .clobbers = .{ .eflags = true },
20958 .each = .{ .once = &.{
20959 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20960 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
20961 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
20962 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
20963 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
20964 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
20965 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
20966 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20967 } },
20968 }, .{
20969 .required_features = .{ .avx, null, null, null },
20970 .src_constraints = .{
20971 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
20972 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
20973 .any,
20974 },
20975 .patterns = &.{
20976 .{ .src = .{ .to_sse, .mem, .none } },
20977 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
20978 .{ .src = .{ .to_sse, .to_sse, .none } },
20979 },
20980 .dst_temps = .{ .{ .rc = .sse }, .unused },
20981 .each = .{ .once = &.{
20982 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .src1x, ._ },
20983 } },
17535 }, .{20984 }, .{
17536 .required_features = .{ .sse4_1, null, null, null },20985 .required_features = .{ .sse4_1, null, null, null },
17537 .src_constraints = .{20986 .src_constraints = .{
17538 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },20987 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17539 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },20988 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
20989 .any,
20990 },
20991 .patterns = &.{
20992 .{ .src = .{ .to_mut_sse, .mem, .none } },
20993 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
20994 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
20995 },
20996 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20997 .each = .{ .once = &.{
20998 .{ ._, .p_w, .maxu, .dst0x, .src1x, ._, ._ },
20999 } },
21000 }, .{
21001 .required_features = .{ .sse2, null, null, null },
21002 .src_constraints = .{
21003 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21004 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21005 .any,
21006 },
21007 .patterns = &.{
21008 .{ .src = .{ .to_mut_sse, .mem, .none } },
21009 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
21010 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
21011 },
21012 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21013 .each = .{ .once = &.{
21014 .{ ._, .p_w, .subus, .dst0x, .src1x, ._, ._ },
21015 .{ ._, .p_w, .add, .dst0x, .src1x, ._, ._ },
21016 } },
21017 }, .{
21018 .required_features = .{ .avx2, null, null, null },
21019 .src_constraints = .{
21020 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21021 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21022 .any,
21023 },
21024 .patterns = &.{
21025 .{ .src = .{ .to_sse, .mem, .none } },
21026 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
21027 .{ .src = .{ .to_sse, .to_sse, .none } },
21028 },
21029 .dst_temps = .{ .{ .rc = .sse }, .unused },
21030 .each = .{ .once = &.{
21031 .{ ._, .vp_w, .maxu, .dst0y, .src0y, .src1y, ._ },
21032 } },
21033 }, .{
21034 .required_features = .{ .avx2, null, null, null },
21035 .src_constraints = .{
21036 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21037 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
17540 .any,21038 .any,
17541 },21039 },
17542 .patterns = &.{21040 .patterns = &.{
...@@ -17544,7 +21042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17544,7 +21042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17544 },21042 },
17545 .extra_temps = .{21043 .extra_temps = .{
17546 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21044 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17547 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },21045 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
17548 .unused,21046 .unused,
17549 .unused,21047 .unused,
17550 .unused,21048 .unused,
...@@ -17559,17 +21057,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17559,17 +21057,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17559 .clobbers = .{ .eflags = true },21057 .clobbers = .{ .eflags = true },
17560 .each = .{ .once = &.{21058 .each = .{ .once = &.{
17561 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21059 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17562 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21060 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
17563 .{ ._, .p_b, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21061 .{ ._, .vp_w, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
17564 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21062 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
17565 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21063 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
17566 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21064 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17567 } },21065 } },
17568 }, .{21066 }, .{
17569 .required_features = .{ .sse2, null, null, null },21067 .required_features = .{ .avx, null, null, null },
17570 .src_constraints = .{21068 .src_constraints = .{
17571 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },21069 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17572 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },21070 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17573 .any,21071 .any,
17574 },21072 },
17575 .patterns = &.{21073 .patterns = &.{
...@@ -17577,8 +21075,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17577,8 +21075,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17577 },21075 },
17578 .extra_temps = .{21076 .extra_temps = .{
17579 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21077 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17580 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },21078 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
17581 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },21079 .unused,
17582 .unused,21080 .unused,
17583 .unused,21081 .unused,
17584 .unused,21082 .unused,
...@@ -17592,21 +21090,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17592,21 +21090,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17592 .clobbers = .{ .eflags = true },21090 .clobbers = .{ .eflags = true },
17593 .each = .{ .once = &.{21091 .each = .{ .once = &.{
17594 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21092 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17595 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21093 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17596 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },21094 .{ ._, .vp_w, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
17597 .{ ._, .p_b, .cmpgt, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21095 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17598 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
17599 .{ ._, .p_, .andn, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17600 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
17601 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17602 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21096 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17603 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21097 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17604 } },21098 } },
17605 }, .{21099 }, .{
17606 .required_features = .{ .cmov, .slow_incdec, null, null },21100 .required_features = .{ .sse4_1, null, null, null },
17607 .src_constraints = .{21101 .src_constraints = .{
17608 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21102 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17609 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21103 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17610 .any,21104 .any,
17611 },21105 },
17612 .patterns = &.{21106 .patterns = &.{
...@@ -17614,8 +21108,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17614,8 +21108,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17614 },21108 },
17615 .extra_temps = .{21109 .extra_temps = .{
17616 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21110 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17617 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21111 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
17618 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21112 .unused,
17619 .unused,21113 .unused,
17620 .unused,21114 .unused,
17621 .unused,21115 .unused,
...@@ -17629,19 +21123,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17629,19 +21123,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17629 .clobbers = .{ .eflags = true },21123 .clobbers = .{ .eflags = true },
17630 .each = .{ .once = &.{21124 .each = .{ .once = &.{
17631 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21125 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17632 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21126 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17633 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },21127 .{ ._, .p_w, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17634 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },21128 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17635 .{ ._, ._l, .cmov, .tmp1d, .tmp2d, ._, ._ },21129 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17636 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17637 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
17638 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21130 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17639 } },21131 } },
17640 }, .{21132 }, .{
17641 .required_features = .{ .cmov, null, null, null },21133 .required_features = .{ .sse2, null, null, null },
17642 .src_constraints = .{21134 .src_constraints = .{
17643 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21135 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17644 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21136 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
17645 .any,21137 .any,
17646 },21138 },
17647 .patterns = &.{21139 .patterns = &.{
...@@ -17649,8 +21141,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17649,8 +21141,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17649 },21141 },
17650 .extra_temps = .{21142 .extra_temps = .{
17651 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21143 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17652 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21144 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
17653 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21145 .unused,
17654 .unused,21146 .unused,
17655 .unused,21147 .unused,
17656 .unused,21148 .unused,
...@@ -17664,19 +21156,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17664,19 +21156,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17664 .clobbers = .{ .eflags = true },21156 .clobbers = .{ .eflags = true },
17665 .each = .{ .once = &.{21157 .each = .{ .once = &.{
17666 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21158 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17667 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21159 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17668 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },21160 .{ ._, .p_w, .subus, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17669 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },21161 .{ ._, .p_w, .add, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17670 .{ ._, ._l, .cmov, .tmp1d, .tmp2d, ._, ._ },21162 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17671 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21163 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17672 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },21164 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17673 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17674 } },21165 } },
17675 }, .{21166 }, .{
17676 .required_features = .{ .slow_incdec, null, null, null },21167 .required_features = .{ .cmov, null, null, null },
17677 .src_constraints = .{21168 .src_constraints = .{
17678 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21169 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
17679 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21170 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
17680 .any,21171 .any,
17681 },21172 },
17682 .patterns = &.{21173 .patterns = &.{
...@@ -17684,7 +21175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17684,7 +21175,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17684 },21175 },
17685 .extra_temps = .{21176 .extra_temps = .{
17686 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21177 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17687 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21178 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
17688 .unused,21179 .unused,
17689 .unused,21180 .unused,
17690 .unused,21181 .unused,
...@@ -17699,18 +21190,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17699,18 +21190,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17699 .clobbers = .{ .eflags = true },21190 .clobbers = .{ .eflags = true },
17700 .each = .{ .once = &.{21191 .each = .{ .once = &.{
17701 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21192 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17702 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21193 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
17703 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21194 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
17704 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },21195 .{ ._, ._b, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
17705 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21196 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
17706 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21197 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
17707 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
17708 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21198 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17709 } },21199 } },
17710 }, .{21200 }, .{
17711 .src_constraints = .{21201 .src_constraints = .{
17712 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21202 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
17713 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },21203 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
17714 .any,21204 .any,
17715 },21205 },
17716 .patterns = &.{21206 .patterns = &.{
...@@ -17718,7 +21208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17718,7 +21208,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17718 },21208 },
17719 .extra_temps = .{21209 .extra_temps = .{
17720 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21210 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17721 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },21211 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
17722 .unused,21212 .unused,
17723 .unused,21213 .unused,
17724 .unused,21214 .unused,
...@@ -17733,51 +21223,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17733,51 +21223,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17733 .clobbers = .{ .eflags = true },21223 .clobbers = .{ .eflags = true },
17734 .each = .{ .once = &.{21224 .each = .{ .once = &.{
17735 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21225 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17736 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21226 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
17737 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21227 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
17738 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },21228 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
17739 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21229 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
17740 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21230 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
17741 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },21231 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
17742 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },21232 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17743 } },21233 } },
17744 }, .{21234 }, .{
17745 .required_features = .{ .sse, .mmx, null, null },21235 .required_features = .{ .avx, null, null, null },
17746 .src_constraints = .{21236 .src_constraints = .{
17747 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },21237 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
17748 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },21238 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
17749 .any,21239 .any,
17750 },21240 },
17751 .patterns = &.{21241 .patterns = &.{
17752 .{ .src = .{ .to_mut_mmx, .mem, .none } },21242 .{ .src = .{ .to_sse, .mem, .none } },
17753 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },21243 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
17754 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },21244 .{ .src = .{ .to_sse, .to_sse, .none } },
17755 },21245 },
17756 .dst_temps = .{ .{ .ref = .src0 }, .unused },21246 .dst_temps = .{ .{ .rc = .sse }, .unused },
17757 .each = .{ .once = &.{21247 .each = .{ .once = &.{
17758 .{ ._, .p_b, .maxu, .dst0q, .src1q, ._, ._ },21248 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .src1x, ._ },
17759 } },21249 } },
17760 }, .{21250 }, .{
17761 .required_features = .{ .avx, null, null, null },21251 .required_features = .{ .sse4_1, null, null, null },
17762 .src_constraints = .{21252 .src_constraints = .{
17763 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21253 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
17764 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21254 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
17765 .any,21255 .any,
17766 },21256 },
17767 .patterns = &.{21257 .patterns = &.{
17768 .{ .src = .{ .to_sse, .mem, .none } },21258 .{ .src = .{ .to_mut_sse, .mem, .none } },
17769 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },21259 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
17770 .{ .src = .{ .to_sse, .to_sse, .none } },21260 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17771 },21261 },
17772 .dst_temps = .{ .{ .rc = .sse }, .unused },21262 .dst_temps = .{ .{ .ref = .src0 }, .unused },
17773 .each = .{ .once = &.{21263 .each = .{ .once = &.{
17774 .{ ._, .vp_b, .maxu, .dst0x, .src0x, .src1x, ._ },21264 .{ ._, .p_d, .maxs, .dst0x, .src1x, ._, ._ },
17775 } },21265 } },
17776 }, .{21266 }, .{
17777 .required_features = .{ .sse2, null, null, null },21267 .required_features = .{ .sse2, null, null, null },
17778 .src_constraints = .{21268 .src_constraints = .{
17779 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21269 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
17780 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21270 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
17781 .any,21271 .any,
17782 },21272 },
17783 .patterns = &.{21273 .patterns = &.{
...@@ -17785,15 +21275,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17785,15 +21275,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17785 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },21275 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
17786 .{ .src = .{ .to_mut_sse, .to_sse, .none } },21276 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
17787 },21277 },
17788 .dst_temps = .{ .{ .ref = .src0 }, .unused },21278 .dst_temps = .{ .{ .rc = .sse }, .unused },
17789 .each = .{ .once = &.{21279 .each = .{ .once = &.{
17790 .{ ._, .p_b, .maxu, .dst0x, .src1x, ._, ._ },21280 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },
21281 .{ ._, .p_d, .cmpgt, .dst0x, .src1x, ._, ._ },
21282 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
21283 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
21284 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
17791 } },21285 } },
17792 }, .{21286 }, .{
17793 .required_features = .{ .avx2, null, null, null },21287 .required_features = .{ .avx2, null, null, null },
17794 .src_constraints = .{21288 .src_constraints = .{
17795 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },21289 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
17796 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },21290 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
17797 .any,21291 .any,
17798 },21292 },
17799 .patterns = &.{21293 .patterns = &.{
...@@ -17803,13 +21297,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17803,13 +21297,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17803 },21297 },
17804 .dst_temps = .{ .{ .rc = .sse }, .unused },21298 .dst_temps = .{ .{ .rc = .sse }, .unused },
17805 .each = .{ .once = &.{21299 .each = .{ .once = &.{
17806 .{ ._, .vp_b, .maxu, .dst0y, .src0y, .src1y, ._ },21300 .{ ._, .vp_d, .maxs, .dst0y, .src0y, .src1y, ._ },
17807 } },21301 } },
17808 }, .{21302 }, .{
17809 .required_features = .{ .avx2, null, null, null },21303 .required_features = .{ .avx2, null, null, null },
17810 .src_constraints = .{21304 .src_constraints = .{
17811 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },21305 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
17812 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },21306 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
17813 .any,21307 .any,
17814 },21308 },
17815 .patterns = &.{21309 .patterns = &.{
...@@ -17817,7 +21311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17817,7 +21311,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17817 },21311 },
17818 .extra_temps = .{21312 .extra_temps = .{
17819 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21313 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17820 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },21314 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
17821 .unused,21315 .unused,
17822 .unused,21316 .unused,
17823 .unused,21317 .unused,
...@@ -17833,7 +21327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17833,7 +21327,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17833 .each = .{ .once = &.{21327 .each = .{ .once = &.{
17834 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21328 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17835 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },21329 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
17836 .{ ._, .vp_b, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },21330 .{ ._, .vp_d, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
17837 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },21331 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
17838 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },21332 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
17839 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21333 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -17841,8 +21335,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17841,8 +21335,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17841 }, .{21335 }, .{
17842 .required_features = .{ .avx, null, null, null },21336 .required_features = .{ .avx, null, null, null },
17843 .src_constraints = .{21337 .src_constraints = .{
17844 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21338 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
17845 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21339 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
17846 .any,21340 .any,
17847 },21341 },
17848 .patterns = &.{21342 .patterns = &.{
...@@ -17850,7 +21344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17850,7 +21344,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17850 },21344 },
17851 .extra_temps = .{21345 .extra_temps = .{
17852 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21346 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17853 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },21347 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
17854 .unused,21348 .unused,
17855 .unused,21349 .unused,
17856 .unused,21350 .unused,
...@@ -17866,16 +21360,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17866,16 +21360,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17866 .each = .{ .once = &.{21360 .each = .{ .once = &.{
17867 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21361 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17868 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21362 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17869 .{ ._, .vp_b, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },21363 .{ ._, .vp_d, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
17870 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21364 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17871 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21365 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17872 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21366 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17873 } },21367 } },
17874 }, .{21368 }, .{
17875 .required_features = .{ .sse2, null, null, null },21369 .required_features = .{ .sse4_1, null, null, null },
17876 .src_constraints = .{21370 .src_constraints = .{
17877 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21371 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
17878 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },21372 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
17879 .any,21373 .any,
17880 },21374 },
17881 .patterns = &.{21375 .patterns = &.{
...@@ -17883,7 +21377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17883,7 +21377,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17883 },21377 },
17884 .extra_temps = .{21378 .extra_temps = .{
17885 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21379 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17886 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },21380 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
17887 .unused,21381 .unused,
17888 .unused,21382 .unused,
17889 .unused,21383 .unused,
...@@ -17899,16 +21393,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17899,16 +21393,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17899 .each = .{ .once = &.{21393 .each = .{ .once = &.{
17900 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21394 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17901 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21395 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17902 .{ ._, .p_b, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21396 .{ ._, .p_d, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17903 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21397 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
17904 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21398 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17905 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21399 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17906 } },21400 } },
17907 }, .{21401 }, .{
17908 .required_features = .{ .cmov, .slow_incdec, null, null },21402 .required_features = .{ .sse2, null, null, null },
17909 .src_constraints = .{21403 .src_constraints = .{
17910 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21404 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
17911 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21405 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
17912 .any,21406 .any,
17913 },21407 },
17914 .patterns = &.{21408 .patterns = &.{
...@@ -17916,8 +21410,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17916,8 +21410,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17916 },21410 },
17917 .extra_temps = .{21411 .extra_temps = .{
17918 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21412 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17919 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },21413 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
17920 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },21414 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
17921 .unused,21415 .unused,
17922 .unused,21416 .unused,
17923 .unused,21417 .unused,
...@@ -17931,54 +21425,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17931,54 +21425,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17931 .clobbers = .{ .eflags = true },21425 .clobbers = .{ .eflags = true },
17932 .each = .{ .once = &.{21426 .each = .{ .once = &.{
17933 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21427 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17934 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21428 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
17935 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },21429 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
17936 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },21430 .{ ._, .p_d, .cmpgt, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17937 .{ ._, ._b, .cmov, .tmp1d, .tmp2d, ._, ._ },21431 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
17938 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21432 .{ ._, .p_, .andn, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
17939 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },21433 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
21434 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21435 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
17940 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21436 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
17941 } },21437 } },
17942 }, .{21438 }, .{
17943 .required_features = .{ .cmov, null, null, null },21439 .required_features = .{ .cmov, null, null, null },
17944 .src_constraints = .{21440 .src_constraints = .{
17945 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21441 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
17946 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21442 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
17947 .any,
17948 },
17949 .patterns = &.{
17950 .{ .src = .{ .to_mem, .to_mem, .none } },
17951 },
17952 .extra_temps = .{
17953 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17954 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17955 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
17956 .unused,
17957 .unused,
17958 .unused,
17959 .unused,
17960 .unused,
17961 .unused,
17962 .unused,
17963 .unused,
17964 },
17965 .dst_temps = .{ .mem, .unused },
17966 .clobbers = .{ .eflags = true },
17967 .each = .{ .once = &.{
17968 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
17969 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
17970 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
17971 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
17972 .{ ._, ._b, .cmov, .tmp1d, .tmp2d, ._, ._ },
17973 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
17974 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
17975 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
17976 } },
17977 }, .{
17978 .required_features = .{ .slow_incdec, null, null, null },
17979 .src_constraints = .{
17980 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
17981 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
17982 .any,21443 .any,
17983 },21444 },
17984 .patterns = &.{21445 .patterns = &.{
...@@ -17986,7 +21447,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -17986,7 +21447,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
17986 },21447 },
17987 .extra_temps = .{21448 .extra_temps = .{
17988 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21449 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
17989 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },21450 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
17990 .unused,21451 .unused,
17991 .unused,21452 .unused,
17992 .unused,21453 .unused,
...@@ -18001,18 +21462,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18001,18 +21462,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18001 .clobbers = .{ .eflags = true },21462 .clobbers = .{ .eflags = true },
18002 .each = .{ .once = &.{21463 .each = .{ .once = &.{
18003 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21464 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18004 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21465 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
18005 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21466 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18006 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },21467 .{ ._, ._l, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18007 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21468 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
18008 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21469 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
18009 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
18010 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21470 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18011 } },21471 } },
18012 }, .{21472 }, .{
18013 .src_constraints = .{21473 .src_constraints = .{
18014 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21474 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
18015 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },21475 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
18016 .any,21476 .any,
18017 },21477 },
18018 .patterns = &.{21478 .patterns = &.{
...@@ -18020,7 +21480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18020,7 +21480,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18020 },21480 },
18021 .extra_temps = .{21481 .extra_temps = .{
18022 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21482 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18023 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },21483 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
18024 .unused,21484 .unused,
18025 .unused,21485 .unused,
18026 .unused,21486 .unused,
...@@ -18035,51 +21495,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18035,51 +21495,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18035 .clobbers = .{ .eflags = true },21495 .clobbers = .{ .eflags = true },
18036 .each = .{ .once = &.{21496 .each = .{ .once = &.{
18037 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21497 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18038 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },21498 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
18039 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21499 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18040 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },21500 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
18041 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },21501 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18042 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },21502 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
18043 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },21503 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
18044 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },21504 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18045 } },21505 } },
18046 }, .{21506 }, .{
18047 .required_features = .{ .sse, .mmx, null, null },21507 .required_features = .{ .avx, null, null, null },
18048 .src_constraints = .{21508 .src_constraints = .{
18049 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },21509 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18050 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },21510 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18051 .any,21511 .any,
18052 },21512 },
18053 .patterns = &.{21513 .patterns = &.{
18054 .{ .src = .{ .to_mut_mmx, .mem, .none } },21514 .{ .src = .{ .to_sse, .mem, .none } },
18055 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },21515 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18056 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },21516 .{ .src = .{ .to_sse, .to_sse, .none } },
18057 },21517 },
18058 .dst_temps = .{ .{ .ref = .src0 }, .unused },21518 .dst_temps = .{ .{ .rc = .sse }, .unused },
18059 .each = .{ .once = &.{21519 .each = .{ .once = &.{
18060 .{ ._, .p_w, .maxs, .dst0q, .src1q, ._, ._ },21520 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .src1x, ._ },
18061 } },21521 } },
18062 }, .{21522 }, .{
18063 .required_features = .{ .avx, null, null, null },21523 .required_features = .{ .sse4_1, null, null, null },
18064 .src_constraints = .{21524 .src_constraints = .{
18065 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },21525 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18066 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },21526 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18067 .any,21527 .any,
18068 },21528 },
18069 .patterns = &.{21529 .patterns = &.{
18070 .{ .src = .{ .to_sse, .mem, .none } },21530 .{ .src = .{ .to_mut_sse, .mem, .none } },
18071 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },21531 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18072 .{ .src = .{ .to_sse, .to_sse, .none } },21532 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18073 },21533 },
18074 .dst_temps = .{ .{ .rc = .sse }, .unused },21534 .dst_temps = .{ .{ .ref = .src0 }, .unused },
18075 .each = .{ .once = &.{21535 .each = .{ .once = &.{
18076 .{ ._, .vp_w, .maxs, .dst0x, .src0x, .src1x, ._ },21536 .{ ._, .p_d, .maxu, .dst0x, .src1x, ._, ._ },
18077 } },21537 } },
18078 }, .{21538 }, .{
18079 .required_features = .{ .sse2, null, null, null },21539 .required_features = .{ .sse2, null, null, null },
18080 .src_constraints = .{21540 .src_constraints = .{
18081 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },21541 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18082 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },21542 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
18083 .any,21543 .any,
18084 },21544 },
18085 .patterns = &.{21545 .patterns = &.{
...@@ -18087,15 +21547,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18087,15 +21547,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18087 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },21547 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18088 .{ .src = .{ .to_mut_sse, .to_sse, .none } },21548 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18089 },21549 },
18090 .dst_temps = .{ .{ .ref = .src0 }, .unused },21550 .extra_temps = .{
21551 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
21552 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },
21553 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21554 .unused,
21555 .unused,
21556 .unused,
21557 .unused,
21558 .unused,
21559 .unused,
21560 .unused,
21561 .unused,
21562 },
21563 .dst_temps = .{ .{ .rc = .sse }, .unused },
18091 .each = .{ .once = &.{21564 .each = .{ .once = &.{
18092 .{ ._, .p_w, .maxs, .dst0x, .src1x, ._, ._ },21565 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
21566 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
21567 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
21568 .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ },
21569 .{ ._, .p_, .xor, .tmp2x, .src1x, ._, ._ },
21570 .{ ._, .p_d, .cmpgt, .dst0x, .tmp2x, ._, ._ },
21571 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
21572 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
21573 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
18093 } },21574 } },
18094 }, .{21575 }, .{
18095 .required_features = .{ .avx2, null, null, null },21576 .required_features = .{ .avx2, null, null, null },
18096 .src_constraints = .{21577 .src_constraints = .{
18097 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },21578 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
18098 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },21579 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
18099 .any,21580 .any,
18100 },21581 },
18101 .patterns = &.{21582 .patterns = &.{
...@@ -18105,13 +21586,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18105,13 +21586,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18105 },21586 },
18106 .dst_temps = .{ .{ .rc = .sse }, .unused },21587 .dst_temps = .{ .{ .rc = .sse }, .unused },
18107 .each = .{ .once = &.{21588 .each = .{ .once = &.{
18108 .{ ._, .vp_w, .maxs, .dst0y, .src0y, .src1y, ._ },21589 .{ ._, .vp_d, .maxu, .dst0y, .src0y, .src1y, ._ },
18109 } },21590 } },
18110 }, .{21591 }, .{
18111 .required_features = .{ .avx2, null, null, null },21592 .required_features = .{ .avx2, null, null, null },
18112 .src_constraints = .{21593 .src_constraints = .{
18113 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },21594 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
18114 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },21595 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
18115 .any,21596 .any,
18116 },21597 },
18117 .patterns = &.{21598 .patterns = &.{
...@@ -18119,7 +21600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18119,7 +21600,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18119 },21600 },
18120 .extra_temps = .{21601 .extra_temps = .{
18121 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21602 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18122 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },21603 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
18123 .unused,21604 .unused,
18124 .unused,21605 .unused,
18125 .unused,21606 .unused,
...@@ -18135,7 +21616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18135,7 +21616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18135 .each = .{ .once = &.{21616 .each = .{ .once = &.{
18136 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21617 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18137 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },21618 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
18138 .{ ._, .vp_w, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },21619 .{ ._, .vp_d, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
18139 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },21620 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
18140 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },21621 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
18141 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21622 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -18143,8 +21624,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18143,8 +21624,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18143 }, .{21624 }, .{
18144 .required_features = .{ .avx, null, null, null },21625 .required_features = .{ .avx, null, null, null },
18145 .src_constraints = .{21626 .src_constraints = .{
18146 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },21627 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18147 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },21628 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18148 .any,21629 .any,
18149 },21630 },
18150 .patterns = &.{21631 .patterns = &.{
...@@ -18152,7 +21633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18152,7 +21633,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18152 },21633 },
18153 .extra_temps = .{21634 .extra_temps = .{
18154 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21635 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18155 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },21636 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
18156 .unused,21637 .unused,
18157 .unused,21638 .unused,
18158 .unused,21639 .unused,
...@@ -18168,16 +21649,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18168,16 +21649,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18168 .each = .{ .once = &.{21649 .each = .{ .once = &.{
18169 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21650 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18170 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21651 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
18171 .{ ._, .vp_w, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },21652 .{ ._, .vp_d, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
18172 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21653 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
18173 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21654 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18174 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21655 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18175 } },21656 } },
18176 }, .{21657 }, .{
18177 .required_features = .{ .sse2, null, null, null },21658 .required_features = .{ .sse4_1, null, null, null },
18178 .src_constraints = .{21659 .src_constraints = .{
18179 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },21660 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18180 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },21661 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
18181 .any,21662 .any,
18182 },21663 },
18183 .patterns = &.{21664 .patterns = &.{
...@@ -18185,7 +21666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18185,7 +21666,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18185 },21666 },
18186 .extra_temps = .{21667 .extra_temps = .{
18187 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21668 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18188 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },21669 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
18189 .unused,21670 .unused,
18190 .unused,21671 .unused,
18191 .unused,21672 .unused,
...@@ -18201,16 +21682,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18201,16 +21682,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18201 .each = .{ .once = &.{21682 .each = .{ .once = &.{
18202 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21683 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18203 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21684 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
18204 .{ ._, .p_w, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21685 .{ ._, .p_d, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
18205 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21686 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
18206 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21687 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18207 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21688 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18208 } },21689 } },
21690 }, .{
21691 .required_features = .{ .sse2, null, null, null },
21692 .src_constraints = .{
21693 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
21694 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
21695 .any,
21696 },
21697 .patterns = &.{
21698 .{ .src = .{ .to_mem, .to_mem, .none } },
21699 },
21700 .extra_temps = .{
21701 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21702 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },
21703 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21704 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21705 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21706 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21707 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
21708 .unused,
21709 .unused,
21710 .unused,
21711 .unused,
21712 },
21713 .dst_temps = .{ .mem, .unused },
21714 .clobbers = .{ .eflags = true },
21715 .each = .{ .once = &.{
21716 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
21717 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
21718 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21719 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21720 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21721 .{ ._, ._dqa, .mov, .tmp5x, .tmp3x, ._, ._ },
21722 .{ ._, ._dqa, .mov, .tmp6x, .tmp4x, ._, ._ },
21723 .{ ._, .p_, .xor, .tmp5x, .tmp2x, ._, ._ },
21724 .{ ._, .p_, .xor, .tmp6x, .tmp2x, ._, ._ },
21725 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp6x, ._, ._ },
21726 .{ ._, .p_, .@"and", .tmp3x, .tmp5x, ._, ._ },
21727 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
21728 .{ ._, .p_, .@"or", .tmp3x, .tmp5x, ._, ._ },
21729 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
21730 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21731 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21732 } },
18209 }, .{21733 }, .{
18210 .required_features = .{ .cmov, null, null, null },21734 .required_features = .{ .cmov, null, null, null },
18211 .src_constraints = .{21735 .src_constraints = .{
18212 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },21736 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
18213 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },21737 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
18214 .any,21738 .any,
18215 },21739 },
18216 .patterns = &.{21740 .patterns = &.{
...@@ -18218,7 +21742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18218,7 +21742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18218 },21742 },
18219 .extra_temps = .{21743 .extra_temps = .{
18220 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21744 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18221 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },21745 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
18222 .unused,21746 .unused,
18223 .unused,21747 .unused,
18224 .unused,21748 .unused,
...@@ -18233,17 +21757,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18233,17 +21757,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18233 .clobbers = .{ .eflags = true },21757 .clobbers = .{ .eflags = true },
18234 .each = .{ .once = &.{21758 .each = .{ .once = &.{
18235 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21759 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18236 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },21760 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
18237 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },21761 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18238 .{ ._, ._l, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },21762 .{ ._, ._b, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18239 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },21763 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
18240 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },21764 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
18241 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21765 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18242 } },21766 } },
18243 }, .{21767 }, .{
18244 .src_constraints = .{21768 .src_constraints = .{
18245 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },21769 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
18246 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },21770 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
18247 .any,21771 .any,
18248 },21772 },
18249 .patterns = &.{21773 .patterns = &.{
...@@ -18251,7 +21775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18251,7 +21775,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18251 },21775 },
18252 .extra_temps = .{21776 .extra_temps = .{
18253 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21777 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18254 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },21778 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
18255 .unused,21779 .unused,
18256 .unused,21780 .unused,
18257 .unused,21781 .unused,
...@@ -18266,35 +21790,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18266,35 +21790,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18266 .clobbers = .{ .eflags = true },21790 .clobbers = .{ .eflags = true },
18267 .each = .{ .once = &.{21791 .each = .{ .once = &.{
18268 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21792 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18269 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },21793 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
18270 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },21794 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18271 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },21795 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
18272 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },21796 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
18273 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },21797 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
18274 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },21798 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
18275 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21799 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18276 } },21800 } },
18277 }, .{21801 }, .{
18278 .required_features = .{ .avx, null, null, null },21802 .required_features = .{ .avx, null, null, null },
18279 .src_constraints = .{21803 .src_constraints = .{
18280 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21804 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18281 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21805 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18282 .any,21806 .any,
18283 },21807 },
18284 .patterns = &.{21808 .patterns = &.{
18285 .{ .src = .{ .to_sse, .mem, .none } },
18286 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18287 .{ .src = .{ .to_sse, .to_sse, .none } },21809 .{ .src = .{ .to_sse, .to_sse, .none } },
18288 },21810 },
18289 .dst_temps = .{ .{ .rc = .sse }, .unused },21811 .dst_temps = .{ .{ .rc = .sse }, .unused },
18290 .each = .{ .once = &.{21812 .each = .{ .once = &.{
18291 .{ ._, .vp_w, .maxu, .dst0x, .src0x, .src1x, ._ },21813 .{ ._, .vp_q, .cmpgt, .dst0x, .src1x, .src0x, ._ },
21814 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },
18292 } },21815 } },
18293 }, .{21816 }, .{
18294 .required_features = .{ .sse4_1, null, null, null },21817 .required_features = .{ .sse4_2, null, null, null },
18295 .src_constraints = .{21818 .src_constraints = .{
18296 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21819 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18297 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21820 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18298 .any,21821 .any,
18299 },21822 },
18300 .patterns = &.{21823 .patterns = &.{
...@@ -18302,48 +21825,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18302,48 +21825,45 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18302 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },21825 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18303 .{ .src = .{ .to_mut_sse, .to_sse, .none } },21826 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18304 },21827 },
18305 .dst_temps = .{ .{ .ref = .src0 }, .unused },21828 .extra_temps = .{
18306 .each = .{ .once = &.{21829 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
18307 .{ ._, .p_w, .maxu, .dst0x, .src1x, ._, ._ },21830 .unused,
18308 } },21831 .unused,
18309 }, .{21832 .unused,
18310 .required_features = .{ .sse2, null, null, null },21833 .unused,
18311 .src_constraints = .{21834 .unused,
18312 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21835 .unused,
18313 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },21836 .unused,
18314 .any,21837 .unused,
18315 },21838 .unused,
18316 .patterns = &.{21839 .unused,
18317 .{ .src = .{ .to_mut_sse, .mem, .none } },
18318 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18319 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18320 },21840 },
18321 .dst_temps = .{ .{ .ref = .src0 }, .unused },21841 .dst_temps = .{ .{ .ref = .src0 }, .unused },
18322 .each = .{ .once = &.{21842 .each = .{ .once = &.{
18323 .{ ._, .p_w, .subus, .dst0x, .src1x, ._, ._ },21843 .{ ._, ._dqa, .mov, .tmp0x, .src1x, ._, ._ },
18324 .{ ._, .p_w, .add, .dst0x, .src1x, ._, ._ },21844 .{ ._, .p_q, .cmpgt, .tmp0x, .src0x, ._, ._ },
21845 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp0x, ._ },
18325 } },21846 } },
18326 }, .{21847 }, .{
18327 .required_features = .{ .avx2, null, null, null },21848 .required_features = .{ .avx2, null, null, null },
18328 .src_constraints = .{21849 .src_constraints = .{
18329 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },21850 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
18330 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },21851 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
18331 .any,21852 .any,
18332 },21853 },
18333 .patterns = &.{21854 .patterns = &.{
18334 .{ .src = .{ .to_sse, .mem, .none } },
18335 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18336 .{ .src = .{ .to_sse, .to_sse, .none } },21855 .{ .src = .{ .to_sse, .to_sse, .none } },
18337 },21856 },
18338 .dst_temps = .{ .{ .rc = .sse }, .unused },21857 .dst_temps = .{ .{ .rc = .sse }, .unused },
18339 .each = .{ .once = &.{21858 .each = .{ .once = &.{
18340 .{ ._, .vp_w, .maxu, .dst0y, .src0y, .src1y, ._ },21859 .{ ._, .vp_q, .cmpgt, .dst0y, .src1y, .src0y, ._ },
21860 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
18341 } },21861 } },
18342 }, .{21862 }, .{
18343 .required_features = .{ .avx2, null, null, null },21863 .required_features = .{ .avx2, null, null, null },
18344 .src_constraints = .{21864 .src_constraints = .{
18345 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },21865 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
18346 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },21866 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
18347 .any,21867 .any,
18348 },21868 },
18349 .patterns = &.{21869 .patterns = &.{
...@@ -18351,9 +21871,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18351,9 +21871,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18351 },21871 },
18352 .extra_temps = .{21872 .extra_temps = .{
18353 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21873 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18354 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },21874 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
18355 .unused,21875 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
18356 .unused,21876 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
18357 .unused,21877 .unused,
18358 .unused,21878 .unused,
18359 .unused,21879 .unused,
...@@ -18367,7 +21887,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18367,7 +21887,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18367 .each = .{ .once = &.{21887 .each = .{ .once = &.{
18368 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21888 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18369 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },21889 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
18370 .{ ._, .vp_w, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },21890 .{ ._, .v_dqa, .mov, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
21891 .{ ._, .vp_q, .cmpgt, .tmp3y, .tmp2y, .tmp1y, ._ },
21892 .{ ._, .vp_b, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
18371 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },21893 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
18372 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },21894 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
18373 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21895 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -18375,8 +21897,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18375,8 +21897,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18375 }, .{21897 }, .{
18376 .required_features = .{ .avx, null, null, null },21898 .required_features = .{ .avx, null, null, null },
18377 .src_constraints = .{21899 .src_constraints = .{
18378 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21900 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18379 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21901 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18380 .any,21902 .any,
18381 },21903 },
18382 .patterns = &.{21904 .patterns = &.{
...@@ -18384,9 +21906,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18384,9 +21906,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18384 },21906 },
18385 .extra_temps = .{21907 .extra_temps = .{
18386 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21908 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18387 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },21909 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
18388 .unused,21910 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
18389 .unused,21911 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
18390 .unused,21912 .unused,
18391 .unused,21913 .unused,
18392 .unused,21914 .unused,
...@@ -18400,16 +21922,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18400,16 +21922,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18400 .each = .{ .once = &.{21922 .each = .{ .once = &.{
18401 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21923 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18402 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21924 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
18403 .{ ._, .vp_w, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },21925 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21926 .{ ._, .vp_q, .cmpgt, .tmp3x, .tmp2x, .tmp1x, ._ },
21927 .{ ._, .vp_b, .blendv, .tmp1x, .tmp1x, .tmp2x, .tmp3x },
18404 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21928 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
18405 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21929 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18406 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21930 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18407 } },21931 } },
18408 }, .{21932 }, .{
18409 .required_features = .{ .sse4_1, null, null, null },21933 .required_features = .{ .sse4_2, null, null, null },
18410 .src_constraints = .{21934 .src_constraints = .{
18411 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21935 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18412 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21936 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
18413 .any,21937 .any,
18414 },21938 },
18415 .patterns = &.{21939 .patterns = &.{
...@@ -18417,9 +21941,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18417,9 +21941,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18417 },21941 },
18418 .extra_temps = .{21942 .extra_temps = .{
18419 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21943 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18420 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },21944 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
18421 .unused,21945 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
18422 .unused,21946 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
18423 .unused,21947 .unused,
18424 .unused,21948 .unused,
18425 .unused,21949 .unused,
...@@ -18433,16 +21957,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18433,16 +21957,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18433 .each = .{ .once = &.{21957 .each = .{ .once = &.{
18434 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21958 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18435 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21959 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
18436 .{ ._, .p_w, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21960 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21961 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
21962 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp1x, ._, ._ },
21963 .{ ._, .p_b, .blendv, .tmp1x, .tmp2x, .tmp3x, ._ },
18437 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21964 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
18438 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21965 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18439 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },21966 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18440 } },21967 } },
18441 }, .{21968 }, .{
18442 .required_features = .{ .sse2, null, null, null },21969 .required_features = .{ .@"64bit", .cmov, null, null },
18443 .src_constraints = .{21970 .src_constraints = .{
18444 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21971 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
18445 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },21972 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
18446 .any,21973 .any,
18447 },21974 },
18448 .patterns = &.{21975 .patterns = &.{
...@@ -18450,7 +21977,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18450,7 +21977,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18450 },21977 },
18451 .extra_temps = .{21978 .extra_temps = .{
18452 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },21979 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18453 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },21980 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
18454 .unused,21981 .unused,
18455 .unused,21982 .unused,
18456 .unused,21983 .unused,
...@@ -18465,18 +21992,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18465,18 +21992,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18465 .clobbers = .{ .eflags = true },21992 .clobbers = .{ .eflags = true },
18466 .each = .{ .once = &.{21993 .each = .{ .once = &.{
18467 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },21994 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18468 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },21995 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
18469 .{ ._, .p_w, .subus, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21996 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18470 .{ ._, .p_w, .add, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },21997 .{ ._, ._l, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18471 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },21998 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
18472 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },21999 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
18473 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22000 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18474 } },22001 } },
18475 }, .{22002 }, .{
18476 .required_features = .{ .cmov, null, null, null },22003 .required_features = .{ .@"64bit", null, null, null },
18477 .src_constraints = .{22004 .src_constraints = .{
18478 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },22005 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
18479 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },22006 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
18480 .any,22007 .any,
18481 },22008 },
18482 .patterns = &.{22009 .patterns = &.{
...@@ -18484,7 +22011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18484,7 +22011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18484 },22011 },
18485 .extra_temps = .{22012 .extra_temps = .{
18486 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22013 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18487 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },22014 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
18488 .unused,22015 .unused,
18489 .unused,22016 .unused,
18490 .unused,22017 .unused,
...@@ -18499,26 +22026,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18499,26 +22026,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18499 .clobbers = .{ .eflags = true },22026 .clobbers = .{ .eflags = true },
18500 .each = .{ .once = &.{22027 .each = .{ .once = &.{
18501 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22028 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18502 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },22029 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
18503 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },22030 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18504 .{ ._, ._b, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },22031 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
18505 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },22032 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18506 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },22033 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22034 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
18507 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22035 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18508 } },22036 } },
18509 }, .{22037 }, .{
22038 .required_features = .{ .avx, null, null, null },
18510 .src_constraints = .{22039 .src_constraints = .{
18511 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },22040 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18512 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },22041 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18513 .any,22042 .any,
18514 },22043 },
18515 .patterns = &.{22044 .patterns = &.{
18516 .{ .src = .{ .to_mem, .to_mem, .none } },22045 .{ .src = .{ .to_sse, .mem, .none } },
22046 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
22047 .{ .src = .{ .to_sse, .to_sse, .none } },
18517 },22048 },
18518 .extra_temps = .{22049 .extra_temps = .{
18519 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22050 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
18520 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },22051 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
18521 .unused,22052 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
18522 .unused,22053 .unused,
18523 .unused,22054 .unused,
18524 .unused,22055 .unused,
...@@ -18528,39 +22059,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18528,39 +22059,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18528 .unused,22059 .unused,
18529 .unused,22060 .unused,
18530 },22061 },
18531 .dst_temps = .{ .mem, .unused },
18532 .clobbers = .{ .eflags = true },
18533 .each = .{ .once = &.{
18534 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18535 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
18536 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
18537 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
18538 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
18539 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
18540 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
18541 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18542 } },
18543 }, .{
18544 .required_features = .{ .avx, null, null, null },
18545 .src_constraints = .{
18546 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
18547 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
18548 .any,
18549 },
18550 .patterns = &.{
18551 .{ .src = .{ .to_sse, .mem, .none } },
18552 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18553 .{ .src = .{ .to_sse, .to_sse, .none } },
18554 },
18555 .dst_temps = .{ .{ .rc = .sse }, .unused },22062 .dst_temps = .{ .{ .rc = .sse }, .unused },
18556 .each = .{ .once = &.{22063 .each = .{ .once = &.{
18557 .{ ._, .vp_d, .maxs, .dst0x, .src0x, .src1x, ._ },22064 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22065 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
22066 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
22067 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },
22068 .{ ._, .vp_q, .cmpgt, .dst0x, .tmp2x, .dst0x, ._ },
22069 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },
18558 } },22070 } },
18559 }, .{22071 }, .{
18560 .required_features = .{ .sse4_1, null, null, null },22072 .required_features = .{ .sse4_2, null, null, null },
18561 .src_constraints = .{22073 .src_constraints = .{
18562 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },22074 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18563 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },22075 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18564 .any,22076 .any,
18565 },22077 },
18566 .patterns = &.{22078 .patterns = &.{
...@@ -18568,35 +22080,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18568,35 +22080,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18568 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },22080 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18569 .{ .src = .{ .to_mut_sse, .to_sse, .none } },22081 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18570 },22082 },
18571 .dst_temps = .{ .{ .ref = .src0 }, .unused },22083 .extra_temps = .{
18572 .each = .{ .once = &.{22084 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
18573 .{ ._, .p_d, .maxs, .dst0x, .src1x, ._, ._ },22085 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
18574 } },22086 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
18575 }, .{22087 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
18576 .required_features = .{ .sse2, null, null, null },22088 .unused,
18577 .src_constraints = .{22089 .unused,
18578 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },22090 .unused,
18579 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },22091 .unused,
18580 .any,22092 .unused,
18581 },22093 .unused,
18582 .patterns = &.{22094 .unused,
18583 .{ .src = .{ .to_mut_sse, .mem, .none } },
18584 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
18585 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
18586 },22095 },
18587 .dst_temps = .{ .{ .rc = .sse }, .unused },22096 .dst_temps = .{ .{ .ref = .src0 }, .unused },
18588 .each = .{ .once = &.{22097 .each = .{ .once = &.{
18589 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },22098 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
18590 .{ ._, .p_d, .cmpgt, .dst0x, .src1x, ._, ._ },22099 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
18591 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },22100 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
18592 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },22101 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
18593 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },22102 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },
22103 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp2x, ._, ._ },
22104 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp3x, ._ },
18594 } },22105 } },
18595 }, .{22106 }, .{
18596 .required_features = .{ .avx2, null, null, null },22107 .required_features = .{ .avx2, null, null, null },
18597 .src_constraints = .{22108 .src_constraints = .{
18598 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },22109 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
18599 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },22110 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
18600 .any,22111 .any,
18601 },22112 },
18602 .patterns = &.{22113 .patterns = &.{
...@@ -18604,15 +22115,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18604,15 +22115,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18604 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },22115 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18605 .{ .src = .{ .to_sse, .to_sse, .none } },22116 .{ .src = .{ .to_sse, .to_sse, .none } },
18606 },22117 },
22118 .extra_temps = .{
22119 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
22120 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22121 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22122 .unused,
22123 .unused,
22124 .unused,
22125 .unused,
22126 .unused,
22127 .unused,
22128 .unused,
22129 .unused,
22130 },
18607 .dst_temps = .{ .{ .rc = .sse }, .unused },22131 .dst_temps = .{ .{ .rc = .sse }, .unused },
18608 .each = .{ .once = &.{22132 .each = .{ .once = &.{
18609 .{ ._, .vp_d, .maxs, .dst0y, .src0y, .src1y, ._ },22133 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22134 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
22135 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
22136 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
22137 .{ ._, .vp_q, .cmpgt, .dst0y, .tmp2y, .dst0y, ._ },
22138 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
18610 } },22139 } },
18611 }, .{22140 }, .{
18612 .required_features = .{ .avx2, null, null, null },22141 .required_features = .{ .avx2, null, null, null },
18613 .src_constraints = .{22142 .src_constraints = .{
18614 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },22143 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
18615 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },22144 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
18616 .any,22145 .any,
18617 },22146 },
18618 .patterns = &.{22147 .patterns = &.{
...@@ -18620,12 +22149,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18620,12 +22149,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18620 },22149 },
18621 .extra_temps = .{22150 .extra_temps = .{
18622 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22151 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18623 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },22152 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
18624 .unused,22153 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
18625 .unused,22154 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
18626 .unused,22155 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
18627 .unused,22156 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
18628 .unused,22157 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
18629 .unused,22158 .unused,
18630 .unused,22159 .unused,
18631 .unused,22160 .unused,
...@@ -18634,18 +22163,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18634,18 +22163,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18634 .dst_temps = .{ .mem, .unused },22163 .dst_temps = .{ .mem, .unused },
18635 .clobbers = .{ .eflags = true },22164 .clobbers = .{ .eflags = true },
18636 .each = .{ .once = &.{22165 .each = .{ .once = &.{
22166 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22167 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
18637 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22168 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18638 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },22169 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
18639 .{ ._, .vp_d, .maxs, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },22170 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
18640 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },22171 .{ ._, .vp_, .xor, .tmp5y, .tmp3y, .tmp2y, ._ },
22172 .{ ._, .vp_, .xor, .tmp6y, .tmp4y, .tmp2y, ._ },
22173 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp6y, .tmp5y, ._ },
22174 .{ ._, .vp_b, .blendv, .tmp3y, .tmp3y, .tmp4y, .tmp5y },
22175 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
18641 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },22176 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
18642 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22177 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18643 } },22178 } },
18644 }, .{22179 }, .{
18645 .required_features = .{ .avx, null, null, null },22180 .required_features = .{ .avx, null, null, null },
18646 .src_constraints = .{22181 .src_constraints = .{
18647 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22182 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18648 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22183 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
18649 .any,22184 .any,
18650 },22185 },
18651 .patterns = &.{22186 .patterns = &.{
...@@ -18653,12 +22188,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18653,12 +22188,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18653 },22188 },
18654 .extra_temps = .{22189 .extra_temps = .{
18655 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22190 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18656 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },22191 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
18657 .unused,22192 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22193 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22194 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22195 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22196 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
18658 .unused,22197 .unused,
18659 .unused,22198 .unused,
18660 .unused,22199 .unused,
18661 .unused,22200 .unused,
22201 },
22202 .dst_temps = .{ .mem, .unused },
22203 .clobbers = .{ .eflags = true },
22204 .each = .{ .once = &.{
22205 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22206 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
22207 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22208 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22209 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22210 .{ ._, .vp_, .xor, .tmp5x, .tmp3x, .tmp2x, ._ },
22211 .{ ._, .vp_, .xor, .tmp6x, .tmp4x, .tmp2x, ._ },
22212 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp6x, .tmp5x, ._ },
22213 .{ ._, .vp_b, .blendv, .tmp3x, .tmp3x, .tmp4x, .tmp5x },
22214 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
22215 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22216 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22217 } },
22218 }, .{
22219 .required_features = .{ .sse4_2, null, null, null },
22220 .src_constraints = .{
22221 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22222 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22223 .any,
22224 },
22225 .patterns = &.{
22226 .{ .src = .{ .to_mem, .to_mem, .none } },
22227 },
22228 .extra_temps = .{
22229 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22230 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22231 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22232 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22233 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22234 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22235 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
18662 .unused,22236 .unused,
18663 .unused,22237 .unused,
18664 .unused,22238 .unused,
...@@ -18667,18 +22241,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18667,18 +22241,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18667 .dst_temps = .{ .mem, .unused },22241 .dst_temps = .{ .mem, .unused },
18668 .clobbers = .{ .eflags = true },22242 .clobbers = .{ .eflags = true },
18669 .each = .{ .once = &.{22243 .each = .{ .once = &.{
22244 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22245 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
18670 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22246 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18671 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22247 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },
18672 .{ ._, .vp_d, .maxs, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },22248 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },
18673 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },22249 .{ ._, ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22250 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22251 .{ ._, .p_, .xor, .tmp5x, .tmp3x, ._, ._ },
22252 .{ ._, .p_, .xor, .tmp6x, .tmp4x, ._, ._ },
22253 .{ ._, .p_q, .cmpgt, .tmp6x, .tmp5x, ._, ._ },
22254 .{ ._, .p_b, .blendv, .tmp3x, .tmp4x, .tmp6x, ._ },
22255 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
18674 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },22256 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18675 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22257 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18676 } },22258 } },
18677 }, .{22259 }, .{
18678 .required_features = .{ .sse4_1, null, null, null },22260 .required_features = .{ .@"64bit", .cmov, null, null },
18679 .src_constraints = .{22261 .src_constraints = .{
18680 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22262 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
18681 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },22263 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
18682 .any,22264 .any,
18683 },22265 },
18684 .patterns = &.{22266 .patterns = &.{
...@@ -18686,7 +22268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18686,7 +22268,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18686 },22268 },
18687 .extra_temps = .{22269 .extra_temps = .{
18688 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22270 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18689 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },22271 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
18690 .unused,22272 .unused,
18691 .unused,22273 .unused,
18692 .unused,22274 .unused,
...@@ -18701,17 +22283,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18701,17 +22283,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18701 .clobbers = .{ .eflags = true },22283 .clobbers = .{ .eflags = true },
18702 .each = .{ .once = &.{22284 .each = .{ .once = &.{
18703 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22285 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18704 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22286 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
18705 .{ ._, .p_d, .maxs, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22287 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18706 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },22288 .{ ._, ._b, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18707 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },22289 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22290 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
18708 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22291 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18709 } },22292 } },
18710 }, .{22293 }, .{
18711 .required_features = .{ .sse2, null, null, null },22294 .required_features = .{ .@"64bit", null, null, null },
18712 .src_constraints = .{22295 .src_constraints = .{
18713 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },22296 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
18714 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },22297 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
18715 .any,22298 .any,
18716 },22299 },
18717 .patterns = &.{22300 .patterns = &.{
...@@ -18719,8 +22302,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18719,8 +22302,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18719 },22302 },
18720 .extra_temps = .{22303 .extra_temps = .{
18721 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22304 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18722 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },22305 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
18723 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },22306 .unused,
18724 .unused,22307 .unused,
18725 .unused,22308 .unused,
18726 .unused,22309 .unused,
...@@ -18734,35 +22317,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18734,35 +22317,70 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18734 .clobbers = .{ .eflags = true },22317 .clobbers = .{ .eflags = true },
18735 .each = .{ .once = &.{22318 .each = .{ .once = &.{
18736 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22319 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18737 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22320 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
18738 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },22321 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18739 .{ ._, .p_d, .cmpgt, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22322 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
18740 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },22323 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
18741 .{ ._, .p_, .andn, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22324 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
18742 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },22325 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
18743 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
18744 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18745 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22326 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18746 } },22327 } },
18747 }, .{22328 }, .{
18748 .required_features = .{ .cmov, null, null, null },22329 .required_features = .{ .@"64bit", .cmov, null, null },
18749 .src_constraints = .{22330 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },
18750 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
18751 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
18752 .any,
18753 },
18754 .patterns = &.{22331 .patterns = &.{
18755 .{ .src = .{ .to_mem, .to_mem, .none } },22332 .{ .src = .{ .to_mem, .to_mem, .none } },
18756 },22333 },
18757 .extra_temps = .{22334 .extra_temps = .{
18758 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22335 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18759 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },22336 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22337 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22338 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22339 .unused,
18760 .unused,22340 .unused,
18761 .unused,22341 .unused,
18762 .unused,22342 .unused,
18763 .unused,22343 .unused,
18764 .unused,22344 .unused,
18765 .unused,22345 .unused,
22346 },
22347 .dst_temps = .{ .mem, .unused },
22348 .clobbers = .{ .eflags = true },
22349 .each = .{ .once = &.{
22350 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22351 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
22352 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22353 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22354 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22355 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
22356 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
22357 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
22358 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22359 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22360 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22361 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22362 .{ ._, ._l, .cmov, .tmp1p, .tmp2p, ._, ._ },
22363 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22364 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22365 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
22366 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22367 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22368 } },
22369 }, .{
22370 .required_features = .{ .@"64bit", null, null, null },
22371 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },
22372 .patterns = &.{
22373 .{ .src = .{ .to_mem, .to_mem, .none } },
22374 },
22375 .extra_temps = .{
22376 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22377 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22378 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22379 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22380 .unused,
22381 .unused,
22382 .unused,
22383 .unused,
18766 .unused,22384 .unused,
18767 .unused,22385 .unused,
18768 .unused,22386 .unused,
...@@ -18770,26 +22388,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18770,26 +22388,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18770 .dst_temps = .{ .mem, .unused },22388 .dst_temps = .{ .mem, .unused },
18771 .clobbers = .{ .eflags = true },22389 .clobbers = .{ .eflags = true },
18772 .each = .{ .once = &.{22390 .each = .{ .once = &.{
18773 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22391 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
18774 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },22392 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
18775 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22393 .{ ._, ._c, .cl, ._, ._, ._, ._ },
18776 .{ ._, ._l, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22394 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
18777 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },22395 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
18778 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },22396 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
22397 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
22398 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
22399 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22400 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22401 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22402 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
22403 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22404 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
22405 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22406 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
22407 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
18779 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22408 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18780 } },22409 } },
18781 }, .{22410 }, .{
18782 .src_constraints = .{22411 .required_features = .{ .@"64bit", .cmov, null, null },
18783 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },22412 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },
18784 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
18785 .any,
18786 },
18787 .patterns = &.{22413 .patterns = &.{
18788 .{ .src = .{ .to_mem, .to_mem, .none } },22414 .{ .src = .{ .to_mem, .to_mem, .none } },
18789 },22415 },
18790 .extra_temps = .{22416 .extra_temps = .{
18791 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22417 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18792 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },22418 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22419 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22420 .{ .type = .u64, .kind = .{ .reg = .rcx } },
18793 .unused,22421 .unused,
18794 .unused,22422 .unused,
18795 .unused,22423 .unused,
...@@ -18797,69 +22425,144 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18797,69 +22425,144 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18797 .unused,22425 .unused,
18798 .unused,22426 .unused,
18799 .unused,22427 .unused,
22428 },
22429 .dst_temps = .{ .mem, .unused },
22430 .clobbers = .{ .eflags = true },
22431 .each = .{ .once = &.{
22432 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22433 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22434 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22435 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22436 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22437 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
22438 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
22439 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
22440 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22441 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22442 .{ ._, ._b, .cmov, .tmp1p, .tmp2p, ._, ._ },
22443 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22444 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22445 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
22446 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
22447 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
22448 } },
22449 }, .{
22450 .required_features = .{ .@"64bit", null, null, null },
22451 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },
22452 .patterns = &.{
22453 .{ .src = .{ .to_mem, .to_mem, .none } },
22454 },
22455 .extra_temps = .{
22456 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22457 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22458 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22459 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22460 .unused,
22461 .unused,
22462 .unused,
22463 .unused,
22464 .unused,
18800 .unused,22465 .unused,
18801 .unused,22466 .unused,
18802 },22467 },
18803 .dst_temps = .{ .mem, .unused },22468 .dst_temps = .{ .mem, .unused },
18804 .clobbers = .{ .eflags = true },22469 .clobbers = .{ .eflags = true },
18805 .each = .{ .once = &.{22470 .each = .{ .once = &.{
18806 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22471 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
18807 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },22472 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
18808 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22473 .{ ._, ._c, .cl, ._, ._, ._, ._ },
18809 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },22474 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
18810 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22475 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
18811 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },22476 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
18812 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },22477 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
18813 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22478 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
22479 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22480 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
22481 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22482 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22483 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22484 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
22485 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
22486 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
18814 } },22487 } },
18815 }, .{22488 }, .{
18816 .required_features = .{ .avx, null, null, null },22489 .required_features = .{ .f16c, null, null, null },
18817 .src_constraints = .{22490 .src_constraints = .{
18818 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22491 .{ .scalar_float = .{ .of = .word, .is = .word } },
18819 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22492 .{ .scalar_float = .{ .of = .word, .is = .word } },
18820 .any,22493 .any,
18821 },22494 },
18822 .patterns = &.{22495 .patterns = &.{
18823 .{ .src = .{ .to_sse, .mem, .none } },
18824 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
18825 .{ .src = .{ .to_sse, .to_sse, .none } },22496 .{ .src = .{ .to_sse, .to_sse, .none } },
18826 },22497 },
18827 .dst_temps = .{ .{ .rc = .sse }, .unused },22498 .extra_temps = .{
22499 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
22500 .{ .type = .f32, .kind = .{ .rc = .sse } },
22501 .unused,
22502 .unused,
22503 .unused,
22504 .unused,
22505 .unused,
22506 .unused,
22507 .unused,
22508 .unused,
22509 .unused,
22510 },
22511 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
18828 .each = .{ .once = &.{22512 .each = .{ .once = &.{
18829 .{ ._, .vp_d, .maxu, .dst0x, .src0x, .src1x, ._ },22513 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
22514 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
22515 .{ ._, .v_ss, .cmp, .tmp1x, .dst0d, .dst0x, .vp(.unord) },
22516 .{ ._, .v_ss, .max, .dst0x, .tmp0d, .dst0x, ._ },
22517 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
22518 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
18830 } },22519 } },
18831 }, .{22520 }, .{
18832 .required_features = .{ .sse4_1, null, null, null },22521 .required_features = .{ .sse, null, null, null },
18833 .src_constraints = .{22522 .src_constraints = .{
18834 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22523 .{ .scalar_float = .{ .of = .word, .is = .word } },
18835 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22524 .{ .scalar_float = .{ .of = .word, .is = .word } },
18836 .any,22525 .any,
18837 },22526 },
18838 .patterns = &.{22527 .patterns = &.{
18839 .{ .src = .{ .to_mut_sse, .mem, .none } },22528 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
18840 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },22529 },
18841 .{ .src = .{ .to_mut_sse, .to_sse, .none } },22530 .call_frame = .{ .alignment = .@"16" },
22531 .extra_temps = .{
22532 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
22533 .unused,
22534 .unused,
22535 .unused,
22536 .unused,
22537 .unused,
22538 .unused,
22539 .unused,
22540 .unused,
22541 .unused,
22542 .unused,
18842 },22543 },
18843 .dst_temps = .{ .{ .ref = .src0 }, .unused },22544 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22545 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
18844 .each = .{ .once = &.{22546 .each = .{ .once = &.{
18845 .{ ._, .p_d, .maxu, .dst0x, .src1x, ._, ._ },22547 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
18846 } },22548 } },
18847 }, .{22549 }, .{
18848 .required_features = .{ .sse2, null, null, null },22550 .required_features = .{ .f16c, null, null, null },
18849 .src_constraints = .{22551 .src_constraints = .{
18850 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },22552 .{ .scalar_float = .{ .of = .qword, .is = .word } },
18851 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },22553 .{ .scalar_float = .{ .of = .qword, .is = .word } },
18852 .any,22554 .any,
18853 },22555 },
18854 .patterns = &.{22556 .patterns = &.{
18855 .{ .src = .{ .to_mut_sse, .mem, .none } },22557 .{ .src = .{ .mem, .mem, .none } },
18856 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },22558 .{ .src = .{ .to_sse, .mem, .none } },
18857 .{ .src = .{ .to_mut_sse, .to_sse, .none } },22559 .{ .src = .{ .mem, .to_sse, .none } },
22560 .{ .src = .{ .to_sse, .to_sse, .none } },
18858 },22561 },
18859 .extra_temps = .{22562 .extra_temps = .{
18860 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },22563 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
18861 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },22564 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
18862 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22565 .unused,
18863 .unused,22566 .unused,
18864 .unused,22567 .unused,
18865 .unused,22568 .unused,
...@@ -18869,39 +22572,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18869,39 +22572,55 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18869 .unused,22572 .unused,
18870 .unused,22573 .unused,
18871 },22574 },
18872 .dst_temps = .{ .{ .rc = .sse }, .unused },22575 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
18873 .each = .{ .once = &.{22576 .each = .{ .once = &.{
18874 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },22577 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
18875 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },22578 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
18876 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },22579 .{ ._, .v_ps, .cmp, .tmp1x, .dst0x, .dst0x, .vp(.unord) },
18877 .{ ._, .p_, .xor, .dst0x, .src0x, ._, ._ },22580 .{ ._, .v_ps, .max, .dst0x, .tmp0x, .dst0x, ._ },
18878 .{ ._, .p_, .xor, .tmp2x, .src1x, ._, ._ },22581 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
18879 .{ ._, .p_d, .cmpgt, .dst0x, .tmp2x, ._, ._ },22582 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
18880 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
18881 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
18882 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
18883 } },22583 } },
18884 }, .{22584 }, .{
18885 .required_features = .{ .avx2, null, null, null },22585 .required_features = .{ .f16c, null, null, null },
18886 .src_constraints = .{22586 .src_constraints = .{
18887 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },22587 .{ .scalar_float = .{ .of = .xword, .is = .word } },
18888 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },22588 .{ .scalar_float = .{ .of = .xword, .is = .word } },
18889 .any,22589 .any,
18890 },22590 },
18891 .patterns = &.{22591 .patterns = &.{
22592 .{ .src = .{ .mem, .mem, .none } },
18892 .{ .src = .{ .to_sse, .mem, .none } },22593 .{ .src = .{ .to_sse, .mem, .none } },
18893 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },22594 .{ .src = .{ .mem, .to_sse, .none } },
18894 .{ .src = .{ .to_sse, .to_sse, .none } },22595 .{ .src = .{ .to_sse, .to_sse, .none } },
18895 },22596 },
18896 .dst_temps = .{ .{ .rc = .sse }, .unused },22597 .extra_temps = .{
22598 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
22599 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
22600 .unused,
22601 .unused,
22602 .unused,
22603 .unused,
22604 .unused,
22605 .unused,
22606 .unused,
22607 .unused,
22608 .unused,
22609 },
22610 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
18897 .each = .{ .once = &.{22611 .each = .{ .once = &.{
18898 .{ ._, .vp_d, .maxu, .dst0y, .src0y, .src1y, ._ },22612 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
22613 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
22614 .{ ._, .v_ps, .cmp, .tmp1y, .dst0y, .dst0y, .vp(.unord) },
22615 .{ ._, .v_ps, .max, .dst0y, .tmp0y, .dst0y, ._ },
22616 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
22617 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
18899 } },22618 } },
18900 }, .{22619 }, .{
18901 .required_features = .{ .avx2, null, null, null },22620 .required_features = .{ .f16c, null, null, null },
18902 .src_constraints = .{22621 .src_constraints = .{
18903 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },22622 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
18904 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },22623 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
18905 .any,22624 .any,
18906 },22625 },
18907 .patterns = &.{22626 .patterns = &.{
...@@ -18909,9 +22628,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18909,9 +22628,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18909 },22628 },
18910 .extra_temps = .{22629 .extra_temps = .{
18911 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22630 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18912 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },22631 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
18913 .unused,22632 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
18914 .unused,22633 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
18915 .unused,22634 .unused,
18916 .unused,22635 .unused,
18917 .unused,22636 .unused,
...@@ -18924,27 +22643,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18924,27 +22643,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18924 .clobbers = .{ .eflags = true },22643 .clobbers = .{ .eflags = true },
18925 .each = .{ .once = &.{22644 .each = .{ .once = &.{
18926 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22645 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18927 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },22646 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ },
18928 .{ ._, .vp_d, .maxu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },22647 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_size), ._, ._ },
18929 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },22648 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
18930 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },22649 .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ },
22650 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
22651 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ },
22652 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
18931 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22653 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18932 } },22654 } },
18933 }, .{22655 }, .{
18934 .required_features = .{ .avx, null, null, null },22656 .required_features = .{ .avx, null, null, null },
18935 .src_constraints = .{22657 .src_constraints = .{
18936 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22658 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
18937 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22659 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
18938 .any,22660 .any,
18939 },22661 },
18940 .patterns = &.{22662 .patterns = &.{
18941 .{ .src = .{ .to_mem, .to_mem, .none } },22663 .{ .src = .{ .to_mem, .to_mem, .none } },
18942 },22664 },
22665 .call_frame = .{ .alignment = .@"16" },
18943 .extra_temps = .{22666 .extra_temps = .{
18944 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22667 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18945 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22668 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
18946 .unused,22669 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
18947 .unused,22670 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
18948 .unused,22671 .unused,
18949 .unused,22672 .unused,
18950 .unused,22673 .unused,
...@@ -18954,30 +22677,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18954,30 +22677,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18954 .unused,22677 .unused,
18955 },22678 },
18956 .dst_temps = .{ .mem, .unused },22679 .dst_temps = .{ .mem, .unused },
18957 .clobbers = .{ .eflags = true },22680 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
18958 .each = .{ .once = &.{22681 .each = .{ .once = &.{
18959 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22682 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18960 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22683 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
18961 .{ ._, .vp_d, .maxu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },22684 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) },
18962 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },22685 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) },
18963 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },22686 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
22687 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
22688 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
18964 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22689 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18965 } },22690 } },
18966 }, .{22691 }, .{
18967 .required_features = .{ .sse4_1, null, null, null },22692 .required_features = .{ .sse4_1, null, null, null },
18968 .src_constraints = .{22693 .src_constraints = .{
18969 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22694 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
18970 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },22695 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
18971 .any,22696 .any,
18972 },22697 },
18973 .patterns = &.{22698 .patterns = &.{
18974 .{ .src = .{ .to_mem, .to_mem, .none } },22699 .{ .src = .{ .to_mem, .to_mem, .none } },
18975 },22700 },
22701 .call_frame = .{ .alignment = .@"16" },
18976 .extra_temps = .{22702 .extra_temps = .{
18977 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22703 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
18978 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22704 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
18979 .unused,22705 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
18980 .unused,22706 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
18981 .unused,22707 .unused,
18982 .unused,22708 .unused,
18983 .unused,22709 .unused,
...@@ -18987,75 +22713,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -18987,75 +22713,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
18987 .unused,22713 .unused,
18988 },22714 },
18989 .dst_temps = .{ .mem, .unused },22715 .dst_temps = .{ .mem, .unused },
18990 .clobbers = .{ .eflags = true },22716 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
18991 .each = .{ .once = &.{22717 .each = .{ .once = &.{
18992 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22718 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
18993 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22719 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
18994 .{ ._, .p_d, .maxu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22720 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
18995 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },22721 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
18996 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },22722 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
22723 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
22724 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
22725 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
18997 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22726 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
18998 } },22727 } },
18999 }, .{22728 }, .{
19000 .required_features = .{ .sse2, null, null, null },22729 .required_features = .{ .sse2, null, null, null },
19001 .src_constraints = .{22730 .src_constraints = .{
19002 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },22731 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
19003 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },22732 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
19004 .any,22733 .any,
19005 },22734 },
19006 .patterns = &.{22735 .patterns = &.{
19007 .{ .src = .{ .to_mem, .to_mem, .none } },22736 .{ .src = .{ .to_mem, .to_mem, .none } },
19008 },22737 },
22738 .call_frame = .{ .alignment = .@"16" },
19009 .extra_temps = .{22739 .extra_temps = .{
19010 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22740 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19011 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },22741 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
19012 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22742 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
19013 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22743 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
19014 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22744 .{ .type = .f16, .kind = .{ .reg = .ax } },
19015 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22745 .unused,
19016 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },22746 .unused,
19017 .unused,22747 .unused,
19018 .unused,22748 .unused,
19019 .unused,22749 .unused,
19020 .unused,22750 .unused,
19021 },22751 },
19022 .dst_temps = .{ .mem, .unused },22752 .dst_temps = .{ .mem, .unused },
19023 .clobbers = .{ .eflags = true },22753 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
19024 .each = .{ .once = &.{22754 .each = .{ .once = &.{
19025 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
19026 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
19027 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22755 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19028 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22756 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
19029 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22757 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
19030 .{ ._, ._dqa, .mov, .tmp5x, .tmp3x, ._, ._ },22758 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
19031 .{ ._, ._dqa, .mov, .tmp6x, .tmp4x, ._, ._ },22759 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
19032 .{ ._, .p_, .xor, .tmp5x, .tmp2x, ._, ._ },22760 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
19033 .{ ._, .p_, .xor, .tmp6x, .tmp2x, ._, ._ },22761 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
19034 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp6x, ._, ._ },22762 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ },
19035 .{ ._, .p_, .@"and", .tmp3x, .tmp5x, ._, ._ },22763 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
19036 .{ ._, .p_, .andn, .tmp5x, .tmp4x, ._, ._ },
19037 .{ ._, .p_, .@"or", .tmp3x, .tmp5x, ._, ._ },
19038 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
19039 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19040 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22764 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19041 } },22765 } },
19042 }, .{22766 }, .{
19043 .required_features = .{ .cmov, null, null, null },22767 .required_features = .{ .sse, null, null, null },
19044 .src_constraints = .{22768 .src_constraints = .{
19045 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },22769 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
19046 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },22770 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
19047 .any,22771 .any,
19048 },22772 },
19049 .patterns = &.{22773 .patterns = &.{
19050 .{ .src = .{ .to_mem, .to_mem, .none } },22774 .{ .src = .{ .to_mem, .to_mem, .none } },
19051 },22775 },
22776 .call_frame = .{ .alignment = .@"16" },
19052 .extra_temps = .{22777 .extra_temps = .{
19053 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22778 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19054 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },22779 .{ .type = .f16, .kind = .{ .reg = .ax } },
19055 .unused,22780 .{ .type = .f32, .kind = .mem },
19056 .unused,22781 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
19057 .unused,22782 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
19058 .unused,22783 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },
19059 .unused,22784 .unused,
19060 .unused,22785 .unused,
19061 .unused,22786 .unused,
...@@ -19063,28 +22788,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19063,28 +22788,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19063 .unused,22788 .unused,
19064 },22789 },
19065 .dst_temps = .{ .mem, .unused },22790 .dst_temps = .{ .mem, .unused },
19066 .clobbers = .{ .eflags = true },22791 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
19067 .each = .{ .once = &.{22792 .each = .{ .once = &.{
19068 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22793 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19069 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },22794 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
19070 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22795 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
19071 .{ ._, ._b, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22796 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
19072 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },22797 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_size), ._, ._ },
19073 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },22798 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
22799 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
22800 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
22801 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
22802 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
22803 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
22804 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
19074 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },22805 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19075 } },22806 } },
19076 }, .{22807 }, .{
22808 .required_features = .{ .avx, null, null, null },
19077 .src_constraints = .{22809 .src_constraints = .{
19078 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },22810 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19079 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },22811 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19080 .any,22812 .any,
19081 },22813 },
19082 .patterns = &.{22814 .patterns = &.{
19083 .{ .src = .{ .to_mem, .to_mem, .none } },22815 .{ .src = .{ .to_sse, .to_sse, .none } },
19084 },22816 },
19085 .extra_temps = .{22817 .extra_temps = .{
19086 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22818 .{ .type = .f32, .kind = .{ .rc = .sse } },
19087 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },22819 .unused,
19088 .unused,22820 .unused,
19089 .unused,22821 .unused,
19090 .unused,22822 .unused,
...@@ -19095,47 +22827,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19095,47 +22827,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19095 .unused,22827 .unused,
19096 .unused,22828 .unused,
19097 },22829 },
19098 .dst_temps = .{ .mem, .unused },22830 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
19099 .clobbers = .{ .eflags = true },
19100 .each = .{ .once = &.{22831 .each = .{ .once = &.{
19101 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22832 .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) },
19102 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },22833 .{ ._, .v_ss, .max, .dst0x, .src1x, .src0d, ._ },
19103 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },22834 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
19104 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
19105 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
19106 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
19107 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
19108 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19109 } },22835 } },
19110 }, .{22836 }, .{
19111 .required_features = .{ .avx, null, null, null },22837 .required_features = .{ .sse4_1, null, null, null },
19112 .src_constraints = .{22838 .src_constraints = .{
19113 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22839 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19114 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22840 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19115 .any,22841 .any,
19116 },22842 },
19117 .patterns = &.{22843 .patterns = &.{
19118 .{ .src = .{ .to_sse, .to_sse, .none } },22844 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
19119 },22845 },
19120 .dst_temps = .{ .{ .rc = .sse }, .unused },22846 .dst_temps = .{ .{ .rc = .sse }, .unused },
19121 .each = .{ .once = &.{22847 .each = .{ .once = &.{
19122 .{ ._, .vp_q, .cmpgt, .dst0x, .src1x, .src0x, ._ },22848 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },
19123 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },22849 .{ ._, ._ss, .max, .dst0x, .src0d, ._, ._ },
22850 .{ ._, ._ss, .cmp, .src0x, .src0d, .sp(.unord), ._ },
22851 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
19124 } },22852 } },
19125 }, .{22853 }, .{
19126 .required_features = .{ .sse4_2, null, null, null },22854 .required_features = .{ .sse, null, null, null },
19127 .src_constraints = .{22855 .src_constraints = .{
19128 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22856 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19129 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22857 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
19130 .any,22858 .any,
19131 },22859 },
19132 .patterns = &.{22860 .patterns = &.{
19133 .{ .src = .{ .to_mut_sse, .mem, .none } },
19134 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
19135 .{ .src = .{ .to_mut_sse, .to_sse, .none } },22861 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
19136 },22862 },
19137 .extra_temps = .{22863 .extra_temps = .{
19138 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },22864 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19139 .unused,22865 .unused,
19140 .unused,22866 .unused,
19141 .unused,22867 .unused,
...@@ -19149,40 +22875,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19149,40 +22875,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19149 },22875 },
19150 .dst_temps = .{ .{ .ref = .src0 }, .unused },22876 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19151 .each = .{ .once = &.{22877 .each = .{ .once = &.{
19152 .{ ._, ._dqa, .mov, .tmp0x, .src1x, ._, ._ },22878 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },
19153 .{ ._, .p_q, .cmpgt, .tmp0x, .src0x, ._, ._ },22879 .{ ._, ._ss, .max, .tmp0x, .src0d, ._, ._ },
19154 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp0x, ._ },22880 .{ ._, ._ss, .cmp, .dst0x, .src0d, .sp(.ord), ._ },
22881 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
22882 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
22883 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
19155 } },22884 } },
19156 }, .{22885 }, .{
19157 .required_features = .{ .avx2, null, null, null },22886 .required_features = .{ .avx, null, null, null },
19158 .src_constraints = .{22887 .src_constraints = .{
19159 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },22888 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
19160 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },22889 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
19161 .any,22890 .any,
19162 },22891 },
19163 .patterns = &.{22892 .patterns = &.{
19164 .{ .src = .{ .to_sse, .to_sse, .none } },22893 .{ .src = .{ .to_sse, .to_sse, .none } },
19165 },22894 },
22895 .extra_temps = .{
22896 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
22897 .unused,
22898 .unused,
22899 .unused,
22900 .unused,
22901 .unused,
22902 .unused,
22903 .unused,
22904 .unused,
22905 .unused,
22906 .unused,
22907 },
22908 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
22909 .each = .{ .once = &.{
22910 .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },
22911 .{ ._, .v_ps, .max, .dst0x, .src1x, .src0x, ._ },
22912 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
22913 } },
22914 }, .{
22915 .required_features = .{ .sse4_1, null, null, null },
22916 .src_constraints = .{
22917 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
22918 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
22919 .any,
22920 },
22921 .patterns = &.{
22922 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },
22923 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },
22924 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
22925 },
19166 .dst_temps = .{ .{ .rc = .sse }, .unused },22926 .dst_temps = .{ .{ .rc = .sse }, .unused },
19167 .each = .{ .once = &.{22927 .each = .{ .once = &.{
19168 .{ ._, .vp_q, .cmpgt, .dst0y, .src1y, .src0y, ._ },22928 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },
19169 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },22929 .{ ._, ._ps, .max, .dst0x, .src0x, ._, ._ },
22930 .{ ._, ._ps, .cmp, .src0x, .src0x, .sp(.unord), ._ },
22931 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
19170 } },22932 } },
19171 }, .{22933 }, .{
19172 .required_features = .{ .avx2, null, null, null },22934 .required_features = .{ .sse, null, null, null },
19173 .src_constraints = .{22935 .src_constraints = .{
19174 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },22936 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
19175 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },22937 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
19176 .any,22938 .any,
19177 },22939 },
19178 .patterns = &.{22940 .patterns = &.{
19179 .{ .src = .{ .to_mem, .to_mem, .none } },22941 .{ .src = .{ .to_mut_sse, .mem, .none } },
22942 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22943 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
19180 },22944 },
19181 .extra_temps = .{22945 .extra_temps = .{
19182 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22946 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19183 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },22947 .unused,
19184 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },22948 .unused,
19185 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },22949 .unused,
19186 .unused,22950 .unused,
19187 .unused,22951 .unused,
19188 .unused,22952 .unused,
...@@ -19191,33 +22955,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19191,33 +22955,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19191 .unused,22955 .unused,
19192 .unused,22956 .unused,
19193 },22957 },
19194 .dst_temps = .{ .mem, .unused },22958 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19195 .clobbers = .{ .eflags = true },
19196 .each = .{ .once = &.{22959 .each = .{ .once = &.{
19197 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22960 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },
19198 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },22961 .{ ._, ._ps, .max, .tmp0x, .src0x, ._, ._ },
19199 .{ ._, .v_dqa, .mov, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },22962 .{ ._, ._ps, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
19200 .{ ._, .vp_q, .cmpgt, .tmp3y, .tmp2y, .tmp1y, ._ },22963 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
19201 .{ ._, .vp_b, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },22964 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
19202 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },22965 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
19203 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
19204 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19205 } },22966 } },
19206 }, .{22967 }, .{
19207 .required_features = .{ .avx, null, null, null },22968 .required_features = .{ .avx, null, null, null },
19208 .src_constraints = .{22969 .src_constraints = .{
19209 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22970 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
19210 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22971 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
19211 .any,22972 .any,
19212 },22973 },
19213 .patterns = &.{22974 .patterns = &.{
19214 .{ .src = .{ .to_mem, .to_mem, .none } },22975 .{ .src = .{ .to_sse, .to_sse, .none } },
19215 },22976 },
19216 .extra_temps = .{22977 .extra_temps = .{
19217 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },22978 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
19218 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },22979 .unused,
19219 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },22980 .unused,
19220 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },22981 .unused,
19221 .unused,22982 .unused,
19222 .unused,22983 .unused,
19223 .unused,22984 .unused,
...@@ -19226,23 +22987,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19226,23 +22987,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19226 .unused,22987 .unused,
19227 .unused,22988 .unused,
19228 },22989 },
19229 .dst_temps = .{ .mem, .unused },22990 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
19230 .clobbers = .{ .eflags = true },
19231 .each = .{ .once = &.{22991 .each = .{ .once = &.{
19232 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },22992 .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },
19233 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },22993 .{ ._, .v_ps, .max, .dst0y, .src1y, .src0y, ._ },
19234 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },22994 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
19235 .{ ._, .vp_q, .cmpgt, .tmp3x, .tmp2x, .tmp1x, ._ },
19236 .{ ._, .vp_b, .blendv, .tmp1x, .tmp1x, .tmp2x, .tmp3x },
19237 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
19238 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19239 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19240 } },22995 } },
19241 }, .{22996 }, .{
19242 .required_features = .{ .sse4_2, null, null, null },22997 .required_features = .{ .avx, null, null, null },
19243 .src_constraints = .{22998 .src_constraints = .{
19244 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },22999 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
19245 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },23000 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
19246 .any,23001 .any,
19247 },23002 },
19248 .patterns = &.{23003 .patterns = &.{
...@@ -19250,9 +23005,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19250,9 +23005,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19250 },23005 },
19251 .extra_temps = .{23006 .extra_temps = .{
19252 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23007 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19253 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },23008 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
19254 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },23009 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
19255 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },23010 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
19256 .unused,23011 .unused,
19257 .unused,23012 .unused,
19258 .unused,23013 .unused,
...@@ -19265,20 +23020,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19265,20 +23020,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19265 .clobbers = .{ .eflags = true },23020 .clobbers = .{ .eflags = true },
19266 .each = .{ .once = &.{23021 .each = .{ .once = &.{
19267 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23022 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19268 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },23023 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
19269 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },23024 .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
19270 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },23025 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
19271 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp1x, ._, ._ },23026 .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ },
19272 .{ ._, .p_b, .blendv, .tmp1x, .tmp2x, .tmp3x, ._ },23027 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
19273 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },23028 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
19274 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },23029 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
19275 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23030 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19276 } },23031 } },
19277 }, .{23032 }, .{
19278 .required_features = .{ .@"64bit", .cmov, null, null },23033 .required_features = .{ .sse4_1, null, null, null },
19279 .src_constraints = .{23034 .src_constraints = .{
19280 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },23035 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
19281 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },23036 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
19282 .any,23037 .any,
19283 },23038 },
19284 .patterns = &.{23039 .patterns = &.{
...@@ -19286,9 +23041,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19286,9 +23041,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19286 },23041 },
19287 .extra_temps = .{23042 .extra_temps = .{
19288 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23043 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19289 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },23044 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
19290 .unused,23045 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19291 .unused,23046 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19292 .unused,23047 .unused,
19293 .unused,23048 .unused,
19294 .unused,23049 .unused,
...@@ -19301,18 +23056,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19301,18 +23056,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19301 .clobbers = .{ .eflags = true },23056 .clobbers = .{ .eflags = true },
19302 .each = .{ .once = &.{23057 .each = .{ .once = &.{
19303 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23058 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19304 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23059 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19305 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23060 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19306 .{ ._, ._l, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23061 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
19307 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },23062 .{ ._, ._ps, .max, .tmp3x, .tmp1x, ._, ._ },
19308 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },23063 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
23064 .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
23065 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
23066 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19309 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23067 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19310 } },23068 } },
19311 }, .{23069 }, .{
19312 .required_features = .{ .@"64bit", null, null, null },23070 .required_features = .{ .sse, null, null, null },
19313 .src_constraints = .{23071 .src_constraints = .{
19314 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },23072 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
19315 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },23073 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
19316 .any,23074 .any,
19317 },23075 },
19318 .patterns = &.{23076 .patterns = &.{
...@@ -19320,9 +23078,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19320,9 +23078,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19320 },23078 },
19321 .extra_temps = .{23079 .extra_temps = .{
19322 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23080 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19323 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },23081 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19324 .unused,23082 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19325 .unused,23083 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
19326 .unused,23084 .unused,
19327 .unused,23085 .unused,
19328 .unused,23086 .unused,
...@@ -19335,30 +23093,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19335,30 +23093,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19335 .clobbers = .{ .eflags = true },23093 .clobbers = .{ .eflags = true },
19336 .each = .{ .once = &.{23094 .each = .{ .once = &.{
19337 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23095 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19338 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23096 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19339 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23097 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19340 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },23098 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
19341 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23099 .{ ._, ._ps, .max, .tmp3x, .tmp1x, ._, ._ },
19342 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },23100 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
19343 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },23101 .{ ._, ._ps, .@"and", .tmp3x, .tmp1x, ._, ._ },
23102 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
23103 .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ },
23104 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
23105 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19344 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23106 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19345 } },23107 } },
19346 }, .{23108 }, .{
19347 .required_features = .{ .avx, null, null, null },23109 .required_features = .{ .avx, null, null, null },
19348 .src_constraints = .{23110 .src_constraints = .{
19349 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23111 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19350 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23112 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19351 .any,23113 .any,
19352 },23114 },
19353 .patterns = &.{23115 .patterns = &.{
19354 .{ .src = .{ .to_sse, .mem, .none } },
19355 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
19356 .{ .src = .{ .to_sse, .to_sse, .none } },23116 .{ .src = .{ .to_sse, .to_sse, .none } },
19357 },23117 },
19358 .extra_temps = .{23118 .extra_temps = .{
19359 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },23119 .{ .type = .f64, .kind = .{ .rc = .sse } },
19360 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },23120 .unused,
19361 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },23121 .unused,
19362 .unused,23122 .unused,
19363 .unused,23123 .unused,
19364 .unused,23124 .unused,
...@@ -19368,32 +23128,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19368,32 +23128,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19368 .unused,23128 .unused,
19369 .unused,23129 .unused,
19370 },23130 },
19371 .dst_temps = .{ .{ .rc = .sse }, .unused },23131 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
19372 .each = .{ .once = &.{23132 .each = .{ .once = &.{
19373 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },23133 .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) },
19374 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },23134 .{ ._, .v_sd, .max, .dst0x, .src1x, .src0q, ._ },
19375 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },23135 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
19376 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },23136 } },
19377 .{ ._, .vp_q, .cmpgt, .dst0x, .tmp2x, .dst0x, ._ },23137 }, .{
19378 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },23138 .required_features = .{ .sse4_1, null, null, null },
23139 .src_constraints = .{
23140 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23141 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23142 .any,
23143 },
23144 .patterns = &.{
23145 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
23146 },
23147 .dst_temps = .{ .{ .rc = .sse }, .unused },
23148 .each = .{ .once = &.{
23149 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },
23150 .{ ._, ._sd, .max, .dst0x, .src0q, ._, ._ },
23151 .{ ._, ._sd, .cmp, .src0x, .src0q, .sp(.unord), ._ },
23152 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
19379 } },23153 } },
19380 }, .{23154 }, .{
19381 .required_features = .{ .sse4_2, null, null, null },23155 .required_features = .{ .sse2, null, null, null },
19382 .src_constraints = .{23156 .src_constraints = .{
19383 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23157 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19384 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23158 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19385 .any,23159 .any,
19386 },23160 },
19387 .patterns = &.{23161 .patterns = &.{
19388 .{ .src = .{ .to_mut_sse, .mem, .none } },
19389 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
19390 .{ .src = .{ .to_mut_sse, .to_sse, .none } },23162 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
19391 },23163 },
19392 .extra_temps = .{23164 .extra_temps = .{
19393 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },23165 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19394 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },23166 .unused,
19395 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },23167 .unused,
19396 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },23168 .unused,
19397 .unused,23169 .unused,
19398 .unused,23170 .unused,
19399 .unused,23171 .unused,
...@@ -19404,30 +23176,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19404,30 +23176,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19404 },23176 },
19405 .dst_temps = .{ .{ .ref = .src0 }, .unused },23177 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19406 .each = .{ .once = &.{23178 .each = .{ .once = &.{
19407 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },23179 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },
19408 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },23180 .{ ._, ._sd, .max, .tmp0x, .src0q, ._, ._ },
19409 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },23181 .{ ._, ._sd, .cmp, .dst0x, .src0q, .sp(.ord), ._ },
19410 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },23182 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
19411 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },23183 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
19412 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp2x, ._, ._ },23184 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
19413 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp3x, ._ },
19414 } },23185 } },
19415 }, .{23186 }, .{
19416 .required_features = .{ .avx2, null, null, null },23187 .required_features = .{ .sse, null, null, null },
19417 .src_constraints = .{23188 .src_constraints = .{
19418 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },23189 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19419 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },23190 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
19420 .any,23191 .any,
19421 },23192 },
19422 .patterns = &.{23193 .patterns = &.{
19423 .{ .src = .{ .to_sse, .mem, .none } },23194 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
19424 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
19425 .{ .src = .{ .to_sse, .to_sse, .none } },
19426 },23195 },
23196 .call_frame = .{ .alignment = .@"16" },
19427 .extra_temps = .{23197 .extra_temps = .{
19428 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },23198 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmax" } } },
19429 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },23199 .unused,
19430 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },23200 .unused,
19431 .unused,23201 .unused,
19432 .unused,23202 .unused,
19433 .unused,23203 .unused,
...@@ -19437,147 +23207,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19437,147 +23207,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19437 .unused,23207 .unused,
19438 .unused,23208 .unused,
19439 },23209 },
19440 .dst_temps = .{ .{ .rc = .sse }, .unused },23210 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23211 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
19441 .each = .{ .once = &.{23212 .each = .{ .once = &.{
19442 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },23213 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
19443 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
19444 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
19445 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
19446 .{ ._, .vp_q, .cmpgt, .dst0y, .tmp2y, .dst0y, ._ },
19447 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
19448 } },23214 } },
19449 }, .{23215 }, .{
19450 .required_features = .{ .avx2, null, null, null },23216 .required_features = .{ .avx, null, null, null },
19451 .src_constraints = .{23217 .src_constraints = .{
19452 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },23218 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19453 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },23219 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19454 .any,23220 .any,
19455 },23221 },
19456 .patterns = &.{23222 .patterns = &.{
19457 .{ .src = .{ .to_mem, .to_mem, .none } },23223 .{ .src = .{ .to_sse, .to_sse, .none } },
19458 },23224 },
19459 .extra_temps = .{23225 .extra_temps = .{
19460 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23226 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19461 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },23227 .unused,
19462 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },23228 .unused,
19463 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
19464 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
19465 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
19466 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
19467 .unused,23229 .unused,
19468 .unused,23230 .unused,
19469 .unused,23231 .unused,
19470 .unused,23232 .unused,
19471 },
19472 .dst_temps = .{ .mem, .unused },
19473 .clobbers = .{ .eflags = true },
19474 .each = .{ .once = &.{
19475 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
19476 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
19477 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19478 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
19479 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
19480 .{ ._, .vp_, .xor, .tmp5y, .tmp3y, .tmp2y, ._ },
19481 .{ ._, .vp_, .xor, .tmp6y, .tmp4y, .tmp2y, ._ },
19482 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp6y, .tmp5y, ._ },
19483 .{ ._, .vp_b, .blendv, .tmp3y, .tmp3y, .tmp4y, .tmp5y },
19484 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
19485 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
19486 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19487 } },
19488 }, .{
19489 .required_features = .{ .avx, null, null, null },
19490 .src_constraints = .{
19491 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19492 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
19493 .any,
19494 },
19495 .patterns = &.{
19496 .{ .src = .{ .to_mem, .to_mem, .none } },
19497 },
19498 .extra_temps = .{
19499 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19500 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
19501 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19502 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19503 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19504 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19505 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19506 .unused,23233 .unused,
19507 .unused,23234 .unused,
19508 .unused,23235 .unused,
19509 .unused,23236 .unused,
19510 },23237 },
19511 .dst_temps = .{ .mem, .unused },23238 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
19512 .clobbers = .{ .eflags = true },
19513 .each = .{ .once = &.{23239 .each = .{ .once = &.{
19514 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },23240 .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },
19515 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },23241 .{ ._, .v_pd, .max, .dst0x, .src1x, .src0x, ._ },
19516 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23242 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
19517 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19518 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19519 .{ ._, .vp_, .xor, .tmp5x, .tmp3x, .tmp2x, ._ },
19520 .{ ._, .vp_, .xor, .tmp6x, .tmp4x, .tmp2x, ._ },
19521 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp6x, .tmp5x, ._ },
19522 .{ ._, .vp_b, .blendv, .tmp3x, .tmp3x, .tmp4x, .tmp5x },
19523 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
19524 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19525 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19526 } },23243 } },
19527 }, .{23244 }, .{
19528 .required_features = .{ .sse4_2, null, null, null },23245 .required_features = .{ .sse4_1, null, null, null },
19529 .src_constraints = .{23246 .src_constraints = .{
19530 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23247 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19531 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },23248 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19532 .any,23249 .any,
19533 },23250 },
19534 .patterns = &.{23251 .patterns = &.{
19535 .{ .src = .{ .to_mem, .to_mem, .none } },23252 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },
19536 },23253 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },
19537 .extra_temps = .{23254 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
19538 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19539 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
19540 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19541 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19542 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19543 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
19544 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
19545 .unused,
19546 .unused,
19547 .unused,
19548 .unused,
19549 },23255 },
19550 .dst_temps = .{ .mem, .unused },23256 .dst_temps = .{ .{ .rc = .sse }, .unused },
19551 .clobbers = .{ .eflags = true },
19552 .each = .{ .once = &.{23257 .each = .{ .once = &.{
19553 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },23258 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },
19554 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },23259 .{ ._, ._pd, .max, .dst0x, .src0x, ._, ._ },
19555 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23260 .{ ._, ._pd, .cmp, .src0x, .src0x, .sp(.unord), ._ },
19556 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },23261 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
19557 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },
19558 .{ ._, ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19559 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19560 .{ ._, .p_, .xor, .tmp5x, .tmp3x, ._, ._ },
19561 .{ ._, .p_, .xor, .tmp6x, .tmp4x, ._, ._ },
19562 .{ ._, .p_q, .cmpgt, .tmp6x, .tmp5x, ._, ._ },
19563 .{ ._, .p_b, .blendv, .tmp3x, .tmp4x, .tmp6x, ._ },
19564 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
19565 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19566 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19567 } },23262 } },
19568 }, .{23263 }, .{
19569 .required_features = .{ .@"64bit", .cmov, null, null },23264 .required_features = .{ .sse2, null, null, null },
19570 .src_constraints = .{23265 .src_constraints = .{
19571 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },23266 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19572 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },23267 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
19573 .any,23268 .any,
19574 },23269 },
19575 .patterns = &.{23270 .patterns = &.{
19576 .{ .src = .{ .to_mem, .to_mem, .none } },23271 .{ .src = .{ .to_mut_sse, .mem, .none } },
23272 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
23273 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
19577 },23274 },
19578 .extra_temps = .{23275 .extra_temps = .{
19579 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23276 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19580 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },23277 .unused,
19581 .unused,23278 .unused,
19582 .unused,23279 .unused,
19583 .unused,23280 .unused,
...@@ -19588,30 +23285,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19588,30 +23285,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19588 .unused,23285 .unused,
19589 .unused,23286 .unused,
19590 },23287 },
19591 .dst_temps = .{ .mem, .unused },23288 .dst_temps = .{ .{ .ref = .src0 }, .unused },
19592 .clobbers = .{ .eflags = true },
19593 .each = .{ .once = &.{23289 .each = .{ .once = &.{
19594 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23290 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },
19595 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23291 .{ ._, ._pd, .max, .tmp0x, .src0x, ._, ._ },
19596 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23292 .{ ._, ._pd, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
19597 .{ ._, ._b, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23293 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
19598 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },23294 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
19599 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },23295 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
19600 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19601 } },23296 } },
19602 }, .{23297 }, .{
19603 .required_features = .{ .@"64bit", null, null, null },23298 .required_features = .{ .avx, null, null, null },
19604 .src_constraints = .{23299 .src_constraints = .{
19605 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },23300 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
19606 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },23301 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
19607 .any,23302 .any,
19608 },23303 },
19609 .patterns = &.{23304 .patterns = &.{
19610 .{ .src = .{ .to_mem, .to_mem, .none } },23305 .{ .src = .{ .to_sse, .to_sse, .none } },
19611 },23306 },
19612 .extra_temps = .{23307 .extra_temps = .{
19613 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23308 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
19614 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },23309 .unused,
19615 .unused,23310 .unused,
19616 .unused,23311 .unused,
19617 .unused,23312 .unused,
...@@ -19622,29 +23317,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19622,29 +23317,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19622 .unused,23317 .unused,
19623 .unused,23318 .unused,
19624 },23319 },
19625 .dst_temps = .{ .mem, .unused },23320 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
19626 .clobbers = .{ .eflags = true },
19627 .each = .{ .once = &.{23321 .each = .{ .once = &.{
19628 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23322 .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },
19629 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },23323 .{ ._, .v_pd, .max, .dst0y, .src1y, .src0y, ._ },
19630 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },23324 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
19631 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
19632 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
19633 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
19634 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
19635 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19636 } },23325 } },
19637 }, .{23326 }, .{
19638 .required_features = .{ .@"64bit", .cmov, null, null },23327 .required_features = .{ .avx, null, null, null },
19639 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },23328 .src_constraints = .{
23329 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
23330 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
23331 .any,
23332 },
19640 .patterns = &.{23333 .patterns = &.{
19641 .{ .src = .{ .to_mem, .to_mem, .none } },23334 .{ .src = .{ .to_mem, .to_mem, .none } },
19642 },23335 },
19643 .extra_temps = .{23336 .extra_temps = .{
19644 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23337 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19645 .{ .type = .isize, .kind = .{ .reg = .rsi } },23338 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
19646 .{ .type = .u64, .kind = .{ .reg = .rdi } },23339 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
19647 .{ .type = .u64, .kind = .{ .reg = .rcx } },23340 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
19648 .unused,23341 .unused,
19649 .unused,23342 .unused,
19650 .unused,23343 .unused,
...@@ -19656,36 +23349,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19656,36 +23349,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19656 .dst_temps = .{ .mem, .unused },23349 .dst_temps = .{ .mem, .unused },
19657 .clobbers = .{ .eflags = true },23350 .clobbers = .{ .eflags = true },
19658 .each = .{ .once = &.{23351 .each = .{ .once = &.{
19659 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },23352 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19660 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },23353 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
19661 .{ ._, ._c, .cl, ._, ._, ._, ._ },23354 .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
19662 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },23355 .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
19663 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },23356 .{ ._, .v_pd, .max, .tmp1y, .tmp2y, .tmp1y, ._ },
19664 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23357 .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
19665 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23358 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
19666 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23359 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
19667 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
19668 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19669 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19670 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19671 .{ ._, ._l, .cmov, .tmp1p, .tmp2p, ._, ._ },
19672 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19673 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19674 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19675 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
19676 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23360 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19677 } },23361 } },
19678 }, .{23362 }, .{
19679 .required_features = .{ .@"64bit", null, null, null },23363 .required_features = .{ .sse4_1, null, null, null },
19680 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },23364 .src_constraints = .{
23365 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
23366 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
23367 .any,
23368 },
19681 .patterns = &.{23369 .patterns = &.{
19682 .{ .src = .{ .to_mem, .to_mem, .none } },23370 .{ .src = .{ .to_mem, .to_mem, .none } },
19683 },23371 },
19684 .extra_temps = .{23372 .extra_temps = .{
19685 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23373 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19686 .{ .type = .isize, .kind = .{ .reg = .rsi } },23374 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
19687 .{ .type = .u64, .kind = .{ .reg = .rdi } },23375 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19688 .{ .type = .u64, .kind = .{ .reg = .rcx } },23376 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19689 .unused,23377 .unused,
19690 .unused,23378 .unused,
19691 .unused,23379 .unused,
...@@ -19697,36 +23385,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19697,36 +23385,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19697 .dst_temps = .{ .mem, .unused },23385 .dst_temps = .{ .mem, .unused },
19698 .clobbers = .{ .eflags = true },23386 .clobbers = .{ .eflags = true },
19699 .each = .{ .once = &.{23387 .each = .{ .once = &.{
19700 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },23388 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19701 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },23389 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19702 .{ ._, ._c, .cl, ._, ._, ._, ._ },23390 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19703 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },23391 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },
19704 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },23392 .{ ._, ._pd, .max, .tmp3x, .tmp1x, ._, ._ },
19705 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23393 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
19706 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23394 .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
19707 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23395 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
19708 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },23396 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19709 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
19710 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19711 .{ ._, ._nl, .j, .@"1f", ._, ._, ._ },
19712 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19713 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
19714 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19715 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19716 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
19717 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23397 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19718 } },23398 } },
19719 }, .{23399 }, .{
19720 .required_features = .{ .@"64bit", .cmov, null, null },23400 .required_features = .{ .sse2, null, null, null },
19721 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },23401 .src_constraints = .{
23402 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
23403 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
23404 .any,
23405 },
19722 .patterns = &.{23406 .patterns = &.{
19723 .{ .src = .{ .to_mem, .to_mem, .none } },23407 .{ .src = .{ .to_mem, .to_mem, .none } },
19724 },23408 },
19725 .extra_temps = .{23409 .extra_temps = .{
19726 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23410 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19727 .{ .type = .isize, .kind = .{ .reg = .rsi } },23411 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19728 .{ .type = .u64, .kind = .{ .reg = .rdi } },23412 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19729 .{ .type = .u64, .kind = .{ .reg = .rcx } },23413 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
19730 .unused,23414 .unused,
19731 .unused,23415 .unused,
19732 .unused,23416 .unused,
...@@ -19738,34 +23422,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19738,34 +23422,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19738 .dst_temps = .{ .mem, .unused },23422 .dst_temps = .{ .mem, .unused },
19739 .clobbers = .{ .eflags = true },23423 .clobbers = .{ .eflags = true },
19740 .each = .{ .once = &.{23424 .each = .{ .once = &.{
19741 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },23425 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19742 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23426 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
19743 .{ ._, ._c, .cl, ._, ._, ._, ._ },23427 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
19744 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },23428 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },
19745 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },23429 .{ ._, ._pd, .max, .tmp3x, .tmp1x, ._, ._ },
19746 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23430 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
19747 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23431 .{ ._, ._pd, .@"and", .tmp3x, .tmp1x, ._, ._ },
19748 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23432 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
19749 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },23433 .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ },
19750 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },23434 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
19751 .{ ._, ._b, .cmov, .tmp1p, .tmp2p, ._, ._ },23435 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19752 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },23436 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19753 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19754 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19755 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
19756 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
19757 } },23437 } },
19758 }, .{23438 }, .{
19759 .required_features = .{ .@"64bit", null, null, null },23439 .required_features = .{ .sse, null, null, null },
19760 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },23440 .src_constraints = .{
23441 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
23442 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
23443 .any,
23444 },
19761 .patterns = &.{23445 .patterns = &.{
19762 .{ .src = .{ .to_mem, .to_mem, .none } },23446 .{ .src = .{ .to_mem, .to_mem, .none } },
19763 },23447 },
23448 .call_frame = .{ .alignment = .@"16" },
19764 .extra_temps = .{23449 .extra_temps = .{
19765 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23450 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19766 .{ .type = .isize, .kind = .{ .reg = .rsi } },23451 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
19767 .{ .type = .u64, .kind = .{ .reg = .rdi } },23452 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },
19768 .{ .type = .u64, .kind = .{ .reg = .rcx } },23453 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmax" } } },
19769 .unused,23454 .unused,
19770 .unused,23455 .unused,
19771 .unused,23456 .unused,
...@@ -19775,38 +23460,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19775,38 +23460,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19775 .unused,23460 .unused,
19776 },23461 },
19777 .dst_temps = .{ .mem, .unused },23462 .dst_temps = .{ .mem, .unused },
19778 .clobbers = .{ .eflags = true },23463 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
19779 .each = .{ .once = &.{23464 .each = .{ .once = &.{
19780 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },23465 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19781 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },23466 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
19782 .{ ._, ._c, .cl, ._, ._, ._, ._ },23467 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
19783 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },23468 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ },
19784 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },23469 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ },
19785 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },23470 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
19786 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },23471 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
19787 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },23472 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
19788 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },23473 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19789 .{ ._, ._nb, .j, .@"1f", ._, ._, ._ },
19790 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19791 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
19792 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
19793 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
19794 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
19795 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
19796 } },23474 } },
19797 }, .{23475 }, .{
19798 .required_features = .{ .f16c, null, null, null },23476 .required_features = .{ .x87, .cmov, null, null },
19799 .src_constraints = .{23477 .src_constraints = .{
19800 .{ .scalar_float = .{ .of = .word, .is = .word } },23478 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19801 .{ .scalar_float = .{ .of = .word, .is = .word } },23479 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19802 .any,23480 .any,
19803 },23481 },
19804 .patterns = &.{23482 .patterns = &.{
19805 .{ .src = .{ .to_sse, .to_sse, .none } },23483 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
23484 .{ .src = .{ .mem, .to_x87, .none } },
23485 .{ .src = .{ .to_x87, .to_x87, .none } },
19806 },23486 },
19807 .extra_temps = .{23487 .extra_temps = .{
19808 .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },23488 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19809 .{ .type = .f32, .kind = .{ .rc = .sse } },23489 .unused,
19810 .unused,23490 .unused,
19811 .unused,23491 .unused,
19812 .unused,23492 .unused,
...@@ -19817,29 +23497,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19817,29 +23497,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19817 .unused,23497 .unused,
19818 .unused,23498 .unused,
19819 },23499 },
19820 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },23500 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
23501 .clobbers = .{ .eflags = true },
19821 .each = .{ .once = &.{23502 .each = .{ .once = &.{
19822 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },23503 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
19823 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },23504 .{ ._, .f_, .ucomi, .tmp0t, .tmp0t, ._, ._ },
19824 .{ ._, .v_ss, .cmp, .tmp1x, .dst0d, .dst0x, .vp(.unord) },23505 .{ ._, .f_u, .cmov, .tmp0t, .src1t, ._, ._ },
19825 .{ ._, .v_ss, .max, .dst0x, .tmp0d, .dst0x, ._ },23506 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
19826 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },23507 .{ ._, .f_, .ucomi, .tmp0t, .src1t, ._, ._ },
19827 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },23508 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
23509 .{ ._, .f_nb, .cmov, .tmp0t, .src1t, ._, ._ },
23510 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
19828 } },23511 } },
19829 }, .{23512 }, .{
19830 .required_features = .{ .sse, null, null, null },23513 .required_features = .{ .sahf, .x87, null, null },
19831 .src_constraints = .{23514 .src_constraints = .{
19832 .{ .scalar_float = .{ .of = .word, .is = .word } },23515 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19833 .{ .scalar_float = .{ .of = .word, .is = .word } },23516 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19834 .any,23517 .any,
19835 },23518 },
19836 .patterns = &.{23519 .patterns = &.{
19837 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },23520 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
23521 .{ .src = .{ .mem, .to_x87, .none } },
23522 .{ .src = .{ .to_x87, .to_x87, .none } },
19838 },23523 },
19839 .call_frame = .{ .alignment = .@"16" },
19840 .extra_temps = .{23524 .extra_temps = .{
19841 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },23525 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19842 .unused,23526 .{ .type = .u8, .kind = .{ .reg = .ah } },
19843 .unused,23527 .unused,
19844 .unused,23528 .unused,
19845 .unused,23529 .unused,
...@@ -19850,27 +23534,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19850,27 +23534,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19850 .unused,23534 .unused,
19851 .unused,23535 .unused,
19852 },23536 },
19853 .dst_temps = .{ .{ .ref = .src0 }, .unused },23537 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
19854 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },23538 .clobbers = .{ .eflags = true },
19855 .each = .{ .once = &.{23539 .each = .{ .once = &.{
19856 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },23540 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
23541 .{ ._, .f_, .ucom, .tmp0t, ._, ._, ._ },
23542 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
23543 .{ ._, ._, .sahf, ._, ._, ._, ._ },
23544 .{ ._, ._p, .j, .@"0f", ._, ._, ._ },
23545 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
23546 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
23547 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
23548 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
23549 .{ ._, ._, .sahf, ._, ._, ._, ._ },
23550 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
23551 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
23552 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
23553 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },
19857 } },23554 } },
19858 }, .{23555 }, .{
19859 .required_features = .{ .f16c, null, null, null },23556 .required_features = .{ .x87, null, null, null },
19860 .src_constraints = .{23557 .src_constraints = .{
19861 .{ .scalar_float = .{ .of = .qword, .is = .word } },23558 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19862 .{ .scalar_float = .{ .of = .qword, .is = .word } },23559 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
19863 .any,23560 .any,
19864 },23561 },
19865 .patterns = &.{23562 .patterns = &.{
19866 .{ .src = .{ .mem, .mem, .none } },23563 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
19867 .{ .src = .{ .to_sse, .mem, .none } },23564 .{ .src = .{ .mem, .to_x87, .none } },
19868 .{ .src = .{ .mem, .to_sse, .none } },23565 .{ .src = .{ .to_x87, .to_x87, .none } },
19869 .{ .src = .{ .to_sse, .to_sse, .none } },
19870 },23566 },
19871 .extra_temps = .{23567 .extra_temps = .{
19872 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },23568 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19873 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },23569 .{ .type = .u8, .kind = .{ .reg = .ah } },
19874 .unused,23570 .unused,
19875 .unused,23571 .unused,
19876 .unused,23572 .unused,
...@@ -19881,32 +23577,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19881,32 +23577,38 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19881 .unused,23577 .unused,
19882 .unused,23578 .unused,
19883 },23579 },
19884 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },23580 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
23581 .clobbers = .{ .eflags = true },
19885 .each = .{ .once = &.{23582 .each = .{ .once = &.{
19886 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },23583 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
19887 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },23584 .{ ._, .f_, .xam, ._, ._, ._, ._ },
19888 .{ ._, .v_ps, .cmp, .tmp1x, .dst0x, .dst0x, .vp(.unord) },23585 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
19889 .{ ._, .v_ps, .max, .dst0x, .tmp0x, .dst0x, ._ },23586 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },
19890 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },23587 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
19891 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },23588 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
23589 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
23590 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
23591 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
23592 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },
23593 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
23594 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
23595 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
23596 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },
19892 } },23597 } },
19893 }, .{23598 }, .{
19894 .required_features = .{ .f16c, null, null, null },23599 .required_features = .{ .x87, .cmov, null, null },
19895 .src_constraints = .{23600 .src_constraints = .{
19896 .{ .scalar_float = .{ .of = .xword, .is = .word } },23601 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19897 .{ .scalar_float = .{ .of = .xword, .is = .word } },23602 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19898 .any,23603 .any,
19899 },23604 },
19900 .patterns = &.{23605 .patterns = &.{
19901 .{ .src = .{ .mem, .mem, .none } },23606 .{ .src = .{ .to_mem, .to_mem, .none } },
19902 .{ .src = .{ .to_sse, .mem, .none } },
19903 .{ .src = .{ .mem, .to_sse, .none } },
19904 .{ .src = .{ .to_sse, .to_sse, .none } },
19905 },23607 },
19906 .extra_temps = .{23608 .extra_temps = .{
19907 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },23609 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19908 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },23610 .{ .type = .f80, .kind = .{ .reg = .st6 } },
19909 .unused,23611 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19910 .unused,23612 .unused,
19911 .unused,23613 .unused,
19912 .unused,23614 .unused,
...@@ -19916,20 +23618,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19916,20 +23618,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19916 .unused,23618 .unused,
19917 .unused,23619 .unused,
19918 },23620 },
19919 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },23621 .dst_temps = .{ .mem, .unused },
23622 .clobbers = .{ .eflags = true },
19920 .each = .{ .once = &.{23623 .each = .{ .once = &.{
19921 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },23624 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19922 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },23625 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
19923 .{ ._, .v_ps, .cmp, .tmp1y, .dst0y, .dst0y, .vp(.unord) },23626 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
19924 .{ ._, .v_ps, .max, .dst0y, .tmp0y, .dst0y, ._ },23627 .{ ._, .f_, .ucomi, .tmp1t, .tmp1t, ._, ._ },
19925 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },23628 .{ ._, .f_u, .cmov, .tmp1t, .tmp2t, ._, ._ },
19926 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },23629 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23630 .{ ._, .f_, .ucomi, .tmp1t, .tmp2t, ._, ._ },
23631 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23632 .{ ._, .f_nb, .cmov, .tmp1t, .tmp2t, ._, ._ },
23633 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
23634 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
23635 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23636 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19927 } },23637 } },
19928 }, .{23638 }, .{
19929 .required_features = .{ .f16c, null, null, null },23639 .required_features = .{ .sahf, .x87, null, null },
19930 .src_constraints = .{23640 .src_constraints = .{
19931 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },23641 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19932 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },23642 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19933 .any,23643 .any,
19934 },23644 },
19935 .patterns = &.{23645 .patterns = &.{
...@@ -19937,9 +23647,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19937,9 +23647,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19937 },23647 },
19938 .extra_temps = .{23648 .extra_temps = .{
19939 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23649 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19940 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },23650 .{ .type = .f80, .kind = .{ .reg = .st6 } },
19941 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },23651 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19942 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },23652 .{ .type = .u8, .kind = .{ .reg = .ah } },
19943 .unused,23653 .unused,
19944 .unused,23654 .unused,
19945 .unused,23655 .unused,
...@@ -19952,31 +23662,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19952,31 +23662,40 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19952 .clobbers = .{ .eflags = true },23662 .clobbers = .{ .eflags = true },
19953 .each = .{ .once = &.{23663 .each = .{ .once = &.{
19954 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23664 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19955 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ },23665 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
19956 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_size), ._, ._ },23666 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
19957 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },23667 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
19958 .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ },23668 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
19959 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },23669 .{ ._, ._, .sahf, ._, ._, ._, ._ },
19960 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ },23670 .{ ._, ._p, .j, .@"1f", ._, ._, ._ },
23671 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23672 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
23673 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
23674 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23675 .{ ._, ._, .sahf, ._, ._, ._, ._ },
23676 .{ ._, ._b, .j, .@"2f", ._, ._, ._ },
23677 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
23678 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
23679 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
23680 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
19961 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },23681 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19962 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23682 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19963 } },23683 } },
19964 }, .{23684 }, .{
19965 .required_features = .{ .avx, null, null, null },23685 .required_features = .{ .x87, null, null, null },
19966 .src_constraints = .{23686 .src_constraints = .{
19967 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23687 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19968 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23688 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
19969 .any,23689 .any,
19970 },23690 },
19971 .patterns = &.{23691 .patterns = &.{
19972 .{ .src = .{ .to_mem, .to_mem, .none } },23692 .{ .src = .{ .to_mem, .to_mem, .none } },
19973 },23693 },
19974 .call_frame = .{ .alignment = .@"16" },
19975 .extra_temps = .{23694 .extra_temps = .{
19976 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23695 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
19977 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },23696 .{ .type = .f80, .kind = .{ .reg = .st6 } },
19978 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },23697 .{ .type = .f80, .kind = .{ .reg = .st7 } },
19979 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },23698 .{ .type = .u8, .kind = .{ .reg = .ah } },
19980 .unused,23699 .unused,
19981 .unused,23700 .unused,
19982 .unused,23701 .unused,
...@@ -19986,33 +23705,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -19986,33 +23705,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
19986 .unused,23705 .unused,
19987 },23706 },
19988 .dst_temps = .{ .mem, .unused },23707 .dst_temps = .{ .mem, .unused },
19989 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },23708 .clobbers = .{ .eflags = true },
19990 .each = .{ .once = &.{23709 .each = .{ .once = &.{
19991 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23710 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
19992 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },23711 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
19993 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) },23712 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
19994 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) },23713 .{ ._, .f_, .xam, ._, ._, ._, ._ },
19995 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },23714 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
19996 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },23715 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },
19997 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },23716 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
23717 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23718 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
23719 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
23720 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
23721 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },
23722 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
23723 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
23724 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
23725 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
23726 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
23727 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
19998 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23728 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
19999 } },23729 } },
20000 }, .{23730 }, .{
20001 .required_features = .{ .sse4_1, null, null, null },23731 .required_features = .{ .sse, null, null, null },
20002 .src_constraints = .{23732 .src_constraints = .{
20003 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23733 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
20004 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23734 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
20005 .any,23735 .any,
20006 },23736 },
20007 .patterns = &.{23737 .patterns = &.{
20008 .{ .src = .{ .to_mem, .to_mem, .none } },23738 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
20009 },23739 },
20010 .call_frame = .{ .alignment = .@"16" },23740 .call_frame = .{ .alignment = .@"16" },
20011 .extra_temps = .{23741 .extra_temps = .{
20012 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23742 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
20013 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },23743 .unused,
20014 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },23744 .unused,
20015 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },23745 .unused,
20016 .unused,23746 .unused,
20017 .unused,23747 .unused,
20018 .unused,23748 .unused,
...@@ -20021,24 +23751,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20021,24 +23751,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20021 .unused,23751 .unused,
20022 .unused,23752 .unused,
20023 },23753 },
20024 .dst_temps = .{ .mem, .unused },23754 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20025 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },23755 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
20026 .each = .{ .once = &.{23756 .each = .{ .once = &.{
20027 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23757 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
20028 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
20029 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
20030 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
20031 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
20032 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
20033 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
20034 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
20035 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20036 } },23758 } },
20037 }, .{23759 }, .{
20038 .required_features = .{ .sse2, null, null, null },23760 .required_features = .{ .avx, null, null, null },
20039 .src_constraints = .{23761 .src_constraints = .{
20040 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23762 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20041 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23763 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20042 .any,23764 .any,
20043 },23765 },
20044 .patterns = &.{23766 .patterns = &.{
...@@ -20047,10 +23769,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20047,10 +23769,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20047 .call_frame = .{ .alignment = .@"16" },23769 .call_frame = .{ .alignment = .@"16" },
20048 .extra_temps = .{23770 .extra_temps = .{
20049 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23771 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20050 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },23772 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
20051 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },23773 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
20052 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },23774 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
20053 .{ .type = .f16, .kind = .{ .reg = .ax } },23775 .unused,
20054 .unused,23776 .unused,
20055 .unused,23777 .unused,
20056 .unused,23778 .unused,
...@@ -20062,21 +23784,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20062,21 +23784,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20062 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },23784 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
20063 .each = .{ .once = &.{23785 .each = .{ .once = &.{
20064 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23786 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20065 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },23787 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20066 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },23788 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20067 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
20068 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
20069 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },23789 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
20070 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },23790 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20071 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ },23791 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20072 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
20073 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23792 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20074 } },23793 } },
20075 }, .{23794 }, .{
20076 .required_features = .{ .sse, null, null, null },23795 .required_features = .{ .sse2, null, null, null },
20077 .src_constraints = .{23796 .src_constraints = .{
20078 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23797 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20079 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },23798 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20080 .any,23799 .any,
20081 },23800 },
20082 .patterns = &.{23801 .patterns = &.{
...@@ -20085,11 +23804,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20085,11 +23804,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20085 .call_frame = .{ .alignment = .@"16" },23804 .call_frame = .{ .alignment = .@"16" },
20086 .extra_temps = .{23805 .extra_temps = .{
20087 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },23806 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20088 .{ .type = .f16, .kind = .{ .reg = .ax } },23807 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
20089 .{ .type = .f32, .kind = .mem },23808 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
20090 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },23809 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
20091 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },23810 .unused,
20092 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fmaxh" } } },23811 .unused,
20093 .unused,23812 .unused,
20094 .unused,23813 .unused,
20095 .unused,23814 .unused,
...@@ -20100,34 +23819,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20100,34 +23819,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20100 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },23819 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
20101 .each = .{ .once = &.{23820 .each = .{ .once = &.{
20102 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },23821 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20103 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },23822 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20104 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },23823 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20105 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },23824 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
20106 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_size), ._, ._ },23825 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20107 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },23826 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20108 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
20109 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
20110 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
20111 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
20112 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
20113 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
20114 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },23827 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20115 } },23828 } },
20116 }, .{23829 }, .{
20117 .required_features = .{ .avx, null, null, null },23830 .required_features = .{ .sse, null, null, null },
20118 .src_constraints = .{23831 .src_constraints = .{
20119 .{ .scalar_float = .{ .of = .dword, .is = .dword } },23832 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20120 .{ .scalar_float = .{ .of = .dword, .is = .dword } },23833 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
20121 .any,23834 .any,
20122 },23835 },
20123 .patterns = &.{23836 .patterns = &.{
20124 .{ .src = .{ .to_sse, .to_sse, .none } },23837 .{ .src = .{ .to_mem, .to_mem, .none } },
20125 },23838 },
23839 .call_frame = .{ .alignment = .@"16" },
20126 .extra_temps = .{23840 .extra_temps = .{
20127 .{ .type = .f32, .kind = .{ .rc = .sse } },23841 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20128 .unused,23842 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
20129 .unused,23843 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
20130 .unused,23844 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },
20131 .unused,23845 .unused,
20132 .unused,23846 .unused,
20133 .unused,23847 .unused,
...@@ -20136,260 +23850,265 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20136,260 +23850,265 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20136 .unused,23850 .unused,
20137 .unused,23851 .unused,
20138 },23852 },
20139 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },23853 .dst_temps = .{ .mem, .unused },
23854 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
20140 .each = .{ .once = &.{23855 .each = .{ .once = &.{
20141 .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) },23856 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20142 .{ ._, .v_ss, .max, .dst0x, .src1x, .src0d, ._ },23857 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20143 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },23858 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23859 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
23860 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
23861 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23862 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20144 } },23863 } },
20145 }, .{23864 } }) catch |err| switch (err) {
20146 .required_features = .{ .sse4_1, null, null, null },23865 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
20147 .src_constraints = .{23866 @tagName(air_tag),
20148 .{ .scalar_float = .{ .of = .dword, .is = .dword } },23867 cg.typeOf(bin_op.lhs).fmt(pt),
20149 .{ .scalar_float = .{ .of = .dword, .is = .dword } },23868 ops[0].tracking(cg),
20150 .any,23869 ops[1].tracking(cg),
20151 },23870 }),
23871 else => |e| return e,
23872 };
23873 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
23874 },
23875 .min => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
23876 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
23877 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
23878 var res: [1]Temp = undefined;
23879 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
23880 .required_features = .{ .cmov, null, null, null },
23881 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
20152 .patterns = &.{23882 .patterns = &.{
20153 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },23883 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20154 },23884 },
20155 .dst_temps = .{ .{ .rc = .sse }, .unused },23885 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23886 .clobbers = .{ .eflags = true },
20156 .each = .{ .once = &.{23887 .each = .{ .once = &.{
20157 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },23888 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
20158 .{ ._, ._ss, .max, .dst0x, .src0d, ._, ._ },23889 .{ ._, ._ge, .cmov, .dst0d, .src1d, ._, ._ },
20159 .{ ._, ._ss, .cmp, .src0x, .src0d, .sp(.unord), ._ },
20160 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
20161 } },23890 } },
20162 }, .{23891 }, .{
20163 .required_features = .{ .sse, null, null, null },23892 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
20164 .src_constraints = .{
20165 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
20166 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
20167 .any,
20168 },
20169 .patterns = &.{23893 .patterns = &.{
20170 .{ .src = .{ .to_mut_sse, .to_sse, .none } },23894 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20171 },23895 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20172 .extra_temps = .{23896 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20173 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
20174 .unused,
20175 .unused,
20176 .unused,
20177 .unused,
20178 .unused,
20179 .unused,
20180 .unused,
20181 .unused,
20182 .unused,
20183 .unused,
20184 },23897 },
20185 .dst_temps = .{ .{ .ref = .src0 }, .unused },23898 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23899 .clobbers = .{ .eflags = true },
20186 .each = .{ .once = &.{23900 .each = .{ .once = &.{
20187 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },23901 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
20188 .{ ._, ._ss, .max, .tmp0x, .src0d, ._, ._ },23902 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
20189 .{ ._, ._ss, .cmp, .dst0x, .src0d, .sp(.ord), ._ },23903 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },
20190 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
20191 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
20192 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
20193 } },23904 } },
20194 }, .{23905 }, .{
20195 .required_features = .{ .avx, null, null, null },23906 .required_features = .{ .cmov, null, null, null },
20196 .src_constraints = .{23907 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
20197 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
20198 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
20199 .any,
20200 },
20201 .patterns = &.{23908 .patterns = &.{
20202 .{ .src = .{ .to_sse, .to_sse, .none } },23909 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20203 },
20204 .extra_temps = .{
20205 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
20206 .unused,
20207 .unused,
20208 .unused,
20209 .unused,
20210 .unused,
20211 .unused,
20212 .unused,
20213 .unused,
20214 .unused,
20215 .unused,
20216 },23910 },
20217 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },23911 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23912 .clobbers = .{ .eflags = true },
20218 .each = .{ .once = &.{23913 .each = .{ .once = &.{
20219 .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },23914 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
20220 .{ ._, .v_ps, .max, .dst0x, .src1x, .src0x, ._ },23915 .{ ._, ._ae, .cmov, .dst0d, .src1d, ._, ._ },
20221 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
20222 } },23916 } },
20223 }, .{23917 }, .{
20224 .required_features = .{ .sse4_1, null, null, null },23918 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
20225 .src_constraints = .{23919 .patterns = &.{
20226 .{ .scalar_float = .{ .of = .xword, .is = .dword } },23920 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20227 .{ .scalar_float = .{ .of = .xword, .is = .dword } },23921 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20228 .any,23922 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20229 },23923 },
23924 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23925 .clobbers = .{ .eflags = true },
23926 .each = .{ .once = &.{
23927 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
23928 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
23929 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },
23930 } },
23931 }, .{
23932 .required_features = .{ .cmov, null, null, null },
23933 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
20230 .patterns = &.{23934 .patterns = &.{
20231 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },23935 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20232 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },23936 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20233 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },23937 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20234 },23938 },
20235 .dst_temps = .{ .{ .rc = .sse }, .unused },23939 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23940 .clobbers = .{ .eflags = true },
20236 .each = .{ .once = &.{23941 .each = .{ .once = &.{
20237 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },23942 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
20238 .{ ._, ._ps, .max, .dst0x, .src0x, ._, ._ },23943 .{ ._, ._ge, .cmov, .dst0w, .src1w, ._, ._ },
20239 .{ ._, ._ps, .cmp, .src0x, .src0x, .sp(.unord), ._ },
20240 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
20241 } },23944 } },
20242 }, .{23945 }, .{
20243 .required_features = .{ .sse, null, null, null },23946 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },
20244 .src_constraints = .{23947 .patterns = &.{
20245 .{ .scalar_float = .{ .of = .xword, .is = .dword } },23948 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20246 .{ .scalar_float = .{ .of = .xword, .is = .dword } },23949 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20247 .any,23950 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20248 },23951 },
23952 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23953 .clobbers = .{ .eflags = true },
23954 .each = .{ .once = &.{
23955 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
23956 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
23957 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },
23958 } },
23959 }, .{
23960 .required_features = .{ .cmov, null, null, null },
23961 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
20249 .patterns = &.{23962 .patterns = &.{
20250 .{ .src = .{ .to_mut_sse, .mem, .none } },23963 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20251 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },23964 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20252 .{ .src = .{ .to_mut_sse, .to_sse, .none } },23965 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20253 },23966 },
20254 .extra_temps = .{23967 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20255 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },23968 .clobbers = .{ .eflags = true },
20256 .unused,23969 .each = .{ .once = &.{
20257 .unused,23970 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
20258 .unused,23971 .{ ._, ._ae, .cmov, .dst0w, .src1w, ._, ._ },
20259 .unused,23972 } },
20260 .unused,23973 }, .{
20261 .unused,23974 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
20262 .unused,23975 .patterns = &.{
20263 .unused,23976 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20264 .unused,23977 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20265 .unused,23978 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20266 },23979 },
20267 .dst_temps = .{ .{ .ref = .src0 }, .unused },23980 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23981 .clobbers = .{ .eflags = true },
20268 .each = .{ .once = &.{23982 .each = .{ .once = &.{
20269 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },23983 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
20270 .{ ._, ._ps, .max, .tmp0x, .src0x, ._, ._ },23984 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
20271 .{ ._, ._ps, .cmp, .dst0x, .src0x, .sp(.ord), ._ },23985 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },
20272 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
20273 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
20274 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
20275 } },23986 } },
20276 }, .{23987 }, .{
20277 .required_features = .{ .avx, null, null, null },23988 .required_features = .{ .cmov, null, null, null },
20278 .src_constraints = .{23989 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
20279 .{ .scalar_float = .{ .of = .yword, .is = .dword } },23990 .patterns = &.{
20280 .{ .scalar_float = .{ .of = .yword, .is = .dword } },23991 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20281 .any,23992 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
23993 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20282 },23994 },
23995 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23996 .clobbers = .{ .eflags = true },
23997 .each = .{ .once = &.{
23998 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
23999 .{ ._, ._ge, .cmov, .dst0d, .src1d, ._, ._ },
24000 } },
24001 }, .{
24002 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
20283 .patterns = &.{24003 .patterns = &.{
20284 .{ .src = .{ .to_sse, .to_sse, .none } },24004 .{ .src = .{ .to_mut_gpr, .mem, .none } },
24005 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
24006 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20285 },24007 },
20286 .extra_temps = .{24008 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20287 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },24009 .clobbers = .{ .eflags = true },
20288 .unused,24010 .each = .{ .once = &.{
20289 .unused,24011 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
20290 .unused,24012 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
20291 .unused,24013 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
20292 .unused,24014 } },
20293 .unused,24015 }, .{
20294 .unused,24016 .required_features = .{ .cmov, null, null, null },
20295 .unused,24017 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
20296 .unused,24018 .patterns = &.{
20297 .unused,24019 .{ .src = .{ .to_mut_gpr, .mem, .none } },
24020 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
24021 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20298 },24022 },
20299 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },24023 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24024 .clobbers = .{ .eflags = true },
20300 .each = .{ .once = &.{24025 .each = .{ .once = &.{
20301 .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },24026 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
20302 .{ ._, .v_ps, .max, .dst0y, .src1y, .src0y, ._ },24027 .{ ._, ._ae, .cmov, .dst0d, .src1d, ._, ._ },
20303 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
20304 } },24028 } },
20305 }, .{24029 }, .{
20306 .required_features = .{ .avx, null, null, null },24030 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },
20307 .src_constraints = .{24031 .patterns = &.{
20308 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },24032 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20309 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },24033 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20310 .any,24034 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20311 },24035 },
24036 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24037 .clobbers = .{ .eflags = true },
24038 .each = .{ .once = &.{
24039 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
24040 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
24041 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
24042 } },
24043 }, .{
24044 .required_features = .{ .@"64bit", .cmov, null, null },
24045 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
20312 .patterns = &.{24046 .patterns = &.{
20313 .{ .src = .{ .to_mem, .to_mem, .none } },24047 .{ .src = .{ .to_mut_gpr, .mem, .none } },
24048 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
24049 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20314 },24050 },
20315 .extra_temps = .{24051 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20316 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24052 .clobbers = .{ .eflags = true },
20317 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },24053 .each = .{ .once = &.{
20318 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },24054 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
20319 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },24055 .{ ._, ._ge, .cmov, .dst0q, .src1q, ._, ._ },
20320 .unused,24056 } },
20321 .unused,24057 }, .{
20322 .unused,24058 .required_features = .{ .@"64bit", null, null, null },
20323 .unused,24059 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },
20324 .unused,24060 .patterns = &.{
20325 .unused,24061 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20326 .unused,24062 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
24063 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20327 },24064 },
20328 .dst_temps = .{ .mem, .unused },24065 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20329 .clobbers = .{ .eflags = true },24066 .clobbers = .{ .eflags = true },
20330 .each = .{ .once = &.{24067 .each = .{ .once = &.{
20331 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24068 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
20332 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },24069 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
20333 .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },24070 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },
20334 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
20335 .{ ._, .v_ps, .max, .tmp1y, .tmp2y, .tmp1y, ._ },
20336 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
20337 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
20338 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
20339 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20340 } },24071 } },
20341 }, .{24072 }, .{
20342 .required_features = .{ .sse4_1, null, null, null },24073 .required_features = .{ .@"64bit", .cmov, null, null },
20343 .src_constraints = .{24074 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
20344 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
20345 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
20346 .any,
20347 },
20348 .patterns = &.{24075 .patterns = &.{
20349 .{ .src = .{ .to_mem, .to_mem, .none } },24076 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20350 },24077 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
20351 .extra_temps = .{24078 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20352 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20353 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
20354 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
20355 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
20356 .unused,
20357 .unused,
20358 .unused,
20359 .unused,
20360 .unused,
20361 .unused,
20362 .unused,
20363 },24079 },
20364 .dst_temps = .{ .mem, .unused },24080 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20365 .clobbers = .{ .eflags = true },24081 .clobbers = .{ .eflags = true },
20366 .each = .{ .once = &.{24082 .each = .{ .once = &.{
20367 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24083 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
20368 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24084 .{ ._, ._ae, .cmov, .dst0q, .src1q, ._, ._ },
20369 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20370 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
20371 .{ ._, ._ps, .max, .tmp3x, .tmp1x, ._, ._ },
20372 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
20373 .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
20374 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
20375 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20376 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20377 } },24085 } },
20378 }, .{24086 }, .{
20379 .required_features = .{ .sse, null, null, null },24087 .required_features = .{ .@"64bit", null, null, null },
20380 .src_constraints = .{24088 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },
20381 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },24089 .patterns = &.{
20382 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },24090 .{ .src = .{ .to_mut_gpr, .mem, .none } },
20383 .any,24091 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
24092 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
20384 },24093 },
24094 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24095 .clobbers = .{ .eflags = true },
24096 .each = .{ .once = &.{
24097 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },
24098 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
24099 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },
24100 } },
24101 }, .{
24102 .required_features = .{ .@"64bit", .cmov, null, null },
24103 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },
20385 .patterns = &.{24104 .patterns = &.{
20386 .{ .src = .{ .to_mem, .to_mem, .none } },24105 .{ .src = .{ .to_mem, .to_mem, .none } },
20387 },24106 },
20388 .extra_temps = .{24107 .extra_temps = .{
20389 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24108 .{ .type = .isize, .kind = .{ .reg = .rsi } },
20390 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },24109 .{ .type = .u64, .kind = .{ .reg = .rdi } },
20391 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },24110 .{ .type = .u64, .kind = .{ .reg = .rcx } },
20392 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },24111 .unused,
20393 .unused,24112 .unused,
20394 .unused,24113 .unused,
20395 .unused,24114 .unused,
...@@ -20401,33 +24120,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20401,33 +24120,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20401 .dst_temps = .{ .mem, .unused },24120 .dst_temps = .{ .mem, .unused },
20402 .clobbers = .{ .eflags = true },24121 .clobbers = .{ .eflags = true },
20403 .each = .{ .once = &.{24122 .each = .{ .once = &.{
20404 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24123 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
20405 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24124 .{ ._, ._c, .cl, ._, ._, ._, ._ },
20406 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24125 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
20407 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },24126 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
20408 .{ ._, ._ps, .max, .tmp3x, .tmp1x, ._, ._ },24127 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20409 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },24128 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
20410 .{ ._, ._ps, .@"and", .tmp3x, .tmp1x, ._, ._ },24129 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
20411 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },24130 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
20412 .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ },24131 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
20413 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },24132 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
20414 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24133 .{ ._, ._ge, .cmov, .tmp0p, .tmp1p, ._, ._ },
20415 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24134 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24135 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
24136 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
20416 } },24137 } },
20417 }, .{24138 }, .{
20418 .required_features = .{ .avx, null, null, null },24139 .required_features = .{ .@"64bit", null, null, null },
20419 .src_constraints = .{24140 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },
20420 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20421 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20422 .any,
20423 },
20424 .patterns = &.{24141 .patterns = &.{
20425 .{ .src = .{ .to_sse, .to_sse, .none } },24142 .{ .src = .{ .to_mem, .to_mem, .none } },
20426 },24143 },
20427 .extra_temps = .{24144 .extra_temps = .{
20428 .{ .type = .f64, .kind = .{ .rc = .sse } },24145 .{ .type = .isize, .kind = .{ .reg = .rsi } },
20429 .unused,24146 .{ .type = .u64, .kind = .{ .reg = .rdi } },
20430 .unused,24147 .{ .type = .u64, .kind = .{ .reg = .rcx } },
20431 .unused,24148 .unused,
20432 .unused,24149 .unused,
20433 .unused,24150 .unused,
...@@ -20437,43 +24154,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20437,43 +24154,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20437 .unused,24154 .unused,
20438 .unused,24155 .unused,
20439 },24156 },
20440 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },24157 .dst_temps = .{ .mem, .unused },
20441 .each = .{ .once = &.{24158 .clobbers = .{ .eflags = true },
20442 .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) },
20443 .{ ._, .v_sd, .max, .dst0x, .src1x, .src0q, ._ },
20444 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
20445 } },
20446 }, .{
20447 .required_features = .{ .sse4_1, null, null, null },
20448 .src_constraints = .{
20449 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20450 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20451 .any,
20452 },
20453 .patterns = &.{
20454 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
20455 },
20456 .dst_temps = .{ .{ .rc = .sse }, .unused },
20457 .each = .{ .once = &.{24159 .each = .{ .once = &.{
20458 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },24160 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },
20459 .{ ._, ._sd, .max, .dst0x, .src0q, ._, ._ },24161 .{ ._, ._c, .cl, ._, ._, ._, ._ },
20460 .{ ._, ._sd, .cmp, .src0x, .src0q, .sp(.unord), ._ },24162 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },
20461 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },24163 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },
24164 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
24165 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
24166 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
24167 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
24168 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
24169 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
24170 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
24171 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24172 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
24173 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
20462 } },24174 } },
20463 }, .{24175 }, .{
20464 .required_features = .{ .sse2, null, null, null },24176 .required_features = .{ .@"64bit", .cmov, null, null },
20465 .src_constraints = .{24177 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },
20466 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20467 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20468 .any,
20469 },
20470 .patterns = &.{24178 .patterns = &.{
20471 .{ .src = .{ .to_mut_sse, .to_sse, .none } },24179 .{ .src = .{ .to_mem, .to_mem, .none } },
20472 },24180 },
20473 .extra_temps = .{24181 .extra_temps = .{
20474 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24182 .{ .type = .isize, .kind = .{ .reg = .rsi } },
20475 .unused,24183 .{ .type = .u64, .kind = .{ .reg = .rdi } },
20476 .unused,24184 .{ .type = .u64, .kind = .{ .reg = .rcx } },
20477 .unused,24185 .unused,
20478 .unused,24186 .unused,
20479 .unused,24187 .unused,
...@@ -20483,30 +24191,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20483,30 +24191,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20483 .unused,24191 .unused,
20484 .unused,24192 .unused,
20485 },24193 },
20486 .dst_temps = .{ .{ .ref = .src0 }, .unused },24194 .dst_temps = .{ .mem, .unused },
24195 .clobbers = .{ .eflags = true },
20487 .each = .{ .once = &.{24196 .each = .{ .once = &.{
20488 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },24197 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
20489 .{ ._, ._sd, .max, .tmp0x, .src0q, ._, ._ },24198 .{ ._, ._c, .cl, ._, ._, ._, ._ },
20490 .{ ._, ._sd, .cmp, .dst0x, .src0q, .sp(.ord), ._ },24199 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
20491 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },24200 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
20492 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },24201 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20493 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },24202 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
24203 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
24204 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
24205 .{ ._, ._ae, .cmov, .tmp0p, .tmp1p, ._, ._ },
24206 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24207 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
24208 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
20494 } },24209 } },
20495 }, .{24210 }, .{
20496 .required_features = .{ .sse, null, null, null },24211 .required_features = .{ .@"64bit", null, null, null },
20497 .src_constraints = .{24212 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },
20498 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20499 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
20500 .any,
20501 },
20502 .patterns = &.{24213 .patterns = &.{
20503 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },24214 .{ .src = .{ .to_mem, .to_mem, .none } },
20504 },24215 },
20505 .call_frame = .{ .alignment = .@"16" },
20506 .extra_temps = .{24216 .extra_temps = .{
20507 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmax" } } },24217 .{ .type = .isize, .kind = .{ .reg = .rsi } },
20508 .unused,24218 .{ .type = .u64, .kind = .{ .reg = .rdi } },
20509 .unused,24219 .{ .type = .u64, .kind = .{ .reg = .rcx } },
20510 .unused,24220 .unused,
20511 .unused,24221 .unused,
20512 .unused,24222 .unused,
...@@ -20516,64 +24226,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20516,64 +24226,59 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20516 .unused,24226 .unused,
20517 .unused,24227 .unused,
20518 },24228 },
20519 .dst_temps = .{ .{ .ref = .src0 }, .unused },24229 .dst_temps = .{ .mem, .unused },
20520 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },24230 .clobbers = .{ .eflags = true },
20521 .each = .{ .once = &.{24231 .each = .{ .once = &.{
20522 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },24232 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },
24233 .{ ._, ._c, .cl, ._, ._, ._, ._ },
24234 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },
24235 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },
24236 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
24237 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
24238 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
24239 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
24240 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
24241 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
24242 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
24243 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
20523 } },24244 } },
20524 }, .{24245 }, .{
20525 .required_features = .{ .avx, null, null, null },24246 .required_features = .{ .avx, null, null, null },
20526 .src_constraints = .{24247 .src_constraints = .{
20527 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24248 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20528 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24249 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20529 .any,24250 .any,
20530 },24251 },
20531 .patterns = &.{24252 .patterns = &.{
24253 .{ .src = .{ .to_sse, .mem, .none } },
24254 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
20532 .{ .src = .{ .to_sse, .to_sse, .none } },24255 .{ .src = .{ .to_sse, .to_sse, .none } },
20533 },24256 },
20534 .extra_temps = .{24257 .dst_temps = .{ .{ .rc = .sse }, .unused },
20535 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
20536 .unused,
20537 .unused,
20538 .unused,
20539 .unused,
20540 .unused,
20541 .unused,
20542 .unused,
20543 .unused,
20544 .unused,
20545 .unused,
20546 },
20547 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
20548 .each = .{ .once = &.{24258 .each = .{ .once = &.{
20549 .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },24259 .{ ._, .vp_b, .mins, .dst0x, .src0x, .src1x, ._ },
20550 .{ ._, .v_pd, .max, .dst0x, .src1x, .src0x, ._ },
20551 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
20552 } },24260 } },
20553 }, .{24261 }, .{
20554 .required_features = .{ .sse4_1, null, null, null },24262 .required_features = .{ .sse4_1, null, null, null },
20555 .src_constraints = .{24263 .src_constraints = .{
20556 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24264 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20557 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24265 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20558 .any,24266 .any,
20559 },24267 },
20560 .patterns = &.{24268 .patterns = &.{
20561 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },24269 .{ .src = .{ .to_mut_sse, .mem, .none } },
20562 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },24270 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
20563 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },24271 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
20564 },24272 },
20565 .dst_temps = .{ .{ .rc = .sse }, .unused },24273 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20566 .each = .{ .once = &.{24274 .each = .{ .once = &.{
20567 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },24275 .{ ._, .p_b, .mins, .dst0x, .src1x, ._, ._ },
20568 .{ ._, ._pd, .max, .dst0x, .src0x, ._, ._ },
20569 .{ ._, ._pd, .cmp, .src0x, .src0x, .sp(.unord), ._ },
20570 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
20571 } },24276 } },
20572 }, .{24277 }, .{
20573 .required_features = .{ .sse2, null, null, null },24278 .required_features = .{ .sse2, null, null, null },
20574 .src_constraints = .{24279 .src_constraints = .{
20575 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24280 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20576 .{ .scalar_float = .{ .of = .xword, .is = .qword } },24281 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },
20577 .any,24282 .any,
20578 },24283 },
20579 .patterns = &.{24284 .patterns = &.{
...@@ -20581,62 +24286,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20581,62 +24286,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20581 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },24286 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
20582 .{ .src = .{ .to_mut_sse, .to_sse, .none } },24287 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
20583 },24288 },
20584 .extra_temps = .{24289 .dst_temps = .{ .{ .rc = .sse }, .unused },
20585 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
20586 .unused,
20587 .unused,
20588 .unused,
20589 .unused,
20590 .unused,
20591 .unused,
20592 .unused,
20593 .unused,
20594 .unused,
20595 .unused,
20596 },
20597 .dst_temps = .{ .{ .ref = .src0 }, .unused },
20598 .each = .{ .once = &.{24290 .each = .{ .once = &.{
20599 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },24291 .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ },
20600 .{ ._, ._pd, .max, .tmp0x, .src0x, ._, ._ },24292 .{ ._, .p_b, .cmpgt, .dst0x, .src0x, ._, ._ },
20601 .{ ._, ._pd, .cmp, .dst0x, .src0x, .sp(.ord), ._ },24293 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
20602 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },24294 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
20603 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },24295 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
20604 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
20605 } },24296 } },
20606 }, .{24297 }, .{
20607 .required_features = .{ .avx, null, null, null },24298 .required_features = .{ .avx2, null, null, null },
20608 .src_constraints = .{24299 .src_constraints = .{
20609 .{ .scalar_float = .{ .of = .yword, .is = .qword } },24300 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },
20610 .{ .scalar_float = .{ .of = .yword, .is = .qword } },24301 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },
20611 .any,24302 .any,
20612 },24303 },
20613 .patterns = &.{24304 .patterns = &.{
24305 .{ .src = .{ .to_sse, .mem, .none } },
24306 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
20614 .{ .src = .{ .to_sse, .to_sse, .none } },24307 .{ .src = .{ .to_sse, .to_sse, .none } },
20615 },24308 },
20616 .extra_temps = .{24309 .dst_temps = .{ .{ .rc = .sse }, .unused },
20617 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
20618 .unused,
20619 .unused,
20620 .unused,
20621 .unused,
20622 .unused,
20623 .unused,
20624 .unused,
20625 .unused,
20626 .unused,
20627 .unused,
20628 },
20629 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
20630 .each = .{ .once = &.{24310 .each = .{ .once = &.{
20631 .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },24311 .{ ._, .vp_b, .mins, .dst0y, .src0y, .src1y, ._ },
20632 .{ ._, .v_pd, .max, .dst0y, .src1y, .src0y, ._ },
20633 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
20634 } },24312 } },
20635 }, .{24313 }, .{
20636 .required_features = .{ .avx, null, null, null },24314 .required_features = .{ .avx2, null, null, null },
20637 .src_constraints = .{24315 .src_constraints = .{
20638 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },24316 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },
20639 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },24317 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },
20640 .any,24318 .any,
20641 },24319 },
20642 .patterns = &.{24320 .patterns = &.{
...@@ -20644,9 +24322,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20644,9 +24322,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20644 },24322 },
20645 .extra_temps = .{24323 .extra_temps = .{
20646 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24324 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20647 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },24325 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },
20648 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },24326 .unused,
20649 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },24327 .unused,
20650 .unused,24328 .unused,
20651 .unused,24329 .unused,
20652 .unused,24330 .unused,
...@@ -20659,20 +24337,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20659,20 +24337,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20659 .clobbers = .{ .eflags = true },24337 .clobbers = .{ .eflags = true },
20660 .each = .{ .once = &.{24338 .each = .{ .once = &.{
20661 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24339 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20662 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },24340 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
20663 .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },24341 .{ ._, .vp_b, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
20664 .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },24342 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
20665 .{ ._, .v_pd, .max, .tmp1y, .tmp2y, .tmp1y, ._ },
20666 .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
20667 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
20668 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },24343 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
20669 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24344 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20670 } },24345 } },
20671 }, .{24346 }, .{
20672 .required_features = .{ .sse4_1, null, null, null },24347 .required_features = .{ .avx, null, null, null },
20673 .src_constraints = .{24348 .src_constraints = .{
20674 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },24349 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20675 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },24350 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20676 .any,24351 .any,
20677 },24352 },
20678 .patterns = &.{24353 .patterns = &.{
...@@ -20680,9 +24355,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20680,9 +24355,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20680 },24355 },
20681 .extra_temps = .{24356 .extra_temps = .{
20682 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24357 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20683 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },24358 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20684 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24359 .unused,
20685 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24360 .unused,
20686 .unused,24361 .unused,
20687 .unused,24362 .unused,
20688 .unused,24363 .unused,
...@@ -20695,21 +24370,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20695,21 +24370,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20695 .clobbers = .{ .eflags = true },24370 .clobbers = .{ .eflags = true },
20696 .each = .{ .once = &.{24371 .each = .{ .once = &.{
20697 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24372 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20698 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24373 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20699 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24374 .{ ._, .vp_b, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
20700 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },24375 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20701 .{ ._, ._pd, .max, .tmp3x, .tmp1x, ._, ._ },
20702 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
20703 .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
20704 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
20705 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24376 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20706 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24377 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20707 } },24378 } },
20708 }, .{24379 }, .{
20709 .required_features = .{ .sse2, null, null, null },24380 .required_features = .{ .sse4_1, null, null, null },
20710 .src_constraints = .{24381 .src_constraints = .{
20711 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },24382 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20712 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },24383 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20713 .any,24384 .any,
20714 },24385 },
20715 .patterns = &.{24386 .patterns = &.{
...@@ -20717,9 +24388,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20717,9 +24388,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20717 },24388 },
20718 .extra_temps = .{24389 .extra_temps = .{
20719 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24390 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20720 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24391 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20721 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24392 .unused,
20722 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },24393 .unused,
20723 .unused,24394 .unused,
20724 .unused,24395 .unused,
20725 .unused,24396 .unused,
...@@ -20732,151 +24403,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20732,151 +24403,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20732 .clobbers = .{ .eflags = true },24403 .clobbers = .{ .eflags = true },
20733 .each = .{ .once = &.{24404 .each = .{ .once = &.{
20734 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24405 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20735 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24406 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20736 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24407 .{ ._, .p_b, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20737 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },24408 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20738 .{ ._, ._pd, .max, .tmp3x, .tmp1x, ._, ._ },
20739 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
20740 .{ ._, ._pd, .@"and", .tmp3x, .tmp1x, ._, ._ },
20741 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
20742 .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ },
20743 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20744 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24409 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20745 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24410 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20746 } },24411 } },
20747 }, .{24412 }, .{
20748 .required_features = .{ .sse, null, null, null },24413 .required_features = .{ .sse2, null, null, null },
20749 .src_constraints = .{24414 .src_constraints = .{
20750 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },24415 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20751 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },24416 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },
20752 .any,24417 .any,
20753 },24418 },
20754 .patterns = &.{24419 .patterns = &.{
20755 .{ .src = .{ .to_mem, .to_mem, .none } },24420 .{ .src = .{ .to_mem, .to_mem, .none } },
20756 },24421 },
20757 .call_frame = .{ .alignment = .@"16" },
20758 .extra_temps = .{24422 .extra_temps = .{
20759 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24423 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20760 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },24424 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20761 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },24425 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },
20762 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmax" } } },
20763 .unused,
20764 .unused,
20765 .unused,
20766 .unused,
20767 .unused,
20768 .unused,
20769 .unused,
20770 },
20771 .dst_temps = .{ .mem, .unused },
20772 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
20773 .each = .{ .once = &.{
20774 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20775 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
20776 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
20777 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ },
20778 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ },
20779 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
20780 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
20781 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
20782 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20783 } },
20784 }, .{
20785 .required_features = .{ .x87, .cmov, null, null },
20786 .src_constraints = .{
20787 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
20788 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
20789 .any,
20790 },
20791 .patterns = &.{
20792 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
20793 .{ .src = .{ .mem, .to_x87, .none } },
20794 .{ .src = .{ .to_x87, .to_x87, .none } },
20795 },
20796 .extra_temps = .{
20797 .{ .type = .f80, .kind = .{ .reg = .st7 } },
20798 .unused,
20799 .unused,
20800 .unused,
20801 .unused,
20802 .unused,
20803 .unused,
20804 .unused,
20805 .unused,
20806 .unused,
20807 .unused,
20808 },
20809 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
20810 .clobbers = .{ .eflags = true },
20811 .each = .{ .once = &.{
20812 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
20813 .{ ._, .f_, .ucomi, .tmp0t, .tmp0t, ._, ._ },
20814 .{ ._, .f_u, .cmov, .tmp0t, .src1t, ._, ._ },
20815 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
20816 .{ ._, .f_, .ucomi, .tmp0t, .src1t, ._, ._ },
20817 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
20818 .{ ._, .f_nb, .cmov, .tmp0t, .src1t, ._, ._ },
20819 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
20820 } },
20821 }, .{
20822 .required_features = .{ .sahf, .x87, null, null },
20823 .src_constraints = .{
20824 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
20825 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
20826 .any,
20827 },
20828 .patterns = &.{
20829 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
20830 .{ .src = .{ .mem, .to_x87, .none } },
20831 .{ .src = .{ .to_x87, .to_x87, .none } },
20832 },
20833 .extra_temps = .{
20834 .{ .type = .f80, .kind = .{ .reg = .st7 } },
20835 .{ .type = .u8, .kind = .{ .reg = .ah } },
20836 .unused,
20837 .unused,
20838 .unused,
20839 .unused,
20840 .unused,
20841 .unused,
20842 .unused,24426 .unused,
20843 .unused,24427 .unused,
20844 .unused,24428 .unused,
20845 },24429 .unused,
20846 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },24430 .unused,
20847 .clobbers = .{ .eflags = true },24431 .unused,
20848 .each = .{ .once = &.{24432 .unused,
20849 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },24433 .unused,
20850 .{ ._, .f_, .ucom, .tmp0t, ._, ._, ._ },24434 },
20851 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },24435 .dst_temps = .{ .mem, .unused },
20852 .{ ._, ._, .sahf, ._, ._, ._, ._ },24436 .clobbers = .{ .eflags = true },
20853 .{ ._, ._p, .j, .@"0f", ._, ._, ._ },24437 .each = .{ .once = &.{
20854 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },24438 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20855 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },24439 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20856 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },24440 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
20857 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },24441 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp2x, ._, ._ },
20858 .{ ._, ._, .sahf, ._, ._, ._, ._ },24442 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
20859 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },24443 .{ ._, .p_, .andn, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
20860 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },24444 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
20861 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },24445 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
20862 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },24446 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24447 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20863 } },24448 } },
20864 }, .{24449 }, .{
20865 .required_features = .{ .x87, null, null, null },24450 .required_features = .{ .cmov, .slow_incdec, null, null },
20866 .src_constraints = .{24451 .src_constraints = .{
20867 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },24452 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20868 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },24453 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20869 .any,24454 .any,
20870 },24455 },
20871 .patterns = &.{24456 .patterns = &.{
20872 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },24457 .{ .src = .{ .to_mem, .to_mem, .none } },
20873 .{ .src = .{ .mem, .to_x87, .none } },
20874 .{ .src = .{ .to_x87, .to_x87, .none } },
20875 },24458 },
20876 .extra_temps = .{24459 .extra_temps = .{
20877 .{ .type = .f80, .kind = .{ .reg = .st7 } },24460 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20878 .{ .type = .u8, .kind = .{ .reg = .ah } },24461 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20879 .unused,24462 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20880 .unused,24463 .unused,
20881 .unused,24464 .unused,
20882 .unused,24465 .unused,
...@@ -20886,29 +24469,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20886,29 +24469,23 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20886 .unused,24469 .unused,
20887 .unused,24470 .unused,
20888 },24471 },
20889 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },24472 .dst_temps = .{ .mem, .unused },
20890 .clobbers = .{ .eflags = true },24473 .clobbers = .{ .eflags = true },
20891 .each = .{ .once = &.{24474 .each = .{ .once = &.{
20892 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },24475 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20893 .{ ._, .f_, .xam, ._, ._, ._, ._ },24476 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
20894 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },24477 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20895 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },24478 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
20896 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },24479 .{ ._, ._ge, .cmov, .tmp1d, .tmp2d, ._, ._ },
20897 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },24480 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20898 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },24481 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
20899 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },24482 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20900 .{ ._, .f_, .xch, .src1t, ._, ._, ._ },
20901 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },
20902 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
20903 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
20904 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
20905 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },
20906 } },24483 } },
20907 }, .{24484 }, .{
20908 .required_features = .{ .x87, .cmov, null, null },24485 .required_features = .{ .cmov, null, null, null },
20909 .src_constraints = .{24486 .src_constraints = .{
20910 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24487 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20911 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24488 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20912 .any,24489 .any,
20913 },24490 },
20914 .patterns = &.{24491 .patterns = &.{
...@@ -20916,8 +24493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20916,8 +24493,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20916 },24493 },
20917 .extra_temps = .{24494 .extra_temps = .{
20918 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24495 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20919 .{ .type = .f80, .kind = .{ .reg = .st6 } },24496 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20920 .{ .type = .f80, .kind = .{ .reg = .st7 } },24497 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20921 .unused,24498 .unused,
20922 .unused,24499 .unused,
20923 .unused,24500 .unused,
...@@ -20931,24 +24508,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20931,24 +24508,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20931 .clobbers = .{ .eflags = true },24508 .clobbers = .{ .eflags = true },
20932 .each = .{ .once = &.{24509 .each = .{ .once = &.{
20933 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24510 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20934 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },24511 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
20935 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },24512 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20936 .{ ._, .f_, .ucomi, .tmp1t, .tmp1t, ._, ._ },24513 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
20937 .{ ._, .f_u, .cmov, .tmp1t, .tmp2t, ._, ._ },24514 .{ ._, ._ge, .cmov, .tmp1d, .tmp2d, ._, ._ },
20938 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },24515 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20939 .{ ._, .f_, .ucomi, .tmp1t, .tmp2t, ._, ._ },24516 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
20940 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },24517 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
20941 .{ ._, .f_nb, .cmov, .tmp1t, .tmp2t, ._, ._ },
20942 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
20943 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
20944 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20945 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20946 } },24518 } },
20947 }, .{24519 }, .{
20948 .required_features = .{ .sahf, .x87, null, null },24520 .required_features = .{ .slow_incdec, null, null, null },
20949 .src_constraints = .{24521 .src_constraints = .{
20950 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24522 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20951 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24523 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20952 .any,24524 .any,
20953 },24525 },
20954 .patterns = &.{24526 .patterns = &.{
...@@ -20956,9 +24528,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20956,9 +24528,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20956 },24528 },
20957 .extra_temps = .{24529 .extra_temps = .{
20958 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24530 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
20959 .{ .type = .f80, .kind = .{ .reg = .st6 } },24531 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
20960 .{ .type = .f80, .kind = .{ .reg = .st7 } },24532 .unused,
20961 .{ .type = .u8, .kind = .{ .reg = .ah } },24533 .unused,
20962 .unused,24534 .unused,
20963 .unused,24535 .unused,
20964 .unused,24536 .unused,
...@@ -20971,30 +24543,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -20971,30 +24543,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
20971 .clobbers = .{ .eflags = true },24543 .clobbers = .{ .eflags = true },
20972 .each = .{ .once = &.{24544 .each = .{ .once = &.{
20973 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24545 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
20974 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },24546 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
20975 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },24547 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20976 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },24548 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
20977 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },24549 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
20978 .{ ._, ._, .sahf, ._, ._, ._, ._ },24550 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
20979 .{ ._, ._p, .j, .@"1f", ._, ._, ._ },24551 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
20980 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
20981 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
20982 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
20983 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
20984 .{ ._, ._, .sahf, ._, ._, ._, ._ },
20985 .{ ._, ._b, .j, .@"2f", ._, ._, ._ },
20986 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
20987 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
20988 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
20989 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
20990 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
20991 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24552 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
20992 } },24553 } },
20993 }, .{24554 }, .{
20994 .required_features = .{ .x87, null, null, null },
20995 .src_constraints = .{24555 .src_constraints = .{
20996 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24556 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20997 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },24557 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },
20998 .any,24558 .any,
20999 },24559 },
21000 .patterns = &.{24560 .patterns = &.{
...@@ -21002,9 +24562,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21002,9 +24562,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21002 },24562 },
21003 .extra_temps = .{24563 .extra_temps = .{
21004 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24564 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21005 .{ .type = .f80, .kind = .{ .reg = .st6 } },24565 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },
21006 .{ .type = .f80, .kind = .{ .reg = .st7 } },24566 .unused,
21007 .{ .type = .u8, .kind = .{ .reg = .ah } },24567 .unused,
21008 .unused,24568 .unused,
21009 .unused,24569 .unused,
21010 .unused,24570 .unused,
...@@ -21017,39 +24577,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21017,39 +24577,91 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21017 .clobbers = .{ .eflags = true },24577 .clobbers = .{ .eflags = true },
21018 .each = .{ .once = &.{24578 .each = .{ .once = &.{
21019 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24579 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21020 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },24580 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
21021 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },24581 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
21022 .{ ._, .f_, .xam, ._, ._, ._, ._ },24582 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
21023 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },24583 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
21024 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },24584 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
21025 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },24585 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
21026 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },24586 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
21027 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
21028 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
21029 .{ ._, .f_, .xch, .tmp2t, ._, ._, ._ },
21030 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },
21031 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
21032 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
21033 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
21034 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
21035 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
21036 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21037 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21038 } },24587 } },
21039 }, .{24588 }, .{
21040 .required_features = .{ .sse, null, null, null },24589 .required_features = .{ .sse, .mmx, null, null },
21041 .src_constraints = .{24590 .src_constraints = .{
21042 .{ .scalar_float = .{ .of = .xword, .is = .xword } },24591 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
21043 .{ .scalar_float = .{ .of = .xword, .is = .xword } },24592 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },
21044 .any,24593 .any,
21045 },24594 },
21046 .patterns = &.{24595 .patterns = &.{
21047 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },24596 .{ .src = .{ .to_mut_mmx, .mem, .none } },
24597 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },
24598 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },
24599 },
24600 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24601 .each = .{ .once = &.{
24602 .{ ._, .p_b, .minu, .dst0q, .src1q, ._, ._ },
24603 } },
24604 }, .{
24605 .required_features = .{ .avx, null, null, null },
24606 .src_constraints = .{
24607 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
24608 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
24609 .any,
24610 },
24611 .patterns = &.{
24612 .{ .src = .{ .to_sse, .mem, .none } },
24613 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
24614 .{ .src = .{ .to_sse, .to_sse, .none } },
24615 },
24616 .dst_temps = .{ .{ .rc = .sse }, .unused },
24617 .each = .{ .once = &.{
24618 .{ ._, .vp_b, .minu, .dst0x, .src0x, .src1x, ._ },
24619 } },
24620 }, .{
24621 .required_features = .{ .sse2, null, null, null },
24622 .src_constraints = .{
24623 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
24624 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
24625 .any,
24626 },
24627 .patterns = &.{
24628 .{ .src = .{ .to_mut_sse, .mem, .none } },
24629 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
24630 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
24631 },
24632 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24633 .each = .{ .once = &.{
24634 .{ ._, .p_b, .minu, .dst0x, .src1x, ._, ._ },
24635 } },
24636 }, .{
24637 .required_features = .{ .avx2, null, null, null },
24638 .src_constraints = .{
24639 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
24640 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
24641 .any,
24642 },
24643 .patterns = &.{
24644 .{ .src = .{ .to_sse, .mem, .none } },
24645 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
24646 .{ .src = .{ .to_sse, .to_sse, .none } },
24647 },
24648 .dst_temps = .{ .{ .rc = .sse }, .unused },
24649 .each = .{ .once = &.{
24650 .{ ._, .vp_b, .minu, .dst0y, .src0y, .src1y, ._ },
24651 } },
24652 }, .{
24653 .required_features = .{ .avx2, null, null, null },
24654 .src_constraints = .{
24655 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
24656 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },
24657 .any,
24658 },
24659 .patterns = &.{
24660 .{ .src = .{ .to_mem, .to_mem, .none } },
21048 },24661 },
21049 .call_frame = .{ .alignment = .@"16" },
21050 .extra_temps = .{24662 .extra_temps = .{
21051 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },24663 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21052 .unused,24664 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
21053 .unused,24665 .unused,
21054 .unused,24666 .unused,
21055 .unused,24667 .unused,
...@@ -21060,27 +24672,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21060,27 +24672,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21060 .unused,24672 .unused,
21061 .unused,24673 .unused,
21062 },24674 },
21063 .dst_temps = .{ .{ .ref = .src0 }, .unused },24675 .dst_temps = .{ .mem, .unused },
21064 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },24676 .clobbers = .{ .eflags = true },
21065 .each = .{ .once = &.{24677 .each = .{ .once = &.{
21066 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },24678 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24679 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
24680 .{ ._, .vp_b, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
24681 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
24682 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
24683 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21067 } },24684 } },
21068 }, .{24685 }, .{
21069 .required_features = .{ .avx, null, null, null },24686 .required_features = .{ .avx, null, null, null },
21070 .src_constraints = .{24687 .src_constraints = .{
21071 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24688 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
21072 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24689 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
21073 .any,24690 .any,
21074 },24691 },
21075 .patterns = &.{24692 .patterns = &.{
21076 .{ .src = .{ .to_mem, .to_mem, .none } },24693 .{ .src = .{ .to_mem, .to_mem, .none } },
21077 },24694 },
21078 .call_frame = .{ .alignment = .@"16" },
21079 .extra_temps = .{24695 .extra_temps = .{
21080 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24696 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21081 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },24697 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
21082 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },24698 .unused,
21083 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },24699 .unused,
21084 .unused,24700 .unused,
21085 .unused,24701 .unused,
21086 .unused,24702 .unused,
...@@ -21090,12 +24706,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21090,12 +24706,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21090 .unused,24706 .unused,
21091 },24707 },
21092 .dst_temps = .{ .mem, .unused },24708 .dst_temps = .{ .mem, .unused },
21093 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },24709 .clobbers = .{ .eflags = true },
21094 .each = .{ .once = &.{24710 .each = .{ .once = &.{
21095 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24711 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21096 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24712 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21097 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24713 .{ ._, .vp_b, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
21098 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
21099 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },24714 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21100 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24715 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21101 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24716 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -21103,19 +24718,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21103,19 +24718,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21103 }, .{24718 }, .{
21104 .required_features = .{ .sse2, null, null, null },24719 .required_features = .{ .sse2, null, null, null },
21105 .src_constraints = .{24720 .src_constraints = .{
21106 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24721 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
21107 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24722 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },
21108 .any,24723 .any,
21109 },24724 },
21110 .patterns = &.{24725 .patterns = &.{
21111 .{ .src = .{ .to_mem, .to_mem, .none } },24726 .{ .src = .{ .to_mem, .to_mem, .none } },
21112 },24727 },
21113 .call_frame = .{ .alignment = .@"16" },
21114 .extra_temps = .{24728 .extra_temps = .{
21115 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24729 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21116 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },24730 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
21117 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },24731 .unused,
21118 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },24732 .unused,
21119 .unused,24733 .unused,
21120 .unused,24734 .unused,
21121 .unused,24735 .unused,
...@@ -21125,32 +24739,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21125,32 +24739,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21125 .unused,24739 .unused,
21126 },24740 },
21127 .dst_temps = .{ .mem, .unused },24741 .dst_temps = .{ .mem, .unused },
21128 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },24742 .clobbers = .{ .eflags = true },
21129 .each = .{ .once = &.{24743 .each = .{ .once = &.{
21130 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24744 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21131 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24745 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21132 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24746 .{ ._, .p_b, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21133 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
21134 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },24747 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21135 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24748 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21136 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24749 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21137 } },24750 } },
21138 }, .{24751 }, .{
21139 .required_features = .{ .sse, null, null, null },24752 .required_features = .{ .cmov, .slow_incdec, null, null },
21140 .src_constraints = .{24753 .src_constraints = .{
21141 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24754 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21142 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },24755 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21143 .any,24756 .any,
21144 },24757 },
21145 .patterns = &.{24758 .patterns = &.{
21146 .{ .src = .{ .to_mem, .to_mem, .none } },24759 .{ .src = .{ .to_mem, .to_mem, .none } },
21147 },24760 },
21148 .call_frame = .{ .alignment = .@"16" },
21149 .extra_temps = .{24761 .extra_temps = .{
21150 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },24762 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21151 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },24763 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21152 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },24764 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21153 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmaxq" } } },24765 .unused,
21154 .unused,24766 .unused,
21155 .unused,24767 .unused,
21156 .unused,24768 .unused,
...@@ -21160,263 +24772,232 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21160,263 +24772,232 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21160 .unused,24772 .unused,
21161 },24773 },
21162 .dst_temps = .{ .mem, .unused },24774 .dst_temps = .{ .mem, .unused },
21163 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },24775 .clobbers = .{ .eflags = true },
21164 .each = .{ .once = &.{24776 .each = .{ .once = &.{
21165 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },24777 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21166 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },24778 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
21167 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },24779 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
21168 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },24780 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
21169 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },24781 .{ ._, ._ae, .cmov, .tmp1d, .tmp2d, ._, ._ },
21170 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },24782 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
24783 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
21171 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },24784 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21172 } },24785 } },
21173 } }) catch |err| switch (err) {
21174 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
21175 @tagName(air_tag),
21176 cg.typeOf(bin_op.lhs).fmt(pt),
21177 ops[0].tracking(cg),
21178 ops[1].tracking(cg),
21179 }),
21180 else => |e| return e,
21181 };
21182 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
21183 },
21184 .min => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
21185 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
21186 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
21187 var res: [1]Temp = undefined;
21188 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
21189 .required_features = .{ .cmov, null, null, null },
21190 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
21191 .patterns = &.{
21192 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21193 },
21194 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21195 .clobbers = .{ .eflags = true },
21196 .each = .{ .once = &.{
21197 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
21198 .{ ._, ._ge, .cmov, .dst0d, .src1d, ._, ._ },
21199 } },
21200 }, .{
21201 .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any },
21202 .patterns = &.{
21203 .{ .src = .{ .to_mut_gpr, .mem, .none } },
21204 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21205 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21206 },
21207 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21208 .clobbers = .{ .eflags = true },
21209 .each = .{ .once = &.{
21210 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
21211 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
21212 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },
21213 } },
21214 }, .{24786 }, .{
21215 .required_features = .{ .cmov, null, null, null },24787 .required_features = .{ .cmov, null, null, null },
21216 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },24788 .src_constraints = .{
21217 .patterns = &.{24789 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21218 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24790 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
24791 .any,
21219 },24792 },
21220 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21221 .clobbers = .{ .eflags = true },
21222 .each = .{ .once = &.{
21223 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },
21224 .{ ._, ._ae, .cmov, .dst0d, .src1d, ._, ._ },
21225 } },
21226 }, .{
21227 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
21228 .patterns = &.{24793 .patterns = &.{
21229 .{ .src = .{ .to_mut_gpr, .mem, .none } },24794 .{ .src = .{ .to_mem, .to_mem, .none } },
21230 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21231 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21232 },24795 },
21233 .dst_temps = .{ .{ .ref = .src0 }, .unused },24796 .extra_temps = .{
21234 .clobbers = .{ .eflags = true },24797 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21235 .each = .{ .once = &.{24798 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21236 .{ ._, ._, .cmp, .src0b, .src1b, ._, ._ },24799 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21237 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },24800 .unused,
21238 .{ ._, ._, .mov, .dst0b, .src1b, ._, ._ },24801 .unused,
21239 } },24802 .unused,
21240 }, .{24803 .unused,
21241 .required_features = .{ .cmov, null, null, null },24804 .unused,
21242 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },24805 .unused,
21243 .patterns = &.{24806 .unused,
21244 .{ .src = .{ .to_mut_gpr, .mem, .none } },24807 .unused,
21245 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21246 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21247 },24808 },
21248 .dst_temps = .{ .{ .ref = .src0 }, .unused },24809 .dst_temps = .{ .mem, .unused },
21249 .clobbers = .{ .eflags = true },24810 .clobbers = .{ .eflags = true },
21250 .each = .{ .once = &.{24811 .each = .{ .once = &.{
21251 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },24812 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21252 .{ ._, ._ge, .cmov, .dst0w, .src1w, ._, ._ },24813 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
24814 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
24815 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
24816 .{ ._, ._ae, .cmov, .tmp1d, .tmp2d, ._, ._ },
24817 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
24818 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
24819 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
21253 } },24820 } },
21254 }, .{24821 }, .{
21255 .src_constraints = .{ .{ .signed_int = .word }, .{ .signed_int = .word }, .any },24822 .required_features = .{ .slow_incdec, null, null, null },
21256 .patterns = &.{24823 .src_constraints = .{
21257 .{ .src = .{ .to_mut_gpr, .mem, .none } },24824 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21258 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24825 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21259 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24826 .any,
21260 },24827 },
21261 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21262 .clobbers = .{ .eflags = true },
21263 .each = .{ .once = &.{
21264 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },
21265 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
21266 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },
21267 } },
21268 }, .{
21269 .required_features = .{ .cmov, null, null, null },
21270 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },
21271 .patterns = &.{24828 .patterns = &.{
21272 .{ .src = .{ .to_mut_gpr, .mem, .none } },24829 .{ .src = .{ .to_mem, .to_mem, .none } },
21273 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21274 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21275 },24830 },
21276 .dst_temps = .{ .{ .ref = .src0 }, .unused },24831 .extra_temps = .{
21277 .clobbers = .{ .eflags = true },24832 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21278 .each = .{ .once = &.{24833 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21279 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },24834 .unused,
21280 .{ ._, ._ae, .cmov, .dst0w, .src1w, ._, ._ },24835 .unused,
21281 } },24836 .unused,
21282 }, .{24837 .unused,
21283 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .unsigned_int = .word }, .any },24838 .unused,
21284 .patterns = &.{24839 .unused,
21285 .{ .src = .{ .to_mut_gpr, .mem, .none } },24840 .unused,
21286 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24841 .unused,
21287 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24842 .unused,
21288 },24843 },
21289 .dst_temps = .{ .{ .ref = .src0 }, .unused },24844 .dst_temps = .{ .mem, .unused },
21290 .clobbers = .{ .eflags = true },24845 .clobbers = .{ .eflags = true },
21291 .each = .{ .once = &.{24846 .each = .{ .once = &.{
21292 .{ ._, ._, .cmp, .src0w, .src1w, ._, ._ },24847 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21293 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },24848 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
21294 .{ ._, ._, .mov, .dst0w, .src1w, ._, ._ },24849 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
24850 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
24851 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
24852 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
24853 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
24854 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21295 } },24855 } },
21296 }, .{24856 }, .{
21297 .required_features = .{ .cmov, null, null, null },24857 .src_constraints = .{
21298 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },24858 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21299 .patterns = &.{24859 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
21300 .{ .src = .{ .to_mut_gpr, .mem, .none } },24860 .any,
21301 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21302 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21303 },24861 },
21304 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21305 .clobbers = .{ .eflags = true },
21306 .each = .{ .once = &.{
21307 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },
21308 .{ ._, ._ge, .cmov, .dst0d, .src1d, ._, ._ },
21309 } },
21310 }, .{
21311 .src_constraints = .{ .{ .signed_int = .dword }, .{ .signed_int = .dword }, .any },
21312 .patterns = &.{24862 .patterns = &.{
21313 .{ .src = .{ .to_mut_gpr, .mem, .none } },24863 .{ .src = .{ .to_mem, .to_mem, .none } },
21314 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21315 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21316 },24864 },
21317 .dst_temps = .{ .{ .ref = .src0 }, .unused },24865 .extra_temps = .{
21318 .clobbers = .{ .eflags = true },24866 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21319 .each = .{ .once = &.{24867 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
21320 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },24868 .unused,
21321 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },24869 .unused,
21322 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },24870 .unused,
21323 } },24871 .unused,
21324 }, .{24872 .unused,
21325 .required_features = .{ .cmov, null, null, null },24873 .unused,
21326 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },24874 .unused,
21327 .patterns = &.{24875 .unused,
21328 .{ .src = .{ .to_mut_gpr, .mem, .none } },24876 .unused,
21329 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21330 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21331 },24877 },
21332 .dst_temps = .{ .{ .ref = .src0 }, .unused },24878 .dst_temps = .{ .mem, .unused },
21333 .clobbers = .{ .eflags = true },24879 .clobbers = .{ .eflags = true },
21334 .each = .{ .once = &.{24880 .each = .{ .once = &.{
21335 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },24881 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21336 .{ ._, ._ae, .cmov, .dst0d, .src1d, ._, ._ },24882 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
24883 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
24884 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
24885 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },
24886 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
24887 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
24888 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
21337 } },24889 } },
21338 }, .{24890 }, .{
21339 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .unsigned_int = .dword }, .any },24891 .required_features = .{ .sse, .mmx, null, null },
24892 .src_constraints = .{
24893 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
24894 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
24895 .any,
24896 },
21340 .patterns = &.{24897 .patterns = &.{
21341 .{ .src = .{ .to_mut_gpr, .mem, .none } },24898 .{ .src = .{ .to_mut_mmx, .mem, .none } },
21342 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24899 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },
21343 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24900 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },
21344 },24901 },
21345 .dst_temps = .{ .{ .ref = .src0 }, .unused },24902 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21346 .clobbers = .{ .eflags = true },
21347 .each = .{ .once = &.{24903 .each = .{ .once = &.{
21348 .{ ._, ._, .cmp, .src0d, .src1d, ._, ._ },24904 .{ ._, .p_w, .mins, .dst0q, .src1q, ._, ._ },
21349 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },
21350 .{ ._, ._, .mov, .dst0d, .src1d, ._, ._ },
21351 } },24905 } },
21352 }, .{24906 }, .{
21353 .required_features = .{ .@"64bit", .cmov, null, null },24907 .required_features = .{ .avx, null, null, null },
21354 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },24908 .src_constraints = .{
24909 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
24910 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
24911 .any,
24912 },
21355 .patterns = &.{24913 .patterns = &.{
21356 .{ .src = .{ .to_mut_gpr, .mem, .none } },24914 .{ .src = .{ .to_sse, .mem, .none } },
21357 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24915 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
21358 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24916 .{ .src = .{ .to_sse, .to_sse, .none } },
21359 },24917 },
21360 .dst_temps = .{ .{ .ref = .src0 }, .unused },24918 .dst_temps = .{ .{ .rc = .sse }, .unused },
21361 .clobbers = .{ .eflags = true },
21362 .each = .{ .once = &.{24919 .each = .{ .once = &.{
21363 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },24920 .{ ._, .vp_w, .mins, .dst0x, .src0x, .src1x, ._ },
21364 .{ ._, ._ge, .cmov, .dst0q, .src1q, ._, ._ },
21365 } },24921 } },
21366 }, .{24922 }, .{
21367 .required_features = .{ .@"64bit", null, null, null },24923 .required_features = .{ .sse2, null, null, null },
21368 .src_constraints = .{ .{ .signed_int = .qword }, .{ .signed_int = .qword }, .any },24924 .src_constraints = .{
24925 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
24926 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },
24927 .any,
24928 },
21369 .patterns = &.{24929 .patterns = &.{
21370 .{ .src = .{ .to_mut_gpr, .mem, .none } },24930 .{ .src = .{ .to_mut_sse, .mem, .none } },
21371 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24931 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
21372 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24932 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
21373 },24933 },
21374 .dst_temps = .{ .{ .ref = .src0 }, .unused },24934 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21375 .clobbers = .{ .eflags = true },
21376 .each = .{ .once = &.{24935 .each = .{ .once = &.{
21377 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },24936 .{ ._, .p_w, .mins, .dst0x, .src1x, ._, ._ },
21378 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
21379 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },
21380 } },24937 } },
21381 }, .{24938 }, .{
21382 .required_features = .{ .@"64bit", .cmov, null, null },24939 .required_features = .{ .avx2, null, null, null },
21383 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },24940 .src_constraints = .{
24941 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },
24942 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },
24943 .any,
24944 },
21384 .patterns = &.{24945 .patterns = &.{
21385 .{ .src = .{ .to_mut_gpr, .mem, .none } },24946 .{ .src = .{ .to_sse, .mem, .none } },
21386 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },24947 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
21387 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },24948 .{ .src = .{ .to_sse, .to_sse, .none } },
21388 },24949 },
21389 .dst_temps = .{ .{ .ref = .src0 }, .unused },24950 .dst_temps = .{ .{ .rc = .sse }, .unused },
21390 .clobbers = .{ .eflags = true },
21391 .each = .{ .once = &.{24951 .each = .{ .once = &.{
21392 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },24952 .{ ._, .vp_w, .mins, .dst0y, .src0y, .src1y, ._ },
21393 .{ ._, ._ae, .cmov, .dst0q, .src1q, ._, ._ },
21394 } },24953 } },
21395 }, .{24954 }, .{
21396 .required_features = .{ .@"64bit", null, null, null },24955 .required_features = .{ .avx2, null, null, null },
21397 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .unsigned_int = .qword }, .any },24956 .src_constraints = .{
24957 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },
24958 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },
24959 .any,
24960 },
21398 .patterns = &.{24961 .patterns = &.{
21399 .{ .src = .{ .to_mut_gpr, .mem, .none } },24962 .{ .src = .{ .to_mem, .to_mem, .none } },
21400 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
21401 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
21402 },24963 },
21403 .dst_temps = .{ .{ .ref = .src0 }, .unused },24964 .extra_temps = .{
24965 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24966 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
24967 .unused,
24968 .unused,
24969 .unused,
24970 .unused,
24971 .unused,
24972 .unused,
24973 .unused,
24974 .unused,
24975 .unused,
24976 },
24977 .dst_temps = .{ .mem, .unused },
21404 .clobbers = .{ .eflags = true },24978 .clobbers = .{ .eflags = true },
21405 .each = .{ .once = &.{24979 .each = .{ .once = &.{
21406 .{ ._, ._, .cmp, .src0q, .src1q, ._, ._ },24980 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21407 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },24981 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
21408 .{ ._, ._, .mov, .dst0q, .src1q, ._, ._ },24982 .{ ._, .vp_w, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
24983 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
24984 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
24985 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21409 } },24986 } },
21410 }, .{24987 }, .{
21411 .required_features = .{ .@"64bit", .cmov, null, null },24988 .required_features = .{ .avx, null, null, null },
21412 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },24989 .src_constraints = .{
24990 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
24991 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
24992 .any,
24993 },
21413 .patterns = &.{24994 .patterns = &.{
21414 .{ .src = .{ .to_mem, .to_mem, .none } },24995 .{ .src = .{ .to_mem, .to_mem, .none } },
21415 },24996 },
21416 .extra_temps = .{24997 .extra_temps = .{
21417 .{ .type = .isize, .kind = .{ .reg = .rsi } },24998 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21418 .{ .type = .u64, .kind = .{ .reg = .rdi } },24999 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
21419 .{ .type = .u64, .kind = .{ .reg = .rcx } },25000 .unused,
21420 .unused,25001 .unused,
21421 .unused,25002 .unused,
21422 .unused,25003 .unused,
...@@ -21429,31 +25010,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21429,31 +25010,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21429 .dst_temps = .{ .mem, .unused },25010 .dst_temps = .{ .mem, .unused },
21430 .clobbers = .{ .eflags = true },25011 .clobbers = .{ .eflags = true },
21431 .each = .{ .once = &.{25012 .each = .{ .once = &.{
21432 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },25013 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21433 .{ ._, ._c, .cl, ._, ._, ._, ._ },25014 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21434 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },25015 .{ ._, .vp_w, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
21435 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },25016 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21436 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25017 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21437 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25018 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21438 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
21439 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
21440 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
21441 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
21442 .{ ._, ._ge, .cmov, .tmp0p, .tmp1p, ._, ._ },
21443 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
21444 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
21445 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
21446 } },25019 } },
21447 }, .{25020 }, .{
21448 .required_features = .{ .@"64bit", null, null, null },25021 .required_features = .{ .sse2, null, null, null },
21449 .src_constraints = .{ .any_signed_int, .any_signed_int, .any },25022 .src_constraints = .{
25023 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
25024 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },
25025 .any,
25026 },
21450 .patterns = &.{25027 .patterns = &.{
21451 .{ .src = .{ .to_mem, .to_mem, .none } },25028 .{ .src = .{ .to_mem, .to_mem, .none } },
21452 },25029 },
21453 .extra_temps = .{25030 .extra_temps = .{
21454 .{ .type = .isize, .kind = .{ .reg = .rsi } },25031 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21455 .{ .type = .u64, .kind = .{ .reg = .rdi } },25032 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },
21456 .{ .type = .u64, .kind = .{ .reg = .rcx } },25033 .unused,
21457 .unused,25034 .unused,
21458 .unused,25035 .unused,
21459 .unused,25036 .unused,
...@@ -21466,31 +25043,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21466,31 +25043,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21466 .dst_temps = .{ .mem, .unused },25043 .dst_temps = .{ .mem, .unused },
21467 .clobbers = .{ .eflags = true },25044 .clobbers = .{ .eflags = true },
21468 .each = .{ .once = &.{25045 .each = .{ .once = &.{
21469 .{ ._, ._, .mov, .tmp0p, .sia(1, .src0, .sub_size_div_8), ._, ._ },25046 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21470 .{ ._, ._c, .cl, ._, ._, ._, ._ },25047 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21471 .{ .@"0:", ._, .mov, .tmp1q, .memsiad(.src0q, .@"8", .tmp0, .add_size, -8), ._, ._ },25048 .{ ._, .p_w, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21472 .{ ._, ._, .sbb, .tmp1q, .memsiad(.src1q, .@"8", .tmp0, .add_size, -8), ._, ._ },25049 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21473 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25050 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21474 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25051 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21475 .{ ._, ._, .mov, .tmp1q, .memad(.src0q, .add_size, -8), ._, ._ },
21476 .{ ._, ._, .sbb, .tmp1q, .memad(.src1q, .add_size, -8), ._, ._ },
21477 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },
21478 .{ ._, ._nge, .j, .@"0f", ._, ._, ._ },
21479 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
21480 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
21481 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
21482 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
21483 } },25052 } },
21484 }, .{25053 }, .{
21485 .required_features = .{ .@"64bit", .cmov, null, null },25054 .required_features = .{ .cmov, null, null, null },
21486 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },25055 .src_constraints = .{
25056 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
25057 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
25058 .any,
25059 },
21487 .patterns = &.{25060 .patterns = &.{
21488 .{ .src = .{ .to_mem, .to_mem, .none } },25061 .{ .src = .{ .to_mem, .to_mem, .none } },
21489 },25062 },
21490 .extra_temps = .{25063 .extra_temps = .{
21491 .{ .type = .isize, .kind = .{ .reg = .rsi } },25064 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21492 .{ .type = .u64, .kind = .{ .reg = .rdi } },25065 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
21493 .{ .type = .u64, .kind = .{ .reg = .rcx } },25066 .unused,
21494 .unused,25067 .unused,
21495 .unused,25068 .unused,
21496 .unused,25069 .unused,
...@@ -21503,29 +25076,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21503,29 +25076,27 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21503 .dst_temps = .{ .mem, .unused },25076 .dst_temps = .{ .mem, .unused },
21504 .clobbers = .{ .eflags = true },25077 .clobbers = .{ .eflags = true },
21505 .each = .{ .once = &.{25078 .each = .{ .once = &.{
21506 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },25079 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21507 .{ ._, ._c, .cl, ._, ._, ._, ._ },25080 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
21508 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },25081 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21509 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },25082 .{ ._, ._ge, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21510 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25083 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
21511 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25084 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
21512 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },25085 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21513 .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ },
21514 .{ ._, ._ae, .cmov, .tmp0p, .tmp1p, ._, ._ },
21515 .{ ._, ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
21516 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
21517 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
21518 } },25086 } },
21519 }, .{25087 }, .{
21520 .required_features = .{ .@"64bit", null, null, null },25088 .src_constraints = .{
21521 .src_constraints = .{ .any_unsigned_int, .any_unsigned_int, .any },25089 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
25090 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },
25091 .any,
25092 },
21522 .patterns = &.{25093 .patterns = &.{
21523 .{ .src = .{ .to_mem, .to_mem, .none } },25094 .{ .src = .{ .to_mem, .to_mem, .none } },
21524 },25095 },
21525 .extra_temps = .{25096 .extra_temps = .{
21526 .{ .type = .isize, .kind = .{ .reg = .rsi } },25097 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21527 .{ .type = .u64, .kind = .{ .reg = .rdi } },25098 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },
21528 .{ .type = .u64, .kind = .{ .reg = .rcx } },25099 .unused,
21529 .unused,25100 .unused,
21530 .unused,25101 .unused,
21531 .unused,25102 .unused,
...@@ -21538,24 +25109,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21538,24 +25109,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21538 .dst_temps = .{ .mem, .unused },25109 .dst_temps = .{ .mem, .unused },
21539 .clobbers = .{ .eflags = true },25110 .clobbers = .{ .eflags = true },
21540 .each = .{ .once = &.{25111 .each = .{ .once = &.{
21541 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size_div_8), ._, ._ },25112 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21542 .{ ._, ._c, .cl, ._, ._, ._, ._ },25113 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
21543 .{ .@"0:", ._, .mov, .tmp1q, .memsia(.src0q, .@"8", .tmp0, .add_size), ._, ._ },25114 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21544 .{ ._, ._, .sbb, .tmp1q, .memsia(.src1q, .@"8", .tmp0, .add_size), ._, ._ },25115 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
21545 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25116 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21546 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25117 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
21547 .{ ._, ._, .lea, .tmp0p, .mem(.src0), ._, ._ },25118 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
21548 .{ ._, ._nae, .j, .@"0f", ._, ._, ._ },25119 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21549 .{ ._, ._, .lea, .tmp0p, .mem(.src1), ._, ._ },
21550 .{ .@"0:", ._, .lea, .tmp1p, .mem(.dst0), ._, ._ },
21551 .{ ._, ._, .mov, .tmp2d, .sa(.src0, .add_size_div_8), ._, ._ },
21552 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
21553 } },25120 } },
21554 }, .{25121 }, .{
21555 .required_features = .{ .avx, null, null, null },25122 .required_features = .{ .avx, null, null, null },
21556 .src_constraints = .{25123 .src_constraints = .{
21557 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25124 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21558 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25125 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21559 .any,25126 .any,
21560 },25127 },
21561 .patterns = &.{25128 .patterns = &.{
...@@ -21565,13 +25132,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21565,13 +25132,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21565 },25132 },
21566 .dst_temps = .{ .{ .rc = .sse }, .unused },25133 .dst_temps = .{ .{ .rc = .sse }, .unused },
21567 .each = .{ .once = &.{25134 .each = .{ .once = &.{
21568 .{ ._, .vp_b, .mins, .dst0x, .src0x, .src1x, ._ },25135 .{ ._, .vp_w, .minu, .dst0x, .src0x, .src1x, ._ },
21569 } },25136 } },
21570 }, .{25137 }, .{
21571 .required_features = .{ .sse4_1, null, null, null },25138 .required_features = .{ .sse4_1, null, null, null },
21572 .src_constraints = .{25139 .src_constraints = .{
21573 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25140 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21574 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25141 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21575 .any,25142 .any,
21576 },25143 },
21577 .patterns = &.{25144 .patterns = &.{
...@@ -21581,13 +25148,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21581,13 +25148,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21581 },25148 },
21582 .dst_temps = .{ .{ .ref = .src0 }, .unused },25149 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21583 .each = .{ .once = &.{25150 .each = .{ .once = &.{
21584 .{ ._, .p_b, .mins, .dst0x, .src1x, ._, ._ },25151 .{ ._, .p_w, .minu, .dst0x, .src1x, ._, ._ },
21585 } },25152 } },
21586 }, .{25153 }, .{
21587 .required_features = .{ .sse2, null, null, null },25154 .required_features = .{ .sse2, null, null, null },
21588 .src_constraints = .{25155 .src_constraints = .{
21589 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25156 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21590 .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } },25157 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21591 .any,25158 .any,
21592 },25159 },
21593 .patterns = &.{25160 .patterns = &.{
...@@ -21597,17 +25164,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21597,17 +25164,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21597 },25164 },
21598 .dst_temps = .{ .{ .rc = .sse }, .unused },25165 .dst_temps = .{ .{ .rc = .sse }, .unused },
21599 .each = .{ .once = &.{25166 .each = .{ .once = &.{
21600 .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ },25167 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },
21601 .{ ._, .p_b, .cmpgt, .dst0x, .src0x, ._, ._ },25168 .{ ._, .p_w, .subus, .src0x, .src1x, ._, ._ },
21602 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },25169 .{ ._, .p_w, .sub, .dst0x, .src0x, ._, ._ },
21603 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
21604 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
21605 } },25170 } },
21606 }, .{25171 }, .{
21607 .required_features = .{ .avx2, null, null, null },25172 .required_features = .{ .avx2, null, null, null },
21608 .src_constraints = .{25173 .src_constraints = .{
21609 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },25174 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21610 .{ .scalar_signed_int = .{ .of = .yword, .is = .byte } },25175 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21611 .any,25176 .any,
21612 },25177 },
21613 .patterns = &.{25178 .patterns = &.{
...@@ -21617,13 +25182,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21617,13 +25182,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21617 },25182 },
21618 .dst_temps = .{ .{ .rc = .sse }, .unused },25183 .dst_temps = .{ .{ .rc = .sse }, .unused },
21619 .each = .{ .once = &.{25184 .each = .{ .once = &.{
21620 .{ ._, .vp_b, .mins, .dst0y, .src0y, .src1y, ._ },25185 .{ ._, .vp_w, .minu, .dst0y, .src0y, .src1y, ._ },
21621 } },25186 } },
21622 }, .{25187 }, .{
21623 .required_features = .{ .avx2, null, null, null },25188 .required_features = .{ .avx2, null, null, null },
21624 .src_constraints = .{25189 .src_constraints = .{
21625 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },25190 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21626 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .byte } },25191 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
21627 .any,25192 .any,
21628 },25193 },
21629 .patterns = &.{25194 .patterns = &.{
...@@ -21631,7 +25196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21631,7 +25196,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21631 },25196 },
21632 .extra_temps = .{25197 .extra_temps = .{
21633 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25198 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21634 .{ .type = .vector_32_i8, .kind = .{ .rc = .sse } },25199 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },
21635 .unused,25200 .unused,
21636 .unused,25201 .unused,
21637 .unused,25202 .unused,
...@@ -21647,7 +25212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21647,7 +25212,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21647 .each = .{ .once = &.{25212 .each = .{ .once = &.{
21648 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25213 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21649 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },25214 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
21650 .{ ._, .vp_b, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },25215 .{ ._, .vp_w, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
21651 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },25216 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
21652 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },25217 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
21653 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25218 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -21655,8 +25220,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21655,8 +25220,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21655 }, .{25220 }, .{
21656 .required_features = .{ .avx, null, null, null },25221 .required_features = .{ .avx, null, null, null },
21657 .src_constraints = .{25222 .src_constraints = .{
21658 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25223 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21659 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25224 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
21660 .any,25225 .any,
21661 },25226 },
21662 .patterns = &.{25227 .patterns = &.{
...@@ -21664,7 +25229,141 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21664,7 +25229,141 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21664 },25229 },
21665 .extra_temps = .{25230 .extra_temps = .{
21666 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25231 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21667 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },25232 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
25233 .unused,
25234 .unused,
25235 .unused,
25236 .unused,
25237 .unused,
25238 .unused,
25239 .unused,
25240 .unused,
25241 .unused,
25242 },
25243 .dst_temps = .{ .mem, .unused },
25244 .clobbers = .{ .eflags = true },
25245 .each = .{ .once = &.{
25246 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25247 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25248 .{ ._, .vp_w, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
25249 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25250 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25251 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25252 } },
25253 }, .{
25254 .required_features = .{ .sse4_1, null, null, null },
25255 .src_constraints = .{
25256 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
25257 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
25258 .any,
25259 },
25260 .patterns = &.{
25261 .{ .src = .{ .to_mem, .to_mem, .none } },
25262 },
25263 .extra_temps = .{
25264 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25265 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
25266 .unused,
25267 .unused,
25268 .unused,
25269 .unused,
25270 .unused,
25271 .unused,
25272 .unused,
25273 .unused,
25274 .unused,
25275 },
25276 .dst_temps = .{ .mem, .unused },
25277 .clobbers = .{ .eflags = true },
25278 .each = .{ .once = &.{
25279 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25280 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25281 .{ ._, .p_w, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
25282 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25283 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25284 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25285 } },
25286 }, .{
25287 .required_features = .{ .sse2, null, null, null },
25288 .src_constraints = .{
25289 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
25290 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },
25291 .any,
25292 },
25293 .patterns = &.{
25294 .{ .src = .{ .to_mem, .to_mem, .none } },
25295 },
25296 .extra_temps = .{
25297 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25298 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
25299 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },
25300 .unused,
25301 .unused,
25302 .unused,
25303 .unused,
25304 .unused,
25305 .unused,
25306 .unused,
25307 .unused,
25308 },
25309 .dst_temps = .{ .mem, .unused },
25310 .clobbers = .{ .eflags = true },
25311 .each = .{ .once = &.{
25312 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25313 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25314 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },
25315 .{ ._, .p_w, .subus, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
25316 .{ ._, .p_w, .sub, .tmp2x, .tmp1x, ._, ._ },
25317 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp2x, ._, ._ },
25318 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25319 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25320 } },
25321 }, .{
25322 .required_features = .{ .cmov, null, null, null },
25323 .src_constraints = .{
25324 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
25325 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
25326 .any,
25327 },
25328 .patterns = &.{
25329 .{ .src = .{ .to_mem, .to_mem, .none } },
25330 },
25331 .extra_temps = .{
25332 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25333 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
25334 .unused,
25335 .unused,
25336 .unused,
25337 .unused,
25338 .unused,
25339 .unused,
25340 .unused,
25341 .unused,
25342 .unused,
25343 },
25344 .dst_temps = .{ .mem, .unused },
25345 .clobbers = .{ .eflags = true },
25346 .each = .{ .once = &.{
25347 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25348 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
25349 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
25350 .{ ._, ._ae, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
25351 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
25352 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
25353 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25354 } },
25355 }, .{
25356 .src_constraints = .{
25357 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
25358 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },
25359 .any,
25360 },
25361 .patterns = &.{
25362 .{ .src = .{ .to_mem, .to_mem, .none } },
25363 },
25364 .extra_temps = .{
25365 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25366 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },
21668 .unused,25367 .unused,
21669 .unused,25368 .unused,
21670 .unused,25369 .unused,
...@@ -21678,18 +25377,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21678,18 +25377,88 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21678 .dst_temps = .{ .mem, .unused },25377 .dst_temps = .{ .mem, .unused },
21679 .clobbers = .{ .eflags = true },25378 .clobbers = .{ .eflags = true },
21680 .each = .{ .once = &.{25379 .each = .{ .once = &.{
21681 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25380 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21682 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },25381 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
21683 .{ ._, .vp_b, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },25382 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21684 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },25383 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
21685 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },25384 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },
21686 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25385 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
25386 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
25387 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25388 } },
25389 }, .{
25390 .required_features = .{ .avx, null, null, null },
25391 .src_constraints = .{
25392 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
25393 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
25394 .any,
25395 },
25396 .patterns = &.{
25397 .{ .src = .{ .to_sse, .mem, .none } },
25398 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
25399 .{ .src = .{ .to_sse, .to_sse, .none } },
25400 },
25401 .dst_temps = .{ .{ .rc = .sse }, .unused },
25402 .each = .{ .once = &.{
25403 .{ ._, .vp_d, .mins, .dst0x, .src0x, .src1x, ._ },
25404 } },
25405 }, .{
25406 .required_features = .{ .sse4_1, null, null, null },
25407 .src_constraints = .{
25408 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
25409 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
25410 .any,
25411 },
25412 .patterns = &.{
25413 .{ .src = .{ .to_mut_sse, .mem, .none } },
25414 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
25415 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
25416 },
25417 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25418 .each = .{ .once = &.{
25419 .{ ._, .p_d, .mins, .dst0x, .src1x, ._, ._ },
25420 } },
25421 }, .{
25422 .required_features = .{ .sse2, null, null, null },
25423 .src_constraints = .{
25424 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
25425 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
25426 .any,
25427 },
25428 .patterns = &.{
25429 .{ .src = .{ .to_mut_sse, .mem, .none } },
25430 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
25431 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
25432 },
25433 .dst_temps = .{ .{ .rc = .sse }, .unused },
25434 .each = .{ .once = &.{
25435 .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ },
25436 .{ ._, .p_d, .cmpgt, .dst0x, .src0x, ._, ._ },
25437 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
25438 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
25439 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
25440 } },
25441 }, .{
25442 .required_features = .{ .avx2, null, null, null },
25443 .src_constraints = .{
25444 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
25445 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
25446 .any,
25447 },
25448 .patterns = &.{
25449 .{ .src = .{ .to_sse, .mem, .none } },
25450 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
25451 .{ .src = .{ .to_sse, .to_sse, .none } },
25452 },
25453 .dst_temps = .{ .{ .rc = .sse }, .unused },
25454 .each = .{ .once = &.{
25455 .{ ._, .vp_d, .mins, .dst0y, .src0y, .src1y, ._ },
21687 } },25456 } },
21688 }, .{25457 }, .{
21689 .required_features = .{ .sse4_1, null, null, null },25458 .required_features = .{ .avx2, null, null, null },
21690 .src_constraints = .{25459 .src_constraints = .{
21691 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25460 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
21692 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25461 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
21693 .any,25462 .any,
21694 },25463 },
21695 .patterns = &.{25464 .patterns = &.{
...@@ -21697,7 +25466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21697,7 +25466,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21697 },25466 },
21698 .extra_temps = .{25467 .extra_temps = .{
21699 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25468 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21700 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },25469 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },
21701 .unused,25470 .unused,
21702 .unused,25471 .unused,
21703 .unused,25472 .unused,
...@@ -21712,17 +25481,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21712,17 +25481,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21712 .clobbers = .{ .eflags = true },25481 .clobbers = .{ .eflags = true },
21713 .each = .{ .once = &.{25482 .each = .{ .once = &.{
21714 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25483 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21715 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },25484 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
21716 .{ ._, .p_b, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },25485 .{ ._, .vp_d, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
21717 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },25486 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
21718 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },25487 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
21719 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25488 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21720 } },25489 } },
21721 }, .{25490 }, .{
21722 .required_features = .{ .sse2, null, null, null },25491 .required_features = .{ .avx, null, null, null },
21723 .src_constraints = .{25492 .src_constraints = .{
21724 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25493 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
21725 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } },25494 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
21726 .any,25495 .any,
21727 },25496 },
21728 .patterns = &.{25497 .patterns = &.{
...@@ -21730,8 +25499,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21730,8 +25499,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21730 },25499 },
21731 .extra_temps = .{25500 .extra_temps = .{
21732 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25501 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21733 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },25502 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
21734 .{ .type = .vector_16_i8, .kind = .{ .rc = .sse } },25503 .unused,
21735 .unused,25504 .unused,
21736 .unused,25505 .unused,
21737 .unused,25506 .unused,
...@@ -21745,21 +25514,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21745,21 +25514,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21745 .clobbers = .{ .eflags = true },25514 .clobbers = .{ .eflags = true },
21746 .each = .{ .once = &.{25515 .each = .{ .once = &.{
21747 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25516 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21748 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },25517 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21749 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },25518 .{ ._, .vp_d, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
21750 .{ ._, .p_b, .cmpgt, .tmp1x, .tmp2x, ._, ._ },25519 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21751 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
21752 .{ ._, .p_, .andn, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21753 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
21754 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21755 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },25520 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21756 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25521 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21757 } },25522 } },
21758 }, .{25523 }, .{
21759 .required_features = .{ .cmov, .slow_incdec, null, null },25524 .required_features = .{ .sse4_1, null, null, null },
21760 .src_constraints = .{25525 .src_constraints = .{
21761 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25526 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
21762 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25527 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
21763 .any,25528 .any,
21764 },25529 },
21765 .patterns = &.{25530 .patterns = &.{
...@@ -21767,8 +25532,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21767,8 +25532,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21767 },25532 },
21768 .extra_temps = .{25533 .extra_temps = .{
21769 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25534 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21770 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25535 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
21771 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25536 .unused,
21772 .unused,25537 .unused,
21773 .unused,25538 .unused,
21774 .unused,25539 .unused,
...@@ -21782,19 +25547,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21782,19 +25547,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21782 .clobbers = .{ .eflags = true },25547 .clobbers = .{ .eflags = true },
21783 .each = .{ .once = &.{25548 .each = .{ .once = &.{
21784 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25549 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21785 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25550 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21786 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },25551 .{ ._, .p_d, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21787 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },25552 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
21788 .{ ._, ._ge, .cmov, .tmp1d, .tmp2d, ._, ._ },25553 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
21789 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
21790 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
21791 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25554 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21792 } },25555 } },
21793 }, .{25556 }, .{
21794 .required_features = .{ .cmov, null, null, null },25557 .required_features = .{ .sse2, null, null, null },
21795 .src_constraints = .{25558 .src_constraints = .{
21796 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25559 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
21797 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25560 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
21798 .any,25561 .any,
21799 },25562 },
21800 .patterns = &.{25563 .patterns = &.{
...@@ -21802,8 +25565,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21802,8 +25565,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21802 },25565 },
21803 .extra_temps = .{25566 .extra_temps = .{
21804 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25567 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21805 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25568 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
21806 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25569 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },
21807 .unused,25570 .unused,
21808 .unused,25571 .unused,
21809 .unused,25572 .unused,
...@@ -21817,19 +25580,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21817,19 +25580,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21817 .clobbers = .{ .eflags = true },25580 .clobbers = .{ .eflags = true },
21818 .each = .{ .once = &.{25581 .each = .{ .once = &.{
21819 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25582 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21820 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25583 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21821 .{ ._, ._, .movsx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },25584 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
21822 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },25585 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp2x, ._, ._ },
21823 .{ ._, ._ge, .cmov, .tmp1d, .tmp2d, ._, ._ },25586 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },
21824 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25587 .{ ._, .p_, .andn, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
21825 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25588 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },
21826 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25589 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25590 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25591 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21827 } },25592 } },
21828 }, .{25593 }, .{
21829 .required_features = .{ .slow_incdec, null, null, null },25594 .required_features = .{ .cmov, null, null, null },
21830 .src_constraints = .{25595 .src_constraints = .{
21831 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25596 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
21832 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25597 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
21833 .any,25598 .any,
21834 },25599 },
21835 .patterns = &.{25600 .patterns = &.{
...@@ -21837,7 +25602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21837,7 +25602,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21837 },25602 },
21838 .extra_temps = .{25603 .extra_temps = .{
21839 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25604 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21840 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25605 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
21841 .unused,25606 .unused,
21842 .unused,25607 .unused,
21843 .unused,25608 .unused,
...@@ -21852,18 +25617,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21852,18 +25617,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21852 .clobbers = .{ .eflags = true },25617 .clobbers = .{ .eflags = true },
21853 .each = .{ .once = &.{25618 .each = .{ .once = &.{
21854 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25619 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21855 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25620 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
21856 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25621 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
21857 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },25622 .{ ._, ._ge, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
21858 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25623 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
21859 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25624 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
21860 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
21861 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25625 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21862 } },25626 } },
21863 }, .{25627 }, .{
21864 .src_constraints = .{25628 .src_constraints = .{
21865 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25629 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
21866 .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } },25630 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },
21867 .any,25631 .any,
21868 },25632 },
21869 .patterns = &.{25633 .patterns = &.{
...@@ -21871,7 +25635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21871,7 +25635,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21871 },25635 },
21872 .extra_temps = .{25636 .extra_temps = .{
21873 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25637 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21874 .{ .type = .i8, .kind = .{ .rc = .general_purpose } },25638 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },
21875 .unused,25639 .unused,
21876 .unused,25640 .unused,
21877 .unused,25641 .unused,
...@@ -21886,51 +25650,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21886,51 +25650,51 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21886 .clobbers = .{ .eflags = true },25650 .clobbers = .{ .eflags = true },
21887 .each = .{ .once = &.{25651 .each = .{ .once = &.{
21888 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25652 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21889 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25653 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
21890 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25654 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
21891 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },25655 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
21892 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25656 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
21893 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25657 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
21894 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25658 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
21895 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25659 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
21896 } },25660 } },
21897 }, .{25661 }, .{
21898 .required_features = .{ .sse, .mmx, null, null },25662 .required_features = .{ .avx, null, null, null },
21899 .src_constraints = .{25663 .src_constraints = .{
21900 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },25664 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21901 .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } },25665 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21902 .any,25666 .any,
21903 },25667 },
21904 .patterns = &.{25668 .patterns = &.{
21905 .{ .src = .{ .to_mut_mmx, .mem, .none } },25669 .{ .src = .{ .to_sse, .mem, .none } },
21906 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },25670 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
21907 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },25671 .{ .src = .{ .to_sse, .to_sse, .none } },
21908 },25672 },
21909 .dst_temps = .{ .{ .ref = .src0 }, .unused },25673 .dst_temps = .{ .{ .rc = .sse }, .unused },
21910 .each = .{ .once = &.{25674 .each = .{ .once = &.{
21911 .{ ._, .p_b, .minu, .dst0q, .src1q, ._, ._ },25675 .{ ._, .vp_d, .minu, .dst0x, .src0x, .src1x, ._ },
21912 } },25676 } },
21913 }, .{25677 }, .{
21914 .required_features = .{ .avx, null, null, null },25678 .required_features = .{ .sse4_1, null, null, null },
21915 .src_constraints = .{25679 .src_constraints = .{
21916 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25680 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21917 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25681 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21918 .any,25682 .any,
21919 },25683 },
21920 .patterns = &.{25684 .patterns = &.{
21921 .{ .src = .{ .to_sse, .mem, .none } },25685 .{ .src = .{ .to_mut_sse, .mem, .none } },
21922 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },25686 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
21923 .{ .src = .{ .to_sse, .to_sse, .none } },25687 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
21924 },25688 },
21925 .dst_temps = .{ .{ .rc = .sse }, .unused },25689 .dst_temps = .{ .{ .ref = .src0 }, .unused },
21926 .each = .{ .once = &.{25690 .each = .{ .once = &.{
21927 .{ ._, .vp_b, .minu, .dst0x, .src0x, .src1x, ._ },25691 .{ ._, .p_d, .minu, .dst0x, .src1x, ._, ._ },
21928 } },25692 } },
21929 }, .{25693 }, .{
21930 .required_features = .{ .sse2, null, null, null },25694 .required_features = .{ .sse2, null, null, null },
21931 .src_constraints = .{25695 .src_constraints = .{
21932 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25696 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
21933 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25697 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
21934 .any,25698 .any,
21935 },25699 },
21936 .patterns = &.{25700 .patterns = &.{
...@@ -21938,15 +25702,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21938,15 +25702,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21938 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },25702 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
21939 .{ .src = .{ .to_mut_sse, .to_sse, .none } },25703 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
21940 },25704 },
21941 .dst_temps = .{ .{ .ref = .src0 }, .unused },25705 .extra_temps = .{
25706 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25707 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },
25708 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
25709 .unused,
25710 .unused,
25711 .unused,
25712 .unused,
25713 .unused,
25714 .unused,
25715 .unused,
25716 .unused,
25717 },
25718 .dst_temps = .{ .{ .rc = .sse }, .unused },
21942 .each = .{ .once = &.{25719 .each = .{ .once = &.{
21943 .{ ._, .p_b, .minu, .dst0x, .src1x, ._, ._ },25720 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
25721 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
25722 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
25723 .{ ._, .p_, .xor, .dst0x, .src1x, ._, ._ },
25724 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
25725 .{ ._, .p_d, .cmpgt, .dst0x, .tmp2x, ._, ._ },
25726 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
25727 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
25728 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
21944 } },25729 } },
21945 }, .{25730 }, .{
21946 .required_features = .{ .avx2, null, null, null },25731 .required_features = .{ .avx2, null, null, null },
21947 .src_constraints = .{25732 .src_constraints = .{
21948 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },25733 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
21949 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .byte } },25734 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
21950 .any,25735 .any,
21951 },25736 },
21952 .patterns = &.{25737 .patterns = &.{
...@@ -21956,13 +25741,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21956,13 +25741,13 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21956 },25741 },
21957 .dst_temps = .{ .{ .rc = .sse }, .unused },25742 .dst_temps = .{ .{ .rc = .sse }, .unused },
21958 .each = .{ .once = &.{25743 .each = .{ .once = &.{
21959 .{ ._, .vp_b, .minu, .dst0y, .src0y, .src1y, ._ },25744 .{ ._, .vp_d, .minu, .dst0y, .src0y, .src1y, ._ },
21960 } },25745 } },
21961 }, .{25746 }, .{
21962 .required_features = .{ .avx2, null, null, null },25747 .required_features = .{ .avx2, null, null, null },
21963 .src_constraints = .{25748 .src_constraints = .{
21964 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },25749 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
21965 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .byte } },25750 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
21966 .any,25751 .any,
21967 },25752 },
21968 .patterns = &.{25753 .patterns = &.{
...@@ -21970,7 +25755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21970,7 +25755,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21970 },25755 },
21971 .extra_temps = .{25756 .extra_temps = .{
21972 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25757 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
21973 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },25758 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },
21974 .unused,25759 .unused,
21975 .unused,25760 .unused,
21976 .unused,25761 .unused,
...@@ -21986,7 +25771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21986,7 +25771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21986 .each = .{ .once = &.{25771 .each = .{ .once = &.{
21987 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25772 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
21988 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },25773 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
21989 .{ ._, .vp_b, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },25774 .{ ._, .vp_d, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
21990 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },25775 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
21991 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },25776 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
21992 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25777 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -21994,8 +25779,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -21994,8 +25779,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
21994 }, .{25779 }, .{
21995 .required_features = .{ .avx, null, null, null },25780 .required_features = .{ .avx, null, null, null },
21996 .src_constraints = .{25781 .src_constraints = .{
21997 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25782 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21998 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25783 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
21999 .any,25784 .any,
22000 },25785 },
22001 .patterns = &.{25786 .patterns = &.{
...@@ -22003,7 +25788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22003,7 +25788,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22003 },25788 },
22004 .extra_temps = .{25789 .extra_temps = .{
22005 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25790 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22006 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },25791 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22007 .unused,25792 .unused,
22008 .unused,25793 .unused,
22009 .unused,25794 .unused,
...@@ -22019,16 +25804,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22019,16 +25804,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22019 .each = .{ .once = &.{25804 .each = .{ .once = &.{
22020 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25805 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22021 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },25806 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22022 .{ ._, .vp_b, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },25807 .{ ._, .vp_d, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
22023 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },25808 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
22024 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },25809 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22025 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25810 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22026 } },25811 } },
22027 }, .{25812 }, .{
22028 .required_features = .{ .sse2, null, null, null },25813 .required_features = .{ .sse4_1, null, null, null },
22029 .src_constraints = .{25814 .src_constraints = .{
22030 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25815 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
22031 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } },25816 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },
22032 .any,25817 .any,
22033 },25818 },
22034 .patterns = &.{25819 .patterns = &.{
...@@ -22036,7 +25821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22036,7 +25821,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22036 },25821 },
22037 .extra_temps = .{25822 .extra_temps = .{
22038 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25823 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22039 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },25824 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22040 .unused,25825 .unused,
22041 .unused,25826 .unused,
22042 .unused,25827 .unused,
...@@ -22052,16 +25837,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22052,16 +25837,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22052 .each = .{ .once = &.{25837 .each = .{ .once = &.{
22053 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25838 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22054 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },25839 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22055 .{ ._, .p_b, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },25840 .{ ._, .p_d, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22056 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },25841 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
22057 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },25842 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22058 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25843 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22059 } },25844 } },
22060 }, .{25845 }, .{
22061 .required_features = .{ .cmov, .slow_incdec, null, null },25846 .required_features = .{ .sse2, null, null, null },
22062 .src_constraints = .{25847 .src_constraints = .{
22063 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25848 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
22064 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25849 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },
22065 .any,25850 .any,
22066 },25851 },
22067 .patterns = &.{25852 .patterns = &.{
...@@ -22069,12 +25854,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22069,12 +25854,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22069 },25854 },
22070 .extra_temps = .{25855 .extra_temps = .{
22071 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25856 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22072 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },25857 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },
22073 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },25858 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22074 .unused,25859 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22075 .unused,25860 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22076 .unused,25861 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22077 .unused,25862 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },
22078 .unused,25863 .unused,
22079 .unused,25864 .unused,
22080 .unused,25865 .unused,
...@@ -22083,55 +25868,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22083,55 +25868,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22083 .dst_temps = .{ .mem, .unused },25868 .dst_temps = .{ .mem, .unused },
22084 .clobbers = .{ .eflags = true },25869 .clobbers = .{ .eflags = true },
22085 .each = .{ .once = &.{25870 .each = .{ .once = &.{
25871 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
25872 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
22086 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25873 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22087 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25874 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22088 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },25875 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22089 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },25876 .{ ._, ._dqa, .mov, .tmp5x, .tmp3x, ._, ._ },
22090 .{ ._, ._ae, .cmov, .tmp1d, .tmp2d, ._, ._ },25877 .{ ._, ._dqa, .mov, .tmp6x, .tmp4x, ._, ._ },
22091 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25878 .{ ._, .p_, .xor, .tmp5x, .tmp2x, ._, ._ },
22092 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },25879 .{ ._, .p_, .xor, .tmp6x, .tmp2x, ._, ._ },
25880 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp6x, ._, ._ },
25881 .{ ._, .p_, .@"and", .tmp4x, .tmp5x, ._, ._ },
25882 .{ ._, .p_, .andn, .tmp5x, .tmp3x, ._, ._ },
25883 .{ ._, .p_, .@"or", .tmp4x, .tmp5x, ._, ._ },
25884 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp4x, ._, ._ },
25885 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22093 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25886 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22094 } },25887 } },
22095 }, .{25888 }, .{
22096 .required_features = .{ .cmov, null, null, null },25889 .required_features = .{ .cmov, null, null, null },
22097 .src_constraints = .{25890 .src_constraints = .{
22098 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25891 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
22099 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25892 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
22100 .any,
22101 },
22102 .patterns = &.{
22103 .{ .src = .{ .to_mem, .to_mem, .none } },
22104 },
22105 .extra_temps = .{
22106 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22107 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
22108 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },
22109 .unused,
22110 .unused,
22111 .unused,
22112 .unused,
22113 .unused,
22114 .unused,
22115 .unused,
22116 .unused,
22117 },
22118 .dst_temps = .{ .mem, .unused },
22119 .clobbers = .{ .eflags = true },
22120 .each = .{ .once = &.{
22121 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22122 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },
22123 .{ ._, ._, .movzx, .tmp2d, .memia(.src1b, .tmp0, .add_size), ._, ._ },
22124 .{ ._, ._, .cmp, .tmp1b, .tmp2b, ._, ._ },
22125 .{ ._, ._ae, .cmov, .tmp1d, .tmp2d, ._, ._ },
22126 .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },
22127 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
22128 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
22129 } },
22130 }, .{
22131 .required_features = .{ .slow_incdec, null, null, null },
22132 .src_constraints = .{
22133 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
22134 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },
22135 .any,25893 .any,
22136 },25894 },
22137 .patterns = &.{25895 .patterns = &.{
...@@ -22139,7 +25897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22139,7 +25897,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22139 },25897 },
22140 .extra_temps = .{25898 .extra_temps = .{
22141 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25899 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22142 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },25900 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
22143 .unused,25901 .unused,
22144 .unused,25902 .unused,
22145 .unused,25903 .unused,
...@@ -22154,18 +25912,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22154,18 +25912,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22154 .clobbers = .{ .eflags = true },25912 .clobbers = .{ .eflags = true },
22155 .each = .{ .once = &.{25913 .each = .{ .once = &.{
22156 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25914 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22157 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25915 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
22158 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25916 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22159 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },25917 .{ ._, ._ae, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22160 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25918 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
22161 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25919 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
22162 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
22163 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },25920 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22164 } },25921 } },
22165 }, .{25922 }, .{
22166 .src_constraints = .{25923 .src_constraints = .{
22167 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25924 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
22168 .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } },25925 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },
22169 .any,25926 .any,
22170 },25927 },
22171 .patterns = &.{25928 .patterns = &.{
...@@ -22173,7 +25930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22173,7 +25930,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22173 },25930 },
22174 .extra_temps = .{25931 .extra_temps = .{
22175 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },25932 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22176 .{ .type = .u8, .kind = .{ .rc = .general_purpose } },25933 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
22177 .unused,25934 .unused,
22178 .unused,25935 .unused,
22179 .unused,25936 .unused,
...@@ -22188,35 +25945,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22188,35 +25945,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22188 .clobbers = .{ .eflags = true },25945 .clobbers = .{ .eflags = true },
22189 .each = .{ .once = &.{25946 .each = .{ .once = &.{
22190 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },25947 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22191 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_size), ._, ._ },25948 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
22192 .{ ._, ._, .cmp, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25949 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22193 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },25950 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
22194 .{ ._, ._, .mov, .tmp1b, .memia(.src1b, .tmp0, .add_size), ._, ._ },25951 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22195 .{ .@"1:", ._, .mov, .memia(.dst0b, .tmp0, .add_size), .tmp1b, ._, ._ },25952 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
22196 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },25953 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
22197 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },25954 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22198 } },
22199 }, .{
22200 .required_features = .{ .sse, .mmx, null, null },
22201 .src_constraints = .{
22202 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
22203 .{ .scalar_signed_int = .{ .of = .qword, .is = .word } },
22204 .any,
22205 },
22206 .patterns = &.{
22207 .{ .src = .{ .to_mut_mmx, .mem, .none } },
22208 .{ .src = .{ .mem, .to_mut_mmx, .none }, .commute = .{ 0, 1 } },
22209 .{ .src = .{ .to_mut_mmx, .to_mmx, .none } },
22210 },
22211 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22212 .each = .{ .once = &.{
22213 .{ ._, .p_w, .mins, .dst0q, .src1q, ._, ._ },
22214 } },25955 } },
22215 }, .{25956 }, .{
22216 .required_features = .{ .avx, null, null, null },25957 .required_features = .{ .avx, null, null, null },
22217 .src_constraints = .{25958 .src_constraints = .{
22218 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },25959 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22219 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },25960 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22220 .any,25961 .any,
22221 },25962 },
22222 .patterns = &.{25963 .patterns = &.{
...@@ -22226,13 +25967,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22226,13 +25967,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22226 },25967 },
22227 .dst_temps = .{ .{ .rc = .sse }, .unused },25968 .dst_temps = .{ .{ .rc = .sse }, .unused },
22228 .each = .{ .once = &.{25969 .each = .{ .once = &.{
22229 .{ ._, .vp_w, .mins, .dst0x, .src0x, .src1x, ._ },25970 .{ ._, .vp_q, .cmpgt, .dst0x, .src0x, .src1x, ._ },
25971 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },
22230 } },25972 } },
22231 }, .{25973 }, .{
22232 .required_features = .{ .sse2, null, null, null },25974 .required_features = .{ .sse4_2, null, null, null },
22233 .src_constraints = .{25975 .src_constraints = .{
22234 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },25976 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22235 .{ .scalar_signed_int = .{ .of = .xword, .is = .word } },25977 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22236 .any,25978 .any,
22237 },25979 },
22238 .patterns = &.{25980 .patterns = &.{
...@@ -22240,15 +25982,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22240,15 +25982,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22240 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },25982 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22241 .{ .src = .{ .to_mut_sse, .to_sse, .none } },25983 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22242 },25984 },
25985 .extra_temps = .{
25986 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
25987 .unused,
25988 .unused,
25989 .unused,
25990 .unused,
25991 .unused,
25992 .unused,
25993 .unused,
25994 .unused,
25995 .unused,
25996 .unused,
25997 },
22243 .dst_temps = .{ .{ .ref = .src0 }, .unused },25998 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22244 .each = .{ .once = &.{25999 .each = .{ .once = &.{
22245 .{ ._, .p_w, .mins, .dst0x, .src1x, ._, ._ },26000 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },
26001 .{ ._, .p_q, .cmpgt, .tmp0x, .src1x, ._, ._ },
26002 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp0x, ._ },
22246 } },26003 } },
22247 }, .{26004 }, .{
22248 .required_features = .{ .avx2, null, null, null },26005 .required_features = .{ .avx2, null, null, null },
22249 .src_constraints = .{26006 .src_constraints = .{
22250 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },26007 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
22251 .{ .scalar_signed_int = .{ .of = .yword, .is = .word } },26008 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
22252 .any,26009 .any,
22253 },26010 },
22254 .patterns = &.{26011 .patterns = &.{
...@@ -22258,13 +26015,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22258,13 +26015,14 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22258 },26015 },
22259 .dst_temps = .{ .{ .rc = .sse }, .unused },26016 .dst_temps = .{ .{ .rc = .sse }, .unused },
22260 .each = .{ .once = &.{26017 .each = .{ .once = &.{
22261 .{ ._, .vp_w, .mins, .dst0y, .src0y, .src1y, ._ },26018 .{ ._, .vp_q, .cmpgt, .dst0y, .src0y, .src1y, ._ },
26019 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
22262 } },26020 } },
22263 }, .{26021 }, .{
22264 .required_features = .{ .avx2, null, null, null },26022 .required_features = .{ .avx2, null, null, null },
22265 .src_constraints = .{26023 .src_constraints = .{
22266 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },26024 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
22267 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .word } },26025 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },
22268 .any,26026 .any,
22269 },26027 },
22270 .patterns = &.{26028 .patterns = &.{
...@@ -22272,9 +26030,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22272,9 +26030,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22272 },26030 },
22273 .extra_temps = .{26031 .extra_temps = .{
22274 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26032 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22275 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },26033 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
22276 .unused,26034 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
22277 .unused,26035 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },
22278 .unused,26036 .unused,
22279 .unused,26037 .unused,
22280 .unused,26038 .unused,
...@@ -22288,7 +26046,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22288,7 +26046,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22288 .each = .{ .once = &.{26046 .each = .{ .once = &.{
22289 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26047 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22290 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },26048 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
22291 .{ ._, .vp_w, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },26049 .{ ._, .v_dqa, .mov, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
26050 .{ ._, .vp_q, .cmpgt, .tmp3y, .tmp1y, .tmp2y, ._ },
26051 .{ ._, .vp_b, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
22292 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },26052 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
22293 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },26053 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
22294 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26054 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
...@@ -22296,8 +26056,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22296,8 +26056,8 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22296 }, .{26056 }, .{
22297 .required_features = .{ .avx, null, null, null },26057 .required_features = .{ .avx, null, null, null },
22298 .src_constraints = .{26058 .src_constraints = .{
22299 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },26059 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22300 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },26060 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22301 .any,26061 .any,
22302 },26062 },
22303 .patterns = &.{26063 .patterns = &.{
...@@ -22305,9 +26065,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22305,9 +26065,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22305 },26065 },
22306 .extra_temps = .{26066 .extra_temps = .{
22307 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26067 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22308 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },26068 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
22309 .unused,26069 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
22310 .unused,26070 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
22311 .unused,26071 .unused,
22312 .unused,26072 .unused,
22313 .unused,26073 .unused,
...@@ -22321,16 +26081,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22321,16 +26081,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22321 .each = .{ .once = &.{26081 .each = .{ .once = &.{
22322 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26082 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22323 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26083 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22324 .{ ._, .vp_w, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },26084 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
26085 .{ ._, .vp_q, .cmpgt, .tmp3x, .tmp1x, .tmp2x, ._ },
26086 .{ ._, .vp_b, .blendv, .tmp1x, .tmp1x, .tmp2x, .tmp3x },
22325 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26087 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
22326 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26088 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22327 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26089 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22328 } },26090 } },
22329 }, .{26091 }, .{
22330 .required_features = .{ .sse2, null, null, null },26092 .required_features = .{ .sse4_2, null, null, null },
22331 .src_constraints = .{26093 .src_constraints = .{
22332 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },26094 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22333 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .word } },26095 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },
22334 .any,26096 .any,
22335 },26097 },
22336 .patterns = &.{26098 .patterns = &.{
...@@ -22338,9 +26100,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22338,9 +26100,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22338 },26100 },
22339 .extra_temps = .{26101 .extra_temps = .{
22340 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26102 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22341 .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } },26103 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
22342 .unused,26104 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },
22343 .unused,26105 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },
22344 .unused,26106 .unused,
22345 .unused,26107 .unused,
22346 .unused,26108 .unused,
...@@ -22354,16 +26116,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22354,16 +26116,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22354 .each = .{ .once = &.{26116 .each = .{ .once = &.{
22355 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26117 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22356 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26118 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22357 .{ ._, .p_w, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26119 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
26120 .{ ._, ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ },
26121 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp2x, ._, ._ },
26122 .{ ._, .p_b, .blendv, .tmp1x, .tmp2x, .tmp3x, ._ },
22358 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26123 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
22359 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26124 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22360 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26125 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22361 } },26126 } },
22362 }, .{26127 }, .{
22363 .required_features = .{ .cmov, null, null, null },26128 .required_features = .{ .@"64bit", .cmov, null, null },
22364 .src_constraints = .{26129 .src_constraints = .{
22365 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },26130 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
22366 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },26131 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
22367 .any,26132 .any,
22368 },26133 },
22369 .patterns = &.{26134 .patterns = &.{
...@@ -22371,7 +26136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22371,7 +26136,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22371 },26136 },
22372 .extra_temps = .{26137 .extra_temps = .{
22373 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26138 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22374 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },26139 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
22375 .unused,26140 .unused,
22376 .unused,26141 .unused,
22377 .unused,26142 .unused,
...@@ -22386,17 +26151,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22386,17 +26151,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22386 .clobbers = .{ .eflags = true },26151 .clobbers = .{ .eflags = true },
22387 .each = .{ .once = &.{26152 .each = .{ .once = &.{
22388 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26153 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22389 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },26154 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
22390 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26155 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22391 .{ ._, ._ge, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26156 .{ ._, ._ge, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22392 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },26157 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22393 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },26158 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22394 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26159 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22395 } },26160 } },
22396 }, .{26161 }, .{
26162 .required_features = .{ .@"64bit", null, null, null },
22397 .src_constraints = .{26163 .src_constraints = .{
22398 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },26164 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
22399 .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } },26165 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },
22400 .any,26166 .any,
22401 },26167 },
22402 .patterns = &.{26168 .patterns = &.{
...@@ -22404,7 +26170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22404,7 +26170,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22404 },26170 },
22405 .extra_temps = .{26171 .extra_temps = .{
22406 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26172 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22407 .{ .type = .i16, .kind = .{ .rc = .general_purpose } },26173 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },
22408 .unused,26174 .unused,
22409 .unused,26175 .unused,
22410 .unused,26176 .unused,
...@@ -22419,19 +26185,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22419,19 +26185,19 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22419 .clobbers = .{ .eflags = true },26185 .clobbers = .{ .eflags = true },
22420 .each = .{ .once = &.{26186 .each = .{ .once = &.{
22421 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26187 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22422 .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },26188 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
22423 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26189 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22424 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },26190 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
22425 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26191 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22426 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },26192 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22427 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },26193 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22428 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26194 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22429 } },26195 } },
22430 }, .{26196 }, .{
22431 .required_features = .{ .avx, null, null, null },26197 .required_features = .{ .avx, null, null, null },
22432 .src_constraints = .{26198 .src_constraints = .{
22433 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26199 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22434 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26200 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22435 .any,26201 .any,
22436 },26202 },
22437 .patterns = &.{26203 .patterns = &.{
...@@ -22439,15 +26205,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22439,15 +26205,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22439 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },26205 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
22440 .{ .src = .{ .to_sse, .to_sse, .none } },26206 .{ .src = .{ .to_sse, .to_sse, .none } },
22441 },26207 },
26208 .extra_temps = .{
26209 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
26210 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
26211 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
26212 .unused,
26213 .unused,
26214 .unused,
26215 .unused,
26216 .unused,
26217 .unused,
26218 .unused,
26219 .unused,
26220 },
22442 .dst_temps = .{ .{ .rc = .sse }, .unused },26221 .dst_temps = .{ .{ .rc = .sse }, .unused },
22443 .each = .{ .once = &.{26222 .each = .{ .once = &.{
22444 .{ ._, .vp_w, .minu, .dst0x, .src0x, .src1x, ._ },26223 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
26224 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
26225 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },
26226 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },
26227 .{ ._, .vp_q, .cmpgt, .dst0x, .dst0x, .tmp2x, ._ },
26228 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },
22445 } },26229 } },
22446 }, .{26230 }, .{
22447 .required_features = .{ .sse4_1, null, null, null },26231 .required_features = .{ .sse4_2, null, null, null },
22448 .src_constraints = .{26232 .src_constraints = .{
22449 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26233 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22450 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26234 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22451 .any,26235 .any,
22452 },26236 },
22453 .patterns = &.{26237 .patterns = &.{
...@@ -22455,33 +26239,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22455,33 +26239,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22455 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },26239 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22456 .{ .src = .{ .to_mut_sse, .to_sse, .none } },26240 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22457 },26241 },
22458 .dst_temps = .{ .{ .ref = .src0 }, .unused },26242 .extra_temps = .{
22459 .each = .{ .once = &.{26243 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
22460 .{ ._, .p_w, .minu, .dst0x, .src1x, ._, ._ },26244 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22461 } },26245 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
22462 }, .{26246 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22463 .required_features = .{ .sse2, null, null, null },26247 .unused,
22464 .src_constraints = .{26248 .unused,
22465 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26249 .unused,
22466 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .word } },26250 .unused,
22467 .any,26251 .unused,
22468 },26252 .unused,
22469 .patterns = &.{26253 .unused,
22470 .{ .src = .{ .to_mut_sse, .mem, .none } },
22471 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22472 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22473 },26254 },
22474 .dst_temps = .{ .{ .rc = .sse }, .unused },26255 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22475 .each = .{ .once = &.{26256 .each = .{ .once = &.{
22476 .{ ._, ._dqa, .mov, .dst0x, .src0x, ._, ._ },26257 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22477 .{ ._, .p_w, .subus, .src0x, .src1x, ._, ._ },26258 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
22478 .{ ._, .p_w, .sub, .dst0x, .src0x, ._, ._ },26259 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },
26260 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
26261 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },
26262 .{ ._, .p_q, .cmpgt, .tmp2x, .tmp3x, ._, ._ },
26263 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp2x, ._ },
22479 } },26264 } },
22480 }, .{26265 }, .{
22481 .required_features = .{ .avx2, null, null, null },26266 .required_features = .{ .avx2, null, null, null },
22482 .src_constraints = .{26267 .src_constraints = .{
22483 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },26268 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
22484 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .word } },26269 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
22485 .any,26270 .any,
22486 },26271 },
22487 .patterns = &.{26272 .patterns = &.{
...@@ -22489,24 +26274,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22489,24 +26274,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22489 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },26274 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
22490 .{ .src = .{ .to_sse, .to_sse, .none } },26275 .{ .src = .{ .to_sse, .to_sse, .none } },
22491 },26276 },
22492 .dst_temps = .{ .{ .rc = .sse }, .unused },
22493 .each = .{ .once = &.{
22494 .{ ._, .vp_w, .minu, .dst0y, .src0y, .src1y, ._ },
22495 } },
22496 }, .{
22497 .required_features = .{ .avx2, null, null, null },
22498 .src_constraints = .{
22499 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
22500 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .word } },
22501 .any,
22502 },
22503 .patterns = &.{
22504 .{ .src = .{ .to_mem, .to_mem, .none } },
22505 },
22506 .extra_temps = .{26277 .extra_temps = .{
22507 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26278 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
22508 .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } },26279 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22509 .unused,26280 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22510 .unused,26281 .unused,
22511 .unused,26282 .unused,
22512 .unused,26283 .unused,
...@@ -22516,21 +26287,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22516,21 +26287,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22516 .unused,26287 .unused,
22517 .unused,26288 .unused,
22518 },26289 },
22519 .dst_temps = .{ .mem, .unused },26290 .dst_temps = .{ .{ .rc = .sse }, .unused },
22520 .clobbers = .{ .eflags = true },
22521 .each = .{ .once = &.{26291 .each = .{ .once = &.{
22522 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26292 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
22523 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },26293 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
22524 .{ ._, .vp_w, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },26294 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
22525 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },26295 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
22526 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },26296 .{ ._, .vp_q, .cmpgt, .dst0y, .dst0y, .tmp2y, ._ },
22527 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26297 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
22528 } },26298 } },
22529 }, .{26299 }, .{
22530 .required_features = .{ .avx, null, null, null },26300 .required_features = .{ .avx2, null, null, null },
22531 .src_constraints = .{26301 .src_constraints = .{
22532 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26302 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
22533 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26303 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },
22534 .any,26304 .any,
22535 },26305 },
22536 .patterns = &.{26306 .patterns = &.{
...@@ -22538,12 +26308,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22538,12 +26308,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22538 },26308 },
22539 .extra_temps = .{26309 .extra_temps = .{
22540 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26310 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22541 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },26311 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22542 .unused,26312 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22543 .unused,26313 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22544 .unused,26314 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22545 .unused,26315 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22546 .unused,26316 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },
22547 .unused,26317 .unused,
22548 .unused,26318 .unused,
22549 .unused,26319 .unused,
...@@ -22552,18 +26322,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22552,18 +26322,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22552 .dst_temps = .{ .mem, .unused },26322 .dst_temps = .{ .mem, .unused },
22553 .clobbers = .{ .eflags = true },26323 .clobbers = .{ .eflags = true },
22554 .each = .{ .once = &.{26324 .each = .{ .once = &.{
26325 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
26326 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
22555 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26327 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22556 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26328 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
22557 .{ ._, .vp_w, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },26329 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
22558 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26330 .{ ._, .vp_, .xor, .tmp5y, .tmp3y, .tmp2y, ._ },
22559 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26331 .{ ._, .vp_, .xor, .tmp6y, .tmp4y, .tmp2y, ._ },
26332 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp5y, .tmp6y, ._ },
26333 .{ ._, .vp_b, .blendv, .tmp3y, .tmp3y, .tmp4y, .tmp5y },
26334 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
26335 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
22560 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26336 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22561 } },26337 } },
22562 }, .{26338 }, .{
22563 .required_features = .{ .sse4_1, null, null, null },26339 .required_features = .{ .avx, null, null, null },
22564 .src_constraints = .{26340 .src_constraints = .{
22565 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26341 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22566 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26342 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22567 .any,26343 .any,
22568 },26344 },
22569 .patterns = &.{26345 .patterns = &.{
...@@ -22571,12 +26347,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22571,12 +26347,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22571 },26347 },
22572 .extra_temps = .{26348 .extra_temps = .{
22573 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26349 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22574 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },26350 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22575 .unused,26351 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22576 .unused,26352 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22577 .unused,26353 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22578 .unused,26354 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22579 .unused,26355 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22580 .unused,26356 .unused,
22581 .unused,26357 .unused,
22582 .unused,26358 .unused,
...@@ -22585,18 +26361,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22585,18 +26361,24 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22585 .dst_temps = .{ .mem, .unused },26361 .dst_temps = .{ .mem, .unused },
22586 .clobbers = .{ .eflags = true },26362 .clobbers = .{ .eflags = true },
22587 .each = .{ .once = &.{26363 .each = .{ .once = &.{
26364 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
26365 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
22588 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26366 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22589 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26367 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22590 .{ ._, .p_w, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26368 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22591 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26369 .{ ._, .vp_, .xor, .tmp5x, .tmp3x, .tmp2x, ._ },
26370 .{ ._, .vp_, .xor, .tmp6x, .tmp4x, .tmp2x, ._ },
26371 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp5x, .tmp6x, ._ },
26372 .{ ._, .vp_b, .blendv, .tmp3x, .tmp3x, .tmp4x, .tmp5x },
26373 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
22592 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26374 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22593 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26375 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22594 } },26376 } },
22595 }, .{26377 }, .{
22596 .required_features = .{ .sse2, null, null, null },26378 .required_features = .{ .sse4_2, null, null, null },
22597 .src_constraints = .{26379 .src_constraints = .{
22598 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26380 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22599 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .word } },26381 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },
22600 .any,26382 .any,
22601 },26383 },
22602 .patterns = &.{26384 .patterns = &.{
...@@ -22604,12 +26386,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22604,12 +26386,12 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22604 },26386 },
22605 .extra_temps = .{26387 .extra_temps = .{
22606 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26388 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22607 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },26389 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
22608 .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } },26390 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22609 .unused,26391 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22610 .unused,26392 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22611 .unused,26393 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },
22612 .unused,26394 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
22613 .unused,26395 .unused,
22614 .unused,26396 .unused,
22615 .unused,26397 .unused,
...@@ -22618,20 +26400,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22618,20 +26400,26 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22618 .dst_temps = .{ .mem, .unused },26400 .dst_temps = .{ .mem, .unused },
22619 .clobbers = .{ .eflags = true },26401 .clobbers = .{ .eflags = true },
22620 .each = .{ .once = &.{26402 .each = .{ .once = &.{
26403 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
26404 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },
22621 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26405 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22622 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26406 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },
22623 .{ ._, ._dqa, .mov, .tmp2x, .tmp1x, ._, ._ },26407 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },
22624 .{ ._, .p_w, .subus, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26408 .{ ._, ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
22625 .{ ._, .p_w, .sub, .tmp2x, .tmp1x, ._, ._ },26409 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
22626 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp2x, ._, ._ },26410 .{ ._, .p_, .xor, .tmp5x, .tmp3x, ._, ._ },
26411 .{ ._, .p_, .xor, .tmp6x, .tmp4x, ._, ._ },
26412 .{ ._, .p_q, .cmpgt, .tmp5x, .tmp6x, ._, ._ },
26413 .{ ._, .p_b, .blendv, .tmp3x, .tmp4x, .tmp5x, ._ },
26414 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
22627 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26415 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
22628 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26416 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22629 } },26417 } },
22630 }, .{26418 }, .{
22631 .required_features = .{ .cmov, null, null, null },26419 .required_features = .{ .@"64bit", .cmov, null, null },
22632 .src_constraints = .{26420 .src_constraints = .{
22633 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },26421 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
22634 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },26422 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
22635 .any,26423 .any,
22636 },26424 },
22637 .patterns = &.{26425 .patterns = &.{
...@@ -22639,7 +26427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22639,7 +26427,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22639 },26427 },
22640 .extra_temps = .{26428 .extra_temps = .{
22641 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26429 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22642 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },26430 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
22643 .unused,26431 .unused,
22644 .unused,26432 .unused,
22645 .unused,26433 .unused,
...@@ -22654,17 +26442,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22654,17 +26442,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22654 .clobbers = .{ .eflags = true },26442 .clobbers = .{ .eflags = true },
22655 .each = .{ .once = &.{26443 .each = .{ .once = &.{
22656 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26444 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22657 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },26445 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
22658 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26446 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22659 .{ ._, ._ae, .cmov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26447 .{ ._, ._ae, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22660 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },26448 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22661 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },26449 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22662 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26450 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22663 } },26451 } },
22664 }, .{26452 }, .{
26453 .required_features = .{ .@"64bit", null, null, null },
22665 .src_constraints = .{26454 .src_constraints = .{
22666 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },26455 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
22667 .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } },26456 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },
22668 .any,26457 .any,
22669 },26458 },
22670 .patterns = &.{26459 .patterns = &.{
...@@ -22672,7 +26461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22672,7 +26461,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22672 },26461 },
22673 .extra_temps = .{26462 .extra_temps = .{
22674 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26463 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22675 .{ .type = .u16, .kind = .{ .rc = .general_purpose } },26464 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
22676 .unused,26465 .unused,
22677 .unused,26466 .unused,
22678 .unused,26467 .unused,
...@@ -22687,97 +26476,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22687,97 +26476,25 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22687 .clobbers = .{ .eflags = true },26476 .clobbers = .{ .eflags = true },
22688 .each = .{ .once = &.{26477 .each = .{ .once = &.{
22689 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26478 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
22690 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },26479 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
22691 .{ ._, ._, .cmp, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26480 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22692 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },26481 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
22693 .{ ._, ._, .mov, .tmp1w, .memia(.src1w, .tmp0, .add_size), ._, ._ },26482 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
22694 .{ .@"1:", ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },26483 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
22695 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },26484 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22696 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26485 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22697 } },26486 } },
22698 }, .{26487 }, .{
22699 .required_features = .{ .avx, null, null, null },26488 .required_features = .{ .@"64bit", .cmov, null, null },
22700 .src_constraints = .{26489 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },
22701 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
22702 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
22703 .any,
22704 },
22705 .patterns = &.{
22706 .{ .src = .{ .to_sse, .mem, .none } },
22707 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
22708 .{ .src = .{ .to_sse, .to_sse, .none } },
22709 },
22710 .dst_temps = .{ .{ .rc = .sse }, .unused },
22711 .each = .{ .once = &.{
22712 .{ ._, .vp_d, .mins, .dst0x, .src0x, .src1x, ._ },
22713 } },
22714 }, .{
22715 .required_features = .{ .sse4_1, null, null, null },
22716 .src_constraints = .{
22717 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
22718 .{ .scalar_signed_int = .{ .of = .xword, .is = .dword } },
22719 .any,
22720 },
22721 .patterns = &.{
22722 .{ .src = .{ .to_mut_sse, .mem, .none } },
22723 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22724 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22725 },
22726 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22727 .each = .{ .once = &.{
22728 .{ ._, .p_d, .mins, .dst0x, .src1x, ._, ._ },
22729 } },
22730 }, .{
22731 .required_features = .{ .sse2, null, null, null },
22732 .src_constraints = .{
22733 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22734 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22735 .any,
22736 },
22737 .patterns = &.{
22738 .{ .src = .{ .to_mut_sse, .mem, .none } },
22739 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22740 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22741 },
22742 .dst_temps = .{ .{ .rc = .sse }, .unused },
22743 .each = .{ .once = &.{
22744 .{ ._, ._dqa, .mov, .dst0x, .src1x, ._, ._ },
22745 .{ ._, .p_d, .cmpgt, .dst0x, .src0x, ._, ._ },
22746 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
22747 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
22748 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
22749 } },
22750 }, .{
22751 .required_features = .{ .avx2, null, null, null },
22752 .src_constraints = .{
22753 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
22754 .{ .scalar_signed_int = .{ .of = .yword, .is = .dword } },
22755 .any,
22756 },
22757 .patterns = &.{
22758 .{ .src = .{ .to_sse, .mem, .none } },
22759 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
22760 .{ .src = .{ .to_sse, .to_sse, .none } },
22761 },
22762 .dst_temps = .{ .{ .rc = .sse }, .unused },
22763 .each = .{ .once = &.{
22764 .{ ._, .vp_d, .mins, .dst0y, .src0y, .src1y, ._ },
22765 } },
22766 }, .{
22767 .required_features = .{ .avx2, null, null, null },
22768 .src_constraints = .{
22769 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
22770 .{ .multiple_scalar_signed_int = .{ .of = .yword, .is = .dword } },
22771 .any,
22772 },
22773 .patterns = &.{26490 .patterns = &.{
22774 .{ .src = .{ .to_mem, .to_mem, .none } },26491 .{ .src = .{ .to_mem, .to_mem, .none } },
22775 },26492 },
22776 .extra_temps = .{26493 .extra_temps = .{
22777 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26494 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22778 .{ .type = .vector_8_i32, .kind = .{ .rc = .sse } },26495 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22779 .unused,26496 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22780 .unused,26497 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22781 .unused,26498 .unused,
22782 .unused,26499 .unused,
22783 .unused,26500 .unused,
...@@ -22789,28 +26506,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22789,28 +26506,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22789 .dst_temps = .{ .mem, .unused },26506 .dst_temps = .{ .mem, .unused },
22790 .clobbers = .{ .eflags = true },26507 .clobbers = .{ .eflags = true },
22791 .each = .{ .once = &.{26508 .each = .{ .once = &.{
22792 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26509 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22793 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },26510 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
22794 .{ ._, .vp_d, .mins, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },26511 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22795 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },26512 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22796 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },26513 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
26514 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
26515 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
26516 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
26517 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
26518 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
26519 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26520 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26521 .{ ._, ._ge, .cmov, .tmp1p, .tmp2p, ._, ._ },
26522 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26523 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
26524 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
26525 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22797 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26526 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22798 } },26527 } },
22799 }, .{26528 }, .{
22800 .required_features = .{ .avx, null, null, null },26529 .required_features = .{ .@"64bit", null, null, null },
22801 .src_constraints = .{26530 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },
22802 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
22803 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
22804 .any,
22805 },
22806 .patterns = &.{26531 .patterns = &.{
22807 .{ .src = .{ .to_mem, .to_mem, .none } },26532 .{ .src = .{ .to_mem, .to_mem, .none } },
22808 },26533 },
22809 .extra_temps = .{26534 .extra_temps = .{
22810 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26535 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22811 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },26536 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22812 .unused,26537 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22813 .unused,26538 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22814 .unused,26539 .unused,
22815 .unused,26540 .unused,
22816 .unused,26541 .unused,
...@@ -22822,28 +26547,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22822,28 +26547,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22822 .dst_temps = .{ .mem, .unused },26547 .dst_temps = .{ .mem, .unused },
22823 .clobbers = .{ .eflags = true },26548 .clobbers = .{ .eflags = true },
22824 .each = .{ .once = &.{26549 .each = .{ .once = &.{
22825 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26550 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22826 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26551 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },
22827 .{ ._, .vp_d, .mins, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },26552 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22828 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26553 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22829 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26554 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
26555 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
26556 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
26557 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
26558 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
26559 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
26560 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26561 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
26562 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26563 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
26564 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
26565 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
26566 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
22830 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26567 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22831 } },26568 } },
22832 }, .{26569 }, .{
22833 .required_features = .{ .sse4_1, null, null, null },26570 .required_features = .{ .@"64bit", .cmov, null, null },
22834 .src_constraints = .{26571 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },
22835 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
22836 .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .dword } },
22837 .any,
22838 },
22839 .patterns = &.{26572 .patterns = &.{
22840 .{ .src = .{ .to_mem, .to_mem, .none } },26573 .{ .src = .{ .to_mem, .to_mem, .none } },
22841 },26574 },
22842 .extra_temps = .{26575 .extra_temps = .{
22843 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26576 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22844 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },26577 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22845 .unused,26578 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22846 .unused,26579 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22847 .unused,26580 .unused,
22848 .unused,26581 .unused,
22849 .unused,26582 .unused,
...@@ -22855,28 +26588,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22855,28 +26588,34 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22855 .dst_temps = .{ .mem, .unused },26588 .dst_temps = .{ .mem, .unused },
22856 .clobbers = .{ .eflags = true },26589 .clobbers = .{ .eflags = true },
22857 .each = .{ .once = &.{26590 .each = .{ .once = &.{
22858 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26591 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22859 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26592 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22860 .{ ._, .p_d, .mins, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26593 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22861 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26594 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22862 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26595 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22863 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26596 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
26597 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
26598 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
26599 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
26600 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
26601 .{ ._, ._ae, .cmov, .tmp1p, .tmp2p, ._, ._ },
26602 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
26603 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
26604 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
26605 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
26606 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
22864 } },26607 } },
22865 }, .{26608 }, .{
22866 .required_features = .{ .sse2, null, null, null },26609 .required_features = .{ .@"64bit", null, null, null },
22867 .src_constraints = .{26610 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },
22868 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22869 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .dword } },
22870 .any,
22871 },
22872 .patterns = &.{26611 .patterns = &.{
22873 .{ .src = .{ .to_mem, .to_mem, .none } },26612 .{ .src = .{ .to_mem, .to_mem, .none } },
22874 },26613 },
22875 .extra_temps = .{26614 .extra_temps = .{
22876 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26615 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
22877 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },26616 .{ .type = .isize, .kind = .{ .reg = .rsi } },
22878 .{ .type = .vector_4_i32, .kind = .{ .rc = .sse } },26617 .{ .type = .u64, .kind = .{ .reg = .rdi } },
22879 .unused,26618 .{ .type = .u64, .kind = .{ .reg = .rcx } },
22880 .unused,26619 .unused,
22881 .unused,26620 .unused,
22882 .unused,26621 .unused,
...@@ -22888,30 +26627,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22888,30 +26627,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22888 .dst_temps = .{ .mem, .unused },26627 .dst_temps = .{ .mem, .unused },
22889 .clobbers = .{ .eflags = true },26628 .clobbers = .{ .eflags = true },
22890 .each = .{ .once = &.{26629 .each = .{ .once = &.{
22891 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26630 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },
22892 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26631 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
22893 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26632 .{ ._, ._c, .cl, ._, ._, ._, ._ },
22894 .{ ._, .p_d, .cmpgt, .tmp1x, .tmp2x, ._, ._ },26633 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },
22895 .{ ._, .p_, .@"and", .tmp2x, .tmp1x, ._, ._ },26634 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
22896 .{ ._, .p_, .andn, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26635 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },
22897 .{ ._, .p_, .@"or", .tmp1x, .tmp2x, ._, ._ },26636 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
22898 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26637 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
22899 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26638 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
22900 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26639 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
26640 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
26641 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
26642 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
26643 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
26644 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
26645 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
22901 } },26646 } },
22902 }, .{26647 }, .{
22903 .required_features = .{ .cmov, null, null, null },26648 .required_features = .{ .f16c, null, null, null },
22904 .src_constraints = .{26649 .src_constraints = .{
22905 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },26650 .{ .scalar_float = .{ .of = .word, .is = .word } },
22906 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },26651 .{ .scalar_float = .{ .of = .word, .is = .word } },
22907 .any,26652 .any,
22908 },26653 },
22909 .patterns = &.{26654 .patterns = &.{
22910 .{ .src = .{ .to_mem, .to_mem, .none } },26655 .{ .src = .{ .to_sse, .to_sse, .none } },
22911 },26656 },
22912 .extra_temps = .{26657 .extra_temps = .{
22913 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26658 .{ .type = .f16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
22914 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },26659 .{ .type = .f16, .kind = .{ .rc = .sse } },
22915 .unused,26660 .unused,
22916 .unused,26661 .unused,
22917 .unused,26662 .unused,
...@@ -22922,29 +26667,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22922,29 +26667,29 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22922 .unused,26667 .unused,
22923 .unused,26668 .unused,
22924 },26669 },
22925 .dst_temps = .{ .mem, .unused },26670 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
22926 .clobbers = .{ .eflags = true },
22927 .each = .{ .once = &.{26671 .each = .{ .once = &.{
22928 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26672 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
22929 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },26673 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
22930 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },26674 .{ ._, .v_ss, .cmp, .tmp1x, .dst0x, .dst0d, .vp(.unord) },
22931 .{ ._, ._ge, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },26675 .{ ._, .v_ss, .min, .dst0x, .tmp0x, .dst0d, ._ },
22932 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },26676 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
22933 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },26677 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
22934 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22935 } },26678 } },
22936 }, .{26679 }, .{
26680 .required_features = .{ .sse, null, null, null },
22937 .src_constraints = .{26681 .src_constraints = .{
22938 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },26682 .{ .scalar_float = .{ .of = .word, .is = .word } },
22939 .{ .multiple_scalar_signed_int = .{ .of = .dword, .is = .dword } },26683 .{ .scalar_float = .{ .of = .word, .is = .word } },
22940 .any,26684 .any,
22941 },26685 },
22942 .patterns = &.{26686 .patterns = &.{
22943 .{ .src = .{ .to_mem, .to_mem, .none } },26687 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
22944 },26688 },
26689 .call_frame = .{ .alignment = .@"16" },
22945 .extra_temps = .{26690 .extra_temps = .{
22946 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26691 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
22947 .{ .type = .i32, .kind = .{ .rc = .general_purpose } },26692 .unused,
22948 .unused,26693 .unused,
22949 .unused,26694 .unused,
22950 .unused,26695 .unused,
...@@ -22955,66 +26700,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -22955,66 +26700,63 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
22955 .unused,26700 .unused,
22956 .unused,26701 .unused,
22957 },26702 },
22958 .dst_temps = .{ .mem, .unused },26703 .dst_temps = .{ .{ .ref = .src0 }, .unused },
22959 .clobbers = .{ .eflags = true },26704 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
22960 .each = .{ .once = &.{26705 .each = .{ .once = &.{
22961 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26706 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
22962 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },
22963 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22964 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
22965 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
22966 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
22967 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
22968 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
22969 } },26707 } },
22970 }, .{26708 }, .{
22971 .required_features = .{ .avx, null, null, null },26709 .required_features = .{ .f16c, null, null, null },
22972 .src_constraints = .{26710 .src_constraints = .{
22973 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26711 .{ .scalar_float = .{ .of = .qword, .is = .word } },
22974 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26712 .{ .scalar_float = .{ .of = .qword, .is = .word } },
22975 .any,26713 .any,
22976 },26714 },
22977 .patterns = &.{26715 .patterns = &.{
26716 .{ .src = .{ .mem, .mem, .none } },
22978 .{ .src = .{ .to_sse, .mem, .none } },26717 .{ .src = .{ .to_sse, .mem, .none } },
22979 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },26718 .{ .src = .{ .mem, .to_sse, .none } },
22980 .{ .src = .{ .to_sse, .to_sse, .none } },26719 .{ .src = .{ .to_sse, .to_sse, .none } },
22981 },26720 },
22982 .dst_temps = .{ .{ .rc = .sse }, .unused },26721 .extra_temps = .{
22983 .each = .{ .once = &.{26722 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
22984 .{ ._, .vp_d, .minu, .dst0x, .src0x, .src1x, ._ },26723 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
22985 } },26724 .unused,
22986 }, .{26725 .unused,
22987 .required_features = .{ .sse4_1, null, null, null },26726 .unused,
22988 .src_constraints = .{26727 .unused,
22989 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26728 .unused,
22990 .{ .scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26729 .unused,
22991 .any,26730 .unused,
22992 },26731 .unused,
22993 .patterns = &.{26732 .unused,
22994 .{ .src = .{ .to_mut_sse, .mem, .none } },
22995 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
22996 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
22997 },26733 },
22998 .dst_temps = .{ .{ .ref = .src0 }, .unused },26734 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
22999 .each = .{ .once = &.{26735 .each = .{ .once = &.{
23000 .{ ._, .p_d, .minu, .dst0x, .src1x, ._, ._ },26736 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },
26737 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },
26738 .{ ._, .v_ps, .cmp, .tmp1x, .dst0x, .dst0x, .vp(.unord) },
26739 .{ ._, .v_ps, .min, .dst0x, .tmp0x, .dst0x, ._ },
26740 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },
26741 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },
23001 } },26742 } },
23002 }, .{26743 }, .{
23003 .required_features = .{ .sse2, null, null, null },26744 .required_features = .{ .f16c, null, null, null },
23004 .src_constraints = .{26745 .src_constraints = .{
23005 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },26746 .{ .scalar_float = .{ .of = .xword, .is = .word } },
23006 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },26747 .{ .scalar_float = .{ .of = .xword, .is = .word } },
23007 .any,26748 .any,
23008 },26749 },
23009 .patterns = &.{26750 .patterns = &.{
23010 .{ .src = .{ .to_mut_sse, .mem, .none } },26751 .{ .src = .{ .mem, .mem, .none } },
23011 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },26752 .{ .src = .{ .to_sse, .mem, .none } },
23012 .{ .src = .{ .to_mut_sse, .to_sse, .none } },26753 .{ .src = .{ .mem, .to_sse, .none } },
26754 .{ .src = .{ .to_sse, .to_sse, .none } },
23013 },26755 },
23014 .extra_temps = .{26756 .extra_temps = .{
23015 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },26757 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },
23016 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },26758 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23017 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26759 .unused,
23018 .unused,26760 .unused,
23019 .unused,26761 .unused,
23020 .unused,26762 .unused,
...@@ -23024,39 +26766,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23024,39 +26766,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23024 .unused,26766 .unused,
23025 .unused,26767 .unused,
23026 },26768 },
23027 .dst_temps = .{ .{ .rc = .sse }, .unused },26769 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
23028 .each = .{ .once = &.{
23029 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
23030 .{ ._, ._dqa, .mov, .dst0x, .lea(.tmp0x), ._, ._ },
23031 .{ ._, ._dqa, .mov, .tmp2x, .dst0x, ._, ._ },
23032 .{ ._, .p_, .xor, .dst0x, .src1x, ._, ._ },
23033 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },
23034 .{ ._, .p_d, .cmpgt, .dst0x, .tmp2x, ._, ._ },
23035 .{ ._, .p_, .@"and", .src0x, .dst0x, ._, ._ },
23036 .{ ._, .p_, .andn, .dst0x, .src1x, ._, ._ },
23037 .{ ._, .p_, .@"or", .dst0x, .src0x, ._, ._ },
23038 } },
23039 }, .{
23040 .required_features = .{ .avx2, null, null, null },
23041 .src_constraints = .{
23042 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
23043 .{ .scalar_unsigned_int = .{ .of = .yword, .is = .dword } },
23044 .any,
23045 },
23046 .patterns = &.{
23047 .{ .src = .{ .to_sse, .mem, .none } },
23048 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
23049 .{ .src = .{ .to_sse, .to_sse, .none } },
23050 },
23051 .dst_temps = .{ .{ .rc = .sse }, .unused },
23052 .each = .{ .once = &.{26770 .each = .{ .once = &.{
23053 .{ ._, .vp_d, .minu, .dst0y, .src0y, .src1y, ._ },26771 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },
26772 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },
26773 .{ ._, .v_ps, .cmp, .tmp1y, .dst0y, .dst0y, .vp(.unord) },
26774 .{ ._, .v_ps, .min, .dst0y, .tmp0y, .dst0y, ._ },
26775 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },
26776 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },
23054 } },26777 } },
23055 }, .{26778 }, .{
23056 .required_features = .{ .avx2, null, null, null },26779 .required_features = .{ .f16c, null, null, null },
23057 .src_constraints = .{26780 .src_constraints = .{
23058 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },26781 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
23059 .{ .multiple_scalar_unsigned_int = .{ .of = .yword, .is = .dword } },26782 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },
23060 .any,26783 .any,
23061 },26784 },
23062 .patterns = &.{26785 .patterns = &.{
...@@ -23064,9 +26787,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23064,9 +26787,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23064 },26787 },
23065 .extra_temps = .{26788 .extra_temps = .{
23066 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26789 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23067 .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } },26790 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23068 .unused,26791 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23069 .unused,26792 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23070 .unused,26793 .unused,
23071 .unused,26794 .unused,
23072 .unused,26795 .unused,
...@@ -23079,27 +26802,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23079,27 +26802,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23079 .clobbers = .{ .eflags = true },26802 .clobbers = .{ .eflags = true },
23080 .each = .{ .once = &.{26803 .each = .{ .once = &.{
23081 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26804 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23082 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },26805 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ },
23083 .{ ._, .vp_d, .minu, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },26806 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23084 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },26807 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
23085 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },26808 .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ },
26809 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
26810 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ },
26811 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23086 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26812 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23087 } },26813 } },
23088 }, .{26814 }, .{
23089 .required_features = .{ .avx, null, null, null },26815 .required_features = .{ .avx, null, null, null },
23090 .src_constraints = .{26816 .src_constraints = .{
23091 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26817 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23092 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26818 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23093 .any,26819 .any,
23094 },26820 },
23095 .patterns = &.{26821 .patterns = &.{
23096 .{ .src = .{ .to_mem, .to_mem, .none } },26822 .{ .src = .{ .to_mem, .to_mem, .none } },
23097 },26823 },
26824 .call_frame = .{ .alignment = .@"16" },
23098 .extra_temps = .{26825 .extra_temps = .{
23099 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26826 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23100 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26827 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
23101 .unused,26828 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
23102 .unused,26829 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
23103 .unused,26830 .unused,
23104 .unused,26831 .unused,
23105 .unused,26832 .unused,
...@@ -23109,30 +26836,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23109,30 +26836,33 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23109 .unused,26836 .unused,
23110 },26837 },
23111 .dst_temps = .{ .mem, .unused },26838 .dst_temps = .{ .mem, .unused },
23112 .clobbers = .{ .eflags = true },26839 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23113 .each = .{ .once = &.{26840 .each = .{ .once = &.{
23114 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26841 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23115 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26842 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
23116 .{ ._, .vp_d, .minu, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },26843 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) },
23117 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26844 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) },
23118 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26845 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
26846 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
26847 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
23119 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26848 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23120 } },26849 } },
23121 }, .{26850 }, .{
23122 .required_features = .{ .sse4_1, null, null, null },26851 .required_features = .{ .sse4_1, null, null, null },
23123 .src_constraints = .{26852 .src_constraints = .{
23124 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26853 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23125 .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .dword } },26854 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23126 .any,26855 .any,
23127 },26856 },
23128 .patterns = &.{26857 .patterns = &.{
23129 .{ .src = .{ .to_mem, .to_mem, .none } },26858 .{ .src = .{ .to_mem, .to_mem, .none } },
23130 },26859 },
26860 .call_frame = .{ .alignment = .@"16" },
23131 .extra_temps = .{26861 .extra_temps = .{
23132 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26862 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23133 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26863 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
23134 .unused,26864 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
23135 .unused,26865 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
23136 .unused,26866 .unused,
23137 .unused,26867 .unused,
23138 .unused,26868 .unused,
...@@ -23142,75 +26872,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23142,75 +26872,74 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23142 .unused,26872 .unused,
23143 },26873 },
23144 .dst_temps = .{ .mem, .unused },26874 .dst_temps = .{ .mem, .unused },
23145 .clobbers = .{ .eflags = true },26875 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23146 .each = .{ .once = &.{26876 .each = .{ .once = &.{
23147 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26877 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23148 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26878 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
23149 .{ ._, .p_d, .minu, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26879 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
23150 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },26880 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
23151 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },26881 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
26882 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
26883 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
26884 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
23152 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26885 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23153 } },26886 } },
23154 }, .{26887 }, .{
23155 .required_features = .{ .sse2, null, null, null },26888 .required_features = .{ .sse2, null, null, null },
23156 .src_constraints = .{26889 .src_constraints = .{
23157 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },26890 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23158 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 32 } },26891 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23159 .any,26892 .any,
23160 },26893 },
23161 .patterns = &.{26894 .patterns = &.{
23162 .{ .src = .{ .to_mem, .to_mem, .none } },26895 .{ .src = .{ .to_mem, .to_mem, .none } },
23163 },26896 },
26897 .call_frame = .{ .alignment = .@"16" },
23164 .extra_temps = .{26898 .extra_temps = .{
23165 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26899 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23166 .{ .type = .vector_4_u32, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .xword } } },26900 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
23167 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26901 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
23168 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26902 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
23169 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26903 .{ .type = .f16, .kind = .{ .reg = .ax } },
23170 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26904 .unused,
23171 .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } },26905 .unused,
23172 .unused,26906 .unused,
23173 .unused,26907 .unused,
23174 .unused,26908 .unused,
23175 .unused,26909 .unused,
23176 },26910 },
23177 .dst_temps = .{ .mem, .unused },26911 .dst_temps = .{ .mem, .unused },
23178 .clobbers = .{ .eflags = true },26912 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23179 .each = .{ .once = &.{26913 .each = .{ .once = &.{
23180 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },
23181 .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ },
23182 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26914 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23183 .{ .@"0:", ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },26915 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },
23184 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },26916 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },
23185 .{ ._, ._dqa, .mov, .tmp5x, .tmp3x, ._, ._ },26917 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
23186 .{ ._, ._dqa, .mov, .tmp6x, .tmp4x, ._, ._ },26918 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
23187 .{ ._, .p_, .xor, .tmp5x, .tmp2x, ._, ._ },26919 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
23188 .{ ._, .p_, .xor, .tmp6x, .tmp2x, ._, ._ },26920 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },
23189 .{ ._, .p_d, .cmpgt, .tmp5x, .tmp6x, ._, ._ },26921 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ },
23190 .{ ._, .p_, .@"and", .tmp4x, .tmp5x, ._, ._ },26922 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
23191 .{ ._, .p_, .andn, .tmp5x, .tmp3x, ._, ._ },
23192 .{ ._, .p_, .@"or", .tmp4x, .tmp5x, ._, ._ },
23193 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp4x, ._, ._ },
23194 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23195 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26923 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23196 } },26924 } },
23197 }, .{26925 }, .{
23198 .required_features = .{ .cmov, null, null, null },26926 .required_features = .{ .sse, null, null, null },
23199 .src_constraints = .{26927 .src_constraints = .{
23200 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },26928 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23201 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },26929 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },
23202 .any,26930 .any,
23203 },26931 },
23204 .patterns = &.{26932 .patterns = &.{
23205 .{ .src = .{ .to_mem, .to_mem, .none } },26933 .{ .src = .{ .to_mem, .to_mem, .none } },
23206 },26934 },
26935 .call_frame = .{ .alignment = .@"16" },
23207 .extra_temps = .{26936 .extra_temps = .{
23208 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26937 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23209 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },26938 .{ .type = .f16, .kind = .{ .reg = .ax } },
23210 .unused,26939 .{ .type = .f32, .kind = .mem },
23211 .unused,26940 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },
23212 .unused,26941 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },
23213 .unused,26942 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },
23214 .unused,26943 .unused,
23215 .unused,26944 .unused,
23216 .unused,26945 .unused,
...@@ -23218,28 +26947,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23218,28 +26947,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23218 .unused,26947 .unused,
23219 },26948 },
23220 .dst_temps = .{ .mem, .unused },26949 .dst_temps = .{ .mem, .unused },
23221 .clobbers = .{ .eflags = true },26950 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23222 .each = .{ .once = &.{26951 .each = .{ .once = &.{
23223 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26952 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23224 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },26953 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },
23225 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },26954 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
23226 .{ ._, ._ae, .cmov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },26955 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },
23227 .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },26956 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_size), ._, ._ },
23228 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },26957 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },
26958 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
26959 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
26960 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
26961 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
26962 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
26963 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
23229 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },26964 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23230 } },26965 } },
23231 }, .{26966 }, .{
26967 .required_features = .{ .avx, null, null, null },
23232 .src_constraints = .{26968 .src_constraints = .{
23233 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },26969 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23234 .{ .multiple_scalar_unsigned_int = .{ .of = .dword, .is = .dword } },26970 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23235 .any,26971 .any,
23236 },26972 },
23237 .patterns = &.{26973 .patterns = &.{
23238 .{ .src = .{ .to_mem, .to_mem, .none } },26974 .{ .src = .{ .to_sse, .to_sse, .none } },
23239 },26975 },
23240 .extra_temps = .{26976 .extra_temps = .{
23241 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },26977 .{ .type = .f32, .kind = .{ .rc = .sse } },
23242 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },26978 .unused,
23243 .unused,26979 .unused,
23244 .unused,26980 .unused,
23245 .unused,26981 .unused,
...@@ -23250,49 +26986,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23250,49 +26986,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23250 .unused,26986 .unused,
23251 .unused,26987 .unused,
23252 },26988 },
23253 .dst_temps = .{ .mem, .unused },26989 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
23254 .clobbers = .{ .eflags = true },
23255 .each = .{ .once = &.{26990 .each = .{ .once = &.{
23256 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },26991 .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) },
23257 .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_size), ._, ._ },26992 .{ ._, .v_ss, .min, .dst0x, .src1x, .src0d, ._ },
23258 .{ ._, ._, .cmp, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },26993 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
23259 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
23260 .{ ._, ._, .mov, .tmp1d, .memia(.src1d, .tmp0, .add_size), ._, ._ },
23261 .{ .@"1:", ._, .mov, .memia(.dst0d, .tmp0, .add_size), .tmp1d, ._, ._ },
23262 .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ },
23263 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23264 } },26994 } },
23265 }, .{26995 }, .{
23266 .required_features = .{ .avx, null, null, null },26996 .required_features = .{ .sse4_1, null, null, null },
23267 .src_constraints = .{26997 .src_constraints = .{
23268 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },26998 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23269 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },26999 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23270 .any,27000 .any,
23271 },27001 },
23272 .patterns = &.{27002 .patterns = &.{
23273 .{ .src = .{ .to_sse, .mem, .none } },27003 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
23274 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
23275 .{ .src = .{ .to_sse, .to_sse, .none } },
23276 },27004 },
23277 .dst_temps = .{ .{ .rc = .sse }, .unused },27005 .dst_temps = .{ .{ .rc = .sse }, .unused },
23278 .each = .{ .once = &.{27006 .each = .{ .once = &.{
23279 .{ ._, .vp_q, .cmpgt, .dst0x, .src0x, .src1x, ._ },27007 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },
23280 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },27008 .{ ._, ._ss, .min, .dst0x, .src0d, ._, ._ },
27009 .{ ._, ._ss, .cmp, .src0x, .src0d, .sp(.unord), ._ },
27010 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
23281 } },27011 } },
23282 }, .{27012 }, .{
23283 .required_features = .{ .sse4_2, null, null, null },27013 .required_features = .{ .sse, null, null, null },
23284 .src_constraints = .{27014 .src_constraints = .{
23285 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27015 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23286 .{ .scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27016 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
23287 .any,27017 .any,
23288 },27018 },
23289 .patterns = &.{27019 .patterns = &.{
23290 .{ .src = .{ .to_mut_sse, .mem, .none } },
23291 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
23292 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27020 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
23293 },27021 },
23294 .extra_temps = .{27022 .extra_temps = .{
23295 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },27023 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23296 .unused,27024 .unused,
23297 .unused,27025 .unused,
23298 .unused,27026 .unused,
...@@ -23306,42 +27034,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23306,42 +27034,78 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23306 },27034 },
23307 .dst_temps = .{ .{ .ref = .src0 }, .unused },27035 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23308 .each = .{ .once = &.{27036 .each = .{ .once = &.{
23309 .{ ._, ._dqa, .mov, .tmp0x, .src0x, ._, ._ },27037 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },
23310 .{ ._, .p_q, .cmpgt, .tmp0x, .src1x, ._, ._ },27038 .{ ._, ._ss, .min, .tmp0x, .src0d, ._, ._ },
23311 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp0x, ._ },27039 .{ ._, ._ss, .cmp, .dst0x, .src0d, .sp(.ord), ._ },
27040 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
27041 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
27042 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
23312 } },27043 } },
23313 }, .{27044 }, .{
23314 .required_features = .{ .avx2, null, null, null },27045 .required_features = .{ .avx, null, null, null },
23315 .src_constraints = .{27046 .src_constraints = .{
23316 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },27047 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
23317 .{ .scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },27048 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
23318 .any,27049 .any,
23319 },27050 },
23320 .patterns = &.{27051 .patterns = &.{
23321 .{ .src = .{ .to_sse, .mem, .none } },
23322 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
23323 .{ .src = .{ .to_sse, .to_sse, .none } },27052 .{ .src = .{ .to_sse, .to_sse, .none } },
23324 },27053 },
27054 .extra_temps = .{
27055 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
27056 .unused,
27057 .unused,
27058 .unused,
27059 .unused,
27060 .unused,
27061 .unused,
27062 .unused,
27063 .unused,
27064 .unused,
27065 .unused,
27066 },
27067 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27068 .each = .{ .once = &.{
27069 .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },
27070 .{ ._, .v_ps, .min, .dst0x, .src1x, .src0x, ._ },
27071 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
27072 } },
27073 }, .{
27074 .required_features = .{ .sse4_1, null, null, null },
27075 .src_constraints = .{
27076 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27077 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
27078 .any,
27079 },
27080 .patterns = &.{
27081 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },
27082 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },
27083 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
27084 },
23325 .dst_temps = .{ .{ .rc = .sse }, .unused },27085 .dst_temps = .{ .{ .rc = .sse }, .unused },
23326 .each = .{ .once = &.{27086 .each = .{ .once = &.{
23327 .{ ._, .vp_q, .cmpgt, .dst0y, .src0y, .src1y, ._ },27087 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },
23328 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },27088 .{ ._, ._ps, .min, .dst0x, .src0x, ._, ._ },
27089 .{ ._, ._ps, .cmp, .src0x, .src0x, .sp(.unord), ._ },
27090 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
23329 } },27091 } },
23330 }, .{27092 }, .{
23331 .required_features = .{ .avx2, null, null, null },27093 .required_features = .{ .sse, null, null, null },
23332 .src_constraints = .{27094 .src_constraints = .{
23333 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },27095 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
23334 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .yword, .is = .qword } },27096 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
23335 .any,27097 .any,
23336 },27098 },
23337 .patterns = &.{27099 .patterns = &.{
23338 .{ .src = .{ .to_mem, .to_mem, .none } },27100 .{ .src = .{ .to_mut_sse, .mem, .none } },
27101 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
27102 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
23339 },27103 },
23340 .extra_temps = .{27104 .extra_temps = .{
23341 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27105 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23342 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },27106 .unused,
23343 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },27107 .unused,
23344 .{ .type = .vector_4_i64, .kind = .{ .rc = .sse } },27108 .unused,
23345 .unused,27109 .unused,
23346 .unused,27110 .unused,
23347 .unused,27111 .unused,
...@@ -23350,33 +27114,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23350,33 +27114,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23350 .unused,27114 .unused,
23351 .unused,27115 .unused,
23352 },27116 },
23353 .dst_temps = .{ .mem, .unused },27117 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23354 .clobbers = .{ .eflags = true },
23355 .each = .{ .once = &.{27118 .each = .{ .once = &.{
23356 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27119 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },
23357 .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },27120 .{ ._, ._ps, .min, .tmp0x, .src0x, ._, ._ },
23358 .{ ._, .v_dqa, .mov, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },27121 .{ ._, ._ps, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
23359 .{ ._, .vp_q, .cmpgt, .tmp3y, .tmp1y, .tmp2y, ._ },27122 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
23360 .{ ._, .vp_b, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },27123 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
23361 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },27124 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
23362 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
23363 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23364 } },27125 } },
23365 }, .{27126 }, .{
23366 .required_features = .{ .avx, null, null, null },27127 .required_features = .{ .avx, null, null, null },
23367 .src_constraints = .{27128 .src_constraints = .{
23368 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27129 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
23369 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27130 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
23370 .any,27131 .any,
23371 },27132 },
23372 .patterns = &.{27133 .patterns = &.{
23373 .{ .src = .{ .to_mem, .to_mem, .none } },27134 .{ .src = .{ .to_sse, .to_sse, .none } },
23374 },27135 },
23375 .extra_temps = .{27136 .extra_temps = .{
23376 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27137 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23377 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },27138 .unused,
23378 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },27139 .unused,
23379 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },27140 .unused,
23380 .unused,27141 .unused,
23381 .unused,27142 .unused,
23382 .unused,27143 .unused,
...@@ -23385,23 +27146,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23385,23 +27146,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23385 .unused,27146 .unused,
23386 .unused,27147 .unused,
23387 },27148 },
23388 .dst_temps = .{ .mem, .unused },27149 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
23389 .clobbers = .{ .eflags = true },
23390 .each = .{ .once = &.{27150 .each = .{ .once = &.{
23391 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27151 .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },
23392 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },27152 .{ ._, .v_ps, .min, .dst0y, .src1y, .src0y, ._ },
23393 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },27153 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
23394 .{ ._, .vp_q, .cmpgt, .tmp3x, .tmp1x, .tmp2x, ._ },
23395 .{ ._, .vp_b, .blendv, .tmp1x, .tmp1x, .tmp2x, .tmp3x },
23396 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
23397 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23398 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23399 } },27154 } },
23400 }, .{27155 }, .{
23401 .required_features = .{ .sse4_2, null, null, null },27156 .required_features = .{ .avx, null, null, null },
23402 .src_constraints = .{27157 .src_constraints = .{
23403 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27158 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
23404 .{ .multiple_scalar_signed_or_exclusive_int = .{ .of = .xword, .is = .qword } },27159 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
23405 .any,27160 .any,
23406 },27161 },
23407 .patterns = &.{27162 .patterns = &.{
...@@ -23409,9 +27164,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23409,9 +27164,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23409 },27164 },
23410 .extra_temps = .{27165 .extra_temps = .{
23411 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27166 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23412 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },27167 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23413 .{ .type = .vector_2_i64, .kind = .{ .rc = .sse } },27168 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23414 .{ .type = .vector_2_i64, .kind = .{ .reg = .xmm0 } },27169 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
23415 .unused,27170 .unused,
23416 .unused,27171 .unused,
23417 .unused,27172 .unused,
...@@ -23424,20 +27179,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23424,20 +27179,20 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23424 .clobbers = .{ .eflags = true },27179 .clobbers = .{ .eflags = true },
23425 .each = .{ .once = &.{27180 .each = .{ .once = &.{
23426 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27181 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23427 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },27182 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
23428 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },27183 .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
23429 .{ ._, ._dqa, .mov, .tmp3x, .tmp1x, ._, ._ },27184 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
23430 .{ ._, .p_q, .cmpgt, .tmp3x, .tmp2x, ._, ._ },27185 .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ },
23431 .{ ._, .p_b, .blendv, .tmp1x, .tmp2x, .tmp3x, ._ },27186 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
23432 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },27187 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
23433 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27188 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
23434 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27189 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23435 } },27190 } },
23436 }, .{27191 }, .{
23437 .required_features = .{ .@"64bit", .cmov, null, null },27192 .required_features = .{ .sse4_1, null, null, null },
23438 .src_constraints = .{27193 .src_constraints = .{
23439 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },27194 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
23440 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },27195 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
23441 .any,27196 .any,
23442 },27197 },
23443 .patterns = &.{27198 .patterns = &.{
...@@ -23445,9 +27200,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23445,9 +27200,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23445 },27200 },
23446 .extra_temps = .{27201 .extra_temps = .{
23447 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27202 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23448 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },27203 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
23449 .unused,27204 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23450 .unused,27205 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23451 .unused,27206 .unused,
23452 .unused,27207 .unused,
23453 .unused,27208 .unused,
...@@ -23460,18 +27215,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23460,18 +27215,21 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23460 .clobbers = .{ .eflags = true },27215 .clobbers = .{ .eflags = true },
23461 .each = .{ .once = &.{27216 .each = .{ .once = &.{
23462 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27217 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23463 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },27218 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
23464 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27219 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23465 .{ ._, ._ge, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27220 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
23466 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },27221 .{ ._, ._ps, .min, .tmp3x, .tmp1x, ._, ._ },
23467 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },27222 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
27223 .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
27224 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
27225 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23468 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27226 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23469 } },27227 } },
23470 }, .{27228 }, .{
23471 .required_features = .{ .@"64bit", null, null, null },27229 .required_features = .{ .sse, null, null, null },
23472 .src_constraints = .{27230 .src_constraints = .{
23473 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },27231 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
23474 .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .qword } },27232 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
23475 .any,27233 .any,
23476 },27234 },
23477 .patterns = &.{27235 .patterns = &.{
...@@ -23479,9 +27237,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23479,9 +27237,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23479 },27237 },
23480 .extra_temps = .{27238 .extra_temps = .{
23481 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27239 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23482 .{ .type = .i64, .kind = .{ .rc = .general_purpose } },27240 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23483 .unused,27241 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23484 .unused,27242 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
23485 .unused,27243 .unused,
23486 .unused,27244 .unused,
23487 .unused,27245 .unused,
...@@ -23494,30 +27252,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23494,30 +27252,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23494 .clobbers = .{ .eflags = true },27252 .clobbers = .{ .eflags = true },
23495 .each = .{ .once = &.{27253 .each = .{ .once = &.{
23496 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27254 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23497 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },27255 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
23498 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27256 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23499 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },27257 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
23500 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27258 .{ ._, ._ps, .min, .tmp3x, .tmp1x, ._, ._ },
23501 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },27259 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
23502 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },27260 .{ ._, ._ps, .@"and", .tmp3x, .tmp1x, ._, ._ },
27261 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
27262 .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ },
27263 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
27264 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23503 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27265 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23504 } },27266 } },
23505 }, .{27267 }, .{
23506 .required_features = .{ .avx, null, null, null },27268 .required_features = .{ .avx, null, null, null },
23507 .src_constraints = .{27269 .src_constraints = .{
23508 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27270 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23509 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27271 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23510 .any,27272 .any,
23511 },27273 },
23512 .patterns = &.{27274 .patterns = &.{
23513 .{ .src = .{ .to_sse, .mem, .none } },
23514 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
23515 .{ .src = .{ .to_sse, .to_sse, .none } },27275 .{ .src = .{ .to_sse, .to_sse, .none } },
23516 },27276 },
23517 .extra_temps = .{27277 .extra_temps = .{
23518 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },27278 .{ .type = .f64, .kind = .{ .rc = .sse } },
23519 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
23520 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23521 .unused,27279 .unused,
23522 .unused,27280 .unused,
23523 .unused,27281 .unused,
...@@ -23526,33 +27284,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23526,33 +27284,47 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23526 .unused,27284 .unused,
23527 .unused,27285 .unused,
23528 .unused,27286 .unused,
27287 .unused,
27288 .unused,
27289 },
27290 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
27291 .each = .{ .once = &.{
27292 .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) },
27293 .{ ._, .v_sd, .min, .dst0x, .src1x, .src0q, ._ },
27294 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
27295 } },
27296 }, .{
27297 .required_features = .{ .sse4_1, null, null, null },
27298 .src_constraints = .{
27299 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27300 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
27301 .any,
27302 },
27303 .patterns = &.{
27304 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
23529 },27305 },
23530 .dst_temps = .{ .{ .rc = .sse }, .unused },27306 .dst_temps = .{ .{ .rc = .sse }, .unused },
23531 .each = .{ .once = &.{27307 .each = .{ .once = &.{
23532 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27308 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },
23533 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },27309 .{ ._, ._sd, .min, .dst0x, .src0q, ._, ._ },
23534 .{ ._, .vp_, .xor, .dst0x, .tmp2x, .src0x, ._ },27310 .{ ._, ._sd, .cmp, .src0x, .src0q, .sp(.unord), ._ },
23535 .{ ._, .vp_, .xor, .tmp2x, .tmp2x, .src1x, ._ },27311 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
23536 .{ ._, .vp_q, .cmpgt, .dst0x, .dst0x, .tmp2x, ._ },
23537 .{ ._, .vp_b, .blendv, .dst0x, .src0x, .src1x, .dst0x },
23538 } },27312 } },
23539 }, .{27313 }, .{
23540 .required_features = .{ .sse4_2, null, null, null },27314 .required_features = .{ .sse2, null, null, null },
23541 .src_constraints = .{27315 .src_constraints = .{
23542 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27316 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23543 .{ .scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27317 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23544 .any,27318 .any,
23545 },27319 },
23546 .patterns = &.{27320 .patterns = &.{
23547 .{ .src = .{ .to_mut_sse, .mem, .none } },
23548 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
23549 .{ .src = .{ .to_mut_sse, .to_sse, .none } },27321 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
23550 },27322 },
23551 .extra_temps = .{27323 .extra_temps = .{
23552 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },27324 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23553 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },27325 .unused,
23554 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },27326 .unused,
23555 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },27327 .unused,
23556 .unused,27328 .unused,
23557 .unused,27329 .unused,
23558 .unused,27330 .unused,
...@@ -23563,30 +27335,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23563,30 +27335,28 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23563 },27335 },
23564 .dst_temps = .{ .{ .ref = .src0 }, .unused },27336 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23565 .each = .{ .once = &.{27337 .each = .{ .once = &.{
23566 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27338 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },
23567 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },27339 .{ ._, ._sd, .min, .tmp0x, .src0q, ._, ._ },
23568 .{ ._, ._dqa, .mov, .tmp3x, .tmp2x, ._, ._ },27340 .{ ._, ._sd, .cmp, .dst0x, .src0q, .sp(.ord), ._ },
23569 .{ ._, .p_, .xor, .tmp2x, .src0x, ._, ._ },27341 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
23570 .{ ._, .p_, .xor, .tmp3x, .src1x, ._, ._ },27342 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
23571 .{ ._, .p_q, .cmpgt, .tmp2x, .tmp3x, ._, ._ },27343 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
23572 .{ ._, .p_b, .blendv, .dst0x, .src1x, .tmp2x, ._ },
23573 } },27344 } },
23574 }, .{27345 }, .{
23575 .required_features = .{ .avx2, null, null, null },27346 .required_features = .{ .sse, null, null, null },
23576 .src_constraints = .{27347 .src_constraints = .{
23577 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },27348 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23578 .{ .scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },27349 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
23579 .any,27350 .any,
23580 },27351 },
23581 .patterns = &.{27352 .patterns = &.{
23582 .{ .src = .{ .to_sse, .mem, .none } },27353 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
23583 .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } },
23584 .{ .src = .{ .to_sse, .to_sse, .none } },
23585 },27354 },
27355 .call_frame = .{ .alignment = .@"16" },
23586 .extra_temps = .{27356 .extra_temps = .{
23587 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },27357 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmin" } } },
23588 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },27358 .unused,
23589 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27359 .unused,
23590 .unused,27360 .unused,
23591 .unused,27361 .unused,
23592 .unused,27362 .unused,
...@@ -23596,147 +27366,106 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23596,147 +27366,106 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23596 .unused,27366 .unused,
23597 .unused,27367 .unused,
23598 },27368 },
23599 .dst_temps = .{ .{ .rc = .sse }, .unused },27369 .dst_temps = .{ .{ .ref = .src0 }, .unused },
27370 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23600 .each = .{ .once = &.{27371 .each = .{ .once = &.{
23601 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27372 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
23602 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },
23603 .{ ._, .vp_, .xor, .dst0y, .tmp2y, .src0y, ._ },
23604 .{ ._, .vp_, .xor, .tmp2y, .tmp2y, .src1y, ._ },
23605 .{ ._, .vp_q, .cmpgt, .dst0y, .dst0y, .tmp2y, ._ },
23606 .{ ._, .vp_b, .blendv, .dst0y, .src0y, .src1y, .dst0y },
23607 } },27373 } },
23608 }, .{27374 }, .{
23609 .required_features = .{ .avx2, null, null, null },27375 .required_features = .{ .avx, null, null, null },
23610 .src_constraints = .{27376 .src_constraints = .{
23611 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },27377 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23612 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .yword, .is = 64 } },27378 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23613 .any,27379 .any,
23614 },27380 },
23615 .patterns = &.{27381 .patterns = &.{
23616 .{ .src = .{ .to_mem, .to_mem, .none } },27382 .{ .src = .{ .to_sse, .to_sse, .none } },
23617 },27383 },
23618 .extra_temps = .{27384 .extra_temps = .{
23619 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27385 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23620 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },27386 .unused,
23621 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27387 .unused,
23622 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27388 .unused,
23623 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27389 .unused,
23624 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27390 .unused,
23625 .{ .type = .vector_4_u64, .kind = .{ .rc = .sse } },27391 .unused,
23626 .unused,27392 .unused,
23627 .unused,27393 .unused,
23628 .unused,27394 .unused,
23629 .unused,27395 .unused,
23630 },27396 },
23631 .dst_temps = .{ .mem, .unused },27397 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
23632 .clobbers = .{ .eflags = true },
23633 .each = .{ .once = &.{27398 .each = .{ .once = &.{
23634 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27399 .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },
23635 .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ },27400 .{ ._, .v_pd, .min, .dst0x, .src1x, .src0x, ._ },
23636 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27401 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
23637 .{ .@"0:", .v_dqa, .mov, .tmp3y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
23638 .{ ._, .v_dqa, .mov, .tmp4y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
23639 .{ ._, .vp_, .xor, .tmp5y, .tmp3y, .tmp2y, ._ },
23640 .{ ._, .vp_, .xor, .tmp6y, .tmp4y, .tmp2y, ._ },
23641 .{ ._, .vp_q, .cmpgt, .tmp5y, .tmp5y, .tmp6y, ._ },
23642 .{ ._, .vp_b, .blendv, .tmp3y, .tmp3y, .tmp4y, .tmp5y },
23643 .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp3y, ._, ._ },
23644 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
23645 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23646 } },27402 } },
23647 }, .{27403 }, .{
23648 .required_features = .{ .avx, null, null, null },27404 .required_features = .{ .sse4_1, null, null, null },
23649 .src_constraints = .{27405 .src_constraints = .{
23650 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27406 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23651 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27407 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23652 .any,27408 .any,
23653 },27409 },
23654 .patterns = &.{27410 .patterns = &.{
23655 .{ .src = .{ .to_mem, .to_mem, .none } },27411 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },
23656 },27412 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },
23657 .extra_temps = .{27413 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
23658 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23659 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },
23660 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23661 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23662 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23663 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23664 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },
23665 .unused,
23666 .unused,
23667 .unused,
23668 .unused,
23669 },27414 },
23670 .dst_temps = .{ .mem, .unused },27415 .dst_temps = .{ .{ .rc = .sse }, .unused },
23671 .clobbers = .{ .eflags = true },
23672 .each = .{ .once = &.{27416 .each = .{ .once = &.{
23673 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27417 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },
23674 .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },27418 .{ ._, ._pd, .min, .dst0x, .src0x, ._, ._ },
23675 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27419 .{ ._, ._pd, .cmp, .src0x, .src0x, .sp(.unord), ._ },
23676 .{ .@"0:", .v_dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },27420 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
23677 .{ ._, .v_dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23678 .{ ._, .vp_, .xor, .tmp5x, .tmp3x, .tmp2x, ._ },
23679 .{ ._, .vp_, .xor, .tmp6x, .tmp4x, .tmp2x, ._ },
23680 .{ ._, .vp_q, .cmpgt, .tmp5x, .tmp5x, .tmp6x, ._ },
23681 .{ ._, .vp_b, .blendv, .tmp3x, .tmp3x, .tmp4x, .tmp5x },
23682 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
23683 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23684 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23685 } },27421 } },
23686 }, .{27422 }, .{
23687 .required_features = .{ .sse4_2, null, null, null },27423 .required_features = .{ .sse2, null, null, null },
23688 .src_constraints = .{27424 .src_constraints = .{
23689 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27425 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23690 .{ .multiple_scalar_exact_unsigned_int = .{ .of = .xword, .is = 64 } },27426 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
23691 .any,27427 .any,
23692 },27428 },
23693 .patterns = &.{27429 .patterns = &.{
23694 .{ .src = .{ .to_mem, .to_mem, .none } },27430 .{ .src = .{ .to_mut_sse, .mem, .none } },
27431 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },
27432 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
23695 },27433 },
23696 .extra_temps = .{27434 .extra_temps = .{
23697 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27435 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23698 .{ .type = .u64, .kind = .{ .smin_mem = .{ .ref = .src0, .vectorize_to = .none } } },27436 .unused,
23699 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },27437 .unused,
23700 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },27438 .unused,
23701 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },27439 .unused,
23702 .{ .type = .vector_2_u64, .kind = .{ .reg = .xmm0 } },27440 .unused,
23703 .{ .type = .vector_2_u64, .kind = .{ .rc = .sse } },27441 .unused,
23704 .unused,27442 .unused,
23705 .unused,27443 .unused,
23706 .unused,27444 .unused,
23707 .unused,27445 .unused,
23708 },27446 },
23709 .dst_temps = .{ .mem, .unused },27447 .dst_temps = .{ .{ .ref = .src0 }, .unused },
23710 .clobbers = .{ .eflags = true },
23711 .each = .{ .once = &.{27448 .each = .{ .once = &.{
23712 .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ },27449 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },
23713 .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ },27450 .{ ._, ._pd, .min, .tmp0x, .src0x, ._, ._ },
23714 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27451 .{ ._, ._pd, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
23715 .{ .@"0:", ._dqa, .mov, .tmp5x, .tmp2x, ._, ._ },27452 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
23716 .{ ._, ._dqa, .mov, .tmp6x, .tmp2x, ._, ._ },27453 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
23717 .{ ._, ._dqa, .mov, .tmp3x, .memia(.src0x, .tmp0, .add_size), ._, ._ },27454 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
23718 .{ ._, ._dqa, .mov, .tmp4x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23719 .{ ._, .p_, .xor, .tmp5x, .tmp3x, ._, ._ },
23720 .{ ._, .p_, .xor, .tmp6x, .tmp4x, ._, ._ },
23721 .{ ._, .p_q, .cmpgt, .tmp5x, .tmp6x, ._, ._ },
23722 .{ ._, .p_b, .blendv, .tmp3x, .tmp4x, .tmp5x, ._ },
23723 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
23724 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23725 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23726 } },27455 } },
23727 }, .{27456 }, .{
23728 .required_features = .{ .@"64bit", .cmov, null, null },27457 .required_features = .{ .avx, null, null, null },
23729 .src_constraints = .{27458 .src_constraints = .{
23730 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },27459 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
23731 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },27460 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
23732 .any,27461 .any,
23733 },27462 },
23734 .patterns = &.{27463 .patterns = &.{
23735 .{ .src = .{ .to_mem, .to_mem, .none } },27464 .{ .src = .{ .to_sse, .to_sse, .none } },
23736 },27465 },
23737 .extra_temps = .{27466 .extra_temps = .{
23738 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27467 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
23739 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },27468 .unused,
23740 .unused,27469 .unused,
23741 .unused,27470 .unused,
23742 .unused,27471 .unused,
...@@ -23747,22 +27476,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23747,22 +27476,17 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23747 .unused,27476 .unused,
23748 .unused,27477 .unused,
23749 },27478 },
23750 .dst_temps = .{ .mem, .unused },27479 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
23751 .clobbers = .{ .eflags = true },
23752 .each = .{ .once = &.{27480 .each = .{ .once = &.{
23753 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27481 .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },
23754 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },27482 .{ ._, .v_pd, .min, .dst0y, .src1y, .src0y, ._ },
23755 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27483 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
23756 .{ ._, ._ae, .cmov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
23757 .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
23758 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
23759 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23760 } },27484 } },
23761 }, .{27485 }, .{
23762 .required_features = .{ .@"64bit", null, null, null },27486 .required_features = .{ .avx, null, null, null },
23763 .src_constraints = .{27487 .src_constraints = .{
23764 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },27488 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
23765 .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .qword } },27489 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },
23766 .any,27490 .any,
23767 },27491 },
23768 .patterns = &.{27492 .patterns = &.{
...@@ -23770,9 +27494,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23770,9 +27494,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23770 },27494 },
23771 .extra_temps = .{27495 .extra_temps = .{
23772 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27496 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23773 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },27497 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
23774 .unused,27498 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
23775 .unused,27499 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
23776 .unused,27500 .unused,
23777 .unused,27501 .unused,
23778 .unused,27502 .unused,
...@@ -23785,25 +27509,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23785,25 +27509,30 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23785 .clobbers = .{ .eflags = true },27509 .clobbers = .{ .eflags = true },
23786 .each = .{ .once = &.{27510 .each = .{ .once = &.{
23787 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27511 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23788 .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },27512 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
23789 .{ ._, ._, .cmp, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27513 .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
23790 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },27514 .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
23791 .{ ._, ._, .mov, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },27515 .{ ._, .v_pd, .min, .tmp1y, .tmp2y, .tmp1y, ._ },
23792 .{ .@"1:", ._, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },27516 .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
23793 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },27517 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
27518 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
23794 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27519 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23795 } },27520 } },
23796 }, .{27521 }, .{
23797 .required_features = .{ .@"64bit", .cmov, null, null },27522 .required_features = .{ .sse4_1, null, null, null },
23798 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },27523 .src_constraints = .{
27524 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27525 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27526 .any,
27527 },
23799 .patterns = &.{27528 .patterns = &.{
23800 .{ .src = .{ .to_mem, .to_mem, .none } },27529 .{ .src = .{ .to_mem, .to_mem, .none } },
23801 },27530 },
23802 .extra_temps = .{27531 .extra_temps = .{
23803 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27532 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23804 .{ .type = .isize, .kind = .{ .reg = .rsi } },27533 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },
23805 .{ .type = .u64, .kind = .{ .reg = .rdi } },27534 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23806 .{ .type = .u64, .kind = .{ .reg = .rcx } },27535 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23807 .unused,27536 .unused,
23808 .unused,27537 .unused,
23809 .unused,27538 .unused,
...@@ -23815,36 +27544,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23815,36 +27544,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23815 .dst_temps = .{ .mem, .unused },27544 .dst_temps = .{ .mem, .unused },
23816 .clobbers = .{ .eflags = true },27545 .clobbers = .{ .eflags = true },
23817 .each = .{ .once = &.{27546 .each = .{ .once = &.{
23818 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27547 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23819 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },27548 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
23820 .{ ._, ._c, .cl, ._, ._, ._, ._ },27549 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23821 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27550 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },
23822 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },27551 .{ ._, ._pd, .min, .tmp3x, .tmp1x, ._, ._ },
23823 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },27552 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
23824 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },27553 .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
23825 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },27554 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
23826 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27555 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23827 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },
23828 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23829 .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23830 .{ ._, ._ge, .cmov, .tmp1p, .tmp2p, ._, ._ },
23831 .{ ._, ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23832 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23833 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23834 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
23835 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27556 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23836 } },27557 } },
23837 }, .{27558 }, .{
23838 .required_features = .{ .@"64bit", null, null, null },27559 .required_features = .{ .sse2, null, null, null },
23839 .src_constraints = .{ .any_scalar_signed_int, .any_scalar_signed_int, .any },27560 .src_constraints = .{
27561 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27562 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },
27563 .any,
27564 },
23840 .patterns = &.{27565 .patterns = &.{
23841 .{ .src = .{ .to_mem, .to_mem, .none } },27566 .{ .src = .{ .to_mem, .to_mem, .none } },
23842 },27567 },
23843 .extra_temps = .{27568 .extra_temps = .{
23844 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27569 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23845 .{ .type = .isize, .kind = .{ .reg = .rsi } },27570 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23846 .{ .type = .u64, .kind = .{ .reg = .rdi } },27571 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23847 .{ .type = .u64, .kind = .{ .reg = .rcx } },27572 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
23848 .unused,27573 .unused,
23849 .unused,27574 .unused,
23850 .unused,27575 .unused,
...@@ -23856,36 +27581,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23856,36 +27581,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23856 .dst_temps = .{ .mem, .unused },27581 .dst_temps = .{ .mem, .unused },
23857 .clobbers = .{ .eflags = true },27582 .clobbers = .{ .eflags = true },
23858 .each = .{ .once = &.{27583 .each = .{ .once = &.{
23859 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27584 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23860 .{ .@"0:", ._, .mov, .tmp1d, .sia(-1, .none, .add_src0_elem_size_div_8), ._, ._ },27585 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
23861 .{ ._, ._c, .cl, ._, ._, ._, ._ },27586 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
23862 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27587 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },
23863 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },27588 .{ ._, ._pd, .min, .tmp3x, .tmp1x, ._, ._ },
23864 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },27589 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
23865 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },27590 .{ ._, ._pd, .@"and", .tmp3x, .tmp1x, ._, ._ },
23866 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },27591 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },
23867 .{ ._, ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27592 .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ },
23868 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },27593 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
23869 .{ ._, ._, .lea, .tmp1p, .memiad(.src0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },27594 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
23870 .{ ._, ._nge, .j, .@"1f", ._, ._, ._ },
23871 .{ ._, ._, .lea, .tmp1p, .memiad(.src1, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23872 .{ .@"1:", ._, .lea, .tmp2p, .memiad(.dst0, .tmp0, .add_unaligned_size_sub_elem_size, 8), ._, ._ },
23873 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23874 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23875 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
23876 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27595 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23877 } },27596 } },
23878 }, .{27597 }, .{
23879 .required_features = .{ .@"64bit", .cmov, null, null },27598 .required_features = .{ .sse, null, null, null },
23880 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },27599 .src_constraints = .{
27600 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
27601 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },
27602 .any,
27603 },
23881 .patterns = &.{27604 .patterns = &.{
23882 .{ .src = .{ .to_mem, .to_mem, .none } },27605 .{ .src = .{ .to_mem, .to_mem, .none } },
23883 },27606 },
27607 .call_frame = .{ .alignment = .@"16" },
23884 .extra_temps = .{27608 .extra_temps = .{
23885 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27609 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
23886 .{ .type = .isize, .kind = .{ .reg = .rsi } },27610 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },
23887 .{ .type = .u64, .kind = .{ .reg = .rdi } },27611 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },
23888 .{ .type = .u64, .kind = .{ .reg = .rcx } },27612 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmin" } } },
23889 .unused,27613 .unused,
23890 .unused,27614 .unused,
23891 .unused,27615 .unused,
...@@ -23895,36 +27619,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23895,36 +27619,35 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23895 .unused,27619 .unused,
23896 },27620 },
23897 .dst_temps = .{ .mem, .unused },27621 .dst_temps = .{ .mem, .unused },
23898 .clobbers = .{ .eflags = true },27622 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
23899 .each = .{ .once = &.{27623 .each = .{ .once = &.{
23900 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27624 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
23901 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },27625 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },
23902 .{ ._, ._c, .cl, ._, ._, ._, ._ },27626 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },
23903 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27627 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ },
23904 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },27628 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ },
23905 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },27629 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
23906 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },27630 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
23907 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },27631 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
23908 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },27632 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
23909 .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23910 .{ ._, ._ae, .cmov, .tmp1p, .tmp2p, ._, ._ },
23911 .{ ._, ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23912 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23913 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23914 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
23915 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
23916 } },27633 } },
23917 }, .{27634 }, .{
23918 .required_features = .{ .@"64bit", null, null, null },27635 .required_features = .{ .x87, .cmov, null, null },
23919 .src_constraints = .{ .any_scalar_unsigned_int, .any_scalar_unsigned_int, .any },27636 .src_constraints = .{
27637 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27638 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
27639 .any,
27640 },
23920 .patterns = &.{27641 .patterns = &.{
23921 .{ .src = .{ .to_mem, .to_mem, .none } },27642 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
27643 .{ .src = .{ .mem, .to_x87, .none } },
27644 .{ .src = .{ .to_x87, .to_x87, .none } },
23922 },27645 },
23923 .extra_temps = .{27646 .extra_temps = .{
23924 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27647 .{ .type = .f80, .kind = .{ .reg = .st7 } },
23925 .{ .type = .isize, .kind = .{ .reg = .rsi } },27648 .unused,
23926 .{ .type = .u64, .kind = .{ .reg = .rdi } },27649 .unused,
23927 .{ .type = .u64, .kind = .{ .reg = .rcx } },27650 .unused,
23928 .unused,27651 .unused,
23929 .unused,27652 .unused,
23930 .unused,27653 .unused,
...@@ -23933,39 +27656,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23933,39 +27656,31 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23933 .unused,27656 .unused,
23934 .unused,27657 .unused,
23935 },27658 },
23936 .dst_temps = .{ .mem, .unused },27659 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
23937 .clobbers = .{ .eflags = true },27660 .clobbers = .{ .eflags = true },
23938 .each = .{ .once = &.{27661 .each = .{ .once = &.{
23939 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ },27662 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
23940 .{ .@"0:", ._, .mov, .tmp1d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },27663 .{ ._, .f_, .ucomi, .tmp0t, .tmp0t, ._, ._ },
23941 .{ ._, ._c, .cl, ._, ._, ._, ._ },27664 .{ ._, .f_u, .cmov, .tmp0t, .src1t, ._, ._ },
23942 .{ .@"1:", ._, .mov, .tmp2q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ },27665 .{ ._, .f_, .ucomi, .tmp0t, .src1t, ._, ._ },
23943 .{ ._, ._, .sbb, .tmp2q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ },27666 .{ ._, .f_nb, .cmov, .tmp0t, .src1t, ._, ._ },
23944 .{ ._, ._, .lea, .tmp0p, .lead(.tmp0, 8), ._, ._ },27667 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },
23945 .{ ._, ._c, .de, .tmp1d, ._, ._, ._ },
23946 .{ ._, ._nz, .j, .@"1b", ._, ._, ._ },
23947 .{ ._, ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23948 .{ ._, ._nae, .j, .@"1f", ._, ._, ._ },
23949 .{ ._, ._, .lea, .tmp1p, .memia(.src1, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23950 .{ .@"1:", ._, .lea, .tmp2p, .memia(.dst0, .tmp0, .add_unaligned_size_sub_elem_size), ._, ._ },
23951 .{ ._, ._, .mov, .tmp3d, .sa(.none, .add_src0_elem_size_div_8), ._, ._ },
23952 .{ ._, .@"rep _sq", .mov, ._, ._, ._, ._ },
23953 .{ ._, ._, .@"test", .tmp0p, .tmp0p, ._, ._ },
23954 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
23955 } },27668 } },
23956 }, .{27669 }, .{
23957 .required_features = .{ .f16c, null, null, null },27670 .required_features = .{ .sahf, .x87, null, null },
23958 .src_constraints = .{27671 .src_constraints = .{
23959 .{ .scalar_float = .{ .of = .word, .is = .word } },27672 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
23960 .{ .scalar_float = .{ .of = .word, .is = .word } },27673 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
23961 .any,27674 .any,
23962 },27675 },
23963 .patterns = &.{27676 .patterns = &.{
23964 .{ .src = .{ .to_sse, .to_sse, .none } },27677 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
27678 .{ .src = .{ .mem, .to_x87, .none } },
27679 .{ .src = .{ .to_x87, .to_x87, .none } },
23965 },27680 },
23966 .extra_temps = .{27681 .extra_temps = .{
23967 .{ .type = .f16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27682 .{ .type = .f80, .kind = .{ .reg = .st7 } },
23968 .{ .type = .f16, .kind = .{ .rc = .sse } },27683 .{ .type = .u8, .kind = .{ .reg = .ah } },
23969 .unused,27684 .unused,
23970 .unused,27685 .unused,
23971 .unused,27686 .unused,
...@@ -23976,29 +27691,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -23976,29 +27691,37 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
23976 .unused,27691 .unused,
23977 .unused,27692 .unused,
23978 },27693 },
23979 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27694 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
27695 .clobbers = .{ .eflags = true },
23980 .each = .{ .once = &.{27696 .each = .{ .once = &.{
23981 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },27697 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
23982 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },27698 .{ ._, .f_, .ucom, .tmp0t, ._, ._, ._ },
23983 .{ ._, .v_ss, .cmp, .tmp1x, .dst0x, .dst0d, .vp(.unord) },27699 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
23984 .{ ._, .v_ss, .min, .dst0x, .tmp0x, .dst0d, ._ },27700 .{ ._, ._, .sahf, ._, ._, ._, ._ },
23985 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },27701 .{ ._, ._p, .j, .@"0f", ._, ._, ._ },
23986 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },27702 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
27703 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
27704 .{ ._, ._, .sahf, ._, ._, ._, ._ },
27705 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },
27706 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
27707 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
27708 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },
23987 } },27709 } },
23988 }, .{27710 }, .{
23989 .required_features = .{ .sse, null, null, null },27711 .required_features = .{ .x87, null, null, null },
23990 .src_constraints = .{27712 .src_constraints = .{
23991 .{ .scalar_float = .{ .of = .word, .is = .word } },27713 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
23992 .{ .scalar_float = .{ .of = .word, .is = .word } },27714 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },
23993 .any,27715 .any,
23994 },27716 },
23995 .patterns = &.{27717 .patterns = &.{
23996 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },27718 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },
27719 .{ .src = .{ .mem, .to_x87, .none } },
27720 .{ .src = .{ .to_x87, .to_x87, .none } },
23997 },27721 },
23998 .call_frame = .{ .alignment = .@"16" },
23999 .extra_temps = .{27722 .extra_temps = .{
24000 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },27723 .{ .type = .f80, .kind = .{ .reg = .st7 } },
24001 .unused,27724 .{ .type = .u8, .kind = .{ .reg = .ah } },
24002 .unused,27725 .unused,
24003 .unused,27726 .unused,
24004 .unused,27727 .unused,
...@@ -24009,28 +27732,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24009,28 +27732,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24009 .unused,27732 .unused,
24010 .unused,27733 .unused,
24011 },27734 },
24012 .dst_temps = .{ .{ .ref = .src0 }, .unused },27735 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },
24013 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27736 .clobbers = .{ .eflags = true },
24014 .each = .{ .once = &.{27737 .each = .{ .once = &.{
24015 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },27738 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },
27739 .{ ._, .f_, .xam, ._, ._, ._, ._ },
27740 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
27741 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },
27742 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },
27743 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },
27744 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },
27745 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },
27746 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },
27747 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },
27748 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },
27749 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },
24016 } },27750 } },
24017 }, .{27751 }, .{
24018 .required_features = .{ .f16c, null, null, null },27752 .required_features = .{ .x87, .cmov, null, null },
24019 .src_constraints = .{27753 .src_constraints = .{
24020 .{ .scalar_float = .{ .of = .qword, .is = .word } },27754 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24021 .{ .scalar_float = .{ .of = .qword, .is = .word } },27755 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24022 .any,27756 .any,
24023 },27757 },
24024 .patterns = &.{27758 .patterns = &.{
24025 .{ .src = .{ .mem, .mem, .none } },27759 .{ .src = .{ .to_mem, .to_mem, .none } },
24026 .{ .src = .{ .to_sse, .mem, .none } },
24027 .{ .src = .{ .mem, .to_sse, .none } },
24028 .{ .src = .{ .to_sse, .to_sse, .none } },
24029 },27760 },
24030 .extra_temps = .{27761 .extra_temps = .{
24031 .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27762 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24032 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },27763 .{ .type = .f80, .kind = .{ .reg = .st6 } },
24033 .unused,27764 .{ .type = .f80, .kind = .{ .reg = .st7 } },
24034 .unused,27765 .unused,
24035 .unused,27766 .unused,
24036 .unused,27767 .unused,
...@@ -24040,33 +27771,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24040,33 +27771,36 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24040 .unused,27771 .unused,
24041 .unused,27772 .unused,
24042 },27773 },
24043 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27774 .dst_temps = .{ .mem, .unused },
27775 .clobbers = .{ .eflags = true },
24044 .each = .{ .once = &.{27776 .each = .{ .once = &.{
24045 .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ },27777 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24046 .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ },27778 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
24047 .{ ._, .v_ps, .cmp, .tmp1x, .dst0x, .dst0x, .vp(.unord) },27779 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
24048 .{ ._, .v_ps, .min, .dst0x, .tmp0x, .dst0x, ._ },27780 .{ ._, .f_, .ucomi, .tmp1t, .tmp1t, ._, ._ },
24049 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .tmp0x, .tmp1x },27781 .{ ._, .f_u, .cmov, .tmp1t, .tmp2t, ._, ._ },
24050 .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ },27782 .{ ._, .f_, .ucomi, .tmp1t, .tmp2t, ._, ._ },
27783 .{ ._, .f_nb, .cmov, .tmp1t, .tmp2t, ._, ._ },
27784 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
27785 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
27786 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
27787 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24051 } },27788 } },
24052 }, .{27789 }, .{
24053 .required_features = .{ .f16c, null, null, null },27790 .required_features = .{ .sahf, .x87, null, null },
24054 .src_constraints = .{27791 .src_constraints = .{
24055 .{ .scalar_float = .{ .of = .xword, .is = .word } },27792 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24056 .{ .scalar_float = .{ .of = .xword, .is = .word } },27793 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24057 .any,27794 .any,
24058 },27795 },
24059 .patterns = &.{27796 .patterns = &.{
24060 .{ .src = .{ .mem, .mem, .none } },27797 .{ .src = .{ .to_mem, .to_mem, .none } },
24061 .{ .src = .{ .to_sse, .mem, .none } },
24062 .{ .src = .{ .mem, .to_sse, .none } },
24063 .{ .src = .{ .to_sse, .to_sse, .none } },
24064 },27798 },
24065 .extra_temps = .{27799 .extra_temps = .{
24066 .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } },27800 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24067 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27801 .{ .type = .f80, .kind = .{ .reg = .st6 } },
24068 .unused,27802 .{ .type = .f80, .kind = .{ .reg = .st7 } },
24069 .unused,27803 .{ .type = .u8, .kind = .{ .reg = .ah } },
24070 .unused,27804 .unused,
24071 .unused,27805 .unused,
24072 .unused,27806 .unused,
...@@ -24075,20 +27809,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24075,20 +27809,32 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24075 .unused,27809 .unused,
24076 .unused,27810 .unused,
24077 },27811 },
24078 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },27812 .dst_temps = .{ .mem, .unused },
27813 .clobbers = .{ .eflags = true },
24079 .each = .{ .once = &.{27814 .each = .{ .once = &.{
24080 .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ },27815 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24081 .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ },27816 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
24082 .{ ._, .v_ps, .cmp, .tmp1y, .dst0y, .dst0y, .vp(.unord) },27817 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
24083 .{ ._, .v_ps, .min, .dst0y, .tmp0y, .dst0y, ._ },27818 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
24084 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .tmp0y, .tmp1y },27819 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
24085 .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ },27820 .{ ._, ._, .sahf, ._, ._, ._, ._ },
27821 .{ ._, ._p, .j, .@"1f", ._, ._, ._ },
27822 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
27823 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
27824 .{ ._, ._, .sahf, ._, ._, ._, ._ },
27825 .{ ._, ._b, .j, .@"2f", ._, ._, ._ },
27826 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
27827 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
27828 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
27829 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
27830 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
27831 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24086 } },27832 } },
24087 }, .{27833 }, .{
24088 .required_features = .{ .f16c, null, null, null },27834 .required_features = .{ .x87, null, null, null },
24089 .src_constraints = .{27835 .src_constraints = .{
24090 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },27836 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24091 .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } },27837 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },
24092 .any,27838 .any,
24093 },27839 },
24094 .patterns = &.{27840 .patterns = &.{
...@@ -24096,9 +27842,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24096,9 +27842,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24096 },27842 },
24097 .extra_temps = .{27843 .extra_temps = .{
24098 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27844 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24099 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27845 .{ .type = .f80, .kind = .{ .reg = .st6 } },
24100 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27846 .{ .type = .f80, .kind = .{ .reg = .st7 } },
24101 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },27847 .{ .type = .u8, .kind = .{ .reg = .ah } },
24102 .unused,27848 .unused,
24103 .unused,27849 .unused,
24104 .unused,27850 .unused,
...@@ -24111,31 +27857,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24111,31 +27857,39 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24111 .clobbers = .{ .eflags = true },27857 .clobbers = .{ .eflags = true },
24112 .each = .{ .once = &.{27858 .each = .{ .once = &.{
24113 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27859 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24114 .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_size), ._, ._ },27860 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
24115 .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_size), ._, ._ },27861 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
24116 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },27862 .{ ._, .f_, .xam, ._, ._, ._, ._ },
24117 .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ },27863 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
24118 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },27864 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },
24119 .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_size), .tmp1y, .rm(.{}), ._ },27865 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
27866 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
27867 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
27868 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },
27869 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
27870 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
27871 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
27872 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
27873 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
24120 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },27874 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24121 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27875 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24122 } },27876 } },
24123 }, .{27877 }, .{
24124 .required_features = .{ .avx, null, null, null },27878 .required_features = .{ .sse, null, null, null },
24125 .src_constraints = .{27879 .src_constraints = .{
24126 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27880 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
24127 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27881 .{ .scalar_float = .{ .of = .xword, .is = .xword } },
24128 .any,27882 .any,
24129 },27883 },
24130 .patterns = &.{27884 .patterns = &.{
24131 .{ .src = .{ .to_mem, .to_mem, .none } },27885 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },
24132 },27886 },
24133 .call_frame = .{ .alignment = .@"16" },27887 .call_frame = .{ .alignment = .@"16" },
24134 .extra_temps = .{27888 .extra_temps = .{
24135 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27889 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
24136 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27890 .unused,
24137 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27891 .unused,
24138 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },27892 .unused,
24139 .unused,27893 .unused,
24140 .unused,27894 .unused,
24141 .unused,27895 .unused,
...@@ -24144,23 +27898,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24144,23 +27898,16 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24144 .unused,27898 .unused,
24145 .unused,27899 .unused,
24146 },27900 },
24147 .dst_temps = .{ .mem, .unused },27901 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24148 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27902 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
24149 .each = .{ .once = &.{27903 .each = .{ .once = &.{
24150 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27904 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },
24151 .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ },
24152 .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_size), .ui(0) },
24153 .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0) },
24154 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
24155 .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },
24156 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
24157 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24158 } },27905 } },
24159 }, .{27906 }, .{
24160 .required_features = .{ .sse4_1, null, null, null },27907 .required_features = .{ .avx, null, null, null },
24161 .src_constraints = .{27908 .src_constraints = .{
24162 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27909 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24163 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27910 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24164 .any,27911 .any,
24165 },27912 },
24166 .patterns = &.{27913 .patterns = &.{
...@@ -24169,9 +27916,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24169,9 +27916,9 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24169 .call_frame = .{ .alignment = .@"16" },27916 .call_frame = .{ .alignment = .@"16" },
24170 .extra_temps = .{27917 .extra_temps = .{
24171 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27918 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24172 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27919 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
24173 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27920 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
24174 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },27921 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
24175 .unused,27922 .unused,
24176 .unused,27923 .unused,
24177 .unused,27924 .unused,
...@@ -24184,20 +27931,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24184,20 +27931,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24184 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27931 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
24185 .each = .{ .once = &.{27932 .each = .{ .once = &.{
24186 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27933 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24187 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },27934 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
24188 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },27935 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
24189 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
24190 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
24191 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27936 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
24192 .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_size), .tmp1x, .ui(0), ._ },27937 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
24193 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },27938 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24194 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27939 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24195 } },27940 } },
24196 }, .{27941 }, .{
24197 .required_features = .{ .sse2, null, null, null },27942 .required_features = .{ .sse2, null, null, null },
24198 .src_constraints = .{27943 .src_constraints = .{
24199 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27944 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24200 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27945 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24201 .any,27946 .any,
24202 },27947 },
24203 .patterns = &.{27948 .patterns = &.{
...@@ -24206,10 +27951,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24206,10 +27951,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24206 .call_frame = .{ .alignment = .@"16" },27951 .call_frame = .{ .alignment = .@"16" },
24207 .extra_temps = .{27952 .extra_temps = .{
24208 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27953 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24209 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27954 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
24210 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27955 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
24211 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },27956 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
24212 .{ .type = .f16, .kind = .{ .reg = .ax } },27957 .unused,
24213 .unused,27958 .unused,
24214 .unused,27959 .unused,
24215 .unused,27960 .unused,
...@@ -24221,21 +27966,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24221,21 +27966,18 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24221 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },27966 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
24222 .each = .{ .once = &.{27967 .each = .{ .once = &.{
24223 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },27968 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24224 .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ },27969 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
24225 .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ },27970 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
24226 .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_size), .ui(0), ._ },
24227 .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_size), .ui(0), ._ },
24228 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },27971 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
24229 .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ },27972 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
24230 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp4w, ._, ._ },27973 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24231 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
24232 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },27974 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24233 } },27975 } },
24234 }, .{27976 }, .{
24235 .required_features = .{ .sse, null, null, null },27977 .required_features = .{ .sse, null, null, null },
24236 .src_constraints = .{27978 .src_constraints = .{
24237 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27979 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24238 .{ .multiple_scalar_float = .{ .of = .word, .is = .word } },27980 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },
24239 .any,27981 .any,
24240 },27982 },
24241 .patterns = &.{27983 .patterns = &.{
...@@ -24244,11 +27986,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24244,11 +27986,11 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24244 .call_frame = .{ .alignment = .@"16" },27986 .call_frame = .{ .alignment = .@"16" },
24245 .extra_temps = .{27987 .extra_temps = .{
24246 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },27988 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24247 .{ .type = .f16, .kind = .{ .reg = .ax } },27989 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },
24248 .{ .type = .f32, .kind = .mem },27990 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },
24249 .{ .type = .f16, .kind = .{ .reg = .xmm0 } },27991 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },
24250 .{ .type = .f16, .kind = .{ .reg = .xmm1 } },27992 .unused,
24251 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__fminh" } } },27993 .unused,
24252 .unused,27994 .unused,
24253 .unused,27995 .unused,
24254 .unused,27996 .unused,
...@@ -24259,554 +28001,627 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24259,554 +28001,627 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24259 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },28001 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },
24260 .each = .{ .once = &.{28002 .each = .{ .once = &.{
24261 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28003 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
24262 .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_size), ._, ._ },28004 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
24263 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },28005 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
24264 .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ },28006 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },
24265 .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_size), ._, ._ },28007 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
24266 .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ },28008 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24267 .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ },
24268 .{ ._, ._, .call, .tmp5d, ._, ._, ._ },
24269 .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ },
24270 .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ },
24271 .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_size), .tmp1w, ._, ._ },
24272 .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ },
24273 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28009 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24274 } },28010 } },
24275 }, .{28011 } }) catch |err| switch (err) {
24276 .required_features = .{ .avx, null, null, null },28012 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
24277 .src_constraints = .{28013 @tagName(air_tag),
24278 .{ .scalar_float = .{ .of = .dword, .is = .dword } },28014 cg.typeOf(bin_op.lhs).fmt(pt),
24279 .{ .scalar_float = .{ .of = .dword, .is = .dword } },28015 ops[0].tracking(cg),
24280 .any,28016 ops[1].tracking(cg),
24281 },28017 }),
28018 else => |e| return e,
28019 };
28020 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
28021 },
28022 .alloc => if (use_old) try cg.airAlloc(inst) else {
28023 const ty = air_datas[@intFromEnum(inst)].ty;
28024 const slot = try cg.tempInit(ty, .{ .lea_frame = .{
28025 .index = try cg.allocMemPtr(inst),
28026 } });
28027 try slot.finish(inst, &.{}, &.{}, cg);
28028 },
28029 .inferred_alloc, .inferred_alloc_comptime => unreachable,
28030 .ret_ptr => if (use_old) try cg.airRetPtr(inst) else {
28031 const ty = air_datas[@intFromEnum(inst)].ty;
28032 var slot = switch (cg.ret_mcv.long) {
28033 else => unreachable,
28034 .none => try cg.tempInit(ty, .{ .lea_frame = .{
28035 .index = try cg.allocMemPtr(inst),
28036 } }),
28037 .load_frame => slot: {
28038 var slot = try cg.tempInit(ty, cg.ret_mcv.long);
28039 try slot.toOffset(cg.ret_mcv.short.indirect.off, cg);
28040 break :slot slot;
28041 },
28042 };
28043 try slot.finish(inst, &.{}, &.{}, cg);
28044 },
28045 .assembly => try cg.airAsm(inst),
28046 .bit_and, .bit_or, .xor, .bool_and, .bool_or => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
28047 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
28048 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
28049 var res: [1]Temp = undefined;
28050 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, switch (@as(Mir.Inst.Tag, switch (air_tag) {
28051 else => unreachable,
28052 .bit_and, .bool_and => .@"and",
28053 .bit_or, .bool_or => .@"or",
28054 .xor => .xor,
28055 })) {
28056 else => unreachable,
28057 inline .@"and", .@"or", .xor => |mir_tag| comptime &.{ .{
28058 .src_constraints = .{ .{ .size = .byte }, .{ .size = .byte }, .any },
28059 .patterns = &.{
28060 .{ .src = .{ .mut_mem, .imm8, .none } },
28061 .{ .src = .{ .imm8, .mut_mem, .none }, .commute = .{ 0, 1 } },
28062 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
28063 .{ .src = .{ .imm8, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28064 .{ .src = .{ .mut_mem, .to_gpr, .none } },
28065 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
28066 .{ .src = .{ .to_mut_gpr, .mem, .none } },
28067 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28068 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
28069 },
28070 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28071 .clobbers = .{ .eflags = true },
28072 .each = .{ .once = &.{
28073 .{ ._, ._, mir_tag, .dst0b, .src1b, ._, ._ },
28074 } },
28075 }, .{
28076 .src_constraints = .{ .{ .size = .word }, .{ .size = .word }, .any },
28077 .patterns = &.{
28078 .{ .src = .{ .mut_mem, .imm16, .none } },
28079 .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } },
28080 .{ .src = .{ .to_mut_gpr, .imm16, .none } },
28081 .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28082 .{ .src = .{ .mut_mem, .to_gpr, .none } },
28083 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
28084 .{ .src = .{ .to_mut_gpr, .mem, .none } },
28085 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28086 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
28087 },
28088 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28089 .clobbers = .{ .eflags = true },
28090 .each = .{ .once = &.{
28091 .{ ._, ._, mir_tag, .dst0w, .src1w, ._, ._ },
28092 } },
28093 }, .{
28094 .src_constraints = .{ .{ .size = .dword }, .{ .size = .dword }, .any },
28095 .patterns = &.{
28096 .{ .src = .{ .mut_mem, .imm32, .none } },
28097 .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } },
28098 .{ .src = .{ .to_mut_gpr, .imm32, .none } },
28099 .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28100 .{ .src = .{ .mut_mem, .to_gpr, .none } },
28101 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
28102 .{ .src = .{ .to_mut_gpr, .mem, .none } },
28103 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28104 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
28105 },
28106 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28107 .clobbers = .{ .eflags = true },
28108 .each = .{ .once = &.{
28109 .{ ._, ._, mir_tag, .dst0d, .src1d, ._, ._ },
28110 } },
28111 }, .{
28112 .required_features = .{ .@"64bit", null, null, null },
28113 .src_constraints = .{ .{ .size = .qword }, .{ .size = .qword }, .any },
28114 .patterns = &.{
28115 .{ .src = .{ .mut_mem, .simm32, .none } },
28116 .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } },
28117 .{ .src = .{ .to_mut_gpr, .simm32, .none } },
28118 .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28119 .{ .src = .{ .mut_mem, .to_gpr, .none } },
28120 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
28121 .{ .src = .{ .to_mut_gpr, .mem, .none } },
28122 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
28123 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
28124 },
28125 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28126 .clobbers = .{ .eflags = true },
28127 .each = .{ .once = &.{
28128 .{ ._, ._, mir_tag, .dst0q, .src1q, ._, ._ },
28129 } },
28130 }, .{
28131 .required_features = .{ .mmx, null, null, null },
28132 .src_constraints = .{ .{ .size = .qword }, .{ .size = .qword }, .any },
28133 .patterns = &.{
28134 .{ .src = .{ .to_mut_mm, .mem, .none } },
28135 .{ .src = .{ .mem, .to_mut_mm, .none }, .commute = .{ 0, 1 } },
28136 .{ .src = .{ .to_mut_mm, .to_mm, .none } },
28137 },
28138 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28139 .each = .{ .once = &.{
28140 .{ ._, .p_, mir_tag, .dst0q, .src1q, ._, ._ },
28141 } },
28142 }, .{
28143 .required_features = .{ .avx, null, null, null },
28144 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
28145 .patterns = &.{
28146 .{ .src = .{ .to_xmm, .mem, .none } },
28147 .{ .src = .{ .mem, .to_xmm, .none }, .commute = .{ 0, 1 } },
28148 .{ .src = .{ .to_xmm, .to_xmm, .none } },
28149 },
28150 .dst_temps = .{ .{ .rc = .sse }, .unused },
28151 .each = .{ .once = &.{
28152 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .src1x, ._ },
28153 } },
28154 }, .{
28155 .required_features = .{ .sse2, null, null, null },
28156 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
28157 .patterns = &.{
28158 .{ .src = .{ .to_mut_xmm, .mem, .none } },
28159 .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } },
28160 .{ .src = .{ .to_mut_xmm, .to_xmm, .none } },
28161 },
28162 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28163 .each = .{ .once = &.{
28164 .{ ._, .p_, mir_tag, .dst0x, .src1x, ._, ._ },
28165 } },
28166 }, .{
28167 .required_features = .{ .sse, null, null, null },
28168 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
28169 .patterns = &.{
28170 .{ .src = .{ .to_mut_xmm, .mem, .none } },
28171 .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } },
28172 .{ .src = .{ .to_mut_xmm, .to_xmm, .none } },
28173 },
28174 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28175 .each = .{ .once = &.{
28176 .{ ._, ._ps, mir_tag, .dst0x, .src1x, ._, ._ },
28177 } },
28178 }, .{
28179 .required_features = .{ .avx2, null, null, null },
28180 .src_constraints = .{ .{ .size = .yword }, .{ .size = .yword }, .any },
28181 .patterns = &.{
28182 .{ .src = .{ .to_ymm, .mem, .none } },
28183 .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } },
28184 .{ .src = .{ .to_ymm, .to_ymm, .none } },
28185 },
28186 .dst_temps = .{ .{ .rc = .sse }, .unused },
28187 .each = .{ .once = &.{
28188 .{ ._, .vp_, mir_tag, .dst0y, .src0y, .src1y, ._ },
28189 } },
28190 }, .{
28191 .required_features = .{ .avx, null, null, null },
28192 .src_constraints = .{ .{ .size = .yword }, .{ .size = .yword }, .any },
28193 .patterns = &.{
28194 .{ .src = .{ .to_ymm, .mem, .none } },
28195 .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } },
28196 .{ .src = .{ .to_ymm, .to_ymm, .none } },
28197 },
28198 .dst_temps = .{ .{ .rc = .sse }, .unused },
28199 .each = .{ .once = &.{
28200 .{ ._, .v_pd, mir_tag, .dst0y, .src0y, .src1y, ._ },
28201 } },
28202 }, .{
28203 .required_features = .{ .avx2, null, null, null },
28204 .src_constraints = .{ .{ .multiple_size = .yword }, .{ .multiple_size = .yword }, .any },
28205 .patterns = &.{
28206 .{ .src = .{ .to_mem, .to_mem, .none } },
28207 },
28208 .extra_temps = .{
28209 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28210 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
28211 .unused,
28212 .unused,
28213 .unused,
28214 .unused,
28215 .unused,
28216 .unused,
28217 .unused,
28218 .unused,
28219 .unused,
28220 },
28221 .dst_temps = .{ .mem, .unused },
28222 .clobbers = .{ .eflags = true },
28223 .each = .{ .once = &.{
28224 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28225 .{ .@"0:", .v_dqu, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
28226 .{ ._, .vp_, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
28227 .{ ._, .v_dqu, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
28228 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
28229 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28230 } },
28231 }, .{
28232 .required_features = .{ .avx, null, null, null },
28233 .src_constraints = .{ .{ .multiple_size = .yword }, .{ .multiple_size = .yword }, .any },
28234 .patterns = &.{
28235 .{ .src = .{ .to_mem, .to_mem, .none } },
28236 },
28237 .extra_temps = .{
28238 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28239 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
28240 .unused,
28241 .unused,
28242 .unused,
28243 .unused,
28244 .unused,
28245 .unused,
28246 .unused,
28247 .unused,
28248 .unused,
28249 },
28250 .dst_temps = .{ .mem, .unused },
28251 .clobbers = .{ .eflags = true },
28252 .each = .{ .once = &.{
28253 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28254 .{ .@"0:", .v_pd, .movu, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
28255 .{ ._, .v_pd, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
28256 .{ ._, .v_pd, .movu, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
28257 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
28258 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28259 } },
28260 }, .{
28261 .required_features = .{ .avx, null, null, null },
28262 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
28263 .patterns = &.{
28264 .{ .src = .{ .to_mem, .to_mem, .none } },
28265 },
28266 .extra_temps = .{
28267 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28268 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
28269 .unused,
28270 .unused,
28271 .unused,
28272 .unused,
28273 .unused,
28274 .unused,
28275 .unused,
28276 .unused,
28277 .unused,
28278 },
28279 .dst_temps = .{ .mem, .unused },
28280 .clobbers = .{ .eflags = true },
28281 .each = .{ .once = &.{
28282 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28283 .{ .@"0:", .v_dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
28284 .{ ._, .vp_, mir_tag, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
28285 .{ ._, .v_dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
28286 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
28287 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28288 } },
28289 }, .{
28290 .required_features = .{ .sse2, null, null, null },
28291 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
28292 .patterns = &.{
28293 .{ .src = .{ .to_mem, .to_mem, .none } },
28294 },
28295 .extra_temps = .{
28296 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28297 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
28298 .unused,
28299 .unused,
28300 .unused,
28301 .unused,
28302 .unused,
28303 .unused,
28304 .unused,
28305 .unused,
28306 .unused,
28307 },
28308 .dst_temps = .{ .mem, .unused },
28309 .clobbers = .{ .eflags = true },
28310 .each = .{ .once = &.{
28311 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28312 .{ .@"0:", ._dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
28313 .{ ._, .p_, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
28314 .{ ._, ._dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
28315 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
28316 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28317 } },
28318 }, .{
28319 .required_features = .{ .sse, null, null, null },
28320 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
28321 .patterns = &.{
28322 .{ .src = .{ .to_mem, .to_mem, .none } },
28323 },
28324 .extra_temps = .{
28325 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28326 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
28327 .unused,
28328 .unused,
28329 .unused,
28330 .unused,
28331 .unused,
28332 .unused,
28333 .unused,
28334 .unused,
28335 .unused,
28336 },
28337 .dst_temps = .{ .mem, .unused },
28338 .clobbers = .{ .eflags = true },
28339 .each = .{ .once = &.{
28340 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28341 .{ .@"0:", ._ps, .movu, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
28342 .{ ._, ._ps, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
28343 .{ ._, ._ps, .movu, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
28344 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
28345 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28346 } },
28347 }, .{
28348 .required_features = .{ .mmx, null, null, null },
28349 .src_constraints = .{ .{ .multiple_size = .qword }, .{ .multiple_size = .qword }, .any },
28350 .patterns = &.{
28351 .{ .src = .{ .to_mem, .to_mem, .none } },
28352 },
28353 .extra_temps = .{
28354 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28355 .{ .kind = .{ .rc = .mmx } },
28356 .unused,
28357 .unused,
28358 .unused,
28359 .unused,
28360 .unused,
28361 .unused,
28362 .unused,
28363 .unused,
28364 .unused,
28365 },
28366 .dst_temps = .{ .mem, .unused },
28367 .clobbers = .{ .eflags = true },
28368 .each = .{ .once = &.{
28369 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28370 .{ .@"0:", ._q, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
28371 .{ ._, .p_, mir_tag, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
28372 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
28373 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
28374 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28375 } },
28376 }, .{
28377 .src_constraints = .{ .{ .multiple_size = .qword }, .{ .multiple_size = .qword }, .any },
28378 .patterns = &.{
28379 .{ .src = .{ .to_mem, .to_mem, .none } },
28380 },
28381 .extra_temps = .{
28382 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
28383 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
28384 .unused,
28385 .unused,
28386 .unused,
28387 .unused,
28388 .unused,
28389 .unused,
28390 .unused,
28391 .unused,
28392 .unused,
28393 },
28394 .dst_temps = .{ .mem, .unused },
28395 .clobbers = .{ .eflags = true },
28396 .each = .{ .once = &.{
28397 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
28398 .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ },
28399 .{ ._, ._, mir_tag, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ },
28400 .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ },
28401 .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ },
28402 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28403 } },
28404 } },
28405 }) catch |err| switch (err) {
28406 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
28407 @tagName(air_tag),
28408 cg.typeOf(bin_op.lhs).fmt(pt),
28409 ops[0].tracking(cg),
28410 ops[1].tracking(cg),
28411 }),
28412 else => |e| return e,
28413 };
28414 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
28415 },
28416 .shr, .shr_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: {
28417 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
28418 if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst);
28419 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
28420 var res: [1]Temp = undefined;
28421 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
28422 .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any },
24282 .patterns = &.{28423 .patterns = &.{
24283 .{ .src = .{ .to_sse, .to_sse, .none } },28424 .{ .src = .{ .mut_mem, .imm8, .none } },
24284 },28425 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24285 .extra_temps = .{28426 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24286 .{ .type = .f32, .kind = .{ .rc = .sse } },28427 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24287 .unused,
24288 .unused,
24289 .unused,
24290 .unused,
24291 .unused,
24292 .unused,
24293 .unused,
24294 .unused,
24295 .unused,
24296 .unused,
24297 },28428 },
24298 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },28429 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28430 .clobbers = .{ .eflags = true },
24299 .each = .{ .once = &.{28431 .each = .{ .once = &.{
24300 .{ ._, .v_ss, .cmp, .tmp0x, .src0x, .src0d, .vp(.unord) },28432 .{ ._, ._r, .sa, .dst0b, .src1b, ._, ._ },
24301 .{ ._, .v_ss, .min, .dst0x, .src1x, .src0d, ._ },
24302 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
24303 } },28433 } },
24304 }, .{28434 }, .{
24305 .required_features = .{ .sse4_1, null, null, null },28435 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
24306 .src_constraints = .{
24307 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
24308 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
24309 .any,
24310 },
24311 .patterns = &.{28436 .patterns = &.{
24312 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },28437 .{ .src = .{ .mut_mem, .imm8, .none } },
28438 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
28439 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
28440 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24313 },28441 },
24314 .dst_temps = .{ .{ .rc = .sse }, .unused },28442 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28443 .clobbers = .{ .eflags = true },
24315 .each = .{ .once = &.{28444 .each = .{ .once = &.{
24316 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },28445 .{ ._, ._r, .sh, .dst0b, .src1b, ._, ._ },
24317 .{ ._, ._ss, .min, .dst0x, .src0d, ._, ._ },
24318 .{ ._, ._ss, .cmp, .src0x, .src0d, .sp(.unord), ._ },
24319 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
24320 } },28446 } },
24321 }, .{28447 }, .{
24322 .required_features = .{ .sse, null, null, null },28448 .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any },
24323 .src_constraints = .{
24324 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
24325 .{ .scalar_float = .{ .of = .dword, .is = .dword } },
24326 .any,
24327 },
24328 .patterns = &.{28449 .patterns = &.{
24329 .{ .src = .{ .to_mut_sse, .to_sse, .none } },28450 .{ .src = .{ .mut_mem, .imm8, .none } },
24330 },28451 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24331 .extra_temps = .{28452 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24332 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },28453 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24333 .unused,
24334 .unused,
24335 .unused,
24336 .unused,
24337 .unused,
24338 .unused,
24339 .unused,
24340 .unused,
24341 .unused,
24342 .unused,
24343 },28454 },
24344 .dst_temps = .{ .{ .ref = .src0 }, .unused },28455 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28456 .clobbers = .{ .eflags = true },
24345 .each = .{ .once = &.{28457 .each = .{ .once = &.{
24346 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },28458 .{ ._, ._r, .sa, .dst0w, .src1b, ._, ._ },
24347 .{ ._, ._ss, .min, .tmp0x, .src0d, ._, ._ },
24348 .{ ._, ._ss, .cmp, .dst0x, .src0d, .sp(.ord), ._ },
24349 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
24350 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
24351 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
24352 } },28459 } },
24353 }, .{28460 }, .{
24354 .required_features = .{ .avx, null, null, null },28461 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any },
24355 .src_constraints = .{
24356 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24357 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24358 .any,
24359 },
24360 .patterns = &.{28462 .patterns = &.{
24361 .{ .src = .{ .to_sse, .to_sse, .none } },28463 .{ .src = .{ .mut_mem, .imm8, .none } },
24362 },28464 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24363 .extra_temps = .{28465 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24364 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },28466 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24365 .unused,
24366 .unused,
24367 .unused,
24368 .unused,
24369 .unused,
24370 .unused,
24371 .unused,
24372 .unused,
24373 .unused,
24374 .unused,
24375 },28467 },
24376 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },28468 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28469 .clobbers = .{ .eflags = true },
24377 .each = .{ .once = &.{28470 .each = .{ .once = &.{
24378 .{ ._, .v_ps, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },28471 .{ ._, ._r, .sh, .dst0w, .src1b, ._, ._ },
24379 .{ ._, .v_ps, .min, .dst0x, .src1x, .src0x, ._ },
24380 .{ ._, .v_ps, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
24381 } },28472 } },
24382 }, .{28473 }, .{
24383 .required_features = .{ .sse4_1, null, null, null },28474 .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24384 .src_constraints = .{
24385 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24386 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24387 .any,
24388 },
24389 .patterns = &.{28475 .patterns = &.{
24390 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },28476 .{ .src = .{ .mut_mem, .imm8, .none } },
24391 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },28477 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24392 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
24393 },28478 },
24394 .dst_temps = .{ .{ .rc = .sse }, .unused },28479 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28480 .clobbers = .{ .eflags = true },
24395 .each = .{ .once = &.{28481 .each = .{ .once = &.{
24396 .{ ._, ._ps, .mova, .dst0x, .src1x, ._, ._ },28482 .{ ._, ._r, .sa, .dst0d, .src1b, ._, ._ },
24397 .{ ._, ._ps, .min, .dst0x, .src0x, ._, ._ },
24398 .{ ._, ._ps, .cmp, .src0x, .src0x, .sp(.unord), ._ },
24399 .{ ._, ._ps, .blendv, .dst0x, .src1x, .src0x, ._ },
24400 } },28483 } },
24401 }, .{28484 }, .{
24402 .required_features = .{ .sse, null, null, null },28485 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24403 .src_constraints = .{
24404 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24405 .{ .scalar_float = .{ .of = .xword, .is = .dword } },
24406 .any,
24407 },
24408 .patterns = &.{28486 .patterns = &.{
24409 .{ .src = .{ .to_mut_sse, .mem, .none } },28487 .{ .src = .{ .mut_mem, .imm8, .none } },
24410 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },28488 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24411 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
24412 },
24413 .extra_temps = .{
24414 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24415 .unused,
24416 .unused,
24417 .unused,
24418 .unused,
24419 .unused,
24420 .unused,
24421 .unused,
24422 .unused,
24423 .unused,
24424 .unused,
24425 },28489 },
24426 .dst_temps = .{ .{ .ref = .src0 }, .unused },28490 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28491 .clobbers = .{ .eflags = true },
24427 .each = .{ .once = &.{28492 .each = .{ .once = &.{
24428 .{ ._, ._ps, .mova, .tmp0x, .src1x, ._, ._ },28493 .{ ._, ._r, .sh, .dst0d, .src1b, ._, ._ },
24429 .{ ._, ._ps, .min, .tmp0x, .src0x, ._, ._ },
24430 .{ ._, ._ps, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
24431 .{ ._, ._ps, .@"and", .tmp0x, .dst0x, ._, ._ },
24432 .{ ._, ._ps, .andn, .dst0x, .src1x, ._, ._ },
24433 .{ ._, ._ps, .@"or", .dst0x, .tmp0x, ._, ._ },
24434 } },28494 } },
24435 }, .{28495 }, .{
24436 .required_features = .{ .avx, null, null, null },28496 .required_features = .{ .bmi2, null, null, null },
24437 .src_constraints = .{28497 .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24438 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
24439 .{ .scalar_float = .{ .of = .yword, .is = .dword } },
24440 .any,
24441 },
24442 .patterns = &.{28498 .patterns = &.{
24443 .{ .src = .{ .to_sse, .to_sse, .none } },28499 .{ .src = .{ .mem, .to_gpr, .none } },
24444 },28500 .{ .src = .{ .to_gpr, .to_gpr, .none } },
24445 .extra_temps = .{
24446 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
24447 .unused,
24448 .unused,
24449 .unused,
24450 .unused,
24451 .unused,
24452 .unused,
24453 .unused,
24454 .unused,
24455 .unused,
24456 .unused,
24457 },28501 },
24458 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },28502 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
24459 .each = .{ .once = &.{28503 .each = .{ .once = &.{
24460 .{ ._, .v_ps, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },28504 .{ ._, ._rx, .sa, .dst0d, .src0d, .src1d, ._ },
24461 .{ ._, .v_ps, .min, .dst0y, .src1y, .src0y, ._ },
24462 .{ ._, .v_ps, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
24463 } },28505 } },
24464 }, .{28506 }, .{
24465 .required_features = .{ .avx, null, null, null },28507 .required_features = .{ .bmi2, null, null, null },
24466 .src_constraints = .{28508 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24467 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
24468 .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } },
24469 .any,
24470 },
24471 .patterns = &.{28509 .patterns = &.{
24472 .{ .src = .{ .to_mem, .to_mem, .none } },28510 .{ .src = .{ .mem, .to_gpr, .none } },
24473 },28511 .{ .src = .{ .to_gpr, .to_gpr, .none } },
24474 .extra_temps = .{
24475 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24476 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
24477 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
24478 .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } },
24479 .unused,
24480 .unused,
24481 .unused,
24482 .unused,
24483 .unused,
24484 .unused,
24485 .unused,
24486 },28512 },
24487 .dst_temps = .{ .mem, .unused },28513 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
24488 .clobbers = .{ .eflags = true },
24489 .each = .{ .once = &.{28514 .each = .{ .once = &.{
24490 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28515 .{ ._, ._rx, .sh, .dst0d, .src0d, .src1d, ._ },
24491 .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
24492 .{ ._, .v_ps, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },
24493 .{ ._, .v_ps, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },
24494 .{ ._, .v_ps, .min, .tmp1y, .tmp2y, .tmp1y, ._ },
24495 .{ ._, .v_ps, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },
24496 .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
24497 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
24498 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24499 } },28516 } },
24500 }, .{28517 }, .{
24501 .required_features = .{ .sse4_1, null, null, null },28518 .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24502 .src_constraints = .{
24503 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
24504 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
24505 .any,
24506 },
24507 .patterns = &.{28519 .patterns = &.{
24508 .{ .src = .{ .to_mem, .to_mem, .none } },28520 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24509 },28521 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24510 .extra_temps = .{
24511 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24512 .{ .type = .vector_4_f32, .kind = .{ .reg = .xmm0 } },
24513 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24514 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24515 .unused,
24516 .unused,
24517 .unused,
24518 .unused,
24519 .unused,
24520 .unused,
24521 .unused,
24522 },28522 },
24523 .dst_temps = .{ .mem, .unused },28523 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24524 .clobbers = .{ .eflags = true },28524 .clobbers = .{ .eflags = true },
24525 .each = .{ .once = &.{28525 .each = .{ .once = &.{
24526 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28526 .{ ._, ._r, .sa, .dst0d, .src1b, ._, ._ },
24527 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
24528 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
24529 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
24530 .{ ._, ._ps, .min, .tmp3x, .tmp1x, ._, ._ },
24531 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },
24532 .{ ._, ._ps, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },
24533 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },
24534 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24535 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24536 } },28527 } },
24537 }, .{28528 }, .{
24538 .required_features = .{ .sse, null, null, null },28529 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
24539 .src_constraints = .{
24540 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
24541 .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } },
24542 .any,
24543 },
24544 .patterns = &.{28530 .patterns = &.{
24545 .{ .src = .{ .to_mem, .to_mem, .none } },28531 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24546 },28532 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24547 .extra_temps = .{
24548 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24549 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24550 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24551 .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } },
24552 .unused,
24553 .unused,
24554 .unused,
24555 .unused,
24556 .unused,
24557 .unused,
24558 .unused,
24559 },28533 },
24560 .dst_temps = .{ .mem, .unused },28534 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24561 .clobbers = .{ .eflags = true },28535 .clobbers = .{ .eflags = true },
24562 .each = .{ .once = &.{28536 .each = .{ .once = &.{
24563 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28537 .{ ._, ._r, .sh, .dst0d, .src1b, ._, ._ },
24564 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
24565 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
24566 .{ ._, ._ps, .mova, .tmp3x, .tmp2x, ._, ._ },
24567 .{ ._, ._ps, .min, .tmp3x, .tmp1x, ._, ._ },
24568 .{ ._, ._ps, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },
24569 .{ ._, ._ps, .@"and", .tmp3x, .tmp1x, ._, ._ },
24570 .{ ._, ._ps, .andn, .tmp1x, .tmp2x, ._, ._ },
24571 .{ ._, ._ps, .@"or", .tmp1x, .tmp3x, ._, ._ },
24572 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
24573 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
24574 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24575 } },
24576 }, .{
24577 .required_features = .{ .avx, null, null, null },
24578 .src_constraints = .{
24579 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24580 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24581 .any,
24582 },
24583 .patterns = &.{
24584 .{ .src = .{ .to_sse, .to_sse, .none } },
24585 },
24586 .extra_temps = .{
24587 .{ .type = .f64, .kind = .{ .rc = .sse } },
24588 .unused,
24589 .unused,
24590 .unused,
24591 .unused,
24592 .unused,
24593 .unused,
24594 .unused,
24595 .unused,
24596 .unused,
24597 .unused,
24598 },
24599 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },
24600 .each = .{ .once = &.{
24601 .{ ._, .v_sd, .cmp, .tmp0x, .src0x, .src0q, .vp(.unord) },
24602 .{ ._, .v_sd, .min, .dst0x, .src1x, .src0q, ._ },
24603 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
24604 } },
24605 }, .{
24606 .required_features = .{ .sse4_1, null, null, null },
24607 .src_constraints = .{
24608 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24609 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24610 .any,
24611 },
24612 .patterns = &.{
24613 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
24614 },
24615 .dst_temps = .{ .{ .rc = .sse }, .unused },
24616 .each = .{ .once = &.{
24617 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },
24618 .{ ._, ._sd, .min, .dst0x, .src0q, ._, ._ },
24619 .{ ._, ._sd, .cmp, .src0x, .src0q, .sp(.unord), ._ },
24620 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
24621 } },28538 } },
24622 }, .{28539 }, .{
24623 .required_features = .{ .sse2, null, null, null },28540 .required_features = .{ .@"64bit", null, null, null },
24624 .src_constraints = .{28541 .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24625 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24626 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24627 .any,
24628 },
24629 .patterns = &.{28542 .patterns = &.{
24630 .{ .src = .{ .to_mut_sse, .to_sse, .none } },28543 .{ .src = .{ .mut_mem, .imm8, .none } },
24631 },28544 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24632 .extra_temps = .{
24633 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
24634 .unused,
24635 .unused,
24636 .unused,
24637 .unused,
24638 .unused,
24639 .unused,
24640 .unused,
24641 .unused,
24642 .unused,
24643 .unused,
24644 },28545 },
24645 .dst_temps = .{ .{ .ref = .src0 }, .unused },28546 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28547 .clobbers = .{ .eflags = true },
24646 .each = .{ .once = &.{28548 .each = .{ .once = &.{
24647 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },28549 .{ ._, ._r, .sa, .dst0q, .src1b, ._, ._ },
24648 .{ ._, ._sd, .min, .tmp0x, .src0q, ._, ._ },
24649 .{ ._, ._sd, .cmp, .dst0x, .src0q, .sp(.ord), ._ },
24650 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
24651 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
24652 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
24653 } },28550 } },
24654 }, .{28551 }, .{
24655 .required_features = .{ .sse, null, null, null },28552 .required_features = .{ .@"64bit", null, null, null },
24656 .src_constraints = .{28553 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24657 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24658 .{ .scalar_float = .{ .of = .qword, .is = .qword } },
24659 .any,
24660 },
24661 .patterns = &.{28554 .patterns = &.{
24662 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },28555 .{ .src = .{ .mut_mem, .imm8, .none } },
24663 },28556 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
24664 .call_frame = .{ .alignment = .@"16" },
24665 .extra_temps = .{
24666 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmin" } } },
24667 .unused,
24668 .unused,
24669 .unused,
24670 .unused,
24671 .unused,
24672 .unused,
24673 .unused,
24674 .unused,
24675 .unused,
24676 .unused,
24677 },28557 },
24678 .dst_temps = .{ .{ .ref = .src0 }, .unused },28558 .dst_temps = .{ .{ .ref = .src0 }, .unused },
24679 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },28559 .clobbers = .{ .eflags = true },
24680 .each = .{ .once = &.{28560 .each = .{ .once = &.{
24681 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },28561 .{ ._, ._r, .sh, .dst0q, .src1b, ._, ._ },
24682 } },28562 } },
24683 }, .{28563 }, .{
24684 .required_features = .{ .avx, null, null, null },28564 .required_features = .{ .@"64bit", .bmi2, null, null },
24685 .src_constraints = .{28565 .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24686 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24687 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24688 .any,
24689 },
24690 .patterns = &.{28566 .patterns = &.{
24691 .{ .src = .{ .to_sse, .to_sse, .none } },28567 .{ .src = .{ .mem, .to_gpr, .none } },
24692 },28568 .{ .src = .{ .to_gpr, .to_gpr, .none } },
24693 .extra_temps = .{
24694 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
24695 .unused,
24696 .unused,
24697 .unused,
24698 .unused,
24699 .unused,
24700 .unused,
24701 .unused,
24702 .unused,
24703 .unused,
24704 .unused,
24705 },28569 },
24706 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },28570 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
24707 .each = .{ .once = &.{28571 .each = .{ .once = &.{
24708 .{ ._, .v_pd, .cmp, .tmp0x, .src0x, .src0x, .vp(.unord) },28572 .{ ._, ._rx, .sa, .dst0q, .src0q, .src1q, ._ },
24709 .{ ._, .v_pd, .min, .dst0x, .src1x, .src0x, ._ },
24710 .{ ._, .v_pd, .blendv, .dst0x, .dst0x, .src1x, .tmp0x },
24711 } },28573 } },
24712 }, .{28574 }, .{
24713 .required_features = .{ .sse4_1, null, null, null },28575 .required_features = .{ .@"64bit", .bmi2, null, null },
24714 .src_constraints = .{28576 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24715 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24716 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24717 .any,
24718 },
24719 .patterns = &.{28577 .patterns = &.{
24720 .{ .src = .{ .{ .to_reg = .xmm0 }, .mem, .none } },28578 .{ .src = .{ .mem, .to_gpr, .none } },
24721 .{ .src = .{ .mem, .{ .to_reg = .xmm0 }, .none }, .commute = .{ 0, 1 } },28579 .{ .src = .{ .to_gpr, .to_gpr, .none } },
24722 .{ .src = .{ .{ .to_reg = .xmm0 }, .to_sse, .none } },
24723 },28580 },
24724 .dst_temps = .{ .{ .rc = .sse }, .unused },28581 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
24725 .each = .{ .once = &.{28582 .each = .{ .once = &.{
24726 .{ ._, ._pd, .mova, .dst0x, .src1x, ._, ._ },28583 .{ ._, ._rx, .sh, .dst0q, .src0q, .src1q, ._ },
24727 .{ ._, ._pd, .min, .dst0x, .src0x, ._, ._ },
24728 .{ ._, ._pd, .cmp, .src0x, .src0x, .sp(.unord), ._ },
24729 .{ ._, ._pd, .blendv, .dst0x, .src1x, .src0x, ._ },
24730 } },28584 } },
24731 }, .{28585 }, .{
24732 .required_features = .{ .sse2, null, null, null },28586 .required_features = .{ .@"64bit", null, null, null },
24733 .src_constraints = .{28587 .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24734 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24735 .{ .scalar_float = .{ .of = .xword, .is = .qword } },
24736 .any,
24737 },
24738 .patterns = &.{28588 .patterns = &.{
24739 .{ .src = .{ .to_mut_sse, .mem, .none } },28589 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24740 .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } },28590 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24741 .{ .src = .{ .to_mut_sse, .to_sse, .none } },
24742 },
24743 .extra_temps = .{
24744 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },
24745 .unused,
24746 .unused,
24747 .unused,
24748 .unused,
24749 .unused,
24750 .unused,
24751 .unused,
24752 .unused,
24753 .unused,
24754 .unused,
24755 },28591 },
24756 .dst_temps = .{ .{ .ref = .src0 }, .unused },28592 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28593 .clobbers = .{ .eflags = true },
24757 .each = .{ .once = &.{28594 .each = .{ .once = &.{
24758 .{ ._, ._pd, .mova, .tmp0x, .src1x, ._, ._ },28595 .{ ._, ._r, .sa, .dst0q, .src1b, ._, ._ },
24759 .{ ._, ._pd, .min, .tmp0x, .src0x, ._, ._ },
24760 .{ ._, ._pd, .cmp, .dst0x, .src0x, .sp(.ord), ._ },
24761 .{ ._, ._pd, .@"and", .tmp0x, .dst0x, ._, ._ },
24762 .{ ._, ._pd, .andn, .dst0x, .src1x, ._, ._ },
24763 .{ ._, ._pd, .@"or", .dst0x, .tmp0x, ._, ._ },
24764 } },28596 } },
24765 }, .{28597 }, .{
24766 .required_features = .{ .avx, null, null, null },28598 .required_features = .{ .@"64bit", null, null, null },
24767 .src_constraints = .{28599 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
24768 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
24769 .{ .scalar_float = .{ .of = .yword, .is = .qword } },
24770 .any,
24771 },
24772 .patterns = &.{28600 .patterns = &.{
24773 .{ .src = .{ .to_sse, .to_sse, .none } },28601 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
24774 },28602 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
24775 .extra_temps = .{
24776 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },
24777 .unused,
24778 .unused,
24779 .unused,
24780 .unused,
24781 .unused,
24782 .unused,
24783 .unused,
24784 .unused,
24785 .unused,
24786 .unused,
24787 },28603 },
24788 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused },28604 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28605 .clobbers = .{ .eflags = true },
24789 .each = .{ .once = &.{28606 .each = .{ .once = &.{
24790 .{ ._, .v_pd, .cmp, .tmp0y, .src0y, .src0y, .vp(.unord) },28607 .{ ._, ._r, .sh, .dst0q, .src1b, ._, ._ },
24791 .{ ._, .v_pd, .min, .dst0y, .src1y, .src0y, ._ },
24792 .{ ._, .v_pd, .blendv, .dst0y, .dst0y, .src1y, .tmp0y },
24793 } },28608 } },
24794 }, .{28609 }, .{
24795 .required_features = .{ .avx, null, null, null },28610 .required_features = .{ .@"64bit", .slow_incdec, null, null },
24796 .src_constraints = .{28611 .src_constraints = .{
24797 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },28612 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
24798 .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } },28613 .{ .unsigned_int = .byte },
24799 .any,28614 .any,
24800 },28615 },
24801 .patterns = &.{28616 .patterns = &.{
24802 .{ .src = .{ .to_mem, .to_mem, .none } },28617 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
24803 },28618 },
24804 .extra_temps = .{28619 .extra_temps = .{
28620 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24805 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },28621 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24806 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },28622 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24807 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },28623 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24808 .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } },28624 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24809 .unused,
24810 .unused,28625 .unused,
24811 .unused,28626 .unused,
24812 .unused,28627 .unused,
...@@ -24817,32 +28632,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24817,32 +28632,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24817 .dst_temps = .{ .mem, .unused },28632 .dst_temps = .{ .mem, .unused },
24818 .clobbers = .{ .eflags = true },28633 .clobbers = .{ .eflags = true },
24819 .each = .{ .once = &.{28634 .each = .{ .once = &.{
24820 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28635 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
24821 .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },28636 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
24822 .{ ._, .v_pd, .mova, .tmp2y, .memia(.src1y, .tmp0, .add_size), ._, ._ },28637 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
24823 .{ ._, .v_pd, .cmp, .tmp3y, .tmp1y, .tmp1y, .vp(.unord) },28638 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
24824 .{ ._, .v_pd, .min, .tmp1y, .tmp2y, .tmp1y, ._ },28639 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
24825 .{ ._, .v_pd, .blendv, .tmp1y, .tmp1y, .tmp2y, .tmp3y },28640 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24826 .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },28641 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
24827 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },28642 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
28643 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
28644 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
28645 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28646 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28647 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28648 .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ },
28649 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28650 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28651 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
24828 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28652 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24829 } },28653 } },
24830 }, .{28654 }, .{
24831 .required_features = .{ .sse4_1, null, null, null },28655 .required_features = .{ .@"64bit", null, null, null },
24832 .src_constraints = .{28656 .src_constraints = .{
24833 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },28657 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
24834 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },28658 .{ .unsigned_int = .byte },
24835 .any,28659 .any,
24836 },28660 },
24837 .patterns = &.{28661 .patterns = &.{
24838 .{ .src = .{ .to_mem, .to_mem, .none } },28662 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
24839 },28663 },
24840 .extra_temps = .{28664 .extra_temps = .{
28665 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24841 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },28666 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24842 .{ .type = .vector_2_f64, .kind = .{ .reg = .xmm0 } },28667 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24843 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },28668 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24844 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },28669 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24845 .unused,
24846 .unused,28670 .unused,
24847 .unused,28671 .unused,
24848 .unused,28672 .unused,
...@@ -24853,33 +28677,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24853,33 +28677,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24853 .dst_temps = .{ .mem, .unused },28677 .dst_temps = .{ .mem, .unused },
24854 .clobbers = .{ .eflags = true },28678 .clobbers = .{ .eflags = true },
24855 .each = .{ .once = &.{28679 .each = .{ .once = &.{
24856 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28680 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
24857 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },28681 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
24858 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },28682 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
24859 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },28683 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
24860 .{ ._, ._pd, .min, .tmp3x, .tmp1x, ._, ._ },28684 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
24861 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.unord), ._ },28685 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24862 .{ ._, ._pd, .blendv, .tmp3x, .tmp2x, .tmp1x, ._ },28686 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
24863 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp3x, ._, ._ },28687 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24864 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },28688 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
24865 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28689 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
28690 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28691 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28692 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28693 .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ },
28694 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28695 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28696 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
28697 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
24866 } },28698 } },
24867 }, .{28699 }, .{
24868 .required_features = .{ .sse2, null, null, null },28700 .required_features = .{ .@"64bit", .slow_incdec, null, null },
24869 .src_constraints = .{28701 .src_constraints = .{
24870 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },28702 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
24871 .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } },28703 .{ .unsigned_int = .byte },
24872 .any,28704 .any,
24873 },28705 },
24874 .patterns = &.{28706 .patterns = &.{
24875 .{ .src = .{ .to_mem, .to_mem, .none } },28707 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
24876 },28708 },
24877 .extra_temps = .{28709 .extra_temps = .{
28710 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24878 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },28711 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24879 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },28712 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24880 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },28713 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24881 .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } },28714 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24882 .unused,
24883 .unused,28715 .unused,
24884 .unused,28716 .unused,
24885 .unused,28717 .unused,
...@@ -24890,36 +28722,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24890,36 +28722,41 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24890 .dst_temps = .{ .mem, .unused },28722 .dst_temps = .{ .mem, .unused },
24891 .clobbers = .{ .eflags = true },28723 .clobbers = .{ .eflags = true },
24892 .each = .{ .once = &.{28724 .each = .{ .once = &.{
24893 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28725 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
24894 .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },28726 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
24895 .{ ._, ._pd, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },28727 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
24896 .{ ._, ._pd, .mova, .tmp3x, .tmp2x, ._, ._ },28728 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
24897 .{ ._, ._pd, .min, .tmp3x, .tmp1x, ._, ._ },28729 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
24898 .{ ._, ._pd, .cmp, .tmp1x, .tmp1x, .sp(.ord), ._ },28730 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24899 .{ ._, ._pd, .@"and", .tmp3x, .tmp1x, ._, ._ },28731 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
24900 .{ ._, ._pd, .andn, .tmp1x, .tmp2x, ._, ._ },28732 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24901 .{ ._, ._pd, .@"or", .tmp1x, .tmp3x, ._, ._ },28733 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
24902 .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },28734 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
24903 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },28735 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28736 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28737 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28738 .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ },
28739 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28740 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
28741 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
24904 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28742 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24905 } },28743 } },
24906 }, .{28744 }, .{
24907 .required_features = .{ .sse, null, null, null },28745 .required_features = .{ .@"64bit", null, null, null },
24908 .src_constraints = .{28746 .src_constraints = .{
24909 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },28747 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
24910 .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } },28748 .{ .unsigned_int = .byte },
24911 .any,28749 .any,
24912 },28750 },
24913 .patterns = &.{28751 .patterns = &.{
24914 .{ .src = .{ .to_mem, .to_mem, .none } },28752 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
24915 },28753 },
24916 .call_frame = .{ .alignment = .@"16" },
24917 .extra_temps = .{28754 .extra_temps = .{
28755 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24918 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },28756 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24919 .{ .type = .f64, .kind = .{ .reg = .xmm0 } },28757 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24920 .{ .type = .f64, .kind = .{ .reg = .xmm1 } },28758 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24921 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fmin" } } },28759 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24922 .unused,
24923 .unused,28760 .unused,
24924 .unused,28761 .unused,
24925 .unused,28762 .unused,
...@@ -24928,36 +28765,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24928,36 +28765,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24928 .unused,28765 .unused,
24929 },28766 },
24930 .dst_temps = .{ .mem, .unused },28767 .dst_temps = .{ .mem, .unused },
24931 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },28768 .clobbers = .{ .eflags = true },
24932 .each = .{ .once = &.{28769 .each = .{ .once = &.{
24933 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28770 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
24934 .{ .@"0:", ._ps, .xor, .tmp1x, .tmp1x, ._, ._ },28771 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
24935 .{ ._, ._ps, .xor, .tmp2x, .tmp2x, ._, ._ },28772 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
24936 .{ ._, ._ps, .movl, .tmp1x, .memia(.src0q, .tmp0, .add_size), ._, ._ },28773 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
24937 .{ ._, ._ps, .movl, .tmp2x, .memia(.src1q, .tmp0, .add_size), ._, ._ },28774 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
24938 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },28775 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24939 .{ ._, ._ps, .movl, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },28776 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
24940 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },28777 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
24941 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28778 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
28779 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
28780 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28781 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28782 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28783 .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ },
28784 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28785 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
28786 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
28787 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
24942 } },28788 } },
24943 }, .{28789 }, .{
24944 .required_features = .{ .x87, .cmov, null, null },28790 .required_features = .{ .@"64bit", .slow_incdec, null, null },
24945 .src_constraints = .{28791 .src_constraints = .{
24946 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28792 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
24947 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28793 .{ .unsigned_int = .word },
24948 .any,28794 .any,
24949 },28795 },
24950 .patterns = &.{28796 .patterns = &.{
24951 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },28797 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
24952 .{ .src = .{ .mem, .to_x87, .none } },
24953 .{ .src = .{ .to_x87, .to_x87, .none } },
24954 },28798 },
24955 .extra_temps = .{28799 .extra_temps = .{
24956 .{ .type = .f80, .kind = .{ .reg = .st7 } },28800 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24957 .unused,28801 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24958 .unused,28802 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24959 .unused,28803 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24960 .unused,28804 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24961 .unused,28805 .unused,
24962 .unused,28806 .unused,
24963 .unused,28807 .unused,
...@@ -24965,34 +28809,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -24965,34 +28809,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
24965 .unused,28809 .unused,
24966 .unused,28810 .unused,
24967 },28811 },
24968 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },28812 .dst_temps = .{ .mem, .unused },
24969 .clobbers = .{ .eflags = true },28813 .clobbers = .{ .eflags = true },
24970 .each = .{ .once = &.{28814 .each = .{ .once = &.{
24971 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },28815 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
24972 .{ ._, .f_, .ucomi, .tmp0t, .tmp0t, ._, ._ },28816 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
24973 .{ ._, .f_u, .cmov, .tmp0t, .src1t, ._, ._ },28817 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
24974 .{ ._, .f_, .ucomi, .tmp0t, .src1t, ._, ._ },28818 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
24975 .{ ._, .f_nb, .cmov, .tmp0t, .src1t, ._, ._ },28819 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
24976 .{ ._, .f_p, .st, .dst0t, ._, ._, ._ },28820 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
28821 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
28822 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
28823 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
28824 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
28825 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28826 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28827 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28828 .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ },
28829 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28830 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28831 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
28832 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
24977 } },28833 } },
24978 }, .{28834 }, .{
24979 .required_features = .{ .sahf, .x87, null, null },28835 .required_features = .{ .@"64bit", null, null, null },
24980 .src_constraints = .{28836 .src_constraints = .{
24981 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28837 .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } },
24982 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28838 .{ .unsigned_int = .word },
24983 .any,28839 .any,
24984 },28840 },
24985 .patterns = &.{28841 .patterns = &.{
24986 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },28842 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
24987 .{ .src = .{ .mem, .to_x87, .none } },
24988 .{ .src = .{ .to_x87, .to_x87, .none } },
24989 },28843 },
24990 .extra_temps = .{28844 .extra_temps = .{
24991 .{ .type = .f80, .kind = .{ .reg = .st7 } },28845 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
24992 .{ .type = .u8, .kind = .{ .reg = .ah } },28846 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
24993 .unused,28847 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
24994 .unused,28848 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24995 .unused,28849 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
24996 .unused,28850 .unused,
24997 .unused,28851 .unused,
24998 .unused,28852 .unused,
...@@ -25000,40 +28854,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25000,40 +28854,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25000 .unused,28854 .unused,
25001 .unused,28855 .unused,
25002 },28856 },
25003 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },28857 .dst_temps = .{ .mem, .unused },
25004 .clobbers = .{ .eflags = true },28858 .clobbers = .{ .eflags = true },
25005 .each = .{ .once = &.{28859 .each = .{ .once = &.{
25006 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },28860 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
25007 .{ ._, .f_, .ucom, .tmp0t, ._, ._, ._ },28861 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25008 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },28862 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
25009 .{ ._, ._, .sahf, ._, ._, ._, ._ },28863 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
25010 .{ ._, ._p, .j, .@"0f", ._, ._, ._ },28864 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
25011 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },28865 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25012 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },28866 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
25013 .{ ._, ._, .sahf, ._, ._, ._, ._ },28867 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25014 .{ ._, ._b, .j, .@"1f", ._, ._, ._ },28868 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
25015 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },28869 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
25016 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },28870 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
25017 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },28871 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28872 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28873 .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ },
28874 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28875 .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ },
28876 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
28877 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
25018 } },28878 } },
25019 }, .{28879 }, .{
25020 .required_features = .{ .x87, null, null, null },28880 .required_features = .{ .@"64bit", .slow_incdec, null, null },
25021 .src_constraints = .{28881 .src_constraints = .{
25022 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28882 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
25023 .{ .scalar_float = .{ .of = .xword, .is = .tbyte } },28883 .{ .unsigned_int = .word },
25024 .any,28884 .any,
25025 },28885 },
25026 .patterns = &.{28886 .patterns = &.{
25027 .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } },28887 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
25028 .{ .src = .{ .mem, .to_x87, .none } },
25029 .{ .src = .{ .to_x87, .to_x87, .none } },
25030 },28888 },
25031 .extra_temps = .{28889 .extra_temps = .{
25032 .{ .type = .f80, .kind = .{ .reg = .st7 } },28890 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25033 .{ .type = .u8, .kind = .{ .reg = .ah } },28891 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25034 .unused,28892 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25035 .unused,28893 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25036 .unused,28894 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25037 .unused,28895 .unused,
25038 .unused,28896 .unused,
25039 .unused,28897 .unused,
...@@ -25041,38 +28899,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25041,38 +28899,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25041 .unused,28899 .unused,
25042 .unused,28900 .unused,
25043 },28901 },
25044 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src1, .rc = .x87 } }, .unused },28902 .dst_temps = .{ .mem, .unused },
25045 .clobbers = .{ .eflags = true },28903 .clobbers = .{ .eflags = true },
25046 .each = .{ .once = &.{28904 .each = .{ .once = &.{
25047 .{ ._, .f_, .ld, .src0t, ._, ._, ._ },28905 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
25048 .{ ._, .f_, .xam, ._, ._, ._, ._ },28906 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25049 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },28907 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
25050 .{ ._, ._, .@"test", .tmp1b, .si(0b1_000_100), ._, ._ },28908 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
25051 .{ ._, ._z, .j, .@"0f", ._, ._, ._ },28909 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
25052 .{ ._, .f_, .ucom, .src1t, ._, ._, ._ },28910 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25053 .{ ._, .fn_sw, .st, .tmp1w, ._, ._, ._ },28911 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
25054 .{ ._, ._, .@"test", .tmp1b, .si(0b0_000_001), ._, ._ },28912 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25055 .{ ._, ._nz, .j, .@"1f", ._, ._, ._ },28913 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
25056 .{ .@"0:", .f_p, .st, .tmp0t, ._, ._, ._ },28914 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
25057 .{ ._, .f_, .ld, .src1t, ._, ._, ._ },28915 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
25058 .{ .@"1:", .f_p, .st, .dst0t, ._, ._, ._ },28916 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28917 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28918 .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ },
28919 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28920 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
28921 .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ },
28922 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25059 } },28923 } },
25060 }, .{28924 }, .{
25061 .required_features = .{ .x87, .cmov, null, null },28925 .required_features = .{ .@"64bit", null, null, null },
25062 .src_constraints = .{28926 .src_constraints = .{
25063 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },28927 .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } },
25064 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },28928 .{ .unsigned_int = .word },
25065 .any,28929 .any,
25066 },28930 },
25067 .patterns = &.{28931 .patterns = &.{
25068 .{ .src = .{ .to_mem, .to_mem, .none } },28932 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
25069 },28933 },
25070 .extra_temps = .{28934 .extra_temps = .{
28935 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25071 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },28936 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25072 .{ .type = .f80, .kind = .{ .reg = .st6 } },28937 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25073 .{ .type = .f80, .kind = .{ .reg = .st7 } },28938 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25074 .unused,28939 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25075 .unused,
25076 .unused,28940 .unused,
25077 .unused,28941 .unused,
25078 .unused,28942 .unused,
...@@ -25083,123 +28947,224 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25083,123 +28947,224 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25083 .dst_temps = .{ .mem, .unused },28947 .dst_temps = .{ .mem, .unused },
25084 .clobbers = .{ .eflags = true },28948 .clobbers = .{ .eflags = true },
25085 .each = .{ .once = &.{28949 .each = .{ .once = &.{
25086 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },28950 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
25087 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },28951 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25088 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },28952 .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ },
25089 .{ ._, .f_, .ucomi, .tmp1t, .tmp1t, ._, ._ },28953 .{ ._, ._, .not, .tmp0p, ._, ._, ._ },
25090 .{ ._, .f_u, .cmov, .tmp1t, .tmp2t, ._, ._ },28954 .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ },
25091 .{ ._, .f_, .ucomi, .tmp1t, .tmp2t, ._, ._ },28955 .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25092 .{ ._, .f_nb, .cmov, .tmp1t, .tmp2t, ._, ._ },28956 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
25093 .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },28957 .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ },
25094 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },28958 .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ },
25095 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },28959 .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ },
25096 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },28960 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
28961 .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ },
28962 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
28963 .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ },
28964 .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ },
28965 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
28966 .{ ._, ._c, .in, .tmp0p, ._, ._, ._ },
28967 .{ ._, ._nz, .j, .@"0b", ._, ._, ._ },
28968 } },
28969 } }) catch |err| switch (err) {
28970 error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{
28971 @tagName(air_tag),
28972 cg.typeOf(bin_op.lhs).fmt(pt),
28973 cg.typeOf(bin_op.rhs).fmt(pt),
28974 ops[0].tracking(cg),
28975 ops[1].tracking(cg),
28976 }),
28977 else => |e| return e,
28978 };
28979 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
28980 },
28981 .shl, .shl_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: {
28982 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
28983 if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst);
28984 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
28985 var res: [1]Temp = undefined;
28986 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{
28987 .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any },
28988 .patterns = &.{
28989 .{ .src = .{ .mut_mem, .imm8, .none } },
28990 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
28991 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
28992 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
28993 },
28994 .dst_temps = .{ .{ .ref = .src0 }, .unused },
28995 .clobbers = .{ .eflags = true },
28996 .each = .{ .once = &.{
28997 .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ },
25097 } },28998 } },
25098 }, .{28999 }, .{
25099 .required_features = .{ .sahf, .x87, null, null },29000 .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any },
25100 .src_constraints = .{29001 .patterns = &.{
25101 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },29002 .{ .src = .{ .mut_mem, .imm8, .none } },
25102 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },29003 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
25103 .any,29004 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29005 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
25104 },29006 },
29007 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29008 .clobbers = .{ .eflags = true },
29009 .each = .{ .once = &.{
29010 .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ },
29011 } },
29012 }, .{
29013 .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any },
25105 .patterns = &.{29014 .patterns = &.{
25106 .{ .src = .{ .to_mem, .to_mem, .none } },29015 .{ .src = .{ .mut_mem, .imm8, .none } },
29016 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
29017 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29018 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
25107 },29019 },
25108 .extra_temps = .{29020 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25109 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },29021 .clobbers = .{ .eflags = true },
25110 .{ .type = .f80, .kind = .{ .reg = .st6 } },29022 .each = .{ .once = &.{
25111 .{ .type = .f80, .kind = .{ .reg = .st7 } },29023 .{ ._, ._l, .sa, .dst0w, .src1b, ._, ._ },
25112 .{ .type = .u8, .kind = .{ .reg = .ah } },29024 } },
25113 .unused,29025 }, .{
25114 .unused,29026 .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any },
25115 .unused,29027 .patterns = &.{
25116 .unused,29028 .{ .src = .{ .mut_mem, .imm8, .none } },
25117 .unused,29029 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
25118 .unused,29030 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
25119 .unused,29031 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
25120 },29032 },
25121 .dst_temps = .{ .mem, .unused },29033 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25122 .clobbers = .{ .eflags = true },29034 .clobbers = .{ .eflags = true },
25123 .each = .{ .once = &.{29035 .each = .{ .once = &.{
25124 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },29036 .{ ._, ._l, .sh, .dst0w, .src1b, ._, ._ },
25125 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
25126 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
25127 .{ ._, .f_, .ucom, .tmp1t, ._, ._, ._ },
25128 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
25129 .{ ._, ._, .sahf, ._, ._, ._, ._ },
25130 .{ ._, ._p, .j, .@"1f", ._, ._, ._ },
25131 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
25132 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
25133 .{ ._, ._, .sahf, ._, ._, ._, ._ },
25134 .{ ._, ._b, .j, .@"2f", ._, ._, ._ },
25135 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
25136 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
25137 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
25138 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
25139 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25140 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25141 } },29037 } },
25142 }, .{29038 }, .{
25143 .required_features = .{ .x87, null, null, null },29039 .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
25144 .src_constraints = .{29040 .patterns = &.{
25145 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },29041 .{ .src = .{ .mut_mem, .imm8, .none } },
25146 .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } },29042 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
25147 .any,
25148 },29043 },
29044 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29045 .clobbers = .{ .eflags = true },
29046 .each = .{ .once = &.{
29047 .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ },
29048 } },
29049 }, .{
29050 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
25149 .patterns = &.{29051 .patterns = &.{
25150 .{ .src = .{ .to_mem, .to_mem, .none } },29052 .{ .src = .{ .mut_mem, .imm8, .none } },
29053 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
25151 },29054 },
25152 .extra_temps = .{29055 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25153 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },29056 .clobbers = .{ .eflags = true },
25154 .{ .type = .f80, .kind = .{ .reg = .st6 } },29057 .each = .{ .once = &.{
25155 .{ .type = .f80, .kind = .{ .reg = .st7 } },29058 .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ },
25156 .{ .type = .u8, .kind = .{ .reg = .ah } },29059 } },
25157 .unused,29060 }, .{
25158 .unused,29061 .required_features = .{ .bmi2, null, null, null },
25159 .unused,29062 .src_constraints = .{ .{ .int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
25160 .unused,29063 .patterns = &.{
25161 .unused,29064 .{ .src = .{ .mem, .to_gpr, .none } },
25162 .unused,29065 .{ .src = .{ .to_gpr, .to_gpr, .none } },
25163 .unused,
25164 },29066 },
25165 .dst_temps = .{ .mem, .unused },29067 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
29068 .each = .{ .once = &.{
29069 .{ ._, ._lx, .sh, .dst0d, .src0d, .src1d, ._ },
29070 } },
29071 }, .{
29072 .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
29073 .patterns = &.{
29074 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29075 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
29076 },
29077 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25166 .clobbers = .{ .eflags = true },29078 .clobbers = .{ .eflags = true },
25167 .each = .{ .once = &.{29079 .each = .{ .once = &.{
25168 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },29080 .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ },
25169 .{ .@"0:", .f_, .ld, .memia(.src1t, .tmp0, .add_size), ._, ._, ._ },
25170 .{ ._, .f_, .ld, .memia(.src0t, .tmp0, .add_size), ._, ._, ._ },
25171 .{ ._, .f_, .xam, ._, ._, ._, ._ },
25172 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
25173 .{ ._, ._, .@"test", .tmp3b, .si(0b1_000_100), ._, ._ },
25174 .{ ._, ._z, .j, .@"1f", ._, ._, ._ },
25175 .{ ._, .f_, .ucom, .tmp2t, ._, ._, ._ },
25176 .{ ._, .fn_sw, .st, .tmp3w, ._, ._, ._ },
25177 .{ ._, ._, .@"test", .tmp3b, .si(0b0_000_001), ._, ._ },
25178 .{ ._, ._nz, .j, .@"2f", ._, ._, ._ },
25179 .{ .@"1:", .f_p, .st, .tmp1t, ._, ._, ._ },
25180 .{ ._, .f_, .ld, .tmp2t, ._, ._, ._ },
25181 .{ .@"2:", .f_p, .st, .memia(.dst0t, .tmp0, .add_size), ._, ._, ._ },
25182 .{ ._, .f_p, .st, .tmp2t, ._, ._, ._ },
25183 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25184 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25185 } },29081 } },
25186 }, .{29082 }, .{
25187 .required_features = .{ .sse, null, null, null },29083 .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any },
29084 .patterns = &.{
29085 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29086 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
29087 },
29088 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29089 .clobbers = .{ .eflags = true },
29090 .each = .{ .once = &.{
29091 .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ },
29092 } },
29093 }, .{
29094 .required_features = .{ .@"64bit", null, null, null },
29095 .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
29096 .patterns = &.{
29097 .{ .src = .{ .mut_mem, .imm8, .none } },
29098 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
29099 },
29100 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29101 .clobbers = .{ .eflags = true },
29102 .each = .{ .once = &.{
29103 .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ },
29104 } },
29105 }, .{
29106 .required_features = .{ .@"64bit", null, null, null },
29107 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
29108 .patterns = &.{
29109 .{ .src = .{ .mut_mem, .imm8, .none } },
29110 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
29111 },
29112 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29113 .clobbers = .{ .eflags = true },
29114 .each = .{ .once = &.{
29115 .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ },
29116 } },
29117 }, .{
29118 .required_features = .{ .@"64bit", .bmi2, null, null },
29119 .src_constraints = .{ .{ .int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
29120 .patterns = &.{
29121 .{ .src = .{ .mem, .to_gpr, .none } },
29122 .{ .src = .{ .to_gpr, .to_gpr, .none } },
29123 },
29124 .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused },
29125 .each = .{ .once = &.{
29126 .{ ._, ._lx, .sh, .dst0q, .src0q, .src1q, ._ },
29127 } },
29128 }, .{
29129 .required_features = .{ .@"64bit", null, null, null },
29130 .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
29131 .patterns = &.{
29132 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29133 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
29134 },
29135 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29136 .clobbers = .{ .eflags = true },
29137 .each = .{ .once = &.{
29138 .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ },
29139 } },
29140 }, .{
29141 .required_features = .{ .@"64bit", null, null, null },
29142 .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any },
29143 .patterns = &.{
29144 .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } },
29145 .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } },
29146 },
29147 .dst_temps = .{ .{ .ref = .src0 }, .unused },
29148 .clobbers = .{ .eflags = true },
29149 .each = .{ .once = &.{
29150 .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ },
29151 } },
29152 }, .{
29153 .required_features = .{ .@"64bit", .slow_incdec, null, null },
25188 .src_constraints = .{29154 .src_constraints = .{
25189 .{ .scalar_float = .{ .of = .xword, .is = .xword } },29155 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
25190 .{ .scalar_float = .{ .of = .xword, .is = .xword } },29156 .{ .unsigned_int = .byte },
25191 .any,29157 .any,
25192 },29158 },
25193 .patterns = &.{29159 .patterns = &.{
25194 .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } },29160 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
25195 },29161 },
25196 .call_frame = .{ .alignment = .@"16" },
25197 .extra_temps = .{29162 .extra_temps = .{
25198 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },29163 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25199 .unused,29164 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25200 .unused,29165 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25201 .unused,29166 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25202 .unused,29167 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25203 .unused,29168 .unused,
25204 .unused,29169 .unused,
25205 .unused,29170 .unused,
...@@ -25207,28 +29172,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25207,28 +29172,44 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25207 .unused,29172 .unused,
25208 .unused,29173 .unused,
25209 },29174 },
25210 .dst_temps = .{ .{ .ref = .src0 }, .unused },29175 .dst_temps = .{ .mem, .unused },
25211 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },29176 .clobbers = .{ .eflags = true },
25212 .each = .{ .once = &.{29177 .each = .{ .once = &.{
25213 .{ ._, ._, .call, .tmp0d, ._, ._, ._ },29178 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
29179 .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
29180 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
29181 .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ },
29182 .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ },
29183 .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
29184 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
29185 .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
29186 .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ },
29187 .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ },
29188 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
29189 .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ },
29190 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29191 .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ },
29192 .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
29193 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
29194 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29195 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
25214 } },29196 } },
25215 }, .{29197 }, .{
25216 .required_features = .{ .avx, null, null, null },29198 .required_features = .{ .@"64bit", null, null, null },
25217 .src_constraints = .{29199 .src_constraints = .{
25218 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29200 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
25219 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29201 .{ .unsigned_int = .byte },
25220 .any,29202 .any,
25221 },29203 },
25222 .patterns = &.{29204 .patterns = &.{
25223 .{ .src = .{ .to_mem, .to_mem, .none } },29205 .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } },
25224 },29206 },
25225 .call_frame = .{ .alignment = .@"16" },
25226 .extra_temps = .{29207 .extra_temps = .{
25227 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },29208 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25228 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },29209 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25229 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },29210 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25230 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },29211 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25231 .unused,29212 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25232 .unused,29213 .unused,
25233 .unused,29214 .unused,
25234 .unused,29215 .unused,
...@@ -25237,33 +29218,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25237,33 +29218,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25237 .unused,29218 .unused,
25238 },29219 },
25239 .dst_temps = .{ .mem, .unused },29220 .dst_temps = .{ .mem, .unused },
25240 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },29221 .clobbers = .{ .eflags = true },
25241 .each = .{ .once = &.{29222 .each = .{ .once = &.{
25242 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },29223 .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ },
25243 .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },29224 .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
25244 .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },29225 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25245 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },29226 .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ },
25246 .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },29227 .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ },
25247 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },29228 .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
25248 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },29229 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
29230 .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
29231 .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ },
29232 .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ },
29233 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
29234 .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ },
29235 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29236 .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ },
29237 .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
29238 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
29239 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29240 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
25249 } },29241 } },
25250 }, .{29242 }, .{
25251 .required_features = .{ .sse2, null, null, null },29243 .required_features = .{ .@"64bit", .slow_incdec, null, null },
25252 .src_constraints = .{29244 .src_constraints = .{
25253 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29245 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
25254 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29246 .{ .unsigned_int = .word },
25255 .any,29247 .any,
25256 },29248 },
25257 .patterns = &.{29249 .patterns = &.{
25258 .{ .src = .{ .to_mem, .to_mem, .none } },29250 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
25259 },29251 },
25260 .call_frame = .{ .alignment = .@"16" },29252 .extra_temps = .{
25261 .extra_temps = .{29253 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25262 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },29254 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25263 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },29255 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25264 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },29256 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25265 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },29257 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25266 .unused,
25267 .unused,29258 .unused,
25268 .unused,29259 .unused,
25269 .unused,29260 .unused,
...@@ -25272,33 +29263,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25272,33 +29263,43 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25272 .unused,29263 .unused,
25273 },29264 },
25274 .dst_temps = .{ .mem, .unused },29265 .dst_temps = .{ .mem, .unused },
25275 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },29266 .clobbers = .{ .eflags = true },
25276 .each = .{ .once = &.{29267 .each = .{ .once = &.{
25277 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },29268 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
25278 .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },29269 .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
25279 .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },29270 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25280 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },29271 .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ },
25281 .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },29272 .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ },
25282 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },29273 .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
25283 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },29274 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
29275 .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
29276 .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ },
29277 .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ },
29278 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
29279 .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ },
29280 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
29281 .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ },
29282 .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
29283 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
29284 .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ },
29285 .{ ._, ._ae, .j, .@"0b", ._, ._, ._ },
25284 } },29286 } },
25285 }, .{29287 }, .{
25286 .required_features = .{ .sse, null, null, null },29288 .required_features = .{ .@"64bit", null, null, null },
25287 .src_constraints = .{29289 .src_constraints = .{
25288 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29290 .{ .remainder_int = .{ .of = .qword, .is = .qword } },
25289 .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } },29291 .{ .unsigned_int = .word },
25290 .any,29292 .any,
25291 },29293 },
25292 .patterns = &.{29294 .patterns = &.{
25293 .{ .src = .{ .to_mem, .to_mem, .none } },29295 .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } },
25294 },29296 },
25295 .call_frame = .{ .alignment = .@"16" },
25296 .extra_temps = .{29297 .extra_temps = .{
25297 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },29298 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25298 .{ .type = .f128, .kind = .{ .reg = .xmm0 } },29299 .{ .type = .u32, .kind = .{ .rc = .general_purpose } },
25299 .{ .type = .f128, .kind = .{ .reg = .xmm1 } },29300 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25300 .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "fminq" } } },29301 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25301 .unused,29302 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
25302 .unused,29303 .unused,
25303 .unused,29304 .unused,
25304 .unused,29305 .unused,
...@@ -25307,419 +29308,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -25307,419 +29308,50 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
25307 .unused,29308 .unused,
25308 },29309 },
25309 .dst_temps = .{ .mem, .unused },29310 .dst_temps = .{ .mem, .unused },
25310 .clobbers = .{ .eflags = true, .caller_preserved = .ccc },29311 .clobbers = .{ .eflags = true },
25311 .each = .{ .once = &.{29312 .each = .{ .once = &.{
25312 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },29313 .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ },
25313 .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },29314 .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ },
25314 .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_size), ._, ._ },29315 .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ },
25315 .{ ._, ._, .call, .tmp3d, ._, ._, ._ },29316 .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ },
25316 .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },29317 .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ },
25317 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },29318 .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
25318 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },29319 .{ ._, ._mp, .j, .@"1f", ._, ._, ._ },
29320 .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ },
29321 .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ },
29322 .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ },
29323 .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ },
29324 .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ },
29325 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
29326 .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ },
29327 .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ },
29328 .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ },
29329 .{ ._, ._c, .de, .tmp0d, ._, ._, ._ },
29330 .{ ._, ._ns, .j, .@"0b", ._, ._, ._ },
25319 } },29331 } },
25320 } }) catch |err| switch (err) {29332 } }) catch |err| switch (err) {
25321 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{29333 error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{
25322 @tagName(air_tag),29334 @tagName(air_tag),
25323 cg.typeOf(bin_op.lhs).fmt(pt),29335 cg.typeOf(bin_op.lhs).fmt(pt),
29336 cg.typeOf(bin_op.rhs).fmt(pt),
25324 ops[0].tracking(cg),29337 ops[0].tracking(cg),
25325 ops[1].tracking(cg),29338 ops[1].tracking(cg),
25326 }),29339 }),
25327 else => |e| return e,29340 else => |e| return e,
25328 };29341 };
25329 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);29342 switch (air_tag) {
25330 },
25331 .alloc => if (use_old) try cg.airAlloc(inst) else {
25332 const ty = air_datas[@intFromEnum(inst)].ty;
25333 const slot = try cg.tempInit(ty, .{ .lea_frame = .{
25334 .index = try cg.allocMemPtr(inst),
25335 } });
25336 try slot.finish(inst, &.{}, &.{}, cg);
25337 },
25338 .inferred_alloc, .inferred_alloc_comptime => unreachable,
25339 .ret_ptr => if (use_old) try cg.airRetPtr(inst) else {
25340 const ty = air_datas[@intFromEnum(inst)].ty;
25341 var slot = switch (cg.ret_mcv.long) {
25342 else => unreachable,29343 else => unreachable,
25343 .none => try cg.tempInit(ty, .{ .lea_frame = .{29344 .shl => res[0].wrapInt(cg) catch |err| switch (err) {
25344 .index = try cg.allocMemPtr(inst),29345 error.SelectFailed => return cg.fail("failed to select wrap {} {} {} {}", .{
25345 } }),29346 cg.typeOf(bin_op.lhs).fmt(pt),
25346 .load_frame => slot: {29347 cg.typeOf(bin_op.rhs).fmt(pt),
25347 var slot = try cg.tempInit(ty, cg.ret_mcv.long);29348 ops[0].tracking(cg),
25348 try slot.toOffset(cg.ret_mcv.short.indirect.off, cg);29349 ops[1].tracking(cg),
25349 break :slot slot;29350 }),
29351 else => |e| return e,
25350 },29352 },
25351 };29353 .shl_exact => {},
25352 try slot.finish(inst, &.{}, &.{}, cg);29354 }
25353 },
25354 .assembly => try cg.airAsm(inst),
25355 .bit_and, .bit_or, .xor, .bool_and, .bool_or => |air_tag| if (use_old) try cg.airBinOp(inst, air_tag) else {
25356 const bin_op = air_datas[@intFromEnum(inst)].bin_op;
25357 var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs });
25358 var res: [1]Temp = undefined;
25359 cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, switch (@as(Mir.Inst.Tag, switch (air_tag) {
25360 else => unreachable,
25361 .bit_and, .bool_and => .@"and",
25362 .bit_or, .bool_or => .@"or",
25363 .xor => .xor,
25364 })) {
25365 else => unreachable,
25366 inline .@"and", .@"or", .xor => |mir_tag| comptime &.{ .{
25367 .src_constraints = .{ .{ .size = .byte }, .{ .size = .byte }, .any },
25368 .patterns = &.{
25369 .{ .src = .{ .mut_mem, .imm8, .none } },
25370 .{ .src = .{ .imm8, .mut_mem, .none }, .commute = .{ 0, 1 } },
25371 .{ .src = .{ .to_mut_gpr, .imm8, .none } },
25372 .{ .src = .{ .imm8, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25373 .{ .src = .{ .mut_mem, .to_gpr, .none } },
25374 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
25375 .{ .src = .{ .to_mut_gpr, .mem, .none } },
25376 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25377 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
25378 },
25379 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25380 .clobbers = .{ .eflags = true },
25381 .each = .{ .once = &.{
25382 .{ ._, ._, mir_tag, .dst0b, .src1b, ._, ._ },
25383 } },
25384 }, .{
25385 .src_constraints = .{ .{ .size = .word }, .{ .size = .word }, .any },
25386 .patterns = &.{
25387 .{ .src = .{ .mut_mem, .imm16, .none } },
25388 .{ .src = .{ .imm16, .mut_mem, .none }, .commute = .{ 0, 1 } },
25389 .{ .src = .{ .to_mut_gpr, .imm16, .none } },
25390 .{ .src = .{ .imm16, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25391 .{ .src = .{ .mut_mem, .to_gpr, .none } },
25392 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
25393 .{ .src = .{ .to_mut_gpr, .mem, .none } },
25394 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25395 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
25396 },
25397 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25398 .clobbers = .{ .eflags = true },
25399 .each = .{ .once = &.{
25400 .{ ._, ._, mir_tag, .dst0w, .src1w, ._, ._ },
25401 } },
25402 }, .{
25403 .src_constraints = .{ .{ .size = .dword }, .{ .size = .dword }, .any },
25404 .patterns = &.{
25405 .{ .src = .{ .mut_mem, .imm32, .none } },
25406 .{ .src = .{ .imm32, .mut_mem, .none }, .commute = .{ 0, 1 } },
25407 .{ .src = .{ .to_mut_gpr, .imm32, .none } },
25408 .{ .src = .{ .imm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25409 .{ .src = .{ .mut_mem, .to_gpr, .none } },
25410 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
25411 .{ .src = .{ .to_mut_gpr, .mem, .none } },
25412 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25413 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
25414 },
25415 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25416 .clobbers = .{ .eflags = true },
25417 .each = .{ .once = &.{
25418 .{ ._, ._, mir_tag, .dst0d, .src1d, ._, ._ },
25419 } },
25420 }, .{
25421 .required_features = .{ .@"64bit", null, null, null },
25422 .src_constraints = .{ .{ .size = .qword }, .{ .size = .qword }, .any },
25423 .patterns = &.{
25424 .{ .src = .{ .mut_mem, .simm32, .none } },
25425 .{ .src = .{ .simm32, .mut_mem, .none }, .commute = .{ 0, 1 } },
25426 .{ .src = .{ .to_mut_gpr, .simm32, .none } },
25427 .{ .src = .{ .simm32, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25428 .{ .src = .{ .mut_mem, .to_gpr, .none } },
25429 .{ .src = .{ .to_gpr, .mut_mem, .none }, .commute = .{ 0, 1 } },
25430 .{ .src = .{ .to_mut_gpr, .mem, .none } },
25431 .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } },
25432 .{ .src = .{ .to_mut_gpr, .to_gpr, .none } },
25433 },
25434 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25435 .clobbers = .{ .eflags = true },
25436 .each = .{ .once = &.{
25437 .{ ._, ._, mir_tag, .dst0q, .src1q, ._, ._ },
25438 } },
25439 }, .{
25440 .required_features = .{ .mmx, null, null, null },
25441 .src_constraints = .{ .{ .size = .qword }, .{ .size = .qword }, .any },
25442 .patterns = &.{
25443 .{ .src = .{ .to_mut_mm, .mem, .none } },
25444 .{ .src = .{ .mem, .to_mut_mm, .none }, .commute = .{ 0, 1 } },
25445 .{ .src = .{ .to_mut_mm, .to_mm, .none } },
25446 },
25447 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25448 .each = .{ .once = &.{
25449 .{ ._, .p_, mir_tag, .dst0q, .src1q, ._, ._ },
25450 } },
25451 }, .{
25452 .required_features = .{ .avx, null, null, null },
25453 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
25454 .patterns = &.{
25455 .{ .src = .{ .to_xmm, .mem, .none } },
25456 .{ .src = .{ .mem, .to_xmm, .none }, .commute = .{ 0, 1 } },
25457 .{ .src = .{ .to_xmm, .to_xmm, .none } },
25458 },
25459 .dst_temps = .{ .{ .rc = .sse }, .unused },
25460 .each = .{ .once = &.{
25461 .{ ._, .vp_, mir_tag, .dst0x, .src0x, .src1x, ._ },
25462 } },
25463 }, .{
25464 .required_features = .{ .sse2, null, null, null },
25465 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
25466 .patterns = &.{
25467 .{ .src = .{ .to_mut_xmm, .mem, .none } },
25468 .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } },
25469 .{ .src = .{ .to_mut_xmm, .to_xmm, .none } },
25470 },
25471 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25472 .each = .{ .once = &.{
25473 .{ ._, .p_, mir_tag, .dst0x, .src1x, ._, ._ },
25474 } },
25475 }, .{
25476 .required_features = .{ .sse, null, null, null },
25477 .src_constraints = .{ .{ .size = .xword }, .{ .size = .xword }, .any },
25478 .patterns = &.{
25479 .{ .src = .{ .to_mut_xmm, .mem, .none } },
25480 .{ .src = .{ .mem, .to_mut_xmm, .none }, .commute = .{ 0, 1 } },
25481 .{ .src = .{ .to_mut_xmm, .to_xmm, .none } },
25482 },
25483 .dst_temps = .{ .{ .ref = .src0 }, .unused },
25484 .each = .{ .once = &.{
25485 .{ ._, ._ps, mir_tag, .dst0x, .src1x, ._, ._ },
25486 } },
25487 }, .{
25488 .required_features = .{ .avx2, null, null, null },
25489 .src_constraints = .{ .{ .size = .yword }, .{ .size = .yword }, .any },
25490 .patterns = &.{
25491 .{ .src = .{ .to_ymm, .mem, .none } },
25492 .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } },
25493 .{ .src = .{ .to_ymm, .to_ymm, .none } },
25494 },
25495 .dst_temps = .{ .{ .rc = .sse }, .unused },
25496 .each = .{ .once = &.{
25497 .{ ._, .vp_, mir_tag, .dst0y, .src0y, .src1y, ._ },
25498 } },
25499 }, .{
25500 .required_features = .{ .avx, null, null, null },
25501 .src_constraints = .{ .{ .size = .yword }, .{ .size = .yword }, .any },
25502 .patterns = &.{
25503 .{ .src = .{ .to_ymm, .mem, .none } },
25504 .{ .src = .{ .mem, .to_ymm, .none }, .commute = .{ 0, 1 } },
25505 .{ .src = .{ .to_ymm, .to_ymm, .none } },
25506 },
25507 .dst_temps = .{ .{ .rc = .sse }, .unused },
25508 .each = .{ .once = &.{
25509 .{ ._, .v_pd, mir_tag, .dst0y, .src0y, .src1y, ._ },
25510 } },
25511 }, .{
25512 .required_features = .{ .avx2, null, null, null },
25513 .src_constraints = .{ .{ .multiple_size = .yword }, .{ .multiple_size = .yword }, .any },
25514 .patterns = &.{
25515 .{ .src = .{ .to_mem, .to_mem, .none } },
25516 },
25517 .extra_temps = .{
25518 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25519 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
25520 .unused,
25521 .unused,
25522 .unused,
25523 .unused,
25524 .unused,
25525 .unused,
25526 .unused,
25527 .unused,
25528 .unused,
25529 },
25530 .dst_temps = .{ .mem, .unused },
25531 .clobbers = .{ .eflags = true },
25532 .each = .{ .once = &.{
25533 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25534 .{ .@"0:", .v_dqu, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
25535 .{ ._, .vp_, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
25536 .{ ._, .v_dqu, .mov, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
25537 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
25538 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25539 } },
25540 }, .{
25541 .required_features = .{ .avx, null, null, null },
25542 .src_constraints = .{ .{ .multiple_size = .yword }, .{ .multiple_size = .yword }, .any },
25543 .patterns = &.{
25544 .{ .src = .{ .to_mem, .to_mem, .none } },
25545 },
25546 .extra_temps = .{
25547 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25548 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
25549 .unused,
25550 .unused,
25551 .unused,
25552 .unused,
25553 .unused,
25554 .unused,
25555 .unused,
25556 .unused,
25557 .unused,
25558 },
25559 .dst_temps = .{ .mem, .unused },
25560 .clobbers = .{ .eflags = true },
25561 .each = .{ .once = &.{
25562 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25563 .{ .@"0:", .v_pd, .movu, .tmp1y, .memia(.src0y, .tmp0, .add_size), ._, ._ },
25564 .{ ._, .v_pd, mir_tag, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_size), ._ },
25565 .{ ._, .v_pd, .movu, .memia(.dst0y, .tmp0, .add_size), .tmp1y, ._, ._ },
25566 .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ },
25567 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25568 } },
25569 }, .{
25570 .required_features = .{ .avx, null, null, null },
25571 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
25572 .patterns = &.{
25573 .{ .src = .{ .to_mem, .to_mem, .none } },
25574 },
25575 .extra_temps = .{
25576 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25577 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
25578 .unused,
25579 .unused,
25580 .unused,
25581 .unused,
25582 .unused,
25583 .unused,
25584 .unused,
25585 .unused,
25586 .unused,
25587 },
25588 .dst_temps = .{ .mem, .unused },
25589 .clobbers = .{ .eflags = true },
25590 .each = .{ .once = &.{
25591 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25592 .{ .@"0:", .v_dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25593 .{ ._, .vp_, mir_tag, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._ },
25594 .{ ._, .v_dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25595 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25596 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25597 } },
25598 }, .{
25599 .required_features = .{ .sse2, null, null, null },
25600 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
25601 .patterns = &.{
25602 .{ .src = .{ .to_mem, .to_mem, .none } },
25603 },
25604 .extra_temps = .{
25605 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25606 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
25607 .unused,
25608 .unused,
25609 .unused,
25610 .unused,
25611 .unused,
25612 .unused,
25613 .unused,
25614 .unused,
25615 .unused,
25616 },
25617 .dst_temps = .{ .mem, .unused },
25618 .clobbers = .{ .eflags = true },
25619 .each = .{ .once = &.{
25620 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25621 .{ .@"0:", ._dqu, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25622 .{ ._, .p_, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
25623 .{ ._, ._dqu, .mov, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25624 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25625 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25626 } },
25627 }, .{
25628 .required_features = .{ .sse, null, null, null },
25629 .src_constraints = .{ .{ .multiple_size = .xword }, .{ .multiple_size = .xword }, .any },
25630 .patterns = &.{
25631 .{ .src = .{ .to_mem, .to_mem, .none } },
25632 },
25633 .extra_temps = .{
25634 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25635 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
25636 .unused,
25637 .unused,
25638 .unused,
25639 .unused,
25640 .unused,
25641 .unused,
25642 .unused,
25643 .unused,
25644 .unused,
25645 },
25646 .dst_temps = .{ .mem, .unused },
25647 .clobbers = .{ .eflags = true },
25648 .each = .{ .once = &.{
25649 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25650 .{ .@"0:", ._ps, .movu, .tmp1x, .memia(.src0x, .tmp0, .add_size), ._, ._ },
25651 .{ ._, ._ps, mir_tag, .tmp1x, .memia(.src1x, .tmp0, .add_size), ._, ._ },
25652 .{ ._, ._ps, .movu, .memia(.dst0x, .tmp0, .add_size), .tmp1x, ._, ._ },
25653 .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ },
25654 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25655 } },
25656 }, .{
25657 .required_features = .{ .mmx, null, null, null },
25658 .src_constraints = .{ .{ .multiple_size = .qword }, .{ .multiple_size = .qword }, .any },
25659 .patterns = &.{
25660 .{ .src = .{ .to_mem, .to_mem, .none } },
25661 },
25662 .extra_temps = .{
25663 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25664 .{ .kind = .{ .rc = .mmx } },
25665 .unused,
25666 .unused,
25667 .unused,
25668 .unused,
25669 .unused,
25670 .unused,
25671 .unused,
25672 .unused,
25673 .unused,
25674 },
25675 .dst_temps = .{ .mem, .unused },
25676 .clobbers = .{ .eflags = true },
25677 .each = .{ .once = &.{
25678 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25679 .{ .@"0:", ._q, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_size), ._, ._ },
25680 .{ ._, .p_, mir_tag, .tmp1q, .memia(.src1q, .tmp0, .add_size), ._, ._ },
25681 .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_size), .tmp1q, ._, ._ },
25682 .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ },
25683 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25684 } },
25685 }, .{
25686 .src_constraints = .{ .{ .multiple_size = .qword }, .{ .multiple_size = .qword }, .any },
25687 .patterns = &.{
25688 .{ .src = .{ .to_mem, .to_mem, .none } },
25689 },
25690 .extra_temps = .{
25691 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
25692 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
25693 .unused,
25694 .unused,
25695 .unused,
25696 .unused,
25697 .unused,
25698 .unused,
25699 .unused,
25700 .unused,
25701 .unused,
25702 },
25703 .dst_temps = .{ .mem, .unused },
25704 .clobbers = .{ .eflags = true },
25705 .each = .{ .once = &.{
25706 .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ },
25707 .{ .@"0:", ._, .mov, .tmp1p, .memia(.src0p, .tmp0, .add_size), ._, ._ },
25708 .{ ._, ._, mir_tag, .tmp1p, .memia(.src1p, .tmp0, .add_size), ._, ._ },
25709 .{ ._, ._, .mov, .memia(.dst0p, .tmp0, .add_size), .tmp1p, ._, ._ },
25710 .{ ._, ._, .add, .tmp0p, .sa(.tmp1, .add_size), ._, ._ },
25711 .{ ._, ._nc, .j, .@"0b", ._, ._, ._ },
25712 } },
25713 } },
25714 }) catch |err| switch (err) {
25715 error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{
25716 @tagName(air_tag),
25717 cg.typeOf(bin_op.lhs).fmt(pt),
25718 ops[0].tracking(cg),
25719 ops[1].tracking(cg),
25720 }),
25721 else => |e| return e,
25722 };
25723 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);29355 try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg);
25724 },29356 },
25725 .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else {29357 .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else {
...@@ -32065,7 +35697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32065,7 +35697,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32065 .{ .src = .{ .to_sse, .none, .none } },35697 .{ .src = .{ .to_sse, .none, .none } },
32066 },35698 },
32067 .extra_temps = .{35699 .extra_temps = .{
32068 .{ .type = .vector_16_u8, .kind = .forward_bits },35700 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32069 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },35701 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32070 .unused,35702 .unused,
32071 .unused,35703 .unused,
...@@ -32089,7 +35721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32089,7 +35721,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32089 .{ .src = .{ .to_mut_sse, .none, .none } },35721 .{ .src = .{ .to_mut_sse, .none, .none } },
32090 },35722 },
32091 .extra_temps = .{35723 .extra_temps = .{
32092 .{ .type = .vector_16_u8, .kind = .forward_bits },35724 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32093 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },35725 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32094 .unused,35726 .unused,
32095 .unused,35727 .unused,
...@@ -32113,7 +35745,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32113,7 +35745,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32113 .{ .src = .{ .to_sse, .none, .none } },35745 .{ .src = .{ .to_sse, .none, .none } },
32114 },35746 },
32115 .extra_temps = .{35747 .extra_temps = .{
32116 .{ .type = .vector_16_u8, .kind = .reverse_bits },35748 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32117 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },35749 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32118 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35750 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32119 .unused,35751 .unused,
...@@ -32141,7 +35773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32141,7 +35773,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32141 .{ .src = .{ .to_sse, .none, .none } },35773 .{ .src = .{ .to_sse, .none, .none } },
32142 },35774 },
32143 .extra_temps = .{35775 .extra_temps = .{
32144 .{ .type = .vector_16_u8, .kind = .reverse_bits },35776 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32145 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },35777 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32146 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35778 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32147 .unused,35779 .unused,
...@@ -32170,7 +35802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32170,7 +35802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32170 .{ .src = .{ .to_mut_sse, .none, .none } },35802 .{ .src = .{ .to_mut_sse, .none, .none } },
32171 },35803 },
32172 .extra_temps = .{35804 .extra_temps = .{
32173 .{ .type = .vector_16_u8, .kind = .reverse_bits },35805 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32174 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35806 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32175 .unused,35807 .unused,
32176 .unused,35808 .unused,
...@@ -32199,7 +35831,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32199,7 +35831,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32199 .{ .src = .{ .to_mut_sse, .none, .none } },35831 .{ .src = .{ .to_mut_sse, .none, .none } },
32200 },35832 },
32201 .extra_temps = .{35833 .extra_temps = .{
32202 .{ .type = .vector_16_u8, .kind = .reverse_bits },35834 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32203 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35835 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32204 .unused,35836 .unused,
32205 .unused,35837 .unused,
...@@ -32266,7 +35898,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32266,7 +35898,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32266 .{ .src = .{ .to_sse, .none, .none } },35898 .{ .src = .{ .to_sse, .none, .none } },
32267 },35899 },
32268 .extra_temps = .{35900 .extra_temps = .{
32269 .{ .type = .vector_16_u8, .kind = .forward_bits },35901 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32270 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },35902 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32271 .unused,35903 .unused,
32272 .unused,35904 .unused,
...@@ -32292,7 +35924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32292,7 +35924,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32292 .{ .src = .{ .to_mut_sse, .none, .none } },35924 .{ .src = .{ .to_mut_sse, .none, .none } },
32293 },35925 },
32294 .extra_temps = .{35926 .extra_temps = .{
32295 .{ .type = .vector_16_u8, .kind = .forward_bits },35927 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32296 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },35928 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32297 .unused,35929 .unused,
32298 .unused,35930 .unused,
...@@ -32318,7 +35950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32318,7 +35950,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32318 .{ .src = .{ .to_sse, .none, .none } },35950 .{ .src = .{ .to_sse, .none, .none } },
32319 },35951 },
32320 .extra_temps = .{35952 .extra_temps = .{
32321 .{ .type = .vector_16_u8, .kind = .reverse_bits },35953 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32322 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },35954 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32323 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35955 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32324 .unused,35956 .unused,
...@@ -32348,7 +35980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32348,7 +35980,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32348 .{ .src = .{ .to_sse, .none, .none } },35980 .{ .src = .{ .to_sse, .none, .none } },
32349 },35981 },
32350 .extra_temps = .{35982 .extra_temps = .{
32351 .{ .type = .vector_16_u8, .kind = .reverse_bits },35983 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32352 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },35984 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32353 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },35985 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32354 .unused,35986 .unused,
...@@ -32379,7 +36011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32379,7 +36011,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32379 .{ .src = .{ .to_mut_sse, .none, .none } },36011 .{ .src = .{ .to_mut_sse, .none, .none } },
32380 },36012 },
32381 .extra_temps = .{36013 .extra_temps = .{
32382 .{ .type = .vector_16_u8, .kind = .reverse_bits },36014 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32383 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36015 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32384 .unused,36016 .unused,
32385 .unused,36017 .unused,
...@@ -32410,7 +36042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32410,7 +36042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32410 .{ .src = .{ .to_mut_sse, .none, .none } },36042 .{ .src = .{ .to_mut_sse, .none, .none } },
32411 },36043 },
32412 .extra_temps = .{36044 .extra_temps = .{
32413 .{ .type = .vector_16_u8, .kind = .reverse_bits },36045 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32414 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36046 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32415 .unused,36047 .unused,
32416 .unused,36048 .unused,
...@@ -32480,7 +36112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32480,7 +36112,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32480 .{ .src = .{ .to_sse, .none, .none } },36112 .{ .src = .{ .to_sse, .none, .none } },
32481 },36113 },
32482 .extra_temps = .{36114 .extra_temps = .{
32483 .{ .type = .vector_16_u8, .kind = .forward_bits },36115 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32484 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36116 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32485 .unused,36117 .unused,
32486 .unused,36118 .unused,
...@@ -32506,7 +36138,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32506,7 +36138,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32506 .{ .src = .{ .to_mut_sse, .none, .none } },36138 .{ .src = .{ .to_mut_sse, .none, .none } },
32507 },36139 },
32508 .extra_temps = .{36140 .extra_temps = .{
32509 .{ .type = .vector_16_u8, .kind = .forward_bits },36141 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32510 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36142 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32511 .unused,36143 .unused,
32512 .unused,36144 .unused,
...@@ -32532,7 +36164,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32532,7 +36164,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32532 .{ .src = .{ .to_sse, .none, .none } },36164 .{ .src = .{ .to_sse, .none, .none } },
32533 },36165 },
32534 .extra_temps = .{36166 .extra_temps = .{
32535 .{ .type = .vector_16_u8, .kind = .reverse_bits },36167 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32536 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36168 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32537 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36169 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32538 .unused,36170 .unused,
...@@ -32562,7 +36194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32562,7 +36194,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32562 .{ .src = .{ .to_sse, .none, .none } },36194 .{ .src = .{ .to_sse, .none, .none } },
32563 },36195 },
32564 .extra_temps = .{36196 .extra_temps = .{
32565 .{ .type = .vector_16_u8, .kind = .reverse_bits },36197 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32566 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36198 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32567 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36199 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32568 .unused,36200 .unused,
...@@ -32593,7 +36225,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32593,7 +36225,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32593 .{ .src = .{ .to_mut_sse, .none, .none } },36225 .{ .src = .{ .to_mut_sse, .none, .none } },
32594 },36226 },
32595 .extra_temps = .{36227 .extra_temps = .{
32596 .{ .type = .vector_16_u8, .kind = .reverse_bits },36228 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32597 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36229 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32598 .unused,36230 .unused,
32599 .unused,36231 .unused,
...@@ -32624,7 +36256,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32624,7 +36256,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32624 .{ .src = .{ .to_mut_sse, .none, .none } },36256 .{ .src = .{ .to_mut_sse, .none, .none } },
32625 },36257 },
32626 .extra_temps = .{36258 .extra_temps = .{
32627 .{ .type = .vector_16_u8, .kind = .reverse_bits },36259 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32628 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36260 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32629 .unused,36261 .unused,
32630 .unused,36262 .unused,
...@@ -32694,7 +36326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32694,7 +36326,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32694 .{ .src = .{ .to_sse, .none, .none } },36326 .{ .src = .{ .to_sse, .none, .none } },
32695 },36327 },
32696 .extra_temps = .{36328 .extra_temps = .{
32697 .{ .type = .vector_16_u8, .kind = .forward_bits },36329 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32698 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36330 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
32699 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36331 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32700 .unused,36332 .unused,
...@@ -32720,7 +36352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32720,7 +36352,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32720 .{ .src = .{ .to_mut_sse, .none, .none } },36352 .{ .src = .{ .to_mut_sse, .none, .none } },
32721 },36353 },
32722 .extra_temps = .{36354 .extra_temps = .{
32723 .{ .type = .vector_16_u8, .kind = .forward_bits },36355 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32724 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36356 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
32725 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36357 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32726 .unused,36358 .unused,
...@@ -32746,7 +36378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32746,7 +36378,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32746 .{ .src = .{ .to_mut_sse, .none, .none } },36378 .{ .src = .{ .to_mut_sse, .none, .none } },
32747 },36379 },
32748 .extra_temps = .{36380 .extra_temps = .{
32749 .{ .type = .vector_16_u8, .kind = .forward_bits },36381 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32750 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36382 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32751 .unused,36383 .unused,
32752 .unused,36384 .unused,
...@@ -32773,7 +36405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32773,7 +36405,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32773 },36405 },
32774 .extra_temps = .{36406 .extra_temps = .{
32775 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36407 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
32776 .{ .type = .vector_16_u8, .kind = .reverse_bits },36408 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32777 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36409 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32778 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36410 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32779 .unused,36411 .unused,
...@@ -32802,7 +36434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32802,7 +36434,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32802 },36434 },
32803 .extra_temps = .{36435 .extra_temps = .{
32804 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36436 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
32805 .{ .type = .vector_16_u8, .kind = .reverse_bits },36437 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32806 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36438 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32807 .unused,36439 .unused,
32808 .unused,36440 .unused,
...@@ -32871,7 +36503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32871,7 +36503,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32871 .{ .src = .{ .to_sse, .none, .none } },36503 .{ .src = .{ .to_sse, .none, .none } },
32872 },36504 },
32873 .extra_temps = .{36505 .extra_temps = .{
32874 .{ .type = .vector_16_u8, .kind = .forward_bits },36506 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32875 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36507 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
32876 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36508 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32877 .unused,36509 .unused,
...@@ -32898,7 +36530,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32898,7 +36530,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32898 .{ .src = .{ .to_mut_sse, .none, .none } },36530 .{ .src = .{ .to_mut_sse, .none, .none } },
32899 },36531 },
32900 .extra_temps = .{36532 .extra_temps = .{
32901 .{ .type = .vector_16_u8, .kind = .forward_bits },36533 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32902 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36534 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
32903 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36535 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32904 .unused,36536 .unused,
...@@ -32925,7 +36557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32925,7 +36557,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32925 .{ .src = .{ .to_mut_sse, .none, .none } },36557 .{ .src = .{ .to_mut_sse, .none, .none } },
32926 },36558 },
32927 .extra_temps = .{36559 .extra_temps = .{
32928 .{ .type = .vector_16_u8, .kind = .forward_bits },36560 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
32929 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36561 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
32930 .unused,36562 .unused,
32931 .unused,36563 .unused,
...@@ -32953,7 +36585,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32953,7 +36585,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32953 },36585 },
32954 .extra_temps = .{36586 .extra_temps = .{
32955 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36587 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
32956 .{ .type = .vector_16_u8, .kind = .reverse_bits },36588 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32957 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36589 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
32958 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36590 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32959 .unused,36591 .unused,
...@@ -32984,7 +36616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -32984,7 +36616,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
32984 },36616 },
32985 .extra_temps = .{36617 .extra_temps = .{
32986 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36618 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
32987 .{ .type = .vector_16_u8, .kind = .reverse_bits },36619 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
32988 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36620 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
32989 .unused,36621 .unused,
32990 .unused,36622 .unused,
...@@ -33056,7 +36688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33056,7 +36688,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33056 .{ .src = .{ .to_sse, .none, .none } },36688 .{ .src = .{ .to_sse, .none, .none } },
33057 },36689 },
33058 .extra_temps = .{36690 .extra_temps = .{
33059 .{ .type = .vector_16_u8, .kind = .forward_bits },36691 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33060 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36692 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
33061 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36693 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33062 .unused,36694 .unused,
...@@ -33083,7 +36715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33083,7 +36715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33083 .{ .src = .{ .to_mut_sse, .none, .none } },36715 .{ .src = .{ .to_mut_sse, .none, .none } },
33084 },36716 },
33085 .extra_temps = .{36717 .extra_temps = .{
33086 .{ .type = .vector_16_u8, .kind = .forward_bits },36718 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33087 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },36719 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } },
33088 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36720 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33089 .unused,36721 .unused,
...@@ -33110,7 +36742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33110,7 +36742,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33110 .{ .src = .{ .to_mut_sse, .none, .none } },36742 .{ .src = .{ .to_mut_sse, .none, .none } },
33111 },36743 },
33112 .extra_temps = .{36744 .extra_temps = .{
33113 .{ .type = .vector_16_u8, .kind = .forward_bits },36745 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33114 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36746 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33115 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36747 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
33116 .unused,36748 .unused,
...@@ -33139,7 +36771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33139,7 +36771,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33139 },36771 },
33140 .extra_temps = .{36772 .extra_temps = .{
33141 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36773 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
33142 .{ .type = .vector_16_u8, .kind = .reverse_bits },36774 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
33143 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36775 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
33144 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36776 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
33145 .unused,36777 .unused,
...@@ -33170,7 +36802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33170,7 +36802,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33170 },36802 },
33171 .extra_temps = .{36803 .extra_temps = .{
33172 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },36804 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } },
33173 .{ .type = .vector_16_u8, .kind = .reverse_bits },36805 .{ .type = .vector_16_u8, .kind = .reverse_bits_mem },
33174 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },36806 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
33175 .unused,36807 .unused,
33176 .unused,36808 .unused,
...@@ -33242,7 +36874,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33242,7 +36874,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33242 .{ .src = .{ .to_sse, .none, .none } },36874 .{ .src = .{ .to_sse, .none, .none } },
33243 },36875 },
33244 .extra_temps = .{36876 .extra_temps = .{
33245 .{ .type = .vector_16_u8, .kind = .forward_bits },36877 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33246 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },36878 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33247 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36879 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33248 .unused,36880 .unused,
...@@ -33268,7 +36900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33268,7 +36900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33268 .{ .src = .{ .to_mut_sse, .none, .none } },36900 .{ .src = .{ .to_mut_sse, .none, .none } },
33269 },36901 },
33270 .extra_temps = .{36902 .extra_temps = .{
33271 .{ .type = .vector_16_u8, .kind = .forward_bits },36903 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33272 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },36904 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33273 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36905 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33274 .unused,36906 .unused,
...@@ -33294,7 +36926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33294,7 +36926,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33294 .{ .src = .{ .to_mut_sse, .none, .none } },36926 .{ .src = .{ .to_mut_sse, .none, .none } },
33295 },36927 },
33296 .extra_temps = .{36928 .extra_temps = .{
33297 .{ .type = .vector_16_u8, .kind = .forward_bits },36929 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33298 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },36930 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33299 .unused,36931 .unused,
33300 .unused,36932 .unused,
...@@ -33322,7 +36954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33322,7 +36954,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33322 },36954 },
33323 .extra_temps = .{36955 .extra_temps = .{
33324 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },36956 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
33325 .{ .type = .vector_32_u8, .kind = .reverse_bits },36957 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },
33326 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },36958 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
33327 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },36959 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
33328 .unused,36960 .unused,
...@@ -33392,7 +37024,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33392,7 +37024,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33392 .{ .src = .{ .to_sse, .none, .none } },37024 .{ .src = .{ .to_sse, .none, .none } },
33393 },37025 },
33394 .extra_temps = .{37026 .extra_temps = .{
33395 .{ .type = .vector_16_u8, .kind = .forward_bits },37027 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33396 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },37028 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33397 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37029 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33398 .unused,37030 .unused,
...@@ -33419,7 +37051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33419,7 +37051,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33419 .{ .src = .{ .to_mut_sse, .none, .none } },37051 .{ .src = .{ .to_mut_sse, .none, .none } },
33420 },37052 },
33421 .extra_temps = .{37053 .extra_temps = .{
33422 .{ .type = .vector_16_u8, .kind = .forward_bits },37054 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33423 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },37055 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33424 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37056 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33425 .unused,37057 .unused,
...@@ -33446,7 +37078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33446,7 +37078,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33446 .{ .src = .{ .to_mut_sse, .none, .none } },37078 .{ .src = .{ .to_mut_sse, .none, .none } },
33447 },37079 },
33448 .extra_temps = .{37080 .extra_temps = .{
33449 .{ .type = .vector_16_u8, .kind = .forward_bits },37081 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33450 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37082 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33451 .unused,37083 .unused,
33452 .unused,37084 .unused,
...@@ -33475,7 +37107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33475,7 +37107,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33475 },37107 },
33476 .extra_temps = .{37108 .extra_temps = .{
33477 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },37109 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
33478 .{ .type = .vector_32_u8, .kind = .reverse_bits },37110 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },
33479 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },37111 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
33480 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37112 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
33481 .unused,37113 .unused,
...@@ -33548,7 +37180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33548,7 +37180,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33548 .{ .src = .{ .to_sse, .none, .none } },37180 .{ .src = .{ .to_sse, .none, .none } },
33549 },37181 },
33550 .extra_temps = .{37182 .extra_temps = .{
33551 .{ .type = .vector_16_u8, .kind = .forward_bits },37183 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33552 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },37184 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33553 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37185 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33554 .unused,37186 .unused,
...@@ -33575,7 +37207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33575,7 +37207,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33575 .{ .src = .{ .to_mut_sse, .none, .none } },37207 .{ .src = .{ .to_mut_sse, .none, .none } },
33576 },37208 },
33577 .extra_temps = .{37209 .extra_temps = .{
33578 .{ .type = .vector_16_u8, .kind = .forward_bits },37210 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33579 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },37211 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } },
33580 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37212 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33581 .unused,37213 .unused,
...@@ -33602,7 +37234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33602,7 +37234,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33602 .{ .src = .{ .to_mut_sse, .none, .none } },37234 .{ .src = .{ .to_mut_sse, .none, .none } },
33603 },37235 },
33604 .extra_temps = .{37236 .extra_temps = .{
33605 .{ .type = .vector_16_u8, .kind = .forward_bits },37237 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33606 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37238 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33607 .unused,37239 .unused,
33608 .unused,37240 .unused,
...@@ -33631,7 +37263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33631,7 +37263,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33631 },37263 },
33632 .extra_temps = .{37264 .extra_temps = .{
33633 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },37265 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } },
33634 .{ .type = .vector_32_u8, .kind = .reverse_bits },37266 .{ .type = .vector_32_u8, .kind = .reverse_bits_mem },
33635 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },37267 .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
33636 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37268 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
33637 .unused,37269 .unused,
...@@ -33704,7 +37336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33704,7 +37336,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33704 .{ .src = .{ .to_sse, .none, .none } },37336 .{ .src = .{ .to_sse, .none, .none } },
33705 },37337 },
33706 .extra_temps = .{37338 .extra_temps = .{
33707 .{ .type = .vector_16_u8, .kind = .forward_bits },37339 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33708 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },37340 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
33709 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37341 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33710 .unused,37342 .unused,
...@@ -33730,7 +37362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33730,7 +37362,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33730 .{ .src = .{ .to_mut_sse, .none, .none } },37362 .{ .src = .{ .to_mut_sse, .none, .none } },
33731 },37363 },
33732 .extra_temps = .{37364 .extra_temps = .{
33733 .{ .type = .vector_16_u8, .kind = .forward_bits },37365 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33734 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },37366 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
33735 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37367 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33736 .unused,37368 .unused,
...@@ -33756,7 +37388,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33756,7 +37388,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33756 .{ .src = .{ .to_mut_sse, .none, .none } },37388 .{ .src = .{ .to_mut_sse, .none, .none } },
33757 },37389 },
33758 .extra_temps = .{37390 .extra_temps = .{
33759 .{ .type = .vector_16_u8, .kind = .forward_bits },37391 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33760 .unused,37392 .unused,
33761 .unused,37393 .unused,
33762 .unused,37394 .unused,
...@@ -33827,7 +37459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33827,7 +37459,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33827 .{ .src = .{ .to_sse, .none, .none } },37459 .{ .src = .{ .to_sse, .none, .none } },
33828 },37460 },
33829 .extra_temps = .{37461 .extra_temps = .{
33830 .{ .type = .vector_16_u8, .kind = .forward_bits },37462 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33831 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },37463 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
33832 .unused,37464 .unused,
33833 .unused,37465 .unused,
...@@ -33855,7 +37487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33855,7 +37487,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33855 .{ .src = .{ .to_mut_sse, .none, .none } },37487 .{ .src = .{ .to_mut_sse, .none, .none } },
33856 },37488 },
33857 .extra_temps = .{37489 .extra_temps = .{
33858 .{ .type = .vector_16_u8, .kind = .forward_bits },37490 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33859 .unused,37491 .unused,
33860 .unused,37492 .unused,
33861 .unused,37493 .unused,
...@@ -33929,7 +37561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33929,7 +37561,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33929 .{ .src = .{ .to_sse, .none, .none } },37561 .{ .src = .{ .to_sse, .none, .none } },
33930 },37562 },
33931 .extra_temps = .{37563 .extra_temps = .{
33932 .{ .type = .vector_16_u8, .kind = .forward_bits },37564 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33933 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },37565 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
33934 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37566 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33935 .unused,37567 .unused,
...@@ -33956,7 +37588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33956,7 +37588,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33956 .{ .src = .{ .to_mut_sse, .none, .none } },37588 .{ .src = .{ .to_mut_sse, .none, .none } },
33957 },37589 },
33958 .extra_temps = .{37590 .extra_temps = .{
33959 .{ .type = .vector_16_u8, .kind = .forward_bits },37591 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33960 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },37592 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } },
33961 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37593 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
33962 .unused,37594 .unused,
...@@ -33983,7 +37615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -33983,7 +37615,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
33983 .{ .src = .{ .to_mut_sse, .none, .none } },37615 .{ .src = .{ .to_mut_sse, .none, .none } },
33984 },37616 },
33985 .extra_temps = .{37617 .extra_temps = .{
33986 .{ .type = .vector_16_u8, .kind = .forward_bits },37618 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
33987 .unused,37619 .unused,
33988 .unused,37620 .unused,
33989 .unused,37621 .unused,
...@@ -34057,7 +37689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34057,7 +37689,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34057 .{ .src = .{ .to_sse, .none, .none } },37689 .{ .src = .{ .to_sse, .none, .none } },
34058 },37690 },
34059 .extra_temps = .{37691 .extra_temps = .{
34060 .{ .type = .vector_16_u8, .kind = .forward_bits },37692 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34061 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37693 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34062 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37694 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34063 .unused,37695 .unused,
...@@ -34083,7 +37715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34083,7 +37715,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34083 .{ .src = .{ .to_mut_sse, .none, .none } },37715 .{ .src = .{ .to_mut_sse, .none, .none } },
34084 },37716 },
34085 .extra_temps = .{37717 .extra_temps = .{
34086 .{ .type = .vector_16_u8, .kind = .forward_bits },37718 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34087 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37719 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34088 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37720 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34089 .unused,37721 .unused,
...@@ -34109,7 +37741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34109,7 +37741,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34109 .{ .src = .{ .to_sse, .none, .none } },37741 .{ .src = .{ .to_sse, .none, .none } },
34110 },37742 },
34111 .extra_temps = .{37743 .extra_temps = .{
34112 .{ .type = .vector_16_u8, .kind = .forward_bits },37744 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34113 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37745 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34114 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37746 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34115 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },37747 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
...@@ -34142,7 +37774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34142,7 +37774,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34142 .{ .src = .{ .to_mut_sse, .none, .none } },37774 .{ .src = .{ .to_mut_sse, .none, .none } },
34143 },37775 },
34144 .extra_temps = .{37776 .extra_temps = .{
34145 .{ .type = .vector_16_u8, .kind = .forward_bits },37777 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34146 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37778 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34147 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37779 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34148 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },37780 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -34175,7 +37807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34175,7 +37807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34175 .{ .src = .{ .to_sse, .none, .none } },37807 .{ .src = .{ .to_sse, .none, .none } },
34176 },37808 },
34177 .extra_temps = .{37809 .extra_temps = .{
34178 .{ .type = .vector_16_u8, .kind = .forward_bits },37810 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34179 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37811 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34180 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37812 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34181 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },37813 .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } },
...@@ -34208,7 +37840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34208,7 +37840,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34208 .{ .src = .{ .to_mut_sse, .none, .none } },37840 .{ .src = .{ .to_mut_sse, .none, .none } },
34209 },37841 },
34210 .extra_temps = .{37842 .extra_temps = .{
34211 .{ .type = .vector_16_u8, .kind = .forward_bits },37843 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34212 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },37844 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34213 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37845 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34214 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },37846 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
...@@ -34241,7 +37873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34241,7 +37873,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34241 .{ .src = .{ .to_sse, .none, .none } },37873 .{ .src = .{ .to_sse, .none, .none } },
34242 },37874 },
34243 .extra_temps = .{37875 .extra_temps = .{
34244 .{ .type = .vector_32_u8, .kind = .forward_bits },37876 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },
34245 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },37877 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
34246 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37878 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34247 .unused,37879 .unused,
...@@ -34268,7 +37900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34268,7 +37900,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34268 .{ .src = .{ .to_sse, .none, .none } },37900 .{ .src = .{ .to_sse, .none, .none } },
34269 },37901 },
34270 .extra_temps = .{37902 .extra_temps = .{
34271 .{ .type = .vector_32_u8, .kind = .forward_bits },37903 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },
34272 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },37904 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
34273 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37905 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34274 .unused,37906 .unused,
...@@ -34297,7 +37929,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34297,7 +37929,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34297 .extra_temps = .{37929 .extra_temps = .{
34298 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37930 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34299 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },37931 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
34300 .{ .type = .vector_32_u8, .kind = .forward_bits },37932 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },
34301 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },37933 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
34302 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37934 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
34303 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37935 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
...@@ -34333,7 +37965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34333,7 +37965,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34333 .extra_temps = .{37965 .extra_temps = .{
34334 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },37966 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34335 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },37967 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
34336 .{ .type = .vector_32_u8, .kind = .forward_bits },37968 .{ .type = .vector_32_u8, .kind = .forward_bits_mem },
34337 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },37969 .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } },
34338 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37970 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
34339 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },37971 .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } },
...@@ -34369,7 +38001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {...@@ -34369,7 +38001,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
34369 .extra_temps = .{38001 .extra_temps = .{
34370 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },38002 .{ .type = .usize, .kind = .{ .rc = .general_purpose } },
34371 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },38003 .{ .type = .isize, .kind = .{ .rc = .general_purpose } },
34372 .{ .type = .vector_16_u8, .kind = .forward_bits },38004 .{ .type = .vector_16_u8, .kind = .forward_bits_mem },
34373 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },38005 .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } },
34374 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },38006 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
34375 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },38007 .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } },
...@@ -82648,7 +86280,7 @@ fn regClassForType(self: *CodeGen, ty: Type) Register.Class {...@@ -82648,7 +86280,7 @@ fn regClassForType(self: *CodeGen, ty: Type) Register.Class {
82648fn regSetForRegClass(rc: Register.Class) RegisterManager.RegisterBitSet {86280fn regSetForRegClass(rc: Register.Class) RegisterManager.RegisterBitSet {
82649 return switch (rc) {86281 return switch (rc) {
82650 .general_purpose => abi.RegisterClass.gp,86282 .general_purpose => abi.RegisterClass.gp,
82651 .segment, .ip, .cr, .dr => unreachable,86283 .gphi, .segment, .ip, .cr, .dr => unreachable,
82652 .x87 => abi.RegisterClass.x87,86284 .x87 => abi.RegisterClass.x87,
82653 .mmx => @panic("TODO"),86285 .mmx => @panic("TODO"),
82654 .sse => abi.RegisterClass.sse,86286 .sse => abi.RegisterClass.sse,
...@@ -95072,7 +98704,7 @@ fn moveStrategy(cg: *CodeGen, ty: Type, class: Register.Class, aligned: bool) !M...@@ -95072,7 +98704,7 @@ fn moveStrategy(cg: *CodeGen, ty: Type, class: Register.Class, aligned: bool) !M
95072 const pt = cg.pt;98704 const pt = cg.pt;
95073 const zcu = pt.zcu;98705 const zcu = pt.zcu;
95074 switch (class) {98706 switch (class) {
95075 .general_purpose, .segment => return .{ .load_store = .{ ._, .mov } },98707 .general_purpose, .gphi, .segment => return .{ .load_store = .{ ._, .mov } },
95076 .x87 => return .load_store_x87,98708 .x87 => return .load_store_x87,
95077 .mmx => {},98709 .mmx => {},
95078 .sse => switch (ty.zigTypeTag(zcu)) {98710 .sse => switch (ty.zigTypeTag(zcu)) {
...@@ -95548,7 +99180,7 @@ fn genSetReg(...@@ -95548,7 +99180,7 @@ fn genSetReg(
95548 .reserved_frame,99180 .reserved_frame,
95549 => unreachable,99181 => unreachable,
95550 .undef => if (opts.safety) switch (dst_reg.class()) {99182 .undef => if (opts.safety) switch (dst_reg.class()) {
95551 .general_purpose => switch (abi_size) {99183 .general_purpose, .gphi => switch (abi_size) {
95552 1 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to8(), .u(0xaa)),99184 1 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to8(), .u(0xaa)),
95553 2 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to16(), .u(0xaaaa)),99185 2 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to16(), .u(0xaaaa)),
95554 3...4 => try self.asmRegisterImmediate(99186 3...4 => try self.asmRegisterImmediate(
...@@ -95605,8 +99237,8 @@ fn genSetReg(...@@ -95605,8 +99237,8 @@ fn genSetReg(
95605 }99237 }
95606 },99238 },
95607 .register => |src_reg| if (dst_reg.id() != src_reg.id()) switch (dst_reg.class()) {99239 .register => |src_reg| if (dst_reg.id() != src_reg.id()) switch (dst_reg.class()) {
95608 .general_purpose => switch (src_reg.class()) {99240 .general_purpose, .gphi => switch (src_reg.class()) {
95609 .general_purpose => try self.asmRegisterRegister(99241 .general_purpose, .gphi => try self.asmRegisterRegister(
95610 .{ ._, .mov },99242 .{ ._, .mov },
95611 dst_alias,99243 dst_alias,
95612 registerAlias(src_reg, abi_size),99244 registerAlias(src_reg, abi_size),
...@@ -95650,13 +99282,13 @@ fn genSetReg(...@@ -95650,13 +99282,13 @@ fn genSetReg(
95650 .{ ._, .mov },99282 .{ ._, .mov },
95651 dst_reg,99283 dst_reg,
95652 switch (src_reg.class()) {99284 switch (src_reg.class()) {
95653 .general_purpose, .segment => registerAlias(src_reg, abi_size),99285 .general_purpose, .gphi, .segment => registerAlias(src_reg, abi_size),
95654 .x87, .mmx, .ip, .cr, .dr => unreachable,99286 .x87, .mmx, .ip, .cr, .dr => unreachable,
95655 .sse => try self.copyToTmpRegister(ty, src_mcv),99287 .sse => try self.copyToTmpRegister(ty, src_mcv),
95656 },99288 },
95657 ),99289 ),
95658 .x87 => switch (src_reg.class()) {99290 .x87 => switch (src_reg.class()) {
95659 .general_purpose, .segment => unreachable,99291 .general_purpose, .gphi, .segment => unreachable,
95660 .x87 => switch (src_reg) {99292 .x87 => switch (src_reg) {
95661 .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg),99293 .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg),
95662 .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) {99294 .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) {
...@@ -95685,7 +99317,7 @@ fn genSetReg(...@@ -95685,7 +99317,7 @@ fn genSetReg(
95685 },99317 },
95686 .mmx => unreachable,99318 .mmx => unreachable,
95687 .sse => switch (src_reg.class()) {99319 .sse => switch (src_reg.class()) {
95688 .general_purpose => if (self.hasFeature(.sse2)) try self.asmRegisterRegister(99320 .general_purpose, .gphi => if (self.hasFeature(.sse2)) try self.asmRegisterRegister(
95689 switch (abi_size) {99321 switch (abi_size) {
95690 1...4 => if (self.hasFeature(.avx)) .{ .v_d, .mov } else .{ ._d, .mov },99322 1...4 => if (self.hasFeature(.avx)) .{ .v_d, .mov } else .{ ._d, .mov },
95691 5...8 => if (self.hasFeature(.avx)) .{ .v_q, .mov } else .{ ._q, .mov },99323 5...8 => if (self.hasFeature(.avx)) .{ .v_q, .mov } else .{ ._q, .mov },
...@@ -95911,7 +99543,7 @@ fn genSetReg(...@@ -95911,7 +99543,7 @@ fn genSetReg(
95911 } },99543 } },
95912 }),99544 }),
95913 .load_symbol => |sym_off| switch (dst_reg.class()) {99545 .load_symbol => |sym_off| switch (dst_reg.class()) {
95914 .general_purpose => {99546 .general_purpose, .gphi => {
95915 assert(sym_off.off == 0);99547 assert(sym_off.off == 0);
95916 try self.asmRegisterMemory(.{ ._, .mov }, dst_alias, .{99548 try self.asmRegisterMemory(.{ ._, .mov }, dst_alias, .{
95917 .base = .{ .reloc = sym_off.sym_index },99549 .base = .{ .reloc = sym_off.sym_index },
...@@ -95926,7 +99558,7 @@ fn genSetReg(...@@ -95926,7 +99558,7 @@ fn genSetReg(
95926 .x87, .sse => {},99558 .x87, .sse => {},
95927 },99559 },
95928 .load_direct => |sym_index| switch (dst_reg.class()) {99560 .load_direct => |sym_index| switch (dst_reg.class()) {
95929 .general_purpose => {99561 .general_purpose, .gphi => {
95930 _ = try self.addInst(.{99562 _ = try self.addInst(.{
95931 .tag = .mov,99563 .tag = .mov,
95932 .ops = .direct_reloc,99564 .ops = .direct_reloc,
...@@ -96090,7 +99722,7 @@ fn genSetMem(...@@ -96090,7 +99722,7 @@ fn genSetMem(
96090 };99722 };
96091 const src_alias = registerAlias(src_reg, abi_size);99723 const src_alias = registerAlias(src_reg, abi_size);
96092 const src_size: u32 = @intCast(switch (src_alias.class()) {99724 const src_size: u32 = @intCast(switch (src_alias.class()) {
96093 .general_purpose, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8),99725 .general_purpose, .gphi, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8),
96094 .mmx, .sse => abi_size,99726 .mmx, .sse => abi_size,
96095 });99727 });
96096 const src_align: InternPool.Alignment = .fromNonzeroByteUnits(99728 const src_align: InternPool.Alignment = .fromNonzeroByteUnits(
...@@ -100398,7 +104030,7 @@ fn resolveCallingConventionValues(...@@ -100398,7 +104030,7 @@ fn resolveCallingConventionValues(
100398 const ret_gpr = abi.getCAbiIntReturnRegs(cc);104030 const ret_gpr = abi.getCAbiIntReturnRegs(cc);
100399 const ret_size: u31 = @intCast(ret_ty.abiSize(zcu));104031 const ret_size: u31 = @intCast(ret_ty.abiSize(zcu));
100400 if (abi.zigcc.return_in_regs) switch (self.regClassForType(ret_ty)) {104032 if (abi.zigcc.return_in_regs) switch (self.regClassForType(ret_ty)) {
100401 .general_purpose => if (ret_size <= @as(u4, switch (self.target.cpu.arch) {104033 .general_purpose, .gphi => if (ret_size <= @as(u4, switch (self.target.cpu.arch) {
100402 else => unreachable,104034 else => unreachable,
100403 .x86 => 4,104035 .x86 => 4,
100404 .x86_64 => 8,104036 .x86_64 => 8,
...@@ -100428,7 +104060,7 @@ fn resolveCallingConventionValues(...@@ -100428,7 +104060,7 @@ fn resolveCallingConventionValues(
100428 }104060 }
100429 const param_size: u31 = @intCast(param_ty.abiSize(zcu));104061 const param_size: u31 = @intCast(param_ty.abiSize(zcu));
100430 if (abi.zigcc.params_in_regs) switch (self.regClassForType(param_ty)) {104062 if (abi.zigcc.params_in_regs) switch (self.regClassForType(param_ty)) {
100431 .general_purpose => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (self.target.cpu.arch) {104063 .general_purpose, .gphi => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (self.target.cpu.arch) {
100432 else => unreachable,104064 else => unreachable,
100433 .x86 => 4,104065 .x86 => 4,
100434 .x86_64 => 8,104066 .x86_64 => 8,
...@@ -100501,10 +104133,9 @@ fn parseRegName(name: []const u8) ?Register {...@@ -100501,10 +104133,9 @@ fn parseRegName(name: []const u8) ?Register {
100501104133
100502/// Returns register wide enough to hold at least `size_bytes`.104134/// Returns register wide enough to hold at least `size_bytes`.
100503fn registerAlias(reg: Register, size_bytes: u32) Register {104135fn registerAlias(reg: Register, size_bytes: u32) Register {
104136 if (size_bytes == 0) unreachable; // should be comptime-known
100504 return switch (reg.class()) {104137 return switch (reg.class()) {
100505 .general_purpose => if (size_bytes == 0)104138 .general_purpose => if (size_bytes <= 1)
100506 unreachable // should be comptime-known
100507 else if (size_bytes <= 1)
100508 reg.to8()104139 reg.to8()
100509 else if (size_bytes <= 2)104140 else if (size_bytes <= 2)
100510 reg.to16()104141 reg.to16()
...@@ -100514,6 +104145,16 @@ fn registerAlias(reg: Register, size_bytes: u32) Register {...@@ -100514,6 +104145,16 @@ fn registerAlias(reg: Register, size_bytes: u32) Register {
100514 reg.to64()104145 reg.to64()
100515 else104146 else
100516 unreachable,104147 unreachable,
104148 .gphi => if (size_bytes <= 1)
104149 reg
104150 else if (size_bytes <= 2)
104151 reg.to16()
104152 else if (size_bytes <= 4)
104153 reg.to32()
104154 else if (size_bytes <= 8)
104155 reg.to64()
104156 else
104157 unreachable,
100517 .segment => if (size_bytes <= 2)104158 .segment => if (size_bytes <= 2)
100518 reg104159 reg
100519 else104160 else
...@@ -101809,10 +105450,19 @@ const Temp = struct {...@@ -101809,10 +105450,19 @@ const Temp = struct {
101809 .dst_temps = .{ .{ .ref = .src0 }, .unused },105450 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101810 .each = .{ .once = &.{} },105451 .each = .{ .once = &.{} },
101811 }, .{105452 }, .{
101812 .required_features = .{ .fast_imm16, null, null, null },
101813 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },105453 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
101814 .patterns = &.{105454 .patterns = &.{
101815 .{ .src = .{ .mut_mem, .none, .none } },105455 .{ .src = .{ .mut_mem, .none, .none } },
105456 },
105457 .dst_temps = .{ .{ .ref = .src0 }, .unused },
105458 .clobbers = .{ .eflags = true },
105459 .each = .{ .once = &.{
105460 .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ },
105461 } },
105462 }, .{
105463 .required_features = .{ .fast_imm16, null, null, null },
105464 .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any },
105465 .patterns = &.{
101816 .{ .src = .{ .to_mut_gpr, .none, .none } },105466 .{ .src = .{ .to_mut_gpr, .none, .none } },
101817 },105467 },
101818 .dst_temps = .{ .{ .ref = .src0 }, .unused },105468 .dst_temps = .{ .{ .ref = .src0 }, .unused },
...@@ -101875,6 +105525,7 @@ const Temp = struct {...@@ -101875,6 +105525,7 @@ const Temp = struct {
101875 .required_features = .{ .@"64bit", .bmi2, null, null },105525 .required_features = .{ .@"64bit", .bmi2, null, null },
101876 .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },105526 .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any },
101877 .patterns = &.{105527 .patterns = &.{
105528 .{ .src = .{ .mem, .none, .none } },
101878 .{ .src = .{ .to_gpr, .none, .none } },105529 .{ .src = .{ .to_gpr, .none, .none } },
101879 },105530 },
101880 .extra_temps = .{105531 .extra_temps = .{
...@@ -101903,6 +105554,19 @@ const Temp = struct {...@@ -101903,6 +105554,19 @@ const Temp = struct {
101903 .{ .src = .{ .mut_mem, .none, .none } },105554 .{ .src = .{ .mut_mem, .none, .none } },
101904 .{ .src = .{ .to_mut_gpr, .none, .none } },105555 .{ .src = .{ .to_mut_gpr, .none, .none } },
101905 },105556 },
105557 .extra_temps = .{
105558 .{ .type = .u64, .kind = .{ .rc = .general_purpose } },
105559 .unused,
105560 .unused,
105561 .unused,
105562 .unused,
105563 .unused,
105564 .unused,
105565 .unused,
105566 .unused,
105567 .unused,
105568 .unused,
105569 },
101906 .dst_temps = .{ .{ .ref = .src0 }, .unused },105570 .dst_temps = .{ .{ .ref = .src0 }, .unused },
101907 .clobbers = .{ .eflags = true },105571 .clobbers = .{ .eflags = true },
101908 .each = .{ .once = &.{105572 .each = .{ .once = &.{
...@@ -105934,7 +109598,7 @@ const Temp = struct {...@@ -105934,7 +109598,7 @@ const Temp = struct {
105934 ) InnerError!void {109598 ) InnerError!void {
105935 const tomb_bits = cg.liveness.getTombBits(inst);109599 const tomb_bits = cg.liveness.getTombBits(inst);
105936 for (0.., op_refs, op_temps) |op_index, op_ref, op_temp| {109600 for (0.., op_refs, op_temps) |op_index, op_ref, op_temp| {
105937 if (op_temp.index != temp.index) try op_temp.die(cg);109601 if (op_temp.index != temp.index and op_temp.tracking(cg).short != .dead) try op_temp.die(cg);
105938 if (tomb_bits & @as(Liveness.Bpi, 1) << @intCast(op_index) == 0) continue;109602 if (tomb_bits & @as(Liveness.Bpi, 1) << @intCast(op_index) == 0) continue;
105939 if (cg.reused_operands.isSet(op_index)) continue;109603 if (cg.reused_operands.isSet(op_index)) continue;
105940 try cg.processDeath(op_ref.toIndexAllowNone() orelse continue);109604 try cg.processDeath(op_ref.toIndexAllowNone() orelse continue);
...@@ -106845,10 +110509,11 @@ const Select = struct {...@@ -106845,10 +110509,11 @@ const Select = struct {
106845 f64_0x1p52_0x1p84_mem,110509 f64_0x1p52_0x1p84_mem,
106846 u32_0x1p52_hi_0x1p84_hi_0_0_mem,110510 u32_0x1p52_hi_0x1p84_hi_0_0_mem,
106847 f32_0_0x1p64_mem,110511 f32_0_0x1p64_mem,
106848 pshufb_trunc_mem: struct { from: Memory.Size, to: Memory.Size },110512 pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size },
110513 pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size },
106849 pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },110514 pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 },
106850 forward_bits,110515 forward_bits_mem,
106851 reverse_bits,110516 reverse_bits_mem,
106852 frame: FrameIndex,110517 frame: FrameIndex,
106853 lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none },110518 lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none },
106854 symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 },110519 symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 },
...@@ -107064,17 +110729,40 @@ const Select = struct {...@@ -107064,17 +110729,40 @@ const Select = struct {
107064 const zcu = pt.zcu;110729 const zcu = pt.zcu;
107065 assert(spec.type.isVector(zcu));110730 assert(spec.type.isVector(zcu));
107066 assert(spec.type.childType(zcu).toIntern() == .u8_type);110731 assert(spec.type.childType(zcu).toIntern() == .u8_type);
107067 var bytes: [16]u8 = @splat(1 << 7);110732 var elem_buf: [32]u8 = @splat(1 << 7);
110733 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
110734 const of_bytes: u32 = @intCast(switch (trunc_spec.of) {
110735 .none => elems.len,
110736 else => |of| @divExact(of.bitSize(cg.target), 8),
110737 });
107068 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));110738 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
107069 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));110739 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
107070 var from_index: u32 = 0;110740 var from_index: u32 = 0;
107071 var to_index: u32 = 0;110741 var to_index: u32 = 0;
107072 while (from_index < bytes.len) {110742 while (from_index < of_bytes) : ({
107073 for (0..to_bytes) |byte_off| bytes[to_index + byte_off] = @intCast(from_index + byte_off);
107074 from_index += from_bytes;110743 from_index += from_bytes;
107075 to_index += to_bytes;110744 switch (from_index % 16) {
107076 }110745 0 => to_index = from_index,
107077 const elems = bytes[0..spec.type.vectorLen(zcu)];110746 else => to_index += to_bytes,
110747 }
110748 }) for (0..to_bytes) |byte_off| {
110749 elems[to_index + byte_off] = @as(u4, @truncate(from_index + byte_off));
110750 };
110751 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
110752 .ty = spec.type.toIntern(),
110753 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
110754 } }))), true };
110755 },
110756 .pand_trunc_mem => |trunc_spec| {
110757 const zcu = pt.zcu;
110758 assert(spec.type.isVector(zcu));
110759 assert(spec.type.childType(zcu).toIntern() == .u8_type);
110760 var elem_buf: [32]u8 = @splat(0);
110761 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
110762 const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8));
110763 const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8));
110764 var index: u32 = 0;
110765 while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8));
107078 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{110766 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
107079 .ty = spec.type.toIntern(),110767 .ty = spec.type.toIntern(),
107080 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },110768 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
...@@ -107084,20 +110772,20 @@ const Select = struct {...@@ -107084,20 +110772,20 @@ const Select = struct {
107084 const zcu = pt.zcu;110772 const zcu = pt.zcu;
107085 assert(spec.type.isVector(zcu));110773 assert(spec.type.isVector(zcu));
107086 assert(spec.type.childType(zcu).toIntern() == .u8_type);110774 assert(spec.type.childType(zcu).toIntern() == .u8_type);
107087 var bytes: [32]u8 = @splat(1 << 7);110775 var elem_buf: [32]u8 = @splat(1 << 7);
110776 const elems = elem_buf[0..spec.type.vectorLen(zcu)];
107088 const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8));110777 const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8));
107089 var to_index: u32 = 0;110778 var to_index: u32 = 0;
107090 for (0..bswap_spec.repeat) |_| for (0..len) |from_index| {110779 for (0..bswap_spec.repeat) |_| for (0..len) |from_index| {
107091 @memset(bytes[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index));110780 @memset(elems[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index));
107092 to_index += bswap_spec.smear;110781 to_index += bswap_spec.smear;
107093 };110782 };
107094 const elems = bytes[0..spec.type.vectorLen(zcu)];
107095 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{110783 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
107096 .ty = spec.type.toIntern(),110784 .ty = spec.type.toIntern(),
107097 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },110785 .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) },
107098 } }))), true };110786 } }))), true };
107099 },110787 },
107100 .forward_bits, .reverse_bits => {110788 .forward_bits_mem, .reverse_bits_mem => {
107101 const zcu = pt.zcu;110789 const zcu = pt.zcu;
107102 assert(spec.type.isVector(zcu));110790 assert(spec.type.isVector(zcu));
107103 assert(spec.type.childType(zcu).toIntern() == .u8_type);110791 assert(spec.type.childType(zcu).toIntern() == .u8_type);
...@@ -107105,8 +110793,8 @@ const Select = struct {...@@ -107105,8 +110793,8 @@ const Select = struct {
107105 const elems = bytes[0..spec.type.vectorLen(zcu)];110793 const elems = bytes[0..spec.type.vectorLen(zcu)];
107106 for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) {110794 for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) {
107107 else => unreachable,110795 else => unreachable,
107108 .forward_bits => @as(u8, 1 << 0) << @truncate(index),110796 .forward_bits_mem => @as(u8, 1 << 0) << @truncate(index),
107109 .reverse_bits => @as(u8, 1 << 7) >> @truncate(index),110797 .reverse_bits_mem => @as(u8, 1 << 7) >> @truncate(index),
107110 };110798 };
107111 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{110799 return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{
107112 .ty = spec.type.toIntern(),110800 .ty = spec.type.toIntern(),
...@@ -107482,7 +111170,10 @@ const Select = struct {...@@ -107482,7 +111170,10 @@ const Select = struct {
107482 }111170 }
107483111171
107484 fn valueOf(ref: Ref, s: *const Select) MCValue {111172 fn valueOf(ref: Ref, s: *const Select) MCValue {
107485 return s.temps[@intFromEnum(ref)].tracking(s.cg).short;111173 return switch (ref) {
111174 .none => .none,
111175 else => s.temps[@intFromEnum(ref)].tracking(s.cg).short,
111176 };
107486 }111177 }
107487 };111178 };
107488111179
...@@ -108027,42 +111718,39 @@ const Select = struct {...@@ -108027,42 +111718,39 @@ const Select = struct {
108027 .lea => .{ .mem = .{111718 .lea => .{ .mem = .{
108028 .base = switch (op.flags.base.ref.valueOf(s)) {111719 .base = switch (op.flags.base.ref.valueOf(s)) {
108029 else => unreachable,111720 else => unreachable,
111721 .none => .none,
108030 .register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },111722 .register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },
108031 .register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },111723 .register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) },
108032 .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index },111724 .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index },
108033 },111725 },
108034 .mod = .{ .rm = .{111726 .mod = .{ .rm = .{
108035 .size = op.flags.base.size,111727 .size = op.flags.base.size,
108036 .index = switch (op.flags.index.ref) {111728 .index = switch (op.flags.index.ref.valueOf(s)) {
108037 else => |index_ref| switch (index_ref.valueOf(s)) {111729 else => unreachable,
108038 else => unreachable,
108039 .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
108040 .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
108041 },
108042 .none => .none,111730 .none => .none,
111731 .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
111732 .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
108043 },111733 },
108044 .scale = op.flags.index.scale,111734 .scale = op.flags.index.scale,
108045 .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) {111735 .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) {
108046 else => unreachable,111736 else => unreachable,
108047 .register => 0,111737 .none, .register => 0,
111738 .register_offset => |base_reg_off| base_reg_off.off,
111739 .lea_symbol => |base_sym_off| base_sym_off.off,
111740 } + switch (op.flags.index.ref.valueOf(s)) {
111741 else => unreachable,
111742 .none, .register => 0,
108048 .register_offset => |base_reg_off| base_reg_off.off,111743 .register_offset => |base_reg_off| base_reg_off.off,
108049 .lea_symbol => |base_sym_off| base_sym_off.off,111744 .lea_symbol => |base_sym_off| base_sym_off.off,
108050 } + switch (op.flags.index.ref) {
108051 else => |index_ref| switch (index_ref.valueOf(s)) {
108052 else => unreachable,
108053 .register => 0,
108054 .register_offset => |base_reg_off| base_reg_off.off,
108055 .lea_symbol => |base_sym_off| base_sym_off.off,
108056 },
108057 .none => 0,
108058 },111745 },
108059 } },111746 } },
108060 } },111747 } },
108061 .mem => .{ .mem = try op.flags.base.ref.valueOf(s).mem(s.cg, .{111748 .mem => .{ .mem = try op.flags.base.ref.valueOf(s).mem(s.cg, .{
108062 .size = op.flags.base.size,111749 .size = op.flags.base.size,
108063 .index = switch (op.flags.index.ref) {111750 .index = switch (op.flags.index.ref.valueOf(s)) {
108064 else => |index_ref| registerAlias(index_ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)),111751 else => unreachable,
108065 .none => .none,111752 .none => .none,
111753 .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)),
108066 },111754 },
108067 .scale = op.flags.index.scale,111755 .scale = op.flags.index.scale,
108068 .disp = op.adjustedImm(i32, s),111756 .disp = op.adjustedImm(i32, s),
src/arch/x86_64/Encoding.zig+1
...@@ -592,6 +592,7 @@ pub const Op = enum {...@@ -592,6 +592,7 @@ pub const Op = enum {
592 else => unreachable,592 else => unreachable,
593 },593 },
594 },594 },
595 .gphi => .r8,
595 .segment => .sreg,596 .segment => .sreg,
596 .x87 => switch (reg) {597 .x87 => switch (reg) {
597 .st0 => .st0,598 .st0 => .st0,
src/arch/x86_64/Lower.zig+1-1
...@@ -579,7 +579,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {...@@ -579,7 +579,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void {
579 .rrri => inst.data.rrri.fixes,579 .rrri => inst.data.rrri.fixes,
580 .rri_s, .rri_u => inst.data.rri.fixes,580 .rri_s, .rri_u => inst.data.rri.fixes,
581 .ri_s, .ri_u, .ri_64, .ir => inst.data.ri.fixes,581 .ri_s, .ri_u, .ri_64, .ir => inst.data.ri.fixes,
582 .rm, .rmi_s, .mr => inst.data.rx.fixes,582 .rm, .rmi_s, .rmi_u, .mr => inst.data.rx.fixes,
583 .mrr, .rrm, .rmr => inst.data.rrx.fixes,583 .mrr, .rrm, .rmr => inst.data.rrx.fixes,
584 .rmi, .mri => inst.data.rix.fixes,584 .rmi, .mri => inst.data.rix.fixes,
585 .rrmr => inst.data.rrrx.fixes,585 .rrmr => inst.data.rrrx.fixes,
src/arch/x86_64/bits.zig+3-3
...@@ -384,6 +384,7 @@ pub const Register = enum(u8) {...@@ -384,6 +384,7 @@ pub const Register = enum(u8) {
384384
385 pub const Class = enum {385 pub const Class = enum {
386 general_purpose,386 general_purpose,
387 gphi,
387 segment,388 segment,
388 x87,389 x87,
389 mmx,390 mmx,
...@@ -400,7 +401,7 @@ pub const Register = enum(u8) {...@@ -400,7 +401,7 @@ pub const Register = enum(u8) {
400 @intFromEnum(Register.eax) ... @intFromEnum(Register.r15d) => .general_purpose,401 @intFromEnum(Register.eax) ... @intFromEnum(Register.r15d) => .general_purpose,
401 @intFromEnum(Register.ax) ... @intFromEnum(Register.r15w) => .general_purpose,402 @intFromEnum(Register.ax) ... @intFromEnum(Register.r15w) => .general_purpose,
402 @intFromEnum(Register.al) ... @intFromEnum(Register.r15b) => .general_purpose,403 @intFromEnum(Register.al) ... @intFromEnum(Register.r15b) => .general_purpose,
403 @intFromEnum(Register.ah) ... @intFromEnum(Register.bh) => .general_purpose,404 @intFromEnum(Register.ah) ... @intFromEnum(Register.bh) => .gphi,
404405
405 @intFromEnum(Register.ymm0) ... @intFromEnum(Register.ymm15) => .sse,406 @intFromEnum(Register.ymm0) ... @intFromEnum(Register.ymm15) => .sse,
406 @intFromEnum(Register.xmm0) ... @intFromEnum(Register.xmm15) => .sse,407 @intFromEnum(Register.xmm0) ... @intFromEnum(Register.xmm15) => .sse,
...@@ -525,7 +526,6 @@ pub const Register = enum(u8) {...@@ -525,7 +526,6 @@ pub const Register = enum(u8) {
525 }526 }
526527
527 fn gpBase(reg: Register) u7 {528 fn gpBase(reg: Register) u7 {
528 assert(reg.class() == .general_purpose);
529 return switch (@intFromEnum(reg)) {529 return switch (@intFromEnum(reg)) {
530 // zig fmt: off530 // zig fmt: off
531 @intFromEnum(Register.rax) ... @intFromEnum(Register.r15) => @intFromEnum(Register.rax),531 @intFromEnum(Register.rax) ... @intFromEnum(Register.r15) => @intFromEnum(Register.rax),
...@@ -577,7 +577,7 @@ pub const Register = enum(u8) {...@@ -577,7 +577,7 @@ pub const Register = enum(u8) {
577 /// DWARF register encoding577 /// DWARF register encoding
578 pub fn dwarfNum(reg: Register) u6 {578 pub fn dwarfNum(reg: Register) u6 {
579 return switch (reg.class()) {579 return switch (reg.class()) {
580 .general_purpose => if (reg.isExtended())580 .general_purpose, .gphi => if (reg.isExtended())
581 reg.enc()581 reg.enc()
582 else582 else
583 @as(u3, @truncate(@as(u24, 0o54673120) >> @as(u5, reg.enc()) * 3)),583 @as(u3, @truncate(@as(u24, 0o54673120) >> @as(u5, reg.enc()) * 3)),
src/codegen/c.zig+1-2
...@@ -8175,7 +8175,7 @@ fn formatIntLiteral(...@@ -8175,7 +8175,7 @@ fn formatIntLiteral(
8175 try writer.writeAll(string);8175 try writer.writeAll(string);
8176 } else {8176 } else {
8177 try data.ctype.renderLiteralPrefix(writer, data.kind, ctype_pool);8177 try data.ctype.renderLiteralPrefix(writer, data.kind, ctype_pool);
8178 wrap.convertToTwosComplement(int, data.int_info.signedness, c_bits);8178 wrap.truncate(int, .unsigned, c_bits);
8179 @memset(wrap.limbs[wrap.len..], 0);8179 @memset(wrap.limbs[wrap.len..], 0);
8180 wrap.len = wrap.limbs.len;8180 wrap.len = wrap.limbs.len;
8181 const limbs_per_c_limb = @divExact(wrap.len, c_limb_info.count);8181 const limbs_per_c_limb = @divExact(wrap.len, c_limb_info.count);
...@@ -8207,7 +8207,6 @@ fn formatIntLiteral(...@@ -8207,7 +8207,6 @@ fn formatIntLiteral(
8207 c_limb_int_info.signedness = .signed;8207 c_limb_int_info.signedness = .signed;
8208 c_limb_ctype = c_limb_info.ctype.toSigned();8208 c_limb_ctype = c_limb_info.ctype.toSigned();
82098209
8210 c_limb_mut.positive = wrap.positive;
8211 c_limb_mut.truncate(8210 c_limb_mut.truncate(
8212 c_limb_mut.toConst(),8211 c_limb_mut.toConst(),
8213 .signed,8212 .signed,
src/codegen/c/Type.zig+60
...@@ -1474,6 +1474,66 @@ pub const Pool = struct {...@@ -1474,6 +1474,66 @@ pub const Pool = struct {
1474 };1474 };
1475 return pool.fromFields(allocator, .@"struct", &fields, kind);1475 return pool.fromFields(allocator, .@"struct", &fields, kind);
1476 },1476 },
1477 .vector_1_u8_type => {
1478 const vector_ctype = try pool.getVector(allocator, .{
1479 .elem_ctype = .u8,
1480 .len = 1,
1481 });
1482 if (!kind.isParameter()) return vector_ctype;
1483 var fields = [_]Info.Field{
1484 .{
1485 .name = .{ .index = .array },
1486 .ctype = vector_ctype,
1487 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1488 },
1489 };
1490 return pool.fromFields(allocator, .@"struct", &fields, kind);
1491 },
1492 .vector_2_u8_type => {
1493 const vector_ctype = try pool.getVector(allocator, .{
1494 .elem_ctype = .u8,
1495 .len = 2,
1496 });
1497 if (!kind.isParameter()) return vector_ctype;
1498 var fields = [_]Info.Field{
1499 .{
1500 .name = .{ .index = .array },
1501 .ctype = vector_ctype,
1502 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1503 },
1504 };
1505 return pool.fromFields(allocator, .@"struct", &fields, kind);
1506 },
1507 .vector_4_u8_type => {
1508 const vector_ctype = try pool.getVector(allocator, .{
1509 .elem_ctype = .u8,
1510 .len = 4,
1511 });
1512 if (!kind.isParameter()) return vector_ctype;
1513 var fields = [_]Info.Field{
1514 .{
1515 .name = .{ .index = .array },
1516 .ctype = vector_ctype,
1517 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1518 },
1519 };
1520 return pool.fromFields(allocator, .@"struct", &fields, kind);
1521 },
1522 .vector_8_u8_type => {
1523 const vector_ctype = try pool.getVector(allocator, .{
1524 .elem_ctype = .u8,
1525 .len = 8,
1526 });
1527 if (!kind.isParameter()) return vector_ctype;
1528 var fields = [_]Info.Field{
1529 .{
1530 .name = .{ .index = .array },
1531 .ctype = vector_ctype,
1532 .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)),
1533 },
1534 };
1535 return pool.fromFields(allocator, .@"struct", &fields, kind);
1536 },
1477 .vector_16_u8_type => {1537 .vector_16_u8_type => {
1478 const vector_ctype = try pool.getVector(allocator, .{1538 const vector_ctype = try pool.getVector(allocator, .{
1479 .elem_ctype = .u8,1539 .elem_ctype = .u8,
test/behavior/x86_64/binary.zig created+5759
...@@ -0,0 +1,5759 @@
1const AddOneBit = math.AddOneBit;
2const cast = math.cast;
3const checkExpected = math.checkExpected;
4const Compare = math.Compare;
5const DoubleBits = math.DoubleBits;
6const fmax = math.fmax;
7const fmin = math.fmin;
8const Gpr = math.Gpr;
9const inf = math.inf;
10const Log2Int = math.Log2Int;
11const math = @import("math.zig");
12const nan = math.nan;
13const Scalar = math.Scalar;
14const sign = math.sign;
15const Sse = math.Sse;
16const tmin = math.tmin;
17
18fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type {
19 return struct {
20 // noinline so that `mem_lhs` and `mem_rhs` are on the stack
21 noinline fn testArgKinds(
22 _: Gpr,
23 _: Gpr,
24 _: Gpr,
25 _: Gpr,
26 _: Gpr,
27 _: Gpr,
28 _: Gpr,
29 _: Gpr,
30 _: Sse,
31 _: Sse,
32 _: Sse,
33 _: Sse,
34 _: Sse,
35 _: Sse,
36 _: Sse,
37 _: Sse,
38 comptime Type: type,
39 comptime imm_lhs: Type,
40 mem_lhs: Type,
41 comptime imm_rhs: Type,
42 mem_rhs: Type,
43 ) !void {
44 const expected = comptime op(Type, imm_lhs, imm_rhs);
45 var reg_lhs = mem_lhs;
46 var reg_rhs = mem_rhs;
47 _ = .{ &reg_lhs, &reg_rhs };
48 try checkExpected(expected, op(Type, reg_lhs, reg_rhs), opts.compare);
49 try checkExpected(expected, op(Type, reg_lhs, mem_rhs), opts.compare);
50 try checkExpected(expected, op(Type, reg_lhs, imm_rhs), opts.compare);
51 try checkExpected(expected, op(Type, mem_lhs, reg_rhs), opts.compare);
52 try checkExpected(expected, op(Type, mem_lhs, mem_rhs), opts.compare);
53 try checkExpected(expected, op(Type, mem_lhs, imm_rhs), opts.compare);
54 try checkExpected(expected, op(Type, imm_lhs, reg_rhs), opts.compare);
55 try checkExpected(expected, op(Type, imm_lhs, mem_rhs), opts.compare);
56 }
57 // noinline for a more helpful stack trace
58 noinline fn testArgs(comptime Type: type, comptime imm_lhs: Type, comptime imm_rhs: Type) !void {
59 try testArgKinds(
60 undefined,
61 undefined,
62 undefined,
63 undefined,
64 undefined,
65 undefined,
66 undefined,
67 undefined,
68 undefined,
69 undefined,
70 undefined,
71 undefined,
72 undefined,
73 undefined,
74 undefined,
75 undefined,
76 Type,
77 imm_lhs,
78 imm_lhs,
79 imm_rhs,
80 imm_rhs,
81 );
82 }
83 fn testInts() !void {
84 try testArgs(i4, 0x3, 0x2);
85 try testArgs(u4, 0xe, 0x6);
86 try testArgs(i8, 0x48, 0x6c);
87 try testArgs(u8, 0xbb, 0x43);
88 try testArgs(i16, -0x0fdf, 0x302e);
89 try testArgs(u16, 0xb8bf, 0x626d);
90 try testArgs(i32, -0x6280178f, 0x6802c034);
91 try testArgs(u32, 0x80d7a2c6, 0xbff6a402);
92 try testArgs(i64, 0x0365a53b8ee0c987, -0x1bb6d3013500a7d2);
93 try testArgs(u64, 0x71138bc6b4a38898, 0x1bc4043de9438c7b);
94 try testArgs(i128, 0x76d428c46cdeaa2ac43de8abffb22f6d, 0x427f7545abe434a12544fdbe2a012889);
95 try testArgs(u128, 0xe05fc132ef2cd8affee00a907f0a851f, 0x29f912a72cfc6a7c6973426a9636da9a);
96 try testArgs(i256, -0x53d4148cee74ea43477a65b3daa7b8fdadcbf4508e793f4af113b8d8da5a7eb6, -0x30dcbaf7b9b7a3df033694e6795444d842fb0b8f79bc18b3ea8a6b7ccad3ea91);
97 try testArgs(u256, 0xb7935f5c2f3b1ae7a422c0a7c446884294b7d5370bada307d2fe5a4c4284a999, 0x310e6e196ba4f143b8d285ca6addf7f3bb3344224aff221b27607a31e148be08);
98 try testArgs(i258, -0x0eee283365108dbeea0bec82f5147418d8ffe86f9eed00e414b4eccd65c21239a, -0x122c730073fc29a24cd6e3e6263566879bc5325d8566b8db31fcb4a76f7ab95eb);
99 try testArgs(u258, 0x186d5ddaab8cb8cb04e5b41e36f812e039d008baf49f12894c39e29a07796d800, 0x2072daba6ffad168826163eb136f6d28ca4360c8e7e5e41e29755e19e4753a4f5);
100 try testArgs(i495, 0x2fe6bc5448c55ce18252e2c9d44777505dfe63ff249a8027a6626c7d8dd9893fd5731e51474727be556f757facb586a4e04bbc0148c6c7ad692302f46fbd, -0x016a358821ef8240172f3a08e8830c06e6bcf2225f5f4d41ed42b44d249385f55cc594e1278ecac31c73faed890e5054af1a561483bb1bb6fb1f753514cf);
101 try testArgs(u495, 0x6eaf4e252b3bf74b75bac59e0b43ca5326bad2a25b3fdb74a67ef132ac5e47d72eebc3316fb2351ee66c50dc5afb92a75cea9b0e35160652c7db39eeb158, 0x49fbed744a92b549d8c05bb3512c617d24dd824f3f69bdf3923bc326a75674b85f5b828d2566fab9c86f571d12c2a63c9164feb0d191d27905533d09622a);
102 try testArgs(i512, -0x3a6876ca92775286c6e1504a64a9b8d56985bebf4a1b66539d404e0e96f24b226f70c4bcff295fdc2043b82513b2052dc45fd78f7e9e80e5b3e101757289f054, 0x5080c516a819bd32a0a5f0976441bbfbcf89e77684f1f10eb326aeb28e1f8d593278cff60fc99b8ffc87d8696882c64728dd3c322b7142803f4341f85a03bc10);
103 try testArgs(u512, 0xe5b1fedca3c77db765e517aabd05ffc524a3a8aff1784bbf67c45b894447ede32b65b9940e78173c591e56e078932d465f235aece7ad47b7f229df7ba8f12295, 0x8b4bb7c2969e3b121cc1082c442f8b4330f0a50058438fed56447175bb10178607ecfe425cb54dacc25ef26810f3e04681de1844f1aa8d029aca75d658634806);
104 }
105 fn testFloats() !void {
106 @setEvalBranchQuota(21_700);
107
108 try testArgs(f16, -nan(f16), -nan(f16));
109 try testArgs(f16, -nan(f16), -inf(f16));
110 try testArgs(f16, -nan(f16), -fmax(f16));
111 try testArgs(f16, -nan(f16), -1e1);
112 try testArgs(f16, -nan(f16), -1e0);
113 try testArgs(f16, -nan(f16), -1e-1);
114 try testArgs(f16, -nan(f16), -fmin(f16));
115 try testArgs(f16, -nan(f16), -tmin(f16));
116 try testArgs(f16, -nan(f16), -0.0);
117 try testArgs(f16, -nan(f16), 0.0);
118 try testArgs(f16, -nan(f16), tmin(f16));
119 try testArgs(f16, -nan(f16), fmin(f16));
120 try testArgs(f16, -nan(f16), 1e-1);
121 try testArgs(f16, -nan(f16), 1e0);
122 try testArgs(f16, -nan(f16), 1e1);
123 try testArgs(f16, -nan(f16), fmax(f16));
124 try testArgs(f16, -nan(f16), inf(f16));
125 try testArgs(f16, -nan(f16), nan(f16));
126
127 try testArgs(f16, -inf(f16), -nan(f16));
128 try testArgs(f16, -inf(f16), -inf(f16));
129 try testArgs(f16, -inf(f16), -fmax(f16));
130 try testArgs(f16, -inf(f16), -1e1);
131 try testArgs(f16, -inf(f16), -1e0);
132 try testArgs(f16, -inf(f16), -1e-1);
133 try testArgs(f16, -inf(f16), -fmin(f16));
134 try testArgs(f16, -inf(f16), -tmin(f16));
135 try testArgs(f16, -inf(f16), -0.0);
136 try testArgs(f16, -inf(f16), 0.0);
137 try testArgs(f16, -inf(f16), tmin(f16));
138 try testArgs(f16, -inf(f16), fmin(f16));
139 try testArgs(f16, -inf(f16), 1e-1);
140 try testArgs(f16, -inf(f16), 1e0);
141 try testArgs(f16, -inf(f16), 1e1);
142 try testArgs(f16, -inf(f16), fmax(f16));
143 try testArgs(f16, -inf(f16), inf(f16));
144 try testArgs(f16, -inf(f16), nan(f16));
145
146 try testArgs(f16, -fmax(f16), -nan(f16));
147 try testArgs(f16, -fmax(f16), -inf(f16));
148 try testArgs(f16, -fmax(f16), -fmax(f16));
149 try testArgs(f16, -fmax(f16), -1e1);
150 try testArgs(f16, -fmax(f16), -1e0);
151 try testArgs(f16, -fmax(f16), -1e-1);
152 try testArgs(f16, -fmax(f16), -fmin(f16));
153 try testArgs(f16, -fmax(f16), -tmin(f16));
154 try testArgs(f16, -fmax(f16), -0.0);
155 try testArgs(f16, -fmax(f16), 0.0);
156 try testArgs(f16, -fmax(f16), tmin(f16));
157 try testArgs(f16, -fmax(f16), fmin(f16));
158 try testArgs(f16, -fmax(f16), 1e-1);
159 try testArgs(f16, -fmax(f16), 1e0);
160 try testArgs(f16, -fmax(f16), 1e1);
161 try testArgs(f16, -fmax(f16), fmax(f16));
162 try testArgs(f16, -fmax(f16), inf(f16));
163 try testArgs(f16, -fmax(f16), nan(f16));
164
165 try testArgs(f16, -1e1, -nan(f16));
166 try testArgs(f16, -1e1, -inf(f16));
167 try testArgs(f16, -1e1, -fmax(f16));
168 try testArgs(f16, -1e1, -1e1);
169 try testArgs(f16, -1e1, -1e0);
170 try testArgs(f16, -1e1, -1e-1);
171 try testArgs(f16, -1e1, -fmin(f16));
172 try testArgs(f16, -1e1, -tmin(f16));
173 try testArgs(f16, -1e1, -0.0);
174 try testArgs(f16, -1e1, 0.0);
175 try testArgs(f16, -1e1, tmin(f16));
176 try testArgs(f16, -1e1, fmin(f16));
177 try testArgs(f16, -1e1, 1e-1);
178 try testArgs(f16, -1e1, 1e0);
179 try testArgs(f16, -1e1, 1e1);
180 try testArgs(f16, -1e1, fmax(f16));
181 try testArgs(f16, -1e1, inf(f16));
182 try testArgs(f16, -1e1, nan(f16));
183
184 try testArgs(f16, -1e0, -nan(f16));
185 try testArgs(f16, -1e0, -inf(f16));
186 try testArgs(f16, -1e0, -fmax(f16));
187 try testArgs(f16, -1e0, -1e1);
188 try testArgs(f16, -1e0, -1e0);
189 try testArgs(f16, -1e0, -1e-1);
190 try testArgs(f16, -1e0, -fmin(f16));
191 try testArgs(f16, -1e0, -tmin(f16));
192 try testArgs(f16, -1e0, -0.0);
193 try testArgs(f16, -1e0, 0.0);
194 try testArgs(f16, -1e0, tmin(f16));
195 try testArgs(f16, -1e0, fmin(f16));
196 try testArgs(f16, -1e0, 1e-1);
197 try testArgs(f16, -1e0, 1e0);
198 try testArgs(f16, -1e0, 1e1);
199 try testArgs(f16, -1e0, fmax(f16));
200 try testArgs(f16, -1e0, inf(f16));
201 try testArgs(f16, -1e0, nan(f16));
202
203 try testArgs(f16, -1e-1, -nan(f16));
204 try testArgs(f16, -1e-1, -inf(f16));
205 try testArgs(f16, -1e-1, -fmax(f16));
206 try testArgs(f16, -1e-1, -1e1);
207 try testArgs(f16, -1e-1, -1e0);
208 try testArgs(f16, -1e-1, -1e-1);
209 try testArgs(f16, -1e-1, -fmin(f16));
210 try testArgs(f16, -1e-1, -tmin(f16));
211 try testArgs(f16, -1e-1, -0.0);
212 try testArgs(f16, -1e-1, 0.0);
213 try testArgs(f16, -1e-1, tmin(f16));
214 try testArgs(f16, -1e-1, fmin(f16));
215 try testArgs(f16, -1e-1, 1e-1);
216 try testArgs(f16, -1e-1, 1e0);
217 try testArgs(f16, -1e-1, 1e1);
218 try testArgs(f16, -1e-1, fmax(f16));
219 try testArgs(f16, -1e-1, inf(f16));
220 try testArgs(f16, -1e-1, nan(f16));
221
222 try testArgs(f16, -fmin(f16), -nan(f16));
223 try testArgs(f16, -fmin(f16), -inf(f16));
224 try testArgs(f16, -fmin(f16), -fmax(f16));
225 try testArgs(f16, -fmin(f16), -1e1);
226 try testArgs(f16, -fmin(f16), -1e0);
227 try testArgs(f16, -fmin(f16), -1e-1);
228 try testArgs(f16, -fmin(f16), -fmin(f16));
229 try testArgs(f16, -fmin(f16), -tmin(f16));
230 try testArgs(f16, -fmin(f16), -0.0);
231 try testArgs(f16, -fmin(f16), 0.0);
232 try testArgs(f16, -fmin(f16), tmin(f16));
233 try testArgs(f16, -fmin(f16), fmin(f16));
234 try testArgs(f16, -fmin(f16), 1e-1);
235 try testArgs(f16, -fmin(f16), 1e0);
236 try testArgs(f16, -fmin(f16), 1e1);
237 try testArgs(f16, -fmin(f16), fmax(f16));
238 try testArgs(f16, -fmin(f16), inf(f16));
239 try testArgs(f16, -fmin(f16), nan(f16));
240
241 try testArgs(f16, -tmin(f16), -nan(f16));
242 try testArgs(f16, -tmin(f16), -inf(f16));
243 try testArgs(f16, -tmin(f16), -fmax(f16));
244 try testArgs(f16, -tmin(f16), -1e1);
245 try testArgs(f16, -tmin(f16), -1e0);
246 try testArgs(f16, -tmin(f16), -1e-1);
247 try testArgs(f16, -tmin(f16), -fmin(f16));
248 try testArgs(f16, -tmin(f16), -tmin(f16));
249 try testArgs(f16, -tmin(f16), -0.0);
250 try testArgs(f16, -tmin(f16), 0.0);
251 try testArgs(f16, -tmin(f16), tmin(f16));
252 try testArgs(f16, -tmin(f16), fmin(f16));
253 try testArgs(f16, -tmin(f16), 1e-1);
254 try testArgs(f16, -tmin(f16), 1e0);
255 try testArgs(f16, -tmin(f16), 1e1);
256 try testArgs(f16, -tmin(f16), fmax(f16));
257 try testArgs(f16, -tmin(f16), inf(f16));
258 try testArgs(f16, -tmin(f16), nan(f16));
259
260 try testArgs(f16, -0.0, -nan(f16));
261 try testArgs(f16, -0.0, -inf(f16));
262 try testArgs(f16, -0.0, -fmax(f16));
263 try testArgs(f16, -0.0, -1e1);
264 try testArgs(f16, -0.0, -1e0);
265 try testArgs(f16, -0.0, -1e-1);
266 try testArgs(f16, -0.0, -fmin(f16));
267 try testArgs(f16, -0.0, -tmin(f16));
268 try testArgs(f16, -0.0, -0.0);
269 try testArgs(f16, -0.0, 0.0);
270 try testArgs(f16, -0.0, tmin(f16));
271 try testArgs(f16, -0.0, fmin(f16));
272 try testArgs(f16, -0.0, 1e-1);
273 try testArgs(f16, -0.0, 1e0);
274 try testArgs(f16, -0.0, 1e1);
275 try testArgs(f16, -0.0, fmax(f16));
276 try testArgs(f16, -0.0, inf(f16));
277 try testArgs(f16, -0.0, nan(f16));
278
279 try testArgs(f16, 0.0, -nan(f16));
280 try testArgs(f16, 0.0, -inf(f16));
281 try testArgs(f16, 0.0, -fmax(f16));
282 try testArgs(f16, 0.0, -1e1);
283 try testArgs(f16, 0.0, -1e0);
284 try testArgs(f16, 0.0, -1e-1);
285 try testArgs(f16, 0.0, -fmin(f16));
286 try testArgs(f16, 0.0, -tmin(f16));
287 try testArgs(f16, 0.0, -0.0);
288 try testArgs(f16, 0.0, 0.0);
289 try testArgs(f16, 0.0, tmin(f16));
290 try testArgs(f16, 0.0, fmin(f16));
291 try testArgs(f16, 0.0, 1e-1);
292 try testArgs(f16, 0.0, 1e0);
293 try testArgs(f16, 0.0, 1e1);
294 try testArgs(f16, 0.0, fmax(f16));
295 try testArgs(f16, 0.0, inf(f16));
296 try testArgs(f16, 0.0, nan(f16));
297
298 try testArgs(f16, tmin(f16), -nan(f16));
299 try testArgs(f16, tmin(f16), -inf(f16));
300 try testArgs(f16, tmin(f16), -fmax(f16));
301 try testArgs(f16, tmin(f16), -1e1);
302 try testArgs(f16, tmin(f16), -1e0);
303 try testArgs(f16, tmin(f16), -1e-1);
304 try testArgs(f16, tmin(f16), -fmin(f16));
305 try testArgs(f16, tmin(f16), -tmin(f16));
306 try testArgs(f16, tmin(f16), -0.0);
307 try testArgs(f16, tmin(f16), 0.0);
308 try testArgs(f16, tmin(f16), tmin(f16));
309 try testArgs(f16, tmin(f16), fmin(f16));
310 try testArgs(f16, tmin(f16), 1e-1);
311 try testArgs(f16, tmin(f16), 1e0);
312 try testArgs(f16, tmin(f16), 1e1);
313 try testArgs(f16, tmin(f16), fmax(f16));
314 try testArgs(f16, tmin(f16), inf(f16));
315 try testArgs(f16, tmin(f16), nan(f16));
316
317 try testArgs(f16, fmin(f16), -nan(f16));
318 try testArgs(f16, fmin(f16), -inf(f16));
319 try testArgs(f16, fmin(f16), -fmax(f16));
320 try testArgs(f16, fmin(f16), -1e1);
321 try testArgs(f16, fmin(f16), -1e0);
322 try testArgs(f16, fmin(f16), -1e-1);
323 try testArgs(f16, fmin(f16), -fmin(f16));
324 try testArgs(f16, fmin(f16), -tmin(f16));
325 try testArgs(f16, fmin(f16), -0.0);
326 try testArgs(f16, fmin(f16), 0.0);
327 try testArgs(f16, fmin(f16), tmin(f16));
328 try testArgs(f16, fmin(f16), fmin(f16));
329 try testArgs(f16, fmin(f16), 1e-1);
330 try testArgs(f16, fmin(f16), 1e0);
331 try testArgs(f16, fmin(f16), 1e1);
332 try testArgs(f16, fmin(f16), fmax(f16));
333 try testArgs(f16, fmin(f16), inf(f16));
334 try testArgs(f16, fmin(f16), nan(f16));
335
336 try testArgs(f16, 1e-1, -nan(f16));
337 try testArgs(f16, 1e-1, -inf(f16));
338 try testArgs(f16, 1e-1, -fmax(f16));
339 try testArgs(f16, 1e-1, -1e1);
340 try testArgs(f16, 1e-1, -1e0);
341 try testArgs(f16, 1e-1, -1e-1);
342 try testArgs(f16, 1e-1, -fmin(f16));
343 try testArgs(f16, 1e-1, -tmin(f16));
344 try testArgs(f16, 1e-1, -0.0);
345 try testArgs(f16, 1e-1, 0.0);
346 try testArgs(f16, 1e-1, tmin(f16));
347 try testArgs(f16, 1e-1, fmin(f16));
348 try testArgs(f16, 1e-1, 1e-1);
349 try testArgs(f16, 1e-1, 1e0);
350 try testArgs(f16, 1e-1, 1e1);
351 try testArgs(f16, 1e-1, fmax(f16));
352 try testArgs(f16, 1e-1, inf(f16));
353 try testArgs(f16, 1e-1, nan(f16));
354
355 try testArgs(f16, 1e0, -nan(f16));
356 try testArgs(f16, 1e0, -inf(f16));
357 try testArgs(f16, 1e0, -fmax(f16));
358 try testArgs(f16, 1e0, -1e1);
359 try testArgs(f16, 1e0, -1e0);
360 try testArgs(f16, 1e0, -1e-1);
361 try testArgs(f16, 1e0, -fmin(f16));
362 try testArgs(f16, 1e0, -tmin(f16));
363 try testArgs(f16, 1e0, -0.0);
364 try testArgs(f16, 1e0, 0.0);
365 try testArgs(f16, 1e0, tmin(f16));
366 try testArgs(f16, 1e0, fmin(f16));
367 try testArgs(f16, 1e0, 1e-1);
368 try testArgs(f16, 1e0, 1e0);
369 try testArgs(f16, 1e0, 1e1);
370 try testArgs(f16, 1e0, fmax(f16));
371 try testArgs(f16, 1e0, inf(f16));
372 try testArgs(f16, 1e0, nan(f16));
373
374 try testArgs(f16, 1e1, -nan(f16));
375 try testArgs(f16, 1e1, -inf(f16));
376 try testArgs(f16, 1e1, -fmax(f16));
377 try testArgs(f16, 1e1, -1e1);
378 try testArgs(f16, 1e1, -1e0);
379 try testArgs(f16, 1e1, -1e-1);
380 try testArgs(f16, 1e1, -fmin(f16));
381 try testArgs(f16, 1e1, -tmin(f16));
382 try testArgs(f16, 1e1, -0.0);
383 try testArgs(f16, 1e1, 0.0);
384 try testArgs(f16, 1e1, tmin(f16));
385 try testArgs(f16, 1e1, fmin(f16));
386 try testArgs(f16, 1e1, 1e-1);
387 try testArgs(f16, 1e1, 1e0);
388 try testArgs(f16, 1e1, 1e1);
389 try testArgs(f16, 1e1, fmax(f16));
390 try testArgs(f16, 1e1, inf(f16));
391 try testArgs(f16, 1e1, nan(f16));
392
393 try testArgs(f16, fmax(f16), -nan(f16));
394 try testArgs(f16, fmax(f16), -inf(f16));
395 try testArgs(f16, fmax(f16), -fmax(f16));
396 try testArgs(f16, fmax(f16), -1e1);
397 try testArgs(f16, fmax(f16), -1e0);
398 try testArgs(f16, fmax(f16), -1e-1);
399 try testArgs(f16, fmax(f16), -fmin(f16));
400 try testArgs(f16, fmax(f16), -tmin(f16));
401 try testArgs(f16, fmax(f16), -0.0);
402 try testArgs(f16, fmax(f16), 0.0);
403 try testArgs(f16, fmax(f16), tmin(f16));
404 try testArgs(f16, fmax(f16), fmin(f16));
405 try testArgs(f16, fmax(f16), 1e-1);
406 try testArgs(f16, fmax(f16), 1e0);
407 try testArgs(f16, fmax(f16), 1e1);
408 try testArgs(f16, fmax(f16), fmax(f16));
409 try testArgs(f16, fmax(f16), inf(f16));
410 try testArgs(f16, fmax(f16), nan(f16));
411
412 try testArgs(f16, inf(f16), -nan(f16));
413 try testArgs(f16, inf(f16), -inf(f16));
414 try testArgs(f16, inf(f16), -fmax(f16));
415 try testArgs(f16, inf(f16), -1e1);
416 try testArgs(f16, inf(f16), -1e0);
417 try testArgs(f16, inf(f16), -1e-1);
418 try testArgs(f16, inf(f16), -fmin(f16));
419 try testArgs(f16, inf(f16), -tmin(f16));
420 try testArgs(f16, inf(f16), -0.0);
421 try testArgs(f16, inf(f16), 0.0);
422 try testArgs(f16, inf(f16), tmin(f16));
423 try testArgs(f16, inf(f16), fmin(f16));
424 try testArgs(f16, inf(f16), 1e-1);
425 try testArgs(f16, inf(f16), 1e0);
426 try testArgs(f16, inf(f16), 1e1);
427 try testArgs(f16, inf(f16), fmax(f16));
428 try testArgs(f16, inf(f16), inf(f16));
429 try testArgs(f16, inf(f16), nan(f16));
430
431 try testArgs(f16, nan(f16), -nan(f16));
432 try testArgs(f16, nan(f16), -inf(f16));
433 try testArgs(f16, nan(f16), -fmax(f16));
434 try testArgs(f16, nan(f16), -1e1);
435 try testArgs(f16, nan(f16), -1e0);
436 try testArgs(f16, nan(f16), -1e-1);
437 try testArgs(f16, nan(f16), -fmin(f16));
438 try testArgs(f16, nan(f16), -tmin(f16));
439 try testArgs(f16, nan(f16), -0.0);
440 try testArgs(f16, nan(f16), 0.0);
441 try testArgs(f16, nan(f16), tmin(f16));
442 try testArgs(f16, nan(f16), fmin(f16));
443 try testArgs(f16, nan(f16), 1e-1);
444 try testArgs(f16, nan(f16), 1e0);
445 try testArgs(f16, nan(f16), 1e1);
446 try testArgs(f16, nan(f16), fmax(f16));
447 try testArgs(f16, nan(f16), inf(f16));
448 try testArgs(f16, nan(f16), nan(f16));
449
450 try testArgs(f32, -nan(f32), -nan(f32));
451 try testArgs(f32, -nan(f32), -inf(f32));
452 try testArgs(f32, -nan(f32), -fmax(f32));
453 try testArgs(f32, -nan(f32), -1e1);
454 try testArgs(f32, -nan(f32), -1e0);
455 try testArgs(f32, -nan(f32), -1e-1);
456 try testArgs(f32, -nan(f32), -fmin(f32));
457 try testArgs(f32, -nan(f32), -tmin(f32));
458 try testArgs(f32, -nan(f32), -0.0);
459 try testArgs(f32, -nan(f32), 0.0);
460 try testArgs(f32, -nan(f32), tmin(f32));
461 try testArgs(f32, -nan(f32), fmin(f32));
462 try testArgs(f32, -nan(f32), 1e-1);
463 try testArgs(f32, -nan(f32), 1e0);
464 try testArgs(f32, -nan(f32), 1e1);
465 try testArgs(f32, -nan(f32), fmax(f32));
466 try testArgs(f32, -nan(f32), inf(f32));
467 try testArgs(f32, -nan(f32), nan(f32));
468
469 try testArgs(f32, -inf(f32), -nan(f32));
470 try testArgs(f32, -inf(f32), -inf(f32));
471 try testArgs(f32, -inf(f32), -fmax(f32));
472 try testArgs(f32, -inf(f32), -1e1);
473 try testArgs(f32, -inf(f32), -1e0);
474 try testArgs(f32, -inf(f32), -1e-1);
475 try testArgs(f32, -inf(f32), -fmin(f32));
476 try testArgs(f32, -inf(f32), -tmin(f32));
477 try testArgs(f32, -inf(f32), -0.0);
478 try testArgs(f32, -inf(f32), 0.0);
479 try testArgs(f32, -inf(f32), tmin(f32));
480 try testArgs(f32, -inf(f32), fmin(f32));
481 try testArgs(f32, -inf(f32), 1e-1);
482 try testArgs(f32, -inf(f32), 1e0);
483 try testArgs(f32, -inf(f32), 1e1);
484 try testArgs(f32, -inf(f32), fmax(f32));
485 try testArgs(f32, -inf(f32), inf(f32));
486 try testArgs(f32, -inf(f32), nan(f32));
487
488 try testArgs(f32, -fmax(f32), -nan(f32));
489 try testArgs(f32, -fmax(f32), -inf(f32));
490 try testArgs(f32, -fmax(f32), -fmax(f32));
491 try testArgs(f32, -fmax(f32), -1e1);
492 try testArgs(f32, -fmax(f32), -1e0);
493 try testArgs(f32, -fmax(f32), -1e-1);
494 try testArgs(f32, -fmax(f32), -fmin(f32));
495 try testArgs(f32, -fmax(f32), -tmin(f32));
496 try testArgs(f32, -fmax(f32), -0.0);
497 try testArgs(f32, -fmax(f32), 0.0);
498 try testArgs(f32, -fmax(f32), tmin(f32));
499 try testArgs(f32, -fmax(f32), fmin(f32));
500 try testArgs(f32, -fmax(f32), 1e-1);
501 try testArgs(f32, -fmax(f32), 1e0);
502 try testArgs(f32, -fmax(f32), 1e1);
503 try testArgs(f32, -fmax(f32), fmax(f32));
504 try testArgs(f32, -fmax(f32), inf(f32));
505 try testArgs(f32, -fmax(f32), nan(f32));
506
507 try testArgs(f32, -1e1, -nan(f32));
508 try testArgs(f32, -1e1, -inf(f32));
509 try testArgs(f32, -1e1, -fmax(f32));
510 try testArgs(f32, -1e1, -1e1);
511 try testArgs(f32, -1e1, -1e0);
512 try testArgs(f32, -1e1, -1e-1);
513 try testArgs(f32, -1e1, -fmin(f32));
514 try testArgs(f32, -1e1, -tmin(f32));
515 try testArgs(f32, -1e1, -0.0);
516 try testArgs(f32, -1e1, 0.0);
517 try testArgs(f32, -1e1, tmin(f32));
518 try testArgs(f32, -1e1, fmin(f32));
519 try testArgs(f32, -1e1, 1e-1);
520 try testArgs(f32, -1e1, 1e0);
521 try testArgs(f32, -1e1, 1e1);
522 try testArgs(f32, -1e1, fmax(f32));
523 try testArgs(f32, -1e1, inf(f32));
524 try testArgs(f32, -1e1, nan(f32));
525
526 try testArgs(f32, -1e0, -nan(f32));
527 try testArgs(f32, -1e0, -inf(f32));
528 try testArgs(f32, -1e0, -fmax(f32));
529 try testArgs(f32, -1e0, -1e1);
530 try testArgs(f32, -1e0, -1e0);
531 try testArgs(f32, -1e0, -1e-1);
532 try testArgs(f32, -1e0, -fmin(f32));
533 try testArgs(f32, -1e0, -tmin(f32));
534 try testArgs(f32, -1e0, -0.0);
535 try testArgs(f32, -1e0, 0.0);
536 try testArgs(f32, -1e0, tmin(f32));
537 try testArgs(f32, -1e0, fmin(f32));
538 try testArgs(f32, -1e0, 1e-1);
539 try testArgs(f32, -1e0, 1e0);
540 try testArgs(f32, -1e0, 1e1);
541 try testArgs(f32, -1e0, fmax(f32));
542 try testArgs(f32, -1e0, inf(f32));
543 try testArgs(f32, -1e0, nan(f32));
544
545 try testArgs(f32, -1e-1, -nan(f32));
546 try testArgs(f32, -1e-1, -inf(f32));
547 try testArgs(f32, -1e-1, -fmax(f32));
548 try testArgs(f32, -1e-1, -1e1);
549 try testArgs(f32, -1e-1, -1e0);
550 try testArgs(f32, -1e-1, -1e-1);
551 try testArgs(f32, -1e-1, -fmin(f32));
552 try testArgs(f32, -1e-1, -tmin(f32));
553 try testArgs(f32, -1e-1, -0.0);
554 try testArgs(f32, -1e-1, 0.0);
555 try testArgs(f32, -1e-1, tmin(f32));
556 try testArgs(f32, -1e-1, fmin(f32));
557 try testArgs(f32, -1e-1, 1e-1);
558 try testArgs(f32, -1e-1, 1e0);
559 try testArgs(f32, -1e-1, 1e1);
560 try testArgs(f32, -1e-1, fmax(f32));
561 try testArgs(f32, -1e-1, inf(f32));
562 try testArgs(f32, -1e-1, nan(f32));
563
564 try testArgs(f32, -fmin(f32), -nan(f32));
565 try testArgs(f32, -fmin(f32), -inf(f32));
566 try testArgs(f32, -fmin(f32), -fmax(f32));
567 try testArgs(f32, -fmin(f32), -1e1);
568 try testArgs(f32, -fmin(f32), -1e0);
569 try testArgs(f32, -fmin(f32), -1e-1);
570 try testArgs(f32, -fmin(f32), -fmin(f32));
571 try testArgs(f32, -fmin(f32), -tmin(f32));
572 try testArgs(f32, -fmin(f32), -0.0);
573 try testArgs(f32, -fmin(f32), 0.0);
574 try testArgs(f32, -fmin(f32), tmin(f32));
575 try testArgs(f32, -fmin(f32), fmin(f32));
576 try testArgs(f32, -fmin(f32), 1e-1);
577 try testArgs(f32, -fmin(f32), 1e0);
578 try testArgs(f32, -fmin(f32), 1e1);
579 try testArgs(f32, -fmin(f32), fmax(f32));
580 try testArgs(f32, -fmin(f32), inf(f32));
581 try testArgs(f32, -fmin(f32), nan(f32));
582
583 try testArgs(f32, -tmin(f32), -nan(f32));
584 try testArgs(f32, -tmin(f32), -inf(f32));
585 try testArgs(f32, -tmin(f32), -fmax(f32));
586 try testArgs(f32, -tmin(f32), -1e1);
587 try testArgs(f32, -tmin(f32), -1e0);
588 try testArgs(f32, -tmin(f32), -1e-1);
589 try testArgs(f32, -tmin(f32), -fmin(f32));
590 try testArgs(f32, -tmin(f32), -tmin(f32));
591 try testArgs(f32, -tmin(f32), -0.0);
592 try testArgs(f32, -tmin(f32), 0.0);
593 try testArgs(f32, -tmin(f32), tmin(f32));
594 try testArgs(f32, -tmin(f32), fmin(f32));
595 try testArgs(f32, -tmin(f32), 1e-1);
596 try testArgs(f32, -tmin(f32), 1e0);
597 try testArgs(f32, -tmin(f32), 1e1);
598 try testArgs(f32, -tmin(f32), fmax(f32));
599 try testArgs(f32, -tmin(f32), inf(f32));
600 try testArgs(f32, -tmin(f32), nan(f32));
601
602 try testArgs(f32, -0.0, -nan(f32));
603 try testArgs(f32, -0.0, -inf(f32));
604 try testArgs(f32, -0.0, -fmax(f32));
605 try testArgs(f32, -0.0, -1e1);
606 try testArgs(f32, -0.0, -1e0);
607 try testArgs(f32, -0.0, -1e-1);
608 try testArgs(f32, -0.0, -fmin(f32));
609 try testArgs(f32, -0.0, -tmin(f32));
610 try testArgs(f32, -0.0, -0.0);
611 try testArgs(f32, -0.0, 0.0);
612 try testArgs(f32, -0.0, tmin(f32));
613 try testArgs(f32, -0.0, fmin(f32));
614 try testArgs(f32, -0.0, 1e-1);
615 try testArgs(f32, -0.0, 1e0);
616 try testArgs(f32, -0.0, 1e1);
617 try testArgs(f32, -0.0, fmax(f32));
618 try testArgs(f32, -0.0, inf(f32));
619 try testArgs(f32, -0.0, nan(f32));
620
621 try testArgs(f32, 0.0, -nan(f32));
622 try testArgs(f32, 0.0, -inf(f32));
623 try testArgs(f32, 0.0, -fmax(f32));
624 try testArgs(f32, 0.0, -1e1);
625 try testArgs(f32, 0.0, -1e0);
626 try testArgs(f32, 0.0, -1e-1);
627 try testArgs(f32, 0.0, -fmin(f32));
628 try testArgs(f32, 0.0, -tmin(f32));
629 try testArgs(f32, 0.0, -0.0);
630 try testArgs(f32, 0.0, 0.0);
631 try testArgs(f32, 0.0, tmin(f32));
632 try testArgs(f32, 0.0, fmin(f32));
633 try testArgs(f32, 0.0, 1e-1);
634 try testArgs(f32, 0.0, 1e0);
635 try testArgs(f32, 0.0, 1e1);
636 try testArgs(f32, 0.0, fmax(f32));
637 try testArgs(f32, 0.0, inf(f32));
638 try testArgs(f32, 0.0, nan(f32));
639
640 try testArgs(f32, tmin(f32), -nan(f32));
641 try testArgs(f32, tmin(f32), -inf(f32));
642 try testArgs(f32, tmin(f32), -fmax(f32));
643 try testArgs(f32, tmin(f32), -1e1);
644 try testArgs(f32, tmin(f32), -1e0);
645 try testArgs(f32, tmin(f32), -1e-1);
646 try testArgs(f32, tmin(f32), -fmin(f32));
647 try testArgs(f32, tmin(f32), -tmin(f32));
648 try testArgs(f32, tmin(f32), -0.0);
649 try testArgs(f32, tmin(f32), 0.0);
650 try testArgs(f32, tmin(f32), tmin(f32));
651 try testArgs(f32, tmin(f32), fmin(f32));
652 try testArgs(f32, tmin(f32), 1e-1);
653 try testArgs(f32, tmin(f32), 1e0);
654 try testArgs(f32, tmin(f32), 1e1);
655 try testArgs(f32, tmin(f32), fmax(f32));
656 try testArgs(f32, tmin(f32), inf(f32));
657 try testArgs(f32, tmin(f32), nan(f32));
658
659 try testArgs(f32, fmin(f32), -nan(f32));
660 try testArgs(f32, fmin(f32), -inf(f32));
661 try testArgs(f32, fmin(f32), -fmax(f32));
662 try testArgs(f32, fmin(f32), -1e1);
663 try testArgs(f32, fmin(f32), -1e0);
664 try testArgs(f32, fmin(f32), -1e-1);
665 try testArgs(f32, fmin(f32), -fmin(f32));
666 try testArgs(f32, fmin(f32), -tmin(f32));
667 try testArgs(f32, fmin(f32), -0.0);
668 try testArgs(f32, fmin(f32), 0.0);
669 try testArgs(f32, fmin(f32), tmin(f32));
670 try testArgs(f32, fmin(f32), fmin(f32));
671 try testArgs(f32, fmin(f32), 1e-1);
672 try testArgs(f32, fmin(f32), 1e0);
673 try testArgs(f32, fmin(f32), 1e1);
674 try testArgs(f32, fmin(f32), fmax(f32));
675 try testArgs(f32, fmin(f32), inf(f32));
676 try testArgs(f32, fmin(f32), nan(f32));
677
678 try testArgs(f32, 1e-1, -nan(f32));
679 try testArgs(f32, 1e-1, -inf(f32));
680 try testArgs(f32, 1e-1, -fmax(f32));
681 try testArgs(f32, 1e-1, -1e1);
682 try testArgs(f32, 1e-1, -1e0);
683 try testArgs(f32, 1e-1, -1e-1);
684 try testArgs(f32, 1e-1, -fmin(f32));
685 try testArgs(f32, 1e-1, -tmin(f32));
686 try testArgs(f32, 1e-1, -0.0);
687 try testArgs(f32, 1e-1, 0.0);
688 try testArgs(f32, 1e-1, tmin(f32));
689 try testArgs(f32, 1e-1, fmin(f32));
690 try testArgs(f32, 1e-1, 1e-1);
691 try testArgs(f32, 1e-1, 1e0);
692 try testArgs(f32, 1e-1, 1e1);
693 try testArgs(f32, 1e-1, fmax(f32));
694 try testArgs(f32, 1e-1, inf(f32));
695 try testArgs(f32, 1e-1, nan(f32));
696
697 try testArgs(f32, 1e0, -nan(f32));
698 try testArgs(f32, 1e0, -inf(f32));
699 try testArgs(f32, 1e0, -fmax(f32));
700 try testArgs(f32, 1e0, -1e1);
701 try testArgs(f32, 1e0, -1e0);
702 try testArgs(f32, 1e0, -1e-1);
703 try testArgs(f32, 1e0, -fmin(f32));
704 try testArgs(f32, 1e0, -tmin(f32));
705 try testArgs(f32, 1e0, -0.0);
706 try testArgs(f32, 1e0, 0.0);
707 try testArgs(f32, 1e0, tmin(f32));
708 try testArgs(f32, 1e0, fmin(f32));
709 try testArgs(f32, 1e0, 1e-1);
710 try testArgs(f32, 1e0, 1e0);
711 try testArgs(f32, 1e0, 1e1);
712 try testArgs(f32, 1e0, fmax(f32));
713 try testArgs(f32, 1e0, inf(f32));
714 try testArgs(f32, 1e0, nan(f32));
715
716 try testArgs(f32, 1e1, -nan(f32));
717 try testArgs(f32, 1e1, -inf(f32));
718 try testArgs(f32, 1e1, -fmax(f32));
719 try testArgs(f32, 1e1, -1e1);
720 try testArgs(f32, 1e1, -1e0);
721 try testArgs(f32, 1e1, -1e-1);
722 try testArgs(f32, 1e1, -fmin(f32));
723 try testArgs(f32, 1e1, -tmin(f32));
724 try testArgs(f32, 1e1, -0.0);
725 try testArgs(f32, 1e1, 0.0);
726 try testArgs(f32, 1e1, tmin(f32));
727 try testArgs(f32, 1e1, fmin(f32));
728 try testArgs(f32, 1e1, 1e-1);
729 try testArgs(f32, 1e1, 1e0);
730 try testArgs(f32, 1e1, 1e1);
731 try testArgs(f32, 1e1, fmax(f32));
732 try testArgs(f32, 1e1, inf(f32));
733 try testArgs(f32, 1e1, nan(f32));
734
735 try testArgs(f32, fmax(f32), -nan(f32));
736 try testArgs(f32, fmax(f32), -inf(f32));
737 try testArgs(f32, fmax(f32), -fmax(f32));
738 try testArgs(f32, fmax(f32), -1e1);
739 try testArgs(f32, fmax(f32), -1e0);
740 try testArgs(f32, fmax(f32), -1e-1);
741 try testArgs(f32, fmax(f32), -fmin(f32));
742 try testArgs(f32, fmax(f32), -tmin(f32));
743 try testArgs(f32, fmax(f32), -0.0);
744 try testArgs(f32, fmax(f32), 0.0);
745 try testArgs(f32, fmax(f32), tmin(f32));
746 try testArgs(f32, fmax(f32), fmin(f32));
747 try testArgs(f32, fmax(f32), 1e-1);
748 try testArgs(f32, fmax(f32), 1e0);
749 try testArgs(f32, fmax(f32), 1e1);
750 try testArgs(f32, fmax(f32), fmax(f32));
751 try testArgs(f32, fmax(f32), inf(f32));
752 try testArgs(f32, fmax(f32), nan(f32));
753
754 try testArgs(f32, inf(f32), -nan(f32));
755 try testArgs(f32, inf(f32), -inf(f32));
756 try testArgs(f32, inf(f32), -fmax(f32));
757 try testArgs(f32, inf(f32), -1e1);
758 try testArgs(f32, inf(f32), -1e0);
759 try testArgs(f32, inf(f32), -1e-1);
760 try testArgs(f32, inf(f32), -fmin(f32));
761 try testArgs(f32, inf(f32), -tmin(f32));
762 try testArgs(f32, inf(f32), -0.0);
763 try testArgs(f32, inf(f32), 0.0);
764 try testArgs(f32, inf(f32), tmin(f32));
765 try testArgs(f32, inf(f32), fmin(f32));
766 try testArgs(f32, inf(f32), 1e-1);
767 try testArgs(f32, inf(f32), 1e0);
768 try testArgs(f32, inf(f32), 1e1);
769 try testArgs(f32, inf(f32), fmax(f32));
770 try testArgs(f32, inf(f32), inf(f32));
771 try testArgs(f32, inf(f32), nan(f32));
772
773 try testArgs(f32, nan(f32), -nan(f32));
774 try testArgs(f32, nan(f32), -inf(f32));
775 try testArgs(f32, nan(f32), -fmax(f32));
776 try testArgs(f32, nan(f32), -1e1);
777 try testArgs(f32, nan(f32), -1e0);
778 try testArgs(f32, nan(f32), -1e-1);
779 try testArgs(f32, nan(f32), -fmin(f32));
780 try testArgs(f32, nan(f32), -tmin(f32));
781 try testArgs(f32, nan(f32), -0.0);
782 try testArgs(f32, nan(f32), 0.0);
783 try testArgs(f32, nan(f32), tmin(f32));
784 try testArgs(f32, nan(f32), fmin(f32));
785 try testArgs(f32, nan(f32), 1e-1);
786 try testArgs(f32, nan(f32), 1e0);
787 try testArgs(f32, nan(f32), 1e1);
788 try testArgs(f32, nan(f32), fmax(f32));
789 try testArgs(f32, nan(f32), inf(f32));
790 try testArgs(f32, nan(f32), nan(f32));
791
792 try testArgs(f64, -nan(f64), -nan(f64));
793 try testArgs(f64, -nan(f64), -inf(f64));
794 try testArgs(f64, -nan(f64), -fmax(f64));
795 try testArgs(f64, -nan(f64), -1e1);
796 try testArgs(f64, -nan(f64), -1e0);
797 try testArgs(f64, -nan(f64), -1e-1);
798 try testArgs(f64, -nan(f64), -fmin(f64));
799 try testArgs(f64, -nan(f64), -tmin(f64));
800 try testArgs(f64, -nan(f64), -0.0);
801 try testArgs(f64, -nan(f64), 0.0);
802 try testArgs(f64, -nan(f64), tmin(f64));
803 try testArgs(f64, -nan(f64), fmin(f64));
804 try testArgs(f64, -nan(f64), 1e-1);
805 try testArgs(f64, -nan(f64), 1e0);
806 try testArgs(f64, -nan(f64), 1e1);
807 try testArgs(f64, -nan(f64), fmax(f64));
808 try testArgs(f64, -nan(f64), inf(f64));
809 try testArgs(f64, -nan(f64), nan(f64));
810
811 try testArgs(f64, -inf(f64), -nan(f64));
812 try testArgs(f64, -inf(f64), -inf(f64));
813 try testArgs(f64, -inf(f64), -fmax(f64));
814 try testArgs(f64, -inf(f64), -1e1);
815 try testArgs(f64, -inf(f64), -1e0);
816 try testArgs(f64, -inf(f64), -1e-1);
817 try testArgs(f64, -inf(f64), -fmin(f64));
818 try testArgs(f64, -inf(f64), -tmin(f64));
819 try testArgs(f64, -inf(f64), -0.0);
820 try testArgs(f64, -inf(f64), 0.0);
821 try testArgs(f64, -inf(f64), tmin(f64));
822 try testArgs(f64, -inf(f64), fmin(f64));
823 try testArgs(f64, -inf(f64), 1e-1);
824 try testArgs(f64, -inf(f64), 1e0);
825 try testArgs(f64, -inf(f64), 1e1);
826 try testArgs(f64, -inf(f64), fmax(f64));
827 try testArgs(f64, -inf(f64), inf(f64));
828 try testArgs(f64, -inf(f64), nan(f64));
829
830 try testArgs(f64, -fmax(f64), -nan(f64));
831 try testArgs(f64, -fmax(f64), -inf(f64));
832 try testArgs(f64, -fmax(f64), -fmax(f64));
833 try testArgs(f64, -fmax(f64), -1e1);
834 try testArgs(f64, -fmax(f64), -1e0);
835 try testArgs(f64, -fmax(f64), -1e-1);
836 try testArgs(f64, -fmax(f64), -fmin(f64));
837 try testArgs(f64, -fmax(f64), -tmin(f64));
838 try testArgs(f64, -fmax(f64), -0.0);
839 try testArgs(f64, -fmax(f64), 0.0);
840 try testArgs(f64, -fmax(f64), tmin(f64));
841 try testArgs(f64, -fmax(f64), fmin(f64));
842 try testArgs(f64, -fmax(f64), 1e-1);
843 try testArgs(f64, -fmax(f64), 1e0);
844 try testArgs(f64, -fmax(f64), 1e1);
845 try testArgs(f64, -fmax(f64), fmax(f64));
846 try testArgs(f64, -fmax(f64), inf(f64));
847 try testArgs(f64, -fmax(f64), nan(f64));
848
849 try testArgs(f64, -1e1, -nan(f64));
850 try testArgs(f64, -1e1, -inf(f64));
851 try testArgs(f64, -1e1, -fmax(f64));
852 try testArgs(f64, -1e1, -1e1);
853 try testArgs(f64, -1e1, -1e0);
854 try testArgs(f64, -1e1, -1e-1);
855 try testArgs(f64, -1e1, -fmin(f64));
856 try testArgs(f64, -1e1, -tmin(f64));
857 try testArgs(f64, -1e1, -0.0);
858 try testArgs(f64, -1e1, 0.0);
859 try testArgs(f64, -1e1, tmin(f64));
860 try testArgs(f64, -1e1, fmin(f64));
861 try testArgs(f64, -1e1, 1e-1);
862 try testArgs(f64, -1e1, 1e0);
863 try testArgs(f64, -1e1, 1e1);
864 try testArgs(f64, -1e1, fmax(f64));
865 try testArgs(f64, -1e1, inf(f64));
866 try testArgs(f64, -1e1, nan(f64));
867
868 try testArgs(f64, -1e0, -nan(f64));
869 try testArgs(f64, -1e0, -inf(f64));
870 try testArgs(f64, -1e0, -fmax(f64));
871 try testArgs(f64, -1e0, -1e1);
872 try testArgs(f64, -1e0, -1e0);
873 try testArgs(f64, -1e0, -1e-1);
874 try testArgs(f64, -1e0, -fmin(f64));
875 try testArgs(f64, -1e0, -tmin(f64));
876 try testArgs(f64, -1e0, -0.0);
877 try testArgs(f64, -1e0, 0.0);
878 try testArgs(f64, -1e0, tmin(f64));
879 try testArgs(f64, -1e0, fmin(f64));
880 try testArgs(f64, -1e0, 1e-1);
881 try testArgs(f64, -1e0, 1e0);
882 try testArgs(f64, -1e0, 1e1);
883 try testArgs(f64, -1e0, fmax(f64));
884 try testArgs(f64, -1e0, inf(f64));
885 try testArgs(f64, -1e0, nan(f64));
886
887 try testArgs(f64, -1e-1, -nan(f64));
888 try testArgs(f64, -1e-1, -inf(f64));
889 try testArgs(f64, -1e-1, -fmax(f64));
890 try testArgs(f64, -1e-1, -1e1);
891 try testArgs(f64, -1e-1, -1e0);
892 try testArgs(f64, -1e-1, -1e-1);
893 try testArgs(f64, -1e-1, -fmin(f64));
894 try testArgs(f64, -1e-1, -tmin(f64));
895 try testArgs(f64, -1e-1, -0.0);
896 try testArgs(f64, -1e-1, 0.0);
897 try testArgs(f64, -1e-1, tmin(f64));
898 try testArgs(f64, -1e-1, fmin(f64));
899 try testArgs(f64, -1e-1, 1e-1);
900 try testArgs(f64, -1e-1, 1e0);
901 try testArgs(f64, -1e-1, 1e1);
902 try testArgs(f64, -1e-1, fmax(f64));
903 try testArgs(f64, -1e-1, inf(f64));
904 try testArgs(f64, -1e-1, nan(f64));
905
906 try testArgs(f64, -fmin(f64), -nan(f64));
907 try testArgs(f64, -fmin(f64), -inf(f64));
908 try testArgs(f64, -fmin(f64), -fmax(f64));
909 try testArgs(f64, -fmin(f64), -1e1);
910 try testArgs(f64, -fmin(f64), -1e0);
911 try testArgs(f64, -fmin(f64), -1e-1);
912 try testArgs(f64, -fmin(f64), -fmin(f64));
913 try testArgs(f64, -fmin(f64), -tmin(f64));
914 try testArgs(f64, -fmin(f64), -0.0);
915 try testArgs(f64, -fmin(f64), 0.0);
916 try testArgs(f64, -fmin(f64), tmin(f64));
917 try testArgs(f64, -fmin(f64), fmin(f64));
918 try testArgs(f64, -fmin(f64), 1e-1);
919 try testArgs(f64, -fmin(f64), 1e0);
920 try testArgs(f64, -fmin(f64), 1e1);
921 try testArgs(f64, -fmin(f64), fmax(f64));
922 try testArgs(f64, -fmin(f64), inf(f64));
923 try testArgs(f64, -fmin(f64), nan(f64));
924
925 try testArgs(f64, -tmin(f64), -nan(f64));
926 try testArgs(f64, -tmin(f64), -inf(f64));
927 try testArgs(f64, -tmin(f64), -fmax(f64));
928 try testArgs(f64, -tmin(f64), -1e1);
929 try testArgs(f64, -tmin(f64), -1e0);
930 try testArgs(f64, -tmin(f64), -1e-1);
931 try testArgs(f64, -tmin(f64), -fmin(f64));
932 try testArgs(f64, -tmin(f64), -tmin(f64));
933 try testArgs(f64, -tmin(f64), -0.0);
934 try testArgs(f64, -tmin(f64), 0.0);
935 try testArgs(f64, -tmin(f64), tmin(f64));
936 try testArgs(f64, -tmin(f64), fmin(f64));
937 try testArgs(f64, -tmin(f64), 1e-1);
938 try testArgs(f64, -tmin(f64), 1e0);
939 try testArgs(f64, -tmin(f64), 1e1);
940 try testArgs(f64, -tmin(f64), fmax(f64));
941 try testArgs(f64, -tmin(f64), inf(f64));
942 try testArgs(f64, -tmin(f64), nan(f64));
943
944 try testArgs(f64, -0.0, -nan(f64));
945 try testArgs(f64, -0.0, -inf(f64));
946 try testArgs(f64, -0.0, -fmax(f64));
947 try testArgs(f64, -0.0, -1e1);
948 try testArgs(f64, -0.0, -1e0);
949 try testArgs(f64, -0.0, -1e-1);
950 try testArgs(f64, -0.0, -fmin(f64));
951 try testArgs(f64, -0.0, -tmin(f64));
952 try testArgs(f64, -0.0, -0.0);
953 try testArgs(f64, -0.0, 0.0);
954 try testArgs(f64, -0.0, tmin(f64));
955 try testArgs(f64, -0.0, fmin(f64));
956 try testArgs(f64, -0.0, 1e-1);
957 try testArgs(f64, -0.0, 1e0);
958 try testArgs(f64, -0.0, 1e1);
959 try testArgs(f64, -0.0, fmax(f64));
960 try testArgs(f64, -0.0, inf(f64));
961 try testArgs(f64, -0.0, nan(f64));
962
963 try testArgs(f64, 0.0, -nan(f64));
964 try testArgs(f64, 0.0, -inf(f64));
965 try testArgs(f64, 0.0, -fmax(f64));
966 try testArgs(f64, 0.0, -1e1);
967 try testArgs(f64, 0.0, -1e0);
968 try testArgs(f64, 0.0, -1e-1);
969 try testArgs(f64, 0.0, -fmin(f64));
970 try testArgs(f64, 0.0, -tmin(f64));
971 try testArgs(f64, 0.0, -0.0);
972 try testArgs(f64, 0.0, 0.0);
973 try testArgs(f64, 0.0, tmin(f64));
974 try testArgs(f64, 0.0, fmin(f64));
975 try testArgs(f64, 0.0, 1e-1);
976 try testArgs(f64, 0.0, 1e0);
977 try testArgs(f64, 0.0, 1e1);
978 try testArgs(f64, 0.0, fmax(f64));
979 try testArgs(f64, 0.0, inf(f64));
980 try testArgs(f64, 0.0, nan(f64));
981
982 try testArgs(f64, tmin(f64), -nan(f64));
983 try testArgs(f64, tmin(f64), -inf(f64));
984 try testArgs(f64, tmin(f64), -fmax(f64));
985 try testArgs(f64, tmin(f64), -1e1);
986 try testArgs(f64, tmin(f64), -1e0);
987 try testArgs(f64, tmin(f64), -1e-1);
988 try testArgs(f64, tmin(f64), -fmin(f64));
989 try testArgs(f64, tmin(f64), -tmin(f64));
990 try testArgs(f64, tmin(f64), -0.0);
991 try testArgs(f64, tmin(f64), 0.0);
992 try testArgs(f64, tmin(f64), tmin(f64));
993 try testArgs(f64, tmin(f64), fmin(f64));
994 try testArgs(f64, tmin(f64), 1e-1);
995 try testArgs(f64, tmin(f64), 1e0);
996 try testArgs(f64, tmin(f64), 1e1);
997 try testArgs(f64, tmin(f64), fmax(f64));
998 try testArgs(f64, tmin(f64), inf(f64));
999 try testArgs(f64, tmin(f64), nan(f64));
1000
1001 try testArgs(f64, fmin(f64), -nan(f64));
1002 try testArgs(f64, fmin(f64), -inf(f64));
1003 try testArgs(f64, fmin(f64), -fmax(f64));
1004 try testArgs(f64, fmin(f64), -1e1);
1005 try testArgs(f64, fmin(f64), -1e0);
1006 try testArgs(f64, fmin(f64), -1e-1);
1007 try testArgs(f64, fmin(f64), -fmin(f64));
1008 try testArgs(f64, fmin(f64), -tmin(f64));
1009 try testArgs(f64, fmin(f64), -0.0);
1010 try testArgs(f64, fmin(f64), 0.0);
1011 try testArgs(f64, fmin(f64), tmin(f64));
1012 try testArgs(f64, fmin(f64), fmin(f64));
1013 try testArgs(f64, fmin(f64), 1e-1);
1014 try testArgs(f64, fmin(f64), 1e0);
1015 try testArgs(f64, fmin(f64), 1e1);
1016 try testArgs(f64, fmin(f64), fmax(f64));
1017 try testArgs(f64, fmin(f64), inf(f64));
1018 try testArgs(f64, fmin(f64), nan(f64));
1019
1020 try testArgs(f64, 1e-1, -nan(f64));
1021 try testArgs(f64, 1e-1, -inf(f64));
1022 try testArgs(f64, 1e-1, -fmax(f64));
1023 try testArgs(f64, 1e-1, -1e1);
1024 try testArgs(f64, 1e-1, -1e0);
1025 try testArgs(f64, 1e-1, -1e-1);
1026 try testArgs(f64, 1e-1, -fmin(f64));
1027 try testArgs(f64, 1e-1, -tmin(f64));
1028 try testArgs(f64, 1e-1, -0.0);
1029 try testArgs(f64, 1e-1, 0.0);
1030 try testArgs(f64, 1e-1, tmin(f64));
1031 try testArgs(f64, 1e-1, fmin(f64));
1032 try testArgs(f64, 1e-1, 1e-1);
1033 try testArgs(f64, 1e-1, 1e0);
1034 try testArgs(f64, 1e-1, 1e1);
1035 try testArgs(f64, 1e-1, fmax(f64));
1036 try testArgs(f64, 1e-1, inf(f64));
1037 try testArgs(f64, 1e-1, nan(f64));
1038
1039 try testArgs(f64, 1e0, -nan(f64));
1040 try testArgs(f64, 1e0, -inf(f64));
1041 try testArgs(f64, 1e0, -fmax(f64));
1042 try testArgs(f64, 1e0, -1e1);
1043 try testArgs(f64, 1e0, -1e0);
1044 try testArgs(f64, 1e0, -1e-1);
1045 try testArgs(f64, 1e0, -fmin(f64));
1046 try testArgs(f64, 1e0, -tmin(f64));
1047 try testArgs(f64, 1e0, -0.0);
1048 try testArgs(f64, 1e0, 0.0);
1049 try testArgs(f64, 1e0, tmin(f64));
1050 try testArgs(f64, 1e0, fmin(f64));
1051 try testArgs(f64, 1e0, 1e-1);
1052 try testArgs(f64, 1e0, 1e0);
1053 try testArgs(f64, 1e0, 1e1);
1054 try testArgs(f64, 1e0, fmax(f64));
1055 try testArgs(f64, 1e0, inf(f64));
1056 try testArgs(f64, 1e0, nan(f64));
1057
1058 try testArgs(f64, 1e1, -nan(f64));
1059 try testArgs(f64, 1e1, -inf(f64));
1060 try testArgs(f64, 1e1, -fmax(f64));
1061 try testArgs(f64, 1e1, -1e1);
1062 try testArgs(f64, 1e1, -1e0);
1063 try testArgs(f64, 1e1, -1e-1);
1064 try testArgs(f64, 1e1, -fmin(f64));
1065 try testArgs(f64, 1e1, -tmin(f64));
1066 try testArgs(f64, 1e1, -0.0);
1067 try testArgs(f64, 1e1, 0.0);
1068 try testArgs(f64, 1e1, tmin(f64));
1069 try testArgs(f64, 1e1, fmin(f64));
1070 try testArgs(f64, 1e1, 1e-1);
1071 try testArgs(f64, 1e1, 1e0);
1072 try testArgs(f64, 1e1, 1e1);
1073 try testArgs(f64, 1e1, fmax(f64));
1074 try testArgs(f64, 1e1, inf(f64));
1075 try testArgs(f64, 1e1, nan(f64));
1076
1077 try testArgs(f64, fmax(f64), -nan(f64));
1078 try testArgs(f64, fmax(f64), -inf(f64));
1079 try testArgs(f64, fmax(f64), -fmax(f64));
1080 try testArgs(f64, fmax(f64), -1e1);
1081 try testArgs(f64, fmax(f64), -1e0);
1082 try testArgs(f64, fmax(f64), -1e-1);
1083 try testArgs(f64, fmax(f64), -fmin(f64));
1084 try testArgs(f64, fmax(f64), -tmin(f64));
1085 try testArgs(f64, fmax(f64), -0.0);
1086 try testArgs(f64, fmax(f64), 0.0);
1087 try testArgs(f64, fmax(f64), tmin(f64));
1088 try testArgs(f64, fmax(f64), fmin(f64));
1089 try testArgs(f64, fmax(f64), 1e-1);
1090 try testArgs(f64, fmax(f64), 1e0);
1091 try testArgs(f64, fmax(f64), 1e1);
1092 try testArgs(f64, fmax(f64), fmax(f64));
1093 try testArgs(f64, fmax(f64), inf(f64));
1094 try testArgs(f64, fmax(f64), nan(f64));
1095
1096 try testArgs(f64, inf(f64), -nan(f64));
1097 try testArgs(f64, inf(f64), -inf(f64));
1098 try testArgs(f64, inf(f64), -fmax(f64));
1099 try testArgs(f64, inf(f64), -1e1);
1100 try testArgs(f64, inf(f64), -1e0);
1101 try testArgs(f64, inf(f64), -1e-1);
1102 try testArgs(f64, inf(f64), -fmin(f64));
1103 try testArgs(f64, inf(f64), -tmin(f64));
1104 try testArgs(f64, inf(f64), -0.0);
1105 try testArgs(f64, inf(f64), 0.0);
1106 try testArgs(f64, inf(f64), tmin(f64));
1107 try testArgs(f64, inf(f64), fmin(f64));
1108 try testArgs(f64, inf(f64), 1e-1);
1109 try testArgs(f64, inf(f64), 1e0);
1110 try testArgs(f64, inf(f64), 1e1);
1111 try testArgs(f64, inf(f64), fmax(f64));
1112 try testArgs(f64, inf(f64), inf(f64));
1113 try testArgs(f64, inf(f64), nan(f64));
1114
1115 try testArgs(f64, nan(f64), -nan(f64));
1116 try testArgs(f64, nan(f64), -inf(f64));
1117 try testArgs(f64, nan(f64), -fmax(f64));
1118 try testArgs(f64, nan(f64), -1e1);
1119 try testArgs(f64, nan(f64), -1e0);
1120 try testArgs(f64, nan(f64), -1e-1);
1121 try testArgs(f64, nan(f64), -fmin(f64));
1122 try testArgs(f64, nan(f64), -tmin(f64));
1123 try testArgs(f64, nan(f64), -0.0);
1124 try testArgs(f64, nan(f64), 0.0);
1125 try testArgs(f64, nan(f64), tmin(f64));
1126 try testArgs(f64, nan(f64), fmin(f64));
1127 try testArgs(f64, nan(f64), 1e-1);
1128 try testArgs(f64, nan(f64), 1e0);
1129 try testArgs(f64, nan(f64), 1e1);
1130 try testArgs(f64, nan(f64), fmax(f64));
1131 try testArgs(f64, nan(f64), inf(f64));
1132 try testArgs(f64, nan(f64), nan(f64));
1133
1134 try testArgs(f80, -nan(f80), -nan(f80));
1135 try testArgs(f80, -nan(f80), -inf(f80));
1136 try testArgs(f80, -nan(f80), -fmax(f80));
1137 try testArgs(f80, -nan(f80), -1e1);
1138 try testArgs(f80, -nan(f80), -1e0);
1139 try testArgs(f80, -nan(f80), -1e-1);
1140 try testArgs(f80, -nan(f80), -fmin(f80));
1141 try testArgs(f80, -nan(f80), -tmin(f80));
1142 try testArgs(f80, -nan(f80), -0.0);
1143 try testArgs(f80, -nan(f80), 0.0);
1144 try testArgs(f80, -nan(f80), tmin(f80));
1145 try testArgs(f80, -nan(f80), fmin(f80));
1146 try testArgs(f80, -nan(f80), 1e-1);
1147 try testArgs(f80, -nan(f80), 1e0);
1148 try testArgs(f80, -nan(f80), 1e1);
1149 try testArgs(f80, -nan(f80), fmax(f80));
1150 try testArgs(f80, -nan(f80), inf(f80));
1151 try testArgs(f80, -nan(f80), nan(f80));
1152
1153 try testArgs(f80, -inf(f80), -nan(f80));
1154 try testArgs(f80, -inf(f80), -inf(f80));
1155 try testArgs(f80, -inf(f80), -fmax(f80));
1156 try testArgs(f80, -inf(f80), -1e1);
1157 try testArgs(f80, -inf(f80), -1e0);
1158 try testArgs(f80, -inf(f80), -1e-1);
1159 try testArgs(f80, -inf(f80), -fmin(f80));
1160 try testArgs(f80, -inf(f80), -tmin(f80));
1161 try testArgs(f80, -inf(f80), -0.0);
1162 try testArgs(f80, -inf(f80), 0.0);
1163 try testArgs(f80, -inf(f80), tmin(f80));
1164 try testArgs(f80, -inf(f80), fmin(f80));
1165 try testArgs(f80, -inf(f80), 1e-1);
1166 try testArgs(f80, -inf(f80), 1e0);
1167 try testArgs(f80, -inf(f80), 1e1);
1168 try testArgs(f80, -inf(f80), fmax(f80));
1169 try testArgs(f80, -inf(f80), inf(f80));
1170 try testArgs(f80, -inf(f80), nan(f80));
1171
1172 try testArgs(f80, -fmax(f80), -nan(f80));
1173 try testArgs(f80, -fmax(f80), -inf(f80));
1174 try testArgs(f80, -fmax(f80), -fmax(f80));
1175 try testArgs(f80, -fmax(f80), -1e1);
1176 try testArgs(f80, -fmax(f80), -1e0);
1177 try testArgs(f80, -fmax(f80), -1e-1);
1178 try testArgs(f80, -fmax(f80), -fmin(f80));
1179 try testArgs(f80, -fmax(f80), -tmin(f80));
1180 try testArgs(f80, -fmax(f80), -0.0);
1181 try testArgs(f80, -fmax(f80), 0.0);
1182 try testArgs(f80, -fmax(f80), tmin(f80));
1183 try testArgs(f80, -fmax(f80), fmin(f80));
1184 try testArgs(f80, -fmax(f80), 1e-1);
1185 try testArgs(f80, -fmax(f80), 1e0);
1186 try testArgs(f80, -fmax(f80), 1e1);
1187 try testArgs(f80, -fmax(f80), fmax(f80));
1188 try testArgs(f80, -fmax(f80), inf(f80));
1189 try testArgs(f80, -fmax(f80), nan(f80));
1190
1191 try testArgs(f80, -1e1, -nan(f80));
1192 try testArgs(f80, -1e1, -inf(f80));
1193 try testArgs(f80, -1e1, -fmax(f80));
1194 try testArgs(f80, -1e1, -1e1);
1195 try testArgs(f80, -1e1, -1e0);
1196 try testArgs(f80, -1e1, -1e-1);
1197 try testArgs(f80, -1e1, -fmin(f80));
1198 try testArgs(f80, -1e1, -tmin(f80));
1199 try testArgs(f80, -1e1, -0.0);
1200 try testArgs(f80, -1e1, 0.0);
1201 try testArgs(f80, -1e1, tmin(f80));
1202 try testArgs(f80, -1e1, fmin(f80));
1203 try testArgs(f80, -1e1, 1e-1);
1204 try testArgs(f80, -1e1, 1e0);
1205 try testArgs(f80, -1e1, 1e1);
1206 try testArgs(f80, -1e1, fmax(f80));
1207 try testArgs(f80, -1e1, inf(f80));
1208 try testArgs(f80, -1e1, nan(f80));
1209
1210 try testArgs(f80, -1e0, -nan(f80));
1211 try testArgs(f80, -1e0, -inf(f80));
1212 try testArgs(f80, -1e0, -fmax(f80));
1213 try testArgs(f80, -1e0, -1e1);
1214 try testArgs(f80, -1e0, -1e0);
1215 try testArgs(f80, -1e0, -1e-1);
1216 try testArgs(f80, -1e0, -fmin(f80));
1217 try testArgs(f80, -1e0, -tmin(f80));
1218 try testArgs(f80, -1e0, -0.0);
1219 try testArgs(f80, -1e0, 0.0);
1220 try testArgs(f80, -1e0, tmin(f80));
1221 try testArgs(f80, -1e0, fmin(f80));
1222 try testArgs(f80, -1e0, 1e-1);
1223 try testArgs(f80, -1e0, 1e0);
1224 try testArgs(f80, -1e0, 1e1);
1225 try testArgs(f80, -1e0, fmax(f80));
1226 try testArgs(f80, -1e0, inf(f80));
1227 try testArgs(f80, -1e0, nan(f80));
1228
1229 try testArgs(f80, -1e-1, -nan(f80));
1230 try testArgs(f80, -1e-1, -inf(f80));
1231 try testArgs(f80, -1e-1, -fmax(f80));
1232 try testArgs(f80, -1e-1, -1e1);
1233 try testArgs(f80, -1e-1, -1e0);
1234 try testArgs(f80, -1e-1, -1e-1);
1235 try testArgs(f80, -1e-1, -fmin(f80));
1236 try testArgs(f80, -1e-1, -tmin(f80));
1237 try testArgs(f80, -1e-1, -0.0);
1238 try testArgs(f80, -1e-1, 0.0);
1239 try testArgs(f80, -1e-1, tmin(f80));
1240 try testArgs(f80, -1e-1, fmin(f80));
1241 try testArgs(f80, -1e-1, 1e-1);
1242 try testArgs(f80, -1e-1, 1e0);
1243 try testArgs(f80, -1e-1, 1e1);
1244 try testArgs(f80, -1e-1, fmax(f80));
1245 try testArgs(f80, -1e-1, inf(f80));
1246 try testArgs(f80, -1e-1, nan(f80));
1247
1248 try testArgs(f80, -fmin(f80), -nan(f80));
1249 try testArgs(f80, -fmin(f80), -inf(f80));
1250 try testArgs(f80, -fmin(f80), -fmax(f80));
1251 try testArgs(f80, -fmin(f80), -1e1);
1252 try testArgs(f80, -fmin(f80), -1e0);
1253 try testArgs(f80, -fmin(f80), -1e-1);
1254 try testArgs(f80, -fmin(f80), -fmin(f80));
1255 try testArgs(f80, -fmin(f80), -tmin(f80));
1256 try testArgs(f80, -fmin(f80), -0.0);
1257 try testArgs(f80, -fmin(f80), 0.0);
1258 try testArgs(f80, -fmin(f80), tmin(f80));
1259 try testArgs(f80, -fmin(f80), fmin(f80));
1260 try testArgs(f80, -fmin(f80), 1e-1);
1261 try testArgs(f80, -fmin(f80), 1e0);
1262 try testArgs(f80, -fmin(f80), 1e1);
1263 try testArgs(f80, -fmin(f80), fmax(f80));
1264 try testArgs(f80, -fmin(f80), inf(f80));
1265 try testArgs(f80, -fmin(f80), nan(f80));
1266
1267 try testArgs(f80, -tmin(f80), -nan(f80));
1268 try testArgs(f80, -tmin(f80), -inf(f80));
1269 try testArgs(f80, -tmin(f80), -fmax(f80));
1270 try testArgs(f80, -tmin(f80), -1e1);
1271 try testArgs(f80, -tmin(f80), -1e0);
1272 try testArgs(f80, -tmin(f80), -1e-1);
1273 try testArgs(f80, -tmin(f80), -fmin(f80));
1274 try testArgs(f80, -tmin(f80), -tmin(f80));
1275 try testArgs(f80, -tmin(f80), -0.0);
1276 try testArgs(f80, -tmin(f80), 0.0);
1277 try testArgs(f80, -tmin(f80), tmin(f80));
1278 try testArgs(f80, -tmin(f80), fmin(f80));
1279 try testArgs(f80, -tmin(f80), 1e-1);
1280 try testArgs(f80, -tmin(f80), 1e0);
1281 try testArgs(f80, -tmin(f80), 1e1);
1282 try testArgs(f80, -tmin(f80), fmax(f80));
1283 try testArgs(f80, -tmin(f80), inf(f80));
1284 try testArgs(f80, -tmin(f80), nan(f80));
1285
1286 try testArgs(f80, -0.0, -nan(f80));
1287 try testArgs(f80, -0.0, -inf(f80));
1288 try testArgs(f80, -0.0, -fmax(f80));
1289 try testArgs(f80, -0.0, -1e1);
1290 try testArgs(f80, -0.0, -1e0);
1291 try testArgs(f80, -0.0, -1e-1);
1292 try testArgs(f80, -0.0, -fmin(f80));
1293 try testArgs(f80, -0.0, -tmin(f80));
1294 try testArgs(f80, -0.0, -0.0);
1295 try testArgs(f80, -0.0, 0.0);
1296 try testArgs(f80, -0.0, tmin(f80));
1297 try testArgs(f80, -0.0, fmin(f80));
1298 try testArgs(f80, -0.0, 1e-1);
1299 try testArgs(f80, -0.0, 1e0);
1300 try testArgs(f80, -0.0, 1e1);
1301 try testArgs(f80, -0.0, fmax(f80));
1302 try testArgs(f80, -0.0, inf(f80));
1303 try testArgs(f80, -0.0, nan(f80));
1304
1305 try testArgs(f80, 0.0, -nan(f80));
1306 try testArgs(f80, 0.0, -inf(f80));
1307 try testArgs(f80, 0.0, -fmax(f80));
1308 try testArgs(f80, 0.0, -1e1);
1309 try testArgs(f80, 0.0, -1e0);
1310 try testArgs(f80, 0.0, -1e-1);
1311 try testArgs(f80, 0.0, -fmin(f80));
1312 try testArgs(f80, 0.0, -tmin(f80));
1313 try testArgs(f80, 0.0, -0.0);
1314 try testArgs(f80, 0.0, 0.0);
1315 try testArgs(f80, 0.0, tmin(f80));
1316 try testArgs(f80, 0.0, fmin(f80));
1317 try testArgs(f80, 0.0, 1e-1);
1318 try testArgs(f80, 0.0, 1e0);
1319 try testArgs(f80, 0.0, 1e1);
1320 try testArgs(f80, 0.0, fmax(f80));
1321 try testArgs(f80, 0.0, inf(f80));
1322 try testArgs(f80, 0.0, nan(f80));
1323
1324 try testArgs(f80, tmin(f80), -nan(f80));
1325 try testArgs(f80, tmin(f80), -inf(f80));
1326 try testArgs(f80, tmin(f80), -fmax(f80));
1327 try testArgs(f80, tmin(f80), -1e1);
1328 try testArgs(f80, tmin(f80), -1e0);
1329 try testArgs(f80, tmin(f80), -1e-1);
1330 try testArgs(f80, tmin(f80), -fmin(f80));
1331 try testArgs(f80, tmin(f80), -tmin(f80));
1332 try testArgs(f80, tmin(f80), -0.0);
1333 try testArgs(f80, tmin(f80), 0.0);
1334 try testArgs(f80, tmin(f80), tmin(f80));
1335 try testArgs(f80, tmin(f80), fmin(f80));
1336 try testArgs(f80, tmin(f80), 1e-1);
1337 try testArgs(f80, tmin(f80), 1e0);
1338 try testArgs(f80, tmin(f80), 1e1);
1339 try testArgs(f80, tmin(f80), fmax(f80));
1340 try testArgs(f80, tmin(f80), inf(f80));
1341 try testArgs(f80, tmin(f80), nan(f80));
1342
1343 try testArgs(f80, fmin(f80), -nan(f80));
1344 try testArgs(f80, fmin(f80), -inf(f80));
1345 try testArgs(f80, fmin(f80), -fmax(f80));
1346 try testArgs(f80, fmin(f80), -1e1);
1347 try testArgs(f80, fmin(f80), -1e0);
1348 try testArgs(f80, fmin(f80), -1e-1);
1349 try testArgs(f80, fmin(f80), -fmin(f80));
1350 try testArgs(f80, fmin(f80), -tmin(f80));
1351 try testArgs(f80, fmin(f80), -0.0);
1352 try testArgs(f80, fmin(f80), 0.0);
1353 try testArgs(f80, fmin(f80), tmin(f80));
1354 try testArgs(f80, fmin(f80), fmin(f80));
1355 try testArgs(f80, fmin(f80), 1e-1);
1356 try testArgs(f80, fmin(f80), 1e0);
1357 try testArgs(f80, fmin(f80), 1e1);
1358 try testArgs(f80, fmin(f80), fmax(f80));
1359 try testArgs(f80, fmin(f80), inf(f80));
1360 try testArgs(f80, fmin(f80), nan(f80));
1361
1362 try testArgs(f80, 1e-1, -nan(f80));
1363 try testArgs(f80, 1e-1, -inf(f80));
1364 try testArgs(f80, 1e-1, -fmax(f80));
1365 try testArgs(f80, 1e-1, -1e1);
1366 try testArgs(f80, 1e-1, -1e0);
1367 try testArgs(f80, 1e-1, -1e-1);
1368 try testArgs(f80, 1e-1, -fmin(f80));
1369 try testArgs(f80, 1e-1, -tmin(f80));
1370 try testArgs(f80, 1e-1, -0.0);
1371 try testArgs(f80, 1e-1, 0.0);
1372 try testArgs(f80, 1e-1, tmin(f80));
1373 try testArgs(f80, 1e-1, fmin(f80));
1374 try testArgs(f80, 1e-1, 1e-1);
1375 try testArgs(f80, 1e-1, 1e0);
1376 try testArgs(f80, 1e-1, 1e1);
1377 try testArgs(f80, 1e-1, fmax(f80));
1378 try testArgs(f80, 1e-1, inf(f80));
1379 try testArgs(f80, 1e-1, nan(f80));
1380
1381 try testArgs(f80, 1e0, -nan(f80));
1382 try testArgs(f80, 1e0, -inf(f80));
1383 try testArgs(f80, 1e0, -fmax(f80));
1384 try testArgs(f80, 1e0, -1e1);
1385 try testArgs(f80, 1e0, -1e0);
1386 try testArgs(f80, 1e0, -1e-1);
1387 try testArgs(f80, 1e0, -fmin(f80));
1388 try testArgs(f80, 1e0, -tmin(f80));
1389 try testArgs(f80, 1e0, -0.0);
1390 try testArgs(f80, 1e0, 0.0);
1391 try testArgs(f80, 1e0, tmin(f80));
1392 try testArgs(f80, 1e0, fmin(f80));
1393 try testArgs(f80, 1e0, 1e-1);
1394 try testArgs(f80, 1e0, 1e0);
1395 try testArgs(f80, 1e0, 1e1);
1396 try testArgs(f80, 1e0, fmax(f80));
1397 try testArgs(f80, 1e0, inf(f80));
1398 try testArgs(f80, 1e0, nan(f80));
1399
1400 try testArgs(f80, 1e1, -nan(f80));
1401 try testArgs(f80, 1e1, -inf(f80));
1402 try testArgs(f80, 1e1, -fmax(f80));
1403 try testArgs(f80, 1e1, -1e1);
1404 try testArgs(f80, 1e1, -1e0);
1405 try testArgs(f80, 1e1, -1e-1);
1406 try testArgs(f80, 1e1, -fmin(f80));
1407 try testArgs(f80, 1e1, -tmin(f80));
1408 try testArgs(f80, 1e1, -0.0);
1409 try testArgs(f80, 1e1, 0.0);
1410 try testArgs(f80, 1e1, tmin(f80));
1411 try testArgs(f80, 1e1, fmin(f80));
1412 try testArgs(f80, 1e1, 1e-1);
1413 try testArgs(f80, 1e1, 1e0);
1414 try testArgs(f80, 1e1, 1e1);
1415 try testArgs(f80, 1e1, fmax(f80));
1416 try testArgs(f80, 1e1, inf(f80));
1417 try testArgs(f80, 1e1, nan(f80));
1418
1419 try testArgs(f80, fmax(f80), -nan(f80));
1420 try testArgs(f80, fmax(f80), -inf(f80));
1421 try testArgs(f80, fmax(f80), -fmax(f80));
1422 try testArgs(f80, fmax(f80), -1e1);
1423 try testArgs(f80, fmax(f80), -1e0);
1424 try testArgs(f80, fmax(f80), -1e-1);
1425 try testArgs(f80, fmax(f80), -fmin(f80));
1426 try testArgs(f80, fmax(f80), -tmin(f80));
1427 try testArgs(f80, fmax(f80), -0.0);
1428 try testArgs(f80, fmax(f80), 0.0);
1429 try testArgs(f80, fmax(f80), tmin(f80));
1430 try testArgs(f80, fmax(f80), fmin(f80));
1431 try testArgs(f80, fmax(f80), 1e-1);
1432 try testArgs(f80, fmax(f80), 1e0);
1433 try testArgs(f80, fmax(f80), 1e1);
1434 try testArgs(f80, fmax(f80), fmax(f80));
1435 try testArgs(f80, fmax(f80), inf(f80));
1436 try testArgs(f80, fmax(f80), nan(f80));
1437
1438 try testArgs(f80, inf(f80), -nan(f80));
1439 try testArgs(f80, inf(f80), -inf(f80));
1440 try testArgs(f80, inf(f80), -fmax(f80));
1441 try testArgs(f80, inf(f80), -1e1);
1442 try testArgs(f80, inf(f80), -1e0);
1443 try testArgs(f80, inf(f80), -1e-1);
1444 try testArgs(f80, inf(f80), -fmin(f80));
1445 try testArgs(f80, inf(f80), -tmin(f80));
1446 try testArgs(f80, inf(f80), -0.0);
1447 try testArgs(f80, inf(f80), 0.0);
1448 try testArgs(f80, inf(f80), tmin(f80));
1449 try testArgs(f80, inf(f80), fmin(f80));
1450 try testArgs(f80, inf(f80), 1e-1);
1451 try testArgs(f80, inf(f80), 1e0);
1452 try testArgs(f80, inf(f80), 1e1);
1453 try testArgs(f80, inf(f80), fmax(f80));
1454 try testArgs(f80, inf(f80), inf(f80));
1455 try testArgs(f80, inf(f80), nan(f80));
1456
1457 try testArgs(f80, nan(f80), -nan(f80));
1458 try testArgs(f80, nan(f80), -inf(f80));
1459 try testArgs(f80, nan(f80), -fmax(f80));
1460 try testArgs(f80, nan(f80), -1e1);
1461 try testArgs(f80, nan(f80), -1e0);
1462 try testArgs(f80, nan(f80), -1e-1);
1463 try testArgs(f80, nan(f80), -fmin(f80));
1464 try testArgs(f80, nan(f80), -tmin(f80));
1465 try testArgs(f80, nan(f80), -0.0);
1466 try testArgs(f80, nan(f80), 0.0);
1467 try testArgs(f80, nan(f80), tmin(f80));
1468 try testArgs(f80, nan(f80), fmin(f80));
1469 try testArgs(f80, nan(f80), 1e-1);
1470 try testArgs(f80, nan(f80), 1e0);
1471 try testArgs(f80, nan(f80), 1e1);
1472 try testArgs(f80, nan(f80), fmax(f80));
1473 try testArgs(f80, nan(f80), inf(f80));
1474 try testArgs(f80, nan(f80), nan(f80));
1475
1476 try testArgs(f128, -nan(f128), -nan(f128));
1477 try testArgs(f128, -nan(f128), -inf(f128));
1478 try testArgs(f128, -nan(f128), -fmax(f128));
1479 try testArgs(f128, -nan(f128), -1e1);
1480 try testArgs(f128, -nan(f128), -1e0);
1481 try testArgs(f128, -nan(f128), -1e-1);
1482 try testArgs(f128, -nan(f128), -fmin(f128));
1483 try testArgs(f128, -nan(f128), -tmin(f128));
1484 try testArgs(f128, -nan(f128), -0.0);
1485 try testArgs(f128, -nan(f128), 0.0);
1486 try testArgs(f128, -nan(f128), tmin(f128));
1487 try testArgs(f128, -nan(f128), fmin(f128));
1488 try testArgs(f128, -nan(f128), 1e-1);
1489 try testArgs(f128, -nan(f128), 1e0);
1490 try testArgs(f128, -nan(f128), 1e1);
1491 try testArgs(f128, -nan(f128), fmax(f128));
1492 try testArgs(f128, -nan(f128), inf(f128));
1493 try testArgs(f128, -nan(f128), nan(f128));
1494
1495 try testArgs(f128, -inf(f128), -nan(f128));
1496 try testArgs(f128, -inf(f128), -inf(f128));
1497 try testArgs(f128, -inf(f128), -fmax(f128));
1498 try testArgs(f128, -inf(f128), -1e1);
1499 try testArgs(f128, -inf(f128), -1e0);
1500 try testArgs(f128, -inf(f128), -1e-1);
1501 try testArgs(f128, -inf(f128), -fmin(f128));
1502 try testArgs(f128, -inf(f128), -tmin(f128));
1503 try testArgs(f128, -inf(f128), -0.0);
1504 try testArgs(f128, -inf(f128), 0.0);
1505 try testArgs(f128, -inf(f128), tmin(f128));
1506 try testArgs(f128, -inf(f128), fmin(f128));
1507 try testArgs(f128, -inf(f128), 1e-1);
1508 try testArgs(f128, -inf(f128), 1e0);
1509 try testArgs(f128, -inf(f128), 1e1);
1510 try testArgs(f128, -inf(f128), fmax(f128));
1511 try testArgs(f128, -inf(f128), inf(f128));
1512 try testArgs(f128, -inf(f128), nan(f128));
1513
1514 try testArgs(f128, -fmax(f128), -nan(f128));
1515 try testArgs(f128, -fmax(f128), -inf(f128));
1516 try testArgs(f128, -fmax(f128), -fmax(f128));
1517 try testArgs(f128, -fmax(f128), -1e1);
1518 try testArgs(f128, -fmax(f128), -1e0);
1519 try testArgs(f128, -fmax(f128), -1e-1);
1520 try testArgs(f128, -fmax(f128), -fmin(f128));
1521 try testArgs(f128, -fmax(f128), -tmin(f128));
1522 try testArgs(f128, -fmax(f128), -0.0);
1523 try testArgs(f128, -fmax(f128), 0.0);
1524 try testArgs(f128, -fmax(f128), tmin(f128));
1525 try testArgs(f128, -fmax(f128), fmin(f128));
1526 try testArgs(f128, -fmax(f128), 1e-1);
1527 try testArgs(f128, -fmax(f128), 1e0);
1528 try testArgs(f128, -fmax(f128), 1e1);
1529 try testArgs(f128, -fmax(f128), fmax(f128));
1530 try testArgs(f128, -fmax(f128), inf(f128));
1531 try testArgs(f128, -fmax(f128), nan(f128));
1532
1533 try testArgs(f128, -1e1, -nan(f128));
1534 try testArgs(f128, -1e1, -inf(f128));
1535 try testArgs(f128, -1e1, -fmax(f128));
1536 try testArgs(f128, -1e1, -1e1);
1537 try testArgs(f128, -1e1, -1e0);
1538 try testArgs(f128, -1e1, -1e-1);
1539 try testArgs(f128, -1e1, -fmin(f128));
1540 try testArgs(f128, -1e1, -tmin(f128));
1541 try testArgs(f128, -1e1, -0.0);
1542 try testArgs(f128, -1e1, 0.0);
1543 try testArgs(f128, -1e1, tmin(f128));
1544 try testArgs(f128, -1e1, fmin(f128));
1545 try testArgs(f128, -1e1, 1e-1);
1546 try testArgs(f128, -1e1, 1e0);
1547 try testArgs(f128, -1e1, 1e1);
1548 try testArgs(f128, -1e1, fmax(f128));
1549 try testArgs(f128, -1e1, inf(f128));
1550 try testArgs(f128, -1e1, nan(f128));
1551
1552 try testArgs(f128, -1e0, -nan(f128));
1553 try testArgs(f128, -1e0, -inf(f128));
1554 try testArgs(f128, -1e0, -fmax(f128));
1555 try testArgs(f128, -1e0, -1e1);
1556 try testArgs(f128, -1e0, -1e0);
1557 try testArgs(f128, -1e0, -1e-1);
1558 try testArgs(f128, -1e0, -fmin(f128));
1559 try testArgs(f128, -1e0, -tmin(f128));
1560 try testArgs(f128, -1e0, -0.0);
1561 try testArgs(f128, -1e0, 0.0);
1562 try testArgs(f128, -1e0, tmin(f128));
1563 try testArgs(f128, -1e0, fmin(f128));
1564 try testArgs(f128, -1e0, 1e-1);
1565 try testArgs(f128, -1e0, 1e0);
1566 try testArgs(f128, -1e0, 1e1);
1567 try testArgs(f128, -1e0, fmax(f128));
1568 try testArgs(f128, -1e0, inf(f128));
1569 try testArgs(f128, -1e0, nan(f128));
1570
1571 try testArgs(f128, -1e-1, -nan(f128));
1572 try testArgs(f128, -1e-1, -inf(f128));
1573 try testArgs(f128, -1e-1, -fmax(f128));
1574 try testArgs(f128, -1e-1, -1e1);
1575 try testArgs(f128, -1e-1, -1e0);
1576 try testArgs(f128, -1e-1, -1e-1);
1577 try testArgs(f128, -1e-1, -fmin(f128));
1578 try testArgs(f128, -1e-1, -tmin(f128));
1579 try testArgs(f128, -1e-1, -0.0);
1580 try testArgs(f128, -1e-1, 0.0);
1581 try testArgs(f128, -1e-1, tmin(f128));
1582 try testArgs(f128, -1e-1, fmin(f128));
1583 try testArgs(f128, -1e-1, 1e-1);
1584 try testArgs(f128, -1e-1, 1e0);
1585 try testArgs(f128, -1e-1, 1e1);
1586 try testArgs(f128, -1e-1, fmax(f128));
1587 try testArgs(f128, -1e-1, inf(f128));
1588 try testArgs(f128, -1e-1, nan(f128));
1589
1590 try testArgs(f128, -fmin(f128), -nan(f128));
1591 try testArgs(f128, -fmin(f128), -inf(f128));
1592 try testArgs(f128, -fmin(f128), -fmax(f128));
1593 try testArgs(f128, -fmin(f128), -1e1);
1594 try testArgs(f128, -fmin(f128), -1e0);
1595 try testArgs(f128, -fmin(f128), -1e-1);
1596 try testArgs(f128, -fmin(f128), -fmin(f128));
1597 try testArgs(f128, -fmin(f128), -tmin(f128));
1598 try testArgs(f128, -fmin(f128), -0.0);
1599 try testArgs(f128, -fmin(f128), 0.0);
1600 try testArgs(f128, -fmin(f128), tmin(f128));
1601 try testArgs(f128, -fmin(f128), fmin(f128));
1602 try testArgs(f128, -fmin(f128), 1e-1);
1603 try testArgs(f128, -fmin(f128), 1e0);
1604 try testArgs(f128, -fmin(f128), 1e1);
1605 try testArgs(f128, -fmin(f128), fmax(f128));
1606 try testArgs(f128, -fmin(f128), inf(f128));
1607 try testArgs(f128, -fmin(f128), nan(f128));
1608
1609 try testArgs(f128, -tmin(f128), -nan(f128));
1610 try testArgs(f128, -tmin(f128), -inf(f128));
1611 try testArgs(f128, -tmin(f128), -fmax(f128));
1612 try testArgs(f128, -tmin(f128), -1e1);
1613 try testArgs(f128, -tmin(f128), -1e0);
1614 try testArgs(f128, -tmin(f128), -1e-1);
1615 try testArgs(f128, -tmin(f128), -fmin(f128));
1616 try testArgs(f128, -tmin(f128), -tmin(f128));
1617 try testArgs(f128, -tmin(f128), -0.0);
1618 try testArgs(f128, -tmin(f128), 0.0);
1619 try testArgs(f128, -tmin(f128), tmin(f128));
1620 try testArgs(f128, -tmin(f128), fmin(f128));
1621 try testArgs(f128, -tmin(f128), 1e-1);
1622 try testArgs(f128, -tmin(f128), 1e0);
1623 try testArgs(f128, -tmin(f128), 1e1);
1624 try testArgs(f128, -tmin(f128), fmax(f128));
1625 try testArgs(f128, -tmin(f128), inf(f128));
1626 try testArgs(f128, -tmin(f128), nan(f128));
1627
1628 try testArgs(f128, -0.0, -nan(f128));
1629 try testArgs(f128, -0.0, -inf(f128));
1630 try testArgs(f128, -0.0, -fmax(f128));
1631 try testArgs(f128, -0.0, -1e1);
1632 try testArgs(f128, -0.0, -1e0);
1633 try testArgs(f128, -0.0, -1e-1);
1634 try testArgs(f128, -0.0, -fmin(f128));
1635 try testArgs(f128, -0.0, -tmin(f128));
1636 try testArgs(f128, -0.0, -0.0);
1637 try testArgs(f128, -0.0, 0.0);
1638 try testArgs(f128, -0.0, tmin(f128));
1639 try testArgs(f128, -0.0, fmin(f128));
1640 try testArgs(f128, -0.0, 1e-1);
1641 try testArgs(f128, -0.0, 1e0);
1642 try testArgs(f128, -0.0, 1e1);
1643 try testArgs(f128, -0.0, fmax(f128));
1644 try testArgs(f128, -0.0, inf(f128));
1645 try testArgs(f128, -0.0, nan(f128));
1646
1647 try testArgs(f128, 0.0, -nan(f128));
1648 try testArgs(f128, 0.0, -inf(f128));
1649 try testArgs(f128, 0.0, -fmax(f128));
1650 try testArgs(f128, 0.0, -1e1);
1651 try testArgs(f128, 0.0, -1e0);
1652 try testArgs(f128, 0.0, -1e-1);
1653 try testArgs(f128, 0.0, -fmin(f128));
1654 try testArgs(f128, 0.0, -tmin(f128));
1655 try testArgs(f128, 0.0, -0.0);
1656 try testArgs(f128, 0.0, 0.0);
1657 try testArgs(f128, 0.0, tmin(f128));
1658 try testArgs(f128, 0.0, fmin(f128));
1659 try testArgs(f128, 0.0, 1e-1);
1660 try testArgs(f128, 0.0, 1e0);
1661 try testArgs(f128, 0.0, 1e1);
1662 try testArgs(f128, 0.0, fmax(f128));
1663 try testArgs(f128, 0.0, inf(f128));
1664 try testArgs(f128, 0.0, nan(f128));
1665
1666 try testArgs(f128, tmin(f128), -nan(f128));
1667 try testArgs(f128, tmin(f128), -inf(f128));
1668 try testArgs(f128, tmin(f128), -fmax(f128));
1669 try testArgs(f128, tmin(f128), -1e1);
1670 try testArgs(f128, tmin(f128), -1e0);
1671 try testArgs(f128, tmin(f128), -1e-1);
1672 try testArgs(f128, tmin(f128), -fmin(f128));
1673 try testArgs(f128, tmin(f128), -tmin(f128));
1674 try testArgs(f128, tmin(f128), -0.0);
1675 try testArgs(f128, tmin(f128), 0.0);
1676 try testArgs(f128, tmin(f128), tmin(f128));
1677 try testArgs(f128, tmin(f128), fmin(f128));
1678 try testArgs(f128, tmin(f128), 1e-1);
1679 try testArgs(f128, tmin(f128), 1e0);
1680 try testArgs(f128, tmin(f128), 1e1);
1681 try testArgs(f128, tmin(f128), fmax(f128));
1682 try testArgs(f128, tmin(f128), inf(f128));
1683 try testArgs(f128, tmin(f128), nan(f128));
1684
1685 try testArgs(f128, fmin(f128), -nan(f128));
1686 try testArgs(f128, fmin(f128), -inf(f128));
1687 try testArgs(f128, fmin(f128), -fmax(f128));
1688 try testArgs(f128, fmin(f128), -1e1);
1689 try testArgs(f128, fmin(f128), -1e0);
1690 try testArgs(f128, fmin(f128), -1e-1);
1691 try testArgs(f128, fmin(f128), -fmin(f128));
1692 try testArgs(f128, fmin(f128), -tmin(f128));
1693 try testArgs(f128, fmin(f128), -0.0);
1694 try testArgs(f128, fmin(f128), 0.0);
1695 try testArgs(f128, fmin(f128), tmin(f128));
1696 try testArgs(f128, fmin(f128), fmin(f128));
1697 try testArgs(f128, fmin(f128), 1e-1);
1698 try testArgs(f128, fmin(f128), 1e0);
1699 try testArgs(f128, fmin(f128), 1e1);
1700 try testArgs(f128, fmin(f128), fmax(f128));
1701 try testArgs(f128, fmin(f128), inf(f128));
1702 try testArgs(f128, fmin(f128), nan(f128));
1703
1704 try testArgs(f128, 1e-1, -nan(f128));
1705 try testArgs(f128, 1e-1, -inf(f128));
1706 try testArgs(f128, 1e-1, -fmax(f128));
1707 try testArgs(f128, 1e-1, -1e1);
1708 try testArgs(f128, 1e-1, -1e0);
1709 try testArgs(f128, 1e-1, -1e-1);
1710 try testArgs(f128, 1e-1, -fmin(f128));
1711 try testArgs(f128, 1e-1, -tmin(f128));
1712 try testArgs(f128, 1e-1, -0.0);
1713 try testArgs(f128, 1e-1, 0.0);
1714 try testArgs(f128, 1e-1, tmin(f128));
1715 try testArgs(f128, 1e-1, fmin(f128));
1716 try testArgs(f128, 1e-1, 1e-1);
1717 try testArgs(f128, 1e-1, 1e0);
1718 try testArgs(f128, 1e-1, 1e1);
1719 try testArgs(f128, 1e-1, fmax(f128));
1720 try testArgs(f128, 1e-1, inf(f128));
1721 try testArgs(f128, 1e-1, nan(f128));
1722
1723 try testArgs(f128, 1e0, -nan(f128));
1724 try testArgs(f128, 1e0, -inf(f128));
1725 try testArgs(f128, 1e0, -fmax(f128));
1726 try testArgs(f128, 1e0, -1e1);
1727 try testArgs(f128, 1e0, -1e0);
1728 try testArgs(f128, 1e0, -1e-1);
1729 try testArgs(f128, 1e0, -fmin(f128));
1730 try testArgs(f128, 1e0, -tmin(f128));
1731 try testArgs(f128, 1e0, -0.0);
1732 try testArgs(f128, 1e0, 0.0);
1733 try testArgs(f128, 1e0, tmin(f128));
1734 try testArgs(f128, 1e0, fmin(f128));
1735 try testArgs(f128, 1e0, 1e-1);
1736 try testArgs(f128, 1e0, 1e0);
1737 try testArgs(f128, 1e0, 1e1);
1738 try testArgs(f128, 1e0, fmax(f128));
1739 try testArgs(f128, 1e0, inf(f128));
1740 try testArgs(f128, 1e0, nan(f128));
1741
1742 try testArgs(f128, 1e1, -nan(f128));
1743 try testArgs(f128, 1e1, -inf(f128));
1744 try testArgs(f128, 1e1, -fmax(f128));
1745 try testArgs(f128, 1e1, -1e1);
1746 try testArgs(f128, 1e1, -1e0);
1747 try testArgs(f128, 1e1, -1e-1);
1748 try testArgs(f128, 1e1, -fmin(f128));
1749 try testArgs(f128, 1e1, -tmin(f128));
1750 try testArgs(f128, 1e1, -0.0);
1751 try testArgs(f128, 1e1, 0.0);
1752 try testArgs(f128, 1e1, tmin(f128));
1753 try testArgs(f128, 1e1, fmin(f128));
1754 try testArgs(f128, 1e1, 1e-1);
1755 try testArgs(f128, 1e1, 1e0);
1756 try testArgs(f128, 1e1, 1e1);
1757 try testArgs(f128, 1e1, fmax(f128));
1758 try testArgs(f128, 1e1, inf(f128));
1759 try testArgs(f128, 1e1, nan(f128));
1760
1761 try testArgs(f128, fmax(f128), -nan(f128));
1762 try testArgs(f128, fmax(f128), -inf(f128));
1763 try testArgs(f128, fmax(f128), -fmax(f128));
1764 try testArgs(f128, fmax(f128), -1e1);
1765 try testArgs(f128, fmax(f128), -1e0);
1766 try testArgs(f128, fmax(f128), -1e-1);
1767 try testArgs(f128, fmax(f128), -fmin(f128));
1768 try testArgs(f128, fmax(f128), -tmin(f128));
1769 try testArgs(f128, fmax(f128), -0.0);
1770 try testArgs(f128, fmax(f128), 0.0);
1771 try testArgs(f128, fmax(f128), tmin(f128));
1772 try testArgs(f128, fmax(f128), fmin(f128));
1773 try testArgs(f128, fmax(f128), 1e-1);
1774 try testArgs(f128, fmax(f128), 1e0);
1775 try testArgs(f128, fmax(f128), 1e1);
1776 try testArgs(f128, fmax(f128), fmax(f128));
1777 try testArgs(f128, fmax(f128), inf(f128));
1778 try testArgs(f128, fmax(f128), nan(f128));
1779
1780 try testArgs(f128, inf(f128), -nan(f128));
1781 try testArgs(f128, inf(f128), -inf(f128));
1782 try testArgs(f128, inf(f128), -fmax(f128));
1783 try testArgs(f128, inf(f128), -1e1);
1784 try testArgs(f128, inf(f128), -1e0);
1785 try testArgs(f128, inf(f128), -1e-1);
1786 try testArgs(f128, inf(f128), -fmin(f128));
1787 try testArgs(f128, inf(f128), -tmin(f128));
1788 try testArgs(f128, inf(f128), -0.0);
1789 try testArgs(f128, inf(f128), 0.0);
1790 try testArgs(f128, inf(f128), tmin(f128));
1791 try testArgs(f128, inf(f128), fmin(f128));
1792 try testArgs(f128, inf(f128), 1e-1);
1793 try testArgs(f128, inf(f128), 1e0);
1794 try testArgs(f128, inf(f128), 1e1);
1795 try testArgs(f128, inf(f128), fmax(f128));
1796 try testArgs(f128, inf(f128), inf(f128));
1797 try testArgs(f128, inf(f128), nan(f128));
1798
1799 try testArgs(f128, nan(f128), -nan(f128));
1800 try testArgs(f128, nan(f128), -inf(f128));
1801 try testArgs(f128, nan(f128), -fmax(f128));
1802 try testArgs(f128, nan(f128), -1e1);
1803 try testArgs(f128, nan(f128), -1e0);
1804 try testArgs(f128, nan(f128), -1e-1);
1805 try testArgs(f128, nan(f128), -fmin(f128));
1806 try testArgs(f128, nan(f128), -tmin(f128));
1807 try testArgs(f128, nan(f128), -0.0);
1808 try testArgs(f128, nan(f128), 0.0);
1809 try testArgs(f128, nan(f128), tmin(f128));
1810 try testArgs(f128, nan(f128), fmin(f128));
1811 try testArgs(f128, nan(f128), 1e-1);
1812 try testArgs(f128, nan(f128), 1e0);
1813 try testArgs(f128, nan(f128), 1e1);
1814 try testArgs(f128, nan(f128), fmax(f128));
1815 try testArgs(f128, nan(f128), inf(f128));
1816 try testArgs(f128, nan(f128), nan(f128));
1817 }
1818 fn testIntVectors() !void {
1819 try testArgs(@Vector(1, i1), .{
1820 0x0,
1821 }, .{
1822 -0x1,
1823 });
1824 try testArgs(@Vector(2, i1), .{
1825 0x0, 0x00,
1826 }, .{
1827 -0x1, -0x1,
1828 });
1829 try testArgs(@Vector(4, i1), .{
1830 0x0, 0x0, 0x0, 0x0,
1831 }, .{
1832 -0x1, -0x1, -0x1, -0x1,
1833 });
1834 try testArgs(@Vector(8, i1), .{
1835 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1836 }, .{
1837 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1838 });
1839 try testArgs(@Vector(16, i1), .{
1840 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1841 }, .{
1842 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1843 });
1844 try testArgs(@Vector(32, i1), .{
1845 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1846 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1847 }, .{
1848 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1849 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1850 });
1851 try testArgs(@Vector(64, i1), .{
1852 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1853 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1854 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1855 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1856 }, .{
1857 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1858 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1859 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1860 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1861 });
1862 try testArgs(@Vector(128, i1), .{
1863 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1864 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1865 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1866 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1867 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1868 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1869 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1870 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1871 }, .{
1872 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1873 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1874 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1875 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1876 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1877 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1878 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1879 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1880 });
1881
1882 try testArgs(@Vector(1, u1), .{
1883 0x0,
1884 }, .{
1885 0x1,
1886 });
1887 try testArgs(@Vector(2, u1), .{
1888 0x0, 0x1,
1889 }, .{
1890 0x1, 0x1,
1891 });
1892 try testArgs(@Vector(4, u1), .{
1893 0x0, 0x0, 0x1, 0x0,
1894 }, .{
1895 0x1, 0x1, 0x1, 0x1,
1896 });
1897 try testArgs(@Vector(8, u1), .{
1898 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
1899 }, .{
1900 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1901 });
1902 try testArgs(@Vector(16, u1), .{
1903 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1904 }, .{
1905 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1906 });
1907 try testArgs(@Vector(32, u1), .{
1908 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
1909 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
1910 }, .{
1911 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1912 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1913 });
1914 try testArgs(@Vector(64, u1), .{
1915 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1,
1916 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1,
1917 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
1918 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0,
1919 }, .{
1920 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1921 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1922 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1923 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1924 });
1925 try testArgs(@Vector(128, u1), .{
1926 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
1927 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1,
1928 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1,
1929 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1930 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
1931 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1,
1932 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
1933 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1934 }, .{
1935 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1936 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1937 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1938 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1939 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1940 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1941 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1942 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1943 });
1944
1945 // workaround https://github.com/ziglang/zig/issues/22914
1946 // TODO: try testArgs(@Vector(1, i2), .{
1947 // 0x1,
1948 // }, .{
1949 // 0x1,
1950 // });
1951 // try testArgs(@Vector(2, i2), .{
1952 // 0x0, -0x2,
1953 // }, .{
1954 // -0x2, -0x2,
1955 // });
1956 // try testArgs(@Vector(4, i2), .{
1957 // -0x2, -0x1, 0x0, -0x2,
1958 // }, .{
1959 // -0x2, 0x1, -0x1, -0x2,
1960 // });
1961 // try testArgs(@Vector(8, i2), .{
1962 // -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2,
1963 // }, .{
1964 // -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1,
1965 // });
1966 // try testArgs(@Vector(16, i2), .{
1967 // 0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0,
1968 // }, .{
1969 // -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2,
1970 // });
1971 // try testArgs(@Vector(32, i2), .{
1972 // -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x1, 0x0, -0x2, -0x2, 0x0, 0x1,
1973 // -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2,
1974 // }, .{
1975 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1,
1976 // -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, 0x1, -0x2, -0x2,
1977 // });
1978 // try testArgs(@Vector(64, i2), .{
1979 // 0x1, -0x2, -0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1, 0x0, 0x1,
1980 // -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, 0x0, -0x2, -0x2,
1981 // 0x1, 0x0, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, 0x1, 0x0, 0x0, -0x1, 0x0, 0x1,
1982 // -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x2, 0x0, -0x2, 0x0, -0x2, 0x1, 0x0, -0x1, -0x1, 0x1,
1983 // }, .{
1984 // -0x2, -0x2, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1,
1985 // -0x2, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, 0x1, -0x1, -0x2, 0x1, -0x2, 0x1,
1986 // 0x1, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1,
1987 // -0x2, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x1, -0x2, -0x2,
1988 // });
1989 // try testArgs(@Vector(128, i2), .{
1990 // -0x1, -0x2, 0x0, -0x2, -0x2, 0x1, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1,
1991 // 0x0, -0x2, 0x1, 0x0, 0x1, 0x0, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x0, -0x1, 0x1, -0x1,
1992 // 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x0, 0x0, 0x1, 0x1, -0x2, -0x1,
1993 // 0x1, 0x0, 0x0, 0x1, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, 0x1, 0x0, 0x1, 0x0, 0x0, -0x2,
1994 // 0x0, 0x0, -0x1, 0x1, -0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, -0x2, 0x0, 0x0, 0x0,
1995 // -0x1, -0x1, -0x1, -0x1, -0x2, 0x0, -0x1, 0x1, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x1,
1996 // 0x1, -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x1, -0x2, 0x0, -0x1, -0x1, -0x2, -0x2, 0x0, 0x0,
1997 // -0x1, 0x0, 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x1,
1998 // }, .{
1999 // -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, -0x1,
2000 // -0x1, -0x2, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x2,
2001 // -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, -0x2,
2002 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2,
2003 // -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2,
2004 // 0x1, -0x1, 0x1, -0x2, 0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2,
2005 // -0x2, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, 0x1,
2006 // 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, -0x2,
2007 // });
2008 try testArgs(@Vector(1, i2), .{
2009 -0x1,
2010 }, .{
2011 -0x2,
2012 });
2013 try testArgs(@Vector(2, i2), .{
2014 -0x1, -0x1,
2015 }, .{
2016 0x1, -0x1,
2017 });
2018 try testArgs(@Vector(4, i2), .{
2019 -0x1, 0x1, -0x1, -0x1,
2020 }, .{
2021 0x1, -0x1, -0x1, 0x1,
2022 });
2023 try testArgs(@Vector(8, i2), .{
2024 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x1,
2025 }, .{
2026 0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1,
2027 });
2028 try testArgs(@Vector(16, i2), .{
2029 0x1, 0x0, 0x0, -0x1, 0x1, 0x0, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x0,
2030 }, .{
2031 0x1, 0x1, 0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
2032 });
2033 try testArgs(@Vector(32, i2), .{
2034 0x0, 0x1, -0x1, -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, 0x1, -0x1, 0x0, -0x1, 0x0, -0x1,
2035 -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x0, 0x1,
2036 }, .{
2037 -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x2,
2038 -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1,
2039 });
2040 try testArgs(@Vector(64, i2), .{
2041 0x1, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0,
2042 -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, -0x1, 0x0, -0x1, 0x0,
2043 -0x1, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0,
2044 0x1, -0x1, -0x1, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
2045 }, .{
2046 -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1,
2047 -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2,
2048 -0x2, -0x1, -0x1, 0x1, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, 0x1, -0x1,
2049 -0x1, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2,
2050 });
2051 try testArgs(@Vector(128, i2), .{
2052 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0,
2053 0x0, 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, 0x0, -0x1,
2054 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, -0x1, 0x1,
2055 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x0, 0x1, 0x0, 0x1,
2056 0x0, -0x1, 0x0, 0x0, 0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1,
2057 0x0, -0x1, 0x1, -0x1, -0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x1, 0x0, -0x1, 0x1, 0x0, -0x1,
2058 0x1, 0x0, 0x1, -0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x0,
2059 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x1, 0x1, -0x1,
2060 }, .{
2061 -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1,
2062 -0x1, 0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, 0x1, -0x1,
2063 -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2, -0x1,
2064 -0x2, 0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
2065 -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, 0x1, -0x1, 0x1,
2066 -0x2, -0x2, 0x1, -0x2, -0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, 0x1, 0x1, -0x2,
2067 -0x1, -0x2, 0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, -0x1, -0x2, 0x1, -0x1, -0x2, -0x1, -0x2,
2068 -0x2, -0x2, -0x1, -0x1, -0x2, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1,
2069 });
2070
2071 try testArgs(@Vector(1, u2), .{
2072 0x2,
2073 }, .{
2074 0x2,
2075 });
2076 try testArgs(@Vector(2, u2), .{
2077 0x1, 0x0,
2078 }, .{
2079 0x2, 0x1,
2080 });
2081 try testArgs(@Vector(4, u2), .{
2082 0x3, 0x3, 0x0, 0x2,
2083 }, .{
2084 0x3, 0x1, 0x1, 0x3,
2085 });
2086 try testArgs(@Vector(8, u2), .{
2087 0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1,
2088 }, .{
2089 0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2,
2090 });
2091 try testArgs(@Vector(16, u2), .{
2092 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1,
2093 }, .{
2094 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1,
2095 });
2096 try testArgs(@Vector(32, u2), .{
2097 0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0,
2098 0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0,
2099 }, .{
2100 0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2,
2101 0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3,
2102 });
2103 try testArgs(@Vector(64, u2), .{
2104 0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0,
2105 0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3,
2106 0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0,
2107 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3,
2108 }, .{
2109 0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3,
2110 0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1,
2111 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2,
2112 0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1,
2113 });
2114 try testArgs(@Vector(128, u2), .{
2115 0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1,
2116 0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1,
2117 0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0,
2118 0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0,
2119 0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3,
2120 0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1,
2121 0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1,
2122 0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2,
2123 }, .{
2124 0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1,
2125 0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3,
2126 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3,
2127 0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2,
2128 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2,
2129 0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1,
2130 0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1,
2131 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1,
2132 });
2133
2134 // workaround https://github.com/ziglang/zig/issues/22914
2135 // TODO: try testArgs(@Vector(1, i3), .{
2136 // -0x3,
2137 // }, .{
2138 // -0x1,
2139 // });
2140 // try testArgs(@Vector(2, i3), .{
2141 // 0x2, -0x3,
2142 // }, .{
2143 // 0x1, 0x3,
2144 // });
2145 // try testArgs(@Vector(4, i3), .{
2146 // 0x1, -0x4, -0x2, -0x3,
2147 // }, .{
2148 // -0x2, -0x4, 0x2, 0x2,
2149 // });
2150 // try testArgs(@Vector(8, i3), .{
2151 // 0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3,
2152 // }, .{
2153 // -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2,
2154 // });
2155 // try testArgs(@Vector(16, i3), .{
2156 // -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4,
2157 // }, .{
2158 // 0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4,
2159 // });
2160 // try testArgs(@Vector(32, i3), .{
2161 // 0x1, -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3, -0x2, 0x3, 0x0, -0x3, 0x0,
2162 // -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2, -0x4, -0x4, -0x3, 0x1, -0x1, -0x2,
2163 // }, .{
2164 // -0x4, -0x2, 0x1, -0x1, 0x3, 0x1, 0x2, -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2,
2165 // -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3, 0x1, -0x3, 0x3, 0x3, -0x4, 0x3, 0x2, -0x2,
2166 // });
2167 // try testArgs(@Vector(64, i3), .{
2168 // 0x1, 0x2, 0x1, 0x2, -0x2, 0x2, 0x2, -0x1, -0x4, 0x1, 0x3, 0x0, -0x2, -0x2, 0x2, -0x2,
2169 // 0x0, -0x4, -0x3, -0x4, -0x1, -0x1, 0x2, 0x2, -0x2, -0x1, -0x1, 0x3, 0x3, -0x4, 0x2, 0x0,
2170 // 0x3, 0x2, -0x4, -0x1, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, -0x3, 0x1, -0x4, -0x2, 0x1, -0x3,
2171 // -0x3, -0x1, 0x1, -0x3, -0x1, 0x3, -0x4, -0x4, 0x0, 0x0, -0x4, -0x2, 0x3, -0x1, -0x3, -0x3,
2172 // }, .{
2173 // 0x3, -0x2, 0x1, -0x4, 0x1, 0x3, -0x3, 0x1, 0x3, 0x1, 0x1, -0x1, -0x2, 0x1, -0x3, 0x1,
2174 // -0x2, -0x2, 0x3, -0x3, -0x1, -0x3, 0x1, -0x1, -0x3, -0x3, 0x1, -0x2, 0x1, -0x2, 0x1, 0x2,
2175 // 0x3, -0x4, -0x4, -0x1, 0x1, 0x3, 0x1, 0x1, -0x4, 0x2, -0x3, 0x3, 0x3, -0x1, 0x1, -0x1,
2176 // -0x2, 0x2, 0x2, -0x4, -0x4, 0x3, -0x2, -0x4, -0x1, -0x2, -0x4, 0x1, 0x2, 0x1, -0x1, -0x2,
2177 // });
2178 // try testArgs(@Vector(128, i3), .{
2179 // -0x4, 0x1, 0x0, -0x4, -0x4, 0x1, -0x4, -0x2, 0x2, 0x2, -0x3, 0x1, 0x2, -0x2, 0x1, 0x1,
2180 // 0x3, 0x0, 0x3, -0x4, -0x1, 0x3, 0x3, -0x4, 0x0, -0x3, 0x2, -0x2, 0x0, 0x3, 0x1, -0x2,
2181 // -0x1, -0x1, 0x3, -0x1, -0x2, 0x3, 0x3, 0x1, -0x3, 0x1, -0x1, -0x2, -0x4, 0x2, -0x2, -0x1,
2182 // 0x1, 0x1, 0x1, 0x0, -0x1, 0x2, -0x1, 0x3, 0x2, -0x1, -0x2, 0x3, -0x2, 0x3, 0x3, 0x1,
2183 // 0x3, -0x3, -0x4, -0x1, 0x2, 0x2, -0x2, 0x3, -0x4, -0x2, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
2184 // -0x2, 0x3, 0x0, -0x3, -0x4, 0x2, -0x3, -0x2, -0x4, 0x0, -0x3, -0x4, -0x4, -0x2, -0x1, -0x3,
2185 // 0x0, -0x1, 0x0, -0x1, 0x2, -0x4, -0x3, 0x0, -0x4, 0x0, -0x2, 0x1, -0x2, -0x4, -0x1, -0x1,
2186 // -0x3, 0x3, -0x1, -0x1, -0x2, 0x1, 0x3, 0x1, -0x3, 0x1, -0x4, -0x2, 0x0, -0x1, -0x2, 0x2,
2187 // }, .{
2188 // -0x3, 0x2, -0x3, 0x1, -0x2, -0x1, -0x3, 0x1, 0x2, 0x2, -0x2, 0x2, 0x2, 0x1, 0x3, -0x1,
2189 // -0x4, -0x3, 0x2, -0x3, -0x2, 0x3, -0x3, 0x2, -0x1, -0x3, 0x1, 0x2, -0x4, 0x2, -0x2, -0x3,
2190 // 0x1, -0x1, 0x2, 0x2, -0x1, -0x3, -0x4, 0x2, 0x1, -0x4, 0x1, -0x4, 0x2, -0x1, 0x2, -0x2,
2191 // 0x2, 0x1, -0x4, 0x3, 0x1, -0x2, -0x3, -0x4, 0x3, -0x1, 0x3, -0x4, -0x2, 0x1, -0x2, 0x3,
2192 // 0x1, 0x1, 0x2, 0x1, -0x1, -0x2, 0x2, -0x1, 0x1, -0x1, -0x3, -0x1, 0x1, -0x4, -0x1, -0x1,
2193 // -0x3, -0x1, -0x4, 0x3, 0x1, -0x1, -0x1, -0x1, 0x1, -0x4, 0x1, -0x2, -0x4, 0x2, -0x4, -0x3,
2194 // 0x2, -0x4, -0x1, 0x1, 0x3, 0x2, -0x1, 0x3, 0x2, 0x2, 0x1, -0x4, -0x3, 0x1, -0x1, 0x1,
2195 // -0x2, -0x4, 0x1, 0x3, -0x1, 0x3, 0x1, 0x2, -0x4, 0x2, 0x2, -0x3, -0x3, -0x4, -0x2, 0x3,
2196 // });
2197 try testArgs(@Vector(1, i3), .{
2198 -0x1,
2199 }, .{
2200 -0x3,
2201 });
2202 try testArgs(@Vector(2, i3), .{
2203 0x2, -0x2,
2204 }, .{
2205 0x3, 0x3,
2206 });
2207 try testArgs(@Vector(4, i3), .{
2208 0x1, 0x0, -0x2, 0x0,
2209 }, .{
2210 0x2, -0x2, -0x4, 0x3,
2211 });
2212 try testArgs(@Vector(8, i3), .{
2213 0x3, -0x1, -0x3, -0x3, -0x3, -0x2, 0x2, -0x3,
2214 }, .{
2215 -0x1, 0x1, -0x2, 0x2, 0x1, -0x2, -0x3, -0x1,
2216 });
2217 try testArgs(@Vector(16, i3), .{
2218 -0x1, -0x1, 0x3, -0x2, -0x2, -0x2, -0x2, -0x1, 0x2, 0x1, -0x2, 0x2, -0x2, 0x1, 0x1, -0x3,
2219 }, .{
2220 0x1, -0x1, -0x1, -0x1, 0x1, 0x3, -0x1, -0x1, 0x1, 0x3, -0x1, -0x3, 0x1, 0x3, 0x1, -0x2,
2221 });
2222 try testArgs(@Vector(32, i3), .{
2223 0x3, -0x1, -0x3, 0x1, 0x0, 0x0, -0x3, -0x1, -0x3, 0x1, 0x1, 0x2, -0x1, 0x1, -0x1, -0x1,
2224 0x1, -0x3, 0x1, -0x1, 0x1, 0x0, -0x2, 0x3, -0x2, -0x3, 0x3, 0x1, -0x1, 0x0, 0x3, -0x1,
2225 }, .{
2226 0x1, -0x2, -0x4, -0x4, 0x2, 0x1, -0x4, -0x3, -0x4, 0x1, -0x3, -0x4, -0x1, 0x2, -0x1, 0x1,
2227 0x2, -0x2, -0x4, 0x3, -0x3, 0x1, 0x2, -0x2, -0x2, 0x3, 0x3, 0x2, -0x2, -0x4, -0x2, -0x3,
2228 });
2229 try testArgs(@Vector(64, i3), .{
2230 -0x2, 0x1, 0x3, -0x1, -0x3, -0x1, 0x1, -0x3, 0x1, -0x2, 0x0, 0x3, 0x0, -0x2, 0x1, -0x3,
2231 -0x2, 0x1, -0x2, 0x2, 0x0, 0x1, -0x3, 0x0, -0x3, 0x0, -0x3, -0x2, -0x2, -0x3, -0x2, 0x3,
2232 -0x1, 0x1, 0x1, 0x1, -0x1, 0x0, -0x3, -0x3, -0x3, -0x3, -0x2, 0x2, 0x3, 0x2, -0x3, 0x1,
2233 -0x3, -0x3, -0x1, -0x1, -0x1, -0x3, -0x2, -0x2, 0x2, 0x3, 0x3, -0x3, 0x0, 0x3, -0x3, -0x3,
2234 }, .{
2235 0x2, 0x1, -0x1, -0x3, -0x1, -0x4, -0x2, -0x3, 0x2, -0x2, -0x4, 0x2, 0x2, -0x2, 0x1, 0x1,
2236 0x1, -0x1, -0x3, 0x2, -0x2, 0x2, -0x1, 0x3, 0x3, -0x1, -0x1, -0x3, -0x1, 0x2, -0x2, 0x2,
2237 0x1, -0x4, -0x2, -0x4, 0x2, -0x1, -0x2, 0x3, 0x3, 0x3, -0x4, -0x2, 0x3, -0x4, 0x1, -0x2,
2238 -0x2, 0x2, -0x3, -0x3, 0x1, -0x3, 0x3, 0x2, 0x1, 0x3, -0x3, 0x3, 0x2, -0x2, -0x2, 0x2,
2239 });
2240 try testArgs(@Vector(128, i3), .{
2241 -0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x2, 0x1, -0x3, 0x1, -0x2, -0x1, 0x0, 0x2, 0x3, -0x3,
2242 -0x1, -0x1, -0x2, 0x3, 0x1, 0x2, 0x2, 0x3, -0x2, 0x3, -0x2, -0x3, 0x1, 0x0, -0x1, -0x2,
2243 -0x1, -0x1, 0x1, -0x1, 0x2, -0x3, 0x1, -0x2, -0x1, 0x2, -0x2, 0x1, 0x1, -0x3, -0x2, 0x3,
2244 -0x1, -0x1, 0x1, -0x3, -0x1, -0x2, 0x0, 0x1, -0x1, 0x0, -0x1, 0x2, 0x1, 0x2, 0x3, -0x1,
2245 0x0, 0x1, 0x2, 0x3, -0x2, 0x2, -0x3, 0x2, 0x0, -0x2, -0x3, -0x2, 0x0, 0x1, 0x2, 0x1,
2246 -0x3, 0x0, -0x2, -0x3, -0x1, 0x2, -0x3, 0x2, 0x3, 0x1, 0x1, -0x1, 0x2, 0x1, -0x1, 0x2,
2247 0x2, 0x0, 0x1, -0x3, -0x3, 0x1, 0x2, 0x0, 0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x3, 0x3,
2248 0x0, -0x2, -0x2, -0x2, 0x3, 0x0, -0x1, -0x2, 0x0, 0x3, -0x3, 0x1, 0x2, -0x1, 0x1, 0x1,
2249 }, .{
2250 0x3, 0x3, 0x2, 0x3, -0x3, -0x4, 0x1, -0x3, 0x2, 0x3, 0x3, -0x2, 0x2, -0x1, 0x1, 0x3,
2251 -0x4, -0x4, -0x1, -0x1, 0x2, -0x3, -0x3, -0x3, -0x2, -0x3, -0x2, -0x1, 0x1, 0x3, -0x4, -0x2,
2252 -0x3, 0x1, 0x3, 0x1, -0x2, 0x1, 0x1, 0x2, 0x1, 0x2, -0x4, -0x4, -0x3, -0x2, -0x1, -0x2,
2253 0x3, 0x2, -0x3, -0x2, -0x2, 0x3, -0x3, -0x4, 0x3, -0x3, 0x3, -0x1, 0x3, -0x1, -0x1, 0x2,
2254 0x3, -0x4, -0x4, -0x2, -0x4, 0x2, -0x2, -0x4, -0x2, -0x2, -0x3, 0x3, 0x2, 0x2, 0x2, -0x4,
2255 0x1, -0x4, -0x3, -0x2, -0x4, -0x4, 0x1, -0x4, -0x1, 0x3, -0x2, -0x4, 0x3, -0x4, 0x3, -0x1,
2256 0x3, 0x1, -0x1, 0x1, 0x1, 0x2, 0x1, -0x3, -0x4, -0x1, -0x1, -0x2, -0x3, -0x2, 0x3, -0x2,
2257 -0x1, 0x3, 0x3, -0x1, 0x3, 0x1, 0x1, 0x2, -0x3, 0x3, -0x1, 0x3, -0x3, -0x4, -0x4, 0x1,
2258 });
2259
2260 try testArgs(@Vector(1, u3), .{
2261 0x5,
2262 }, .{
2263 0x2,
2264 });
2265 try testArgs(@Vector(2, u3), .{
2266 0x4, 0x5,
2267 }, .{
2268 0x2, 0x4,
2269 });
2270 try testArgs(@Vector(4, u3), .{
2271 0x7, 0x7, 0x2, 0x3,
2272 }, .{
2273 0x4, 0x5, 0x7, 0x1,
2274 });
2275 try testArgs(@Vector(8, u3), .{
2276 0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7,
2277 }, .{
2278 0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1,
2279 });
2280 try testArgs(@Vector(16, u3), .{
2281 0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5,
2282 }, .{
2283 0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2,
2284 });
2285 try testArgs(@Vector(32, u3), .{
2286 0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2,
2287 0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2,
2288 }, .{
2289 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1,
2290 0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6,
2291 });
2292 try testArgs(@Vector(64, u3), .{
2293 0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5,
2294 0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7,
2295 0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2,
2296 0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6,
2297 }, .{
2298 0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4,
2299 0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5,
2300 0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4,
2301 0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3,
2302 });
2303 try testArgs(@Vector(128, u3), .{
2304 0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6,
2305 0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5,
2306 0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3,
2307 0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4,
2308 0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2,
2309 0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4,
2310 0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4,
2311 0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4,
2312 }, .{
2313 0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1,
2314 0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4,
2315 0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4,
2316 0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5,
2317 0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1,
2318 0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3,
2319 0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7,
2320 0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1,
2321 });
2322
2323 // workaround https://github.com/ziglang/zig/issues/22914
2324 // TODO: try testArgs(@Vector(1, i4), .{
2325 // 0x2,
2326 // }, .{
2327 // 0x1,
2328 // });
2329 // try testArgs(@Vector(2, i4), .{
2330 // -0x2, 0x5,
2331 // }, .{
2332 // -0x1, 0x2,
2333 // });
2334 // try testArgs(@Vector(4, i4), .{
2335 // -0x8, 0x5, 0x5, -0x2,
2336 // }, .{
2337 // -0x3, -0x7, -0x4, -0x5,
2338 // });
2339 // try testArgs(@Vector(8, i4), .{
2340 // 0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1,
2341 // }, .{
2342 // -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7,
2343 // });
2344 // try testArgs(@Vector(16, i4), .{
2345 // 0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0,
2346 // }, .{
2347 // 0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2,
2348 // });
2349 // try testArgs(@Vector(32, i4), .{
2350 // -0x1, -0x4, 0x6, 0x6, 0x5, 0x3, 0x4, 0x0, 0x3, 0x7, -0x6, 0x7, -0x2, -0x7, -0x4, 0x6,
2351 // 0x3, -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8,
2352 // }, .{
2353 // -0x4, -0x4, -0x4, 0x4, -0x5, 0x3, -0x1, 0x6, 0x1, -0x3, -0x1, 0x6, 0x5, -0x8, 0x1, -0x4,
2354 // -0x1, -0x4, 0x1, -0x3, 0x4, 0x6, -0x3, -0x8, -0x7, -0x4, 0x2, -0x3, -0x1, -0x2, 0x6, -0x6,
2355 // });
2356 // try testArgs(@Vector(64, i4), .{
2357 // 0x0, -0x3, -0x3, 0x5, 0x2, -0x1, 0x4, 0x5, 0x6, -0x2, 0x1, 0x5, -0x3, -0x1, -0x2, -0x1,
2358 // -0x8, 0x2, -0x1, -0x2, 0x7, -0x3, -0x2, -0x3, 0x1, -0x5, 0x5, 0x2, -0x1, -0x6, -0x2, -0x1,
2359 // -0x2, -0x5, 0x0, 0x6, 0x3, -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1, 0x0, -0x6, -0x7, -0x6,
2360 // 0x1, -0x6, 0x4, -0x4, -0x2, 0x6, -0x7, 0x4, 0x4, 0x5, 0x3, -0x6, -0x8, -0x5, 0x5, -0x7,
2361 // }, .{
2362 // -0x1, -0x5, 0x5, -0x2, 0x6, -0x6, -0x4, -0x5, -0x4, 0x7, -0x6, 0x7, 0x4, -0x5, 0x5, 0x7,
2363 // -0x6, 0x3, -0x4, 0x2, -0x8, 0x4, -0x2, 0x5, -0x5, -0x5, -0x8, 0x3, -0x1, -0x4, -0x8, -0x2,
2364 // -0x2, 0x5, -0x7, -0x3, 0x2, -0x5, -0x6, -0x7, -0x8, -0x2, 0x5, -0x3, 0x2, -0x1, -0x7, -0x4,
2365 // -0x3, -0x3, 0x6, -0x8, 0x3, -0x4, 0x7, 0x3, -0x2, 0x7, -0x1, 0x1, 0x1, 0x6, -0x2, -0x2,
2366 // });
2367 // try testArgs(@Vector(128, i4), .{
2368 // -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0, -0x4, 0x7, 0x3, 0x5, -0x4, -0x5, -0x4, -0x2, -0x7,
2369 // 0x2, 0x0, -0x4, 0x7, 0x3, -0x5, 0x4, 0x5, -0x2, -0x3, -0x4, 0x6, -0x7, -0x1, 0x1, -0x6,
2370 // 0x1, 0x5, 0x2, 0x5, 0x2, 0x2, -0x4, -0x4, 0x5, 0x2, -0x2, -0x8, -0x1, -0x2, 0x5, 0x3,
2371 // 0x0, -0x5, 0x5, 0x7, 0x6, -0x3, -0x2, 0x0, -0x7, -0x7, -0x4, 0x2, -0x4, 0x7, 0x1, -0x5,
2372 // -0x4, -0x8, 0x2, -0x7, 0x3, -0x4, 0x7, 0x6, -0x7, -0x3, -0x7, 0x2, 0x4, 0x2, -0x5, -0x6,
2373 // 0x3, 0x5, 0x1, 0x6, 0x5, 0x7, 0x7, -0x4, -0x7, -0x1, 0x0, -0x7, 0x6, 0x0, 0x6, 0x0,
2374 // 0x0, -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1, 0x1, -0x8, 0x2, 0x6, -0x1, -0x3,
2375 // -0x6, 0x5, -0x8, 0x3, 0x3, 0x1, -0x1, -0x3, -0x3, -0x6, 0x7, -0x6, -0x8, 0x1, -0x7, -0x8,
2376 // }, .{
2377 // 0x1, 0x3, 0x1, 0x3, -0x6, 0x6, 0x2, -0x3, 0x1, -0x7, 0x7, -0x3, -0x1, -0x1, 0x7, 0x2,
2378 // -0x8, 0x2, -0x3, -0x4, 0x4, -0x4, 0x7, 0x6, -0x5, -0x2, -0x1, 0x6, -0x7, 0x4, 0x7, -0x3,
2379 // -0x5, -0x8, -0x5, -0x6, -0x6, 0x2, 0x1, -0x8, 0x4, 0x3, -0x5, 0x7, -0x8, 0x3, -0x1, 0x7,
2380 // -0x3, 0x7, -0x3, -0x2, -0x6, 0x4, 0x2, -0x2, -0x2, -0x7, 0x5, -0x1, -0x6, 0x7, -0x5, 0x5,
2381 // 0x4, 0x5, -0x8, -0x5, 0x6, 0x1, -0x5, 0x7, -0x6, -0x3, -0x4, 0x6, -0x8, 0x7, 0x7, -0x6,
2382 // 0x6, -0x4, 0x2, -0x8, -0x8, -0x4, -0x8, -0x3, 0x6, 0x5, 0x7, -0x6, 0x1, 0x2, -0x7, -0x3,
2383 // -0x3, 0x1, -0x3, 0x3, -0x1, 0x3, -0x7, -0x8, 0x1, -0x3, -0x3, -0x3, -0x4, 0x5, 0x7, -0x7,
2384 // 0x3, 0x2, 0x6, -0x2, -0x4, -0x3, -0x1, 0x5, -0x6, 0x2, 0x3, -0x5, 0x5, -0x3, -0x2, -0x8,
2385 // });
2386 try testArgs(@Vector(1, i4), .{
2387 -0x1,
2388 }, .{
2389 -0x1,
2390 });
2391 try testArgs(@Vector(2, i4), .{
2392 0x7, 0x5,
2393 }, .{
2394 0x4, 0x1,
2395 });
2396 try testArgs(@Vector(4, i4), .{
2397 -0x2, -0x3, -0x6, 0x1,
2398 }, .{
2399 0x3, -0x5, -0x1, -0x3,
2400 });
2401 try testArgs(@Vector(8, i4), .{
2402 -0x5, -0x3, -0x2, 0x2, -0x4, -0x4, 0x0, 0x1,
2403 }, .{
2404 -0x7, -0x2, -0x7, 0x1, 0x6, 0x2, -0x7, 0x7,
2405 });
2406 try testArgs(@Vector(16, i4), .{
2407 -0x1, -0x1, 0x6, 0x3, -0x1, 0x2, -0x6, 0x6, 0x1, 0x5, -0x1, 0x7, 0x7, -0x3, -0x1, 0x4,
2408 }, .{
2409 0x1, -0x3, 0x4, -0x1, 0x2, 0x5, -0x3, -0x5, -0x5, 0x5, -0x7, 0x7, 0x1, 0x5, -0x5, -0x6,
2410 });
2411 try testArgs(@Vector(32, i4), .{
2412 -0x7, 0x4, -0x5, -0x5, -0x5, 0x1, 0x7, 0x3, -0x2, 0x7, -0x3, -0x7, -0x3, -0x2, -0x5, -0x7,
2413 0x5, 0x4, 0x3, 0x0, -0x6, -0x2, -0x4, -0x1, 0x5, 0x4, -0x7, -0x7, -0x5, 0x5, -0x5, -0x1,
2414 }, .{
2415 0x4, 0x4, 0x5, 0x2, 0x3, -0x4, 0x6, 0x2, -0x7, 0x3, 0x7, 0x2, 0x6, 0x2, 0x2, 0x3,
2416 0x7, -0x3, -0x7, -0x2, 0x3, -0x1, -0x4, 0x4, -0x8, 0x1, 0x6, -0x7, 0x5, 0x1, 0x7, -0x2,
2417 });
2418 try testArgs(@Vector(64, i4), .{
2419 0x0, 0x3, 0x7, -0x7, 0x1, -0x5, -0x4, 0x2, 0x2, 0x5, 0x4, 0x0, -0x3, -0x4, -0x4, -0x4,
2420 -0x7, 0x6, 0x2, 0x1, 0x0, 0x3, -0x6, 0x4, -0x4, 0x2, 0x7, 0x3, -0x4, -0x3, -0x3, -0x3,
2421 -0x4, 0x0, -0x3, -0x6, 0x0, 0x1, -0x5, -0x7, -0x2, -0x1, -0x1, -0x7, 0x3, -0x5, -0x4, -0x3,
2422 0x5, 0x1, -0x4, 0x7, 0x1, 0x7, -0x5, 0x4, 0x5, -0x4, 0x1, -0x4, 0x4, 0x5, 0x4, -0x2,
2423 }, .{
2424 0x2, -0x4, -0x1, 0x4, 0x4, -0x1, -0x3, 0x6, 0x4, 0x2, 0x4, 0x3, -0x6, -0x7, -0x4, 0x6,
2425 0x6, 0x4, 0x6, -0x7, 0x2, 0x4, -0x8, -0x1, -0x8, 0x3, -0x2, -0x7, 0x1, 0x5, -0x3, -0x6,
2426 -0x8, 0x2, -0x5, 0x7, 0x4, 0x7, -0x4, 0x3, 0x6, -0x7, -0x1, 0x1, -0x8, -0x2, -0x3, 0x3,
2427 0x3, -0x4, 0x4, -0x7, 0x5, -0x4, -0x1, 0x2, 0x6, -0x2, -0x5, 0x2, 0x7, 0x2, -0x8, -0x3,
2428 });
2429 try testArgs(@Vector(128, i4), .{
2430 0x3, 0x3, -0x6, 0x3, 0x2, 0x1, 0x5, -0x2, 0x0, -0x7, 0x4, 0x3, 0x0, -0x3, -0x7, -0x5,
2431 0x4, 0x0, 0x1, 0x6, 0x3, 0x3, -0x4, 0x7, -0x6, -0x6, 0x6, 0x1, 0x6, -0x5, -0x6, -0x6,
2432 0x4, -0x2, 0x3, -0x1, -0x4, -0x6, -0x1, 0x2, 0x4, 0x3, -0x2, 0x2, 0x3, 0x5, 0x0, -0x2,
2433 0x5, 0x6, -0x1, -0x5, 0x6, 0x7, 0x7, -0x6, -0x6, 0x0, 0x0, -0x6, -0x2, -0x7, -0x6, 0x3,
2434 -0x6, -0x6, 0x4, -0x4, 0x4, -0x5, 0x0, 0x6, 0x6, 0x7, 0x4, -0x5, 0x5, -0x7, -0x7, 0x6,
2435 -0x4, 0x4, -0x7, 0x4, 0x3, 0x2, -0x4, -0x1, -0x6, -0x2, 0x5, -0x2, 0x4, -0x7, -0x3, -0x3,
2436 0x4, 0x1, -0x1, 0x2, -0x1, 0x4, -0x5, -0x3, -0x1, -0x3, 0x3, 0x7, 0x5, -0x1, -0x1, -0x4,
2437 0x2, 0x1, -0x3, 0x7, -0x6, -0x7, -0x6, -0x4, -0x5, -0x2, 0x5, 0x0, -0x5, 0x7, -0x7, 0x5,
2438 }, .{
2439 -0x6, -0x5, -0x1, 0x4, 0x6, 0x4, -0x1, -0x7, -0x3, 0x4, -0x6, -0x2, -0x3, 0x1, 0x6, 0x2,
2440 -0x1, -0x3, -0x4, 0x2, 0x3, 0x6, -0x7, 0x3, 0x7, -0x6, 0x1, -0x7, -0x5, 0x6, 0x7, -0x4,
2441 0x7, -0x4, 0x2, -0x5, 0x4, 0x5, 0x5, -0x3, -0x1, 0x6, -0x6, -0x2, -0x4, 0x3, -0x4, -0x4,
2442 -0x5, 0x6, -0x6, 0x3, -0x6, -0x3, 0x6, 0x5, 0x6, -0x6, -0x3, 0x1, -0x4, -0x5, -0x8, -0x3,
2443 -0x4, 0x7, -0x2, -0x1, 0x4, 0x2, -0x3, 0x6, 0x4, 0x6, -0x3, 0x6, 0x5, -0x2, -0x1, 0x5,
2444 0x6, -0x6, -0x8, -0x2, -0x3, 0x6, -0x6, 0x5, -0x2, -0x6, 0x5, -0x6, 0x2, 0x1, 0x3, -0x3,
2445 0x7, 0x7, 0x3, -0x1, 0x5, -0x2, -0x3, 0x4, 0x7, -0x7, 0x7, 0x6, -0x2, -0x5, 0x4, -0x5,
2446 -0x1, -0x2, 0x1, 0x4, -0x2, 0x1, -0x3, 0x1, -0x4, 0x3, -0x2, -0x6, -0x4, -0x2, -0x8, 0x2,
2447 });
2448
2449 try testArgs(@Vector(1, u4), .{
2450 0x2,
2451 }, .{
2452 0xa,
2453 });
2454 try testArgs(@Vector(2, u4), .{
2455 0x0, 0xa,
2456 }, .{
2457 0xb, 0xa,
2458 });
2459 try testArgs(@Vector(4, u4), .{
2460 0xb, 0x7, 0x0, 0xd,
2461 }, .{
2462 0x4, 0x5, 0xf, 0x3,
2463 });
2464 try testArgs(@Vector(8, u4), .{
2465 0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7,
2466 }, .{
2467 0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2,
2468 });
2469 try testArgs(@Vector(16, u4), .{
2470 0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf,
2471 }, .{
2472 0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe,
2473 });
2474 try testArgs(@Vector(32, u4), .{
2475 0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6,
2476 0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0,
2477 }, .{
2478 0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3,
2479 0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6,
2480 });
2481 try testArgs(@Vector(64, u4), .{
2482 0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9,
2483 0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4,
2484 0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb,
2485 0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd,
2486 }, .{
2487 0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7,
2488 0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2,
2489 0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6,
2490 0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8,
2491 });
2492 try testArgs(@Vector(128, u4), .{
2493 0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6,
2494 0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3,
2495 0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4,
2496 0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa,
2497 0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7,
2498 0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc,
2499 0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8,
2500 0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1,
2501 }, .{
2502 0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4,
2503 0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6,
2504 0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe,
2505 0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5,
2506 0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7,
2507 0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa,
2508 0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8,
2509 0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4,
2510 });
2511
2512 // workaround https://github.com/ziglang/zig/issues/22914
2513 // TODO: try testArgs(@Vector(1, i5), .{
2514 // 0x03,
2515 // }, .{
2516 // 0x0a,
2517 // });
2518 // try testArgs(@Vector(2, i5), .{
2519 // 0x0c, -0x0e,
2520 // }, .{
2521 // -0x0f, -0x0e,
2522 // });
2523 // try testArgs(@Vector(4, i5), .{
2524 // -0x0a, 0x06, -0x05, 0x09,
2525 // }, .{
2526 // -0x0f, 0x05, 0x05, 0x09,
2527 // });
2528 // try testArgs(@Vector(8, i5), .{
2529 // -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e,
2530 // }, .{
2531 // -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03,
2532 // });
2533 // try testArgs(@Vector(16, i5), .{
2534 // -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10,
2535 // }, .{
2536 // 0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03,
2537 // });
2538 // try testArgs(@Vector(32, i5), .{
2539 // -0x08, -0x05, 0x09, -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f, -0x0b, 0x01, -0x03, 0x03, 0x08, 0x04,
2540 // 0x02, 0x0f, -0x0b, -0x0b, 0x0d, 0x00, 0x09, 0x00, -0x06, -0x08, -0x01, 0x0b, 0x05, 0x03, -0x05, -0x07,
2541 // }, .{
2542 // -0x0c, 0x07, 0x0d, -0x09, 0x0a, 0x06, -0x0b, -0x07, -0x0a, 0x08, 0x07, -0x0d, 0x08, 0x07, 0x09, -0x07,
2543 // 0x0b, -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a, -0x0a, 0x02, -0x07, -0x0a, 0x0d, -0x07, -0x05, -0x0e, 0x05,
2544 // });
2545 // try testArgs(@Vector(64, i5), .{
2546 // 0x04, -0x0d, 0x0d, -0x01, 0x07, 0x0c, 0x00, 0x01, -0x07, 0x0a, -0x01, -0x01, 0x08, -0x0b, -0x03, -0x06,
2547 // -0x03, -0x03, -0x0c, 0x0e, -0x0c, -0x02, 0x07, -0x03, 0x0e, -0x0a, -0x0e, -0x06, -0x08, 0x0a, -0x0c, -0x0c,
2548 // 0x06, -0x04, 0x04, 0x00, 0x05, 0x07, 0x04, 0x06, -0x01, 0x0a, 0x07, -0x08, 0x00, 0x0f, 0x0f, 0x0d,
2549 // -0x07, 0x0f, 0x05, -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e, 0x02, 0x06, 0x0d, 0x06, 0x00, 0x0a,
2550 // }, .{
2551 // 0x02, -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02, 0x0e, 0x07, -0x01, -0x0a, -0x0b, 0x05, -0x0e,
2552 // -0x09, 0x03, 0x08, -0x0d, 0x0d, 0x03, -0x02, 0x0e, 0x0c, 0x03, 0x0b, -0x0d, -0x04, -0x10, 0x0e, 0x0d,
2553 // 0x09, -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08, -0x06, 0x08, -0x0e, 0x02, -0x10, 0x01, 0x01, -0x0a,
2554 // 0x01, -0x09, 0x03, -0x01, 0x05, 0x09, 0x06, -0x03, -0x0a, 0x08, -0x0e, 0x0e, 0x07, -0x05, -0x0c, -0x10,
2555 // });
2556 // try testArgs(@Vector(128, i5), .{
2557 // 0x01, 0x0b, -0x01, -0x10, -0x05, 0x05, -0x09, 0x0e, -0x0e, 0x04, 0x0f, -0x06, 0x0f, 0x04, -0x02, 0x0a,
2558 // -0x08, -0x06, 0x08, -0x07, -0x08, 0x0e, 0x06, 0x0d, -0x07, -0x04, 0x04, -0x0b, 0x02, -0x06, 0x07, -0x10,
2559 // 0x0d, 0x09, 0x0b, -0x04, 0x0e, -0x06, -0x0a, 0x01, 0x06, 0x08, 0x01, -0x0b, -0x09, -0x08, -0x0c, -0x0b,
2560 // 0x07, 0x06, 0x0d, 0x0c, -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05, 0x0b, 0x08, -0x01, 0x00, 0x01, 0x0a,
2561 // 0x00, 0x0a, 0x06, 0x06, -0x10, -0x05, -0x05, -0x0f, 0x02, -0x06, -0x08, -0x08, 0x0f, 0x09, -0x07, -0x05,
2562 // 0x07, 0x06, 0x03, 0x05, 0x02, 0x0f, 0x0d, -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09, 0x05,
2563 // -0x07, -0x07, -0x08, 0x0c, -0x0e, 0x09, -0x0c, -0x0d, 0x07, 0x04, 0x07, -0x03, 0x09, 0x0e, 0x04, 0x02,
2564 // 0x0f, -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c, -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d, -0x0e, 0x04, 0x03,
2565 // }, .{
2566 // -0x08, -0x09, -0x04, 0x0f, -0x0f, -0x08, -0x04, 0x0b, 0x09, -0x0b, -0x02, 0x0f, 0x01, -0x01, -0x0a, -0x0a,
2567 // 0x08, 0x09, 0x0d, -0x06, 0x0f, -0x02, 0x0c, 0x01, 0x0c, 0x02, -0x04, 0x0b, 0x05, 0x02, -0x08, -0x09,
2568 // 0x01, 0x0f, -0x0b, 0x02, -0x06, 0x08, -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c, 0x09, -0x04, 0x08, -0x0a,
2569 // 0x09, -0x05, 0x08, 0x0e, 0x05, 0x03, -0x0a, 0x0d, -0x03, 0x06, 0x0f, -0x09, 0x0a, 0x03, 0x02, 0x0c,
2570 // 0x08, -0x0a, 0x06, 0x0e, 0x08, 0x02, 0x08, -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a, 0x0c, -0x03, 0x04,
2571 // 0x0b, -0x0c, -0x0e, 0x01, 0x07, -0x01, 0x09, 0x0f, -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a, -0x0a, -0x0d,
2572 // -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e, 0x04, -0x01, -0x0b,
2573 // -0x06, 0x0a, 0x0a, -0x0c, -0x0c, 0x0b, -0x02, 0x0c, -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b,
2574 // });
2575 try testArgs(@Vector(1, i5), .{
2576 -0x0f,
2577 }, .{
2578 -0x03,
2579 });
2580 try testArgs(@Vector(2, i5), .{
2581 0x0b, -0x04,
2582 }, .{
2583 -0x05, -0x08,
2584 });
2585 try testArgs(@Vector(4, i5), .{
2586 0x08, 0x0f, -0x06, -0x0d,
2587 }, .{
2588 -0x03, -0x0a, -0x05, -0x03,
2589 });
2590 try testArgs(@Vector(8, i5), .{
2591 0x08, 0x0c, 0x07, 0x00, -0x06, 0x08, 0x08, 0x0d,
2592 }, .{
2593 0x07, 0x09, 0x05, -0x08, 0x08, -0x0e, -0x0e, -0x0e,
2594 });
2595 try testArgs(@Vector(16, i5), .{
2596 0x06, 0x0b, 0x07, 0x0e, 0x0e, 0x02, -0x08, -0x0b, -0x03, 0x09, -0x08, 0x0e, -0x03, -0x0a, 0x01, 0x0b,
2597 }, .{
2598 -0x05, 0x0f, -0x08, -0x10, -0x07, 0x06, 0x08, 0x01, 0x0a, 0x06, 0x05, -0x0f, 0x03, 0x05, 0x0b, -0x06,
2599 });
2600 try testArgs(@Vector(32, i5), .{
2601 0x0e, 0x07, -0x08, 0x0b, 0x04, -0x05, 0x0f, 0x02, 0x04, -0x0c, 0x0d, 0x09, 0x0e, -0x02, -0x0f, 0x04,
2602 -0x03, -0x02, 0x09, -0x0d, 0x01, 0x00, -0x0e, -0x0a, 0x02, -0x06, 0x0c, 0x03, 0x06, 0x0e, 0x06, -0x07,
2603 }, .{
2604 -0x0a, 0x01, 0x0a, -0x10, 0x06, 0x09, 0x0e, 0x03, 0x0e, -0x09, 0x08, -0x08, 0x06, 0x0c, -0x0a, -0x07,
2605 0x04, -0x02, -0x09, 0x0b, 0x0e, -0x03, -0x01, -0x0d, 0x0e, -0x0a, -0x02, 0x08, 0x0e, 0x02, -0x04, -0x05,
2606 });
2607 try testArgs(@Vector(64, i5), .{
2608 0x04, 0x02, -0x04, -0x0a, -0x0b, -0x0b, -0x0c, -0x08, -0x0b, -0x05, 0x0c, 0x0b, 0x05, 0x02, -0x01, -0x06,
2609 -0x09, -0x06, 0x0a, 0x0f, -0x06, -0x0d, 0x0c, 0x05, 0x0b, -0x06, -0x02, 0x09, 0x0e, -0x09, 0x05, 0x0a,
2610 -0x0c, 0x0b, -0x01, -0x04, 0x01, 0x0c, 0x0f, -0x0f, -0x07, 0x0a, 0x04, 0x02, 0x08, -0x01, -0x03, 0x0a,
2611 -0x0e, -0x04, -0x03, -0x0b, -0x01, 0x02, -0x05, 0x08, -0x03, 0x02, -0x01, -0x05, 0x07, -0x09, 0x0f, 0x00,
2612 }, .{
2613 -0x09, -0x02, -0x0a, -0x05, -0x05, -0x0d, 0x04, -0x05, 0x0e, -0x01, -0x07, 0x04, 0x0d, -0x0f, -0x09, -0x04,
2614 -0x0b, -0x0b, 0x0e, 0x01, 0x06, -0x0f, -0x0b, 0x03, -0x04, 0x05, -0x03, -0x09, 0x0a, 0x04, 0x04, -0x06,
2615 -0x02, 0x01, 0x0e, 0x0c, -0x10, 0x0f, -0x09, -0x08, -0x10, -0x02, -0x07, -0x0d, 0x08, 0x07, -0x03, 0x01,
2616 -0x0d, -0x10, -0x07, 0x08, 0x0d, 0x07, 0x09, 0x0f, 0x04, 0x06, -0x05, -0x09, 0x04, -0x04, -0x04, 0x0d,
2617 });
2618 try testArgs(@Vector(128, i5), .{
2619 -0x02, -0x07, -0x03, 0x08, -0x0b, -0x09, -0x0c, 0x0d, -0x0e, 0x08, -0x03, -0x09, 0x0a, 0x02, -0x0d, 0x05,
2620 -0x04, -0x0c, -0x07, 0x08, -0x0a, 0x04, 0x08, -0x07, 0x0c, 0x03, 0x0e, 0x0f, 0x08, -0x08, -0x02, -0x0a,
2621 -0x08, 0x04, -0x0c, -0x09, 0x0a, -0x0e, -0x04, -0x05, 0x02, 0x0d, -0x04, -0x0f, -0x0d, -0x02, 0x05, -0x07,
2622 0x06, 0x0b, -0x0b, -0x04, -0x04, -0x0e, -0x0c, 0x09, 0x02, -0x0c, 0x0e, 0x09, 0x02, -0x04, 0x05, 0x04,
2623 -0x0e, -0x02, -0x08, 0x05, 0x00, 0x0f, -0x0a, 0x0a, 0x0b, 0x0b, 0x02, -0x02, -0x0d, -0x08, -0x0d, 0x03,
2624 0x0b, -0x0b, 0x02, 0x05, -0x06, -0x07, -0x08, -0x0a, -0x09, -0x03, -0x0e, -0x0f, -0x0b, 0x03, 0x00, 0x09,
2625 0x07, 0x0a, -0x0b, 0x06, 0x01, -0x03, -0x0a, -0x09, -0x07, -0x0d, 0x0a, -0x0c, 0x01, -0x09, -0x01, -0x01,
2626 -0x09, 0x00, 0x0f, 0x05, -0x0b, 0x0c, 0x04, 0x0c, 0x0b, -0x08, 0x01, -0x05, -0x04, 0x02, 0x0c, 0x04,
2627 }, .{
2628 -0x08, -0x05, -0x0a, 0x06, -0x06, -0x04, 0x01, 0x07, 0x0d, -0x0a, -0x02, 0x0b, -0x01, -0x0c, -0x04, 0x0c,
2629 -0x06, 0x0d, 0x04, 0x0b, 0x07, 0x0c, 0x02, 0x02, -0x02, 0x09, 0x0d, -0x07, -0x08, 0x07, -0x04, 0x06,
2630 -0x0a, 0x07, 0x01, 0x07, -0x0d, 0x02, 0x09, -0x02, 0x0e, -0x08, -0x03, -0x07, 0x07, 0x0a, -0x0e, -0x06,
2631 0x0b, -0x0d, 0x0c, -0x06, -0x07, 0x0a, 0x0b, -0x0a, 0x05, 0x01, -0x0d, -0x08, -0x0e, -0x08, -0x07, -0x01,
2632 -0x10, 0x07, 0x03, 0x06, 0x03, 0x0a, 0x08, -0x0a, 0x04, -0x09, 0x0c, 0x01, -0x10, 0x02, 0x09, 0x0d,
2633 0x0f, -0x01, -0x06, -0x0a, 0x04, 0x01, 0x07, 0x07, 0x0e, 0x0e, -0x04, -0x0a, -0x03, 0x07, 0x07, -0x10,
2634 -0x04, 0x0e, -0x09, -0x0f, -0x0b, -0x0e, 0x0c, -0x0d, 0x0b, -0x06, 0x0f, -0x0d, 0x0b, 0x04, -0x10, -0x10,
2635 -0x0e, 0x09, 0x0d, -0x02, -0x0e, -0x06, -0x0b, -0x0f, -0x08, -0x0f, -0x0d, -0x0a, -0x02, 0x03, 0x0b, -0x0a,
2636 });
2637
2638 try testArgs(@Vector(1, u5), .{
2639 0x0a,
2640 }, .{
2641 0x1c,
2642 });
2643 try testArgs(@Vector(2, u5), .{
2644 0x01, 0x07,
2645 }, .{
2646 0x03, 0x1d,
2647 });
2648 try testArgs(@Vector(4, u5), .{
2649 0x1c, 0x0d, 0x1f, 0x0a,
2650 }, .{
2651 0x14, 0x03, 0x07, 0x02,
2652 });
2653 try testArgs(@Vector(8, u5), .{
2654 0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10,
2655 }, .{
2656 0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a,
2657 });
2658 try testArgs(@Vector(16, u5), .{
2659 0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05,
2660 }, .{
2661 0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05,
2662 });
2663 try testArgs(@Vector(32, u5), .{
2664 0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00,
2665 0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16,
2666 }, .{
2667 0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b,
2668 0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e,
2669 });
2670 try testArgs(@Vector(64, u5), .{
2671 0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03,
2672 0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06,
2673 0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16,
2674 0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b,
2675 }, .{
2676 0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03,
2677 0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06,
2678 0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f,
2679 0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c,
2680 });
2681 try testArgs(@Vector(128, u5), .{
2682 0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b,
2683 0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f,
2684 0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01,
2685 0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05,
2686 0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d,
2687 0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02,
2688 0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10,
2689 0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01,
2690 }, .{
2691 0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12,
2692 0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07,
2693 0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f,
2694 0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07,
2695 0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a,
2696 0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04,
2697 0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c,
2698 0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09,
2699 });
2700
2701 try testArgs(@Vector(1, i7), .{
2702 0x3b,
2703 }, .{
2704 0x0d,
2705 });
2706 try testArgs(@Vector(2, i7), .{
2707 -0x3e, -0x06,
2708 }, .{
2709 -0x37, -0x0f,
2710 });
2711 try testArgs(@Vector(4, i7), .{
2712 0x35, 0x29, -0x17, 0x39,
2713 }, .{
2714 -0x2c, -0x02, -0x29, -0x1a,
2715 });
2716 try testArgs(@Vector(8, i7), .{
2717 0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c,
2718 }, .{
2719 0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05,
2720 });
2721 try testArgs(@Vector(16, i7), .{
2722 -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31,
2723 }, .{
2724 -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09,
2725 });
2726 try testArgs(@Vector(32, i7), .{
2727 0x04, 0x09, 0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11, -0x2a, 0x29, -0x16, -0x3b, -0x1e,
2728 0x3a, -0x0d, 0x11, 0x16, 0x27, 0x0f, 0x2f, 0x14, 0x3b, -0x2f, -0x3d, 0x1d, -0x08, -0x2e, -0x2a, -0x33,
2729 }, .{
2730 -0x09, 0x3c, 0x15, -0x25, -0x03, 0x0a, 0x11, 0x03, 0x12, -0x1d, -0x23, 0x29, -0x30, -0x35, -0x0e, -0x15,
2731 -0x1c, -0x14, 0x07, 0x29, -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22, -0x15, -0x2d, 0x04, 0x19, 0x14, -0x1d,
2732 });
2733 try testArgs(@Vector(64, i7), .{
2734 0x23, 0x09, -0x13, 0x03, 0x19, -0x35, -0x06, -0x3c, -0x31, 0x12, 0x09, 0x22, -0x15, -0x1c, -0x25, -0x31,
2735 0x3a, -0x31, 0x05, 0x0b, -0x14, 0x38, 0x39, 0x15, 0x15, -0x11, 0x11, -0x21, 0x2f, 0x3d, -0x2e, -0x33,
2736 -0x38, 0x1b, 0x14, 0x1d, 0x0d, -0x16, 0x10, -0x0a, 0x25, 0x0d, 0x1e, 0x1a, -0x15, 0x21, 0x3e, -0x0c,
2737 0x03, 0x3f, 0x1f, 0x17, 0x2c, -0x0a, -0x2b, 0x1f, 0x32, 0x09, 0x0f, -0x15, 0x24, -0x35, 0x27, -0x13,
2738 }, .{
2739 -0x20, 0x25, 0x38, -0x28, 0x06, -0x2f, -0x0b, -0x2b, 0x21, -0x23, -0x08, 0x06, -0x2a, -0x26, 0x33, -0x2f,
2740 0x06, -0x1b, 0x3c, -0x3d, 0x3e, 0x1f, 0x27, 0x28, -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e,
2741 0x0e, -0x2c, -0x0f, -0x3b, 0x1b, 0x17, 0x3f, -0x3a, 0x21, -0x16, 0x11, -0x0a, 0x1b, 0x2a, 0x27, 0x3e,
2742 -0x09, -0x34, 0x20, 0x3e, -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21, 0x13, 0x22, 0x0c, -0x1f, 0x38, 0x21,
2743 });
2744 try testArgs(@Vector(128, i7), .{
2745 -0x38, -0x10, 0x08, -0x2b, 0x3e, -0x19, 0x39, -0x1f, -0x27, -0x10, -0x0c, 0x02, 0x07, 0x10, -0x1a, 0x0b,
2746 0x3c, -0x2e, 0x1b, -0x17, 0x3e, -0x1b, -0x04, 0x35, 0x2d, 0x0d, 0x33, 0x0f, 0x18, 0x0b, 0x1a, -0x09,
2747 0x25, -0x0b, -0x21, 0x3a, -0x28, 0x12, 0x16, 0x03, -0x1f, 0x1d, -0x1c, -0x1a, -0x38, 0x32, 0x3d, -0x2a,
2748 -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02, -0x13, -0x23, 0x2f, 0x0a, -0x22, 0x15, 0x34, -0x06,
2749 -0x2e, -0x3b, 0x26, 0x38, 0x33, -0x29, -0x0c, 0x2e, 0x07, -0x19, 0x3c, -0x35, -0x33, 0x39, 0x3c, 0x37,
2750 -0x07, -0x13, 0x16, 0x05, -0x27, 0x28, -0x2b, -0x07, -0x25, -0x01, 0x1d, -0x0a, -0x01, 0x1d, -0x2a, -0x30,
2751 0x31, 0x0a, -0x24, 0x0c, 0x35, -0x1c, -0x04, 0x21, -0x35, 0x12, 0x19, 0x3d, -0x0c, 0x20, 0x28, -0x22,
2752 -0x3c, 0x09, 0x11, -0x0c, -0x14, -0x39, 0x0f, -0x40, -0x0a, 0x0f, 0x1b, 0x34, -0x27, 0x35, 0x0e, -0x3d,
2753 }, .{
2754 -0x1a, 0x06, 0x1f, -0x24, -0x21, -0x3d, 0x1f, -0x18, 0x2f, -0x38, 0x2f, -0x0f, 0x20, 0x2d, 0x31, -0x09,
2755 -0x1d, 0x3a, 0x24, -0x09, 0x0c, -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29, 0x23, -0x37, -0x05, 0x27, -0x12,
2756 0x23, -0x14, 0x26, 0x36, -0x33, -0x1d, -0x0f, 0x32, 0x2a, -0x34, -0x31, 0x0a, -0x33, -0x34, 0x30, 0x3d,
2757 -0x1a, 0x0f, 0x16, 0x07, 0x2d, -0x2b, 0x2c, -0x2d, 0x34, -0x07, 0x32, 0x3a, 0x2e, -0x1c, 0x2e, 0x0f,
2758 0x02, 0x33, -0x1e, -0x05, -0x40, -0x0a, 0x3d, -0x28, -0x21, -0x2b, -0x18, 0x02, 0x01, -0x2c, -0x16, -0x3b,
2759 0x27, 0x23, -0x19, 0x13, -0x2c, 0x3c, -0x1a, 0x0e, -0x25, -0x19, 0x06, 0x1b, -0x3f, 0x26, 0x30, 0x0d,
2760 -0x0e, -0x2f, -0x28, 0x3b, -0x0e, 0x2d, 0x3d, 0x03, 0x0d, -0x23, 0x02, 0x26, 0x0c, 0x31, -0x10, -0x10,
2761 0x37, -0x38, -0x0f, 0x20, -0x17, 0x02, 0x3e, -0x40, 0x37, 0x22, 0x06, 0x14, -0x31, -0x1e, -0x36, -0x2c,
2762 });
2763
2764 try testArgs(@Vector(1, u7), .{
2765 0x72,
2766 }, .{
2767 0x0c,
2768 });
2769 try testArgs(@Vector(2, u7), .{
2770 0x0c, 0x3a,
2771 }, .{
2772 0x72, 0x0b,
2773 });
2774 try testArgs(@Vector(4, u7), .{
2775 0x68, 0x2b, 0x52, 0x6e,
2776 }, .{
2777 0x74, 0x79, 0x10, 0x67,
2778 });
2779 try testArgs(@Vector(8, u7), .{
2780 0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b,
2781 }, .{
2782 0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c,
2783 });
2784 try testArgs(@Vector(16, u7), .{
2785 0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69,
2786 }, .{
2787 0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b,
2788 });
2789 try testArgs(@Vector(32, u7), .{
2790 0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73,
2791 0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b,
2792 }, .{
2793 0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68,
2794 0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c,
2795 });
2796 try testArgs(@Vector(64, u7), .{
2797 0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75,
2798 0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e,
2799 0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f,
2800 0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b,
2801 }, .{
2802 0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a,
2803 0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05,
2804 0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34,
2805 0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c,
2806 });
2807 try testArgs(@Vector(128, u7), .{
2808 0x5c,
2809 0x65,
2810 0x65,
2811 0x34,
2812 0x31,
2813 0x03,
2814 0x7a,
2815 0x56,
2816 0x16,
2817 0x74,
2818 0x5c,
2819 0x7f,
2820 0x2a,
2821 0x46,
2822 0x2a,
2823 0x5f,
2824 0x62,
2825 0x06,
2826 0x51,
2827 0x23,
2828 0x58,
2829 0x1f,
2830 0x5a,
2831 0x2d,
2832 0x29,
2833 0x21,
2834 0x26,
2835 0x5a,
2836 0x5a,
2837 0x13,
2838 0x13,
2839 0x46,
2840 0x26,
2841 0x1c,
2842 0x06,
2843 0x2d,
2844 0x08,
2845 0x52,
2846 0x5b,
2847 0x6f,
2848 0x2d,
2849 0x4a,
2850 0x00,
2851 0x40,
2852 0x68,
2853 0x27,
2854 0x00,
2855 0x4a,
2856 0x3a,
2857 0x22,
2858 0x2d,
2859 0x5b,
2860 0x05,
2861 0x26,
2862 0x4e,
2863 0x6f,
2864 0x46,
2865 0x4d,
2866 0x14,
2867 0x70,
2868 0x51,
2869 0x04,
2870 0x66,
2871 0x13,
2872 0x4c,
2873 0x7c,
2874 0x67,
2875 0x23,
2876 0x13,
2877 0x55,
2878 0x1b,
2879 0x30,
2880 0x7d,
2881 0x04,
2882 0x47,
2883 0x78,
2884 0x05,
2885 0x09,
2886 0x5a,
2887 0x20,
2888 0x2e,
2889 0x17,
2890 0x11,
2891 0x49,
2892 0x6c,
2893 0x5e,
2894 0x34,
2895 0x3e,
2896 0x66,
2897 0x60,
2898 0x5d,
2899 0x75,
2900 0x48,
2901 0x1d,
2902 0x69,
2903 0x67,
2904 0x40,
2905 0x2d,
2906 0x7b,
2907 0x31,
2908 0x13,
2909 0x60,
2910 0x19,
2911 0x2f,
2912 0x3e,
2913 0x7d,
2914 0x23,
2915 0x6a,
2916 0x0e,
2917 0x16,
2918 0x44,
2919 0x34,
2920 0x5d,
2921 0x5a,
2922 0x2a,
2923 0x0b,
2924 0x64,
2925 0x07,
2926 0x22,
2927 0x5b,
2928 0x24,
2929 0x22,
2930 0x3b,
2931 0x46,
2932 0x23,
2933 0x65,
2934 0x5d,
2935 0x34,
2936 }, .{
2937 0x4b,
2938 0x36,
2939 0x7a,
2940 0x13,
2941 0x5a,
2942 0x4b,
2943 0x69,
2944 0x4b,
2945 0x1d,
2946 0x02,
2947 0x1b,
2948 0x3f,
2949 0x61,
2950 0x21,
2951 0x45,
2952 0x48,
2953 0x44,
2954 0x61,
2955 0x25,
2956 0x42,
2957 0x57,
2958 0x7d,
2959 0x7a,
2960 0x45,
2961 0x22,
2962 0x2e,
2963 0x44,
2964 0x3f,
2965 0x3a,
2966 0x14,
2967 0x07,
2968 0x6e,
2969 0x68,
2970 0x51,
2971 0x03,
2972 0x6b,
2973 0x11,
2974 0x32,
2975 0x6d,
2976 0x6f,
2977 0x44,
2978 0x5a,
2979 0x61,
2980 0x6d,
2981 0x71,
2982 0x66,
2983 0x54,
2984 0x14,
2985 0x5d,
2986 0x56,
2987 0x22,
2988 0x5c,
2989 0x3a,
2990 0x72,
2991 0x16,
2992 0x39,
2993 0x59,
2994 0x3e,
2995 0x27,
2996 0x4d,
2997 0x3d,
2998 0x44,
2999 0x72,
3000 0x2c,
3001 0x71,
3002 0x74,
3003 0x3b,
3004 0x6c,
3005 0x70,
3006 0x39,
3007 0x0f,
3008 0x5c,
3009 0x71,
3010 0x04,
3011 0x67,
3012 0x02,
3013 0x2c,
3014 0x18,
3015 0x0f,
3016 0x14,
3017 0x2d,
3018 0x24,
3019 0x51,
3020 0x34,
3021 0x6d,
3022 0x0c,
3023 0x19,
3024 0x0f,
3025 0x73,
3026 0x79,
3027 0x3d,
3028 0x74,
3029 0x20,
3030 0x15,
3031 0x22,
3032 0x25,
3033 0x09,
3034 0x14,
3035 0x09,
3036 0x71,
3037 0x2d,
3038 0x6f,
3039 0x09,
3040 0x2e,
3041 0x27,
3042 0x75,
3043 0x57,
3044 0x62,
3045 0x4d,
3046 0x07,
3047 0x62,
3048 0x01,
3049 0x41,
3050 0x2d,
3051 0x5d,
3052 0x4c,
3053 0x77,
3054 0x10,
3055 0x7f,
3056 0x30,
3057 0x0f,
3058 0x50,
3059 0x15,
3060 0x39,
3061 0x34,
3062 0x7c,
3063 0x33,
3064 0x16,
3065 });
3066
3067 try testArgs(@Vector(1, i8), .{
3068 -0x54,
3069 }, .{
3070 0x0f,
3071 });
3072 try testArgs(@Vector(2, i8), .{
3073 -0x4d, 0x55,
3074 }, .{
3075 0x7d, -0x5d,
3076 });
3077 try testArgs(@Vector(4, i8), .{
3078 0x73, 0x6f, 0x6e, -0x49,
3079 }, .{
3080 -0x66, 0x23, 0x21, -0x56,
3081 });
3082 try testArgs(@Vector(8, i8), .{
3083 0x44, -0x37, 0x33, -0x2b, -0x1f, 0x3e, 0x50, -0x4d,
3084 }, .{
3085 0x6a, 0x1a, -0x0e, 0x4c, -0x46, 0x03, -0x17, 0x3e,
3086 });
3087 try testArgs(@Vector(16, i8), .{
3088 -0x52, 0x1a, -0x4b, 0x4e, -0x75, 0x33, -0x43, 0x30, 0x71, -0x30, -0x73, -0x53, 0x64, 0x1f, -0x27, 0x36,
3089 }, .{
3090 0x65, 0x77, -0x62, 0x0f, 0x15, 0x52, 0x5c, 0x12, -0x10, 0x36, 0x6d, 0x42, -0x24, -0x79, -0x32, -0x75,
3091 });
3092 try testArgs(@Vector(32, i8), .{
3093 -0x12, -0x1e, 0x18, 0x6e, 0x31, 0x53, -0x6a, -0x34, 0x13, 0x4d, 0x30, -0x7d, -0x31, 0x1e, -0x24, 0x32,
3094 -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b, -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06,
3095 }, .{
3096 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x01, 0x4a,
3097 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, -0x01, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67,
3098 });
3099 try testArgs(@Vector(64, i8), .{
3100 -0x05, 0x76, 0x4e, -0x5c, 0x7b, -0x1a, -0x38, -0x2e, 0x3d, 0x36, 0x01, 0x30, -0x02, -0x71, -0x24, 0x24,
3101 -0x2e, -0x6e, -0x60, 0x74, -0x80, -0x1c, -0x34, -0x08, -0x33, 0x77, 0x1c, -0x0f, 0x45, -0x51, -0x1d, 0x35,
3102 -0x45, 0x44, 0x27, -0x3c, 0x6b, 0x58, -0x6a, -0x26, 0x06, -0x30, -0x21, -0x0a, 0x60, -0x11, -0x05, 0x75,
3103 0x38, 0x72, -0x6d, -0x1f, -0x7f, 0x74, -0x6b, -0x14, -0x80, 0x35, -0x0f, -0x1e, 0x6a, 0x17, -0x74, -0x6c,
3104 }, .{
3105 -0x5d, 0x2d, 0x55, 0x40, -0x7c, 0x67, 0x61, 0x5f, 0x14, 0x5b, -0x0c, -0x4d, -0x5f, 0x25, 0x36, 0x3c,
3106 -0x75, -0x48, -0x2b, 0x76, -0x57, -0x4a, 0x1d, 0x65, -0x32, 0x18, -0x2a, -0x0a, -0x6e, -0x3c, -0x62, 0x4e,
3107 -0x24, -0x3c, 0x7d, -0x79, -0x1a, -0x14, -0x03, -0x56, 0x7a, 0x5f, 0x64, -0x68, 0x5f, -0x10, -0x63, -0x07,
3108 0x79, -0x44, 0x47, 0x7d, 0x6e, 0x77, 0x03, -0x4e, 0x67, 0x38, 0x46, -0x44, -0x41, 0x66, -0x16, -0x0a,
3109 });
3110 try testArgs(@Vector(128, i8), .{
3111 0x30, 0x70, -0x2a, -0x29, -0x35, -0x69, -0x18, 0x2b, 0x4a, -0x17, -0x5f, -0x36, 0x34, -0x26, 0x03, -0x2d,
3112 -0x75, -0x27, -0x07, -0x49, -0x58, 0x00, -0x45, 0x5d, -0x11, -0x68, 0x34, 0x73, -0x4d, 0x7f, -0x25, -0x6a,
3113 0x46, -0x1d, -0x68, 0x04, 0x64, -0x0d, 0x30, 0x27, -0x24, 0x67, 0x3c, -0x7c, -0x2e, -0x24, 0x24, 0x3e,
3114 -0x2c, -0x05, 0x4e, -0x17, 0x6d, 0x57, 0x76, 0x35, -0x3d, 0x51, 0x71, -0x4e, 0x50, 0x26, 0x4a, -0x42,
3115 0x73, -0x36, -0x5d, 0x2a, 0x55, 0x33, -0x2b, -0x76, 0x08, 0x43, 0x77, -0x73, -0x0a, 0x5c, -0x03, -0x50,
3116 -0x0a, -0x1c, -0x20, 0x3c, -0x7e, 0x60, 0x11, -0x77, 0x25, -0x71, 0x31, 0x2d, -0x4b, -0x26, -0x2a, 0x7f,
3117 -0x1f, 0x23, -0x34, -0x1f, 0x35, 0x0d, 0x3e, 0x76, -0x08, 0x2c, 0x12, 0x3e, -0x09, -0x3e, 0x4b, -0x52,
3118 -0x1a, -0x44, -0x53, -0x41, -0x6d, -0x5e, -0x06, -0x04, 0x3f, -0x2e, 0x01, 0x54, 0x19, -0x5a, -0x62, -0x3a,
3119 }, .{
3120 0x42, -0x11, -0x08, -0x64, -0x55, 0x31, 0x27, -0x66, 0x38, 0x5a, 0x25, -0x68, 0x0b, -0x41, -0x0d, 0x60,
3121 -0x17, -0x6d, 0x62, -0x65, -0x5e, -0x1c, -0x35, 0x28, 0x1c, -0x74, -0x7f, -0x1c, 0x3a, 0x4e, 0x05, -0x08,
3122 0x30, -0x77, 0x03, 0x68, -0x2c, 0x5c, 0x74, 0x6a, -0x21, 0x0a, 0x36, -0x55, 0x21, 0x29, -0x05, 0x70,
3123 0x23, 0x3b, 0x0a, 0x7a, 0x19, 0x14, 0x65, -0x1d, 0x2b, 0x65, 0x33, 0x2a, 0x52, -0x63, 0x57, 0x10,
3124 -0x1b, 0x26, -0x46, -0x7e, -0x25, 0x79, -0x01, -0x0d, -0x49, -0x4d, 0x74, 0x03, 0x77, 0x16, 0x03, -0x3d,
3125 0x1c, 0x25, 0x5a, -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b, -0x15, -0x1d, 0x32, 0x31,
3126 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, -0x02, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c,
3127 0x6d, -0x68, -0x71, -0x6b, -0x11, 0x44, -0x75, -0x55, -0x67, -0x52, 0x64, -0x3d, -0x05, -0x76, -0x6d, -0x44,
3128 });
3129
3130 try testArgs(@Vector(1, u8), .{
3131 0x1f,
3132 }, .{
3133 0x06,
3134 });
3135 try testArgs(@Vector(2, u8), .{
3136 0x80, 0x63,
3137 }, .{
3138 0xe4, 0x28,
3139 });
3140 try testArgs(@Vector(4, u8), .{
3141 0x83, 0x9e, 0x1e, 0xc1,
3142 }, .{
3143 0xf0, 0x5c, 0x46, 0x85,
3144 });
3145 try testArgs(@Vector(8, u8), .{
3146 0x1e, 0x4d, 0x9d, 0x2a, 0x4c, 0x74, 0x0a, 0x83,
3147 }, .{
3148 0x28, 0x60, 0xa9, 0xb5, 0xd9, 0xa6, 0xf1, 0xb6,
3149 });
3150 try testArgs(@Vector(16, u8), .{
3151 0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f,
3152 }, .{
3153 0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e,
3154 });
3155 try testArgs(@Vector(32, u8), .{
3156 0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a,
3157 0x4c, 0x05, 0x37, 0xc9, 0x8a, 0xcb, 0x91, 0x23, 0x09, 0x5f, 0xb8, 0x99, 0x4a, 0x75, 0x26, 0xe4,
3158 }, .{
3159 0xff, 0x0f, 0x99, 0x49, 0xa6, 0x25, 0xa7, 0xd4, 0xc9, 0x2f, 0x97, 0x6a, 0x01, 0xd6, 0x6e, 0x41,
3160 0xa4, 0xb5, 0x3c, 0x03, 0xea, 0x82, 0x9c, 0x5f, 0xac, 0x07, 0x16, 0x15, 0x1c, 0x64, 0x25, 0x2f,
3161 });
3162 try testArgs(@Vector(64, u8), .{
3163 0xaa, 0x08, 0xeb, 0xb2, 0xd7, 0x89, 0x0f, 0x98, 0xda, 0x9f, 0xa6, 0x4e, 0x3c, 0xce, 0x1b, 0x1b,
3164 0x9e, 0x5f, 0x2b, 0xd6, 0x59, 0x26, 0x47, 0x05, 0x2a, 0xb7, 0xd1, 0x10, 0xde, 0xd9, 0x84, 0x00,
3165 0x07, 0xc0, 0xaa, 0x6e, 0xfa, 0x3b, 0x97, 0x85, 0xa8, 0x42, 0xd7, 0xa5, 0x90, 0xe6, 0x10, 0x1a,
3166 0x47, 0x84, 0xe1, 0x3e, 0xb0, 0x70, 0x26, 0x3f, 0xea, 0x24, 0xb8, 0x5f, 0xe3, 0xe3, 0x4c, 0xed,
3167 }, .{
3168 0x3b, 0xc5, 0xe0, 0x3d, 0x4f, 0x2e, 0x1d, 0xa9, 0xf7, 0x7b, 0xc7, 0xc1, 0x48, 0xc6, 0xe5, 0x9e,
3169 0x4d, 0xa8, 0x21, 0x37, 0xa1, 0x1a, 0x95, 0x69, 0x89, 0x2f, 0x15, 0x07, 0x3d, 0x7b, 0x69, 0x89,
3170 0xea, 0x87, 0xf0, 0x94, 0x67, 0xf2, 0x3d, 0x04, 0x96, 0x8a, 0xd6, 0x70, 0x7c, 0x16, 0xe7, 0x62,
3171 0xf0, 0x8d, 0x96, 0x65, 0xd1, 0x4a, 0x35, 0x3e, 0x7a, 0x67, 0xa6, 0x1f, 0x37, 0x66, 0xe3, 0x45,
3172 });
3173 try testArgs(@Vector(128, u8), .{
3174 0xa1, 0xd0, 0x7b, 0xf9, 0x7b, 0x77, 0x7b, 0x3d, 0x2d, 0x68, 0xc2, 0x7b, 0xb0, 0xb8, 0xd4, 0x7c,
3175 0x1a, 0x1f, 0xd2, 0x92, 0x3e, 0xcb, 0xc1, 0x6b, 0xb9, 0x4d, 0xf1, 0x67, 0x58, 0x8e, 0x77, 0xa6,
3176 0xb9, 0xdf, 0x10, 0x6f, 0xbe, 0xe3, 0x33, 0xb6, 0x93, 0x77, 0x80, 0xef, 0x09, 0x9d, 0x61, 0x40,
3177 0xa2, 0xf4, 0x52, 0x18, 0x9d, 0xe4, 0xb0, 0xaf, 0x0a, 0xa7, 0x0b, 0x09, 0x67, 0x38, 0x71, 0x04,
3178 0x72, 0xa1, 0xd2, 0xfd, 0xf8, 0xf0, 0xa7, 0x23, 0x24, 0x5b, 0x7d, 0xfb, 0x43, 0xba, 0x6c, 0xc4,
3179 0x83, 0x46, 0x0e, 0x4d, 0x6c, 0x92, 0xab, 0x4f, 0xd2, 0x70, 0x9d, 0xfe, 0xce, 0xf8, 0x05, 0x9f,
3180 0x98, 0x36, 0x9c, 0x90, 0x9a, 0xd0, 0xb5, 0x76, 0x16, 0xe8, 0x25, 0xc2, 0xbd, 0x91, 0xab, 0xf9,
3181 0x6f, 0x6c, 0xc5, 0x60, 0xe5, 0x30, 0xf2, 0xb7, 0x59, 0xc4, 0x9c, 0xdd, 0xdf, 0x04, 0x65, 0xd9,
3182 }, .{
3183 0xed, 0xe1, 0x8a, 0xf6, 0xf3, 0x8b, 0xfd, 0x1d, 0x3c, 0x87, 0xbf, 0xfe, 0x04, 0x52, 0x15, 0x82,
3184 0x0b, 0xb0, 0xcf, 0xcf, 0xf8, 0x03, 0x9c, 0xef, 0xc1, 0x76, 0x7e, 0xe3, 0xe9, 0xa8, 0x18, 0x90,
3185 0xd4, 0xc4, 0x91, 0x15, 0x68, 0x7f, 0x65, 0xd8, 0xe1, 0xb3, 0x23, 0xc2, 0x7d, 0x84, 0x3b, 0xaf,
3186 0x74, 0x69, 0x07, 0x2a, 0x1b, 0x5f, 0x0e, 0x44, 0x0d, 0x2b, 0x9c, 0x82, 0x41, 0xf9, 0x7f, 0xb5,
3187 0xc4, 0xd9, 0xcb, 0xd3, 0xc5, 0x31, 0x8b, 0x5f, 0xda, 0x09, 0x9b, 0x29, 0xa3, 0xb7, 0x13, 0x0d,
3188 0x55, 0x9b, 0x59, 0x33, 0x2a, 0x59, 0x3a, 0x44, 0x1f, 0xd3, 0x40, 0x4e, 0xde, 0x2c, 0xe4, 0x16,
3189 0xfd, 0xc3, 0x02, 0x74, 0xaa, 0x65, 0xfd, 0xc8, 0x2a, 0x8a, 0xdb, 0xae, 0x44, 0x28, 0x62, 0xa4,
3190 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3,
3191 });
3192
3193 try testArgs(@Vector(1, i9), .{
3194 0x002,
3195 }, .{
3196 0x0bd,
3197 });
3198 try testArgs(@Vector(2, i9), .{
3199 0x00c, 0x0b1,
3200 }, .{
3201 -0x00b, -0x009,
3202 });
3203 try testArgs(@Vector(4, i9), .{
3204 0x0b2, 0x02b, -0x09d, -0x03c,
3205 }, .{
3206 0x031, 0x078, 0x016, -0x08a,
3207 });
3208 try testArgs(@Vector(8, i9), .{
3209 0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8,
3210 }, .{
3211 0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003,
3212 });
3213 try testArgs(@Vector(16, i9), .{
3214 0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a,
3215 }, .{
3216 0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0,
3217 });
3218 try testArgs(@Vector(32, i9), .{
3219 -0x003, 0x01b, 0x0b6, -0x009, 0x090, 0x047, -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf, 0x06a, -0x0e0, 0x03f, 0x007, 0x0a1,
3220 0x009, -0x0fb, 0x034, 0x0ba, 0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029, -0x076, 0x044, 0x0d4, 0x083, -0x002, 0x04e,
3221 }, .{
3222 -0x0cb, 0x0e3, 0x014, 0x02f, -0x0da, -0x06a, 0x07f, 0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017, -0x00d, 0x041, 0x03e,
3223 -0x096, -0x008, 0x075, -0x0bc, 0x0f9, -0x0fc, -0x0a7, 0x0ef, 0x0f9, 0x066, 0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6,
3224 });
3225 try testArgs(@Vector(64, i9), .{
3226 -0x016, -0x0ae, 0x08b, -0x0eb, -0x0b2, 0x02f, 0x039, -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb, 0x0ca, -0x049, 0x04e,
3227 -0x019, -0x0d9, -0x0bd, 0x0ae, -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9, 0x02c, 0x0cc, 0x093, -0x022, 0x07a, -0x093,
3228 0x0e5, -0x011, -0x003, 0x070, -0x042, -0x0ad, 0x0be, -0x038, -0x0bf, 0x098, 0x090, -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039,
3229 -0x035, -0x0e5, -0x054, 0x04c, 0x04b, -0x09f, 0x091, -0x039, 0x09b, -0x029, 0x014, -0x0d3, 0x06b, 0x0ae, 0x091, 0x082,
3230 }, .{
3231 -0x0bb, -0x0ec, 0x0fa, 0x055, 0x06f, 0x011, -0x09d, 0x083, -0x066, 0x014, 0x007, 0x002, -0x0ee, -0x0d9, 0x0c3, -0x087,
3232 0x03c, -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b, -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001, -0x0ba, 0x0c4, 0x0bb,
3233 0x032, 0x01e, -0x074, -0x058, -0x040, 0x0aa, 0x077, 0x028, -0x061, 0x076, -0x04e, 0x01a, -0x05f, -0x073, 0x0ea, 0x06e,
3234 -0x069, -0x0a1, -0x041, 0x013, -0x01c, -0x0f8, 0x053, 0x0f8, -0x0c3, 0x058, -0x02d, 0x0f1, -0x045, 0x04b, -0x0b1, -0x0f3,
3235 });
3236 try testArgs(@Vector(128, i9), .{
3237 0x0d4, 0x036, 0x0bd, -0x046, -0x0a7, 0x09e, 0x0dd, 0x043, 0x098, -0x09a, -0x06f, 0x0bb, -0x0b7, 0x021, 0x0a3, 0x0f0,
3238 0x069, -0x08b, 0x0da, 0x016, -0x049, 0x0d0, 0x07b, 0x004, 0x0ad, -0x07c, -0x04e, -0x011, 0x01f, -0x035, 0x028, -0x0c9,
3239 -0x0eb, 0x077, 0x08b, -0x009, 0x024, -0x058, 0x04e, -0x0c0, -0x01d, -0x0a7, 0x088, 0x01b, -0x0f3, -0x0c5, -0x08e, 0x0dc,
3240 0x07d, 0x086, -0x032, 0x0a9, -0x00c, -0x06a, 0x06c, 0x032, 0x083, 0x0ec, 0x0ec, -0x0a6, 0x029, 0x044, -0x07f, 0x068,
3241 -0x038, 0x0f6, 0x0b5, -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c, -0x037, 0x0cc, -0x033, 0x08a, -0x0b4, -0x039,
3242 0x01e, 0x06c, 0x015, -0x081, -0x029, 0x017, -0x080, -0x01e, -0x081, 0x04f, -0x071, -0x073, 0x0c3, 0x079, 0x0ad, 0x087,
3243 -0x072, 0x067, -0x064, -0x0d4, 0x0b4, 0x003, 0x0b1, 0x0bb, 0x0cc, -0x0e9, 0x0e7, 0x015, 0x07b, 0x0e4, -0x0ee, -0x07f,
3244 -0x0bf, 0x0cd, -0x056, 0x0ea, 0x0e5, 0x0fa, 0x0e1, -0x087, 0x0fe, 0x017, 0x071, -0x0d1, -0x053, -0x088, -0x0ef, 0x01b,
3245 }, .{
3246 0x0ea, -0x018, 0x0ab, 0x039, 0x0ec, 0x0cc, -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc, 0x099, -0x03c, -0x0b4,
3247 -0x0fe, -0x0ce, 0x0d6, -0x084, 0x08f, 0x04b, 0x0cc, -0x023, 0x01e, -0x09c, 0x058, 0x0f4, -0x0a7, 0x085, -0x049, -0x050,
3248 0x0f3, -0x036, -0x0fe, 0x070, -0x0a2, -0x081, -0x066, 0x057, -0x017, -0x0c8, 0x070, 0x09b, -0x0e4, -0x03b, -0x0d9, 0x081,
3249 0x041, 0x0ec, -0x062, 0x0b9, -0x0d2, -0x02a, 0x0ab, 0x072, 0x001, -0x082, -0x0cd, 0x0c8, 0x017, -0x09d, 0x094, -0x027,
3250 0x09c, 0x024, -0x0ec, 0x02f, 0x066, -0x08e, 0x0ee, 0x099, 0x08e, -0x0e5, -0x094, 0x0bb, 0x02f, -0x0fe, -0x07e, -0x0ad,
3251 0x05c, 0x066, 0x07e, -0x0a9, 0x0fe, -0x0e3, -0x068, 0x058, -0x007, 0x0d6, -0x0e8, -0x0d6, 0x038, 0x0b8, -0x0b2, 0x0c1,
3252 0x09a, 0x02f, 0x0d9, 0x07d, 0x0fc, 0x0f7, -0x005, -0x01c, 0x0c2, 0x066, 0x064, -0x096, -0x040, 0x065, -0x00d, -0x063,
3253 0x031, -0x088, 0x090, -0x077, 0x0e2, 0x0a8, -0x0e0, -0x077, 0x0eb, 0x0c3, -0x0ad, 0x008, 0x04e, -0x095, -0x041, -0x0a6,
3254 });
3255
3256 try testArgs(@Vector(1, u9), .{
3257 0x09e,
3258 }, .{
3259 0x171,
3260 });
3261 try testArgs(@Vector(2, u9), .{
3262 0x0bf, 0x042,
3263 }, .{
3264 0x154, 0x14b,
3265 });
3266 try testArgs(@Vector(4, u9), .{
3267 0x0a5, 0x1ba, 0x1ef, 0x0b3,
3268 }, .{
3269 0x15d, 0x1d3, 0x00e, 0x13b,
3270 });
3271 try testArgs(@Vector(8, u9), .{
3272 0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f,
3273 }, .{
3274 0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052,
3275 });
3276 try testArgs(@Vector(16, u9), .{
3277 0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c,
3278 }, .{
3279 0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d,
3280 });
3281 try testArgs(@Vector(32, u9), .{
3282 0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f,
3283 0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2,
3284 }, .{
3285 0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad,
3286 0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2,
3287 });
3288 try testArgs(@Vector(64, u9), .{
3289 0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066,
3290 0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e,
3291 0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170,
3292 0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a,
3293 }, .{
3294 0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e,
3295 0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d,
3296 0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe,
3297 0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b,
3298 });
3299 try testArgs(@Vector(128, u9), .{
3300 0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098,
3301 0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097,
3302 0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c,
3303 0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199,
3304 0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c,
3305 0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe,
3306 0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180,
3307 0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152,
3308 }, .{
3309 0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029,
3310 0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7,
3311 0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e,
3312 0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032,
3313 0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7,
3314 0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec,
3315 0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196,
3316 0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2,
3317 });
3318
3319 try testArgs(@Vector(1, i15), .{
3320 0x1309,
3321 }, .{
3322 0x1422,
3323 });
3324 try testArgs(@Vector(2, i15), .{
3325 0x32e8, 0x3d81,
3326 }, .{
3327 0x195c, 0x13e8,
3328 });
3329 try testArgs(@Vector(4, i15), .{
3330 -0x3485, 0x2320, -0x1725, 0x1e6e,
3331 }, .{
3332 0x2910, 0x3293, 0x3144, -0x3bbc,
3333 });
3334 try testArgs(@Vector(8, i15), .{
3335 0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace,
3336 }, .{
3337 -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f,
3338 });
3339 try testArgs(@Vector(16, i15), .{
3340 -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2,
3341 0x25ec, 0x3cf1, 0x07ea, 0x3972, 0x09d8, -0x18a6, 0x06dd, -0x1c34,
3342 }, .{
3343 -0x0ec7, 0x1144, -0x1a94, 0x255f, -0x1fbb, -0x1500, -0x0e4f, 0x0b67,
3344 0x1352, -0x0d6b, 0x2f3e, -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6,
3345 });
3346 try testArgs(@Vector(32, i15), .{
3347 -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778, 0x394a,
3348 -0x0383, -0x2fb7, 0x04cf, 0x033a, 0x2bff, 0x3997, -0x112c, 0x3a1a,
3349 0x1adf, 0x270b, 0x182e, -0x23f6, 0x1a33, 0x2644, -0x0b41, -0x1c48,
3350 0x1c2d, -0x2a40, 0x007c, 0x1a62, 0x30d9, 0x0e4b, 0x32ee, 0x2b46,
3351 }, .{
3352 0x1af0, 0x286f, -0x14fe, 0x2318, 0x002a, -0x26b2, 0x350b, 0x0884,
3353 0x3011, 0x276a, 0x2b2a, 0x22d3, -0x1ece, 0x0143, 0x2f5b, -0x0fa2,
3354 0x2412, -0x3d86, -0x3774, -0x09a5, 0x0fbf, 0x32f7, -0x0a23, -0x3d5a,
3355 -0x1523, -0x27c5, 0x097f, 0x2923, 0x3060, 0x113e, -0x0643, -0x1287,
3356 });
3357 try testArgs(@Vector(64, i15), .{
3358 0x0419, 0x1803, -0x3897, 0x2b0c, 0x08a3, -0x39d0, 0x174e, -0x29c6,
3359 0x0152, -0x1078, 0x1113, 0x23bf, 0x0990, -0x2777, 0x2ba4, -0x058b,
3360 -0x2d4a, -0x23ba, 0x3875, -0x1720, -0x2625, -0x1c8f, 0x1f7c, 0x3f73,
3361 0x3780, -0x3043, -0x0d8d, 0x2ced, 0x091a, 0x3481, -0x1917, -0x352f,
3362 0x34c7, 0x322f, -0x20ae, -0x0653, 0x1c82, 0x09a8, -0x1a0b, -0x1dff,
3363 -0x24c2, -0x2592, -0x3ff7, 0x1515, -0x3d32, 0x1e9e, -0x334d, 0x352b,
3364 -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c, -0x2bad, -0x2682, 0x32cf,
3365 0x31e4, -0x085c, -0x0c84, -0x2f11, 0x03ba, -0x0111, -0x2634, 0x344f,
3366 }, .{
3367 0x011a, 0x186c, -0x2d7e, 0x29b1, 0x2cfb, -0x077b, 0x3e8c, -0x3a62,
3368 0x3575, 0x35f0, -0x2529, -0x3040, 0x398e, -0x0c56, 0x2aa5, 0x0a72,
3369 -0x0c36, -0x2c53, 0x275b, -0x1155, 0x1a9d, -0x34af, -0x3d4f, 0x14a0,
3370 -0x0b88, 0x0b34, 0x2d60, 0x19ee, -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b,
3371 -0x23f4, 0x0472, 0x1977, -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f,
3372 -0x2dcb, 0x2e99, 0x0dd1, 0x0377, -0x3f91, -0x3719, 0x0248, 0x3c40,
3373 -0x08d4, -0x2f12, -0x12ee, 0x3bc0, 0x3c4a, 0x1ff3, -0x1096, -0x37e0,
3374 -0x0879, -0x354f, -0x2277, 0x1ced, 0x0833, -0x0f7e, 0x2070, 0x0d81,
3375 });
3376
3377 try testArgs(@Vector(1, u15), .{
3378 0x18c0,
3379 }, .{
3380 0x0c85,
3381 });
3382 try testArgs(@Vector(2, u15), .{
3383 0x3697, 0x744b,
3384 }, .{
3385 0x60d5, 0x4172,
3386 });
3387 try testArgs(@Vector(4, u15), .{
3388 0x7c31, 0x62c3, 0x7fe9, 0x4a52,
3389 }, .{
3390 0x28bf, 0x58a9, 0x09d5, 0x111f,
3391 });
3392 try testArgs(@Vector(8, u15), .{
3393 0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665,
3394 }, .{
3395 0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66,
3396 });
3397 try testArgs(@Vector(16, u15), .{
3398 0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43,
3399 0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f,
3400 }, .{
3401 0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2,
3402 0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3,
3403 });
3404 try testArgs(@Vector(32, u15), .{
3405 0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074,
3406 0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc,
3407 0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850,
3408 0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c,
3409 }, .{
3410 0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89,
3411 0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda,
3412 0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6,
3413 0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960,
3414 });
3415 try testArgs(@Vector(64, u15), .{
3416 0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a,
3417 0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7,
3418 0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0,
3419 0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6,
3420 0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98,
3421 0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2,
3422 0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e,
3423 0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d,
3424 }, .{
3425 0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1,
3426 0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849,
3427 0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f,
3428 0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97,
3429 0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3,
3430 0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2,
3431 0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc,
3432 0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29,
3433 });
3434
3435 try testArgs(@Vector(1, i16), .{
3436 -0x7b9c,
3437 }, .{
3438 0x600a,
3439 });
3440 try testArgs(@Vector(2, i16), .{
3441 0x43cc, -0x1421,
3442 }, .{
3443 -0x2b0e, 0x4d99,
3444 });
3445 try testArgs(@Vector(4, i16), .{
3446 0x558f, 0x6d92, 0x488f, 0x0a04,
3447 }, .{
3448 -0x01a9,
3449 0x2ee4,
3450 0x24a9,
3451 -0x5fee,
3452 });
3453 try testArgs(@Vector(8, i16), .{
3454 -0x7e5d, -0x02e4, -0x3a72, -0x2e30, 0x7c87, 0x3ea0, 0x4f02, 0x06e4,
3455 }, .{
3456 -0x417f, 0x5a13, -0x117b, 0x4c28, -0x3769, -0x56a8, 0x1656, -0x4431,
3457 });
3458 try testArgs(@Vector(16, i16), .{
3459 0x04be, 0x774a, 0x7395, -0x6ca2, -0x21a0, 0x35be, 0x186c, 0x5991,
3460 -0x1a82, 0x4527, -0x2278, -0x3554, 0x42c1, 0x7f53, -0x670d, 0x1fad,
3461 }, .{
3462 0x7a7d, 0x47dd, 0x1975, 0x4028, 0x26ef, -0x24f5, -0x77c9, -0x19a5,
3463 -0x4b04, -0x6939, -0x1b8d, 0x3718, -0x78e6, 0x0941, -0x1208, -0x392d,
3464 });
3465 try testArgs(@Vector(32, i16), .{
3466 0x4cde, 0x3ab0, 0x354e, 0x0bc0, -0x5333, 0x4857, -0x7ccf, -0x69da,
3467 0x6ab8, 0x2bf3, 0x1c5a, 0x7b11, -0x5653, 0x7bc5, 0x497e, -0x0b55,
3468 0x7aa8, -0x5a8c, -0x6d05, 0x6210, 0x1b64, 0x3f6f, 0x1a02, 0x65e4,
3469 -0x6795, 0x5867, -0x6faf, -0x07cb, -0x762c, -0x7500, 0x1f1c, -0x4348,
3470 }, .{
3471 0x72f6, -0x5405, -0x3aac, 0x2857, 0x34cd, -0x1dce, -0x56d8, 0x7150,
3472 -0x6549, 0x61bd, -0x3a9f, -0x1e02, -0x5a5a, -0x7910, -0x166d, 0x7c8e,
3473 -0x5292, -0x6c6e, -0x37e3, 0x1514, 0x1787, 0x58cb, -0x4d99, -0x6c15,
3474 0x592e, -0x045f, 0x7682, -0x1eef, 0x1fb2, -0x7117, -0x2a17, -0x2d8e,
3475 });
3476 try testArgs(@Vector(64, i16), .{
3477 0x29c3, -0x1b1f, -0x17ce, -0x50d0, -0x5de3, 0x5ffd, 0x184a, -0x7769,
3478 0x445e, 0x0d8a, 0x7844, -0x757d, 0x2b32, 0x5374, -0x6ab2, -0x71c4,
3479 0x38f9, 0x347f, 0x2d4c, 0x69a4, -0x2f92, -0x4479, 0x427b, -0x0c5f,
3480 0x15ae, 0x2c86, 0x1864, -0x0095, 0x6803, -0x3484, 0x1001, -0x0560,
3481 -0x0824, 0x7bf6, 0x7a3c, -0x458a, -0x65cc, -0x54b1, -0x75c6, 0x782e,
3482 0x35a7, -0x3188, -0x58ba, 0x40d0, -0x4a9c, 0x6b79, 0x1ef5, 0x67a2,
3483 -0x3fb8, 0x1885, -0x093d, -0x4802, 0x0379, 0x2f52, 0x7f1f, 0x256c,
3484 0x1052, 0x1b3b, -0x6146, 0x7e0d, 0x79ca, -0x79ee, 0x3d58, 0x7482,
3485 }, .{
3486 -0x0017, -0x3fdd, -0x6f93, 0x6178, 0x5c2b, 0x4eb3, 0x685b, 0x12c8,
3487 0x0290, -0x34f4, -0x6572, 0x3ab6, -0x3ed1, -0x5e5f, 0x3a90, -0x4540,
3488 -0x2098, 0x6bde, 0x1246, 0x2212, -0x4d6a, -0x2a5a, 0x5cc4, -0x240f,
3489 0x51b2, 0x5ec0, -0x5b5f, -0x1b6e, -0x57a5, -0x06bd, -0x5132, 0x7889,
3490 0x2817, 0x6ada, -0x6b46, -0x6a37, -0x6475, -0x5ff4, 0x5a27, 0x1dfa,
3491 0x6bd6, -0x49da, -0x09bf, -0x7c53, 0x2cd3, -0x6be0, -0x2dca, 0x44bd,
3492 -0x1b95, 0x7680, -0x5bb0, 0x7ad7, -0x1988, 0x149f, 0x631e, -0x1d2d,
3493 0x632b, 0x55c7, -0x3433, 0x0dde, -0x27a7, 0x560e, -0x2063, 0x4570,
3494 });
3495
3496 try testArgs(@Vector(1, u16), .{
3497 0x9d6f,
3498 }, .{
3499 0x44b1,
3500 });
3501 try testArgs(@Vector(2, u16), .{
3502 0xa0fa, 0xc365,
3503 }, .{
3504 0xe736, 0xc394,
3505 });
3506 try testArgs(@Vector(4, u16), .{
3507 0x9608, 0xa558, 0x161b, 0x206f,
3508 }, .{
3509 0x3088, 0xf25c, 0x7837, 0x9b3f,
3510 });
3511 try testArgs(@Vector(8, u16), .{
3512 0xcf61, 0xb121, 0x3cf1, 0x3e9f, 0x43a7, 0x8d69, 0x96f5, 0xc11e,
3513 }, .{
3514 0xee30, 0x82f0, 0x270b, 0x1498, 0x4c60, 0x6e72, 0x0b64, 0x02d4,
3515 });
3516 try testArgs(@Vector(16, u16), .{
3517 0x9191, 0xd23e, 0xf844, 0xd84a, 0xe907, 0xf1e8, 0x712d, 0x90af,
3518 0x6541, 0x3fa6, 0x92eb, 0xe35a, 0xc0c9, 0xcb47, 0xb790, 0x4453,
3519 }, .{
3520 0x21c3, 0x4039, 0x9b71, 0x60bd, 0xcd7f, 0x2ec8, 0x50ba, 0xe810,
3521 0xebd4, 0x06e5, 0xed18, 0x2f66, 0x7e31, 0xe282, 0xad63, 0xb25e,
3522 });
3523 try testArgs(@Vector(32, u16), .{
3524 0x6b6a, 0x30a9, 0xc267, 0x2231, 0xbf4c, 0x00bc, 0x9c2c, 0x2928,
3525 0xecad, 0x82df, 0xcfb0, 0xa4e5, 0x909b, 0x1b05, 0xaf40, 0x1fd9,
3526 0xcec6, 0xd8dc, 0xd4b5, 0x6d59, 0x8e3f, 0x4d8a, 0xb83a, 0x808e,
3527 0x47e2, 0x5782, 0x59bf, 0xcefc, 0x5179, 0x3f48, 0x93dc, 0x66d2,
3528 }, .{
3529 0x1be8, 0xe98c, 0xf9b3, 0xb008, 0x2f8d, 0xf087, 0xc9b9, 0x75aa,
3530 0xbd16, 0x9540, 0xc5bd, 0x2b2c, 0xd43f, 0x9394, 0x3e1d, 0xf695,
3531 0x167d, 0xff7a, 0xf09d, 0xdff8, 0xdfa2, 0xc779, 0x70b7, 0x01bd,
3532 0x46b3, 0x995a, 0xb7bc, 0xa79d, 0x5542, 0x961e, 0x37cd, 0x9c2a,
3533 });
3534 try testArgs(@Vector(64, u16), .{
3535 0x6b87, 0xfd84, 0x436b, 0xe345, 0xfb82, 0x81fc, 0x0992, 0x45f9,
3536 0x5527, 0x1f6d, 0xda46, 0x6a16, 0xf6e1, 0x8fb7, 0x3619, 0xdfe3,
3537 0x64ce, 0x8ac6, 0x3ae8, 0x30e3, 0xec3b, 0x4ba7, 0x02a4, 0xa694,
3538 0x8e68, 0x8f0c, 0x5e30, 0x0e55, 0x6538, 0x9852, 0xea35, 0x7be2,
3539 0xdabd, 0x57e6, 0x5b38, 0x0fb2, 0x2604, 0x85e7, 0x6595, 0x8de9,
3540 0x49b1, 0xe9a2, 0x3758, 0xa4d9, 0x505b, 0xc9d3, 0xddc5, 0x9a43,
3541 0xfd44, 0x50f5, 0x379e, 0x03b6, 0x6375, 0x692f, 0x5586, 0xc717,
3542 0x94dd, 0xee06, 0xb32d, 0x0bb9, 0x0e35, 0x5f8f, 0x0ba4, 0x19a8,
3543 }, .{
3544 0xbeeb, 0x3e54, 0x6486, 0x5167, 0xe432, 0x57cf, 0x9cac, 0x922e,
3545 0xd2f8, 0x5614, 0x2e7f, 0x19cf, 0x9a07, 0x0524, 0x168f, 0x4464,
3546 0x4def, 0x83ce, 0x97b4, 0xf269, 0xda5f, 0x28c1, 0x9cc3, 0xfa7c,
3547 0x25a0, 0x912d, 0x25b2, 0xd60d, 0xcd82, 0x0e03, 0x40cc, 0xc9dc,
3548 0x18eb, 0xc609, 0xb06d, 0x29e0, 0xf3c7, 0x997b, 0x8ca2, 0xa750,
3549 0xc9bc, 0x8f0e, 0x3916, 0xd905, 0x94f8, 0x397f, 0x98b5, 0xc61d,
3550 0x05db, 0x3e7a, 0xf750, 0xe8de, 0x3225, 0x81d9, 0x612e, 0x0a7e,
3551 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc,
3552 });
3553
3554 try testArgs(@Vector(1, i17), .{
3555 0x0538f,
3556 }, .{
3557 0x01de0,
3558 });
3559 try testArgs(@Vector(2, i17), .{
3560 0x0cb5d, 0x00c0b,
3561 }, .{
3562 -0x0ef1d, -0x0797c,
3563 });
3564 try testArgs(@Vector(4, i17), .{
3565 -0x06cbb, 0x08fcd, 0x05d91, -0x05824,
3566 }, .{
3567 0x0714b, 0x09218, -0x0c0d8, 0x000dd,
3568 });
3569 try testArgs(@Vector(8, i17), .{
3570 0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79,
3571 }, .{
3572 0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f,
3573 });
3574 try testArgs(@Vector(16, i17), .{
3575 -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d,
3576 0x042d2, 0x06121, 0x0241f, 0x06833, 0x0a33b, 0x0f526, 0x0671a, 0x0c2a3,
3577 }, .{
3578 0x02be2, -0x08589, 0x0d95c, -0x001cc, -0x03183, 0x08c1a, -0x001db, 0x07604,
3579 0x08d92, 0x094ad, -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e,
3580 });
3581 try testArgs(@Vector(32, i17), .{
3582 0x01222, 0x022bc, 0x042df, 0x02205, -0x06de8, -0x0aaaf, 0x0fa4c, -0x0c708,
3583 -0x06edd, -0x0acbe, 0x0b01f, 0x003f5, -0x0b82a, 0x0a189, -0x04f4b, 0x02122,
3584 -0x0debd, -0x0b05f, 0x091b6, -0x074ff, 0x054e5, -0x03355, 0x08ab0, 0x0c3c8,
3585 -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99, -0x0f096, 0x0e064,
3586 }, .{
3587 0x0d1c0, 0x02f93, 0x0e28c, 0x0862d, -0x09e1e, -0x02247, -0x01b56, 0x06633,
3588 0x0fdcc, -0x0731f, 0x0e084, 0x0b865, 0x089ac, -0x09e31, 0x0c730, 0x0af1d,
3589 0x0c9b2, -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593, -0x02c83, -0x04e28, 0x0f375,
3590 -0x0e805, 0x0390f, 0x042a3, -0x02aed, 0x03a5a, 0x070d3, -0x0ed6a, 0x02b14,
3591 });
3592 try testArgs(@Vector(64, i17), .{
3593 0x0be66, 0x0e4fb, -0x0b918, -0x029b8, 0x019e8, 0x00621, 0x0e380, 0x040f6,
3594 -0x0d095, 0x0b4d8, -0x0a3ad, -0x0eaf2, 0x03bd3, 0x0635c, 0x02444, -0x0830f,
3595 0x01239, -0x037ed, -0x071d1, 0x057e7, -0x02cdb, 0x0504c, 0x0612c, -0x005bf,
3596 -0x04793, 0x03909, 0x0061c, -0x06423, 0x040d6, 0x0bc6a, -0x09204, 0x0e890,
3597 0x04b98, 0x00257, 0x0dc85, -0x0af2b, -0x0a1e7, 0x04ff6, 0x0b680, -0x07c61,
3598 -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8, 0x06b52, -0x0d619, -0x09344,
3599 -0x09b96, 0x0b81e, 0x04df8, -0x012f6, -0x0c3bd, 0x067cc, -0x0fa47, -0x05e93,
3600 0x07d29, 0x00d87, 0x0de1f, 0x0d24f, -0x0aede, -0x03414, -0x09a6c, 0x094dc,
3601 }, .{
3602 0x03d8e, -0x0f297, -0x0d810, 0x05b8e, -0x0630e, -0x0656f, 0x02f56, 0x0190b,
3603 0x0a1e6, -0x0783a, -0x00bde, 0x01bb2, -0x093a5, -0x02b3f, 0x0198c, 0x0cc55,
3604 0x04ec1, -0x0ed31, -0x00a80, -0x0be6d, 0x0712b, 0x0451b, 0x067a4, 0x061cd,
3605 0x0e799, -0x06c74, -0x09b05, 0x0dc73, -0x0a87d, -0x0cf60, -0x00f07, 0x0b101,
3606 0x06d5b, 0x09d61, -0x01092, 0x002ee, 0x0f192, 0x0024b, 0x04778, 0x06d05,
3607 -0x0e460, 0x08524, -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5,
3608 0x071fe, 0x016d5, -0x076e2, -0x035d8, 0x02763, -0x0676f, -0x0a9aa, -0x0ab0b,
3609 0x012de, -0x00d05, 0x0f528, 0x07837, 0x0fc4e, -0x06304, 0x0616f, -0x0b10d,
3610 });
3611
3612 try testArgs(@Vector(1, u17), .{
3613 0x17ba6,
3614 }, .{
3615 0x1ac3a,
3616 });
3617 try testArgs(@Vector(2, u17), .{
3618 0x1d26d, 0x18548,
3619 }, .{
3620 0x0c0eb, 0x1bbc8,
3621 });
3622 try testArgs(@Vector(4, u17), .{
3623 0x1a01c, 0x12671, 0x175cc, 0x0ed36,
3624 }, .{
3625 0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18,
3626 });
3627 try testArgs(@Vector(8, u17), .{
3628 0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df,
3629 }, .{
3630 0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5,
3631 });
3632 try testArgs(@Vector(16, u17), .{
3633 0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254,
3634 0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38,
3635 }, .{
3636 0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6,
3637 0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a,
3638 });
3639 try testArgs(@Vector(32, u17), .{
3640 0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560,
3641 0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5,
3642 0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb,
3643 0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299,
3644 }, .{
3645 0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831,
3646 0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684,
3647 0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1,
3648 0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee,
3649 });
3650 try testArgs(@Vector(64, u17), .{
3651 0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc,
3652 0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c,
3653 0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355,
3654 0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388,
3655 0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136,
3656 0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428,
3657 0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7,
3658 0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7,
3659 }, .{
3660 0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6,
3661 0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18,
3662 0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884,
3663 0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43,
3664 0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791,
3665 0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1,
3666 0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146,
3667 0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5,
3668 });
3669
3670 try testArgs(@Vector(1, i31), .{
3671 0x2b94a60e,
3672 }, .{
3673 0x20451023,
3674 });
3675 try testArgs(@Vector(2, i31), .{
3676 0x21d4d18c, -0x1f73454a,
3677 }, .{
3678 -0x18dcc667, -0x2e81b7f1,
3679 });
3680 try testArgs(@Vector(4, i31), .{
3681 -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669,
3682 }, .{
3683 -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3,
3684 });
3685 try testArgs(@Vector(8, i31), .{
3686 0x0ffaa22c, 0x15914f94, -0x20cec195, -0x35e7b06a,
3687 -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e,
3688 }, .{
3689 -0x178ffdb4, -0x10934a93, 0x08c3b058, -0x1579a89f,
3690 0x2340c302, 0x00280e85, -0x38983c31, 0x0349891e,
3691 });
3692 try testArgs(@Vector(16, i31), .{
3693 -0x11bc6f72, 0x1ca1ca00, 0x0b49c711, -0x07fd7d21,
3694 0x20ab59d2, -0x07f45e94, -0x0d33151d, 0x065b8bff,
3695 0x2231354e, 0x21ff00a7, -0x35061bb0, -0x1135899e,
3696 0x2ed1c690, -0x1c1b598f, -0x19157726, -0x11c4d2c7,
3697 }, .{
3698 0x304dbbfb, -0x3e59fd39, 0x1029151a, -0x1e4d2063,
3699 -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749,
3700 0x380ae142, 0x357f1b30, -0x17ccaa0d, -0x32cd12b4,
3701 0x305256f7, -0x298ce473, 0x244faaf4, 0x23450241,
3702 });
3703 try testArgs(@Vector(32, i31), .{
3704 -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f, 0x2a4f2d06,
3705 -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7,
3706 0x357e8c45, 0x0434b6b9, 0x28a3c5f9, 0x2d5b9944,
3707 0x316614a1, 0x0c12a228, 0x0422665d, 0x33c0dec9,
3708 0x0a7ede17, -0x02e88ae9, -0x39e76560, 0x1e4b90af,
3709 0x0a1527bb, 0x3a9f0405, 0x163b6eae, -0x3ff84429,
3710 0x1eb85fcc, 0x265f1f44, 0x2536ec34, -0x30c952a2,
3711 -0x1f7864e5, 0x033737cd, -0x20b5718a, -0x0aad3a2f,
3712 }, .{
3713 -0x2455af85, 0x210b1040, 0x39915c7d, 0x2d56c08e,
3714 0x1f318b8d, -0x1e125926, -0x3faaabbb, -0x254d4da5,
3715 -0x1b2ded0f, -0x27fa4874, 0x02c0d73b, 0x123e9344,
3716 0x0351c023, 0x14cca255, -0x2072b9d7, 0x1e624059,
3717 -0x07d014a1, 0x2eda3228, -0x300ff9b4, 0x333f25ad,
3718 -0x3c653e21, 0x04b4a50e, -0x20f17e80, 0x29063cd1,
3719 0x2d52f6ad, -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c,
3720 0x397162ee, -0x2aa6708b, -0x0ef146b4, 0x04f36039,
3721 });
3722
3723 try testArgs(@Vector(1, u31), .{
3724 0x3ed1fb2d,
3725 }, .{
3726 0x1b75c3fd,
3727 });
3728 try testArgs(@Vector(2, u31), .{
3729 0x38754d45, 0x04a454d9,
3730 }, .{
3731 0x7d06646d, 0x228e6c44,
3732 });
3733 try testArgs(@Vector(4, u31), .{
3734 0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c,
3735 }, .{
3736 0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1,
3737 });
3738 try testArgs(@Vector(8, u31), .{
3739 0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682,
3740 0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e,
3741 }, .{
3742 0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd,
3743 0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78,
3744 });
3745 try testArgs(@Vector(16, u31), .{
3746 0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc,
3747 0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2,
3748 0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9,
3749 0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f,
3750 }, .{
3751 0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0,
3752 0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3,
3753 0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71,
3754 0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57,
3755 });
3756 try testArgs(@Vector(32, u31), .{
3757 0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477,
3758 0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc,
3759 0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27,
3760 0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994,
3761 0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be,
3762 0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0,
3763 0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73,
3764 0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737,
3765 }, .{
3766 0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42,
3767 0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53,
3768 0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77,
3769 0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b,
3770 0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d,
3771 0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db,
3772 0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4,
3773 0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338,
3774 });
3775
3776 try testArgs(@Vector(1, i32), .{
3777 0x7aef7b1e,
3778 }, .{
3779 0x60310858,
3780 });
3781 try testArgs(@Vector(2, i32), .{
3782 -0x21910ac9, 0x669f37ef,
3783 }, .{
3784 0x1a2a1681, 0x003b1fdf,
3785 });
3786 try testArgs(@Vector(4, i32), .{
3787 0x7906cf0d, 0x4818a45f, -0x0a2833b6, 0x51a018c9,
3788 }, .{
3789 -0x05a3e6a7, -0x47f4a500, 0x50d1141f, -0x264c85c2,
3790 });
3791 try testArgs(@Vector(8, i32), .{
3792 0x7566235a, -0x7720144f, -0x7d4f5489, 0x3cd736c8,
3793 -0x77388801, 0x4e7f955a, 0x4cdf52bc, 0x50b0b53f,
3794 }, .{
3795 0x00ed6fc5, 0x37320361, 0x70c563c2, -0x09acb495,
3796 0x0688e83f, 0x797295c4, -0x23bfbfdb, 0x38552096,
3797 });
3798 try testArgs(@Vector(16, i32), .{
3799 -0x0214589d, 0x74a7537f, 0x7a7dcb26, 0x3e2e4c44,
3800 -0x23bfc358, 0x60e8ef18, 0x5524a7bc, -0x3d88c153,
3801 -0x7dc8ff0f, 0x6e2698f6, 0x05641ab8, -0x45e9e405,
3802 -0x7c1a04d0, -0x4a8d1e91, 0x41d56723, 0x4ba924ab,
3803 }, .{
3804 -0x528dc756, -0x6bc217f4, 0x40789b06, 0x65f08d3a,
3805 -0x077140ea, -0x43bdaa79, 0x5d98f4e7, -0x2356a1ca,
3806 -0x36ef2b49, -0x7cd09b06, 0x71c8176e, 0x5b005860,
3807 0x6ce8cfab, -0x49fd7609, 0x6cbb4e33, 0x6c7c121d,
3808 });
3809 try testArgs(@Vector(32, i32), .{
3810 0x7d22905d, -0x354e4bbe, -0x68662618, -0x246e1858,
3811 -0x1c4285a9, -0x0338059c, -0x60f5bbf4, -0x04f06917,
3812 -0x55f837b6, -0x2fba5fe3, 0x092aabf4, -0x5f533b31,
3813 0x6e81a558, -0x7bcac358, 0x6c4d8d04, 0x3e2f9852,
3814 -0x78589b1a, -0x68a00fd4, -0x77d55e25, 0x7f79b51c,
3815 -0x66b88f45, 0x7f6dc8a5, -0x27299a82, -0x426c8e1c,
3816 0x0c288f16, 0x158f8c3f, 0x26708be1, -0x0b73626e,
3817 -0x32df1bee, 0x196330f4, -0x68bb9529, -0x26376ab6,
3818 }, .{
3819 0x63bd0bd4, 0x4e507611, -0x5e5222b8, -0x35d8e114,
3820 0x1feab77b, -0x20de7dfd, -0x0ed0b09f, -0x7fc3d585,
3821 -0x2d3018e9, -0x261d431b, 0x54451864, 0x1415288f,
3822 -0x3ab89593, -0x7060e4c1, -0x54fcd501, -0x26324630,
3823 0x53fc8294, 0x2d4aceef, -0x4ac8efd2, -0x2fec97b7,
3824 -0x4de3a2fc, 0x2269fe52, -0x58c8b473, -0x21026285,
3825 -0x23438776, 0x3d5c8c41, -0x1fc946b2, -0x161c7005,
3826 0x44913ff1, -0x76e2bfaa, -0x54636350, -0x6ec53870,
3827 });
3828
3829 try testArgs(@Vector(1, u32), .{
3830 0x1d0d9cc4,
3831 }, .{
3832 0xce2d0ab6,
3833 });
3834 try testArgs(@Vector(2, u32), .{
3835 0x5ab78c03, 0xd21bb513,
3836 }, .{
3837 0x8a6664eb, 0x79eac37d,
3838 });
3839 try testArgs(@Vector(4, u32), .{
3840 0x234d576e, 0x4151cc9c, 0x39f558e4, 0xba935a32,
3841 }, .{
3842 0x398f2a9d, 0x4540f093, 0x9225551c, 0x3bac865b,
3843 });
3844 try testArgs(@Vector(8, u32), .{
3845 0xb8336635, 0x2fc3182c, 0x27a00123, 0x71587fbe,
3846 0x9cbc65d2, 0x6f4bb0e6, 0x362594ce, 0x9971df38,
3847 }, .{
3848 0x5727e734, 0x972b0313, 0xff25f5dc, 0x924f8e55,
3849 0x04920a61, 0xa1c3b334, 0xf52df4b6, 0x5ef72ecc,
3850 });
3851 try testArgs(@Vector(16, u32), .{
3852 0xfb566f9e, 0x9ad4691a, 0x5b5f9ec0, 0x5a572d2a,
3853 0x8f2f226b, 0x2dfc7e33, 0x9fb07e32, 0x9d672a2e,
3854 0xbedc3cee, 0x6872428d, 0xbc73a9fd, 0xd4d5f055,
3855 0x69c1e9ee, 0x65038deb, 0x1449061a, 0x48412ec2,
3856 }, .{
3857 0x96cbe946, 0x3f24f60b, 0xaeacdc53, 0x7611a8b4,
3858 0x031a67a8, 0x52a26828, 0x75646f4b, 0xb75902c3,
3859 0x1f881f08, 0x834e02a4, 0x5e5b40eb, 0xc75c264d,
3860 0xa8251e09, 0x28e46bbd, 0x12cb1f31, 0x9a2af615,
3861 });
3862 try testArgs(@Vector(32, u32), .{
3863 0x131bbb7b, 0xa7311026, 0x9d5e59a0, 0x99b090d6,
3864 0xfe969e2e, 0x04547697, 0x357d3250, 0x43be6d7a,
3865 0x16ecf5c5, 0xf60febcc, 0x1d1e2602, 0x138a96d2,
3866 0x9117ba72, 0x9f185b32, 0xc10e23fd, 0x3e6b7fd8,
3867 0x4dc9be70, 0x2ee30047, 0xaffeab60, 0x7172d362,
3868 0x6154bfcf, 0x5388dc3e, 0xd6e5a76e, 0x8b782f2d,
3869 0xacbef4a2, 0x843aca71, 0x25d8ab5c, 0xe1a63a39,
3870 0xc26212e5, 0x0847b84b, 0xb53541e5, 0x0c8e44db,
3871 }, .{
3872 0x4ad92822, 0x715b623f, 0xa5bed8a7, 0x937447a9,
3873 0x7ecb38eb, 0x0a2f3dfc, 0x96f467a2, 0xec882793,
3874 0x41a8707f, 0xf7310656, 0x76217b80, 0x2058e5fc,
3875 0x26682154, 0x87313e31, 0x4bdc480a, 0x193572ff,
3876 0x60b03c75, 0x0fe45908, 0x56c73703, 0xdb86554c,
3877 0xdda2dd7d, 0x34371b27, 0xe4e6ad50, 0x422d1828,
3878 0x1de3801b, 0xdce268d3, 0x20af9ec8, 0x188a591f,
3879 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5,
3880 });
3881
3882 try testArgs(@Vector(1, i33), .{
3883 0x0a9a3088e,
3884 }, .{
3885 0x06c76b26e,
3886 });
3887 try testArgs(@Vector(2, i33), .{
3888 0x0a9bd1d56, 0x05b0b9015,
3889 }, .{
3890 -0x05af6217c, 0x0227b5d3a,
3891 });
3892 try testArgs(@Vector(4, i33), .{
3893 -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663,
3894 }, .{
3895 -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9,
3896 });
3897 try testArgs(@Vector(8, i33), .{
3898 0x09d4fea1c, 0x0cd4254ba, 0x008d5f732, 0x0566c6f55,
3899 -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146,
3900 }, .{
3901 0x02c01d901, 0x04407fcae, -0x0e6a223a6, -0x0bd9499f8,
3902 0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e,
3903 });
3904 try testArgs(@Vector(16, i33), .{
3905 -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d,
3906 -0x0d502b660, 0x0dd465278, 0x042a7e451, 0x03c1c3671,
3907 0x00eb6f4a9, 0x08982dbc4, 0x0421b8852, 0x015ee0e53,
3908 0x0e6924014, 0x0c6ddbc65, 0x00260ea59, 0x0d98aaedf,
3909 }, .{
3910 -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47,
3911 -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861,
3912 -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9, 0x0b0064ff1,
3913 -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd, -0x06af4f476,
3914 });
3915 try testArgs(@Vector(32, i33), .{
3916 0x07b887609, -0x004a23b00, 0x09b664a97, -0x0d4932ed0,
3917 -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a,
3918 0x03d12175b, -0x0463cd854, 0x0cf448f1d, 0x0d1d02e2e,
3919 -0x0da681c00, 0x0d1173267, 0x08faa4e2c, 0x0634c9df5,
3920 0x037e682e2, 0x0db055022, -0x0641f3daa, 0x053852c9b,
3921 0x035822a2b, -0x0b12bfe53, 0x084f704c9, 0x018cfacee,
3922 -0x07130725b, -0x0b301dece, 0x00e1765b3, -0x0e0f0c97c,
3923 0x0ccd5e7fd, -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3,
3924 }, .{
3925 0x0df3d6e88, 0x00b4748ff, -0x0d0381c05, -0x093d68cb5,
3926 -0x027834cc7, 0x05aa9ca20, -0x04bc88f40, 0x080f0d937,
3927 0x06699a6b8, -0x0fed64f1d, 0x0a79fe089, -0x016a9c385,
3928 0x0186e6b5b, -0x0a3c83fe6, 0x09a4f87ec, 0x011ce03bf,
3929 -0x0f742cb8c, 0x066be2e66, -0x03b0beb52, 0x059bfda10,
3930 0x04bc221c0, 0x07d8b0344, -0x0c6e34f34, -0x0de0338ce,
3931 -0x09571f80c, 0x0d36e8ea7, -0x052c44147, 0x0072ce503,
3932 -0x0ef8dec64, 0x0b5956cb3, -0x02b72b4b1, 0x0f2585167,
3933 });
3934
3935 try testArgs(@Vector(1, u33), .{
3936 0x197ead992,
3937 }, .{
3938 0x0be595917,
3939 });
3940 try testArgs(@Vector(2, u33), .{
3941 0x1485499a5, 0x1e12b23e3,
3942 }, .{
3943 0x1431cd300, 0x0762a7b51,
3944 });
3945 try testArgs(@Vector(4, u33), .{
3946 0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed,
3947 }, .{
3948 0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2,
3949 });
3950 try testArgs(@Vector(8, u33), .{
3951 0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f,
3952 0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a,
3953 }, .{
3954 0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c,
3955 0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e,
3956 });
3957 try testArgs(@Vector(16, u33), .{
3958 0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53,
3959 0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6,
3960 0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac,
3961 0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275,
3962 }, .{
3963 0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22,
3964 0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef,
3965 0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906,
3966 0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948,
3967 });
3968 try testArgs(@Vector(32, u33), .{
3969 0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99,
3970 0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4,
3971 0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01,
3972 0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218,
3973 0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333,
3974 0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9,
3975 0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d,
3976 0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079,
3977 }, .{
3978 0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c,
3979 0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6,
3980 0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b,
3981 0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58,
3982 0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1,
3983 0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22,
3984 0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33,
3985 0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97,
3986 });
3987
3988 try testArgs(@Vector(1, i63), .{
3989 -0x2d99033c3223ad4f,
3990 }, .{
3991 0x023c8c6807737a0e,
3992 });
3993 try testArgs(@Vector(2, i63), .{
3994 -0x08fe3255607ce099, -0x3bf678cfa16a59d2,
3995 }, .{
3996 -0x1b8733d130c49d54, 0x39deb4fe6c836b3f,
3997 });
3998 try testArgs(@Vector(4, i63), .{
3999 0x1e81cf3e0f9eae80, -0x0886f09bd1723b08,
4000 0x16e84b8d985e5b82, 0x0fa327538c09a281,
4001 }, .{
4002 -0x2594908bb49f963f, -0x29639632db767665,
4003 0x012d5330f966e1be, -0x1143fddd48bf9752,
4004 });
4005 try testArgs(@Vector(8, i63), .{
4006 -0x08e352cf330c1852, -0x17bc1f760120ff85,
4007 -0x0f180e5c748c0e20, 0x07ee9290e2d53335,
4008 -0x33945ea070fbb445, 0x104802af8984525d,
4009 0x36d27ad0f35fcfd8, 0x292141a0133227a0,
4010 }, .{
4011 0x2adad30092da2886, -0x1694bcdda9b82c45,
4012 0x1f5a019d638ba22c, -0x2e7853134888b613,
4013 -0x2bb77a420f280a6d, -0x377771e94e493751,
4014 0x1dd5373311160f2f, -0x02bb5248b7e0c55e,
4015 });
4016 try testArgs(@Vector(16, i63), .{
4017 0x2d930d47aa078416, 0x1edf9abe8d562bd5,
4018 0x3ef3a5266f822396, -0x102f82f23c5608e1,
4019 -0x38755dccf6c87ae1, 0x09f11b107d033f85,
4020 0x079829e968213db8, 0x17248ef600ddb53d,
4021 0x19e16a7a4e6aa0cc, 0x11e21ddfb7b5b946,
4022 0x26ad3768e80b1258, 0x3672a14b31cb7f1a,
4023 0x3235b83f829966b4, 0x3b4009ac38f728b8,
4024 -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42,
4025 }, .{
4026 -0x1428b8c4947715ea, -0x0a5626024843736e,
4027 0x075a1a0d0d47f0af, 0x0ea460d282e8dcc0,
4028 -0x124b2a6e2957dc53, -0x0d2602075af449d5,
4029 -0x0db76b825400293c, -0x17c13cd693d2db13,
4030 0x0ad907bb94e64687, -0x05fd33e10be897ad,
4031 -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510,
4032 0x0106683b57f2cf9e, 0x353bea8a4c199155,
4033 0x3942af4e40b65cb0, 0x3da0254a739aa17a,
4034 });
4035
4036 try testArgs(@Vector(1, u63), .{
4037 0x17beef25621255fb,
4038 }, .{
4039 0x79bc7e82d16c5e15,
4040 });
4041 try testArgs(@Vector(2, u63), .{
4042 0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659,
4043 }, .{
4044 0x5df7aae04a4a1126, 0x53568966decbd14f,
4045 });
4046 try testArgs(@Vector(4, u63), .{
4047 0x3d50a0f4755d87e3, 0x722e93c0b1355665,
4048 0x3c8325a3e3640be1, 0x34eef2706884b9ab,
4049 }, .{
4050 0x2671797fd253520d, 0x22f81938e525536e,
4051 0x08ca256b0b348d57, 0x1cdbe1867f422280,
4052 });
4053 try testArgs(@Vector(8, u63), .{
4054 0x49ab492d75830041, 0x28f4065197f361cf,
4055 0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803,
4056 0x7f517fcfc0451068, 0x05eaa5d2f93407b2,
4057 0x0fe06447fdbec4d6, 0x34862504232f73d8,
4058 }, .{
4059 0x64a1796fe76dcc4d, 0x159bd1a9228a8c41,
4060 0x093a4794b5759276, 0x40a740fa4d288585,
4061 0x5d2d1aede616f40e, 0x7e7af17ddce8e03e,
4062 0x7555fb4a1c18d5ff, 0x11b45e151e8724d0,
4063 });
4064 try testArgs(@Vector(16, u63), .{
4065 0x456de088589c1035, 0x23239ed26d0e198f,
4066 0x4f3c4ae380a12430, 0x1cb11ef73131a6f4,
4067 0x6e51a370969ec7ae, 0x38bed7b267bb163d,
4068 0x2fcfab012fb79669, 0x45e203406a43fe95,
4069 0x38468cff64a44f74, 0x3cc86f1d717e8c60,
4070 0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8,
4071 0x1a7493c9bb7b265c, 0x6e8536e5f32317d8,
4072 0x634701c32688fd34, 0x7a4e4a7f35ef9651,
4073 }, .{
4074 0x3da82f0beb7a091d, 0x040c9bbf428787fa,
4075 0x795418c55742e8d2, 0x700f9b62c01cdf30,
4076 0x78d567c18e7ce16d, 0x300da37dc14b6705,
4077 0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d,
4078 0x00e8c13b3acf4557, 0x19adb837145a0267,
4079 0x594889dd8e1ff4c2, 0x561da6bd7e2ba593,
4080 0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc,
4081 0x68ec40831cb6b863, 0x2862d922ed7a78eb,
4082 });
4083
4084 try testArgs(@Vector(1, i64), .{
4085 0x4a31679b316d8b59,
4086 }, .{
4087 0x34a583368386afde,
4088 });
4089 try testArgs(@Vector(2, i64), .{
4090 0x3bae373f9cb990b3, -0x7e8c6c876e8fd34a,
4091 }, .{
4092 0x09dbef6f7cb9c726, 0x48dfeca879b0df51,
4093 });
4094 try testArgs(@Vector(4, i64), .{
4095 -0x2bd24dd5f5da94bf, -0x144113bae33082c2,
4096 0x51e8cb7027ba4b12, -0x47b02168e2e22f13,
4097 }, .{
4098 0x769f113245641b91, -0x414d0e24ea97bc53,
4099 -0x0d2a570e7ef9e923, -0x070513d46d3b5a4c,
4100 });
4101 try testArgs(@Vector(8, i64), .{
4102 0x10bb6779b6a55ca9, 0x5f6ffd567a187af4,
4103 -0x6ba191b1168486b4, -0x441b92ce455870a1,
4104 0x2b6fdefbec9386ad, -0x6fdd3938d79217e4,
4105 0x6aa8fe1fb891501f, 0x20802f5bbdf6dc50,
4106 }, .{
4107 -0x7500319df437b479, 0x00ceb712d4fa62d4,
4108 0x67e715b9e99e660d, -0x17ae00e1f0009ec2,
4109 -0x5b700b948503acdf, -0x3ff61fb5cce5a530,
4110 0x55a3efac2e3694a4, 0x7f951a8d842f1670,
4111 });
4112 try testArgs(@Vector(16, i64), .{
4113 0x37a205109a685810, -0x50ff5d13134ccaa6,
4114 0x26813391c5505d5d, -0x502cdc01603a2f21,
4115 -0x6b1b44b1c850c7ea, 0x1f6db974ace9dd70,
4116 -0x47d15da8b519e328, 0x3ac0763abbf79d8d,
4117 0x5f12e0dc1aed4a4f, -0x46a973e16061e928,
4118 -0x3f59a3fa9699b4d5, -0x2f5012d390c78315,
4119 -0x40e510dea2c47e9c, 0x221c51defe0acc9a,
4120 -0x385fd6f1d390b84b, 0x35932fe2783fa6b9,
4121 }, .{
4122 0x0ba5202b71ad73dd, 0x65c8d2d5e2a14fe5,
4123 0x2e4d97cd66c41a3d, 0x14babbb47da51193,
4124 0x59d1d12b42ade3aa, -0x3c3617e556dfa8fb,
4125 -0x5a36602ba43279c4, -0x61f1ddda13665d9f,
4126 -0x50cd6128589ddd04, 0x135ae0dcc85674ae,
4127 -0x25e80592affc038d, 0x07e184c44fbe9b12,
4128 -0x70ede1b90964bbaa, 0x3ec48b32e8efd98e,
4129 -0x5267d41d85a29f46, 0x53099805f9116b60,
4130 });
4131
4132 try testArgs(@Vector(1, u64), .{
4133 0x333f593bf9d08546,
4134 }, .{
4135 0x6918bd767e730778,
4136 });
4137 try testArgs(@Vector(2, u64), .{
4138 0x4cd89a317b03d430, 0x28998f61842f63a9,
4139 }, .{
4140 0x6c34db64af0e217e, 0x57aa5d02cd45dceb,
4141 });
4142 try testArgs(@Vector(4, u64), .{
4143 0x946cf7e7484691c9, 0xf4fc5be2a762fcbf,
4144 0x71cc83bc25abaf14, 0xc69cef44c6f833a1,
4145 }, .{
4146 0x9f90cbd6c3ce1d4e, 0x182f65295dff4e84,
4147 0x4dfe62c59fed0040, 0x18402347c1db1999,
4148 });
4149 try testArgs(@Vector(8, u64), .{
4150 0x92c6281333943e2c, 0xa97750504668efb5,
4151 0x234be51057c0181f, 0xefbc1f407f3df4fb,
4152 0x8da6cc7c39cebb94, 0xb408f7e56feee497,
4153 0x2363f1f8821592ed, 0x01716e800c0619e1,
4154 }, .{
4155 0xa617426684147e7e, 0x7542da7ebe093a7b,
4156 0x3f21d99ac57606b7, 0x65cd36d697d22de4,
4157 0xed23d6bdf176c844, 0x2d4573f100ff7b58,
4158 0x4968f4d21b49f8ab, 0xf5d9a205d453e933,
4159 });
4160 try testArgs(@Vector(16, u64), .{
4161 0x2f61a4ee66177b4a, 0xf13b286b279f6a93,
4162 0x36b46beb63665318, 0x74294dbde0da98d2,
4163 0x3aa872ba60b936eb, 0xe8f698b36e62600b,
4164 0x9e8930c21a6a1a76, 0x876998b09b8eb03c,
4165 0xa0244771a2ec0adb, 0xb4c72bff3d3ac1a2,
4166 0xd70677210830eced, 0x6622abc1734dd72d,
4167 0x157e2bb0d57d6596, 0x2aac8192fb7ef973,
4168 0xc4a0ca92f34d7b13, 0x04300f8ad1845246,
4169 }, .{
4170 0xeaf71dcf0eb76f5d, 0x0e84b1b63dc97139,
4171 0x0f64cc38d23c94a1, 0x12775cf0816349b7,
4172 0xfdcf13387ba48d54, 0xf8d3c672cacd8779,
4173 0xe728c1f5eb56ab1e, 0x05931a34877f7a69,
4174 0x1861a763c8dafd1f, 0x4ac97573ecd5739f,
4175 0x3384414c9bf77b8c, 0x32c15bbd04a5ddc4,
4176 0xbfd88aee1d82ed32, 0x20e91c15b701059a,
4177 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957,
4178 });
4179
4180 try testArgs(@Vector(1, i65), .{
4181 0x0ca0853f57c0686c8,
4182 }, .{
4183 -0x05c79d7369ef879fd,
4184 });
4185 try testArgs(@Vector(2, i65), .{
4186 0x0c65f685f4839bc8d, -0x079057ad04859d897,
4187 }, .{
4188 -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa,
4189 });
4190 try testArgs(@Vector(4, i65), .{
4191 0x0d6a03163f101695e, -0x0ebe991e54e61156d,
4192 -0x0715adf48176985dc, 0x01e57dbe6ea50b22f,
4193 }, .{
4194 -0x0b308d8311a45a38d, 0x07c292cc15044b1f5,
4195 0x0e69e3eae81046bc8, 0x053b75d6a544ca0db,
4196 });
4197 try testArgs(@Vector(8, i65), .{
4198 0x0066315a88896ba00, 0x026c8109f087eb4e3,
4199 -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff,
4200 0x0dcdd248c4575dbb1, -0x09db7d03c38a83255,
4201 -0x097bc9d5397c57594, 0x0e6af866eed43b462,
4202 }, .{
4203 -0x06ac0448a06876866, 0x0f89dbafcbbb065d7,
4204 -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0,
4205 -0x085a4a7b09dcec260, -0x0068e92e14823a98a,
4206 -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71,
4207 });
4208 try testArgs(@Vector(16, i65), .{
4209 -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36,
4210 -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8,
4211 0x0dbebb830228d2945, -0x02133deab2ebd8699,
4212 -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc,
4213 -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a,
4214 -0x04e1094b79391df4a, 0x03b3fbc230416592d,
4215 0x08799db1379e6b1ba, -0x0fa7c7aed60863358,
4216 -0x0c44dd44a770610bd, -0x0349cdc54719b2e37,
4217 }, .{
4218 0x03146cdf203a80cfd, 0x0e22a03fe80f3e2ed,
4219 0x07fa7a66dbe252222, 0x000a3bc923a32648a,
4220 -0x078bac9e36d66da71, -0x03055804cd3b73168,
4221 0x0d9280808858f006d, -0x09415dfb2fd33fe5a,
4222 -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82,
4223 -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157,
4224 0x0ac0128bbf7a5200e, -0x009e0b2ab770e711b,
4225 0x05473b5629f372ee9, -0x02eda67313ff7fa47,
4226 });
4227
4228 try testArgs(@Vector(1, u65), .{
4229 0x1879059aca94dd383,
4230 }, .{
4231 0x0051da1f25078e919,
4232 });
4233 try testArgs(@Vector(2, u65), .{
4234 0x18f39bb41f03223f5, 0x16a59f6838a63e737,
4235 }, .{
4236 0x105aa15beae036a1a, 0x1b47ef7ef744b70fe,
4237 });
4238 try testArgs(@Vector(4, u65), .{
4239 0x18c685254b3c7170c, 0x0de8048a66902ebfd,
4240 0x02bc97f62163e7e31, 0x152b6eba67c1e76db,
4241 }, .{
4242 0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee,
4243 0x1db62793f956492ba, 0x0e4262599ec54c2a4,
4244 });
4245 try testArgs(@Vector(8, u65), .{
4246 0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b,
4247 0x1fd2f93384860df65, 0x01827fcdb6c715d64,
4248 0x03869c173a922b018, 0x0addd48a4671a2f6b,
4249 0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38,
4250 }, .{
4251 0x159e9494fc84ed452, 0x0834f6aaa7666a22b,
4252 0x066765389e84150b4, 0x1e722ae23908c7e96,
4253 0x0d64ec725397e6ee0, 0x19f3a147a355baa22,
4254 0x02f1b100538b6dbc3, 0x175885a34aefca91b,
4255 });
4256 try testArgs(@Vector(16, u65), .{
4257 0x105647e12b2b76daa, 0x04dcca29537263f6a,
4258 0x16c112620be731a4e, 0x0d6c088da3c158fa0,
4259 0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c,
4260 0x05703068045915d95, 0x07cc42e0bb216b310,
4261 0x08a15a16e4247ad98, 0x1c17b2292e34aa369,
4262 0x14c9808748fa615c3, 0x187449666c2f5375b,
4263 0x133fcb93a31d2f369, 0x047729af594c8c1c1,
4264 0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4,
4265 }, .{
4266 0x0d65b8b643703ef96, 0x1c55c2e0816c5d056,
4267 0x0390a06d3ec60e632, 0x0d543d346db055847,
4268 0x017e27c7d663d7005, 0x112f7b98a78014ea3,
4269 0x030136142f19042d7, 0x059f9b6e576f79ef7,
4270 0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde,
4271 0x1e26cd964c656292a, 0x0579c10261478da1d,
4272 0x0406f2849ab5ad15c, 0x024b15c729f2211b7,
4273 0x10f0505cc2f7f110c, 0x133cfa11f995e0afc,
4274 });
4275
4276 try testArgs(@Vector(1, i127), .{
4277 0x226b8faf65414a9a0ffcd438c7fa9eea,
4278 }, .{
4279 0x2c582610b08531ca208fef1c2b839bdc,
4280 });
4281 try testArgs(@Vector(2, i127), .{
4282 0x35e8caffc9fc8e1b3b6d3667cb6a128c,
4283 -0x070d99d51807ae2314ea61e4f0166145,
4284 }, .{
4285 -0x3a59d011c2a385a6dcf00a40efd85b77,
4286 0x3b5f506c3fa0c8552fba624d1b5debec,
4287 });
4288 try testArgs(@Vector(4, i127), .{
4289 0x191594cc2356ffeac739f1841b06adcf,
4290 0x1f45176996076de7c3891f14f831e192,
4291 0x1c9047002e0a4f00656556fffeb50349,
4292 -0x38049f47bcc36ab26600bc475295389f,
4293 }, .{
4294 -0x2f8c1618324c60c40f65d216943d59d2,
4295 -0x21429f90bd9dff7b5d49c9d7f2655928,
4296 0x3baeef72d0d168fb50564c9f6eb5d778,
4297 0x3affe6f2eddfc6a69206c357633d0eeb,
4298 });
4299 try testArgs(@Vector(8, i127), .{
4300 -0x00c48629a415129f66e74a1a215d683a,
4301 0x3920a425cbec4c9af649a00d5747136a,
4302 0x11f53b9db15a12814c948c6a809b96f8,
4303 -0x1f7e272db97efc88762dedf54978e795,
4304 0x13e56ca8ed41f64d04ef01019703f402,
4305 0x294014109f4313454d9994f1003b4572,
4306 0x0f3d6fe7adde96149ffcc5c0808b708f,
4307 0x2d9bcd407da37ff3d43cc5f6b64fd385,
4308 }, .{
4309 0x3f95f21d3bc39fe8e3fcc184d150a984,
4310 0x2a8c36a5986d8c245bbdd302737b7e29,
4311 0x37c61446e10efe6a94f797da05a28fae,
4312 -0x096b2f4e16aef099d623066e941d13d1,
4313 0x3df11d4af3229ed59c52628cac02f506,
4314 0x326f78cbf454566daa3bc235a1fb3fb8,
4315 -0x2cf6b4872dffea018c77892e433b6784,
4316 0x345dfdd52635c224c70949913255ab68,
4317 });
4318
4319 try testArgs(@Vector(1, u127), .{
4320 0x49a0cd1849f9adbed215770c6f97a584,
4321 }, .{
4322 0x5e10826a03aeb57d4a9a9ef2a8f02faa,
4323 });
4324 try testArgs(@Vector(2, u127), .{
4325 0x1c2544fbb76890de5c00f42c9a516846,
4326 0x324f292d72694d409152a311b5a0441c,
4327 }, .{
4328 0x01cc87106db8e357e85f875d46feac96,
4329 0x49e775cc0db88cf9725af13113d7d457,
4330 });
4331 try testArgs(@Vector(4, u127), .{
4332 0x3e82ddcd074646a0a489a4fd300c32c9,
4333 0x2a511ac041c17a68c5a71bc6d3cb3ba9,
4334 0x2dace4189083411634b753ae476579a8,
4335 0x4e1d5cb04d9681d806312d72d6dc5262,
4336 }, .{
4337 0x5f489e689ff15fcf38aad995b1796af2,
4338 0x49ee549bd8e20092c8ccebb992cde8b8,
4339 0x4e52d33281cba3fda6ae8d1f463c7a1f,
4340 0x0de0279b2dec3fffe44c1c7decc430f8,
4341 });
4342 try testArgs(@Vector(8, u127), .{
4343 0x636de193fbadb1984a0ed9969f88d38d,
4344 0x64426b7e468cb323b1d75656879fb9b2,
4345 0x48afb4cc5a11f2ca4b8609b057758312,
4346 0x176157ce93422bb4463d6f0dda275b94,
4347 0x746015d0e8cb5e36af43840a6df11aab,
4348 0x279b665776118bc2759134c19cbf1bb0,
4349 0x52cb4dc56d3935090fb7db710c8f9660,
4350 0x591884d8d8e2fe2f77b7f8508dddeaaa,
4351 }, .{
4352 0x42e00bc05d50ea63d546085642b8831b,
4353 0x4241ff07ce99ee055b48ed2939b8d6b7,
4354 0x45a5f53a5c5cb13f1a9e6621fec8cf4a,
4355 0x68d6938c1b348dc6cc98d4b6ab3a1c22,
4356 0x1f9448fc11e38500ec7ecf57a33a278b,
4357 0x7b331526d6fcfb958f3c88fc4656e123,
4358 0x4f1e8ddf41a7105cc1a1c815040a2693,
4359 0x31ac7bd68686d531d53ecca75e6d8b81,
4360 });
4361
4362 try testArgs(@Vector(1, i128), .{
4363 -0x3bb56309fcad13fc1011dc671cf57bdc,
4364 }, .{
4365 -0x05338bb517db516ee08c45d1408e5836,
4366 });
4367 try testArgs(@Vector(2, i128), .{
4368 0x295f2901e3837e5592b9435f8c4df8a7,
4369 -0x1f246b0ff2d02a6bf30a63392fc63371,
4370 }, .{
4371 -0x31060c09e29b545670c4cbc721a4e26b,
4372 -0x631eb286321325d51c617aa798195392,
4373 });
4374 try testArgs(@Vector(4, i128), .{
4375 0x47110102c74f620f08e5b7c5dbe193c2,
4376 -0x61d12d2650413ad3ffeeeab3ba57e1f0,
4377 0x449781e64b29dc8a17a88f4b7a5b0717,
4378 0x0d2170e9238d12a585dc5377566e1938,
4379 }, .{
4380 0x0bf948e19bd01823dcb3887937d97079,
4381 -0x16f933ab12bfba3560d0d39ffe69b64a,
4382 0x3d0bfce3907a5cd157348f0329e2548e,
4383 -0x3c2d182e2e238a4bebd7defbd7f9699a,
4384 });
4385 try testArgs(@Vector(8, i128), .{
4386 -0x775678727c721662f02480619acbfc82,
4387 -0x6f504fcbff673cb91e4706af4373665f,
4388 -0x670f888d4186387c3106d125b856c294,
4389 0x0641e7efdfdd924d126b446d874154f8,
4390 0x57d7aef0f82d3351917f43c8f677392b,
4391 -0x4077e745dede8367d145c94f20ab8810,
4392 -0x0344a74fb60e1f1f72ba8ec288b05939,
4393 -0x0be3ce9be461aca1d25ad8e74dcc36e1,
4394 }, .{
4395 -0x4a873d91e5a2331def0d34c008d33d83,
4396 0x2744cecfd4c683bdd12f3cfc11d7f520,
4397 -0x0cb8e468fc1de93a7c5ad2a5a61e8f50,
4398 -0x1a3be9e58e918d6586cc4948a54515d3,
4399 -0x512ec6f88c3a34950a8aaee47130120b,
4400 -0x2e772e4a8812e553bcf9b2754a493709,
4401 0x0c7b137937dc25f9f9cbaf4d7a88ee6b,
4402 -0x2ecdd5eb81eb0e98ed8d0aa9516c1617,
4403 });
4404
4405 try testArgs(@Vector(1, u128), .{
4406 0x5f11e16b0ca3392f907a857881455d2e,
4407 }, .{
4408 0xf9142d73b408fd6955922f9fc147f7d7,
4409 });
4410 try testArgs(@Vector(2, u128), .{
4411 0xee0fb41fabd805923fb21b5c658e3a87,
4412 0x2352e74aad6c58b3255ff0bba5aa6552,
4413 }, .{
4414 0x8d822f9fdd9cb9a5b43513b14419b224,
4415 0x1aef2a02704379e38ead4d53d69e4cc4,
4416 });
4417 try testArgs(@Vector(4, u128), .{
4418 0xc74437a4ea3bbbb193dbf0ea2f0c5281,
4419 0x039e4b1640868248780db1834a0027eb,
4420 0xb9e8bb34155b2b238da20331d08ff85b,
4421 0x863802d34a54c2e6aa71dd0f067c4904,
4422 }, .{
4423 0x7471bae24ff7b84ab107f86ba2b7d1e7,
4424 0x8f34c449d0576e682c20bda74aa6b6c9,
4425 0x1f34c3efa167b61c48c9d5ec01a1a93f,
4426 0x71c8318fcf3ddc7be058c73a52dce9e3,
4427 });
4428 try testArgs(@Vector(8, u128), .{
4429 0xbf2db71463037f55ee338431f902a906,
4430 0xb7ad317626655f38ab25ae30d8a1aa67,
4431 0x7d3c5a3ffaa607b5560d69ae3fcf7863,
4432 0x009a39a8badf8b628c686dc176aa1273,
4433 0x49dba3744c91304cc7bbbdab61b6c969,
4434 0x6ec664b624f7acf79ce69d80ed7bc85c,
4435 0xe02d7a303c0f00c39010f3b815547f1c,
4436 0xb13e1ee914616f58cffe6acd33d9b5c8,
4437 }, .{
4438 0x2f2d355a071942a7384f82ba72a945b8,
4439 0x61f151b3afec8cb7664f813cecf581d1,
4440 0x5bfbf5484f3a07f0eacc4739ff48af80,
4441 0x59c0abbf8d829cf525a87d5c9c41a38a,
4442 0xdad8b18eb680f0520ca49ebfb5842e22,
4443 0xa05adcaedd9057480b3ba0413d003cec,
4444 0x8b0b4a27fc94a0e90652d19bc755b63d,
4445 0xa858bce5ad0e48c13588a4e170e8667c,
4446 });
4447
4448 try testArgs(@Vector(1, i129), .{
4449 -0x09c126c4e31389b174cb2b45e76c086dd,
4450 }, .{
4451 0x0d023f2566c56400f4b7edb9c4f364ecb,
4452 });
4453 try testArgs(@Vector(2, i129), .{
4454 -0x072be32e116741732f9422d9b20777db5,
4455 -0x010829386cc3d93283a83591bd994ca58,
4456 }, .{
4457 0x004671167d0681d46945832d16f70cfba,
4458 0x098550137341cbadfe8378987e3a83265,
4459 });
4460 try testArgs(@Vector(4, i129), .{
4461 0x04167620c7f5e094208fb204f06b9792c,
4462 0x07a6690c0b5f9de6c8955873f19b98f23,
4463 -0x06505997d01e5a971f820742210c7adc6,
4464 -0x07013921eab8d92559f17ad9e3712bc61,
4465 }, .{
4466 -0x0bdbf7ce4079fa628feb05f5814402e15,
4467 -0x0e6ee5464de547ce92ee5a6037f175e52,
4468 -0x009d079b88cdc765ab72758854b753d98,
4469 -0x085af31dd5243f61b46e6dc950728ff49,
4470 });
4471 try testArgs(@Vector(8, i129), .{
4472 0x0d85f471bdc56611e9187113f1489bd38,
4473 0x06e1e9cae044bb17b63c380fd6f2652b5,
4474 0x0921d649288a16481f2ec69747f443e5e,
4475 0x0e8db24d1aefd91cfab20bac61f560274,
4476 0x0187abef7578e5e02a396e4ebd5859c23,
4477 0x0d2dec5a6bd72afe18288ca428ec2b94d,
4478 0x0c52c111a077bffb1fa4483523cd044c3,
4479 -0x0b6a90c79d6230f271bf625c9a6c0dfc5,
4480 }, .{
4481 0x0d47c566bdedae2e9485f7aa381a98d30,
4482 -0x0e5d9573c01a9e56361b202c47f0e51f8,
4483 -0x0bdcafb1f08db4920121521b2d2679931,
4484 0x08de42eec43f2a5175f928f8a1812575d,
4485 0x0c3f57e712a7f8494e51b62d11573d9a0,
4486 -0x09287910d439c9bafd56bc8a6faf50cb3,
4487 0x07b494af9634c8f95bed2f50fcaf08dda,
4488 -0x0a150693d83af2e823dcc0765e4e331e2,
4489 });
4490
4491 try testArgs(@Vector(1, u129), .{
4492 0x1e51bd13747df8fae52f0471e9f1ad3f2,
4493 }, .{
4494 0x00aba9f2c80c71b1ed07201486ea44d00,
4495 });
4496 try testArgs(@Vector(2, u129), .{
4497 0x0c7967a19d13d4bd3f6ebfa0f8fdeab92,
4498 0x01614ee2c32757cc92e2efd97e94321a7,
4499 }, .{
4500 0x175803a2c0bf888bd01e2a5bae28e4523,
4501 0x07d05a98ec8f4e7e72aac2712bc09a23a,
4502 });
4503 try testArgs(@Vector(4, u129), .{
4504 0x1b18b768c5852bb1f0a7b34ceaeac4a0c,
4505 0x038fc1f995d9378fcf1043598810d7a56,
4506 0x06eebd77f9920e79932decf0f29ef658d,
4507 0x1f31a766145022050d0b16a4f5d06f1e3,
4508 }, .{
4509 0x033b20a528a722b6704bf5c8aea497e68,
4510 0x0ea05276fb8de4e77e4a8d4ef55f64bba,
4511 0x1c632cf252683b00faae6dcb7d73d8b90,
4512 0x11a7e1e98bb34fc7f5ed36c327476b122,
4513 });
4514 try testArgs(@Vector(8, u129), .{
4515 0x1b85991584b26492938854a6f6953b766,
4516 0x119472b0f4b7199f1267639f601833e3d,
4517 0x130d19e6ccfebce09c61c8c8fb526fec0,
4518 0x1379f4fa9d25e18ef5138c193b7ec9ef3,
4519 0x15fc62d9e21c2c0c63f9cab5ab0a8cf36,
4520 0x123ceb2a65f200a0b3e559c801bdbfa58,
4521 0x0e740ae3c7ab0cd24c5ff94d9367e3ebb,
4522 0x008c7dd67796949390355d866e4f171ef,
4523 }, .{
4524 0x0ffdda009048cf61476610425d5e55560,
4525 0x061bcb9d024d015891b5666e7b317cc84,
4526 0x060c013386fb8c129a3bd65b7909f2bc5,
4527 0x01c8efdd7ea806b1dc984c6183da53d8f,
4528 0x02fae7cee43d7f97448e82b907335bd45,
4529 0x0365e7cadcbd0a64decc1377339967c53,
4530 0x1a52793ba8a9689e1d7f5036e8cb613e1,
4531 0x1257d7cdd8f04058d285a5bce173b5262,
4532 });
4533
4534 try testArgs(@Vector(1, i191), .{
4535 -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d,
4536 }, .{
4537 0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512,
4538 });
4539 try testArgs(@Vector(2, i191), .{
4540 -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3,
4541 0x3f298efedf4269276db60344c2bed556ee25d24c5f887000,
4542 }, .{
4543 0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7,
4544 -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7,
4545 });
4546 try testArgs(@Vector(4, i191), .{
4547 -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7,
4548 -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef,
4549 0x1783dc9f0afa815051e6d338ef35da013e807da475815af5,
4550 0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916,
4551 }, .{
4552 0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd,
4553 0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29,
4554 0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86,
4555 0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546,
4556 });
4557 try testArgs(@Vector(8, i191), .{
4558 -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225,
4559 0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed,
4560 -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232,
4561 -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d,
4562 -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17,
4563 -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70,
4564 -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085,
4565 0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35,
4566 }, .{
4567 0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95,
4568 -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9,
4569 -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02,
4570 -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980,
4571 -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c,
4572 -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae,
4573 -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31,
4574 0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3,
4575 });
4576
4577 try testArgs(@Vector(1, u191), .{
4578 0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83,
4579 }, .{
4580 0x020334928f4583d332043b7aef15e832047dfd01b2933038,
4581 });
4582 try testArgs(@Vector(2, u191), .{
4583 0x67074e5315030f5c1a4d035100736de691b5589f6d349162,
4584 0x0e655397f96e3fd66b317294a37975d36478242fd6392259,
4585 }, .{
4586 0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf,
4587 0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd,
4588 });
4589 try testArgs(@Vector(4, u191), .{
4590 0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57,
4591 0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1,
4592 0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457,
4593 0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc,
4594 }, .{
4595 0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c,
4596 0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7,
4597 0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9,
4598 0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693,
4599 });
4600 try testArgs(@Vector(8, u191), .{
4601 0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca,
4602 0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052,
4603 0x7841b17a1c38e4066376e5ae204959c02c524635740a9013,
4604 0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77,
4605 0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788,
4606 0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e,
4607 0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3,
4608 0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a,
4609 }, .{
4610 0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614,
4611 0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc,
4612 0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90,
4613 0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7,
4614 0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1,
4615 0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434,
4616 0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2,
4617 0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934,
4618 });
4619
4620 try testArgs(@Vector(1, i192), .{
4621 0x5348bc83a6f352c931d06b9817458273408470e8ce312bef,
4622 }, .{
4623 -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d,
4624 });
4625 try testArgs(@Vector(2, i192), .{
4626 0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869,
4627 -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b,
4628 }, .{
4629 0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be,
4630 0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2,
4631 });
4632 try testArgs(@Vector(4, i192), .{
4633 -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf,
4634 -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f,
4635 0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc,
4636 0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce,
4637 }, .{
4638 0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06,
4639 0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993,
4640 -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255,
4641 0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114,
4642 });
4643 try testArgs(@Vector(8, i192), .{
4644 -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9,
4645 0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7,
4646 0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c,
4647 -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3,
4648 -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32,
4649 -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297,
4650 -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574,
4651 -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464,
4652 }, .{
4653 -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6,
4654 -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a,
4655 -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113,
4656 -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525,
4657 0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67,
4658 -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732,
4659 -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5,
4660 0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21,
4661 });
4662
4663 try testArgs(@Vector(1, u192), .{
4664 0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d,
4665 }, .{
4666 0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb,
4667 });
4668 try testArgs(@Vector(2, u192), .{
4669 0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2,
4670 0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d,
4671 }, .{
4672 0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0,
4673 0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e,
4674 });
4675 try testArgs(@Vector(4, u192), .{
4676 0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be,
4677 0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd,
4678 0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256,
4679 0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74,
4680 }, .{
4681 0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294,
4682 0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5,
4683 0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134,
4684 0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec,
4685 });
4686 try testArgs(@Vector(8, u192), .{
4687 0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066,
4688 0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099,
4689 0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4,
4690 0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3,
4691 0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7,
4692 0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a,
4693 0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb,
4694 0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e,
4695 }, .{
4696 0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d,
4697 0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e,
4698 0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b,
4699 0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9,
4700 0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09,
4701 0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d,
4702 0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c,
4703 0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1,
4704 });
4705
4706 try testArgs(@Vector(1, i193), .{
4707 -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66,
4708 }, .{
4709 0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5,
4710 });
4711 try testArgs(@Vector(2, i193), .{
4712 0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f,
4713 -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6,
4714 }, .{
4715 -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a,
4716 0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9,
4717 });
4718 try testArgs(@Vector(4, i193), .{
4719 -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac,
4720 -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda,
4721 0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a,
4722 -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72,
4723 }, .{
4724 0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d,
4725 0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199,
4726 -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a,
4727 -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f,
4728 });
4729 try testArgs(@Vector(8, i193), .{
4730 -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec,
4731 -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233,
4732 -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5,
4733 -0x065c502be097b15379af566a20c4ee93893718330c9a258ce,
4734 0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9,
4735 0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6,
4736 0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973,
4737 -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0,
4738 }, .{
4739 0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257,
4740 0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb,
4741 -0x060f3874a6f65b46738d0117db38b749aff45725000c06213,
4742 0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353,
4743 0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68,
4744 -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29,
4745 0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e,
4746 -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae,
4747 });
4748
4749 try testArgs(@Vector(1, u193), .{
4750 0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a,
4751 }, .{
4752 0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e,
4753 });
4754 try testArgs(@Vector(2, u193), .{
4755 0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c,
4756 0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947,
4757 }, .{
4758 0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20,
4759 0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac,
4760 });
4761 try testArgs(@Vector(4, u193), .{
4762 0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360,
4763 0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699,
4764 0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852,
4765 0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa,
4766 }, .{
4767 0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c,
4768 0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45,
4769 0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11,
4770 0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9,
4771 });
4772 try testArgs(@Vector(8, u193), .{
4773 0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3,
4774 0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b,
4775 0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece,
4776 0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1,
4777 0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921,
4778 0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361,
4779 0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f,
4780 0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0,
4781 }, .{
4782 0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b,
4783 0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa,
4784 0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82,
4785 0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b,
4786 0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7,
4787 0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100,
4788 0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa,
4789 0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e,
4790 });
4791
4792 try testArgs(@Vector(1, i255), .{
4793 -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11,
4794 }, .{
4795 -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625,
4796 });
4797 try testArgs(@Vector(2, i255), .{
4798 -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2,
4799 -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486,
4800 }, .{
4801 0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47,
4802 0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f,
4803 });
4804 try testArgs(@Vector(4, i255), .{
4805 -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4,
4806 0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1,
4807 0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a,
4808 0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d,
4809 }, .{
4810 0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd,
4811 0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6,
4812 0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a,
4813 -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68,
4814 });
4815
4816 try testArgs(@Vector(1, u255), .{
4817 0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9,
4818 }, .{
4819 0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381,
4820 });
4821 try testArgs(@Vector(2, u255), .{
4822 0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff,
4823 0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef,
4824 }, .{
4825 0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8,
4826 0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b,
4827 });
4828 try testArgs(@Vector(4, u255), .{
4829 0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982,
4830 0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626,
4831 0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4,
4832 0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce,
4833 }, .{
4834 0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61,
4835 0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36,
4836 0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49,
4837 0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7,
4838 });
4839
4840 try testArgs(@Vector(1, i256), .{
4841 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce,
4842 }, .{
4843 0x6932f4faf261c45ecd701a4fe3015d4255e486b04c4ab448fe162980cead63fb,
4844 });
4845 try testArgs(@Vector(2, i256), .{
4846 -0x23daa9bab59dc1e685f4220c189930c3420a55784f0dec1028c2778d907ccfe2,
4847 0x521c992e4f46d61709d39e076ed94d5d884585f85ccbf71ca4d593da34f61bf5,
4848 }, .{
4849 0x2d880cb5aa793218a32411389db31e935932029645573a9625dd174099c9e5b2,
4850 0x2394a6cde7e8b2dc2995f07f22f815baa6c223d99c0b1ec4b2d8abd0094db853,
4851 });
4852 try testArgs(@Vector(4, i256), .{
4853 0x244e66ed932a4d970fd8735c10bfbd5f59bd4452c20fa0fcf873823b8c9e6321,
4854 -0x31577b747614b1ab83fd0178293cd80b3cb92e739459b2d038688a2471f6d659,
4855 -0x0dbdfc3d8bbd7cab6a33598cef29125aab7571fb0db9a528e42966963d6ce0e7,
4856 -0x72c58cce172d8a34019a44407a4baf1f8f8a4a611711bd5bb4daa2a2739dd67b,
4857 }, .{
4858 -0x2e88bc68893fc2d61af0e5ccb541f31fa6169504e8cfcbeab0b74a03b9e86c33,
4859 -0x7eba0783f3382b59a17ffbea57ba1dd8fa30e2d4f7eba7ed68d336d3c37b4561,
4860 -0x66d1463efd38e9e994e126d09b5c65c8efc932ffea9ec6cdf6042561ba05f801,
4861 0x2024bbacefbabbfd5b32a09be631451764a1f889a77918f9094382dc6d02aef2,
4862 });
4863
4864 try testArgs(@Vector(1, u256), .{
4865 0x28df37e1f57a56133ba3f5b5b2164ce24eb6c29a8973a597fd91fbee8ab4bafb,
4866 }, .{
4867 0x63f725028cab082b5b1e6cb474428c8c3655cf438f3bb05c7a87f8270198f357,
4868 });
4869 try testArgs(@Vector(2, u256), .{
4870 0xcc79740b85597ef411e6d7e92049dfaa2328781ea4911540a3dcb512b71c7f3c,
4871 0x51ae46d2f93cbecff1578481f6ddc633dacee94ecaf81597c752c5c5db0ae766,
4872 }, .{
4873 0x257f0107305cb71cef582a9a58612a019f335e390d7998f51f5898f245874a6e,
4874 0x0a95a17323a4d16a715720f122b752785e9877e3dd3d3f9b72cdac3d1139a81f,
4875 });
4876 try testArgs(@Vector(4, u256), .{
4877 0x19667a6e269342cba437a8904c7ba42a762358d32723723ae2637b01124e63c5,
4878 0x14f7d3599a7edc7bcc46874f68d4291793e6ef72bd1f3763bc5e923f54f2f781,
4879 0x1c939de0ae980b80de773a04088ba45813441336cdfdc281ee356c98d71f653b,
4880 0x39f5d755965382fe13d1b1d6690b8e3827f153f8166768c4ad8a28a963b781f2,
4881 }, .{
4882 0xbe03de37cdcb8126083b4e86cd8a9803121d31b186fd5ce555ad77ce624dd6c7,
4883 0xa0c0730f0d7f141cc959849d09730b049f00693361539f1bc4758270554a60c1,
4884 0x2664bdba8de4eaa36ecee72f6bfec5b4daa6b4e00272d8116f2cc532c29490cc,
4885 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b,
4886 });
4887
4888 try testArgs(@Vector(1, i257), .{
4889 -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12,
4890 }, .{
4891 0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a,
4892 });
4893 try testArgs(@Vector(2, i257), .{
4894 -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3,
4895 -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01,
4896 }, .{
4897 0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9,
4898 -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1,
4899 });
4900 try testArgs(@Vector(4, i257), .{
4901 -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa,
4902 0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85,
4903 0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66,
4904 -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42,
4905 }, .{
4906 0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8,
4907 0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a,
4908 -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c,
4909 -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5,
4910 });
4911
4912 try testArgs(@Vector(1, u257), .{
4913 0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11,
4914 }, .{
4915 0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68,
4916 });
4917 try testArgs(@Vector(2, u257), .{
4918 0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9,
4919 0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98,
4920 }, .{
4921 0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb,
4922 0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6,
4923 });
4924 try testArgs(@Vector(4, u257), .{
4925 0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909,
4926 0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974,
4927 0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4,
4928 0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0,
4929 }, .{
4930 0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab,
4931 0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140,
4932 0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556,
4933 0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b,
4934 });
4935
4936 try testArgs(@Vector(1, i511), .{
4937 0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed,
4938 }, .{
4939 0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577,
4940 });
4941 try testArgs(@Vector(2, i511), .{
4942 0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268,
4943 0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4,
4944 }, .{
4945 -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1,
4946 -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854,
4947 });
4948
4949 try testArgs(@Vector(1, u511), .{
4950 0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10,
4951 }, .{
4952 0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84,
4953 });
4954 try testArgs(@Vector(2, u511), .{
4955 0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb,
4956 0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1,
4957 }, .{
4958 0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601,
4959 0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074,
4960 });
4961
4962 try testArgs(@Vector(1, i512), .{
4963 -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2,
4964 }, .{
4965 0x18b1d3be5a03310d82859a4ab72f056a33d1a4b554522bcc062fb33eda3b8111045ee79e045dd1a665d250b897f6f2e12003a03313c2547698f8c1eab452eae1,
4966 });
4967 try testArgs(@Vector(2, i512), .{
4968 0x28e2ab84d87d5fb12be65d8650de67b992dd162fe563ca74b62f51f2f32e1084e03e32c8370930816445ac5052b4d345059c8ace582e3ef44377b160e265ec9b,
4969 -0x3a96548c707219326c42063997e71bc7a17b3067d402063843f84c86e747b71e09338079c28943d20601c0cde018bad57f5615fc89784bcb6232e45c54dff1db,
4970 }, .{
4971 0x64beecc90609b7156653b75a861e174c58fb42d5c7bf8d793efbb1cbe785c6b8cd52ce5f9aa859f174123c387820d40a2f93122b81396d739eb85c3ea33fcd37,
4972 -0x3632e347bc6d794940424ca0945dafa04328a924ec6b0ccdedcda6d296e09aa2dd5dca83b934cac752993238aa4fe826be8d62991c9347bae6f01bc0b1b4223d,
4973 });
4974
4975 try testArgs(@Vector(1, u512), .{
4976 0x651058c1d89a8f34cfc5e66b6d25294eecfcc4a7e1e4a356eb51ee7d7b2db25378e4afee51b7d18d16e520772a60c50a02d7966f40ced1870b32c658e5821397,
4977 }, .{
4978 0xd726e265ec80cb99510ba4f480ca64e959de5c528a7f54c386ecad22eeeefa845f0fd44b1bd64258a5f868197ee2d8fed59df9c9f0b72e74051a7ff20230880e,
4979 });
4980 try testArgs(@Vector(2, u512), .{
4981 0x22c8183c95cca8b09fdf541e431b73e9e4a1a5a00dff12381937fab52681d09d38ea25727d7025a2be08942cfa01535759e1644792e347c7901ec94b343c6337,
4982 0x292fdf644e75927e1aea9465ae2f60fb27550cd095f1afdea2cf7855286d26fbeed1c0b9c0474b73cb6b75621f7eadaa2f94ec358179ce2aaa0766df20da1ef3,
4983 }, .{
4984 0xe1cd8c0ca244c6626d4415e10b4ac43fa69e454c529c24fec4b13e6b945684d4ea833709c16c636ca78cffa5c5bf0fe945cd714a9ad695184a6bdad31dec9e31,
4985 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90,
4986 });
4987
4988 try testArgs(@Vector(1, i513), .{
4989 0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b,
4990 }, .{
4991 -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808,
4992 });
4993 try testArgs(@Vector(2, i513), .{
4994 0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c,
4995 -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711,
4996 }, .{
4997 -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0,
4998 0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33,
4999 });
5000
5001 try testArgs(@Vector(1, u513), .{
5002 0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78,
5003 }, .{
5004 0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8,
5005 });
5006 try testArgs(@Vector(2, u513), .{
5007 0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e,
5008 0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e,
5009 }, .{
5010 0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef,
5011 0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723,
5012 });
5013
5014 try testArgs(@Vector(1, i1023), .{
5015 -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4,
5016 }, .{
5017 0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1,
5018 });
5019
5020 try testArgs(@Vector(1, u1023), .{
5021 0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0,
5022 }, .{
5023 0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209,
5024 });
5025
5026 try testArgs(@Vector(1, i1024), .{
5027 -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394,
5028 }, .{
5029 -0x7cab2a053dfbf944cd342460350c989fd1b4469a6c7b54ddcacd54e605d29c03651b5c463495610d82269c9ac5b51bfd07816a0f7b1ab50cb598989ed64607b3faff79a190702eb285b0fedc050ec1a71537abc47ec590eb671d4f76b19567049ba4789d1a4348385607a0320fbff9b78260536a9b6030bddb0b09da689d1687,
5030 });
5031
5032 try testArgs(@Vector(1, u1024), .{
5033 0x0ca1a0dfaf8bb1da714b457d23c71aef948e66c7cd45c0aa941498a796fb18502ec32f34e885d0a107d44ae81595f8b52c2f0fb38e584b7139903a0e8a823ae20d01ca0662722dd474e7efc40f32d74cc065d97d8a09d0447f1ab6107fa0a57f3f8c866ae872506627ce82f18add79cee8dc69837f4ead3ca770c4d622d7e544,
5034 }, .{
5035 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc,
5036 });
5037
5038 try testArgs(@Vector(1, i1025), .{
5039 -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18,
5040 }, .{
5041 -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081,
5042 });
5043
5044 try testArgs(@Vector(1, u1025), .{
5045 0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb,
5046 }, .{
5047 0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f,
5048 });
5049 }
5050 fn testFloatVectors() !void {
5051 @setEvalBranchQuota(21_700);
5052
5053 try testArgs(@Vector(1, f16), .{
5054 -tmin(f16),
5055 }, .{
5056 fmax(f16),
5057 });
5058 try testArgs(@Vector(2, f16), .{
5059 1e-1, 1e0,
5060 }, .{
5061 -nan(f16), -fmin(f16),
5062 });
5063 try testArgs(@Vector(4, f16), .{
5064 1e-1, -fmax(f16), 0.0, 1e-1,
5065 }, .{
5066 -fmin(f16), -1e1, 1e0, -tmin(f16),
5067 });
5068 try testArgs(@Vector(8, f16), .{
5069 -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1,
5070 }, .{
5071 -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1,
5072 });
5073 try testArgs(@Vector(16, f16), .{
5074 1e-1, fmax(f16), -1e1, fmax(f16), -1e1, 1e-1, -tmin(f16), -inf(f16), -tmin(f16), -1e0, -fmin(f16), tmin(f16), 1e1, -fmax(f16), 0.0, -fmin(f16),
5075 }, .{
5076 inf(f16), -1e1, -fmax(f16), fmax(f16), -tmin(f16), 0.0, -1e0, -1e0, 1e-1, -nan(f16), -tmin(f16), 1e0, 1e-1, fmax(f16), -0.0, inf(f16),
5077 });
5078 try testArgs(@Vector(32, f16), .{
5079 -inf(f16), tmin(f16), fmin(f16), -nan(f16), nan(f16), 1e-1, 0.0, 1e1, -tmin(f16), inf(f16), 1e0, -1e1, fmin(f16), -0.0, 1e0, -fmax(f16),
5080 1e1, -0.0, -1e1, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), -1e0, 0.0, -1e1, -nan(f16), 1e0, -tmin(f16), -0.0, nan(f16), 1e1,
5081 }, .{
5082 0.0, 1e1, -nan(f16), -0.0, tmin(f16), fmax(f16), nan(f16), tmin(f16), -1e1, 1e-1, 1e1, fmin(f16), -fmax(f16), inf(f16), inf(f16), -tmin(f16),
5083 inf(f16), -0.0, 1e-1, 0.0, -fmin(f16), -0.0, -nan(f16), -inf(f16), -fmin(f16), fmax(f16), 1e0, fmin(f16), -0.0, -tmin(f16), -fmax(f16), -1e1,
5084 });
5085 try testArgs(@Vector(64, f16), .{
5086 -nan(f16), fmin(f16), -inf(f16), inf(f16), -tmin(f16), inf(f16), 1e-1, -1e0, -inf(f16), nan(f16), -fmin(f16), 1e-1, -tmin(f16), -fmax(f16), -1e1, inf(f16),
5087 0.0, -fmin(f16), -fmax(f16), 1e1, -fmax(f16), fmax(f16), 1e1, fmin(f16), -inf(f16), -nan(f16), -tmin(f16), nan(f16), -0.0, 0.0, 1e-1, -fmin(f16),
5088 0.0, nan(f16), inf(f16), fmax(f16), nan(f16), tmin(f16), 1e0, tmin(f16), fmin(f16), -1e1, 0.0, 1e-1, inf(f16), -1e1, inf(f16), 1e0,
5089 1e-1, -inf(f16), 1e1, -0.0, -1e0, -tmin(f16), -nan(f16), 1e-1, 1e-1, -nan(f16), -0.0, -1e1, -0.0, -nan(f16), 1e-1, fmin(f16),
5090 }, .{
5091 1e1, 0.0, fmax(f16), -inf(f16), -fmax(f16), -fmax(f16), tmin(f16), -1e0, -tmin(f16), -1e1, nan(f16), -nan(f16), tmin(f16), -fmin(f16), nan(f16), -1e1,
5092 1e1, fmax(f16), 1e-1, 0.0, 1e-1, -fmax(f16), -0.0, -fmin(f16), inf(f16), -1e0, inf(f16), fmin(f16), -inf(f16), -tmin(f16), 1e1, 1e1,
5093 1e-1, 1e-1, 1e-1, 1e1, -fmin(f16), inf(f16), 1e-1, fmax(f16), inf(f16), -0.0, -1e1, tmin(f16), -fmin(f16), 0.0, 1e1, 0.0,
5094 -tmin(f16), -inf(f16), 1e0, -fmax(f16), inf(f16), 1e1, fmax(f16), -1e0, 0.0, 1e-1, -1e0, -inf(f16), 1e-1, 0.0, -1e1, fmax(f16),
5095 });
5096 try testArgs(@Vector(128, f16), .{
5097 -fmin(f16), 1e0, 0.0, 1e-1, nan(f16), 1e-1, 1e-1, -inf(f16), -tmin(f16), 1e0, -fmin(f16), -fmax(f16), -1e0, -fmin(f16), 1e1, -nan(f16),
5098 inf(f16), -inf(f16), tmin(f16), -1e1, -1e0, -0.0, -0.0, 1e0, nan(f16), -1e1, fmin(f16), -tmin(f16), tmin(f16), 1e-1, -fmax(f16), fmax(f16),
5099 tmin(f16), -fmin(f16), nan(f16), 1e1, 1e0, -fmin(f16), 1e-1, 1e1, fmax(f16), fmax(f16), fmax(f16), -1e0, -nan(f16), 1e1, tmin(f16), -nan(f16),
5100 -nan(f16), -inf(f16), -0.0, -inf(f16), nan(f16), -1e0, 1e-1, -fmax(f16), -1e1, nan(f16), 1e0, -1e1, tmin(f16), 1e0, 1e-1, 1e0,
5101 1e1, 1e-1, tmin(f16), nan(f16), -inf(f16), -1e0, -1e0, -fmax(f16), -inf(f16), 1e-1, 1e-1, -0.0, 1e1, fmin(f16), -1e0, inf(f16),
5102 1e-1, -1e1, inf(f16), -0.0, 1e-1, 0.0, inf(f16), 1e0, tmin(f16), -tmin(f16), 1e-1, inf(f16), tmin(f16), -inf(f16), 1e1, 1e0,
5103 -inf(f16), 1e-1, 1e0, fmax(f16), -fmin(f16), nan(f16), -nan(f16), fmin(f16), -1e0, -fmax(f16), inf(f16), -fmax(f16), 0.0, -1e1, fmin(f16), -fmax(f16),
5104 -0.0, -1e0, 1e-1, 1e1, inf(f16), fmax(f16), inf(f16), 1e1, fmax(f16), -0.0, -tmin(f16), fmin(f16), inf(f16), nan(f16), -fmin(f16), -1e0,
5105 }, .{
5106 -fmax(f16), fmax(f16), inf(f16), 1e0, nan(f16), 1e-1, -fmax(f16), 1e1, -fmin(f16), 1e-1, fmin(f16), -0.0, 1e-1, -0.0, -nan(f16), -nan(f16),
5107 inf(f16), 1e0, -1e0, 1e-1, 1e-1, 1e-1, 0.0, -tmin(f16), -1e0, -1e1, -tmin(f16), 1e0, -1e1, fmin(f16), -fmax(f16), -nan(f16),
5108 -tmin(f16), -inf(f16), inf(f16), -fmin(f16), -nan(f16), 0.0, -inf(f16), -fmax(f16), 1e-1, -inf(f16), tmin(f16), nan(f16), tmin(f16), fmin(f16), -0.0, 1e-1,
5109 fmin(f16), fmin(f16), 1e0, tmin(f16), 0.0, 1e1, 1e-1, inf(f16), 1e1, -tmin(f16), tmin(f16), -1e0, -fmin(f16), 1e0, nan(f16), -fmax(f16),
5110 nan(f16), -fmin(f16), 1e-1, 1e1, -1e1, 1e0, -0.0, tmin(f16), nan(f16), inf(f16), -fmax(f16), tmin(f16), -tmin(f16), 1e1, fmin(f16), -tmin(f16),
5111 -0.0, 1e0, tmin(f16), fmax(f16), 1e0, -inf(f16), -nan(f16), -0.0, 1e-1, -inf(f16), 1e-1, fmax(f16), -inf(f16), -nan(f16), -1e0, -inf(f16),
5112 1e-1, fmin(f16), -1e1, -tmin(f16), 1e0, -nan(f16), -fmax(f16), -1e1, -tmin(f16), 1e1, nan(f16), fmin(f16), fmax(f16), tmin(f16), -inf(f16), 1e0,
5113 -fmin(f16), tmin(f16), -1e0, 1e-1, 0.0, nan(f16), 1e0, fmax(f16), -1e0, 1e1, nan(f16), 1e0, fmin(f16), 1e0, -1e1, -1e1,
5114 });
5115 try testArgs(@Vector(69, f16), .{
5116 -nan(f16), -1e0, -fmin(f16), fmin(f16), inf(f16), 1e-1, 0.0, fmax(f16), tmin(f16), 1e-1, 0.0, -tmin(f16), 0.0, 0.0, 1e0, -inf(f16),
5117 tmin(f16), -inf(f16), -tmin(f16), fmin(f16), -inf(f16), -nan(f16), tmin(f16), -tmin(f16), 1e-1, -1e0, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), fmin(f16), 1e1,
5118 fmin(f16), -1e1, 0.0, fmin(f16), fmax(f16), -nan(f16), fmax(f16), -fmax(f16), nan(f16), -nan(f16), fmin(f16), -1e1, -fmin(f16), fmin(f16), -fmin(f16), -nan(f16),
5119 0.0, -1e0, fmax(f16), 1e-1, inf(f16), 1e0, -1e0, -0.0, 1e1, 1e-1, -fmax(f16), tmin(f16), -inf(f16), tmin(f16), -fmax(f16), 1e-1,
5120 -1e1, -0.0, -fmax(f16), nan(f16), fmax(f16),
5121 }, .{
5122 inf(f16), -fmin(f16), 1e-1, 1e-1, -0.0, fmax(f16), 1e-1, -0.0, 0.0, -0.0, 0.0, -tmin(f16), tmin(f16), -1e0, nan(f16), -fmin(f16),
5123 fmin(f16), 1e-1, 1e-1, nan(f16), -fmax(f16), -inf(f16), -nan(f16), -nan(f16), 1e-1, -fmax(f16), fmin(f16), 1e-1, 1e-1, 1e-1, -0.0, 1e1,
5124 tmin(f16), -nan(f16), fmin(f16), -1e0, 1e0, -tmin(f16), 0.0, nan(f16), fmax(f16), -1e1, fmin(f16), -fmin(f16), -1e0, 1e-1, -fmin(f16), -fmin(f16),
5125 -fmax(f16), 0.0, fmin(f16), -1e1, -1e0, -1e0, fmax(f16), -nan(f16), -inf(f16), -inf(f16), 0.0, tmin(f16), -0.0, nan(f16), -inf(f16), nan(f16),
5126 inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16),
5127 });
5128
5129 try testArgs(@Vector(1, f32), .{
5130 fmin(f32),
5131 }, .{
5132 -tmin(f32),
5133 });
5134 try testArgs(@Vector(2, f32), .{
5135 nan(f32), -1e1,
5136 }, .{
5137 -tmin(f32), fmin(f32),
5138 });
5139 try testArgs(@Vector(4, f32), .{
5140 fmax(f32), -fmax(f32), -1e1, 0.0,
5141 }, .{
5142 inf(f32), inf(f32), -1e1, inf(f32),
5143 });
5144 try testArgs(@Vector(8, f32), .{
5145 -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1,
5146 }, .{
5147 1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1,
5148 });
5149 try testArgs(@Vector(16, f32), .{
5150 1e-1, 1e-1, -nan(f32), -1e1, -nan(f32), 0.0, fmin(f32), fmin(f32), -1e1, 1e0, -fmax(f32), -0.0, inf(f32), -0.0, fmax(f32), -fmin(f32),
5151 }, .{
5152 nan(f32), 0.0, tmin(f32), -1e0, -1e1, -tmin(f32), fmin(f32), -fmax(f32), 1e-1, 1e-1, -inf(f32), tmin(f32), -0.0, 1e1, -0.0, -inf(f32),
5153 });
5154 try testArgs(@Vector(32, f32), .{
5155 1e-1, tmin(f32), -1e0, 1e0, tmin(f32), -1e1, fmax(f32), 0.0, tmin(f32), 1e-1, -1e0, fmax(f32), -nan(f32), -0.0, fmin(f32), 0.0,
5156 -fmax(f32), fmax(f32), -fmin(f32), -inf(f32), tmin(f32), -nan(f32), -1e0, tmin(f32), -fmin(f32), -inf(f32), nan(f32), -tmin(f32), inf(f32), -inf(f32), -nan(f32), 1e-1,
5157 }, .{
5158 -fmin(f32), -1e0, fmax(f32), inf(f32), -fmin(f32), fmax(f32), 0.0, -1e1, 0.0, 1e-1, fmin(f32), -inf(f32), 1e0, -nan(f32), -nan(f32),
5159 -inf(f32), -0.0, nan(f32), -fmax(f32), 1e1, -tmin(f32), fmax(f32), -1e1, 1e-1, tmin(f32), 1e-1, -fmax(f32), 0.0, 1e-1, -nan(f32),
5160 -fmin(f32), fmax(f32),
5161 });
5162 try testArgs(@Vector(64, f32), .{
5163 fmin(f32), 0.0, -inf(f32), 1e-1, -1e1, -fmin(f32), 1e1, nan(f32), 1e-1, 1e0, -1e0, 1e1, 1e1, 1e-1, -fmax(f32), -1e0,
5164 -fmin(f32), 1e-1, -inf(f32), -inf(f32), 1e-1, 1e-1, 0.0, -1e0, nan(f32), -0.0, -0.0, -fmin(f32), -inf(f32), inf(f32), tmin(f32), -nan(f32),
5165 1e-1, 0.0, 1e0, tmin(f32), 1e1, fmin(f32), -fmin(f32), fmax(f32), nan(f32), 1e0, -nan(f32), -nan(f32), 1e0, nan(f32), 1e0, fmax(f32),
5166 -0.0, 0.0, inf(f32), nan(f32), tmin(f32), 0.0, fmin(f32), -0.0, -fmin(f32), tmin(f32), -1e0, -1e1, 1e-1, -tmin(f32), -inf(f32), -1e0,
5167 }, .{
5168 nan(f32), -nan(f32), -tmin(f32), inf(f32), -inf(f32), 1e-1, 1e-1, 1e-1, -1e0, -inf(f32), -0.0, fmax(f32), tmin(f32), -nan(f32), -fmax(f32), -1e0,
5169 -fmin(f32), -0.0, fmax(f32), -fmax(f32), 1e0, -0.0, 0.0, 1e1, -1e0, -fmin(f32), 0.0, fmax(f32), 1e-1, 1e0, 1e1, 1e-1,
5170 1e-1, fmin(f32), -nan(f32), -inf(f32), -0.0, -inf(f32), 1e-1, -fmax(f32), -1e1, -1e1, nan(f32), 1e1, -1e0, -fmin(f32), 1e1, fmin(f32),
5171 1e0, -fmax(f32), nan(f32), inf(f32), fmax(f32), fmax(f32), -fmin(f32), -inf(f32), -tmin(f32), -nan(f32), nan(f32), nan(f32), 1e-1, 1e-1, -1e0, inf(f32),
5172 });
5173 try testArgs(@Vector(128, f32), .{
5174 -1e1, -nan(f32), inf(f32), inf(f32), -tmin(f32), -0.0, 0.0, 1e-1, -0.0, fmin(f32), nan(f32), -1e0, nan(f32), -fmax(f32), nan(f32), 0.0,
5175 1e0, -tmin(f32), 0.0, -nan(f32), 1e-1, 1e-1, -1e0, 1e1, -fmax(f32), -fmin(f32), 1e-1, nan(f32), 1e-1, -fmax(f32), -tmin(f32), -inf(f32),
5176 inf(f32), tmin(f32), -tmin(f32), nan(f32), -inf(f32), -1e1, 1e0, -nan(f32), 1e-1, nan(f32), -1e0, tmin(f32), -fmin(f32), -0.0, -0.0, 1e0,
5177 fmin(f32), -fmin(f32), 1e-1, 1e-1, 1e-1, -1e1, -1e1, -tmin(f32), 1e0, -0.0, 1e1, -fmax(f32), 1e1, -fmax(f32), inf(f32), -1e0,
5178 -fmax(f32), fmin(f32), fmin(f32), fmin(f32), -1e0, -nan(f32), fmax(f32), -nan(f32), 1e-1, -1e0, -fmax(f32), -tmin(f32), -0.0, fmax(f32), -1e1, inf(f32),
5179 1e1, -inf(f32), 1e-1, fmin(f32), nan(f32), -fmax(f32), -tmin(f32), inf(f32), tmin(f32), -fmin(f32), fmax(f32), 1e0, fmin(f32), -0.0, 1e-1, fmin(f32),
5180 1e-1, inf(f32), -1e1, inf(f32), 1e1, tmin(f32), 0.0, 1e0, inf(f32), -1e1, -fmin(f32), tmin(f32), 1e0, 1e-1, 1e-1, -fmin(f32),
5181 1e1, 1e-1, fmax(f32), fmin(f32), 1e0, -1e1, -inf(f32), -1e1, 0.0, -fmax(f32), -inf(f32), -1e0, fmax(f32), -tmin(f32), inf(f32), nan(f32),
5182 }, .{
5183 -tmin(f32), -fmax(f32), -fmax(f32), 1e1, inf(f32), 1e-1, 1e0, fmin(f32), 1e-1, 1e1, fmin(f32), -fmax(f32), 1e0, fmax(f32), 1e-1, -fmin(f32),
5184 0.0, -0.0, -0.0, -1e0, -nan(f32), nan(f32), -tmin(f32), 1e1, -tmin(f32), -1e1, inf(f32), 0.0, tmin(f32), 0.0, -fmax(f32), inf(f32),
5185 fmin(f32), 1e-1, -1e1, tmin(f32), tmin(f32), 1e-1, fmin(f32), -tmin(f32), fmin(f32), nan(f32), 1e-1, -fmax(f32), -1e0, -0.0, fmin(f32), -0.0,
5186 -1e0, -0.0, -inf(f32), fmax(f32), -1e1, 1e0, inf(f32), -1e0, -tmin(f32), -tmin(f32), 1e-1, -1e1, -fmin(f32), 1e1, -1e1, -inf(f32),
5187 -1e0, inf(f32), 1e-1, 1e0, -nan(f32), 1e-1, -1e1, -nan(f32), -tmin(f32), 0.0, fmin(f32), -nan(f32), fmax(f32), -tmin(f32), 0.0, 0.0,
5188 -fmax(f32), -inf(f32), -1e0, -0.0, 1e1, nan(f32), 1e-1, tmin(f32), -1e1, 1e1, tmin(f32), -fmax(f32), 1e-1, -1e1, -tmin(f32), fmax(f32),
5189 -fmax(f32), 1e-1, -nan(f32), -fmin(f32), inf(f32), inf(f32), tmin(f32), tmin(f32), -tmin(f32), tmin(f32), 0.0, -0.0, 1e0, 1e1, -1e1, inf(f32),
5190 0.0, -fmin(f32), fmax(f32), -1e1, fmax(f32), -0.0, 0.0, -fmin(f32), 1e1, -fmin(f32), -fmin(f32), -fmin(f32), 1e1, fmin(f32), -inf(f32), fmax(f32),
5191 });
5192 try testArgs(@Vector(69, f32), .{
5193 nan(f32), 1e-1, -tmin(f32), fmax(f32), nan(f32), -fmax(f32), 1e-1, fmax(f32), 1e1, inf(f32), -fmin(f32), -fmax(f32), inf(f32), -nan(f32), 1e-1, 1e0,
5194 fmax(f32), 1e-1, 1e1, 0.0, -1e1, fmax(f32), 1e1, 0.0, 1e0, 1e1, -fmax(f32), 0.0, -tmin(f32), -fmin(f32), 1e-1, 1e0,
5195 fmin(f32), tmin(f32), -fmin(f32), -tmin(f32), tmin(f32), -inf(f32), -fmax(f32), -0.0, -1e0, -0.0, -fmax(f32), fmax(f32), fmin(f32), -0.0, 0.0, -inf(f32),
5196 -tmin(f32), inf(f32), -nan(f32), tmin(f32), -1e0, -tmin(f32), 1e1, -inf(f32), -fmin(f32), 1e-1, -inf(f32), -1e0, nan(f32), -inf(f32), -tmin(f32), 1e1,
5197 1e1, -nan(f32), -nan(f32), tmin(f32), -nan(f32),
5198 }, .{
5199 -nan(f32), 1e0, fmax(f32), 1e-1, -0.0, 1e0, -inf(f32), -fmin(f32), -nan(f32), inf(f32), 1e0, -nan(f32), -nan(f32), -inf(f32), tmin(f32), -fmin(f32),
5200 -nan(f32), 1e-1, fmin(f32), -1e0, -fmax(f32), 1e-1, -1e0, 1e-1, 1e-1, -tmin(f32), 1e-1, 1e-1, 1e1, fmin(f32), 0.0, nan(f32),
5201 tmin(f32), 1e0, nan(f32), -fmin(f32), tmin(f32), nan(f32), 1e-1, nan(f32), 1e0, -fmax(f32), tmin(f32), 1e0, 0.0, -1e0, nan(f32), fmin(f32),
5202 -inf(f32), fmax(f32), -0.0, nan(f32), tmin(f32), tmin(f32), -inf(f32), -1e1, -nan(f32), -fmax(f32), -0.0, 1e-1, -inf(f32), 1e0, nan(f32), 1e0,
5203 -1e1, fmin(f32), inf(f32), fmin(f32), 0.0,
5204 });
5205
5206 try testArgs(@Vector(1, f64), .{
5207 -0.0,
5208 }, .{
5209 1e0,
5210 });
5211 try testArgs(@Vector(2, f64), .{
5212 -1e0, 0.0,
5213 }, .{
5214 -inf(f64), -fmax(f64),
5215 });
5216 try testArgs(@Vector(4, f64), .{
5217 -inf(f64), inf(f64), 1e1, 0.0,
5218 }, .{
5219 -tmin(f64), 1e0, nan(f64), 0.0,
5220 });
5221 try testArgs(@Vector(8, f64), .{
5222 1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1,
5223 }, .{
5224 tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0,
5225 });
5226 try testArgs(@Vector(16, f64), .{
5227 1e-1, -nan(f64), 1e0, tmin(f64), fmax(f64), -fmax(f64), -tmin(f64), -0.0, -fmin(f64), -1e0, -fmax(f64), -nan(f64), -fmax(f64), nan(f64), -0.0, 1e-1,
5228 }, .{
5229 -1e0, -tmin(f64), -fmin(f64), 1e-1, 1e-1, -0.0, -nan(f64), -inf(f64), -inf(f64), -0.0, nan(f64), tmin(f64), 1e0, 1e-1, tmin(f64), fmin(f64),
5230 });
5231 try testArgs(@Vector(32, f64), .{
5232 -fmax(f64), fmin(f64), 1e-1, 1e-1, 0.0, 1e0, -0.0, -tmin(f64), tmin(f64), inf(f64), -tmin(f64), -tmin(f64), -tmin(f64), -fmax(f64), fmin(f64), 1e0,
5233 -fmin(f64), -nan(f64), 1e0, -inf(f64), -nan(f64), -1e0, 0.0, 0.0, nan(f64), -nan(f64), -fmin(f64), fmin(f64), 1e-1, nan(f64), tmin(f64), -fmax(f64),
5234 }, .{
5235 -tmin(f64), -fmax(f64), -inf(f64), -nan(f64), fmin(f64), -inf(f64), 1e-1, -fmax(f64), -inf(f64), fmin(f64), inf(f64), -1e0, -tmin(f64), inf(f64), 1e-1, nan(f64),
5236 fmin(f64), 1e1, -tmin(f64), -nan(f64), -inf(f64), 1e0, nan(f64), -fmin(f64), -1e0, nan(f64), -1e0, 0.0, 1e0, nan(f64), -1e0, -fmin(f64),
5237 });
5238 try testArgs(@Vector(64, f64), .{
5239 -1e1, fmax(f64), -nan(f64), tmin(f64), 1e-1, -1e0, 1e0, -0.0, -fmin(f64), 1e-1, -fmin(f64), -0.0, -0.0, tmin(f64), -1e1, 1e-1,
5240 -1e1, -fmax(f64), -1e1, -fmin(f64), 0.0, -1e1, nan(f64), 1e0, inf(f64), inf(f64), -inf(f64), tmin(f64), tmin(f64), 1e-1, -0.0, 1e-1,
5241 -0.0, 1e-1, -1e1, 1e1, fmax(f64), -fmin(f64), 1e0, fmax(f64), 1e0, -1e1, fmin(f64), fmax(f64), -1e0, -0.0, -0.0, fmax(f64),
5242 -inf(f64), -inf(f64), -tmin(f64), -fmax(f64), -nan(f64), tmin(f64), -1e0, 0.0, -inf(f64), fmax(f64), nan(f64), -inf(f64), fmin(f64), -nan(f64), -nan(f64), -1e1,
5243 }, .{
5244 nan(f64), -1e0, 0.0, -1e1, -fmax(f64), -fmin(f64), -nan(f64), -tmin(f64), 1e-1, -1e0, -nan(f64), -fmax(f64), 0.0, 0.0, 1e1, inf(f64),
5245 fmin(f64), 0.0, -1e1, 1e0, -tmin(f64), -inf(f64), -fmax(f64), 0.0, -fmin(f64), -1e0, -fmin(f64), tmin(f64), 1e0, -1e1, fmin(f64), 1e-1,
5246 inf(f64), -0.0, tmin(f64), -fmax(f64), -tmin(f64), -fmax(f64), fmin(f64), -fmax(f64), 1e-1, 1e0, 1e0, 0.0, fmin(f64), nan(f64), -1e1, tmin(f64),
5247 inf(f64), 1e-1, 1e0, -nan(f64), 1e0, -fmin(f64), fmax(f64), inf(f64), fmin(f64), -inf(f64), -0.0, 0.0, -1e0, -0.0, 1e-1, 1e-1,
5248 });
5249 try testArgs(@Vector(128, f64), .{
5250 nan(f64), -fmin(f64), fmax(f64), fmin(f64), -1e1, nan(f64), tmin(f64), fmax(f64), inf(f64), -nan(f64), tmin(f64), -nan(f64), -0.0, fmin(f64), fmax(f64),
5251 -inf(f64), inf(f64), -1e0, 0.0, 1e-1, fmin(f64), 0.0, 1e-1, -1e0, -inf(f64), 1e-1, fmax(f64), fmin(f64), fmax(f64), -fmax(f64),
5252 fmin(f64), inf(f64), -fmin(f64), -1e1, -0.0, 1e-1, nan(f64), -fmax(f64), -fmax(f64), -1e0, 1e1, 1e1, -1e0, -inf(f64), inf(f64),
5253 -fmin(f64), 1e0, -inf(f64), -1e1, 1e-1, 1e0, 1e1, 1e1, tmin(f64), nan(f64), inf(f64), 0.0, -1e0, -1e1, 1e0,
5254 -tmin(f64), -fmax(f64), -nan(f64), 1e1, 1e-1, tmin(f64), 0.0, 1e1, 1e-1, -tmin(f64), -tmin(f64), 1e0, -fmax(f64), nan(f64), -fmin(f64),
5255 nan(f64), 1e1, -1e0, -0.0, -tmin(f64), nan(f64), 1e1, 1e1, -inf(f64), 1e-1, -nan(f64), -1e1, -tmin(f64), -fmax(f64), -fmax(f64),
5256 inf(f64), -inf(f64), tmin(f64), 1e0, -inf(f64), -1e1, inf(f64), 1e-1, -nan(f64), -inf(f64), fmax(f64), 1e-1, -inf(f64), 1e-1, 1e0,
5257 1e-1, 1e-1, 1e-1, inf(f64), -inf(f64), 1e0, 1e1, 1e1, nan(f64), 1e1, -tmin(f64), 1e0, -fmin(f64), -1e0, -fmax(f64),
5258 -fmin(f64), -fmin(f64), -1e0, inf(f64), nan(f64), tmin(f64), 1e-1, -1e0,
5259 }, .{
5260 0.0, 0.0, inf(f64), -0.0, 1e-1, -nan(f64), 1e1, -nan(f64), tmin(f64), -1e1, -0.0, inf(f64), -fmin(f64), 1e-1, fmax(f64),
5261 nan(f64), -tmin(f64), tmin(f64), 1e0, 1e-1, -1e1, -nan(f64), 1e0, inf(f64), -1e1, fmin(f64), 1e-1, 1e1, -1e1, 1e1,
5262 -nan(f64), -nan(f64), 1e-1, 0.0, 1e1, -fmax(f64), -tmin(f64), tmin(f64), -1e0, -tmin(f64), -1e1, 1e-1, -fmax(f64), 1e1, nan(f64),
5263 fmax(f64), -1e0, -1e0, -tmin(f64), fmax(f64), -1e1, 1e-1, 1e0, fmin(f64), inf(f64), 1e-1, tmin(f64), 1e-1, -fmax(f64), fmax(f64),
5264 -1e1, -fmax(f64), fmax(f64), tmin(f64), -fmin(f64), inf(f64), 1e-1, -0.0, fmax(f64), tmin(f64), 1e-1, 1e0, -inf(f64), 1e0, 1e1,
5265 1e-1, 0.0, -1e1, -nan(f64), 1e1, -fmin(f64), -tmin(f64), 1e1, 1e0, -tmin(f64), -1e0, -fmin(f64), -0.0, -1e1, 1e-1,
5266 inf(f64), -fmax(f64), 1e-1, tmin(f64), -0.0, fmax(f64), 0.0, -nan(f64), -fmin(f64), fmax(f64), -0.0, nan(f64), -inf(f64), tmin(f64), 1e-1,
5267 inf(f64), 0.0, 1e1, -fmax(f64), tmin(f64), -0.0, fmin(f64), -nan(f64), -1e1, -inf(f64), nan(f64), inf(f64), -0.0, 1e1, fmax(f64),
5268 tmin(f64), -1e1, -nan(f64), 1e1, -inf(f64), -fmax(f64), -inf(f64), -1e0,
5269 });
5270 try testArgs(@Vector(69, f64), .{
5271 inf(f64), -0.0, -fmax(f64), fmax(f64), fmax(f64), 0.0, fmin(f64), -nan(f64), 1e-1, 1e-1, 1e-1, -fmin(f64), inf(f64), 1e-1, fmax(f64), nan(f64),
5272 tmin(f64), -1e1, 1e1, -tmin(f64), -0.0, nan(f64), -1e1, fmin(f64), 0.0, -0.0, 1e-1, inf(f64), -tmin(f64), -nan(f64), inf(f64), -nan(f64),
5273 -inf(f64), fmax(f64), 1e-1, -fmin(f64), 1e-1, -1e0, fmin(f64), fmin(f64), fmin(f64), 1e1, -fmin(f64), nan(f64), 0.0, 0.0, 1e1, nan(f64),
5274 -tmin(f64), tmin(f64), tmin(f64), fmin(f64), -0.0, -1e0, 1e-1, 1e0, fmax(f64), tmin(f64), fmin(f64), 0.0, -fmin(f64), fmin(f64), -tmin(f64), 0.0,
5275 -nan(f64), 1e1, -1e0, 1e-1, 0.0,
5276 }, .{
5277 -1e1, -0.0, fmin(f64), -fmin(f64), nan(f64), 1e1, -tmin(f64), -fmax(f64), 1e1, 1e-1, -fmin(f64), inf(f64), -inf(f64), -tmin(f64), 1e0, tmin(f64),
5278 -tmin(f64), -nan(f64), fmax(f64), 0.0, -1e0, 1e1, inf(f64), fmin(f64), fmax(f64), 1e-1, 1e-1, fmax(f64), -inf(f64), 1e-1, 1e-1, fmin(f64),
5279 1e-1, fmin(f64), -1e1, nan(f64), 0.0, 0.0, fmax(f64), -inf(f64), tmin(f64), inf(f64), -tmin(f64), fmax(f64), -inf(f64), -1e1, -1e0, fmin(f64),
5280 1e-1, -nan(f64), fmax(f64), -fmin(f64), fmax(f64), nan(f64), -0.0, -fmax(f64), 1e1, nan(f64), inf(f64), -1e0, -fmin(f64), nan(f64), -fmin(f64), -0.0,
5281 -nan(f64), -fmin(f64), 1e-1, nan(f64), 1e-1,
5282 });
5283
5284 try testArgs(@Vector(1, f80), .{
5285 -nan(f80),
5286 }, .{
5287 -1e0,
5288 });
5289 try testArgs(@Vector(2, f80), .{
5290 -fmax(f80), -inf(f80),
5291 }, .{
5292 1e-1, 1e1,
5293 });
5294 try testArgs(@Vector(4, f80), .{
5295 -0.0, -inf(f80), 1e-1, 1e1,
5296 }, .{
5297 -1e0, 0.0, 1e-1, -1e1,
5298 });
5299 try testArgs(@Vector(8, f80), .{
5300 1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1,
5301 }, .{
5302 -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1,
5303 });
5304 try testArgs(@Vector(16, f80), .{
5305 1e1, inf(f80), -fmin(f80), 1e-1, -tmin(f80), -0.0, -inf(f80), -1e0, -fmax(f80), -nan(f80), -tmin(f80), 1e1, 1e1, -inf(f80), -fmax(f80), fmax(f80),
5306 }, .{
5307 -inf(f80), nan(f80), -fmax(f80), fmin(f80), 1e0, 1e-1, -inf(f80), nan(f80), 1e-1, nan(f80), -inf(f80), nan(f80), tmin(f80), 1e-1, -tmin(f80), -1e1,
5308 });
5309 try testArgs(@Vector(32, f80), .{
5310 inf(f80), -0.0, 1e-1, -0.0, 1e-1, -fmin(f80), -0.0, fmax(f80), nan(f80), -tmin(f80), nan(f80), -1e1, 0.0, 1e0, 1e1, -fmin(f80),
5311 fmin(f80), 1e-1, inf(f80), -0.0, nan(f80), tmin(f80), -tmin(f80), fmin(f80), tmin(f80), -0.0, nan(f80), -fmax(f80), tmin(f80), -fmin(f80), 1e0, tmin(f80),
5312 }, .{
5313 0.0, -1e1, fmax(f80), -inf(f80), 1e-1, -inf(f80), inf(f80), 1e1, -1e0, -1e1, -fmin(f80), 0.0, inf(f80), 1e0, -nan(f80), 0.0,
5314 1e-1, nan(f80), 1e0, -fmax(f80), fmin(f80), -inf(f80), -fmax(f80), 1e-1, -1e1, tmin(f80), fmax(f80), -0.0, -fmin(f80), -fmin(f80), fmin(f80), -tmin(f80),
5315 });
5316 try testArgs(@Vector(64, f80), .{
5317 -fmax(f80), 1e-1, -1e0, 1e0, inf(f80), 1e-1, -1e1, 1e-1, fmin(f80), -fmin(f80), -1e1, -fmax(f80), 0.0, -1e1, -1e0, -nan(f80),
5318 0.0, 1e-1, -1e0, -tmin(f80), 1e0, tmin(f80), fmax(f80), 0.0, -1e1, -tmin(f80), fmax(f80), -0.0, 1e-1, -inf(f80), -fmax(f80), -1e0,
5319 -nan(f80), tmin(f80), -tmin(f80), -0.0, -0.0, -1e0, -0.0, fmax(f80), inf(f80), -nan(f80), 1e-1, -inf(f80), -tmin(f80), nan(f80), 1e-1, 1e1,
5320 nan(f80), -inf(f80), 1e-1, tmin(f80), -fmin(f80), 1e1, -1e1, tmin(f80), fmin(f80), nan(f80), 1e-1, -nan(f80), tmin(f80), nan(f80), fmax(f80), -fmax(f80),
5321 }, .{
5322 -nan(f80), -fmax(f80), tmin(f80), -inf(f80), -tmin(f80), fmin(f80), -nan(f80), -fmin(f80), fmax(f80), inf(f80), -0.0, -1e0, 1e-1, -fmax(f80), 1e0, -inf(f80),
5323 0.0, -nan(f80), -1e1, -1e0, -nan(f80), inf(f80), 1e0, -nan(f80), 1e1, inf(f80), tmin(f80), 1e-1, tmin(f80), -tmin(f80), -inf(f80), -fmin(f80),
5324 fmax(f80), fmax(f80), 1e-1, -tmin(f80), -nan(f80), -1e0, fmin(f80), -nan(f80), -nan(f80), inf(f80), -1e0, 1e-1, -fmin(f80), -tmin(f80), 0.0, -0.0,
5325 1e-1, -fmin(f80), -inf(f80), -1e0, -tmin(f80), 1e0, -inf(f80), -0.0, 0.0, 1e0, tmin(f80), 0.0, 1e-1, -nan(f80), fmax(f80), 1e0,
5326 });
5327 try testArgs(@Vector(128, f80), .{
5328 1e-1, -0.0, 1e-1, 0.0, fmin(f80), -1e0, 1e0, -inf(f80), fmax(f80), -fmin(f80), nan(f80), 1e1, 1e-1, 1e-1, -fmin(f80), -inf(f80),
5329 -1e0, -inf(f80), 1e0, -fmin(f80), inf(f80), -nan(f80), 1e1, inf(f80), tmin(f80), nan(f80), -1e1, inf(f80), 1e1, inf(f80), -1e1, 0.0,
5330 -1e1, fmin(f80), -tmin(f80), 1e0, -fmax(f80), nan(f80), 0.0, fmax(f80), 1e-1, -1e0, -fmin(f80), inf(f80), -tmin(f80), nan(f80), -tmin(f80), 1e1,
5331 -1e1, -tmin(f80), -1e0, -tmin(f80), -fmax(f80), 1e1, -1e0, -inf(f80), -nan(f80), 0.0, 1e0, fmax(f80), -tmin(f80), -fmin(f80), fmin(f80), fmin(f80),
5332 -1e1, -fmax(f80), -tmin(f80), inf(f80), 1e0, 0.0, tmin(f80), -nan(f80), -fmin(f80), 1e-1, -nan(f80), 0.0, 1e-1, -1e1, -0.0, -nan(f80),
5333 1e0, 1e1, -1e1, fmin(f80), -nan(f80), fmax(f80), -0.0, 1e0, inf(f80), 1e0, -fmin(f80), -fmin(f80), 0.0, 1e-1, inf(f80), 1e1,
5334 tmin(f80), -1e0, fmax(f80), -0.0, fmax(f80), fmax(f80), 1e-1, -fmin(f80), -1e1, 1e0, -fmin(f80), -fmax(f80), fmin(f80), -fmax(f80), -0.0, -1e0,
5335 -nan(f80), -inf(f80), nan(f80), -fmax(f80), inf(f80), -inf(f80), -nan(f80), fmin(f80), nan(f80), -1e0, tmin(f80), tmin(f80), 1e-1, 1e1, -tmin(f80), -nan(f80),
5336 }, .{
5337 -1e0, -0.0, 0.0, fmax(f80), -1e0, -0.0, 1e-1, tmin(f80), -inf(f80), 1e1, -0.0, 1e-1, -tmin(f80), -fmax(f80), tmin(f80), inf(f80),
5338 1e-1, 1e0, tmin(f80), nan(f80), -fmax(f80), 1e1, fmin(f80), -1e0, -fmax(f80), nan(f80), -fmin(f80), 1e1, -1e0, tmin(f80), inf(f80), -0.0,
5339 tmin(f80), 1e0, 0.0, -fmin(f80), 0.0, 1e1, -fmax(f80), -0.0, -inf(f80), fmin(f80), -0.0, -0.0, -0.0, -fmax(f80), 1e-1, fmax(f80),
5340 -tmin(f80), tmin(f80), -fmax(f80), 1e1, -fmax(f80), 1e-1, fmax(f80), -1e1, 1e-1, 1e0, -1e0, -1e0, nan(f80), -nan(f80), 1e1, -nan(f80),
5341 nan(f80), -1e1, -tmin(f80), fmin(f80), -tmin(f80), -fmin(f80), tmin(f80), -0.0, 1e-1, fmax(f80), tmin(f80), tmin(f80), nan(f80), 1e-1, 1e1, 1e-1,
5342 inf(f80), inf(f80), 1e0, -inf(f80), -fmax(f80), 0.0, 1e0, -fmax(f80), fmax(f80), nan(f80), fmin(f80), 1e-1, -1e0, 1e0, 1e-1, -tmin(f80),
5343 1e1, 1e-1, -fmax(f80), 0.0, nan(f80), -tmin(f80), 1e-1, fmax(f80), fmax(f80), 1e-1, -1e0, inf(f80), nan(f80), 1e1, fmax(f80), -nan(f80),
5344 -1e1, -1e0, tmin(f80), fmin(f80), inf(f80), fmax(f80), -fmin(f80), fmin(f80), -inf(f80), -tmin(f80), 1e0, nan(f80), -fmin(f80), -fmin(f80), fmax(f80), 1e0,
5345 });
5346 try testArgs(@Vector(69, f80), .{
5347 -1e1, tmin(f80), 1e-1, -nan(f80), -inf(f80), -nan(f80), fmin(f80), -0.0, 1e1, fmax(f80), -fmin(f80), 1e-1, -nan(f80), inf(f80), 1e0, -1e0,
5348 inf(f80), fmin(f80), -fmax(f80), 1e-1, nan(f80), 0.0, 0.0, nan(f80), -1e1, fmax(f80), fmin(f80), -fmax(f80), 1e0, 1e-1, 0.0, -fmin(f80),
5349 -tmin(f80), 0.0, -1e1, fmin(f80), 1e0, 1e1, 1e-1, nan(f80), -1e1, fmax(f80), 1e-1, fmin(f80), -inf(f80), 0.0, tmin(f80), inf(f80),
5350 fmax(f80), 1e0, 1e-1, nan(f80), inf(f80), tmin(f80), tmin(f80), -fmax(f80), 0.0, fmin(f80), -inf(f80), 1e-1, -tmin(f80), 1e-1, -1e0, 1e-1,
5351 -fmax(f80), -1e0, 1e-1, -1e0, fmax(f80),
5352 }, .{
5353 -1e0, fmin(f80), inf(f80), -nan(f80), -0.0, fmin(f80), -0.0, nan(f80), -fmax(f80), 1e-1, 1e0, -1e1, -tmin(f80), -fmin(f80), 1e1, inf(f80),
5354 -1e1, -tmin(f80), -fmin(f80), 1e1, 0.0, -tmin(f80), 1e1, -1e1, 1e-1, 1e-1, tmin(f80), fmax(f80), 0.0, 1e-1, 1e-1, -1e1,
5355 fmin(f80), nan(f80), -1e1, -1e1, -1e1, 0.0, -0.0, 1e-1, fmin(f80), fmin(f80), -0.0, -fmin(f80), -nan(f80), -inf(f80), 0.0, -inf(f80),
5356 inf(f80), fmax(f80), -tmin(f80), inf(f80), 1e-1, -nan(f80), 1e-1, tmin(f80), -1e1, -fmax(f80), -fmax(f80), inf(f80), -nan(f80), 1e0, -inf(f80), 1e1,
5357 nan(f80), 1e1, -1e1, 0.0, -fmin(f80),
5358 });
5359
5360 try testArgs(@Vector(1, f128), .{
5361 -nan(f128),
5362 }, .{
5363 -0.0,
5364 });
5365 try testArgs(@Vector(2, f128), .{
5366 0.0, -inf(f128),
5367 }, .{
5368 1e-1, -fmin(f128),
5369 });
5370 try testArgs(@Vector(4, f128), .{
5371 1e-1, fmax(f128), 1e1, -fmax(f128),
5372 }, .{
5373 -tmin(f128), fmax(f128), -0.0, -0.0,
5374 });
5375 try testArgs(@Vector(8, f128), .{
5376 1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128),
5377 }, .{
5378 fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1,
5379 });
5380 try testArgs(@Vector(16, f128), .{
5381 -fmin(f128), -1e1, -fmin(f128), 1e-1, -1e1, 1e0, -fmax(f128), tmin(f128), -nan(f128), -tmin(f128), 1e1, -inf(f128), -1e0, tmin(f128), -0.0, nan(f128),
5382 }, .{
5383 -fmax(f128), fmin(f128), inf(f128), tmin(f128), -1e1, 1e1, fmax(f128), 1e0, -inf(f128), -inf(f128), -fmax(f128), -nan(f128), 1e0, -inf(f128), tmin(f128), tmin(f128),
5384 });
5385 try testArgs(@Vector(32, f128), .{
5386 -0.0, -1e0, 1e0, -fmax(f128), -fmax(f128), 1e-1, -fmin(f128), -fmin(f128), -1e0, -tmin(f128), -0.0, -fmax(f128), tmin(f128), inf(f128), 0.0, fmax(f128),
5387 -nan(f128), -0.0, -inf(f128), -1e0, 1e-1, -fmin(f128), tmin(f128), -1e1, fmax(f128), -nan(f128), -nan(f128), -fmax(f128), 1e-1, inf(f128), -0.0, tmin(f128),
5388 }, .{
5389 -1e0, -1e1, -fmin(f128), -fmin(f128), inf(f128), tmin(f128), nan(f128), 0.0, -fmin(f128), 1e-1, -nan(f128), 1e-1, -0.0, tmin(f128), 1e0, 0.0,
5390 fmin(f128), fmax(f128), -fmax(f128), -tmin(f128), fmin(f128), -0.0, -1e0, -nan(f128), -inf(f128), 1e0, nan(f128), 1e0, 1e-1, -0.0, -fmax(f128), -1e1,
5391 });
5392 try testArgs(@Vector(64, f128), .{
5393 -1e0, -0.0, nan(f128), 1e-1, -1e1, 0.0, 1e0, 1e0, -inf(f128), fmin(f128), fmax(f128), nan(f128), -nan(f128), inf(f128), -0.0,
5394 1e-1, -inf(f128), -fmax(f128), 1e1, -tmin(f128), -tmin(f128), -fmax(f128), 1e0, 1e-1, 1e-1, nan(f128), 1e1, 1e0, -tmin(f128), 1e1,
5395 -nan(f128), fmax(f128), fmax(f128), 0.0, fmax(f128), inf(f128), 1e0, -0.0, 1e-1, -tmin(f128), fmin(f128), fmax(f128), tmin(f128), inf(f128), -1e1,
5396 -1e0, -1e0, -1e0, -inf(f128), 1e1, -tmin(f128), nan(f128), nan(f128), 1e-1, fmin(f128), 1e-1, tmin(f128), -1e1, 1e-1, 1e1,
5397 fmax(f128), fmax(f128), 1e-1, -fmax(f128),
5398 }, .{
5399 -0.0, 1e-1, -0.0, -fmin(f128), 1e1, 0.0, 1e0, -inf(f128), tmin(f128), -1e0, fmin(f128), -nan(f128), -1e1, 1e-1, -1e1, 1e-1,
5400 1e-1, tmin(f128), nan(f128), -1e0, 0.0, -1e1, -1e1, fmax(f128), -fmax(f128), inf(f128), -nan(f128), 1e-1, -nan(f128), 1e0, fmax(f128), inf(f128),
5401 nan(f128), fmin(f128), 1e1, inf(f128), 0.0, -inf(f128), 1e-1, 1e-1, 1e-1, -1e0, 1e-1, -1e1, inf(f128), -nan(f128), 1e-1, inf(f128),
5402 inf(f128), inf(f128), -1e1, -tmin(f128), 1e-1, -inf(f128), -fmin(f128), 1e0, -tmin(f128), 1e0, -tmin(f128), -inf(f128), -0.0, -nan(f128), -1e0, -fmax(f128),
5403 });
5404 try testArgs(@Vector(128, f128), .{
5405 -inf(f128), tmin(f128), -fmax(f128), 1e0, fmin(f128), -fmax(f128), -1e0, 1e-1, -fmax(f128), -fmin(f128), -1e1, nan(f128), 1e-1, nan(f128),
5406 inf(f128), -1e0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -1e1, -fmin(f128), -1e1, 1e0, -nan(f128),
5407 -inf(f128), fmin(f128), inf(f128), -tmin(f128), 1e-1, 0.0, 1e1, 1e0, -tmin(f128), -tmin(f128), tmin(f128), 1e0, fmin(f128), 1e-1,
5408 1e-1, 1e-1, fmax(f128), 1e-1, inf(f128), 0.0, fmin(f128), -fmin(f128), 1e1, 1e1, -1e1, tmin(f128), inf(f128), inf(f128),
5409 -fmin(f128), 0.0, 1e-1, -nan(f128), 1e-1, -inf(f128), -nan(f128), -1e0, fmin(f128), -0.0, 1e1, -tmin(f128), 1e1, 1e0,
5410 1e-1, -0.0, -tmin(f128), 1e-1, -1e0, -tmin(f128), -fmin(f128), tmin(f128), 1e-1, -tmin(f128), -nan(f128), -1e1, -inf(f128), 0.0,
5411 1e-1, 0.0, -fmin(f128), 0.0, 1e1, 1e1, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1e0, -fmin(f128), -1e1, -fmin(f128),
5412 -inf(f128), -fmax(f128), tmin(f128), tmin(f128), -fmin(f128), 1e-1, fmin(f128), fmin(f128), -fmin(f128), nan(f128), -1e0, -0.0, -0.0, 1e-1,
5413 fmax(f128), 0.0, -fmax(f128), nan(f128), nan(f128), nan(f128), nan(f128), -nan(f128), fmin(f128), -inf(f128), inf(f128), -fmax(f128), -1e1, fmin(f128),
5414 1e-1, fmax(f128),
5415 }, .{
5416 0.0, 1e1, 1e-1, inf(f128), -0.0, -1e0, nan(f128), -1e1, -inf(f128), 1e-1, -tmin(f128), 1e0, inf(f128), 1e-1, -1e0,
5417 1e1, 0.0, 1e0, nan(f128), tmin(f128), fmax(f128), 1e1, 1e-1, 1e-1, -fmin(f128), -inf(f128), -nan(f128), -fmin(f128), -0.0, -inf(f128),
5418 -nan(f128), fmax(f128), -fmin(f128), -tmin(f128), -fmin(f128), -fmax(f128), nan(f128), fmin(f128), -fmax(f128), fmax(f128), 1e0, 1e1, -fmax(f128), nan(f128), -fmax(f128),
5419 -inf(f128), nan(f128), -nan(f128), tmin(f128), -1e0, 1e-1, 1e-1, -1e0, -nan(f128), fmax(f128), 1e1, -inf(f128), 1e1, -0.0, -1e0,
5420 -0.0, -tmin(f128), 1e1, -1e0, -fmax(f128), fmin(f128), fmax(f128), tmin(f128), 1e1, fmin(f128), -nan(f128), 1e0, -tmin(f128), -1e0, fmax(f128),
5421 1e0, -tmin(f128), 1e-1, -nan(f128), inf(f128), 1e-1, 1e-1, fmax(f128), -fmin(f128), fmin(f128), -0.0, fmax(f128), -fmax(f128), -tmin(f128), tmin(f128),
5422 nan(f128), 1e-1, tmin(f128), -1e0, fmin(f128), -nan(f128), fmax(f128), 1e0, nan(f128), -nan(f128), inf(f128), -fmin(f128), fmin(f128), 1e-1, 1e1,
5423 -tmin(f128), -1e1, 0.0, 1e-1, -fmin(f128), -0.0, 0.0, -1e1, fmax(f128), nan(f128), nan(f128), -fmin(f128), -fmax(f128), 1e1, 0.0,
5424 fmin(f128), 1e1, -tmin(f128), -tmin(f128), 0.0, -1e1, 1e0, -fmin(f128),
5425 });
5426 try testArgs(@Vector(69, f128), .{
5427 -1e0, nan(f128), 1e-1, 1e-1, 1e-1, -1e0, -1e1, inf(f128), -0.0, inf(f128), tmin(f128), 0.0, -fmax(f128), -tmin(f128), -1e1, -fmax(f128),
5428 -0.0, 0.0, nan(f128), inf(f128), 1e0, -1e0, 1e-1, -0.0, 1e0, fmax(f128), -fmax(f128), 0.0, inf(f128), -inf(f128), -tmin(f128), -inf(f128),
5429 1e1, fmin(f128), 1e1, -1e1, 1e-1, 1e0, -0.0, nan(f128), tmin(f128), inf(f128), inf(f128), -nan(f128), -nan(f128), 1e0, -tmin(f128), 0.0,
5430 fmin(f128), fmax(f128), fmin(f128), -1e1, nan(f128), 0.0, -nan(f128), -0.0, -nan(f128), 1e-1, -1e1, -tmin(f128), fmax(f128), 1e0, fmin(f128), fmax(f128),
5431 nan(f128), -inf(f128), 1e0, fmin(f128), -nan(f128),
5432 }, .{
5433 -inf(f128), fmax(f128), 0.0, nan(f128), -1e1, tmin(f128), nan(f128), 1e0, 1e1, -fmin(f128), fmin(f128), tmin(f128), 0.0, -fmin(f128), -0.0, fmin(f128),
5434 inf(f128), inf(f128), fmin(f128), fmin(f128), -tmin(f128), -fmax(f128), 1e1, nan(f128), -0.0, 1e0, 1e1, -1e1, -inf(f128), fmin(f128), -fmax(f128), 1e-1,
5435 -1e0, -nan(f128), -1e1, tmin(f128), inf(f128), nan(f128), 0.0, -1e1, tmin(f128), 0.0, -fmax(f128), -tmin(f128), 1e-1, 1e-1, 1e1, 1e-1,
5436 fmax(f128), 1e-1, 0.0, -fmin(f128), -inf(f128), -inf(f128), -nan(f128), 1e-1, -fmax(f128), fmax(f128), -fmax(f128), -0.0, -tmin(f128), -1e0, nan(f128), 1e-1,
5437 -1e0, -inf(f128), tmin(f128), inf(f128), inf(f128),
5438 });
5439 }
5440 };
5441}
5442
5443inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5444 @setRuntimeSafety(false);
5445 return @as(AddOneBit(Type), lhs) + rhs;
5446}
5447test addUnsafe {
5448 const test_add_unsafe = binary(addUnsafe, .{});
5449 try test_add_unsafe.testInts();
5450 try test_add_unsafe.testIntVectors();
5451 try test_add_unsafe.testFloats();
5452 try test_add_unsafe.testFloatVectors();
5453}
5454
5455inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5456 return lhs +% rhs;
5457}
5458test addWrap {
5459 const test_add_wrap = binary(addWrap, .{});
5460 try test_add_wrap.testInts();
5461 try test_add_wrap.testIntVectors();
5462}
5463
5464inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5465 @setRuntimeSafety(false);
5466 switch (@typeInfo(Scalar(Type))) {
5467 else => @compileError(@typeName(Type)),
5468 .int => |int| switch (int.signedness) {
5469 .signed => {},
5470 .unsigned => return @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs),
5471 },
5472 .float => {},
5473 }
5474 return @as(AddOneBit(Type), lhs) - rhs;
5475}
5476test subUnsafe {
5477 const test_sub_unsafe = binary(subUnsafe, .{});
5478 try test_sub_unsafe.testInts();
5479 try test_sub_unsafe.testIntVectors();
5480 try test_sub_unsafe.testFloats();
5481 try test_sub_unsafe.testFloatVectors();
5482}
5483
5484inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5485 return lhs -% rhs;
5486}
5487test subWrap {
5488 const test_sub_wrap = binary(subWrap, .{});
5489 try test_sub_wrap.testInts();
5490 try test_sub_wrap.testIntVectors();
5491}
5492
5493inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
5494 @setRuntimeSafety(false);
5495 return @as(DoubleBits(Type), lhs) * rhs;
5496}
5497test mulUnsafe {
5498 const test_mul_unsafe = binary(mulUnsafe, .{});
5499 try test_mul_unsafe.testInts();
5500 try test_mul_unsafe.testIntVectors();
5501}
5502
5503inline fn mulWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5504 return lhs *% rhs;
5505}
5506test mulWrap {
5507 const test_mul_wrap = binary(mulWrap, .{});
5508 try test_mul_wrap.testInts();
5509 try test_mul_wrap.testIntVectors();
5510}
5511
5512inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) {
5513 return lhs * rhs;
5514}
5515test multiply {
5516 const test_multiply = binary(multiply, .{});
5517 try test_multiply.testFloats();
5518 try test_multiply.testFloatVectors();
5519}
5520
5521inline fn divide(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) {
5522 return lhs / rhs;
5523}
5524test divide {
5525 const test_divide = binary(divide, .{ .compare = .approx });
5526 try test_divide.testFloats();
5527 try test_divide.testFloatVectors();
5528}
5529
5530inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divTrunc(lhs, rhs)) {
5531 return @divTrunc(lhs, rhs);
5532}
5533test divTrunc {
5534 const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int });
5535 try test_div_trunc.testInts();
5536 try test_div_trunc.testIntVectors();
5537 try test_div_trunc.testFloats();
5538 try test_div_trunc.testFloatVectors();
5539}
5540
5541inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divFloor(lhs, rhs)) {
5542 return @divFloor(lhs, rhs);
5543}
5544test divFloor {
5545 const test_div_floor = binary(divFloor, .{ .compare = .approx_int });
5546 try test_div_floor.testFloats();
5547 try test_div_floor.testFloatVectors();
5548}
5549
5550inline fn rem(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@rem(lhs, rhs)) {
5551 return @rem(lhs, rhs);
5552}
5553test rem {
5554 const test_rem = binary(rem, .{});
5555 try test_rem.testInts();
5556 try test_rem.testIntVectors();
5557 try test_rem.testFloats();
5558 try test_rem.testFloatVectors();
5559}
5560
5561inline fn mod(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mod(lhs, rhs)) {
5562 // workaround llvm backend bugs
5563 if (@inComptime()) {
5564 const scalarMod = struct {
5565 fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) {
5566 const scalar_rem = @rem(scalar_lhs, scalar_rhs);
5567 return if (scalar_rem == 0 or sign(scalar_rem) == sign(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs;
5568 }
5569 }.scalarMod;
5570 switch (@typeInfo(Type)) {
5571 else => return scalarMod(lhs, rhs),
5572 .vector => |info| {
5573 var res: Type = undefined;
5574 inline for (0..info.len) |i| res[i] = scalarMod(lhs[i], rhs[i]);
5575 return res;
5576 },
5577 }
5578 }
5579 return @mod(lhs, rhs);
5580}
5581test mod {
5582 const test_mod = binary(mod, .{});
5583 try test_mod.testFloats();
5584 try test_mod.testFloatVectors();
5585}
5586
5587inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type {
5588 return @max(lhs, rhs);
5589}
5590test max {
5591 const test_max = binary(max, .{});
5592 try test_max.testInts();
5593 try test_max.testIntVectors();
5594 try test_max.testFloats();
5595 try test_max.testFloatVectors();
5596}
5597
5598inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type {
5599 return @min(lhs, rhs);
5600}
5601test min {
5602 const test_min = binary(min, .{});
5603 try test_min.testInts();
5604 try test_min.testIntVectors();
5605 try test_min.testFloats();
5606 try test_min.testFloatVectors();
5607}
5608
5609inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) {
5610 return lhs == rhs;
5611}
5612test equal {
5613 const test_equal = binary(equal, .{});
5614 try test_equal.testInts();
5615 try test_equal.testFloats();
5616}
5617
5618inline fn notEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs != rhs) {
5619 return lhs != rhs;
5620}
5621test notEqual {
5622 const test_not_equal = binary(notEqual, .{});
5623 try test_not_equal.testInts();
5624 try test_not_equal.testFloats();
5625}
5626
5627inline fn lessThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs < rhs) {
5628 return lhs < rhs;
5629}
5630test lessThan {
5631 const test_less_than = binary(lessThan, .{});
5632 try test_less_than.testInts();
5633 try test_less_than.testFloats();
5634}
5635
5636inline fn lessThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs <= rhs) {
5637 return lhs <= rhs;
5638}
5639test lessThanOrEqual {
5640 const test_less_than_or_equal = binary(lessThanOrEqual, .{});
5641 try test_less_than_or_equal.testInts();
5642 try test_less_than_or_equal.testFloats();
5643}
5644
5645inline fn greaterThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs > rhs) {
5646 return lhs > rhs;
5647}
5648test greaterThan {
5649 const test_greater_than = binary(greaterThan, .{});
5650 try test_greater_than.testInts();
5651 try test_greater_than.testFloats();
5652}
5653
5654inline fn greaterThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs >= rhs) {
5655 return lhs >= rhs;
5656}
5657test greaterThanOrEqual {
5658 const test_greater_than_or_equal = binary(greaterThanOrEqual, .{});
5659 try test_greater_than_or_equal.testInts();
5660 try test_greater_than_or_equal.testFloats();
5661}
5662
5663inline fn bitAnd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs & rhs) {
5664 return lhs & rhs;
5665}
5666test bitAnd {
5667 const test_bit_and = binary(bitAnd, .{});
5668 try test_bit_and.testInts();
5669 try test_bit_and.testIntVectors();
5670}
5671
5672inline fn bitOr(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs | rhs) {
5673 return lhs | rhs;
5674}
5675test bitOr {
5676 const test_bit_or = binary(bitOr, .{});
5677 try test_bit_or.testInts();
5678 try test_bit_or.testIntVectors();
5679}
5680
5681inline fn shr(comptime Type: type, lhs: Type, rhs: Type) Type {
5682 const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs);
5683 const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5684 return lhs >> if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs;
5685}
5686test shr {
5687 const test_shr = binary(shr, .{});
5688 try test_shr.testInts();
5689}
5690
5691inline fn shrExact(comptime Type: type, lhs: Type, rhs: Type) Type {
5692 const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs);
5693 const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5694 const final_rhs = if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs;
5695 return @shrExact(lhs >> final_rhs << final_rhs, final_rhs);
5696}
5697test shrExact {
5698 const test_shr_exact = binary(shrExact, .{});
5699 try test_shr_exact.testInts();
5700}
5701
5702inline fn shl(comptime Type: type, lhs: Type, rhs: Type) Type {
5703 const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs);
5704 const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5705 return lhs << if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs;
5706}
5707test shl {
5708 const test_shl = binary(shl, .{});
5709 try test_shl.testInts();
5710}
5711
5712inline fn shlExact(comptime Type: type, lhs: Type, rhs: Type) Type {
5713 const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs);
5714 const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5715 const final_rhs = if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs;
5716 return @shlExact(lhs << final_rhs >> final_rhs, final_rhs);
5717}
5718test shlExact {
5719 const test_shl_exact = binary(shlExact, .{});
5720 try test_shl_exact.testInts();
5721}
5722
5723inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs ^ rhs) {
5724 return lhs ^ rhs;
5725}
5726test bitXor {
5727 const test_bit_xor = binary(bitXor, .{});
5728 try test_bit_xor.testInts();
5729 try test_bit_xor.testIntVectors();
5730}
5731
5732inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5733 if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636
5734 return @as(?Type, lhs) == rhs;
5735}
5736test optionalsEqual {
5737 const test_optionals_equal = binary(optionalsEqual, .{});
5738 try test_optionals_equal.testInts();
5739 try test_optionals_equal.testFloats();
5740}
5741
5742inline fn optionalsNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5743 if (@inComptime()) return lhs != rhs; // workaround https://github.com/ziglang/zig/issues/22636
5744 return lhs != @as(?Type, rhs);
5745}
5746test optionalsNotEqual {
5747 const test_optionals_not_equal = binary(optionalsNotEqual, .{});
5748 try test_optionals_not_equal.testInts();
5749 try test_optionals_not_equal.testFloats();
5750}
5751
5752inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) {
5753 return @mulAdd(Type, lhs, rhs, rhs);
5754}
5755test mulAdd {
5756 const test_mul_add = binary(mulAdd, .{ .compare = .approx });
5757 try test_mul_add.testFloats();
5758 try test_mul_add.testFloatVectors();
5759}
test/behavior/x86_64/build.zig+3-1
...@@ -116,8 +116,10 @@ pub fn build(b: *std.Build) void {...@@ -116,8 +116,10 @@ pub fn build(b: *std.Build) void {
116 const target = b.resolveTargetQuery(query);116 const target = b.resolveTargetQuery(query);
117 const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM");117 const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM");
118 for ([_][]const u8{118 for ([_][]const u8{
119 "math.zig",119 "binary.zig",
120 "cast.zig",
120 "mem.zig",121 "mem.zig",
122 "unary.zig",
121 }) |path| {123 }) |path| {
122 const test_mod = b.createModule(.{124 const test_mod = b.createModule(.{
123 .root_source_file = b.path(path),125 .root_source_file = b.path(path),
test/behavior/x86_64/cast.zig created+14565
...@@ -0,0 +1,14565 @@
1const checkExpected = math.checkExpected;
2const Compare = math.Compare;
3const fmax = math.fmax;
4const fmin = math.fmin;
5const Gpr = math.Gpr;
6const imax = math.imax;
7const imin = math.imin;
8const inf = math.inf;
9const Log2Int = math.Log2Int;
10const Log2IntCeil = math.Log2IntCeil;
11const math = @import("math.zig");
12const nan = math.nan;
13const next = math.next;
14const Scalar = math.Scalar;
15const splat = math.splat;
16const Sse = math.Sse;
17const tmin = math.tmin;
18
19fn cast(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type {
20 return struct {
21 // noinline so that `mem_arg` is on the stack
22 noinline fn testArgKinds(
23 _: Gpr,
24 _: Gpr,
25 _: Gpr,
26 _: Gpr,
27 _: Gpr,
28 _: Gpr,
29 _: Gpr,
30 _: Gpr,
31 _: Sse,
32 _: Sse,
33 _: Sse,
34 _: Sse,
35 _: Sse,
36 _: Sse,
37 _: Sse,
38 _: Sse,
39 comptime Result: type,
40 comptime Type: type,
41 comptime imm_arg: Type,
42 mem_arg: Type,
43 ) !void {
44 const expected = comptime op(Result, Type, imm_arg, imm_arg);
45 var reg_arg = mem_arg;
46 _ = .{&reg_arg};
47 try checkExpected(expected, op(Result, Type, reg_arg, imm_arg), opts.compare);
48 try checkExpected(expected, op(Result, Type, mem_arg, imm_arg), opts.compare);
49 try checkExpected(expected, op(Result, Type, imm_arg, imm_arg), opts.compare);
50 }
51 // noinline for a more helpful stack trace
52 noinline fn testArgs(comptime Result: type, comptime Type: type, comptime imm_arg: Type) !void {
53 try testArgKinds(
54 undefined,
55 undefined,
56 undefined,
57 undefined,
58 undefined,
59 undefined,
60 undefined,
61 undefined,
62 undefined,
63 undefined,
64 undefined,
65 undefined,
66 undefined,
67 undefined,
68 undefined,
69 undefined,
70 Result,
71 Type,
72 imm_arg,
73 imm_arg,
74 );
75 }
76 fn testSameSignednessInts() !void {
77 try testArgs(i8, i1, -1);
78 try testArgs(i8, i1, 0);
79 try testArgs(i16, i1, -1);
80 try testArgs(i16, i1, 0);
81 try testArgs(i32, i1, -1);
82 try testArgs(i32, i1, 0);
83 try testArgs(i64, i1, -1);
84 try testArgs(i64, i1, 0);
85 try testArgs(i128, i1, -1);
86 try testArgs(i128, i1, 0);
87 try testArgs(i256, i1, -1);
88 try testArgs(i256, i1, 0);
89 try testArgs(i512, i1, -1);
90 try testArgs(i512, i1, 0);
91 try testArgs(i1024, i1, -1);
92 try testArgs(i1024, i1, 0);
93 try testArgs(u8, u1, 0);
94 try testArgs(u8, u1, 1 << 0);
95 try testArgs(u16, u1, 0);
96 try testArgs(u16, u1, 1 << 0);
97 try testArgs(u32, u1, 0);
98 try testArgs(u32, u1, 1 << 0);
99 try testArgs(u64, u1, 0);
100 try testArgs(u64, u1, 1 << 0);
101 try testArgs(u128, u1, 0);
102 try testArgs(u128, u1, 1 << 0);
103 try testArgs(u256, u1, 0);
104 try testArgs(u256, u1, 1 << 0);
105 try testArgs(u512, u1, 0);
106 try testArgs(u512, u1, 1 << 0);
107 try testArgs(u1024, u1, 0);
108 try testArgs(u1024, u1, 1 << 0);
109
110 try testArgs(i8, i2, -1 << 1);
111 try testArgs(i8, i2, -1);
112 try testArgs(i8, i2, 0);
113 try testArgs(i16, i2, -1 << 1);
114 try testArgs(i16, i2, -1);
115 try testArgs(i16, i2, 0);
116 try testArgs(i32, i2, -1 << 1);
117 try testArgs(i32, i2, -1);
118 try testArgs(i32, i2, 0);
119 try testArgs(i64, i2, -1 << 1);
120 try testArgs(i64, i2, -1);
121 try testArgs(i64, i2, 0);
122 try testArgs(i128, i2, -1 << 1);
123 try testArgs(i128, i2, -1);
124 try testArgs(i128, i2, 0);
125 try testArgs(i256, i2, -1 << 1);
126 try testArgs(i256, i2, -1);
127 try testArgs(i256, i2, 0);
128 try testArgs(i512, i2, -1 << 1);
129 try testArgs(i512, i2, -1);
130 try testArgs(i512, i2, 0);
131 try testArgs(i1024, i2, -1 << 1);
132 try testArgs(i1024, i2, -1);
133 try testArgs(i1024, i2, 0);
134 try testArgs(u8, u2, 0);
135 try testArgs(u8, u2, 1 << 0);
136 try testArgs(u8, u2, 1 << 1);
137 try testArgs(u16, u2, 0);
138 try testArgs(u16, u2, 1 << 0);
139 try testArgs(u16, u2, 1 << 1);
140 try testArgs(u32, u2, 0);
141 try testArgs(u32, u2, 1 << 0);
142 try testArgs(u32, u2, 1 << 1);
143 try testArgs(u64, u2, 0);
144 try testArgs(u64, u2, 1 << 0);
145 try testArgs(u64, u2, 1 << 1);
146 try testArgs(u128, u2, 0);
147 try testArgs(u128, u2, 1 << 0);
148 try testArgs(u128, u2, 1 << 1);
149 try testArgs(u256, u2, 0);
150 try testArgs(u256, u2, 1 << 0);
151 try testArgs(u256, u2, 1 << 1);
152 try testArgs(u512, u2, 0);
153 try testArgs(u512, u2, 1 << 0);
154 try testArgs(u512, u2, 1 << 1);
155 try testArgs(u1024, u2, 0);
156 try testArgs(u1024, u2, 1 << 0);
157 try testArgs(u1024, u2, 1 << 1);
158
159 try testArgs(i8, i3, -1 << 2);
160 try testArgs(i8, i3, -1);
161 try testArgs(i8, i3, 0);
162 try testArgs(i16, i3, -1 << 2);
163 try testArgs(i16, i3, -1);
164 try testArgs(i16, i3, 0);
165 try testArgs(i32, i3, -1 << 2);
166 try testArgs(i32, i3, -1);
167 try testArgs(i32, i3, 0);
168 try testArgs(i64, i3, -1 << 2);
169 try testArgs(i64, i3, -1);
170 try testArgs(i64, i3, 0);
171 try testArgs(i128, i3, -1 << 2);
172 try testArgs(i128, i3, -1);
173 try testArgs(i128, i3, 0);
174 try testArgs(i256, i3, -1 << 2);
175 try testArgs(i256, i3, -1);
176 try testArgs(i256, i3, 0);
177 try testArgs(i512, i3, -1 << 2);
178 try testArgs(i512, i3, -1);
179 try testArgs(i512, i3, 0);
180 try testArgs(i1024, i3, -1 << 2);
181 try testArgs(i1024, i3, -1);
182 try testArgs(i1024, i3, 0);
183 try testArgs(u8, u3, 0);
184 try testArgs(u8, u3, 1 << 0);
185 try testArgs(u8, u3, 1 << 2);
186 try testArgs(u16, u3, 0);
187 try testArgs(u16, u3, 1 << 0);
188 try testArgs(u16, u3, 1 << 2);
189 try testArgs(u32, u3, 0);
190 try testArgs(u32, u3, 1 << 0);
191 try testArgs(u32, u3, 1 << 2);
192 try testArgs(u64, u3, 0);
193 try testArgs(u64, u3, 1 << 0);
194 try testArgs(u64, u3, 1 << 2);
195 try testArgs(u128, u3, 0);
196 try testArgs(u128, u3, 1 << 0);
197 try testArgs(u128, u3, 1 << 2);
198 try testArgs(u256, u3, 0);
199 try testArgs(u256, u3, 1 << 0);
200 try testArgs(u256, u3, 1 << 2);
201 try testArgs(u512, u3, 0);
202 try testArgs(u512, u3, 1 << 0);
203 try testArgs(u512, u3, 1 << 2);
204 try testArgs(u1024, u3, 0);
205 try testArgs(u1024, u3, 1 << 0);
206 try testArgs(u1024, u3, 1 << 2);
207
208 try testArgs(i8, i4, -1 << 3);
209 try testArgs(i8, i4, -1);
210 try testArgs(i8, i4, 0);
211 try testArgs(i16, i4, -1 << 3);
212 try testArgs(i16, i4, -1);
213 try testArgs(i16, i4, 0);
214 try testArgs(i32, i4, -1 << 3);
215 try testArgs(i32, i4, -1);
216 try testArgs(i32, i4, 0);
217 try testArgs(i64, i4, -1 << 3);
218 try testArgs(i64, i4, -1);
219 try testArgs(i64, i4, 0);
220 try testArgs(i128, i4, -1 << 3);
221 try testArgs(i128, i4, -1);
222 try testArgs(i128, i4, 0);
223 try testArgs(i256, i4, -1 << 3);
224 try testArgs(i256, i4, -1);
225 try testArgs(i256, i4, 0);
226 try testArgs(i512, i4, -1 << 3);
227 try testArgs(i512, i4, -1);
228 try testArgs(i512, i4, 0);
229 try testArgs(i1024, i4, -1 << 3);
230 try testArgs(i1024, i4, -1);
231 try testArgs(i1024, i4, 0);
232 try testArgs(u8, u4, 0);
233 try testArgs(u8, u4, 1 << 0);
234 try testArgs(u8, u4, 1 << 3);
235 try testArgs(u16, u4, 0);
236 try testArgs(u16, u4, 1 << 0);
237 try testArgs(u16, u4, 1 << 3);
238 try testArgs(u32, u4, 0);
239 try testArgs(u32, u4, 1 << 0);
240 try testArgs(u32, u4, 1 << 3);
241 try testArgs(u64, u4, 0);
242 try testArgs(u64, u4, 1 << 0);
243 try testArgs(u64, u4, 1 << 3);
244 try testArgs(u128, u4, 0);
245 try testArgs(u128, u4, 1 << 0);
246 try testArgs(u128, u4, 1 << 3);
247 try testArgs(u256, u4, 0);
248 try testArgs(u256, u4, 1 << 0);
249 try testArgs(u256, u4, 1 << 3);
250 try testArgs(u512, u4, 0);
251 try testArgs(u512, u4, 1 << 0);
252 try testArgs(u512, u4, 1 << 3);
253 try testArgs(u1024, u4, 0);
254 try testArgs(u1024, u4, 1 << 0);
255 try testArgs(u1024, u4, 1 << 3);
256
257 try testArgs(i8, i5, -1 << 4);
258 try testArgs(i8, i5, -1);
259 try testArgs(i8, i5, 0);
260 try testArgs(i16, i5, -1 << 4);
261 try testArgs(i16, i5, -1);
262 try testArgs(i16, i5, 0);
263 try testArgs(i32, i5, -1 << 4);
264 try testArgs(i32, i5, -1);
265 try testArgs(i32, i5, 0);
266 try testArgs(i64, i5, -1 << 4);
267 try testArgs(i64, i5, -1);
268 try testArgs(i64, i5, 0);
269 try testArgs(i128, i5, -1 << 4);
270 try testArgs(i128, i5, -1);
271 try testArgs(i128, i5, 0);
272 try testArgs(i256, i5, -1 << 4);
273 try testArgs(i256, i5, -1);
274 try testArgs(i256, i5, 0);
275 try testArgs(i512, i5, -1 << 4);
276 try testArgs(i512, i5, -1);
277 try testArgs(i512, i5, 0);
278 try testArgs(i1024, i5, -1 << 4);
279 try testArgs(i1024, i5, -1);
280 try testArgs(i1024, i5, 0);
281 try testArgs(u8, u5, 0);
282 try testArgs(u8, u5, 1 << 0);
283 try testArgs(u8, u5, 1 << 4);
284 try testArgs(u16, u5, 0);
285 try testArgs(u16, u5, 1 << 0);
286 try testArgs(u16, u5, 1 << 4);
287 try testArgs(u32, u5, 0);
288 try testArgs(u32, u5, 1 << 0);
289 try testArgs(u32, u5, 1 << 4);
290 try testArgs(u64, u5, 0);
291 try testArgs(u64, u5, 1 << 0);
292 try testArgs(u64, u5, 1 << 4);
293 try testArgs(u128, u5, 0);
294 try testArgs(u128, u5, 1 << 0);
295 try testArgs(u128, u5, 1 << 4);
296 try testArgs(u256, u5, 0);
297 try testArgs(u256, u5, 1 << 0);
298 try testArgs(u256, u5, 1 << 4);
299 try testArgs(u512, u5, 0);
300 try testArgs(u512, u5, 1 << 0);
301 try testArgs(u512, u5, 1 << 4);
302 try testArgs(u1024, u5, 0);
303 try testArgs(u1024, u5, 1 << 0);
304 try testArgs(u1024, u5, 1 << 4);
305
306 try testArgs(i8, i7, -1 << 6);
307 try testArgs(i8, i7, -1);
308 try testArgs(i8, i7, 0);
309 try testArgs(i16, i7, -1 << 6);
310 try testArgs(i16, i7, -1);
311 try testArgs(i16, i7, 0);
312 try testArgs(i32, i7, -1 << 6);
313 try testArgs(i32, i7, -1);
314 try testArgs(i32, i7, 0);
315 try testArgs(i64, i7, -1 << 6);
316 try testArgs(i64, i7, -1);
317 try testArgs(i64, i7, 0);
318 try testArgs(i128, i7, -1 << 6);
319 try testArgs(i128, i7, -1);
320 try testArgs(i128, i7, 0);
321 try testArgs(i256, i7, -1 << 6);
322 try testArgs(i256, i7, -1);
323 try testArgs(i256, i7, 0);
324 try testArgs(i512, i7, -1 << 6);
325 try testArgs(i512, i7, -1);
326 try testArgs(i512, i7, 0);
327 try testArgs(i1024, i7, -1 << 6);
328 try testArgs(i1024, i7, -1);
329 try testArgs(i1024, i7, 0);
330 try testArgs(u8, u7, 0);
331 try testArgs(u8, u7, 1 << 0);
332 try testArgs(u8, u7, 1 << 6);
333 try testArgs(u16, u7, 0);
334 try testArgs(u16, u7, 1 << 0);
335 try testArgs(u16, u7, 1 << 6);
336 try testArgs(u32, u7, 0);
337 try testArgs(u32, u7, 1 << 0);
338 try testArgs(u32, u7, 1 << 6);
339 try testArgs(u64, u7, 0);
340 try testArgs(u64, u7, 1 << 0);
341 try testArgs(u64, u7, 1 << 6);
342 try testArgs(u128, u7, 0);
343 try testArgs(u128, u7, 1 << 0);
344 try testArgs(u128, u7, 1 << 6);
345 try testArgs(u256, u7, 0);
346 try testArgs(u256, u7, 1 << 0);
347 try testArgs(u256, u7, 1 << 6);
348 try testArgs(u512, u7, 0);
349 try testArgs(u512, u7, 1 << 0);
350 try testArgs(u512, u7, 1 << 6);
351 try testArgs(u1024, u7, 0);
352 try testArgs(u1024, u7, 1 << 0);
353 try testArgs(u1024, u7, 1 << 6);
354
355 try testArgs(i8, i8, -1 << 7);
356 try testArgs(i8, i8, -1);
357 try testArgs(i8, i8, 0);
358 try testArgs(i16, i8, -1 << 7);
359 try testArgs(i16, i8, -1);
360 try testArgs(i16, i8, 0);
361 try testArgs(i32, i8, -1 << 7);
362 try testArgs(i32, i8, -1);
363 try testArgs(i32, i8, 0);
364 try testArgs(i64, i8, -1 << 7);
365 try testArgs(i64, i8, -1);
366 try testArgs(i64, i8, 0);
367 try testArgs(i128, i8, -1 << 7);
368 try testArgs(i128, i8, -1);
369 try testArgs(i128, i8, 0);
370 try testArgs(i256, i8, -1 << 7);
371 try testArgs(i256, i8, -1);
372 try testArgs(i256, i8, 0);
373 try testArgs(i512, i8, -1 << 7);
374 try testArgs(i512, i8, -1);
375 try testArgs(i512, i8, 0);
376 try testArgs(i1024, i8, -1 << 7);
377 try testArgs(i1024, i8, -1);
378 try testArgs(i1024, i8, 0);
379 try testArgs(u8, u8, 0);
380 try testArgs(u8, u8, 1 << 0);
381 try testArgs(u8, u8, 1 << 7);
382 try testArgs(u16, u8, 0);
383 try testArgs(u16, u8, 1 << 0);
384 try testArgs(u16, u8, 1 << 7);
385 try testArgs(u32, u8, 0);
386 try testArgs(u32, u8, 1 << 0);
387 try testArgs(u32, u8, 1 << 7);
388 try testArgs(u64, u8, 0);
389 try testArgs(u64, u8, 1 << 0);
390 try testArgs(u64, u8, 1 << 7);
391 try testArgs(u128, u8, 0);
392 try testArgs(u128, u8, 1 << 0);
393 try testArgs(u128, u8, 1 << 7);
394 try testArgs(u256, u8, 0);
395 try testArgs(u256, u8, 1 << 0);
396 try testArgs(u256, u8, 1 << 7);
397 try testArgs(u512, u8, 0);
398 try testArgs(u512, u8, 1 << 0);
399 try testArgs(u512, u8, 1 << 7);
400 try testArgs(u1024, u8, 0);
401 try testArgs(u1024, u8, 1 << 0);
402 try testArgs(u1024, u8, 1 << 7);
403
404 try testArgs(i8, i9, -1 << 8);
405 try testArgs(i8, i9, -1);
406 try testArgs(i8, i9, 0);
407 try testArgs(i16, i9, -1 << 8);
408 try testArgs(i16, i9, -1);
409 try testArgs(i16, i9, 0);
410 try testArgs(i32, i9, -1 << 8);
411 try testArgs(i32, i9, -1);
412 try testArgs(i32, i9, 0);
413 try testArgs(i64, i9, -1 << 8);
414 try testArgs(i64, i9, -1);
415 try testArgs(i64, i9, 0);
416 try testArgs(i128, i9, -1 << 8);
417 try testArgs(i128, i9, -1);
418 try testArgs(i128, i9, 0);
419 try testArgs(i256, i9, -1 << 8);
420 try testArgs(i256, i9, -1);
421 try testArgs(i256, i9, 0);
422 try testArgs(i512, i9, -1 << 8);
423 try testArgs(i512, i9, -1);
424 try testArgs(i512, i9, 0);
425 try testArgs(i1024, i9, -1 << 8);
426 try testArgs(i1024, i9, -1);
427 try testArgs(i1024, i9, 0);
428 try testArgs(u8, u9, 0);
429 try testArgs(u8, u9, 1 << 0);
430 try testArgs(u8, u9, 1 << 8);
431 try testArgs(u16, u9, 0);
432 try testArgs(u16, u9, 1 << 0);
433 try testArgs(u16, u9, 1 << 8);
434 try testArgs(u32, u9, 0);
435 try testArgs(u32, u9, 1 << 0);
436 try testArgs(u32, u9, 1 << 8);
437 try testArgs(u64, u9, 0);
438 try testArgs(u64, u9, 1 << 0);
439 try testArgs(u64, u9, 1 << 8);
440 try testArgs(u128, u9, 0);
441 try testArgs(u128, u9, 1 << 0);
442 try testArgs(u128, u9, 1 << 8);
443 try testArgs(u256, u9, 0);
444 try testArgs(u256, u9, 1 << 0);
445 try testArgs(u256, u9, 1 << 8);
446 try testArgs(u512, u9, 0);
447 try testArgs(u512, u9, 1 << 0);
448 try testArgs(u512, u9, 1 << 8);
449 try testArgs(u1024, u9, 0);
450 try testArgs(u1024, u9, 1 << 0);
451 try testArgs(u1024, u9, 1 << 8);
452
453 try testArgs(i8, i15, -1 << 14);
454 try testArgs(i8, i15, -1);
455 try testArgs(i8, i15, 0);
456 try testArgs(i16, i15, -1 << 14);
457 try testArgs(i16, i15, -1);
458 try testArgs(i16, i15, 0);
459 try testArgs(i32, i15, -1 << 14);
460 try testArgs(i32, i15, -1);
461 try testArgs(i32, i15, 0);
462 try testArgs(i64, i15, -1 << 14);
463 try testArgs(i64, i15, -1);
464 try testArgs(i64, i15, 0);
465 try testArgs(i128, i15, -1 << 14);
466 try testArgs(i128, i15, -1);
467 try testArgs(i128, i15, 0);
468 try testArgs(i256, i15, -1 << 14);
469 try testArgs(i256, i15, -1);
470 try testArgs(i256, i15, 0);
471 try testArgs(i512, i15, -1 << 14);
472 try testArgs(i512, i15, -1);
473 try testArgs(i512, i15, 0);
474 try testArgs(i1024, i15, -1 << 14);
475 try testArgs(i1024, i15, -1);
476 try testArgs(i1024, i15, 0);
477 try testArgs(u8, u15, 0);
478 try testArgs(u8, u15, 1 << 0);
479 try testArgs(u8, u15, 1 << 14);
480 try testArgs(u16, u15, 0);
481 try testArgs(u16, u15, 1 << 0);
482 try testArgs(u16, u15, 1 << 14);
483 try testArgs(u32, u15, 0);
484 try testArgs(u32, u15, 1 << 0);
485 try testArgs(u32, u15, 1 << 14);
486 try testArgs(u64, u15, 0);
487 try testArgs(u64, u15, 1 << 0);
488 try testArgs(u64, u15, 1 << 14);
489 try testArgs(u128, u15, 0);
490 try testArgs(u128, u15, 1 << 0);
491 try testArgs(u128, u15, 1 << 14);
492 try testArgs(u256, u15, 0);
493 try testArgs(u256, u15, 1 << 0);
494 try testArgs(u256, u15, 1 << 14);
495 try testArgs(u512, u15, 0);
496 try testArgs(u512, u15, 1 << 0);
497 try testArgs(u512, u15, 1 << 14);
498 try testArgs(u1024, u15, 0);
499 try testArgs(u1024, u15, 1 << 0);
500 try testArgs(u1024, u15, 1 << 14);
501
502 try testArgs(i8, i16, -1 << 15);
503 try testArgs(i8, i16, -1);
504 try testArgs(i8, i16, 0);
505 try testArgs(i16, i16, -1 << 15);
506 try testArgs(i16, i16, -1);
507 try testArgs(i16, i16, 0);
508 try testArgs(i32, i16, -1 << 15);
509 try testArgs(i32, i16, -1);
510 try testArgs(i32, i16, 0);
511 try testArgs(i64, i16, -1 << 15);
512 try testArgs(i64, i16, -1);
513 try testArgs(i64, i16, 0);
514 try testArgs(i128, i16, -1 << 15);
515 try testArgs(i128, i16, -1);
516 try testArgs(i128, i16, 0);
517 try testArgs(i256, i16, -1 << 15);
518 try testArgs(i256, i16, -1);
519 try testArgs(i256, i16, 0);
520 try testArgs(i512, i16, -1 << 15);
521 try testArgs(i512, i16, -1);
522 try testArgs(i512, i16, 0);
523 try testArgs(i1024, i16, -1 << 15);
524 try testArgs(i1024, i16, -1);
525 try testArgs(i1024, i16, 0);
526 try testArgs(u8, u16, 0);
527 try testArgs(u8, u16, 1 << 0);
528 try testArgs(u8, u16, 1 << 15);
529 try testArgs(u16, u16, 0);
530 try testArgs(u16, u16, 1 << 0);
531 try testArgs(u16, u16, 1 << 15);
532 try testArgs(u32, u16, 0);
533 try testArgs(u32, u16, 1 << 0);
534 try testArgs(u32, u16, 1 << 15);
535 try testArgs(u64, u16, 0);
536 try testArgs(u64, u16, 1 << 0);
537 try testArgs(u64, u16, 1 << 15);
538 try testArgs(u128, u16, 0);
539 try testArgs(u128, u16, 1 << 0);
540 try testArgs(u128, u16, 1 << 15);
541 try testArgs(u256, u16, 0);
542 try testArgs(u256, u16, 1 << 0);
543 try testArgs(u256, u16, 1 << 15);
544 try testArgs(u512, u16, 0);
545 try testArgs(u512, u16, 1 << 0);
546 try testArgs(u512, u16, 1 << 15);
547 try testArgs(u1024, u16, 0);
548 try testArgs(u1024, u16, 1 << 0);
549 try testArgs(u1024, u16, 1 << 15);
550
551 try testArgs(i8, i17, -1 << 16);
552 try testArgs(i8, i17, -1);
553 try testArgs(i8, i17, 0);
554 try testArgs(i16, i17, -1 << 16);
555 try testArgs(i16, i17, -1);
556 try testArgs(i16, i17, 0);
557 try testArgs(i32, i17, -1 << 16);
558 try testArgs(i32, i17, -1);
559 try testArgs(i32, i17, 0);
560 try testArgs(i64, i17, -1 << 16);
561 try testArgs(i64, i17, -1);
562 try testArgs(i64, i17, 0);
563 try testArgs(i128, i17, -1 << 16);
564 try testArgs(i128, i17, -1);
565 try testArgs(i128, i17, 0);
566 try testArgs(i256, i17, -1 << 16);
567 try testArgs(i256, i17, -1);
568 try testArgs(i256, i17, 0);
569 try testArgs(i512, i17, -1 << 16);
570 try testArgs(i512, i17, -1);
571 try testArgs(i512, i17, 0);
572 try testArgs(i1024, i17, -1 << 16);
573 try testArgs(i1024, i17, -1);
574 try testArgs(i1024, i17, 0);
575 try testArgs(u8, u17, 0);
576 try testArgs(u8, u17, 1 << 0);
577 try testArgs(u8, u17, 1 << 16);
578 try testArgs(u16, u17, 0);
579 try testArgs(u16, u17, 1 << 0);
580 try testArgs(u16, u17, 1 << 16);
581 try testArgs(u32, u17, 0);
582 try testArgs(u32, u17, 1 << 0);
583 try testArgs(u32, u17, 1 << 16);
584 try testArgs(u64, u17, 0);
585 try testArgs(u64, u17, 1 << 0);
586 try testArgs(u64, u17, 1 << 16);
587 try testArgs(u128, u17, 0);
588 try testArgs(u128, u17, 1 << 0);
589 try testArgs(u128, u17, 1 << 16);
590 try testArgs(u256, u17, 0);
591 try testArgs(u256, u17, 1 << 0);
592 try testArgs(u256, u17, 1 << 16);
593 try testArgs(u512, u17, 0);
594 try testArgs(u512, u17, 1 << 0);
595 try testArgs(u512, u17, 1 << 16);
596 try testArgs(u1024, u17, 0);
597 try testArgs(u1024, u17, 1 << 0);
598 try testArgs(u1024, u17, 1 << 16);
599
600 try testArgs(i8, i31, -1 << 30);
601 try testArgs(i8, i31, -1);
602 try testArgs(i8, i31, 0);
603 try testArgs(i16, i31, -1 << 30);
604 try testArgs(i16, i31, -1);
605 try testArgs(i16, i31, 0);
606 try testArgs(i32, i31, -1 << 30);
607 try testArgs(i32, i31, -1);
608 try testArgs(i32, i31, 0);
609 try testArgs(i64, i31, -1 << 30);
610 try testArgs(i64, i31, -1);
611 try testArgs(i64, i31, 0);
612 try testArgs(i128, i31, -1 << 30);
613 try testArgs(i128, i31, -1);
614 try testArgs(i128, i31, 0);
615 try testArgs(i256, i31, -1 << 30);
616 try testArgs(i256, i31, -1);
617 try testArgs(i256, i31, 0);
618 try testArgs(i512, i31, -1 << 30);
619 try testArgs(i512, i31, -1);
620 try testArgs(i512, i31, 0);
621 try testArgs(i1024, i31, -1 << 30);
622 try testArgs(i1024, i31, -1);
623 try testArgs(i1024, i31, 0);
624 try testArgs(u8, u31, 0);
625 try testArgs(u8, u31, 1 << 0);
626 try testArgs(u8, u31, 1 << 30);
627 try testArgs(u16, u31, 0);
628 try testArgs(u16, u31, 1 << 0);
629 try testArgs(u16, u31, 1 << 30);
630 try testArgs(u32, u31, 0);
631 try testArgs(u32, u31, 1 << 0);
632 try testArgs(u32, u31, 1 << 30);
633 try testArgs(u64, u31, 0);
634 try testArgs(u64, u31, 1 << 0);
635 try testArgs(u64, u31, 1 << 30);
636 try testArgs(u128, u31, 0);
637 try testArgs(u128, u31, 1 << 0);
638 try testArgs(u128, u31, 1 << 30);
639 try testArgs(u256, u31, 0);
640 try testArgs(u256, u31, 1 << 0);
641 try testArgs(u256, u31, 1 << 30);
642 try testArgs(u512, u31, 0);
643 try testArgs(u512, u31, 1 << 0);
644 try testArgs(u512, u31, 1 << 30);
645 try testArgs(u1024, u31, 0);
646 try testArgs(u1024, u31, 1 << 0);
647 try testArgs(u1024, u31, 1 << 30);
648
649 try testArgs(i8, i32, -1 << 31);
650 try testArgs(i8, i32, -1);
651 try testArgs(i8, i32, 0);
652 try testArgs(i16, i32, -1 << 31);
653 try testArgs(i16, i32, -1);
654 try testArgs(i16, i32, 0);
655 try testArgs(i32, i32, -1 << 31);
656 try testArgs(i32, i32, -1);
657 try testArgs(i32, i32, 0);
658 try testArgs(i64, i32, -1 << 31);
659 try testArgs(i64, i32, -1);
660 try testArgs(i64, i32, 0);
661 try testArgs(i128, i32, -1 << 31);
662 try testArgs(i128, i32, -1);
663 try testArgs(i128, i32, 0);
664 try testArgs(i256, i32, -1 << 31);
665 try testArgs(i256, i32, -1);
666 try testArgs(i256, i32, 0);
667 try testArgs(i512, i32, -1 << 31);
668 try testArgs(i512, i32, -1);
669 try testArgs(i512, i32, 0);
670 try testArgs(i1024, i32, -1 << 31);
671 try testArgs(i1024, i32, -1);
672 try testArgs(i1024, i32, 0);
673 try testArgs(u8, u32, 0);
674 try testArgs(u8, u32, 1 << 0);
675 try testArgs(u8, u32, 1 << 31);
676 try testArgs(u16, u32, 0);
677 try testArgs(u16, u32, 1 << 0);
678 try testArgs(u16, u32, 1 << 31);
679 try testArgs(u32, u32, 0);
680 try testArgs(u32, u32, 1 << 0);
681 try testArgs(u32, u32, 1 << 31);
682 try testArgs(u64, u32, 0);
683 try testArgs(u64, u32, 1 << 0);
684 try testArgs(u64, u32, 1 << 31);
685 try testArgs(u128, u32, 0);
686 try testArgs(u128, u32, 1 << 0);
687 try testArgs(u128, u32, 1 << 31);
688 try testArgs(u256, u32, 0);
689 try testArgs(u256, u32, 1 << 0);
690 try testArgs(u256, u32, 1 << 31);
691 try testArgs(u512, u32, 0);
692 try testArgs(u512, u32, 1 << 0);
693 try testArgs(u512, u32, 1 << 31);
694 try testArgs(u1024, u32, 0);
695 try testArgs(u1024, u32, 1 << 0);
696 try testArgs(u1024, u32, 1 << 31);
697
698 try testArgs(i8, i33, -1 << 32);
699 try testArgs(i8, i33, -1);
700 try testArgs(i8, i33, 0);
701 try testArgs(i16, i33, -1 << 32);
702 try testArgs(i16, i33, -1);
703 try testArgs(i16, i33, 0);
704 try testArgs(i32, i33, -1 << 32);
705 try testArgs(i32, i33, -1);
706 try testArgs(i32, i33, 0);
707 try testArgs(i64, i33, -1 << 32);
708 try testArgs(i64, i33, -1);
709 try testArgs(i64, i33, 0);
710 try testArgs(i128, i33, -1 << 32);
711 try testArgs(i128, i33, -1);
712 try testArgs(i128, i33, 0);
713 try testArgs(i256, i33, -1 << 32);
714 try testArgs(i256, i33, -1);
715 try testArgs(i256, i33, 0);
716 try testArgs(i512, i33, -1 << 32);
717 try testArgs(i512, i33, -1);
718 try testArgs(i512, i33, 0);
719 try testArgs(i1024, i33, -1 << 32);
720 try testArgs(i1024, i33, -1);
721 try testArgs(i1024, i33, 0);
722 try testArgs(u8, u33, 0);
723 try testArgs(u8, u33, 1 << 0);
724 try testArgs(u8, u33, 1 << 32);
725 try testArgs(u16, u33, 0);
726 try testArgs(u16, u33, 1 << 0);
727 try testArgs(u16, u33, 1 << 32);
728 try testArgs(u32, u33, 0);
729 try testArgs(u32, u33, 1 << 0);
730 try testArgs(u32, u33, 1 << 32);
731 try testArgs(u64, u33, 0);
732 try testArgs(u64, u33, 1 << 0);
733 try testArgs(u64, u33, 1 << 32);
734 try testArgs(u128, u33, 0);
735 try testArgs(u128, u33, 1 << 0);
736 try testArgs(u128, u33, 1 << 32);
737 try testArgs(u256, u33, 0);
738 try testArgs(u256, u33, 1 << 0);
739 try testArgs(u256, u33, 1 << 32);
740 try testArgs(u512, u33, 0);
741 try testArgs(u512, u33, 1 << 0);
742 try testArgs(u512, u33, 1 << 32);
743 try testArgs(u1024, u33, 0);
744 try testArgs(u1024, u33, 1 << 0);
745 try testArgs(u1024, u33, 1 << 32);
746
747 try testArgs(i8, i63, -1 << 62);
748 try testArgs(i8, i63, -1);
749 try testArgs(i8, i63, 0);
750 try testArgs(i16, i63, -1 << 62);
751 try testArgs(i16, i63, -1);
752 try testArgs(i16, i63, 0);
753 try testArgs(i32, i63, -1 << 62);
754 try testArgs(i32, i63, -1);
755 try testArgs(i32, i63, 0);
756 try testArgs(i64, i63, -1 << 62);
757 try testArgs(i64, i63, -1);
758 try testArgs(i64, i63, 0);
759 try testArgs(i128, i63, -1 << 62);
760 try testArgs(i128, i63, -1);
761 try testArgs(i128, i63, 0);
762 try testArgs(i256, i63, -1 << 62);
763 try testArgs(i256, i63, -1);
764 try testArgs(i256, i63, 0);
765 try testArgs(i512, i63, -1 << 62);
766 try testArgs(i512, i63, -1);
767 try testArgs(i512, i63, 0);
768 try testArgs(i1024, i63, -1 << 62);
769 try testArgs(i1024, i63, -1);
770 try testArgs(i1024, i63, 0);
771 try testArgs(u8, u63, 0);
772 try testArgs(u8, u63, 1 << 0);
773 try testArgs(u8, u63, 1 << 62);
774 try testArgs(u16, u63, 0);
775 try testArgs(u16, u63, 1 << 0);
776 try testArgs(u16, u63, 1 << 62);
777 try testArgs(u32, u63, 0);
778 try testArgs(u32, u63, 1 << 0);
779 try testArgs(u32, u63, 1 << 62);
780 try testArgs(u64, u63, 0);
781 try testArgs(u64, u63, 1 << 0);
782 try testArgs(u64, u63, 1 << 62);
783 try testArgs(u128, u63, 0);
784 try testArgs(u128, u63, 1 << 0);
785 try testArgs(u128, u63, 1 << 62);
786 try testArgs(u256, u63, 0);
787 try testArgs(u256, u63, 1 << 0);
788 try testArgs(u256, u63, 1 << 62);
789 try testArgs(u512, u63, 0);
790 try testArgs(u512, u63, 1 << 0);
791 try testArgs(u512, u63, 1 << 62);
792 try testArgs(u1024, u63, 0);
793 try testArgs(u1024, u63, 1 << 0);
794 try testArgs(u1024, u63, 1 << 62);
795
796 try testArgs(i8, i64, -1 << 63);
797 try testArgs(i8, i64, -1);
798 try testArgs(i8, i64, 0);
799 try testArgs(i16, i64, -1 << 63);
800 try testArgs(i16, i64, -1);
801 try testArgs(i16, i64, 0);
802 try testArgs(i32, i64, -1 << 63);
803 try testArgs(i32, i64, -1);
804 try testArgs(i32, i64, 0);
805 try testArgs(i64, i64, -1 << 63);
806 try testArgs(i64, i64, -1);
807 try testArgs(i64, i64, 0);
808 try testArgs(i128, i64, -1 << 63);
809 try testArgs(i128, i64, -1);
810 try testArgs(i128, i64, 0);
811 try testArgs(i256, i64, -1 << 63);
812 try testArgs(i256, i64, -1);
813 try testArgs(i256, i64, 0);
814 try testArgs(i512, i64, -1 << 63);
815 try testArgs(i512, i64, -1);
816 try testArgs(i512, i64, 0);
817 try testArgs(i1024, i64, -1 << 63);
818 try testArgs(i1024, i64, -1);
819 try testArgs(i1024, i64, 0);
820 try testArgs(u8, u64, 0);
821 try testArgs(u8, u64, 1 << 0);
822 try testArgs(u8, u64, 1 << 63);
823 try testArgs(u16, u64, 0);
824 try testArgs(u16, u64, 1 << 0);
825 try testArgs(u16, u64, 1 << 63);
826 try testArgs(u32, u64, 0);
827 try testArgs(u32, u64, 1 << 0);
828 try testArgs(u32, u64, 1 << 63);
829 try testArgs(u64, u64, 0);
830 try testArgs(u64, u64, 1 << 0);
831 try testArgs(u64, u64, 1 << 63);
832 try testArgs(u128, u64, 0);
833 try testArgs(u128, u64, 1 << 0);
834 try testArgs(u128, u64, 1 << 63);
835 try testArgs(u256, u64, 0);
836 try testArgs(u256, u64, 1 << 0);
837 try testArgs(u256, u64, 1 << 63);
838 try testArgs(u512, u64, 0);
839 try testArgs(u512, u64, 1 << 0);
840 try testArgs(u512, u64, 1 << 63);
841 try testArgs(u1024, u64, 0);
842 try testArgs(u1024, u64, 1 << 0);
843 try testArgs(u1024, u64, 1 << 63);
844
845 try testArgs(i8, i65, -1 << 64);
846 try testArgs(i8, i65, -1);
847 try testArgs(i8, i65, 0);
848 try testArgs(i16, i65, -1 << 64);
849 try testArgs(i16, i65, -1);
850 try testArgs(i16, i65, 0);
851 try testArgs(i32, i65, -1 << 64);
852 try testArgs(i32, i65, -1);
853 try testArgs(i32, i65, 0);
854 try testArgs(i64, i65, -1 << 64);
855 try testArgs(i64, i65, -1);
856 try testArgs(i64, i65, 0);
857 try testArgs(i128, i65, -1 << 64);
858 try testArgs(i128, i65, -1);
859 try testArgs(i128, i65, 0);
860 try testArgs(i256, i65, -1 << 64);
861 try testArgs(i256, i65, -1);
862 try testArgs(i256, i65, 0);
863 try testArgs(i512, i65, -1 << 64);
864 try testArgs(i512, i65, -1);
865 try testArgs(i512, i65, 0);
866 try testArgs(i1024, i65, -1 << 64);
867 try testArgs(i1024, i65, -1);
868 try testArgs(i1024, i65, 0);
869 try testArgs(u8, u65, 0);
870 try testArgs(u8, u65, 1 << 0);
871 try testArgs(u8, u65, 1 << 64);
872 try testArgs(u16, u65, 0);
873 try testArgs(u16, u65, 1 << 0);
874 try testArgs(u16, u65, 1 << 64);
875 try testArgs(u32, u65, 0);
876 try testArgs(u32, u65, 1 << 0);
877 try testArgs(u32, u65, 1 << 64);
878 try testArgs(u64, u65, 0);
879 try testArgs(u64, u65, 1 << 0);
880 try testArgs(u64, u65, 1 << 64);
881 try testArgs(u128, u65, 0);
882 try testArgs(u128, u65, 1 << 0);
883 try testArgs(u128, u65, 1 << 64);
884 try testArgs(u256, u65, 0);
885 try testArgs(u256, u65, 1 << 0);
886 try testArgs(u256, u65, 1 << 64);
887 try testArgs(u512, u65, 0);
888 try testArgs(u512, u65, 1 << 0);
889 try testArgs(u512, u65, 1 << 64);
890 try testArgs(u1024, u65, 0);
891 try testArgs(u1024, u65, 1 << 0);
892 try testArgs(u1024, u65, 1 << 64);
893
894 try testArgs(i8, i95, -1 << 94);
895 try testArgs(i8, i95, -1);
896 try testArgs(i8, i95, 0);
897 try testArgs(i16, i95, -1 << 94);
898 try testArgs(i16, i95, -1);
899 try testArgs(i16, i95, 0);
900 try testArgs(i32, i95, -1 << 94);
901 try testArgs(i32, i95, -1);
902 try testArgs(i32, i95, 0);
903 try testArgs(i64, i95, -1 << 94);
904 try testArgs(i64, i95, -1);
905 try testArgs(i64, i95, 0);
906 try testArgs(i128, i95, -1 << 94);
907 try testArgs(i128, i95, -1);
908 try testArgs(i128, i95, 0);
909 try testArgs(i256, i95, -1 << 94);
910 try testArgs(i256, i95, -1);
911 try testArgs(i256, i95, 0);
912 try testArgs(i512, i95, -1 << 94);
913 try testArgs(i512, i95, -1);
914 try testArgs(i512, i95, 0);
915 try testArgs(i1024, i95, -1 << 94);
916 try testArgs(i1024, i95, -1);
917 try testArgs(i1024, i95, 0);
918 try testArgs(u8, u95, 0);
919 try testArgs(u8, u95, 1 << 0);
920 try testArgs(u8, u95, 1 << 94);
921 try testArgs(u16, u95, 0);
922 try testArgs(u16, u95, 1 << 0);
923 try testArgs(u16, u95, 1 << 94);
924 try testArgs(u32, u95, 0);
925 try testArgs(u32, u95, 1 << 0);
926 try testArgs(u32, u95, 1 << 94);
927 try testArgs(u64, u95, 0);
928 try testArgs(u64, u95, 1 << 0);
929 try testArgs(u64, u95, 1 << 94);
930 try testArgs(u128, u95, 0);
931 try testArgs(u128, u95, 1 << 0);
932 try testArgs(u128, u95, 1 << 94);
933 try testArgs(u256, u95, 0);
934 try testArgs(u256, u95, 1 << 0);
935 try testArgs(u256, u95, 1 << 94);
936 try testArgs(u512, u95, 0);
937 try testArgs(u512, u95, 1 << 0);
938 try testArgs(u512, u95, 1 << 94);
939 try testArgs(u1024, u95, 0);
940 try testArgs(u1024, u95, 1 << 0);
941 try testArgs(u1024, u95, 1 << 94);
942
943 try testArgs(i8, i97, -1 << 96);
944 try testArgs(i8, i97, -1);
945 try testArgs(i8, i97, 0);
946 try testArgs(i16, i97, -1 << 96);
947 try testArgs(i16, i97, -1);
948 try testArgs(i16, i97, 0);
949 try testArgs(i32, i97, -1 << 96);
950 try testArgs(i32, i97, -1);
951 try testArgs(i32, i97, 0);
952 try testArgs(i64, i97, -1 << 96);
953 try testArgs(i64, i97, -1);
954 try testArgs(i64, i97, 0);
955 try testArgs(i128, i97, -1 << 96);
956 try testArgs(i128, i97, -1);
957 try testArgs(i128, i97, 0);
958 try testArgs(i256, i97, -1 << 96);
959 try testArgs(i256, i97, -1);
960 try testArgs(i256, i97, 0);
961 try testArgs(i512, i97, -1 << 96);
962 try testArgs(i512, i97, -1);
963 try testArgs(i512, i97, 0);
964 try testArgs(i1024, i97, -1 << 96);
965 try testArgs(i1024, i97, -1);
966 try testArgs(i1024, i97, 0);
967 try testArgs(u8, u97, 0);
968 try testArgs(u8, u97, 1 << 0);
969 try testArgs(u8, u97, 1 << 96);
970 try testArgs(u16, u97, 0);
971 try testArgs(u16, u97, 1 << 0);
972 try testArgs(u16, u97, 1 << 96);
973 try testArgs(u32, u97, 0);
974 try testArgs(u32, u97, 1 << 0);
975 try testArgs(u32, u97, 1 << 96);
976 try testArgs(u64, u97, 0);
977 try testArgs(u64, u97, 1 << 0);
978 try testArgs(u64, u97, 1 << 96);
979 try testArgs(u128, u97, 0);
980 try testArgs(u128, u97, 1 << 0);
981 try testArgs(u128, u97, 1 << 96);
982 try testArgs(u256, u97, 0);
983 try testArgs(u256, u97, 1 << 0);
984 try testArgs(u256, u97, 1 << 96);
985 try testArgs(u512, u97, 0);
986 try testArgs(u512, u97, 1 << 0);
987 try testArgs(u512, u97, 1 << 96);
988 try testArgs(u1024, u97, 0);
989 try testArgs(u1024, u97, 1 << 0);
990 try testArgs(u1024, u97, 1 << 96);
991
992 try testArgs(i8, i127, -1 << 126);
993 try testArgs(i8, i127, -1);
994 try testArgs(i8, i127, 0);
995 try testArgs(i16, i127, -1 << 126);
996 try testArgs(i16, i127, -1);
997 try testArgs(i16, i127, 0);
998 try testArgs(i32, i127, -1 << 126);
999 try testArgs(i32, i127, -1);
1000 try testArgs(i32, i127, 0);
1001 try testArgs(i64, i127, -1 << 126);
1002 try testArgs(i64, i127, -1);
1003 try testArgs(i64, i127, 0);
1004 try testArgs(i128, i127, -1 << 126);
1005 try testArgs(i128, i127, -1);
1006 try testArgs(i128, i127, 0);
1007 try testArgs(i256, i127, -1 << 126);
1008 try testArgs(i256, i127, -1);
1009 try testArgs(i256, i127, 0);
1010 try testArgs(i512, i127, -1 << 126);
1011 try testArgs(i512, i127, -1);
1012 try testArgs(i512, i127, 0);
1013 try testArgs(i1024, i127, -1 << 126);
1014 try testArgs(i1024, i127, -1);
1015 try testArgs(i1024, i127, 0);
1016 try testArgs(u8, u127, 0);
1017 try testArgs(u8, u127, 1 << 0);
1018 try testArgs(u8, u127, 1 << 126);
1019 try testArgs(u16, u127, 0);
1020 try testArgs(u16, u127, 1 << 0);
1021 try testArgs(u16, u127, 1 << 126);
1022 try testArgs(u32, u127, 0);
1023 try testArgs(u32, u127, 1 << 0);
1024 try testArgs(u32, u127, 1 << 126);
1025 try testArgs(u64, u127, 0);
1026 try testArgs(u64, u127, 1 << 0);
1027 try testArgs(u64, u127, 1 << 126);
1028 try testArgs(u128, u127, 0);
1029 try testArgs(u128, u127, 1 << 0);
1030 try testArgs(u128, u127, 1 << 126);
1031 try testArgs(u256, u127, 0);
1032 try testArgs(u256, u127, 1 << 0);
1033 try testArgs(u256, u127, 1 << 126);
1034 try testArgs(u512, u127, 0);
1035 try testArgs(u512, u127, 1 << 0);
1036 try testArgs(u512, u127, 1 << 126);
1037 try testArgs(u1024, u127, 0);
1038 try testArgs(u1024, u127, 1 << 0);
1039 try testArgs(u1024, u127, 1 << 126);
1040
1041 try testArgs(i8, i128, -1 << 127);
1042 try testArgs(i8, i128, -1);
1043 try testArgs(i8, i128, 0);
1044 try testArgs(i16, i128, -1 << 127);
1045 try testArgs(i16, i128, -1);
1046 try testArgs(i16, i128, 0);
1047 try testArgs(i32, i128, -1 << 127);
1048 try testArgs(i32, i128, -1);
1049 try testArgs(i32, i128, 0);
1050 try testArgs(i64, i128, -1 << 127);
1051 try testArgs(i64, i128, -1);
1052 try testArgs(i64, i128, 0);
1053 try testArgs(i128, i128, -1 << 127);
1054 try testArgs(i128, i128, -1);
1055 try testArgs(i128, i128, 0);
1056 try testArgs(i256, i128, -1 << 127);
1057 try testArgs(i256, i128, -1);
1058 try testArgs(i256, i128, 0);
1059 try testArgs(i512, i128, -1 << 127);
1060 try testArgs(i512, i128, -1);
1061 try testArgs(i512, i128, 0);
1062 try testArgs(i1024, i128, -1 << 127);
1063 try testArgs(i1024, i128, -1);
1064 try testArgs(i1024, i128, 0);
1065 try testArgs(u8, u128, 0);
1066 try testArgs(u8, u128, 1 << 0);
1067 try testArgs(u8, u128, 1 << 127);
1068 try testArgs(u16, u128, 0);
1069 try testArgs(u16, u128, 1 << 0);
1070 try testArgs(u16, u128, 1 << 127);
1071 try testArgs(u32, u128, 0);
1072 try testArgs(u32, u128, 1 << 0);
1073 try testArgs(u32, u128, 1 << 127);
1074 try testArgs(u64, u128, 0);
1075 try testArgs(u64, u128, 1 << 0);
1076 try testArgs(u64, u128, 1 << 127);
1077 try testArgs(u128, u128, 0);
1078 try testArgs(u128, u128, 1 << 0);
1079 try testArgs(u128, u128, 1 << 127);
1080 try testArgs(u256, u128, 0);
1081 try testArgs(u256, u128, 1 << 0);
1082 try testArgs(u256, u128, 1 << 127);
1083 try testArgs(u512, u128, 0);
1084 try testArgs(u512, u128, 1 << 0);
1085 try testArgs(u512, u128, 1 << 127);
1086 try testArgs(u1024, u128, 0);
1087 try testArgs(u1024, u128, 1 << 0);
1088 try testArgs(u1024, u128, 1 << 127);
1089
1090 try testArgs(i8, i129, -1 << 128);
1091 try testArgs(i8, i129, -1);
1092 try testArgs(i8, i129, 0);
1093 try testArgs(i16, i129, -1 << 128);
1094 try testArgs(i16, i129, -1);
1095 try testArgs(i16, i129, 0);
1096 try testArgs(i32, i129, -1 << 128);
1097 try testArgs(i32, i129, -1);
1098 try testArgs(i32, i129, 0);
1099 try testArgs(i64, i129, -1 << 128);
1100 try testArgs(i64, i129, -1);
1101 try testArgs(i64, i129, 0);
1102 try testArgs(i128, i129, -1 << 128);
1103 try testArgs(i128, i129, -1);
1104 try testArgs(i128, i129, 0);
1105 try testArgs(i256, i129, -1 << 128);
1106 try testArgs(i256, i129, -1);
1107 try testArgs(i256, i129, 0);
1108 try testArgs(i512, i129, -1 << 128);
1109 try testArgs(i512, i129, -1);
1110 try testArgs(i512, i129, 0);
1111 try testArgs(i1024, i129, -1 << 128);
1112 try testArgs(i1024, i129, -1);
1113 try testArgs(i1024, i129, 0);
1114 try testArgs(u8, u129, 0);
1115 try testArgs(u8, u129, 1 << 0);
1116 try testArgs(u8, u129, 1 << 128);
1117 try testArgs(u16, u129, 0);
1118 try testArgs(u16, u129, 1 << 0);
1119 try testArgs(u16, u129, 1 << 128);
1120 try testArgs(u32, u129, 0);
1121 try testArgs(u32, u129, 1 << 0);
1122 try testArgs(u32, u129, 1 << 128);
1123 try testArgs(u64, u129, 0);
1124 try testArgs(u64, u129, 1 << 0);
1125 try testArgs(u64, u129, 1 << 128);
1126 try testArgs(u128, u129, 0);
1127 try testArgs(u128, u129, 1 << 0);
1128 try testArgs(u128, u129, 1 << 128);
1129 try testArgs(u256, u129, 0);
1130 try testArgs(u256, u129, 1 << 0);
1131 try testArgs(u256, u129, 1 << 128);
1132 try testArgs(u512, u129, 0);
1133 try testArgs(u512, u129, 1 << 0);
1134 try testArgs(u512, u129, 1 << 128);
1135 try testArgs(u1024, u129, 0);
1136 try testArgs(u1024, u129, 1 << 0);
1137 try testArgs(u1024, u129, 1 << 128);
1138
1139 try testArgs(i8, i255, -1 << 254);
1140 try testArgs(i8, i255, -1);
1141 try testArgs(i8, i255, 0);
1142 try testArgs(i16, i255, -1 << 254);
1143 try testArgs(i16, i255, -1);
1144 try testArgs(i16, i255, 0);
1145 try testArgs(i32, i255, -1 << 254);
1146 try testArgs(i32, i255, -1);
1147 try testArgs(i32, i255, 0);
1148 try testArgs(i64, i255, -1 << 254);
1149 try testArgs(i64, i255, -1);
1150 try testArgs(i64, i255, 0);
1151 try testArgs(i128, i255, -1 << 254);
1152 try testArgs(i128, i255, -1);
1153 try testArgs(i128, i255, 0);
1154 try testArgs(i256, i255, -1 << 254);
1155 try testArgs(i256, i255, -1);
1156 try testArgs(i256, i255, 0);
1157 try testArgs(i512, i255, -1 << 254);
1158 try testArgs(i512, i255, -1);
1159 try testArgs(i512, i255, 0);
1160 try testArgs(i1024, i255, -1 << 254);
1161 try testArgs(i1024, i255, -1);
1162 try testArgs(i1024, i255, 0);
1163 try testArgs(u8, u255, 0);
1164 try testArgs(u8, u255, 1 << 0);
1165 try testArgs(u8, u255, 1 << 254);
1166 try testArgs(u16, u255, 0);
1167 try testArgs(u16, u255, 1 << 0);
1168 try testArgs(u16, u255, 1 << 254);
1169 try testArgs(u32, u255, 0);
1170 try testArgs(u32, u255, 1 << 0);
1171 try testArgs(u32, u255, 1 << 254);
1172 try testArgs(u64, u255, 0);
1173 try testArgs(u64, u255, 1 << 0);
1174 try testArgs(u64, u255, 1 << 254);
1175 try testArgs(u128, u255, 0);
1176 try testArgs(u128, u255, 1 << 0);
1177 try testArgs(u128, u255, 1 << 254);
1178 try testArgs(u256, u255, 0);
1179 try testArgs(u256, u255, 1 << 0);
1180 try testArgs(u256, u255, 1 << 254);
1181 try testArgs(u512, u255, 0);
1182 try testArgs(u512, u255, 1 << 0);
1183 try testArgs(u512, u255, 1 << 254);
1184 try testArgs(u1024, u255, 0);
1185 try testArgs(u1024, u255, 1 << 0);
1186 try testArgs(u1024, u255, 1 << 254);
1187
1188 try testArgs(i8, i256, -1 << 255);
1189 try testArgs(i8, i256, -1);
1190 try testArgs(i8, i256, 0);
1191 try testArgs(i16, i256, -1 << 255);
1192 try testArgs(i16, i256, -1);
1193 try testArgs(i16, i256, 0);
1194 try testArgs(i32, i256, -1 << 255);
1195 try testArgs(i32, i256, -1);
1196 try testArgs(i32, i256, 0);
1197 try testArgs(i64, i256, -1 << 255);
1198 try testArgs(i64, i256, -1);
1199 try testArgs(i64, i256, 0);
1200 try testArgs(i128, i256, -1 << 255);
1201 try testArgs(i128, i256, -1);
1202 try testArgs(i128, i256, 0);
1203 try testArgs(i256, i256, -1 << 255);
1204 try testArgs(i256, i256, -1);
1205 try testArgs(i256, i256, 0);
1206 try testArgs(i512, i256, -1 << 255);
1207 try testArgs(i512, i256, -1);
1208 try testArgs(i512, i256, 0);
1209 try testArgs(i1024, i256, -1 << 255);
1210 try testArgs(i1024, i256, -1);
1211 try testArgs(i1024, i256, 0);
1212 try testArgs(u8, u256, 0);
1213 try testArgs(u8, u256, 1 << 0);
1214 try testArgs(u8, u256, 1 << 255);
1215 try testArgs(u16, u256, 0);
1216 try testArgs(u16, u256, 1 << 0);
1217 try testArgs(u16, u256, 1 << 255);
1218 try testArgs(u32, u256, 0);
1219 try testArgs(u32, u256, 1 << 0);
1220 try testArgs(u32, u256, 1 << 255);
1221 try testArgs(u64, u256, 0);
1222 try testArgs(u64, u256, 1 << 0);
1223 try testArgs(u64, u256, 1 << 255);
1224 try testArgs(u128, u256, 0);
1225 try testArgs(u128, u256, 1 << 0);
1226 try testArgs(u128, u256, 1 << 255);
1227 try testArgs(u256, u256, 0);
1228 try testArgs(u256, u256, 1 << 0);
1229 try testArgs(u256, u256, 1 << 255);
1230 try testArgs(u512, u256, 0);
1231 try testArgs(u512, u256, 1 << 0);
1232 try testArgs(u512, u256, 1 << 255);
1233 try testArgs(u1024, u256, 0);
1234 try testArgs(u1024, u256, 1 << 0);
1235 try testArgs(u1024, u256, 1 << 255);
1236
1237 try testArgs(i8, i257, -1 << 256);
1238 try testArgs(i8, i257, -1);
1239 try testArgs(i8, i257, 0);
1240 try testArgs(i16, i257, -1 << 256);
1241 try testArgs(i16, i257, -1);
1242 try testArgs(i16, i257, 0);
1243 try testArgs(i32, i257, -1 << 256);
1244 try testArgs(i32, i257, -1);
1245 try testArgs(i32, i257, 0);
1246 try testArgs(i64, i257, -1 << 256);
1247 try testArgs(i64, i257, -1);
1248 try testArgs(i64, i257, 0);
1249 try testArgs(i128, i257, -1 << 256);
1250 try testArgs(i128, i257, -1);
1251 try testArgs(i128, i257, 0);
1252 try testArgs(i256, i257, -1 << 256);
1253 try testArgs(i256, i257, -1);
1254 try testArgs(i256, i257, 0);
1255 try testArgs(i512, i257, -1 << 256);
1256 try testArgs(i512, i257, -1);
1257 try testArgs(i512, i257, 0);
1258 try testArgs(i1024, i257, -1 << 256);
1259 try testArgs(i1024, i257, -1);
1260 try testArgs(i1024, i257, 0);
1261 try testArgs(u8, u257, 0);
1262 try testArgs(u8, u257, 1 << 0);
1263 try testArgs(u8, u257, 1 << 256);
1264 try testArgs(u16, u257, 0);
1265 try testArgs(u16, u257, 1 << 0);
1266 try testArgs(u16, u257, 1 << 256);
1267 try testArgs(u32, u257, 0);
1268 try testArgs(u32, u257, 1 << 0);
1269 try testArgs(u32, u257, 1 << 256);
1270 try testArgs(u64, u257, 0);
1271 try testArgs(u64, u257, 1 << 0);
1272 try testArgs(u64, u257, 1 << 256);
1273 try testArgs(u128, u257, 0);
1274 try testArgs(u128, u257, 1 << 0);
1275 try testArgs(u128, u257, 1 << 256);
1276 try testArgs(u256, u257, 0);
1277 try testArgs(u256, u257, 1 << 0);
1278 try testArgs(u256, u257, 1 << 256);
1279 try testArgs(u512, u257, 0);
1280 try testArgs(u512, u257, 1 << 0);
1281 try testArgs(u512, u257, 1 << 256);
1282 try testArgs(u1024, u257, 0);
1283 try testArgs(u1024, u257, 1 << 0);
1284 try testArgs(u1024, u257, 1 << 256);
1285
1286 try testArgs(i8, i511, -1 << 510);
1287 try testArgs(i8, i511, -1);
1288 try testArgs(i8, i511, 0);
1289 try testArgs(i16, i511, -1 << 510);
1290 try testArgs(i16, i511, -1);
1291 try testArgs(i16, i511, 0);
1292 try testArgs(i32, i511, -1 << 510);
1293 try testArgs(i32, i511, -1);
1294 try testArgs(i32, i511, 0);
1295 try testArgs(i64, i511, -1 << 510);
1296 try testArgs(i64, i511, -1);
1297 try testArgs(i64, i511, 0);
1298 try testArgs(i128, i511, -1 << 510);
1299 try testArgs(i128, i511, -1);
1300 try testArgs(i128, i511, 0);
1301 try testArgs(i256, i511, -1 << 510);
1302 try testArgs(i256, i511, -1);
1303 try testArgs(i256, i511, 0);
1304 try testArgs(i512, i511, -1 << 510);
1305 try testArgs(i512, i511, -1);
1306 try testArgs(i512, i511, 0);
1307 try testArgs(i1024, i511, -1 << 510);
1308 try testArgs(i1024, i511, -1);
1309 try testArgs(i1024, i511, 0);
1310 try testArgs(u8, u511, 0);
1311 try testArgs(u8, u511, 1 << 0);
1312 try testArgs(u8, u511, 1 << 510);
1313 try testArgs(u16, u511, 0);
1314 try testArgs(u16, u511, 1 << 0);
1315 try testArgs(u16, u511, 1 << 510);
1316 try testArgs(u32, u511, 0);
1317 try testArgs(u32, u511, 1 << 0);
1318 try testArgs(u32, u511, 1 << 510);
1319 try testArgs(u64, u511, 0);
1320 try testArgs(u64, u511, 1 << 0);
1321 try testArgs(u64, u511, 1 << 510);
1322 try testArgs(u128, u511, 0);
1323 try testArgs(u128, u511, 1 << 0);
1324 try testArgs(u128, u511, 1 << 510);
1325 try testArgs(u256, u511, 0);
1326 try testArgs(u256, u511, 1 << 0);
1327 try testArgs(u256, u511, 1 << 510);
1328 try testArgs(u512, u511, 0);
1329 try testArgs(u512, u511, 1 << 0);
1330 try testArgs(u512, u511, 1 << 510);
1331 try testArgs(u1024, u511, 0);
1332 try testArgs(u1024, u511, 1 << 0);
1333 try testArgs(u1024, u511, 1 << 510);
1334
1335 try testArgs(i8, i512, -1 << 511);
1336 try testArgs(i8, i512, -1);
1337 try testArgs(i8, i512, 0);
1338 try testArgs(i16, i512, -1 << 511);
1339 try testArgs(i16, i512, -1);
1340 try testArgs(i16, i512, 0);
1341 try testArgs(i32, i512, -1 << 511);
1342 try testArgs(i32, i512, -1);
1343 try testArgs(i32, i512, 0);
1344 try testArgs(i64, i512, -1 << 511);
1345 try testArgs(i64, i512, -1);
1346 try testArgs(i64, i512, 0);
1347 try testArgs(i128, i512, -1 << 511);
1348 try testArgs(i128, i512, -1);
1349 try testArgs(i128, i512, 0);
1350 try testArgs(i256, i512, -1 << 511);
1351 try testArgs(i256, i512, -1);
1352 try testArgs(i256, i512, 0);
1353 try testArgs(i512, i512, -1 << 511);
1354 try testArgs(i512, i512, -1);
1355 try testArgs(i512, i512, 0);
1356 try testArgs(i1024, i512, -1 << 511);
1357 try testArgs(i1024, i512, -1);
1358 try testArgs(i1024, i512, 0);
1359 try testArgs(u8, u512, 0);
1360 try testArgs(u8, u512, 1 << 0);
1361 try testArgs(u8, u512, 1 << 511);
1362 try testArgs(u16, u512, 0);
1363 try testArgs(u16, u512, 1 << 0);
1364 try testArgs(u16, u512, 1 << 511);
1365 try testArgs(u32, u512, 0);
1366 try testArgs(u32, u512, 1 << 0);
1367 try testArgs(u32, u512, 1 << 511);
1368 try testArgs(u64, u512, 0);
1369 try testArgs(u64, u512, 1 << 0);
1370 try testArgs(u64, u512, 1 << 511);
1371 try testArgs(u128, u512, 0);
1372 try testArgs(u128, u512, 1 << 0);
1373 try testArgs(u128, u512, 1 << 511);
1374 try testArgs(u256, u512, 0);
1375 try testArgs(u256, u512, 1 << 0);
1376 try testArgs(u256, u512, 1 << 511);
1377 try testArgs(u512, u512, 0);
1378 try testArgs(u512, u512, 1 << 0);
1379 try testArgs(u512, u512, 1 << 511);
1380 try testArgs(u1024, u512, 0);
1381 try testArgs(u1024, u512, 1 << 0);
1382 try testArgs(u1024, u512, 1 << 511);
1383
1384 try testArgs(i8, i513, -1 << 512);
1385 try testArgs(i8, i513, -1);
1386 try testArgs(i8, i513, 0);
1387 try testArgs(i16, i513, -1 << 512);
1388 try testArgs(i16, i513, -1);
1389 try testArgs(i16, i513, 0);
1390 try testArgs(i32, i513, -1 << 512);
1391 try testArgs(i32, i513, -1);
1392 try testArgs(i32, i513, 0);
1393 try testArgs(i64, i513, -1 << 512);
1394 try testArgs(i64, i513, -1);
1395 try testArgs(i64, i513, 0);
1396 try testArgs(i128, i513, -1 << 512);
1397 try testArgs(i128, i513, -1);
1398 try testArgs(i128, i513, 0);
1399 try testArgs(i256, i513, -1 << 512);
1400 try testArgs(i256, i513, -1);
1401 try testArgs(i256, i513, 0);
1402 try testArgs(i512, i513, -1 << 512);
1403 try testArgs(i512, i513, -1);
1404 try testArgs(i512, i513, 0);
1405 try testArgs(i1024, i513, -1 << 512);
1406 try testArgs(i1024, i513, -1);
1407 try testArgs(i1024, i513, 0);
1408 try testArgs(u8, u513, 0);
1409 try testArgs(u8, u513, 1 << 0);
1410 try testArgs(u8, u513, 1 << 512);
1411 try testArgs(u16, u513, 0);
1412 try testArgs(u16, u513, 1 << 0);
1413 try testArgs(u16, u513, 1 << 512);
1414 try testArgs(u32, u513, 0);
1415 try testArgs(u32, u513, 1 << 0);
1416 try testArgs(u32, u513, 1 << 512);
1417 try testArgs(u64, u513, 0);
1418 try testArgs(u64, u513, 1 << 0);
1419 try testArgs(u64, u513, 1 << 512);
1420 try testArgs(u128, u513, 0);
1421 try testArgs(u128, u513, 1 << 0);
1422 try testArgs(u128, u513, 1 << 512);
1423 try testArgs(u256, u513, 0);
1424 try testArgs(u256, u513, 1 << 0);
1425 try testArgs(u256, u513, 1 << 512);
1426 try testArgs(u512, u513, 0);
1427 try testArgs(u512, u513, 1 << 0);
1428 try testArgs(u512, u513, 1 << 512);
1429 try testArgs(u1024, u513, 0);
1430 try testArgs(u1024, u513, 1 << 0);
1431 try testArgs(u1024, u513, 1 << 512);
1432
1433 try testArgs(i8, i1023, -1 << 1022);
1434 try testArgs(i8, i1023, -1);
1435 try testArgs(i8, i1023, 0);
1436 try testArgs(i16, i1023, -1 << 1022);
1437 try testArgs(i16, i1023, -1);
1438 try testArgs(i16, i1023, 0);
1439 try testArgs(i32, i1023, -1 << 1022);
1440 try testArgs(i32, i1023, -1);
1441 try testArgs(i32, i1023, 0);
1442 try testArgs(i64, i1023, -1 << 1022);
1443 try testArgs(i64, i1023, -1);
1444 try testArgs(i64, i1023, 0);
1445 try testArgs(i128, i1023, -1 << 1022);
1446 try testArgs(i128, i1023, -1);
1447 try testArgs(i128, i1023, 0);
1448 try testArgs(i256, i1023, -1 << 1022);
1449 try testArgs(i256, i1023, -1);
1450 try testArgs(i256, i1023, 0);
1451 try testArgs(i512, i1023, -1 << 1022);
1452 try testArgs(i512, i1023, -1);
1453 try testArgs(i512, i1023, 0);
1454 try testArgs(i1024, i1023, -1 << 1022);
1455 try testArgs(i1024, i1023, -1);
1456 try testArgs(i1024, i1023, 0);
1457 try testArgs(u8, u1023, 0);
1458 try testArgs(u8, u1023, 1 << 0);
1459 try testArgs(u8, u1023, 1 << 1022);
1460 try testArgs(u16, u1023, 0);
1461 try testArgs(u16, u1023, 1 << 0);
1462 try testArgs(u16, u1023, 1 << 1022);
1463 try testArgs(u32, u1023, 0);
1464 try testArgs(u32, u1023, 1 << 0);
1465 try testArgs(u32, u1023, 1 << 1022);
1466 try testArgs(u64, u1023, 0);
1467 try testArgs(u64, u1023, 1 << 0);
1468 try testArgs(u64, u1023, 1 << 1022);
1469 try testArgs(u128, u1023, 0);
1470 try testArgs(u128, u1023, 1 << 0);
1471 try testArgs(u128, u1023, 1 << 1022);
1472 try testArgs(u256, u1023, 0);
1473 try testArgs(u256, u1023, 1 << 0);
1474 try testArgs(u256, u1023, 1 << 1022);
1475 try testArgs(u512, u1023, 0);
1476 try testArgs(u512, u1023, 1 << 0);
1477 try testArgs(u512, u1023, 1 << 1022);
1478 try testArgs(u1024, u1023, 0);
1479 try testArgs(u1024, u1023, 1 << 0);
1480 try testArgs(u1024, u1023, 1 << 1022);
1481
1482 try testArgs(i8, i1024, -1 << 1023);
1483 try testArgs(i8, i1024, -1);
1484 try testArgs(i8, i1024, 0);
1485 try testArgs(i16, i1024, -1 << 1023);
1486 try testArgs(i16, i1024, -1);
1487 try testArgs(i16, i1024, 0);
1488 try testArgs(i32, i1024, -1 << 1023);
1489 try testArgs(i32, i1024, -1);
1490 try testArgs(i32, i1024, 0);
1491 try testArgs(i64, i1024, -1 << 1023);
1492 try testArgs(i64, i1024, -1);
1493 try testArgs(i64, i1024, 0);
1494 try testArgs(i128, i1024, -1 << 1023);
1495 try testArgs(i128, i1024, -1);
1496 try testArgs(i128, i1024, 0);
1497 try testArgs(i256, i1024, -1 << 1023);
1498 try testArgs(i256, i1024, -1);
1499 try testArgs(i256, i1024, 0);
1500 try testArgs(i512, i1024, -1 << 1023);
1501 try testArgs(i512, i1024, -1);
1502 try testArgs(i512, i1024, 0);
1503 try testArgs(i1024, i1024, -1 << 1023);
1504 try testArgs(i1024, i1024, -1);
1505 try testArgs(i1024, i1024, 0);
1506 try testArgs(u8, u1024, 0);
1507 try testArgs(u8, u1024, 1 << 0);
1508 try testArgs(u8, u1024, 1 << 1023);
1509 try testArgs(u16, u1024, 0);
1510 try testArgs(u16, u1024, 1 << 0);
1511 try testArgs(u16, u1024, 1 << 1023);
1512 try testArgs(u32, u1024, 0);
1513 try testArgs(u32, u1024, 1 << 0);
1514 try testArgs(u32, u1024, 1 << 1023);
1515 try testArgs(u64, u1024, 0);
1516 try testArgs(u64, u1024, 1 << 0);
1517 try testArgs(u64, u1024, 1 << 1023);
1518 try testArgs(u128, u1024, 0);
1519 try testArgs(u128, u1024, 1 << 0);
1520 try testArgs(u128, u1024, 1 << 1023);
1521 try testArgs(u256, u1024, 0);
1522 try testArgs(u256, u1024, 1 << 0);
1523 try testArgs(u256, u1024, 1 << 1023);
1524 try testArgs(u512, u1024, 0);
1525 try testArgs(u512, u1024, 1 << 0);
1526 try testArgs(u512, u1024, 1 << 1023);
1527 try testArgs(u1024, u1024, 0);
1528 try testArgs(u1024, u1024, 1 << 0);
1529 try testArgs(u1024, u1024, 1 << 1023);
1530
1531 try testArgs(i8, i1025, -1 << 1024);
1532 try testArgs(i8, i1025, -1);
1533 try testArgs(i8, i1025, 0);
1534 try testArgs(i16, i1025, -1 << 1024);
1535 try testArgs(i16, i1025, -1);
1536 try testArgs(i16, i1025, 0);
1537 try testArgs(i32, i1025, -1 << 1024);
1538 try testArgs(i32, i1025, -1);
1539 try testArgs(i32, i1025, 0);
1540 try testArgs(i64, i1025, -1 << 1024);
1541 try testArgs(i64, i1025, -1);
1542 try testArgs(i64, i1025, 0);
1543 try testArgs(i128, i1025, -1 << 1024);
1544 try testArgs(i128, i1025, -1);
1545 try testArgs(i128, i1025, 0);
1546 try testArgs(i256, i1025, -1 << 1024);
1547 try testArgs(i256, i1025, -1);
1548 try testArgs(i256, i1025, 0);
1549 try testArgs(i512, i1025, -1 << 1024);
1550 try testArgs(i512, i1025, -1);
1551 try testArgs(i512, i1025, 0);
1552 try testArgs(i1024, i1025, -1 << 1024);
1553 try testArgs(i1024, i1025, -1);
1554 try testArgs(i1024, i1025, 0);
1555 try testArgs(u8, u1025, 0);
1556 try testArgs(u8, u1025, 1 << 0);
1557 try testArgs(u8, u1025, 1 << 1024);
1558 try testArgs(u16, u1025, 0);
1559 try testArgs(u16, u1025, 1 << 0);
1560 try testArgs(u16, u1025, 1 << 1024);
1561 try testArgs(u32, u1025, 0);
1562 try testArgs(u32, u1025, 1 << 0);
1563 try testArgs(u32, u1025, 1 << 1024);
1564 try testArgs(u64, u1025, 0);
1565 try testArgs(u64, u1025, 1 << 0);
1566 try testArgs(u64, u1025, 1 << 1024);
1567 try testArgs(u128, u1025, 0);
1568 try testArgs(u128, u1025, 1 << 0);
1569 try testArgs(u128, u1025, 1 << 1024);
1570 try testArgs(u256, u1025, 0);
1571 try testArgs(u256, u1025, 1 << 0);
1572 try testArgs(u256, u1025, 1 << 1024);
1573 try testArgs(u512, u1025, 0);
1574 try testArgs(u512, u1025, 1 << 0);
1575 try testArgs(u512, u1025, 1 << 1024);
1576 try testArgs(u1024, u1025, 0);
1577 try testArgs(u1024, u1025, 1 << 0);
1578 try testArgs(u1024, u1025, 1 << 1024);
1579 }
1580 fn testInts() !void {
1581 try testSameSignednessInts();
1582
1583 try testArgs(u8, i1, -1);
1584 try testArgs(u8, i1, 0);
1585 try testArgs(u16, i1, -1);
1586 try testArgs(u16, i1, 0);
1587 try testArgs(u32, i1, -1);
1588 try testArgs(u32, i1, 0);
1589 try testArgs(u64, i1, -1);
1590 try testArgs(u64, i1, 0);
1591 try testArgs(u128, i1, -1);
1592 try testArgs(u128, i1, 0);
1593 try testArgs(u256, i1, -1);
1594 try testArgs(u256, i1, 0);
1595 try testArgs(u512, i1, -1);
1596 try testArgs(u512, i1, 0);
1597 try testArgs(u1024, i1, -1);
1598 try testArgs(u1024, i1, 0);
1599 try testArgs(i8, u1, 0);
1600 try testArgs(i8, u1, 1 << 0);
1601 try testArgs(i16, u1, 0);
1602 try testArgs(i16, u1, 1 << 0);
1603 try testArgs(i32, u1, 0);
1604 try testArgs(i32, u1, 1 << 0);
1605 try testArgs(i64, u1, 0);
1606 try testArgs(i64, u1, 1 << 0);
1607 try testArgs(i128, u1, 0);
1608 try testArgs(i128, u1, 1 << 0);
1609 try testArgs(i256, u1, 0);
1610 try testArgs(i256, u1, 1 << 0);
1611 try testArgs(i512, u1, 0);
1612 try testArgs(i512, u1, 1 << 0);
1613 try testArgs(i1024, u1, 0);
1614 try testArgs(i1024, u1, 1 << 0);
1615
1616 try testArgs(u8, i2, -1 << 1);
1617 try testArgs(u8, i2, -1);
1618 try testArgs(u8, i2, 0);
1619 try testArgs(u16, i2, -1 << 1);
1620 try testArgs(u16, i2, -1);
1621 try testArgs(u16, i2, 0);
1622 try testArgs(u32, i2, -1 << 1);
1623 try testArgs(u32, i2, -1);
1624 try testArgs(u32, i2, 0);
1625 try testArgs(u64, i2, -1 << 1);
1626 try testArgs(u64, i2, -1);
1627 try testArgs(u64, i2, 0);
1628 try testArgs(u128, i2, -1 << 1);
1629 try testArgs(u128, i2, -1);
1630 try testArgs(u128, i2, 0);
1631 try testArgs(u256, i2, -1 << 1);
1632 try testArgs(u256, i2, -1);
1633 try testArgs(u256, i2, 0);
1634 try testArgs(u512, i2, -1 << 1);
1635 try testArgs(u512, i2, -1);
1636 try testArgs(u512, i2, 0);
1637 try testArgs(u1024, i2, -1 << 1);
1638 try testArgs(u1024, i2, -1);
1639 try testArgs(u1024, i2, 0);
1640 try testArgs(i8, u2, 0);
1641 try testArgs(i8, u2, 1 << 0);
1642 try testArgs(i8, u2, 1 << 1);
1643 try testArgs(i16, u2, 0);
1644 try testArgs(i16, u2, 1 << 0);
1645 try testArgs(i16, u2, 1 << 1);
1646 try testArgs(i32, u2, 0);
1647 try testArgs(i32, u2, 1 << 0);
1648 try testArgs(i32, u2, 1 << 1);
1649 try testArgs(i64, u2, 0);
1650 try testArgs(i64, u2, 1 << 0);
1651 try testArgs(i64, u2, 1 << 1);
1652 try testArgs(i128, u2, 0);
1653 try testArgs(i128, u2, 1 << 0);
1654 try testArgs(i128, u2, 1 << 1);
1655 try testArgs(i256, u2, 0);
1656 try testArgs(i256, u2, 1 << 0);
1657 try testArgs(i256, u2, 1 << 1);
1658 try testArgs(i512, u2, 0);
1659 try testArgs(i512, u2, 1 << 0);
1660 try testArgs(i512, u2, 1 << 1);
1661 try testArgs(i1024, u2, 0);
1662 try testArgs(i1024, u2, 1 << 0);
1663 try testArgs(i1024, u2, 1 << 1);
1664
1665 try testArgs(u8, i3, -1 << 2);
1666 try testArgs(u8, i3, -1);
1667 try testArgs(u8, i3, 0);
1668 try testArgs(u16, i3, -1 << 2);
1669 try testArgs(u16, i3, -1);
1670 try testArgs(u16, i3, 0);
1671 try testArgs(u32, i3, -1 << 2);
1672 try testArgs(u32, i3, -1);
1673 try testArgs(u32, i3, 0);
1674 try testArgs(u64, i3, -1 << 2);
1675 try testArgs(u64, i3, -1);
1676 try testArgs(u64, i3, 0);
1677 try testArgs(u128, i3, -1 << 2);
1678 try testArgs(u128, i3, -1);
1679 try testArgs(u128, i3, 0);
1680 try testArgs(u256, i3, -1 << 2);
1681 try testArgs(u256, i3, -1);
1682 try testArgs(u256, i3, 0);
1683 try testArgs(u512, i3, -1 << 2);
1684 try testArgs(u512, i3, -1);
1685 try testArgs(u512, i3, 0);
1686 try testArgs(u1024, i3, -1 << 2);
1687 try testArgs(u1024, i3, -1);
1688 try testArgs(u1024, i3, 0);
1689 try testArgs(i8, u3, 0);
1690 try testArgs(i8, u3, 1 << 0);
1691 try testArgs(i8, u3, 1 << 2);
1692 try testArgs(i16, u3, 0);
1693 try testArgs(i16, u3, 1 << 0);
1694 try testArgs(i16, u3, 1 << 2);
1695 try testArgs(i32, u3, 0);
1696 try testArgs(i32, u3, 1 << 0);
1697 try testArgs(i32, u3, 1 << 2);
1698 try testArgs(i64, u3, 0);
1699 try testArgs(i64, u3, 1 << 0);
1700 try testArgs(i64, u3, 1 << 2);
1701 try testArgs(i128, u3, 0);
1702 try testArgs(i128, u3, 1 << 0);
1703 try testArgs(i128, u3, 1 << 2);
1704 try testArgs(i256, u3, 0);
1705 try testArgs(i256, u3, 1 << 0);
1706 try testArgs(i256, u3, 1 << 2);
1707 try testArgs(i512, u3, 0);
1708 try testArgs(i512, u3, 1 << 0);
1709 try testArgs(i512, u3, 1 << 2);
1710 try testArgs(i1024, u3, 0);
1711 try testArgs(i1024, u3, 1 << 0);
1712 try testArgs(i1024, u3, 1 << 2);
1713
1714 try testArgs(u8, i4, -1 << 3);
1715 try testArgs(u8, i4, -1);
1716 try testArgs(u8, i4, 0);
1717 try testArgs(u16, i4, -1 << 3);
1718 try testArgs(u16, i4, -1);
1719 try testArgs(u16, i4, 0);
1720 try testArgs(u32, i4, -1 << 3);
1721 try testArgs(u32, i4, -1);
1722 try testArgs(u32, i4, 0);
1723 try testArgs(u64, i4, -1 << 3);
1724 try testArgs(u64, i4, -1);
1725 try testArgs(u64, i4, 0);
1726 try testArgs(u128, i4, -1 << 3);
1727 try testArgs(u128, i4, -1);
1728 try testArgs(u128, i4, 0);
1729 try testArgs(u256, i4, -1 << 3);
1730 try testArgs(u256, i4, -1);
1731 try testArgs(u256, i4, 0);
1732 try testArgs(u512, i4, -1 << 3);
1733 try testArgs(u512, i4, -1);
1734 try testArgs(u512, i4, 0);
1735 try testArgs(u1024, i4, -1 << 3);
1736 try testArgs(u1024, i4, -1);
1737 try testArgs(u1024, i4, 0);
1738 try testArgs(i8, u4, 0);
1739 try testArgs(i8, u4, 1 << 0);
1740 try testArgs(i8, u4, 1 << 3);
1741 try testArgs(i16, u4, 0);
1742 try testArgs(i16, u4, 1 << 0);
1743 try testArgs(i16, u4, 1 << 3);
1744 try testArgs(i32, u4, 0);
1745 try testArgs(i32, u4, 1 << 0);
1746 try testArgs(i32, u4, 1 << 3);
1747 try testArgs(i64, u4, 0);
1748 try testArgs(i64, u4, 1 << 0);
1749 try testArgs(i64, u4, 1 << 3);
1750 try testArgs(i128, u4, 0);
1751 try testArgs(i128, u4, 1 << 0);
1752 try testArgs(i128, u4, 1 << 3);
1753 try testArgs(i256, u4, 0);
1754 try testArgs(i256, u4, 1 << 0);
1755 try testArgs(i256, u4, 1 << 3);
1756 try testArgs(i512, u4, 0);
1757 try testArgs(i512, u4, 1 << 0);
1758 try testArgs(i512, u4, 1 << 3);
1759 try testArgs(i1024, u4, 0);
1760 try testArgs(i1024, u4, 1 << 0);
1761 try testArgs(i1024, u4, 1 << 3);
1762
1763 try testArgs(u8, i5, -1 << 4);
1764 try testArgs(u8, i5, -1);
1765 try testArgs(u8, i5, 0);
1766 try testArgs(u16, i5, -1 << 4);
1767 try testArgs(u16, i5, -1);
1768 try testArgs(u16, i5, 0);
1769 try testArgs(u32, i5, -1 << 4);
1770 try testArgs(u32, i5, -1);
1771 try testArgs(u32, i5, 0);
1772 try testArgs(u64, i5, -1 << 4);
1773 try testArgs(u64, i5, -1);
1774 try testArgs(u64, i5, 0);
1775 try testArgs(u128, i5, -1 << 4);
1776 try testArgs(u128, i5, -1);
1777 try testArgs(u128, i5, 0);
1778 try testArgs(u256, i5, -1 << 4);
1779 try testArgs(u256, i5, -1);
1780 try testArgs(u256, i5, 0);
1781 try testArgs(u512, i5, -1 << 4);
1782 try testArgs(u512, i5, -1);
1783 try testArgs(u512, i5, 0);
1784 try testArgs(u1024, i5, -1 << 4);
1785 try testArgs(u1024, i5, -1);
1786 try testArgs(u1024, i5, 0);
1787 try testArgs(i8, u5, 0);
1788 try testArgs(i8, u5, 1 << 0);
1789 try testArgs(i8, u5, 1 << 4);
1790 try testArgs(i16, u5, 0);
1791 try testArgs(i16, u5, 1 << 0);
1792 try testArgs(i16, u5, 1 << 4);
1793 try testArgs(i32, u5, 0);
1794 try testArgs(i32, u5, 1 << 0);
1795 try testArgs(i32, u5, 1 << 4);
1796 try testArgs(i64, u5, 0);
1797 try testArgs(i64, u5, 1 << 0);
1798 try testArgs(i64, u5, 1 << 4);
1799 try testArgs(i128, u5, 0);
1800 try testArgs(i128, u5, 1 << 0);
1801 try testArgs(i128, u5, 1 << 4);
1802 try testArgs(i256, u5, 0);
1803 try testArgs(i256, u5, 1 << 0);
1804 try testArgs(i256, u5, 1 << 4);
1805 try testArgs(i512, u5, 0);
1806 try testArgs(i512, u5, 1 << 0);
1807 try testArgs(i512, u5, 1 << 4);
1808 try testArgs(i1024, u5, 0);
1809 try testArgs(i1024, u5, 1 << 0);
1810 try testArgs(i1024, u5, 1 << 4);
1811
1812 try testArgs(u8, i7, -1 << 6);
1813 try testArgs(u8, i7, -1);
1814 try testArgs(u8, i7, 0);
1815 try testArgs(u16, i7, -1 << 6);
1816 try testArgs(u16, i7, -1);
1817 try testArgs(u16, i7, 0);
1818 try testArgs(u32, i7, -1 << 6);
1819 try testArgs(u32, i7, -1);
1820 try testArgs(u32, i7, 0);
1821 try testArgs(u64, i7, -1 << 6);
1822 try testArgs(u64, i7, -1);
1823 try testArgs(u64, i7, 0);
1824 try testArgs(u128, i7, -1 << 6);
1825 try testArgs(u128, i7, -1);
1826 try testArgs(u128, i7, 0);
1827 try testArgs(u256, i7, -1 << 6);
1828 try testArgs(u256, i7, -1);
1829 try testArgs(u256, i7, 0);
1830 try testArgs(u512, i7, -1 << 6);
1831 try testArgs(u512, i7, -1);
1832 try testArgs(u512, i7, 0);
1833 try testArgs(u1024, i7, -1 << 6);
1834 try testArgs(u1024, i7, -1);
1835 try testArgs(u1024, i7, 0);
1836 try testArgs(i8, u7, 0);
1837 try testArgs(i8, u7, 1 << 0);
1838 try testArgs(i8, u7, 1 << 6);
1839 try testArgs(i16, u7, 0);
1840 try testArgs(i16, u7, 1 << 0);
1841 try testArgs(i16, u7, 1 << 6);
1842 try testArgs(i32, u7, 0);
1843 try testArgs(i32, u7, 1 << 0);
1844 try testArgs(i32, u7, 1 << 6);
1845 try testArgs(i64, u7, 0);
1846 try testArgs(i64, u7, 1 << 0);
1847 try testArgs(i64, u7, 1 << 6);
1848 try testArgs(i128, u7, 0);
1849 try testArgs(i128, u7, 1 << 0);
1850 try testArgs(i128, u7, 1 << 6);
1851 try testArgs(i256, u7, 0);
1852 try testArgs(i256, u7, 1 << 0);
1853 try testArgs(i256, u7, 1 << 6);
1854 try testArgs(i512, u7, 0);
1855 try testArgs(i512, u7, 1 << 0);
1856 try testArgs(i512, u7, 1 << 6);
1857 try testArgs(i1024, u7, 0);
1858 try testArgs(i1024, u7, 1 << 0);
1859 try testArgs(i1024, u7, 1 << 6);
1860
1861 try testArgs(u8, i8, -1 << 7);
1862 try testArgs(u8, i8, -1);
1863 try testArgs(u8, i8, 0);
1864 try testArgs(u16, i8, -1 << 7);
1865 try testArgs(u16, i8, -1);
1866 try testArgs(u16, i8, 0);
1867 try testArgs(u32, i8, -1 << 7);
1868 try testArgs(u32, i8, -1);
1869 try testArgs(u32, i8, 0);
1870 try testArgs(u64, i8, -1 << 7);
1871 try testArgs(u64, i8, -1);
1872 try testArgs(u64, i8, 0);
1873 try testArgs(u128, i8, -1 << 7);
1874 try testArgs(u128, i8, -1);
1875 try testArgs(u128, i8, 0);
1876 try testArgs(u256, i8, -1 << 7);
1877 try testArgs(u256, i8, -1);
1878 try testArgs(u256, i8, 0);
1879 try testArgs(u512, i8, -1 << 7);
1880 try testArgs(u512, i8, -1);
1881 try testArgs(u512, i8, 0);
1882 try testArgs(u1024, i8, -1 << 7);
1883 try testArgs(u1024, i8, -1);
1884 try testArgs(u1024, i8, 0);
1885 try testArgs(i8, u8, 0);
1886 try testArgs(i8, u8, 1 << 0);
1887 try testArgs(i8, u8, 1 << 7);
1888 try testArgs(i16, u8, 0);
1889 try testArgs(i16, u8, 1 << 0);
1890 try testArgs(i16, u8, 1 << 7);
1891 try testArgs(i32, u8, 0);
1892 try testArgs(i32, u8, 1 << 0);
1893 try testArgs(i32, u8, 1 << 7);
1894 try testArgs(i64, u8, 0);
1895 try testArgs(i64, u8, 1 << 0);
1896 try testArgs(i64, u8, 1 << 7);
1897 try testArgs(i128, u8, 0);
1898 try testArgs(i128, u8, 1 << 0);
1899 try testArgs(i128, u8, 1 << 7);
1900 try testArgs(i256, u8, 0);
1901 try testArgs(i256, u8, 1 << 0);
1902 try testArgs(i256, u8, 1 << 7);
1903 try testArgs(i512, u8, 0);
1904 try testArgs(i512, u8, 1 << 0);
1905 try testArgs(i512, u8, 1 << 7);
1906 try testArgs(i1024, u8, 0);
1907 try testArgs(i1024, u8, 1 << 0);
1908 try testArgs(i1024, u8, 1 << 7);
1909
1910 try testArgs(u8, i9, -1 << 8);
1911 try testArgs(u8, i9, -1);
1912 try testArgs(u8, i9, 0);
1913 try testArgs(u16, i9, -1 << 8);
1914 try testArgs(u16, i9, -1);
1915 try testArgs(u16, i9, 0);
1916 try testArgs(u32, i9, -1 << 8);
1917 try testArgs(u32, i9, -1);
1918 try testArgs(u32, i9, 0);
1919 try testArgs(u64, i9, -1 << 8);
1920 try testArgs(u64, i9, -1);
1921 try testArgs(u64, i9, 0);
1922 try testArgs(u128, i9, -1 << 8);
1923 try testArgs(u128, i9, -1);
1924 try testArgs(u128, i9, 0);
1925 try testArgs(u256, i9, -1 << 8);
1926 try testArgs(u256, i9, -1);
1927 try testArgs(u256, i9, 0);
1928 try testArgs(u512, i9, -1 << 8);
1929 try testArgs(u512, i9, -1);
1930 try testArgs(u512, i9, 0);
1931 try testArgs(u1024, i9, -1 << 8);
1932 try testArgs(u1024, i9, -1);
1933 try testArgs(u1024, i9, 0);
1934 try testArgs(i8, u9, 0);
1935 try testArgs(i8, u9, 1 << 0);
1936 try testArgs(i8, u9, 1 << 8);
1937 try testArgs(i16, u9, 0);
1938 try testArgs(i16, u9, 1 << 0);
1939 try testArgs(i16, u9, 1 << 8);
1940 try testArgs(i32, u9, 0);
1941 try testArgs(i32, u9, 1 << 0);
1942 try testArgs(i32, u9, 1 << 8);
1943 try testArgs(i64, u9, 0);
1944 try testArgs(i64, u9, 1 << 0);
1945 try testArgs(i64, u9, 1 << 8);
1946 try testArgs(i128, u9, 0);
1947 try testArgs(i128, u9, 1 << 0);
1948 try testArgs(i128, u9, 1 << 8);
1949 try testArgs(i256, u9, 0);
1950 try testArgs(i256, u9, 1 << 0);
1951 try testArgs(i256, u9, 1 << 8);
1952 try testArgs(i512, u9, 0);
1953 try testArgs(i512, u9, 1 << 0);
1954 try testArgs(i512, u9, 1 << 8);
1955 try testArgs(i1024, u9, 0);
1956 try testArgs(i1024, u9, 1 << 0);
1957 try testArgs(i1024, u9, 1 << 8);
1958
1959 try testArgs(u8, i15, -1 << 14);
1960 try testArgs(u8, i15, -1);
1961 try testArgs(u8, i15, 0);
1962 try testArgs(u16, i15, -1 << 14);
1963 try testArgs(u16, i15, -1);
1964 try testArgs(u16, i15, 0);
1965 try testArgs(u32, i15, -1 << 14);
1966 try testArgs(u32, i15, -1);
1967 try testArgs(u32, i15, 0);
1968 try testArgs(u64, i15, -1 << 14);
1969 try testArgs(u64, i15, -1);
1970 try testArgs(u64, i15, 0);
1971 try testArgs(u128, i15, -1 << 14);
1972 try testArgs(u128, i15, -1);
1973 try testArgs(u128, i15, 0);
1974 try testArgs(u256, i15, -1 << 14);
1975 try testArgs(u256, i15, -1);
1976 try testArgs(u256, i15, 0);
1977 try testArgs(u512, i15, -1 << 14);
1978 try testArgs(u512, i15, -1);
1979 try testArgs(u512, i15, 0);
1980 try testArgs(u1024, i15, -1 << 14);
1981 try testArgs(u1024, i15, -1);
1982 try testArgs(u1024, i15, 0);
1983 try testArgs(i8, u15, 0);
1984 try testArgs(i8, u15, 1 << 0);
1985 try testArgs(i8, u15, 1 << 14);
1986 try testArgs(i16, u15, 0);
1987 try testArgs(i16, u15, 1 << 0);
1988 try testArgs(i16, u15, 1 << 14);
1989 try testArgs(i32, u15, 0);
1990 try testArgs(i32, u15, 1 << 0);
1991 try testArgs(i32, u15, 1 << 14);
1992 try testArgs(i64, u15, 0);
1993 try testArgs(i64, u15, 1 << 0);
1994 try testArgs(i64, u15, 1 << 14);
1995 try testArgs(i128, u15, 0);
1996 try testArgs(i128, u15, 1 << 0);
1997 try testArgs(i128, u15, 1 << 14);
1998 try testArgs(i256, u15, 0);
1999 try testArgs(i256, u15, 1 << 0);
2000 try testArgs(i256, u15, 1 << 14);
2001 try testArgs(i512, u15, 0);
2002 try testArgs(i512, u15, 1 << 0);
2003 try testArgs(i512, u15, 1 << 14);
2004 try testArgs(i1024, u15, 0);
2005 try testArgs(i1024, u15, 1 << 0);
2006 try testArgs(i1024, u15, 1 << 14);
2007
2008 try testArgs(u8, i16, -1 << 15);
2009 try testArgs(u8, i16, -1);
2010 try testArgs(u8, i16, 0);
2011 try testArgs(u16, i16, -1 << 15);
2012 try testArgs(u16, i16, -1);
2013 try testArgs(u16, i16, 0);
2014 try testArgs(u32, i16, -1 << 15);
2015 try testArgs(u32, i16, -1);
2016 try testArgs(u32, i16, 0);
2017 try testArgs(u64, i16, -1 << 15);
2018 try testArgs(u64, i16, -1);
2019 try testArgs(u64, i16, 0);
2020 try testArgs(u128, i16, -1 << 15);
2021 try testArgs(u128, i16, -1);
2022 try testArgs(u128, i16, 0);
2023 try testArgs(u256, i16, -1 << 15);
2024 try testArgs(u256, i16, -1);
2025 try testArgs(u256, i16, 0);
2026 try testArgs(u512, i16, -1 << 15);
2027 try testArgs(u512, i16, -1);
2028 try testArgs(u512, i16, 0);
2029 try testArgs(u1024, i16, -1 << 15);
2030 try testArgs(u1024, i16, -1);
2031 try testArgs(u1024, i16, 0);
2032 try testArgs(i8, u16, 0);
2033 try testArgs(i8, u16, 1 << 0);
2034 try testArgs(i8, u16, 1 << 15);
2035 try testArgs(i16, u16, 0);
2036 try testArgs(i16, u16, 1 << 0);
2037 try testArgs(i16, u16, 1 << 15);
2038 try testArgs(i32, u16, 0);
2039 try testArgs(i32, u16, 1 << 0);
2040 try testArgs(i32, u16, 1 << 15);
2041 try testArgs(i64, u16, 0);
2042 try testArgs(i64, u16, 1 << 0);
2043 try testArgs(i64, u16, 1 << 15);
2044 try testArgs(i128, u16, 0);
2045 try testArgs(i128, u16, 1 << 0);
2046 try testArgs(i128, u16, 1 << 15);
2047 try testArgs(i256, u16, 0);
2048 try testArgs(i256, u16, 1 << 0);
2049 try testArgs(i256, u16, 1 << 15);
2050 try testArgs(i512, u16, 0);
2051 try testArgs(i512, u16, 1 << 0);
2052 try testArgs(i512, u16, 1 << 15);
2053 try testArgs(i1024, u16, 0);
2054 try testArgs(i1024, u16, 1 << 0);
2055 try testArgs(i1024, u16, 1 << 15);
2056
2057 try testArgs(u8, i17, -1 << 16);
2058 try testArgs(u8, i17, -1);
2059 try testArgs(u8, i17, 0);
2060 try testArgs(u16, i17, -1 << 16);
2061 try testArgs(u16, i17, -1);
2062 try testArgs(u16, i17, 0);
2063 try testArgs(u32, i17, -1 << 16);
2064 try testArgs(u32, i17, -1);
2065 try testArgs(u32, i17, 0);
2066 try testArgs(u64, i17, -1 << 16);
2067 try testArgs(u64, i17, -1);
2068 try testArgs(u64, i17, 0);
2069 try testArgs(u128, i17, -1 << 16);
2070 try testArgs(u128, i17, -1);
2071 try testArgs(u128, i17, 0);
2072 try testArgs(u256, i17, -1 << 16);
2073 try testArgs(u256, i17, -1);
2074 try testArgs(u256, i17, 0);
2075 try testArgs(u512, i17, -1 << 16);
2076 try testArgs(u512, i17, -1);
2077 try testArgs(u512, i17, 0);
2078 try testArgs(u1024, i17, -1 << 16);
2079 try testArgs(u1024, i17, -1);
2080 try testArgs(u1024, i17, 0);
2081 try testArgs(i8, u17, 0);
2082 try testArgs(i8, u17, 1 << 0);
2083 try testArgs(i8, u17, 1 << 16);
2084 try testArgs(i16, u17, 0);
2085 try testArgs(i16, u17, 1 << 0);
2086 try testArgs(i16, u17, 1 << 16);
2087 try testArgs(i32, u17, 0);
2088 try testArgs(i32, u17, 1 << 0);
2089 try testArgs(i32, u17, 1 << 16);
2090 try testArgs(i64, u17, 0);
2091 try testArgs(i64, u17, 1 << 0);
2092 try testArgs(i64, u17, 1 << 16);
2093 try testArgs(i128, u17, 0);
2094 try testArgs(i128, u17, 1 << 0);
2095 try testArgs(i128, u17, 1 << 16);
2096 try testArgs(i256, u17, 0);
2097 try testArgs(i256, u17, 1 << 0);
2098 try testArgs(i256, u17, 1 << 16);
2099 try testArgs(i512, u17, 0);
2100 try testArgs(i512, u17, 1 << 0);
2101 try testArgs(i512, u17, 1 << 16);
2102 try testArgs(i1024, u17, 0);
2103 try testArgs(i1024, u17, 1 << 0);
2104 try testArgs(i1024, u17, 1 << 16);
2105
2106 try testArgs(u8, i31, -1 << 30);
2107 try testArgs(u8, i31, -1);
2108 try testArgs(u8, i31, 0);
2109 try testArgs(u16, i31, -1 << 30);
2110 try testArgs(u16, i31, -1);
2111 try testArgs(u16, i31, 0);
2112 try testArgs(u32, i31, -1 << 30);
2113 try testArgs(u32, i31, -1);
2114 try testArgs(u32, i31, 0);
2115 try testArgs(u64, i31, -1 << 30);
2116 try testArgs(u64, i31, -1);
2117 try testArgs(u64, i31, 0);
2118 try testArgs(u128, i31, -1 << 30);
2119 try testArgs(u128, i31, -1);
2120 try testArgs(u128, i31, 0);
2121 try testArgs(u256, i31, -1 << 30);
2122 try testArgs(u256, i31, -1);
2123 try testArgs(u256, i31, 0);
2124 try testArgs(u512, i31, -1 << 30);
2125 try testArgs(u512, i31, -1);
2126 try testArgs(u512, i31, 0);
2127 try testArgs(u1024, i31, -1 << 30);
2128 try testArgs(u1024, i31, -1);
2129 try testArgs(u1024, i31, 0);
2130 try testArgs(i8, u31, 0);
2131 try testArgs(i8, u31, 1 << 0);
2132 try testArgs(i8, u31, 1 << 30);
2133 try testArgs(i16, u31, 0);
2134 try testArgs(i16, u31, 1 << 0);
2135 try testArgs(i16, u31, 1 << 30);
2136 try testArgs(i32, u31, 0);
2137 try testArgs(i32, u31, 1 << 0);
2138 try testArgs(i32, u31, 1 << 30);
2139 try testArgs(i64, u31, 0);
2140 try testArgs(i64, u31, 1 << 0);
2141 try testArgs(i64, u31, 1 << 30);
2142 try testArgs(i128, u31, 0);
2143 try testArgs(i128, u31, 1 << 0);
2144 try testArgs(i128, u31, 1 << 30);
2145 try testArgs(i256, u31, 0);
2146 try testArgs(i256, u31, 1 << 0);
2147 try testArgs(i256, u31, 1 << 30);
2148 try testArgs(i512, u31, 0);
2149 try testArgs(i512, u31, 1 << 0);
2150 try testArgs(i512, u31, 1 << 30);
2151 try testArgs(i1024, u31, 0);
2152 try testArgs(i1024, u31, 1 << 0);
2153 try testArgs(i1024, u31, 1 << 30);
2154
2155 try testArgs(u8, i32, -1 << 31);
2156 try testArgs(u8, i32, -1);
2157 try testArgs(u8, i32, 0);
2158 try testArgs(u16, i32, -1 << 31);
2159 try testArgs(u16, i32, -1);
2160 try testArgs(u16, i32, 0);
2161 try testArgs(u32, i32, -1 << 31);
2162 try testArgs(u32, i32, -1);
2163 try testArgs(u32, i32, 0);
2164 try testArgs(u64, i32, -1 << 31);
2165 try testArgs(u64, i32, -1);
2166 try testArgs(u64, i32, 0);
2167 try testArgs(u128, i32, -1 << 31);
2168 try testArgs(u128, i32, -1);
2169 try testArgs(u128, i32, 0);
2170 try testArgs(u256, i32, -1 << 31);
2171 try testArgs(u256, i32, -1);
2172 try testArgs(u256, i32, 0);
2173 try testArgs(u512, i32, -1 << 31);
2174 try testArgs(u512, i32, -1);
2175 try testArgs(u512, i32, 0);
2176 try testArgs(u1024, i32, -1 << 31);
2177 try testArgs(u1024, i32, -1);
2178 try testArgs(u1024, i32, 0);
2179 try testArgs(i8, u32, 0);
2180 try testArgs(i8, u32, 1 << 0);
2181 try testArgs(i8, u32, 1 << 31);
2182 try testArgs(i16, u32, 0);
2183 try testArgs(i16, u32, 1 << 0);
2184 try testArgs(i16, u32, 1 << 31);
2185 try testArgs(i32, u32, 0);
2186 try testArgs(i32, u32, 1 << 0);
2187 try testArgs(i32, u32, 1 << 31);
2188 try testArgs(i64, u32, 0);
2189 try testArgs(i64, u32, 1 << 0);
2190 try testArgs(i64, u32, 1 << 31);
2191 try testArgs(i128, u32, 0);
2192 try testArgs(i128, u32, 1 << 0);
2193 try testArgs(i128, u32, 1 << 31);
2194 try testArgs(i256, u32, 0);
2195 try testArgs(i256, u32, 1 << 0);
2196 try testArgs(i256, u32, 1 << 31);
2197 try testArgs(i512, u32, 0);
2198 try testArgs(i512, u32, 1 << 0);
2199 try testArgs(i512, u32, 1 << 31);
2200 try testArgs(i1024, u32, 0);
2201 try testArgs(i1024, u32, 1 << 0);
2202 try testArgs(i1024, u32, 1 << 31);
2203
2204 try testArgs(u8, i33, -1 << 32);
2205 try testArgs(u8, i33, -1);
2206 try testArgs(u8, i33, 0);
2207 try testArgs(u16, i33, -1 << 32);
2208 try testArgs(u16, i33, -1);
2209 try testArgs(u16, i33, 0);
2210 try testArgs(u32, i33, -1 << 32);
2211 try testArgs(u32, i33, -1);
2212 try testArgs(u32, i33, 0);
2213 try testArgs(u64, i33, -1 << 32);
2214 try testArgs(u64, i33, -1);
2215 try testArgs(u64, i33, 0);
2216 try testArgs(u128, i33, -1 << 32);
2217 try testArgs(u128, i33, -1);
2218 try testArgs(u128, i33, 0);
2219 try testArgs(u256, i33, -1 << 32);
2220 try testArgs(u256, i33, -1);
2221 try testArgs(u256, i33, 0);
2222 try testArgs(u512, i33, -1 << 32);
2223 try testArgs(u512, i33, -1);
2224 try testArgs(u512, i33, 0);
2225 try testArgs(u1024, i33, -1 << 32);
2226 try testArgs(u1024, i33, -1);
2227 try testArgs(u1024, i33, 0);
2228 try testArgs(i8, u33, 0);
2229 try testArgs(i8, u33, 1 << 0);
2230 try testArgs(i8, u33, 1 << 32);
2231 try testArgs(i16, u33, 0);
2232 try testArgs(i16, u33, 1 << 0);
2233 try testArgs(i16, u33, 1 << 32);
2234 try testArgs(i32, u33, 0);
2235 try testArgs(i32, u33, 1 << 0);
2236 try testArgs(i32, u33, 1 << 32);
2237 try testArgs(i64, u33, 0);
2238 try testArgs(i64, u33, 1 << 0);
2239 try testArgs(i64, u33, 1 << 32);
2240 try testArgs(i128, u33, 0);
2241 try testArgs(i128, u33, 1 << 0);
2242 try testArgs(i128, u33, 1 << 32);
2243 try testArgs(i256, u33, 0);
2244 try testArgs(i256, u33, 1 << 0);
2245 try testArgs(i256, u33, 1 << 32);
2246 try testArgs(i512, u33, 0);
2247 try testArgs(i512, u33, 1 << 0);
2248 try testArgs(i512, u33, 1 << 32);
2249 try testArgs(i1024, u33, 0);
2250 try testArgs(i1024, u33, 1 << 0);
2251 try testArgs(i1024, u33, 1 << 32);
2252
2253 try testArgs(u8, i63, -1 << 62);
2254 try testArgs(u8, i63, -1);
2255 try testArgs(u8, i63, 0);
2256 try testArgs(u16, i63, -1 << 62);
2257 try testArgs(u16, i63, -1);
2258 try testArgs(u16, i63, 0);
2259 try testArgs(u32, i63, -1 << 62);
2260 try testArgs(u32, i63, -1);
2261 try testArgs(u32, i63, 0);
2262 try testArgs(u64, i63, -1 << 62);
2263 try testArgs(u64, i63, -1);
2264 try testArgs(u64, i63, 0);
2265 try testArgs(u128, i63, -1 << 62);
2266 try testArgs(u128, i63, -1);
2267 try testArgs(u128, i63, 0);
2268 try testArgs(u256, i63, -1 << 62);
2269 try testArgs(u256, i63, -1);
2270 try testArgs(u256, i63, 0);
2271 try testArgs(u512, i63, -1 << 62);
2272 try testArgs(u512, i63, -1);
2273 try testArgs(u512, i63, 0);
2274 try testArgs(u1024, i63, -1 << 62);
2275 try testArgs(u1024, i63, -1);
2276 try testArgs(u1024, i63, 0);
2277 try testArgs(i8, u63, 0);
2278 try testArgs(i8, u63, 1 << 0);
2279 try testArgs(i8, u63, 1 << 62);
2280 try testArgs(i16, u63, 0);
2281 try testArgs(i16, u63, 1 << 0);
2282 try testArgs(i16, u63, 1 << 62);
2283 try testArgs(i32, u63, 0);
2284 try testArgs(i32, u63, 1 << 0);
2285 try testArgs(i32, u63, 1 << 62);
2286 try testArgs(i64, u63, 0);
2287 try testArgs(i64, u63, 1 << 0);
2288 try testArgs(i64, u63, 1 << 62);
2289 try testArgs(i128, u63, 0);
2290 try testArgs(i128, u63, 1 << 0);
2291 try testArgs(i128, u63, 1 << 62);
2292 try testArgs(i256, u63, 0);
2293 try testArgs(i256, u63, 1 << 0);
2294 try testArgs(i256, u63, 1 << 62);
2295 try testArgs(i512, u63, 0);
2296 try testArgs(i512, u63, 1 << 0);
2297 try testArgs(i512, u63, 1 << 62);
2298 try testArgs(i1024, u63, 0);
2299 try testArgs(i1024, u63, 1 << 0);
2300 try testArgs(i1024, u63, 1 << 62);
2301
2302 try testArgs(u8, i64, -1 << 63);
2303 try testArgs(u8, i64, -1);
2304 try testArgs(u8, i64, 0);
2305 try testArgs(u16, i64, -1 << 63);
2306 try testArgs(u16, i64, -1);
2307 try testArgs(u16, i64, 0);
2308 try testArgs(u32, i64, -1 << 63);
2309 try testArgs(u32, i64, -1);
2310 try testArgs(u32, i64, 0);
2311 try testArgs(u64, i64, -1 << 63);
2312 try testArgs(u64, i64, -1);
2313 try testArgs(u64, i64, 0);
2314 try testArgs(u128, i64, -1 << 63);
2315 try testArgs(u128, i64, -1);
2316 try testArgs(u128, i64, 0);
2317 try testArgs(u256, i64, -1 << 63);
2318 try testArgs(u256, i64, -1);
2319 try testArgs(u256, i64, 0);
2320 try testArgs(u512, i64, -1 << 63);
2321 try testArgs(u512, i64, -1);
2322 try testArgs(u512, i64, 0);
2323 try testArgs(u1024, i64, -1 << 63);
2324 try testArgs(u1024, i64, -1);
2325 try testArgs(u1024, i64, 0);
2326 try testArgs(i8, u64, 0);
2327 try testArgs(i8, u64, 1 << 0);
2328 try testArgs(i8, u64, 1 << 63);
2329 try testArgs(i16, u64, 0);
2330 try testArgs(i16, u64, 1 << 0);
2331 try testArgs(i16, u64, 1 << 63);
2332 try testArgs(i32, u64, 0);
2333 try testArgs(i32, u64, 1 << 0);
2334 try testArgs(i32, u64, 1 << 63);
2335 try testArgs(i64, u64, 0);
2336 try testArgs(i64, u64, 1 << 0);
2337 try testArgs(i64, u64, 1 << 63);
2338 try testArgs(i128, u64, 0);
2339 try testArgs(i128, u64, 1 << 0);
2340 try testArgs(i128, u64, 1 << 63);
2341 try testArgs(i256, u64, 0);
2342 try testArgs(i256, u64, 1 << 0);
2343 try testArgs(i256, u64, 1 << 63);
2344 try testArgs(i512, u64, 0);
2345 try testArgs(i512, u64, 1 << 0);
2346 try testArgs(i512, u64, 1 << 63);
2347 try testArgs(i1024, u64, 0);
2348 try testArgs(i1024, u64, 1 << 0);
2349 try testArgs(i1024, u64, 1 << 63);
2350
2351 try testArgs(u8, i65, -1 << 64);
2352 try testArgs(u8, i65, -1);
2353 try testArgs(u8, i65, 0);
2354 try testArgs(u16, i65, -1 << 64);
2355 try testArgs(u16, i65, -1);
2356 try testArgs(u16, i65, 0);
2357 try testArgs(u32, i65, -1 << 64);
2358 try testArgs(u32, i65, -1);
2359 try testArgs(u32, i65, 0);
2360 try testArgs(u64, i65, -1 << 64);
2361 try testArgs(u64, i65, -1);
2362 try testArgs(u64, i65, 0);
2363 try testArgs(u128, i65, -1 << 64);
2364 try testArgs(u128, i65, -1);
2365 try testArgs(u128, i65, 0);
2366 try testArgs(u256, i65, -1 << 64);
2367 try testArgs(u256, i65, -1);
2368 try testArgs(u256, i65, 0);
2369 try testArgs(u512, i65, -1 << 64);
2370 try testArgs(u512, i65, -1);
2371 try testArgs(u512, i65, 0);
2372 try testArgs(u1024, i65, -1 << 64);
2373 try testArgs(u1024, i65, -1);
2374 try testArgs(u1024, i65, 0);
2375 try testArgs(i8, u65, 0);
2376 try testArgs(i8, u65, 1 << 0);
2377 try testArgs(i8, u65, 1 << 64);
2378 try testArgs(i16, u65, 0);
2379 try testArgs(i16, u65, 1 << 0);
2380 try testArgs(i16, u65, 1 << 64);
2381 try testArgs(i32, u65, 0);
2382 try testArgs(i32, u65, 1 << 0);
2383 try testArgs(i32, u65, 1 << 64);
2384 try testArgs(i64, u65, 0);
2385 try testArgs(i64, u65, 1 << 0);
2386 try testArgs(i64, u65, 1 << 64);
2387 try testArgs(i128, u65, 0);
2388 try testArgs(i128, u65, 1 << 0);
2389 try testArgs(i128, u65, 1 << 64);
2390 try testArgs(i256, u65, 0);
2391 try testArgs(i256, u65, 1 << 0);
2392 try testArgs(i256, u65, 1 << 64);
2393 try testArgs(i512, u65, 0);
2394 try testArgs(i512, u65, 1 << 0);
2395 try testArgs(i512, u65, 1 << 64);
2396 try testArgs(i1024, u65, 0);
2397 try testArgs(i1024, u65, 1 << 0);
2398 try testArgs(i1024, u65, 1 << 64);
2399
2400 try testArgs(u8, i95, -1 << 94);
2401 try testArgs(u8, i95, -1);
2402 try testArgs(u8, i95, 0);
2403 try testArgs(u16, i95, -1 << 94);
2404 try testArgs(u16, i95, -1);
2405 try testArgs(u16, i95, 0);
2406 try testArgs(u32, i95, -1 << 94);
2407 try testArgs(u32, i95, -1);
2408 try testArgs(u32, i95, 0);
2409 try testArgs(u64, i95, -1 << 94);
2410 try testArgs(u64, i95, -1);
2411 try testArgs(u64, i95, 0);
2412 try testArgs(u128, i95, -1 << 94);
2413 try testArgs(u128, i95, -1);
2414 try testArgs(u128, i95, 0);
2415 try testArgs(u256, i95, -1 << 94);
2416 try testArgs(u256, i95, -1);
2417 try testArgs(u256, i95, 0);
2418 try testArgs(u512, i95, -1 << 94);
2419 try testArgs(u512, i95, -1);
2420 try testArgs(u512, i95, 0);
2421 try testArgs(u1024, i95, -1 << 94);
2422 try testArgs(u1024, i95, -1);
2423 try testArgs(u1024, i95, 0);
2424 try testArgs(i8, u95, 0);
2425 try testArgs(i8, u95, 1 << 0);
2426 try testArgs(i8, u95, 1 << 94);
2427 try testArgs(i16, u95, 0);
2428 try testArgs(i16, u95, 1 << 0);
2429 try testArgs(i16, u95, 1 << 94);
2430 try testArgs(i32, u95, 0);
2431 try testArgs(i32, u95, 1 << 0);
2432 try testArgs(i32, u95, 1 << 94);
2433 try testArgs(i64, u95, 0);
2434 try testArgs(i64, u95, 1 << 0);
2435 try testArgs(i64, u95, 1 << 94);
2436 try testArgs(i128, u95, 0);
2437 try testArgs(i128, u95, 1 << 0);
2438 try testArgs(i128, u95, 1 << 94);
2439 try testArgs(i256, u95, 0);
2440 try testArgs(i256, u95, 1 << 0);
2441 try testArgs(i256, u95, 1 << 94);
2442 try testArgs(i512, u95, 0);
2443 try testArgs(i512, u95, 1 << 0);
2444 try testArgs(i512, u95, 1 << 94);
2445 try testArgs(i1024, u95, 0);
2446 try testArgs(i1024, u95, 1 << 0);
2447 try testArgs(i1024, u95, 1 << 94);
2448
2449 try testArgs(u8, i96, -1 << 95);
2450 try testArgs(u8, i96, -1);
2451 try testArgs(u8, i96, 0);
2452 try testArgs(u16, i96, -1 << 95);
2453 try testArgs(u16, i96, -1);
2454 try testArgs(u16, i96, 0);
2455 try testArgs(u32, i96, -1 << 95);
2456 try testArgs(u32, i96, -1);
2457 try testArgs(u32, i96, 0);
2458 try testArgs(u64, i96, -1 << 95);
2459 try testArgs(u64, i96, -1);
2460 try testArgs(u64, i96, 0);
2461 try testArgs(u128, i96, -1 << 95);
2462 try testArgs(u128, i96, -1);
2463 try testArgs(u128, i96, 0);
2464 try testArgs(u256, i96, -1 << 95);
2465 try testArgs(u256, i96, -1);
2466 try testArgs(u256, i96, 0);
2467 try testArgs(u512, i96, -1 << 95);
2468 try testArgs(u512, i96, -1);
2469 try testArgs(u512, i96, 0);
2470 try testArgs(u1024, i96, -1 << 95);
2471 try testArgs(u1024, i96, -1);
2472 try testArgs(u1024, i96, 0);
2473 try testArgs(i8, u96, 0);
2474 try testArgs(i8, u96, 1 << 0);
2475 try testArgs(i8, u96, 1 << 95);
2476 try testArgs(i16, u96, 0);
2477 try testArgs(i16, u96, 1 << 0);
2478 try testArgs(i16, u96, 1 << 95);
2479 try testArgs(i32, u96, 0);
2480 try testArgs(i32, u96, 1 << 0);
2481 try testArgs(i32, u96, 1 << 95);
2482 try testArgs(i64, u96, 0);
2483 try testArgs(i64, u96, 1 << 0);
2484 try testArgs(i64, u96, 1 << 95);
2485 try testArgs(i128, u96, 0);
2486 try testArgs(i128, u96, 1 << 0);
2487 try testArgs(i128, u96, 1 << 95);
2488 try testArgs(i256, u96, 0);
2489 try testArgs(i256, u96, 1 << 0);
2490 try testArgs(i256, u96, 1 << 95);
2491 try testArgs(i512, u96, 0);
2492 try testArgs(i512, u96, 1 << 0);
2493 try testArgs(i512, u96, 1 << 95);
2494 try testArgs(i1024, u96, 0);
2495 try testArgs(i1024, u96, 1 << 0);
2496 try testArgs(i1024, u96, 1 << 95);
2497
2498 try testArgs(u8, i97, -1 << 96);
2499 try testArgs(u8, i97, -1);
2500 try testArgs(u8, i97, 0);
2501 try testArgs(u16, i97, -1 << 96);
2502 try testArgs(u16, i97, -1);
2503 try testArgs(u16, i97, 0);
2504 try testArgs(u32, i97, -1 << 96);
2505 try testArgs(u32, i97, -1);
2506 try testArgs(u32, i97, 0);
2507 try testArgs(u64, i97, -1 << 96);
2508 try testArgs(u64, i97, -1);
2509 try testArgs(u64, i97, 0);
2510 try testArgs(u128, i97, -1 << 96);
2511 try testArgs(u128, i97, -1);
2512 try testArgs(u128, i97, 0);
2513 try testArgs(u256, i97, -1 << 96);
2514 try testArgs(u256, i97, -1);
2515 try testArgs(u256, i97, 0);
2516 try testArgs(u512, i97, -1 << 96);
2517 try testArgs(u512, i97, -1);
2518 try testArgs(u512, i97, 0);
2519 try testArgs(u1024, i97, -1 << 96);
2520 try testArgs(u1024, i97, -1);
2521 try testArgs(u1024, i97, 0);
2522 try testArgs(i8, u97, 0);
2523 try testArgs(i8, u97, 1 << 0);
2524 try testArgs(i8, u97, 1 << 96);
2525 try testArgs(i16, u97, 0);
2526 try testArgs(i16, u97, 1 << 0);
2527 try testArgs(i16, u97, 1 << 96);
2528 try testArgs(i32, u97, 0);
2529 try testArgs(i32, u97, 1 << 0);
2530 try testArgs(i32, u97, 1 << 96);
2531 try testArgs(i64, u97, 0);
2532 try testArgs(i64, u97, 1 << 0);
2533 try testArgs(i64, u97, 1 << 96);
2534 try testArgs(i128, u97, 0);
2535 try testArgs(i128, u97, 1 << 0);
2536 try testArgs(i128, u97, 1 << 96);
2537 try testArgs(i256, u97, 0);
2538 try testArgs(i256, u97, 1 << 0);
2539 try testArgs(i256, u97, 1 << 96);
2540 try testArgs(i512, u97, 0);
2541 try testArgs(i512, u97, 1 << 0);
2542 try testArgs(i512, u97, 1 << 96);
2543 try testArgs(i1024, u97, 0);
2544 try testArgs(i1024, u97, 1 << 0);
2545 try testArgs(i1024, u97, 1 << 96);
2546
2547 try testArgs(u8, i127, -1 << 126);
2548 try testArgs(u8, i127, -1);
2549 try testArgs(u8, i127, 0);
2550 try testArgs(u16, i127, -1 << 126);
2551 try testArgs(u16, i127, -1);
2552 try testArgs(u16, i127, 0);
2553 try testArgs(u32, i127, -1 << 126);
2554 try testArgs(u32, i127, -1);
2555 try testArgs(u32, i127, 0);
2556 try testArgs(u64, i127, -1 << 126);
2557 try testArgs(u64, i127, -1);
2558 try testArgs(u64, i127, 0);
2559 try testArgs(u128, i127, -1 << 126);
2560 try testArgs(u128, i127, -1);
2561 try testArgs(u128, i127, 0);
2562 try testArgs(u256, i127, -1 << 126);
2563 try testArgs(u256, i127, -1);
2564 try testArgs(u256, i127, 0);
2565 try testArgs(u512, i127, -1 << 126);
2566 try testArgs(u512, i127, -1);
2567 try testArgs(u512, i127, 0);
2568 try testArgs(u1024, i127, -1 << 126);
2569 try testArgs(u1024, i127, -1);
2570 try testArgs(u1024, i127, 0);
2571 try testArgs(i8, u127, 0);
2572 try testArgs(i8, u127, 1 << 0);
2573 try testArgs(i8, u127, 1 << 126);
2574 try testArgs(i16, u127, 0);
2575 try testArgs(i16, u127, 1 << 0);
2576 try testArgs(i16, u127, 1 << 126);
2577 try testArgs(i32, u127, 0);
2578 try testArgs(i32, u127, 1 << 0);
2579 try testArgs(i32, u127, 1 << 126);
2580 try testArgs(i64, u127, 0);
2581 try testArgs(i64, u127, 1 << 0);
2582 try testArgs(i64, u127, 1 << 126);
2583 try testArgs(i128, u127, 0);
2584 try testArgs(i128, u127, 1 << 0);
2585 try testArgs(i128, u127, 1 << 126);
2586 try testArgs(i256, u127, 0);
2587 try testArgs(i256, u127, 1 << 0);
2588 try testArgs(i256, u127, 1 << 126);
2589 try testArgs(i512, u127, 0);
2590 try testArgs(i512, u127, 1 << 0);
2591 try testArgs(i512, u127, 1 << 126);
2592 try testArgs(i1024, u127, 0);
2593 try testArgs(i1024, u127, 1 << 0);
2594 try testArgs(i1024, u127, 1 << 126);
2595
2596 try testArgs(u8, i128, -1 << 127);
2597 try testArgs(u8, i128, -1);
2598 try testArgs(u8, i128, 0);
2599 try testArgs(u16, i128, -1 << 127);
2600 try testArgs(u16, i128, -1);
2601 try testArgs(u16, i128, 0);
2602 try testArgs(u32, i128, -1 << 127);
2603 try testArgs(u32, i128, -1);
2604 try testArgs(u32, i128, 0);
2605 try testArgs(u64, i128, -1 << 127);
2606 try testArgs(u64, i128, -1);
2607 try testArgs(u64, i128, 0);
2608 try testArgs(u128, i128, -1 << 127);
2609 try testArgs(u128, i128, -1);
2610 try testArgs(u128, i128, 0);
2611 try testArgs(u256, i128, -1 << 127);
2612 try testArgs(u256, i128, -1);
2613 try testArgs(u256, i128, 0);
2614 try testArgs(u512, i128, -1 << 127);
2615 try testArgs(u512, i128, -1);
2616 try testArgs(u512, i128, 0);
2617 try testArgs(u1024, i128, -1 << 127);
2618 try testArgs(u1024, i128, -1);
2619 try testArgs(u1024, i128, 0);
2620 try testArgs(i8, u128, 0);
2621 try testArgs(i8, u128, 1 << 0);
2622 try testArgs(i8, u128, 1 << 127);
2623 try testArgs(i16, u128, 0);
2624 try testArgs(i16, u128, 1 << 0);
2625 try testArgs(i16, u128, 1 << 127);
2626 try testArgs(i32, u128, 0);
2627 try testArgs(i32, u128, 1 << 0);
2628 try testArgs(i32, u128, 1 << 127);
2629 try testArgs(i64, u128, 0);
2630 try testArgs(i64, u128, 1 << 0);
2631 try testArgs(i64, u128, 1 << 127);
2632 try testArgs(i128, u128, 0);
2633 try testArgs(i128, u128, 1 << 0);
2634 try testArgs(i128, u128, 1 << 127);
2635 try testArgs(i256, u128, 0);
2636 try testArgs(i256, u128, 1 << 0);
2637 try testArgs(i256, u128, 1 << 127);
2638 try testArgs(i512, u128, 0);
2639 try testArgs(i512, u128, 1 << 0);
2640 try testArgs(i512, u128, 1 << 127);
2641 try testArgs(i1024, u128, 0);
2642 try testArgs(i1024, u128, 1 << 0);
2643 try testArgs(i1024, u128, 1 << 127);
2644
2645 try testArgs(u8, i129, -1 << 128);
2646 try testArgs(u8, i129, -1);
2647 try testArgs(u8, i129, 0);
2648 try testArgs(u16, i129, -1 << 128);
2649 try testArgs(u16, i129, -1);
2650 try testArgs(u16, i129, 0);
2651 try testArgs(u32, i129, -1 << 128);
2652 try testArgs(u32, i129, -1);
2653 try testArgs(u32, i129, 0);
2654 try testArgs(u64, i129, -1 << 128);
2655 try testArgs(u64, i129, -1);
2656 try testArgs(u64, i129, 0);
2657 try testArgs(u128, i129, -1 << 128);
2658 try testArgs(u128, i129, -1);
2659 try testArgs(u128, i129, 0);
2660 try testArgs(u256, i129, -1 << 128);
2661 try testArgs(u256, i129, -1);
2662 try testArgs(u256, i129, 0);
2663 try testArgs(u512, i129, -1 << 128);
2664 try testArgs(u512, i129, -1);
2665 try testArgs(u512, i129, 0);
2666 try testArgs(u1024, i129, -1 << 128);
2667 try testArgs(u1024, i129, -1);
2668 try testArgs(u1024, i129, 0);
2669 try testArgs(i8, u129, 0);
2670 try testArgs(i8, u129, 1 << 0);
2671 try testArgs(i8, u129, 1 << 128);
2672 try testArgs(i16, u129, 0);
2673 try testArgs(i16, u129, 1 << 0);
2674 try testArgs(i16, u129, 1 << 128);
2675 try testArgs(i32, u129, 0);
2676 try testArgs(i32, u129, 1 << 0);
2677 try testArgs(i32, u129, 1 << 128);
2678 try testArgs(i64, u129, 0);
2679 try testArgs(i64, u129, 1 << 0);
2680 try testArgs(i64, u129, 1 << 128);
2681 try testArgs(i128, u129, 0);
2682 try testArgs(i128, u129, 1 << 0);
2683 try testArgs(i128, u129, 1 << 128);
2684 try testArgs(i256, u129, 0);
2685 try testArgs(i256, u129, 1 << 0);
2686 try testArgs(i256, u129, 1 << 128);
2687 try testArgs(i512, u129, 0);
2688 try testArgs(i512, u129, 1 << 0);
2689 try testArgs(i512, u129, 1 << 128);
2690 try testArgs(i1024, u129, 0);
2691 try testArgs(i1024, u129, 1 << 0);
2692 try testArgs(i1024, u129, 1 << 128);
2693
2694 try testArgs(u8, i255, -1 << 254);
2695 try testArgs(u8, i255, -1);
2696 try testArgs(u8, i255, 0);
2697 try testArgs(u16, i255, -1 << 254);
2698 try testArgs(u16, i255, -1);
2699 try testArgs(u16, i255, 0);
2700 try testArgs(u32, i255, -1 << 254);
2701 try testArgs(u32, i255, -1);
2702 try testArgs(u32, i255, 0);
2703 try testArgs(u64, i255, -1 << 254);
2704 try testArgs(u64, i255, -1);
2705 try testArgs(u64, i255, 0);
2706 try testArgs(u128, i255, -1 << 254);
2707 try testArgs(u128, i255, -1);
2708 try testArgs(u128, i255, 0);
2709 try testArgs(u256, i255, -1 << 254);
2710 try testArgs(u256, i255, -1);
2711 try testArgs(u256, i255, 0);
2712 try testArgs(u512, i255, -1 << 254);
2713 try testArgs(u512, i255, -1);
2714 try testArgs(u512, i255, 0);
2715 try testArgs(u1024, i255, -1 << 254);
2716 try testArgs(u1024, i255, -1);
2717 try testArgs(u1024, i255, 0);
2718 try testArgs(i8, u255, 0);
2719 try testArgs(i8, u255, 1 << 0);
2720 try testArgs(i8, u255, 1 << 254);
2721 try testArgs(i16, u255, 0);
2722 try testArgs(i16, u255, 1 << 0);
2723 try testArgs(i16, u255, 1 << 254);
2724 try testArgs(i32, u255, 0);
2725 try testArgs(i32, u255, 1 << 0);
2726 try testArgs(i32, u255, 1 << 254);
2727 try testArgs(i64, u255, 0);
2728 try testArgs(i64, u255, 1 << 0);
2729 try testArgs(i64, u255, 1 << 254);
2730 try testArgs(i128, u255, 0);
2731 try testArgs(i128, u255, 1 << 0);
2732 try testArgs(i128, u255, 1 << 254);
2733 try testArgs(i256, u255, 0);
2734 try testArgs(i256, u255, 1 << 0);
2735 try testArgs(i256, u255, 1 << 254);
2736 try testArgs(i512, u255, 0);
2737 try testArgs(i512, u255, 1 << 0);
2738 try testArgs(i512, u255, 1 << 254);
2739 try testArgs(i1024, u255, 0);
2740 try testArgs(i1024, u255, 1 << 0);
2741 try testArgs(i1024, u255, 1 << 254);
2742
2743 try testArgs(u8, i256, -1 << 255);
2744 try testArgs(u8, i256, -1);
2745 try testArgs(u8, i256, 0);
2746 try testArgs(u16, i256, -1 << 255);
2747 try testArgs(u16, i256, -1);
2748 try testArgs(u16, i256, 0);
2749 try testArgs(u32, i256, -1 << 255);
2750 try testArgs(u32, i256, -1);
2751 try testArgs(u32, i256, 0);
2752 try testArgs(u64, i256, -1 << 255);
2753 try testArgs(u64, i256, -1);
2754 try testArgs(u64, i256, 0);
2755 try testArgs(u128, i256, -1 << 255);
2756 try testArgs(u128, i256, -1);
2757 try testArgs(u128, i256, 0);
2758 try testArgs(u256, i256, -1 << 255);
2759 try testArgs(u256, i256, -1);
2760 try testArgs(u256, i256, 0);
2761 try testArgs(u512, i256, -1 << 255);
2762 try testArgs(u512, i256, -1);
2763 try testArgs(u512, i256, 0);
2764 try testArgs(u1024, i256, -1 << 255);
2765 try testArgs(u1024, i256, -1);
2766 try testArgs(u1024, i256, 0);
2767 try testArgs(i8, u256, 0);
2768 try testArgs(i8, u256, 1 << 0);
2769 try testArgs(i8, u256, 1 << 255);
2770 try testArgs(i16, u256, 0);
2771 try testArgs(i16, u256, 1 << 0);
2772 try testArgs(i16, u256, 1 << 255);
2773 try testArgs(i32, u256, 0);
2774 try testArgs(i32, u256, 1 << 0);
2775 try testArgs(i32, u256, 1 << 255);
2776 try testArgs(i64, u256, 0);
2777 try testArgs(i64, u256, 1 << 0);
2778 try testArgs(i64, u256, 1 << 255);
2779 try testArgs(i128, u256, 0);
2780 try testArgs(i128, u256, 1 << 0);
2781 try testArgs(i128, u256, 1 << 255);
2782 try testArgs(i256, u256, 0);
2783 try testArgs(i256, u256, 1 << 0);
2784 try testArgs(i256, u256, 1 << 255);
2785 try testArgs(i512, u256, 0);
2786 try testArgs(i512, u256, 1 << 0);
2787 try testArgs(i512, u256, 1 << 255);
2788 try testArgs(i1024, u256, 0);
2789 try testArgs(i1024, u256, 1 << 0);
2790 try testArgs(i1024, u256, 1 << 255);
2791
2792 try testArgs(u8, i257, -1 << 256);
2793 try testArgs(u8, i257, -1);
2794 try testArgs(u8, i257, 0);
2795 try testArgs(u16, i257, -1 << 256);
2796 try testArgs(u16, i257, -1);
2797 try testArgs(u16, i257, 0);
2798 try testArgs(u32, i257, -1 << 256);
2799 try testArgs(u32, i257, -1);
2800 try testArgs(u32, i257, 0);
2801 try testArgs(u64, i257, -1 << 256);
2802 try testArgs(u64, i257, -1);
2803 try testArgs(u64, i257, 0);
2804 try testArgs(u128, i257, -1 << 256);
2805 try testArgs(u128, i257, -1);
2806 try testArgs(u128, i257, 0);
2807 try testArgs(u256, i257, -1 << 256);
2808 try testArgs(u256, i257, -1);
2809 try testArgs(u256, i257, 0);
2810 try testArgs(u512, i257, -1 << 256);
2811 try testArgs(u512, i257, -1);
2812 try testArgs(u512, i257, 0);
2813 try testArgs(u1024, i257, -1 << 256);
2814 try testArgs(u1024, i257, -1);
2815 try testArgs(u1024, i257, 0);
2816 try testArgs(i8, u257, 0);
2817 try testArgs(i8, u257, 1 << 0);
2818 try testArgs(i8, u257, 1 << 256);
2819 try testArgs(i16, u257, 0);
2820 try testArgs(i16, u257, 1 << 0);
2821 try testArgs(i16, u257, 1 << 256);
2822 try testArgs(i32, u257, 0);
2823 try testArgs(i32, u257, 1 << 0);
2824 try testArgs(i32, u257, 1 << 256);
2825 try testArgs(i64, u257, 0);
2826 try testArgs(i64, u257, 1 << 0);
2827 try testArgs(i64, u257, 1 << 256);
2828 try testArgs(i128, u257, 0);
2829 try testArgs(i128, u257, 1 << 0);
2830 try testArgs(i128, u257, 1 << 256);
2831 try testArgs(i256, u257, 0);
2832 try testArgs(i256, u257, 1 << 0);
2833 try testArgs(i256, u257, 1 << 256);
2834 try testArgs(i512, u257, 0);
2835 try testArgs(i512, u257, 1 << 0);
2836 try testArgs(i512, u257, 1 << 256);
2837 try testArgs(i1024, u257, 0);
2838 try testArgs(i1024, u257, 1 << 0);
2839 try testArgs(i1024, u257, 1 << 256);
2840
2841 try testArgs(u8, i511, -1 << 510);
2842 try testArgs(u8, i511, -1);
2843 try testArgs(u8, i511, 0);
2844 try testArgs(u16, i511, -1 << 510);
2845 try testArgs(u16, i511, -1);
2846 try testArgs(u16, i511, 0);
2847 try testArgs(u32, i511, -1 << 510);
2848 try testArgs(u32, i511, -1);
2849 try testArgs(u32, i511, 0);
2850 try testArgs(u64, i511, -1 << 510);
2851 try testArgs(u64, i511, -1);
2852 try testArgs(u64, i511, 0);
2853 try testArgs(u128, i511, -1 << 510);
2854 try testArgs(u128, i511, -1);
2855 try testArgs(u128, i511, 0);
2856 try testArgs(u256, i511, -1 << 510);
2857 try testArgs(u256, i511, -1);
2858 try testArgs(u256, i511, 0);
2859 try testArgs(u512, i511, -1 << 510);
2860 try testArgs(u512, i511, -1);
2861 try testArgs(u512, i511, 0);
2862 try testArgs(u1024, i511, -1 << 510);
2863 try testArgs(u1024, i511, -1);
2864 try testArgs(u1024, i511, 0);
2865 try testArgs(i8, u511, 0);
2866 try testArgs(i8, u511, 1 << 0);
2867 try testArgs(i8, u511, 1 << 510);
2868 try testArgs(i16, u511, 0);
2869 try testArgs(i16, u511, 1 << 0);
2870 try testArgs(i16, u511, 1 << 510);
2871 try testArgs(i32, u511, 0);
2872 try testArgs(i32, u511, 1 << 0);
2873 try testArgs(i32, u511, 1 << 510);
2874 try testArgs(i64, u511, 0);
2875 try testArgs(i64, u511, 1 << 0);
2876 try testArgs(i64, u511, 1 << 510);
2877 try testArgs(i128, u511, 0);
2878 try testArgs(i128, u511, 1 << 0);
2879 try testArgs(i128, u511, 1 << 510);
2880 try testArgs(i256, u511, 0);
2881 try testArgs(i256, u511, 1 << 0);
2882 try testArgs(i256, u511, 1 << 510);
2883 try testArgs(i512, u511, 0);
2884 try testArgs(i512, u511, 1 << 0);
2885 try testArgs(i512, u511, 1 << 510);
2886 try testArgs(i1024, u511, 0);
2887 try testArgs(i1024, u511, 1 << 0);
2888 try testArgs(i1024, u511, 1 << 510);
2889
2890 try testArgs(u8, i512, -1 << 511);
2891 try testArgs(u8, i512, -1);
2892 try testArgs(u8, i512, 0);
2893 try testArgs(u16, i512, -1 << 511);
2894 try testArgs(u16, i512, -1);
2895 try testArgs(u16, i512, 0);
2896 try testArgs(u32, i512, -1 << 511);
2897 try testArgs(u32, i512, -1);
2898 try testArgs(u32, i512, 0);
2899 try testArgs(u64, i512, -1 << 511);
2900 try testArgs(u64, i512, -1);
2901 try testArgs(u64, i512, 0);
2902 try testArgs(u128, i512, -1 << 511);
2903 try testArgs(u128, i512, -1);
2904 try testArgs(u128, i512, 0);
2905 try testArgs(u256, i512, -1 << 511);
2906 try testArgs(u256, i512, -1);
2907 try testArgs(u256, i512, 0);
2908 try testArgs(u512, i512, -1 << 511);
2909 try testArgs(u512, i512, -1);
2910 try testArgs(u512, i512, 0);
2911 try testArgs(u1024, i512, -1 << 511);
2912 try testArgs(u1024, i512, -1);
2913 try testArgs(u1024, i512, 0);
2914 try testArgs(i8, u512, 0);
2915 try testArgs(i8, u512, 1 << 0);
2916 try testArgs(i8, u512, 1 << 511);
2917 try testArgs(i16, u512, 0);
2918 try testArgs(i16, u512, 1 << 0);
2919 try testArgs(i16, u512, 1 << 511);
2920 try testArgs(i32, u512, 0);
2921 try testArgs(i32, u512, 1 << 0);
2922 try testArgs(i32, u512, 1 << 511);
2923 try testArgs(i64, u512, 0);
2924 try testArgs(i64, u512, 1 << 0);
2925 try testArgs(i64, u512, 1 << 511);
2926 try testArgs(i128, u512, 0);
2927 try testArgs(i128, u512, 1 << 0);
2928 try testArgs(i128, u512, 1 << 511);
2929 try testArgs(i256, u512, 0);
2930 try testArgs(i256, u512, 1 << 0);
2931 try testArgs(i256, u512, 1 << 511);
2932 try testArgs(i512, u512, 0);
2933 try testArgs(i512, u512, 1 << 0);
2934 try testArgs(i512, u512, 1 << 511);
2935 try testArgs(i1024, u512, 0);
2936 try testArgs(i1024, u512, 1 << 0);
2937 try testArgs(i1024, u512, 1 << 511);
2938
2939 try testArgs(u8, i513, -1 << 512);
2940 try testArgs(u8, i513, -1);
2941 try testArgs(u8, i513, 0);
2942 try testArgs(u16, i513, -1 << 512);
2943 try testArgs(u16, i513, -1);
2944 try testArgs(u16, i513, 0);
2945 try testArgs(u32, i513, -1 << 512);
2946 try testArgs(u32, i513, -1);
2947 try testArgs(u32, i513, 0);
2948 try testArgs(u64, i513, -1 << 512);
2949 try testArgs(u64, i513, -1);
2950 try testArgs(u64, i513, 0);
2951 try testArgs(u128, i513, -1 << 512);
2952 try testArgs(u128, i513, -1);
2953 try testArgs(u128, i513, 0);
2954 try testArgs(u256, i513, -1 << 512);
2955 try testArgs(u256, i513, -1);
2956 try testArgs(u256, i513, 0);
2957 try testArgs(u512, i513, -1 << 512);
2958 try testArgs(u512, i513, -1);
2959 try testArgs(u512, i513, 0);
2960 try testArgs(u1024, i513, -1 << 512);
2961 try testArgs(u1024, i513, -1);
2962 try testArgs(u1024, i513, 0);
2963 try testArgs(i8, u513, 0);
2964 try testArgs(i8, u513, 1 << 0);
2965 try testArgs(i8, u513, 1 << 512);
2966 try testArgs(i16, u513, 0);
2967 try testArgs(i16, u513, 1 << 0);
2968 try testArgs(i16, u513, 1 << 512);
2969 try testArgs(i32, u513, 0);
2970 try testArgs(i32, u513, 1 << 0);
2971 try testArgs(i32, u513, 1 << 512);
2972 try testArgs(i64, u513, 0);
2973 try testArgs(i64, u513, 1 << 0);
2974 try testArgs(i64, u513, 1 << 512);
2975 try testArgs(i128, u513, 0);
2976 try testArgs(i128, u513, 1 << 0);
2977 try testArgs(i128, u513, 1 << 512);
2978 try testArgs(i256, u513, 0);
2979 try testArgs(i256, u513, 1 << 0);
2980 try testArgs(i256, u513, 1 << 512);
2981 try testArgs(i512, u513, 0);
2982 try testArgs(i512, u513, 1 << 0);
2983 try testArgs(i512, u513, 1 << 512);
2984 try testArgs(i1024, u513, 0);
2985 try testArgs(i1024, u513, 1 << 0);
2986 try testArgs(i1024, u513, 1 << 512);
2987
2988 try testArgs(u8, i1023, -1 << 1022);
2989 try testArgs(u8, i1023, -1);
2990 try testArgs(u8, i1023, 0);
2991 try testArgs(u16, i1023, -1 << 1022);
2992 try testArgs(u16, i1023, -1);
2993 try testArgs(u16, i1023, 0);
2994 try testArgs(u32, i1023, -1 << 1022);
2995 try testArgs(u32, i1023, -1);
2996 try testArgs(u32, i1023, 0);
2997 try testArgs(u64, i1023, -1 << 1022);
2998 try testArgs(u64, i1023, -1);
2999 try testArgs(u64, i1023, 0);
3000 try testArgs(u128, i1023, -1 << 1022);
3001 try testArgs(u128, i1023, -1);
3002 try testArgs(u128, i1023, 0);
3003 try testArgs(u256, i1023, -1 << 1022);
3004 try testArgs(u256, i1023, -1);
3005 try testArgs(u256, i1023, 0);
3006 try testArgs(u512, i1023, -1 << 1022);
3007 try testArgs(u512, i1023, -1);
3008 try testArgs(u512, i1023, 0);
3009 try testArgs(u1024, i1023, -1 << 1022);
3010 try testArgs(u1024, i1023, -1);
3011 try testArgs(u1024, i1023, 0);
3012 try testArgs(i8, u1023, 0);
3013 try testArgs(i8, u1023, 1 << 0);
3014 try testArgs(i8, u1023, 1 << 1022);
3015 try testArgs(i16, u1023, 0);
3016 try testArgs(i16, u1023, 1 << 0);
3017 try testArgs(i16, u1023, 1 << 1022);
3018 try testArgs(i32, u1023, 0);
3019 try testArgs(i32, u1023, 1 << 0);
3020 try testArgs(i32, u1023, 1 << 1022);
3021 try testArgs(i64, u1023, 0);
3022 try testArgs(i64, u1023, 1 << 0);
3023 try testArgs(i64, u1023, 1 << 1022);
3024 try testArgs(i128, u1023, 0);
3025 try testArgs(i128, u1023, 1 << 0);
3026 try testArgs(i128, u1023, 1 << 1022);
3027 try testArgs(i256, u1023, 0);
3028 try testArgs(i256, u1023, 1 << 0);
3029 try testArgs(i256, u1023, 1 << 1022);
3030 try testArgs(i512, u1023, 0);
3031 try testArgs(i512, u1023, 1 << 0);
3032 try testArgs(i512, u1023, 1 << 1022);
3033 try testArgs(i1024, u1023, 0);
3034 try testArgs(i1024, u1023, 1 << 0);
3035 try testArgs(i1024, u1023, 1 << 1022);
3036
3037 try testArgs(u8, i1024, -1 << 1023);
3038 try testArgs(u8, i1024, -1);
3039 try testArgs(u8, i1024, 0);
3040 try testArgs(u16, i1024, -1 << 1023);
3041 try testArgs(u16, i1024, -1);
3042 try testArgs(u16, i1024, 0);
3043 try testArgs(u32, i1024, -1 << 1023);
3044 try testArgs(u32, i1024, -1);
3045 try testArgs(u32, i1024, 0);
3046 try testArgs(u64, i1024, -1 << 1023);
3047 try testArgs(u64, i1024, -1);
3048 try testArgs(u64, i1024, 0);
3049 try testArgs(u128, i1024, -1 << 1023);
3050 try testArgs(u128, i1024, -1);
3051 try testArgs(u128, i1024, 0);
3052 try testArgs(u256, i1024, -1 << 1023);
3053 try testArgs(u256, i1024, -1);
3054 try testArgs(u256, i1024, 0);
3055 try testArgs(u512, i1024, -1 << 1023);
3056 try testArgs(u512, i1024, -1);
3057 try testArgs(u512, i1024, 0);
3058 try testArgs(u1024, i1024, -1 << 1023);
3059 try testArgs(u1024, i1024, -1);
3060 try testArgs(u1024, i1024, 0);
3061 try testArgs(i8, u1024, 0);
3062 try testArgs(i8, u1024, 1 << 0);
3063 try testArgs(i8, u1024, 1 << 1023);
3064 try testArgs(i16, u1024, 0);
3065 try testArgs(i16, u1024, 1 << 0);
3066 try testArgs(i16, u1024, 1 << 1023);
3067 try testArgs(i32, u1024, 0);
3068 try testArgs(i32, u1024, 1 << 0);
3069 try testArgs(i32, u1024, 1 << 1023);
3070 try testArgs(i64, u1024, 0);
3071 try testArgs(i64, u1024, 1 << 0);
3072 try testArgs(i64, u1024, 1 << 1023);
3073 try testArgs(i128, u1024, 0);
3074 try testArgs(i128, u1024, 1 << 0);
3075 try testArgs(i128, u1024, 1 << 1023);
3076 try testArgs(i256, u1024, 0);
3077 try testArgs(i256, u1024, 1 << 0);
3078 try testArgs(i256, u1024, 1 << 1023);
3079 try testArgs(i512, u1024, 0);
3080 try testArgs(i512, u1024, 1 << 0);
3081 try testArgs(i512, u1024, 1 << 1023);
3082 try testArgs(i1024, u1024, 0);
3083 try testArgs(i1024, u1024, 1 << 0);
3084 try testArgs(i1024, u1024, 1 << 1023);
3085
3086 try testArgs(u8, i1025, -1 << 1024);
3087 try testArgs(u8, i1025, -1);
3088 try testArgs(u8, i1025, 0);
3089 try testArgs(u16, i1025, -1 << 1024);
3090 try testArgs(u16, i1025, -1);
3091 try testArgs(u16, i1025, 0);
3092 try testArgs(u32, i1025, -1 << 1024);
3093 try testArgs(u32, i1025, -1);
3094 try testArgs(u32, i1025, 0);
3095 try testArgs(u64, i1025, -1 << 1024);
3096 try testArgs(u64, i1025, -1);
3097 try testArgs(u64, i1025, 0);
3098 try testArgs(u128, i1025, -1 << 1024);
3099 try testArgs(u128, i1025, -1);
3100 try testArgs(u128, i1025, 0);
3101 try testArgs(u256, i1025, -1 << 1024);
3102 try testArgs(u256, i1025, -1);
3103 try testArgs(u256, i1025, 0);
3104 try testArgs(u512, i1025, -1 << 1024);
3105 try testArgs(u512, i1025, -1);
3106 try testArgs(u512, i1025, 0);
3107 try testArgs(u1024, i1025, -1 << 1024);
3108 try testArgs(u1024, i1025, -1);
3109 try testArgs(u1024, i1025, 0);
3110 try testArgs(i8, u1025, 0);
3111 try testArgs(i8, u1025, 1 << 0);
3112 try testArgs(i8, u1025, 1 << 1024);
3113 try testArgs(i16, u1025, 0);
3114 try testArgs(i16, u1025, 1 << 0);
3115 try testArgs(i16, u1025, 1 << 1024);
3116 try testArgs(i32, u1025, 0);
3117 try testArgs(i32, u1025, 1 << 0);
3118 try testArgs(i32, u1025, 1 << 1024);
3119 try testArgs(i64, u1025, 0);
3120 try testArgs(i64, u1025, 1 << 0);
3121 try testArgs(i64, u1025, 1 << 1024);
3122 try testArgs(i128, u1025, 0);
3123 try testArgs(i128, u1025, 1 << 0);
3124 try testArgs(i128, u1025, 1 << 1024);
3125 try testArgs(i256, u1025, 0);
3126 try testArgs(i256, u1025, 1 << 0);
3127 try testArgs(i256, u1025, 1 << 1024);
3128 try testArgs(i512, u1025, 0);
3129 try testArgs(i512, u1025, 1 << 0);
3130 try testArgs(i512, u1025, 1 << 1024);
3131 try testArgs(i1024, u1025, 0);
3132 try testArgs(i1024, u1025, 1 << 0);
3133 try testArgs(i1024, u1025, 1 << 1024);
3134 }
3135 fn testFloats() !void {
3136 @setEvalBranchQuota(3_100);
3137
3138 try testArgs(f16, f16, -nan(f16));
3139 try testArgs(f16, f16, -inf(f16));
3140 try testArgs(f16, f16, -fmax(f16));
3141 try testArgs(f16, f16, -1e1);
3142 try testArgs(f16, f16, -1e0);
3143 try testArgs(f16, f16, -1e-1);
3144 try testArgs(f16, f16, -fmin(f16));
3145 try testArgs(f16, f16, -tmin(f16));
3146 try testArgs(f16, f16, -0.0);
3147 try testArgs(f16, f16, 0.0);
3148 try testArgs(f16, f16, tmin(f16));
3149 try testArgs(f16, f16, fmin(f16));
3150 try testArgs(f16, f16, 1e-1);
3151 try testArgs(f16, f16, 1e0);
3152 try testArgs(f16, f16, 1e1);
3153 try testArgs(f16, f16, fmax(f16));
3154 try testArgs(f16, f16, inf(f16));
3155 try testArgs(f16, f16, nan(f16));
3156
3157 try testArgs(f32, f16, -nan(f16));
3158 try testArgs(f32, f16, -inf(f16));
3159 try testArgs(f32, f16, -fmax(f16));
3160 try testArgs(f32, f16, -1e1);
3161 try testArgs(f32, f16, -1e0);
3162 try testArgs(f32, f16, -1e-1);
3163 try testArgs(f32, f16, -fmin(f16));
3164 try testArgs(f32, f16, -tmin(f16));
3165 try testArgs(f32, f16, -0.0);
3166 try testArgs(f32, f16, 0.0);
3167 try testArgs(f32, f16, tmin(f16));
3168 try testArgs(f32, f16, fmin(f16));
3169 try testArgs(f32, f16, 1e-1);
3170 try testArgs(f32, f16, 1e0);
3171 try testArgs(f32, f16, 1e1);
3172 try testArgs(f32, f16, fmax(f16));
3173 try testArgs(f32, f16, inf(f16));
3174 try testArgs(f32, f16, nan(f16));
3175
3176 try testArgs(f64, f16, -nan(f16));
3177 try testArgs(f64, f16, -inf(f16));
3178 try testArgs(f64, f16, -fmax(f16));
3179 try testArgs(f64, f16, -1e1);
3180 try testArgs(f64, f16, -1e0);
3181 try testArgs(f64, f16, -1e-1);
3182 try testArgs(f64, f16, -fmin(f16));
3183 try testArgs(f64, f16, -tmin(f16));
3184 try testArgs(f64, f16, -0.0);
3185 try testArgs(f64, f16, 0.0);
3186 try testArgs(f64, f16, tmin(f16));
3187 try testArgs(f64, f16, fmin(f16));
3188 try testArgs(f64, f16, 1e-1);
3189 try testArgs(f64, f16, 1e0);
3190 try testArgs(f64, f16, 1e1);
3191 try testArgs(f64, f16, fmax(f16));
3192 try testArgs(f64, f16, inf(f16));
3193 try testArgs(f64, f16, nan(f16));
3194
3195 try testArgs(f80, f16, -nan(f16));
3196 try testArgs(f80, f16, -inf(f16));
3197 try testArgs(f80, f16, -fmax(f16));
3198 try testArgs(f80, f16, -1e1);
3199 try testArgs(f80, f16, -1e0);
3200 try testArgs(f80, f16, -1e-1);
3201 try testArgs(f80, f16, -fmin(f16));
3202 try testArgs(f80, f16, -tmin(f16));
3203 try testArgs(f80, f16, -0.0);
3204 try testArgs(f80, f16, 0.0);
3205 try testArgs(f80, f16, tmin(f16));
3206 try testArgs(f80, f16, fmin(f16));
3207 try testArgs(f80, f16, 1e-1);
3208 try testArgs(f80, f16, 1e0);
3209 try testArgs(f80, f16, 1e1);
3210 try testArgs(f80, f16, fmax(f16));
3211 try testArgs(f80, f16, inf(f16));
3212 try testArgs(f80, f16, nan(f16));
3213
3214 try testArgs(f128, f16, -nan(f16));
3215 try testArgs(f128, f16, -inf(f16));
3216 try testArgs(f128, f16, -fmax(f16));
3217 try testArgs(f128, f16, -1e1);
3218 try testArgs(f128, f16, -1e0);
3219 try testArgs(f128, f16, -1e-1);
3220 try testArgs(f128, f16, -fmin(f16));
3221 try testArgs(f128, f16, -tmin(f16));
3222 try testArgs(f128, f16, -0.0);
3223 try testArgs(f128, f16, 0.0);
3224 try testArgs(f128, f16, tmin(f16));
3225 try testArgs(f128, f16, fmin(f16));
3226 try testArgs(f128, f16, 1e-1);
3227 try testArgs(f128, f16, 1e0);
3228 try testArgs(f128, f16, 1e1);
3229 try testArgs(f128, f16, fmax(f16));
3230 try testArgs(f128, f16, inf(f16));
3231 try testArgs(f128, f16, nan(f16));
3232
3233 try testArgs(f16, f32, -nan(f32));
3234 try testArgs(f16, f32, -inf(f32));
3235 try testArgs(f16, f32, -fmax(f32));
3236 try testArgs(f16, f32, -1e1);
3237 try testArgs(f16, f32, -1e0);
3238 try testArgs(f16, f32, -1e-1);
3239 try testArgs(f16, f32, -fmin(f32));
3240 try testArgs(f16, f32, -tmin(f32));
3241 try testArgs(f16, f32, -0.0);
3242 try testArgs(f16, f32, 0.0);
3243 try testArgs(f16, f32, tmin(f32));
3244 try testArgs(f16, f32, fmin(f32));
3245 try testArgs(f16, f32, 1e-1);
3246 try testArgs(f16, f32, 1e0);
3247 try testArgs(f16, f32, 1e1);
3248 try testArgs(f16, f32, fmax(f32));
3249 try testArgs(f16, f32, inf(f32));
3250 try testArgs(f16, f32, nan(f32));
3251
3252 try testArgs(f32, f32, -nan(f32));
3253 try testArgs(f32, f32, -inf(f32));
3254 try testArgs(f32, f32, -fmax(f32));
3255 try testArgs(f32, f32, -1e1);
3256 try testArgs(f32, f32, -1e0);
3257 try testArgs(f32, f32, -1e-1);
3258 try testArgs(f32, f32, -fmin(f32));
3259 try testArgs(f32, f32, -tmin(f32));
3260 try testArgs(f32, f32, -0.0);
3261 try testArgs(f32, f32, 0.0);
3262 try testArgs(f32, f32, tmin(f32));
3263 try testArgs(f32, f32, fmin(f32));
3264 try testArgs(f32, f32, 1e-1);
3265 try testArgs(f32, f32, 1e0);
3266 try testArgs(f32, f32, 1e1);
3267 try testArgs(f32, f32, fmax(f32));
3268 try testArgs(f32, f32, inf(f32));
3269 try testArgs(f32, f32, nan(f32));
3270
3271 try testArgs(f64, f32, -nan(f32));
3272 try testArgs(f64, f32, -inf(f32));
3273 try testArgs(f64, f32, -fmax(f32));
3274 try testArgs(f64, f32, -1e1);
3275 try testArgs(f64, f32, -1e0);
3276 try testArgs(f64, f32, -1e-1);
3277 try testArgs(f64, f32, -fmin(f32));
3278 try testArgs(f64, f32, -tmin(f32));
3279 try testArgs(f64, f32, -0.0);
3280 try testArgs(f64, f32, 0.0);
3281 try testArgs(f64, f32, tmin(f32));
3282 try testArgs(f64, f32, fmin(f32));
3283 try testArgs(f64, f32, 1e-1);
3284 try testArgs(f64, f32, 1e0);
3285 try testArgs(f64, f32, 1e1);
3286 try testArgs(f64, f32, fmax(f32));
3287 try testArgs(f64, f32, inf(f32));
3288 try testArgs(f64, f32, nan(f32));
3289
3290 try testArgs(f80, f32, -nan(f32));
3291 try testArgs(f80, f32, -inf(f32));
3292 try testArgs(f80, f32, -fmax(f32));
3293 try testArgs(f80, f32, -1e1);
3294 try testArgs(f80, f32, -1e0);
3295 try testArgs(f80, f32, -1e-1);
3296 try testArgs(f80, f32, -fmin(f32));
3297 try testArgs(f80, f32, -tmin(f32));
3298 try testArgs(f80, f32, -0.0);
3299 try testArgs(f80, f32, 0.0);
3300 try testArgs(f80, f32, tmin(f32));
3301 try testArgs(f80, f32, fmin(f32));
3302 try testArgs(f80, f32, 1e-1);
3303 try testArgs(f80, f32, 1e0);
3304 try testArgs(f80, f32, 1e1);
3305 try testArgs(f80, f32, fmax(f32));
3306 try testArgs(f80, f32, inf(f32));
3307 try testArgs(f80, f32, nan(f32));
3308
3309 try testArgs(f128, f32, -nan(f32));
3310 try testArgs(f128, f32, -inf(f32));
3311 try testArgs(f128, f32, -fmax(f32));
3312 try testArgs(f128, f32, -1e1);
3313 try testArgs(f128, f32, -1e0);
3314 try testArgs(f128, f32, -1e-1);
3315 try testArgs(f128, f32, -fmin(f32));
3316 try testArgs(f128, f32, -tmin(f32));
3317 try testArgs(f128, f32, -0.0);
3318 try testArgs(f128, f32, 0.0);
3319 try testArgs(f128, f32, tmin(f32));
3320 try testArgs(f128, f32, fmin(f32));
3321 try testArgs(f128, f32, 1e-1);
3322 try testArgs(f128, f32, 1e0);
3323 try testArgs(f128, f32, 1e1);
3324 try testArgs(f128, f32, fmax(f32));
3325 try testArgs(f128, f32, inf(f32));
3326 try testArgs(f128, f32, nan(f32));
3327
3328 try testArgs(f16, f64, -nan(f64));
3329 try testArgs(f16, f64, -inf(f64));
3330 try testArgs(f16, f64, -fmax(f64));
3331 try testArgs(f16, f64, -1e1);
3332 try testArgs(f16, f64, -1e0);
3333 try testArgs(f16, f64, -1e-1);
3334 try testArgs(f16, f64, -fmin(f64));
3335 try testArgs(f16, f64, -tmin(f64));
3336 try testArgs(f16, f64, -0.0);
3337 try testArgs(f16, f64, 0.0);
3338 try testArgs(f16, f64, tmin(f64));
3339 try testArgs(f16, f64, fmin(f64));
3340 try testArgs(f16, f64, 1e-1);
3341 try testArgs(f16, f64, 1e0);
3342 try testArgs(f16, f64, 1e1);
3343 try testArgs(f16, f64, fmax(f64));
3344 try testArgs(f16, f64, inf(f64));
3345 try testArgs(f16, f64, nan(f64));
3346
3347 try testArgs(f32, f64, -nan(f64));
3348 try testArgs(f32, f64, -inf(f64));
3349 try testArgs(f32, f64, -fmax(f64));
3350 try testArgs(f32, f64, -1e1);
3351 try testArgs(f32, f64, -1e0);
3352 try testArgs(f32, f64, -1e-1);
3353 try testArgs(f32, f64, -fmin(f64));
3354 try testArgs(f32, f64, -tmin(f64));
3355 try testArgs(f32, f64, -0.0);
3356 try testArgs(f32, f64, 0.0);
3357 try testArgs(f32, f64, tmin(f64));
3358 try testArgs(f32, f64, fmin(f64));
3359 try testArgs(f32, f64, 1e-1);
3360 try testArgs(f32, f64, 1e0);
3361 try testArgs(f32, f64, 1e1);
3362 try testArgs(f32, f64, fmax(f64));
3363 try testArgs(f32, f64, inf(f64));
3364 try testArgs(f32, f64, nan(f64));
3365
3366 try testArgs(f64, f64, -nan(f64));
3367 try testArgs(f64, f64, -inf(f64));
3368 try testArgs(f64, f64, -fmax(f64));
3369 try testArgs(f64, f64, -1e1);
3370 try testArgs(f64, f64, -1e0);
3371 try testArgs(f64, f64, -1e-1);
3372 try testArgs(f64, f64, -fmin(f64));
3373 try testArgs(f64, f64, -tmin(f64));
3374 try testArgs(f64, f64, -0.0);
3375 try testArgs(f64, f64, 0.0);
3376 try testArgs(f64, f64, tmin(f64));
3377 try testArgs(f64, f64, fmin(f64));
3378 try testArgs(f64, f64, 1e-1);
3379 try testArgs(f64, f64, 1e0);
3380 try testArgs(f64, f64, 1e1);
3381 try testArgs(f64, f64, fmax(f64));
3382 try testArgs(f64, f64, inf(f64));
3383 try testArgs(f64, f64, nan(f64));
3384
3385 try testArgs(f80, f64, -nan(f64));
3386 try testArgs(f80, f64, -inf(f64));
3387 try testArgs(f80, f64, -fmax(f64));
3388 try testArgs(f80, f64, -1e1);
3389 try testArgs(f80, f64, -1e0);
3390 try testArgs(f80, f64, -1e-1);
3391 try testArgs(f80, f64, -fmin(f64));
3392 try testArgs(f80, f64, -tmin(f64));
3393 try testArgs(f80, f64, -0.0);
3394 try testArgs(f80, f64, 0.0);
3395 try testArgs(f80, f64, tmin(f64));
3396 try testArgs(f80, f64, fmin(f64));
3397 try testArgs(f80, f64, 1e-1);
3398 try testArgs(f80, f64, 1e0);
3399 try testArgs(f80, f64, 1e1);
3400 try testArgs(f80, f64, fmax(f64));
3401 try testArgs(f80, f64, inf(f64));
3402 try testArgs(f80, f64, nan(f64));
3403
3404 try testArgs(f128, f64, -nan(f64));
3405 try testArgs(f128, f64, -inf(f64));
3406 try testArgs(f128, f64, -fmax(f64));
3407 try testArgs(f128, f64, -1e1);
3408 try testArgs(f128, f64, -1e0);
3409 try testArgs(f128, f64, -1e-1);
3410 try testArgs(f128, f64, -fmin(f64));
3411 try testArgs(f128, f64, -tmin(f64));
3412 try testArgs(f128, f64, -0.0);
3413 try testArgs(f128, f64, 0.0);
3414 try testArgs(f128, f64, tmin(f64));
3415 try testArgs(f128, f64, fmin(f64));
3416 try testArgs(f128, f64, 1e-1);
3417 try testArgs(f128, f64, 1e0);
3418 try testArgs(f128, f64, 1e1);
3419 try testArgs(f128, f64, fmax(f64));
3420 try testArgs(f128, f64, inf(f64));
3421 try testArgs(f128, f64, nan(f64));
3422
3423 try testArgs(f16, f80, -nan(f80));
3424 try testArgs(f16, f80, -inf(f80));
3425 try testArgs(f16, f80, -fmax(f80));
3426 try testArgs(f16, f80, -1e1);
3427 try testArgs(f16, f80, -1e0);
3428 try testArgs(f16, f80, -1e-1);
3429 try testArgs(f16, f80, -fmin(f80));
3430 try testArgs(f16, f80, -tmin(f80));
3431 try testArgs(f16, f80, -0.0);
3432 try testArgs(f16, f80, 0.0);
3433 try testArgs(f16, f80, tmin(f80));
3434 try testArgs(f16, f80, fmin(f80));
3435 try testArgs(f16, f80, 1e-1);
3436 try testArgs(f16, f80, 1e0);
3437 try testArgs(f16, f80, 1e1);
3438 try testArgs(f16, f80, fmax(f80));
3439 try testArgs(f16, f80, inf(f80));
3440 try testArgs(f16, f80, nan(f80));
3441
3442 try testArgs(f32, f80, -nan(f80));
3443 try testArgs(f32, f80, -inf(f80));
3444 try testArgs(f32, f80, -fmax(f80));
3445 try testArgs(f32, f80, -1e1);
3446 try testArgs(f32, f80, -1e0);
3447 try testArgs(f32, f80, -1e-1);
3448 try testArgs(f32, f80, -fmin(f80));
3449 try testArgs(f32, f80, -tmin(f80));
3450 try testArgs(f32, f80, -0.0);
3451 try testArgs(f32, f80, 0.0);
3452 try testArgs(f32, f80, tmin(f80));
3453 try testArgs(f32, f80, fmin(f80));
3454 try testArgs(f32, f80, 1e-1);
3455 try testArgs(f32, f80, 1e0);
3456 try testArgs(f32, f80, 1e1);
3457 try testArgs(f32, f80, fmax(f80));
3458 try testArgs(f32, f80, inf(f80));
3459 try testArgs(f32, f80, nan(f80));
3460
3461 try testArgs(f64, f80, -nan(f80));
3462 try testArgs(f64, f80, -inf(f80));
3463 try testArgs(f64, f80, -fmax(f80));
3464 try testArgs(f64, f80, -1e1);
3465 try testArgs(f64, f80, -1e0);
3466 try testArgs(f64, f80, -1e-1);
3467 try testArgs(f64, f80, -fmin(f80));
3468 try testArgs(f64, f80, -tmin(f80));
3469 try testArgs(f64, f80, -0.0);
3470 try testArgs(f64, f80, 0.0);
3471 try testArgs(f64, f80, tmin(f80));
3472 try testArgs(f64, f80, fmin(f80));
3473 try testArgs(f64, f80, 1e-1);
3474 try testArgs(f64, f80, 1e0);
3475 try testArgs(f64, f80, 1e1);
3476 try testArgs(f64, f80, fmax(f80));
3477 try testArgs(f64, f80, inf(f80));
3478 try testArgs(f64, f80, nan(f80));
3479
3480 try testArgs(f80, f80, -nan(f80));
3481 try testArgs(f80, f80, -inf(f80));
3482 try testArgs(f80, f80, -fmax(f80));
3483 try testArgs(f80, f80, -1e1);
3484 try testArgs(f80, f80, -1e0);
3485 try testArgs(f80, f80, -1e-1);
3486 try testArgs(f80, f80, -fmin(f80));
3487 try testArgs(f80, f80, -tmin(f80));
3488 try testArgs(f80, f80, -0.0);
3489 try testArgs(f80, f80, 0.0);
3490 try testArgs(f80, f80, tmin(f80));
3491 try testArgs(f80, f80, fmin(f80));
3492 try testArgs(f80, f80, 1e-1);
3493 try testArgs(f80, f80, 1e0);
3494 try testArgs(f80, f80, 1e1);
3495 try testArgs(f80, f80, fmax(f80));
3496 try testArgs(f80, f80, inf(f80));
3497 try testArgs(f80, f80, nan(f80));
3498
3499 try testArgs(f128, f80, -nan(f80));
3500 try testArgs(f128, f80, -inf(f80));
3501 try testArgs(f128, f80, -fmax(f80));
3502 try testArgs(f128, f80, -1e1);
3503 try testArgs(f128, f80, -1e0);
3504 try testArgs(f128, f80, -1e-1);
3505 try testArgs(f128, f80, -fmin(f80));
3506 try testArgs(f128, f80, -tmin(f80));
3507 try testArgs(f128, f80, -0.0);
3508 try testArgs(f128, f80, 0.0);
3509 try testArgs(f128, f80, tmin(f80));
3510 try testArgs(f128, f80, fmin(f80));
3511 try testArgs(f128, f80, 1e-1);
3512 try testArgs(f128, f80, 1e0);
3513 try testArgs(f128, f80, 1e1);
3514 try testArgs(f128, f80, fmax(f80));
3515 try testArgs(f128, f80, inf(f80));
3516 try testArgs(f128, f80, nan(f80));
3517
3518 try testArgs(f16, f128, -nan(f128));
3519 try testArgs(f16, f128, -inf(f128));
3520 try testArgs(f16, f128, -fmax(f128));
3521 try testArgs(f16, f128, -1e1);
3522 try testArgs(f16, f128, -1e0);
3523 try testArgs(f16, f128, -1e-1);
3524 try testArgs(f16, f128, -fmin(f128));
3525 try testArgs(f16, f128, -tmin(f128));
3526 try testArgs(f16, f128, -0.0);
3527 try testArgs(f16, f128, 0.0);
3528 try testArgs(f16, f128, tmin(f128));
3529 try testArgs(f16, f128, fmin(f128));
3530 try testArgs(f16, f128, 1e-1);
3531 try testArgs(f16, f128, 1e0);
3532 try testArgs(f16, f128, 1e1);
3533 try testArgs(f16, f128, fmax(f128));
3534 try testArgs(f16, f128, inf(f128));
3535 try testArgs(f16, f128, nan(f128));
3536
3537 try testArgs(f32, f128, -nan(f128));
3538 try testArgs(f32, f128, -inf(f128));
3539 try testArgs(f32, f128, -fmax(f128));
3540 try testArgs(f32, f128, -1e1);
3541 try testArgs(f32, f128, -1e0);
3542 try testArgs(f32, f128, -1e-1);
3543 try testArgs(f32, f128, -fmin(f128));
3544 try testArgs(f32, f128, -tmin(f128));
3545 try testArgs(f32, f128, -0.0);
3546 try testArgs(f32, f128, 0.0);
3547 try testArgs(f32, f128, tmin(f128));
3548 try testArgs(f32, f128, fmin(f128));
3549 try testArgs(f32, f128, 1e-1);
3550 try testArgs(f32, f128, 1e0);
3551 try testArgs(f32, f128, 1e1);
3552 try testArgs(f32, f128, fmax(f128));
3553 try testArgs(f32, f128, inf(f128));
3554 try testArgs(f32, f128, nan(f128));
3555
3556 try testArgs(f64, f128, -nan(f128));
3557 try testArgs(f64, f128, -inf(f128));
3558 try testArgs(f64, f128, -fmax(f128));
3559 try testArgs(f64, f128, -1e1);
3560 try testArgs(f64, f128, -1e0);
3561 try testArgs(f64, f128, -1e-1);
3562 try testArgs(f64, f128, -fmin(f128));
3563 try testArgs(f64, f128, -tmin(f128));
3564 try testArgs(f64, f128, -0.0);
3565 try testArgs(f64, f128, 0.0);
3566 try testArgs(f64, f128, tmin(f128));
3567 try testArgs(f64, f128, fmin(f128));
3568 try testArgs(f64, f128, 1e-1);
3569 try testArgs(f64, f128, 1e0);
3570 try testArgs(f64, f128, 1e1);
3571 try testArgs(f64, f128, fmax(f128));
3572 try testArgs(f64, f128, inf(f128));
3573 try testArgs(f64, f128, nan(f128));
3574
3575 try testArgs(f80, f128, -nan(f128));
3576 try testArgs(f80, f128, -inf(f128));
3577 try testArgs(f80, f128, -fmax(f128));
3578 try testArgs(f80, f128, -1e1);
3579 try testArgs(f80, f128, -1e0);
3580 try testArgs(f80, f128, -1e-1);
3581 try testArgs(f80, f128, -fmin(f128));
3582 try testArgs(f80, f128, -tmin(f128));
3583 try testArgs(f80, f128, -0.0);
3584 try testArgs(f80, f128, 0.0);
3585 try testArgs(f80, f128, tmin(f128));
3586 try testArgs(f80, f128, fmin(f128));
3587 try testArgs(f80, f128, 1e-1);
3588 try testArgs(f80, f128, 1e0);
3589 try testArgs(f80, f128, 1e1);
3590 try testArgs(f80, f128, fmax(f128));
3591 try testArgs(f80, f128, inf(f128));
3592 try testArgs(f80, f128, nan(f128));
3593
3594 try testArgs(f128, f128, -nan(f128));
3595 try testArgs(f128, f128, -inf(f128));
3596 try testArgs(f128, f128, -fmax(f128));
3597 try testArgs(f128, f128, -1e1);
3598 try testArgs(f128, f128, -1e0);
3599 try testArgs(f128, f128, -1e-1);
3600 try testArgs(f128, f128, -fmin(f128));
3601 try testArgs(f128, f128, -tmin(f128));
3602 try testArgs(f128, f128, -0.0);
3603 try testArgs(f128, f128, 0.0);
3604 try testArgs(f128, f128, tmin(f128));
3605 try testArgs(f128, f128, fmin(f128));
3606 try testArgs(f128, f128, 1e-1);
3607 try testArgs(f128, f128, 1e0);
3608 try testArgs(f128, f128, 1e1);
3609 try testArgs(f128, f128, fmax(f128));
3610 try testArgs(f128, f128, inf(f128));
3611 try testArgs(f128, f128, nan(f128));
3612 }
3613 fn testSameSignednessIntVectors() !void {
3614 try testArgs(@Vector(1, i7), @Vector(1, i1), .{-1});
3615 try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
3616 try testArgs(@Vector(1, i9), @Vector(1, i1), .{-1});
3617 try testArgs(@Vector(1, i15), @Vector(1, i1), .{-1});
3618 try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
3619 try testArgs(@Vector(1, i17), @Vector(1, i1), .{-1});
3620 try testArgs(@Vector(1, i31), @Vector(1, i1), .{-1});
3621 try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
3622 try testArgs(@Vector(1, i33), @Vector(1, i1), .{-1});
3623 try testArgs(@Vector(1, i63), @Vector(1, i1), .{-1});
3624 try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
3625 try testArgs(@Vector(1, i65), @Vector(1, i1), .{-1});
3626 try testArgs(@Vector(1, i127), @Vector(1, i1), .{-1});
3627 try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
3628 try testArgs(@Vector(1, i129), @Vector(1, i1), .{-1});
3629 try testArgs(@Vector(1, i255), @Vector(1, i1), .{-1});
3630 try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
3631 try testArgs(@Vector(1, i257), @Vector(1, i1), .{-1});
3632 try testArgs(@Vector(1, i511), @Vector(1, i1), .{-1});
3633 try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
3634 try testArgs(@Vector(1, i513), @Vector(1, i1), .{-1});
3635 try testArgs(@Vector(1, i1023), @Vector(1, i1), .{-1});
3636 try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
3637 try testArgs(@Vector(1, i1025), @Vector(1, i1), .{-1});
3638 try testArgs(@Vector(1, u7), @Vector(1, u1), .{1});
3639 try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
3640 try testArgs(@Vector(1, u9), @Vector(1, u1), .{1});
3641 try testArgs(@Vector(1, u15), @Vector(1, u1), .{1});
3642 try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
3643 try testArgs(@Vector(1, u17), @Vector(1, u1), .{1});
3644 try testArgs(@Vector(1, u31), @Vector(1, u1), .{1});
3645 try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
3646 try testArgs(@Vector(1, u33), @Vector(1, u1), .{1});
3647 try testArgs(@Vector(1, u63), @Vector(1, u1), .{1});
3648 try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
3649 try testArgs(@Vector(1, u65), @Vector(1, u1), .{1});
3650 try testArgs(@Vector(1, u127), @Vector(1, u1), .{1});
3651 try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
3652 try testArgs(@Vector(1, u129), @Vector(1, u1), .{1});
3653 try testArgs(@Vector(1, u255), @Vector(1, u1), .{1});
3654 try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
3655 try testArgs(@Vector(1, u257), @Vector(1, u1), .{1});
3656 try testArgs(@Vector(1, u511), @Vector(1, u1), .{1});
3657 try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
3658 try testArgs(@Vector(1, u513), @Vector(1, u1), .{1});
3659 try testArgs(@Vector(1, u1023), @Vector(1, u1), .{1});
3660 try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
3661 try testArgs(@Vector(1, u1025), @Vector(1, u1), .{1});
3662
3663 try testArgs(@Vector(2, i7), @Vector(2, i1), .{ -1, 0 });
3664 try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
3665 try testArgs(@Vector(2, i9), @Vector(2, i1), .{ -1, 0 });
3666 try testArgs(@Vector(2, i15), @Vector(2, i1), .{ -1, 0 });
3667 try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
3668 try testArgs(@Vector(2, i17), @Vector(2, i1), .{ -1, 0 });
3669 try testArgs(@Vector(2, i31), @Vector(2, i1), .{ -1, 0 });
3670 try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
3671 try testArgs(@Vector(2, i33), @Vector(2, i1), .{ -1, 0 });
3672 try testArgs(@Vector(2, i63), @Vector(2, i1), .{ -1, 0 });
3673 try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
3674 try testArgs(@Vector(2, i65), @Vector(2, i1), .{ -1, 0 });
3675 try testArgs(@Vector(2, i127), @Vector(2, i1), .{ -1, 0 });
3676 try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
3677 try testArgs(@Vector(2, i129), @Vector(2, i1), .{ -1, 0 });
3678 try testArgs(@Vector(2, i255), @Vector(2, i1), .{ -1, 0 });
3679 try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
3680 try testArgs(@Vector(2, i257), @Vector(2, i1), .{ -1, 0 });
3681 try testArgs(@Vector(2, i511), @Vector(2, i1), .{ -1, 0 });
3682 try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
3683 try testArgs(@Vector(2, i513), @Vector(2, i1), .{ -1, 0 });
3684 try testArgs(@Vector(2, i1023), @Vector(2, i1), .{ -1, 0 });
3685 try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
3686 try testArgs(@Vector(2, i1025), @Vector(2, i1), .{ -1, 0 });
3687 try testArgs(@Vector(2, u7), @Vector(2, u1), .{ 0, 1 });
3688 try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
3689 try testArgs(@Vector(2, u9), @Vector(2, u1), .{ 0, 1 });
3690 try testArgs(@Vector(2, u15), @Vector(2, u1), .{ 0, 1 });
3691 try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
3692 try testArgs(@Vector(2, u17), @Vector(2, u1), .{ 0, 1 });
3693 try testArgs(@Vector(2, u31), @Vector(2, u1), .{ 0, 1 });
3694 try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
3695 try testArgs(@Vector(2, u33), @Vector(2, u1), .{ 0, 1 });
3696 try testArgs(@Vector(2, u63), @Vector(2, u1), .{ 0, 1 });
3697 try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
3698 try testArgs(@Vector(2, u65), @Vector(2, u1), .{ 0, 1 });
3699 try testArgs(@Vector(2, u127), @Vector(2, u1), .{ 0, 1 });
3700 try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
3701 try testArgs(@Vector(2, u129), @Vector(2, u1), .{ 0, 1 });
3702 try testArgs(@Vector(2, u255), @Vector(2, u1), .{ 0, 1 });
3703 try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
3704 try testArgs(@Vector(2, u257), @Vector(2, u1), .{ 0, 1 });
3705 try testArgs(@Vector(2, u511), @Vector(2, u1), .{ 0, 1 });
3706 try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
3707 try testArgs(@Vector(2, u513), @Vector(2, u1), .{ 0, 1 });
3708 try testArgs(@Vector(2, u1023), @Vector(2, u1), .{ 0, 1 });
3709 try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
3710 try testArgs(@Vector(2, u1025), @Vector(2, u1), .{ 0, 1 });
3711
3712 try testArgs(@Vector(3, i7), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3713 try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3714 try testArgs(@Vector(3, i9), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3715 try testArgs(@Vector(3, i15), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3716 try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3717 try testArgs(@Vector(3, i17), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3718 try testArgs(@Vector(3, i31), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3719 try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3720 try testArgs(@Vector(3, i33), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3721 try testArgs(@Vector(3, i63), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3722 try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3723 try testArgs(@Vector(3, i65), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3724 try testArgs(@Vector(3, i127), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3725 try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3726 try testArgs(@Vector(3, i129), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3727 try testArgs(@Vector(3, i255), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3728 try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3729 try testArgs(@Vector(3, i257), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3730 try testArgs(@Vector(3, i511), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3731 try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3732 try testArgs(@Vector(3, i513), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3733 try testArgs(@Vector(3, i1023), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3734 try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3735 try testArgs(@Vector(3, i1025), @Vector(3, i2), .{ -1 << 1, -1, 0 });
3736 try testArgs(@Vector(3, u7), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3737 try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3738 try testArgs(@Vector(3, u9), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3739 try testArgs(@Vector(3, u15), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3740 try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3741 try testArgs(@Vector(3, u17), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3742 try testArgs(@Vector(3, u31), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3743 try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3744 try testArgs(@Vector(3, u33), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3745 try testArgs(@Vector(3, u63), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3746 try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3747 try testArgs(@Vector(3, u65), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3748 try testArgs(@Vector(3, u127), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3749 try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3750 try testArgs(@Vector(3, u129), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3751 try testArgs(@Vector(3, u255), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3752 try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3753 try testArgs(@Vector(3, u257), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3754 try testArgs(@Vector(3, u511), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3755 try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3756 try testArgs(@Vector(3, u513), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3757 try testArgs(@Vector(3, u1023), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3758 try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3759 try testArgs(@Vector(3, u1025), @Vector(3, u2), .{ 0, 1, 1 << 1 });
3760
3761 try testArgs(@Vector(3, i7), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3762 try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3763 try testArgs(@Vector(3, i9), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3764 try testArgs(@Vector(3, i15), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3765 try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3766 try testArgs(@Vector(3, i17), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3767 try testArgs(@Vector(3, i31), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3768 try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3769 try testArgs(@Vector(3, i33), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3770 try testArgs(@Vector(3, i63), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3771 try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3772 try testArgs(@Vector(3, i65), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3773 try testArgs(@Vector(3, i127), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3774 try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3775 try testArgs(@Vector(3, i129), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3776 try testArgs(@Vector(3, i255), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3777 try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3778 try testArgs(@Vector(3, i257), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3779 try testArgs(@Vector(3, i511), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3780 try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3781 try testArgs(@Vector(3, i513), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3782 try testArgs(@Vector(3, i1023), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3783 try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3784 try testArgs(@Vector(3, i1025), @Vector(3, i3), .{ -1 << 2, -1, 0 });
3785 try testArgs(@Vector(3, u7), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3786 try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3787 try testArgs(@Vector(3, u9), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3788 try testArgs(@Vector(3, u15), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3789 try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3790 try testArgs(@Vector(3, u17), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3791 try testArgs(@Vector(3, u31), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3792 try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3793 try testArgs(@Vector(3, u33), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3794 try testArgs(@Vector(3, u63), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3795 try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3796 try testArgs(@Vector(3, u65), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3797 try testArgs(@Vector(3, u127), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3798 try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3799 try testArgs(@Vector(3, u129), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3800 try testArgs(@Vector(3, u255), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3801 try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3802 try testArgs(@Vector(3, u257), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3803 try testArgs(@Vector(3, u511), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3804 try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3805 try testArgs(@Vector(3, u513), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3806 try testArgs(@Vector(3, u1023), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3807 try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3808 try testArgs(@Vector(3, u1025), @Vector(3, u3), .{ 0, 1, 1 << 2 });
3809
3810 try testArgs(@Vector(3, i7), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3811 try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3812 try testArgs(@Vector(3, i9), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3813 try testArgs(@Vector(3, i15), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3814 try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3815 try testArgs(@Vector(3, i17), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3816 try testArgs(@Vector(3, i31), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3817 try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3818 try testArgs(@Vector(3, i33), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3819 try testArgs(@Vector(3, i63), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3820 try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3821 try testArgs(@Vector(3, i65), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3822 try testArgs(@Vector(3, i127), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3823 try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3824 try testArgs(@Vector(3, i129), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3825 try testArgs(@Vector(3, i255), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3826 try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3827 try testArgs(@Vector(3, i257), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3828 try testArgs(@Vector(3, i511), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3829 try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3830 try testArgs(@Vector(3, i513), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3831 try testArgs(@Vector(3, i1023), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3832 try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3833 try testArgs(@Vector(3, i1025), @Vector(3, i4), .{ -1 << 3, -1, 0 });
3834 try testArgs(@Vector(3, u7), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3835 try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3836 try testArgs(@Vector(3, u9), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3837 try testArgs(@Vector(3, u15), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3838 try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3839 try testArgs(@Vector(3, u17), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3840 try testArgs(@Vector(3, u31), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3841 try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3842 try testArgs(@Vector(3, u33), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3843 try testArgs(@Vector(3, u63), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3844 try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3845 try testArgs(@Vector(3, u65), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3846 try testArgs(@Vector(3, u127), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3847 try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3848 try testArgs(@Vector(3, u129), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3849 try testArgs(@Vector(3, u255), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3850 try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3851 try testArgs(@Vector(3, u257), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3852 try testArgs(@Vector(3, u511), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3853 try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3854 try testArgs(@Vector(3, u513), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3855 try testArgs(@Vector(3, u1023), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3856 try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3857 try testArgs(@Vector(3, u1025), @Vector(3, u4), .{ 0, 1, 1 << 3 });
3858
3859 try testArgs(@Vector(3, i7), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3860 try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3861 try testArgs(@Vector(3, i9), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3862 try testArgs(@Vector(3, i15), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3863 try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3864 try testArgs(@Vector(3, i17), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3865 try testArgs(@Vector(3, i31), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3866 try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3867 try testArgs(@Vector(3, i33), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3868 try testArgs(@Vector(3, i63), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3869 try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3870 try testArgs(@Vector(3, i65), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3871 try testArgs(@Vector(3, i127), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3872 try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3873 try testArgs(@Vector(3, i129), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3874 try testArgs(@Vector(3, i255), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3875 try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3876 try testArgs(@Vector(3, i257), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3877 try testArgs(@Vector(3, i511), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3878 try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3879 try testArgs(@Vector(3, i513), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3880 try testArgs(@Vector(3, i1023), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3881 try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3882 try testArgs(@Vector(3, i1025), @Vector(3, i5), .{ -1 << 4, -1, 0 });
3883 try testArgs(@Vector(3, u7), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3884 try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3885 try testArgs(@Vector(3, u9), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3886 try testArgs(@Vector(3, u15), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3887 try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3888 try testArgs(@Vector(3, u17), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3889 try testArgs(@Vector(3, u31), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3890 try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3891 try testArgs(@Vector(3, u33), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3892 try testArgs(@Vector(3, u63), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3893 try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3894 try testArgs(@Vector(3, u65), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3895 try testArgs(@Vector(3, u127), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3896 try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3897 try testArgs(@Vector(3, u129), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3898 try testArgs(@Vector(3, u255), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3899 try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3900 try testArgs(@Vector(3, u257), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3901 try testArgs(@Vector(3, u511), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3902 try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3903 try testArgs(@Vector(3, u513), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3904 try testArgs(@Vector(3, u1023), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3905 try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3906 try testArgs(@Vector(3, u1025), @Vector(3, u5), .{ 0, 1, 1 << 4 });
3907
3908 try testArgs(@Vector(3, i7), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3909 try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3910 try testArgs(@Vector(3, i9), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3911 try testArgs(@Vector(3, i15), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3912 try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3913 try testArgs(@Vector(3, i17), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3914 try testArgs(@Vector(3, i31), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3915 try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3916 try testArgs(@Vector(3, i33), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3917 try testArgs(@Vector(3, i63), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3918 try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3919 try testArgs(@Vector(3, i65), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3920 try testArgs(@Vector(3, i127), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3921 try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3922 try testArgs(@Vector(3, i129), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3923 try testArgs(@Vector(3, i255), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3924 try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3925 try testArgs(@Vector(3, i257), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3926 try testArgs(@Vector(3, i511), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3927 try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3928 try testArgs(@Vector(3, i513), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3929 try testArgs(@Vector(3, i1023), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3930 try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3931 try testArgs(@Vector(3, i1025), @Vector(3, i7), .{ -1 << 6, -1, 0 });
3932 try testArgs(@Vector(3, u7), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3933 try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3934 try testArgs(@Vector(3, u9), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3935 try testArgs(@Vector(3, u15), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3936 try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3937 try testArgs(@Vector(3, u17), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3938 try testArgs(@Vector(3, u31), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3939 try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3940 try testArgs(@Vector(3, u33), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3941 try testArgs(@Vector(3, u63), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3942 try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3943 try testArgs(@Vector(3, u65), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3944 try testArgs(@Vector(3, u127), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3945 try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3946 try testArgs(@Vector(3, u129), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3947 try testArgs(@Vector(3, u255), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3948 try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3949 try testArgs(@Vector(3, u257), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3950 try testArgs(@Vector(3, u511), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3951 try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3952 try testArgs(@Vector(3, u513), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3953 try testArgs(@Vector(3, u1023), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3954 try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3955 try testArgs(@Vector(3, u1025), @Vector(3, u7), .{ 0, 1, 1 << 6 });
3956
3957 try testArgs(@Vector(3, i7), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3958 try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3959 try testArgs(@Vector(3, i9), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3960 try testArgs(@Vector(3, i15), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3961 try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3962 try testArgs(@Vector(3, i17), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3963 try testArgs(@Vector(3, i31), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3964 try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3965 try testArgs(@Vector(3, i33), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3966 try testArgs(@Vector(3, i63), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3967 try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3968 try testArgs(@Vector(3, i65), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3969 try testArgs(@Vector(3, i127), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3970 try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3971 try testArgs(@Vector(3, i129), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3972 try testArgs(@Vector(3, i255), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3973 try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3974 try testArgs(@Vector(3, i257), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3975 try testArgs(@Vector(3, i511), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3976 try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3977 try testArgs(@Vector(3, i513), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3978 try testArgs(@Vector(3, i1023), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3979 try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3980 try testArgs(@Vector(3, i1025), @Vector(3, i8), .{ -1 << 7, -1, 0 });
3981 try testArgs(@Vector(3, u7), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3982 try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3983 try testArgs(@Vector(3, u9), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3984 try testArgs(@Vector(3, u15), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3985 try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3986 try testArgs(@Vector(3, u17), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3987 try testArgs(@Vector(3, u31), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3988 try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3989 try testArgs(@Vector(3, u33), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3990 try testArgs(@Vector(3, u63), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3991 try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3992 try testArgs(@Vector(3, u65), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3993 try testArgs(@Vector(3, u127), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3994 try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3995 try testArgs(@Vector(3, u129), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3996 try testArgs(@Vector(3, u255), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3997 try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3998 try testArgs(@Vector(3, u257), @Vector(3, u8), .{ 0, 1, 1 << 7 });
3999 try testArgs(@Vector(3, u511), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4000 try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4001 try testArgs(@Vector(3, u513), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4002 try testArgs(@Vector(3, u1023), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4003 try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4004 try testArgs(@Vector(3, u1025), @Vector(3, u8), .{ 0, 1, 1 << 7 });
4005
4006 try testArgs(@Vector(3, i7), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4007 try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4008 try testArgs(@Vector(3, i9), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4009 try testArgs(@Vector(3, i15), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4010 try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4011 try testArgs(@Vector(3, i17), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4012 try testArgs(@Vector(3, i31), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4013 try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4014 try testArgs(@Vector(3, i33), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4015 try testArgs(@Vector(3, i63), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4016 try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4017 try testArgs(@Vector(3, i65), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4018 try testArgs(@Vector(3, i127), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4019 try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4020 try testArgs(@Vector(3, i129), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4021 try testArgs(@Vector(3, i255), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4022 try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4023 try testArgs(@Vector(3, i257), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4024 try testArgs(@Vector(3, i511), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4025 try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4026 try testArgs(@Vector(3, i513), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4027 try testArgs(@Vector(3, i1023), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4028 try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4029 try testArgs(@Vector(3, i1025), @Vector(3, i9), .{ -1 << 8, -1, 0 });
4030 try testArgs(@Vector(3, u7), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4031 try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4032 try testArgs(@Vector(3, u9), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4033 try testArgs(@Vector(3, u15), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4034 try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4035 try testArgs(@Vector(3, u17), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4036 try testArgs(@Vector(3, u31), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4037 try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4038 try testArgs(@Vector(3, u33), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4039 try testArgs(@Vector(3, u63), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4040 try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4041 try testArgs(@Vector(3, u65), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4042 try testArgs(@Vector(3, u127), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4043 try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4044 try testArgs(@Vector(3, u129), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4045 try testArgs(@Vector(3, u255), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4046 try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4047 try testArgs(@Vector(3, u257), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4048 try testArgs(@Vector(3, u511), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4049 try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4050 try testArgs(@Vector(3, u513), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4051 try testArgs(@Vector(3, u1023), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4052 try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4053 try testArgs(@Vector(3, u1025), @Vector(3, u9), .{ 0, 1, 1 << 8 });
4054
4055 try testArgs(@Vector(3, i7), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4056 try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4057 try testArgs(@Vector(3, i9), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4058 try testArgs(@Vector(3, i15), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4059 try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4060 try testArgs(@Vector(3, i17), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4061 try testArgs(@Vector(3, i31), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4062 try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4063 try testArgs(@Vector(3, i33), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4064 try testArgs(@Vector(3, i63), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4065 try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4066 try testArgs(@Vector(3, i65), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4067 try testArgs(@Vector(3, i127), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4068 try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4069 try testArgs(@Vector(3, i129), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4070 try testArgs(@Vector(3, i255), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4071 try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4072 try testArgs(@Vector(3, i257), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4073 try testArgs(@Vector(3, i511), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4074 try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4075 try testArgs(@Vector(3, i513), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4076 try testArgs(@Vector(3, i1023), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4077 try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4078 try testArgs(@Vector(3, i1025), @Vector(3, i15), .{ -1 << 14, -1, 0 });
4079 try testArgs(@Vector(3, u7), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4080 try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4081 try testArgs(@Vector(3, u9), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4082 try testArgs(@Vector(3, u15), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4083 try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4084 try testArgs(@Vector(3, u17), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4085 try testArgs(@Vector(3, u31), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4086 try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4087 try testArgs(@Vector(3, u33), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4088 try testArgs(@Vector(3, u63), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4089 try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4090 try testArgs(@Vector(3, u65), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4091 try testArgs(@Vector(3, u127), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4092 try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4093 try testArgs(@Vector(3, u129), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4094 try testArgs(@Vector(3, u255), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4095 try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4096 try testArgs(@Vector(3, u257), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4097 try testArgs(@Vector(3, u511), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4098 try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4099 try testArgs(@Vector(3, u513), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4100 try testArgs(@Vector(3, u1023), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4101 try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4102 try testArgs(@Vector(3, u1025), @Vector(3, u15), .{ 0, 1, 1 << 14 });
4103
4104 try testArgs(@Vector(3, i7), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4105 try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4106 try testArgs(@Vector(3, i9), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4107 try testArgs(@Vector(3, i15), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4108 try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4109 try testArgs(@Vector(3, i17), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4110 try testArgs(@Vector(3, i31), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4111 try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4112 try testArgs(@Vector(3, i33), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4113 try testArgs(@Vector(3, i63), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4114 try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4115 try testArgs(@Vector(3, i65), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4116 try testArgs(@Vector(3, i127), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4117 try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4118 try testArgs(@Vector(3, i129), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4119 try testArgs(@Vector(3, i255), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4120 try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4121 try testArgs(@Vector(3, i257), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4122 try testArgs(@Vector(3, i511), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4123 try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4124 try testArgs(@Vector(3, i513), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4125 try testArgs(@Vector(3, i1023), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4126 try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4127 try testArgs(@Vector(3, i1025), @Vector(3, i16), .{ -1 << 15, -1, 0 });
4128 try testArgs(@Vector(3, u7), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4129 try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4130 try testArgs(@Vector(3, u9), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4131 try testArgs(@Vector(3, u15), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4132 try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4133 try testArgs(@Vector(3, u17), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4134 try testArgs(@Vector(3, u31), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4135 try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4136 try testArgs(@Vector(3, u33), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4137 try testArgs(@Vector(3, u63), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4138 try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4139 try testArgs(@Vector(3, u65), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4140 try testArgs(@Vector(3, u127), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4141 try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4142 try testArgs(@Vector(3, u129), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4143 try testArgs(@Vector(3, u255), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4144 try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4145 try testArgs(@Vector(3, u257), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4146 try testArgs(@Vector(3, u511), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4147 try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4148 try testArgs(@Vector(3, u513), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4149 try testArgs(@Vector(3, u1023), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4150 try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4151 try testArgs(@Vector(3, u1025), @Vector(3, u16), .{ 0, 1, 1 << 15 });
4152
4153 try testArgs(@Vector(3, i7), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4154 try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4155 try testArgs(@Vector(3, i9), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4156 try testArgs(@Vector(3, i15), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4157 try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4158 try testArgs(@Vector(3, i17), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4159 try testArgs(@Vector(3, i31), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4160 try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4161 try testArgs(@Vector(3, i33), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4162 try testArgs(@Vector(3, i63), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4163 try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4164 try testArgs(@Vector(3, i65), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4165 try testArgs(@Vector(3, i127), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4166 try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4167 try testArgs(@Vector(3, i129), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4168 try testArgs(@Vector(3, i255), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4169 try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4170 try testArgs(@Vector(3, i257), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4171 try testArgs(@Vector(3, i511), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4172 try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4173 try testArgs(@Vector(3, i513), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4174 try testArgs(@Vector(3, i1023), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4175 try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4176 try testArgs(@Vector(3, i1025), @Vector(3, i17), .{ -1 << 16, -1, 0 });
4177 try testArgs(@Vector(3, u7), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4178 try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4179 try testArgs(@Vector(3, u9), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4180 try testArgs(@Vector(3, u15), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4181 try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4182 try testArgs(@Vector(3, u17), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4183 try testArgs(@Vector(3, u31), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4184 try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4185 try testArgs(@Vector(3, u33), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4186 try testArgs(@Vector(3, u63), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4187 try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4188 try testArgs(@Vector(3, u65), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4189 try testArgs(@Vector(3, u127), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4190 try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4191 try testArgs(@Vector(3, u129), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4192 try testArgs(@Vector(3, u255), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4193 try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4194 try testArgs(@Vector(3, u257), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4195 try testArgs(@Vector(3, u511), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4196 try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4197 try testArgs(@Vector(3, u513), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4198 try testArgs(@Vector(3, u1023), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4199 try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4200 try testArgs(@Vector(3, u1025), @Vector(3, u17), .{ 0, 1, 1 << 16 });
4201
4202 try testArgs(@Vector(3, i7), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4203 try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4204 try testArgs(@Vector(3, i9), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4205 try testArgs(@Vector(3, i15), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4206 try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4207 try testArgs(@Vector(3, i17), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4208 try testArgs(@Vector(3, i31), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4209 try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4210 try testArgs(@Vector(3, i33), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4211 try testArgs(@Vector(3, i63), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4212 try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4213 try testArgs(@Vector(3, i65), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4214 try testArgs(@Vector(3, i127), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4215 try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4216 try testArgs(@Vector(3, i129), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4217 try testArgs(@Vector(3, i255), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4218 try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4219 try testArgs(@Vector(3, i257), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4220 try testArgs(@Vector(3, i511), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4221 try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4222 try testArgs(@Vector(3, i513), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4223 try testArgs(@Vector(3, i1023), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4224 try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4225 try testArgs(@Vector(3, i1025), @Vector(3, i31), .{ -1 << 30, -1, 0 });
4226 try testArgs(@Vector(3, u7), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4227 try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4228 try testArgs(@Vector(3, u9), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4229 try testArgs(@Vector(3, u15), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4230 try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4231 try testArgs(@Vector(3, u17), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4232 try testArgs(@Vector(3, u31), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4233 try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4234 try testArgs(@Vector(3, u33), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4235 try testArgs(@Vector(3, u63), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4236 try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4237 try testArgs(@Vector(3, u65), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4238 try testArgs(@Vector(3, u127), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4239 try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4240 try testArgs(@Vector(3, u129), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4241 try testArgs(@Vector(3, u255), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4242 try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4243 try testArgs(@Vector(3, u257), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4244 try testArgs(@Vector(3, u511), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4245 try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4246 try testArgs(@Vector(3, u513), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4247 try testArgs(@Vector(3, u1023), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4248 try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4249 try testArgs(@Vector(3, u1025), @Vector(3, u31), .{ 0, 1, 1 << 30 });
4250
4251 try testArgs(@Vector(3, i7), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4252 try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4253 try testArgs(@Vector(3, i9), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4254 try testArgs(@Vector(3, i15), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4255 try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4256 try testArgs(@Vector(3, i17), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4257 try testArgs(@Vector(3, i31), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4258 try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4259 try testArgs(@Vector(3, i33), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4260 try testArgs(@Vector(3, i63), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4261 try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4262 try testArgs(@Vector(3, i65), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4263 try testArgs(@Vector(3, i127), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4264 try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4265 try testArgs(@Vector(3, i129), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4266 try testArgs(@Vector(3, i255), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4267 try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4268 try testArgs(@Vector(3, i257), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4269 try testArgs(@Vector(3, i511), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4270 try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4271 try testArgs(@Vector(3, i513), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4272 try testArgs(@Vector(3, i1023), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4273 try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4274 try testArgs(@Vector(3, i1025), @Vector(3, i32), .{ -1 << 31, -1, 0 });
4275 try testArgs(@Vector(3, u7), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4276 try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4277 try testArgs(@Vector(3, u9), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4278 try testArgs(@Vector(3, u15), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4279 try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4280 try testArgs(@Vector(3, u17), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4281 try testArgs(@Vector(3, u31), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4282 try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4283 try testArgs(@Vector(3, u33), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4284 try testArgs(@Vector(3, u63), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4285 try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4286 try testArgs(@Vector(3, u65), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4287 try testArgs(@Vector(3, u127), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4288 try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4289 try testArgs(@Vector(3, u129), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4290 try testArgs(@Vector(3, u255), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4291 try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4292 try testArgs(@Vector(3, u257), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4293 try testArgs(@Vector(3, u511), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4294 try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4295 try testArgs(@Vector(3, u513), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4296 try testArgs(@Vector(3, u1023), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4297 try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4298 try testArgs(@Vector(3, u1025), @Vector(3, u32), .{ 0, 1, 1 << 31 });
4299
4300 try testArgs(@Vector(3, i7), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4301 try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4302 try testArgs(@Vector(3, i9), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4303 try testArgs(@Vector(3, i15), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4304 try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4305 try testArgs(@Vector(3, i17), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4306 try testArgs(@Vector(3, i31), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4307 try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4308 try testArgs(@Vector(3, i33), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4309 try testArgs(@Vector(3, i63), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4310 try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4311 try testArgs(@Vector(3, i65), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4312 try testArgs(@Vector(3, i127), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4313 try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4314 try testArgs(@Vector(3, i129), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4315 try testArgs(@Vector(3, i255), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4316 try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4317 try testArgs(@Vector(3, i257), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4318 try testArgs(@Vector(3, i511), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4319 try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4320 try testArgs(@Vector(3, i513), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4321 try testArgs(@Vector(3, i1023), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4322 try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4323 try testArgs(@Vector(3, i1025), @Vector(3, i33), .{ -1 << 32, -1, 0 });
4324 try testArgs(@Vector(3, u7), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4325 try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4326 try testArgs(@Vector(3, u9), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4327 try testArgs(@Vector(3, u15), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4328 try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4329 try testArgs(@Vector(3, u17), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4330 try testArgs(@Vector(3, u31), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4331 try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4332 try testArgs(@Vector(3, u33), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4333 try testArgs(@Vector(3, u63), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4334 try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4335 try testArgs(@Vector(3, u65), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4336 try testArgs(@Vector(3, u127), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4337 try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4338 try testArgs(@Vector(3, u129), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4339 try testArgs(@Vector(3, u255), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4340 try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4341 try testArgs(@Vector(3, u257), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4342 try testArgs(@Vector(3, u511), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4343 try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4344 try testArgs(@Vector(3, u513), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4345 try testArgs(@Vector(3, u1023), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4346 try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4347 try testArgs(@Vector(3, u1025), @Vector(3, u33), .{ 0, 1, 1 << 32 });
4348
4349 try testArgs(@Vector(3, i7), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4350 try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4351 try testArgs(@Vector(3, i9), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4352 try testArgs(@Vector(3, i15), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4353 try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4354 try testArgs(@Vector(3, i17), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4355 try testArgs(@Vector(3, i31), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4356 try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4357 try testArgs(@Vector(3, i33), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4358 try testArgs(@Vector(3, i63), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4359 try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4360 try testArgs(@Vector(3, i65), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4361 try testArgs(@Vector(3, i127), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4362 try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4363 try testArgs(@Vector(3, i129), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4364 try testArgs(@Vector(3, i255), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4365 try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4366 try testArgs(@Vector(3, i257), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4367 try testArgs(@Vector(3, i511), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4368 try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4369 try testArgs(@Vector(3, i513), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4370 try testArgs(@Vector(3, i1023), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4371 try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4372 try testArgs(@Vector(3, i1025), @Vector(3, i63), .{ -1 << 62, -1, 0 });
4373 try testArgs(@Vector(3, u7), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4374 try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4375 try testArgs(@Vector(3, u9), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4376 try testArgs(@Vector(3, u15), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4377 try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4378 try testArgs(@Vector(3, u17), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4379 try testArgs(@Vector(3, u31), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4380 try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4381 try testArgs(@Vector(3, u33), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4382 try testArgs(@Vector(3, u63), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4383 try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4384 try testArgs(@Vector(3, u65), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4385 try testArgs(@Vector(3, u127), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4386 try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4387 try testArgs(@Vector(3, u129), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4388 try testArgs(@Vector(3, u255), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4389 try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4390 try testArgs(@Vector(3, u257), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4391 try testArgs(@Vector(3, u511), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4392 try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4393 try testArgs(@Vector(3, u513), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4394 try testArgs(@Vector(3, u1023), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4395 try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4396 try testArgs(@Vector(3, u1025), @Vector(3, u63), .{ 0, 1, 1 << 62 });
4397
4398 try testArgs(@Vector(3, i7), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4399 try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4400 try testArgs(@Vector(3, i9), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4401 try testArgs(@Vector(3, i15), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4402 try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4403 try testArgs(@Vector(3, i17), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4404 try testArgs(@Vector(3, i31), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4405 try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4406 try testArgs(@Vector(3, i33), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4407 try testArgs(@Vector(3, i63), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4408 try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4409 try testArgs(@Vector(3, i65), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4410 try testArgs(@Vector(3, i127), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4411 try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4412 try testArgs(@Vector(3, i129), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4413 try testArgs(@Vector(3, i255), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4414 try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4415 try testArgs(@Vector(3, i257), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4416 try testArgs(@Vector(3, i511), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4417 try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4418 try testArgs(@Vector(3, i513), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4419 try testArgs(@Vector(3, i1023), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4420 try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4421 try testArgs(@Vector(3, i1025), @Vector(3, i64), .{ -1 << 63, -1, 0 });
4422 try testArgs(@Vector(3, u7), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4423 try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4424 try testArgs(@Vector(3, u9), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4425 try testArgs(@Vector(3, u15), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4426 try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4427 try testArgs(@Vector(3, u17), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4428 try testArgs(@Vector(3, u31), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4429 try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4430 try testArgs(@Vector(3, u33), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4431 try testArgs(@Vector(3, u63), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4432 try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4433 try testArgs(@Vector(3, u65), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4434 try testArgs(@Vector(3, u127), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4435 try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4436 try testArgs(@Vector(3, u129), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4437 try testArgs(@Vector(3, u255), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4438 try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4439 try testArgs(@Vector(3, u257), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4440 try testArgs(@Vector(3, u511), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4441 try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4442 try testArgs(@Vector(3, u513), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4443 try testArgs(@Vector(3, u1023), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4444 try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4445 try testArgs(@Vector(3, u1025), @Vector(3, u64), .{ 0, 1, 1 << 63 });
4446
4447 try testArgs(@Vector(3, i7), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4448 try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4449 try testArgs(@Vector(3, i9), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4450 try testArgs(@Vector(3, i15), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4451 try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4452 try testArgs(@Vector(3, i17), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4453 try testArgs(@Vector(3, i31), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4454 try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4455 try testArgs(@Vector(3, i33), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4456 try testArgs(@Vector(3, i63), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4457 try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4458 try testArgs(@Vector(3, i65), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4459 try testArgs(@Vector(3, i127), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4460 try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4461 try testArgs(@Vector(3, i129), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4462 try testArgs(@Vector(3, i255), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4463 try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4464 try testArgs(@Vector(3, i257), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4465 try testArgs(@Vector(3, i511), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4466 try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4467 try testArgs(@Vector(3, i513), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4468 try testArgs(@Vector(3, i1023), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4469 try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4470 try testArgs(@Vector(3, i1025), @Vector(3, i65), .{ -1 << 64, -1, 0 });
4471 try testArgs(@Vector(3, u7), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4472 try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4473 try testArgs(@Vector(3, u9), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4474 try testArgs(@Vector(3, u15), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4475 try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4476 try testArgs(@Vector(3, u17), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4477 try testArgs(@Vector(3, u31), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4478 try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4479 try testArgs(@Vector(3, u33), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4480 try testArgs(@Vector(3, u63), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4481 try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4482 try testArgs(@Vector(3, u65), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4483 try testArgs(@Vector(3, u127), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4484 try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4485 try testArgs(@Vector(3, u129), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4486 try testArgs(@Vector(3, u255), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4487 try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4488 try testArgs(@Vector(3, u257), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4489 try testArgs(@Vector(3, u511), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4490 try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4491 try testArgs(@Vector(3, u513), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4492 try testArgs(@Vector(3, u1023), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4493 try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4494 try testArgs(@Vector(3, u1025), @Vector(3, u65), .{ 0, 1, 1 << 64 });
4495
4496 try testArgs(@Vector(3, i7), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4497 try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4498 try testArgs(@Vector(3, i9), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4499 try testArgs(@Vector(3, i15), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4500 try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4501 try testArgs(@Vector(3, i17), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4502 try testArgs(@Vector(3, i31), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4503 try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4504 try testArgs(@Vector(3, i33), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4505 try testArgs(@Vector(3, i63), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4506 try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4507 try testArgs(@Vector(3, i65), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4508 try testArgs(@Vector(3, i127), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4509 try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4510 try testArgs(@Vector(3, i129), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4511 try testArgs(@Vector(3, i255), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4512 try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4513 try testArgs(@Vector(3, i257), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4514 try testArgs(@Vector(3, i511), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4515 try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4516 try testArgs(@Vector(3, i513), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4517 try testArgs(@Vector(3, i1023), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4518 try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4519 try testArgs(@Vector(3, i1025), @Vector(3, i95), .{ -1 << 94, -1, 0 });
4520 try testArgs(@Vector(3, u7), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4521 try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4522 try testArgs(@Vector(3, u9), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4523 try testArgs(@Vector(3, u15), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4524 try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4525 try testArgs(@Vector(3, u17), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4526 try testArgs(@Vector(3, u31), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4527 try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4528 try testArgs(@Vector(3, u33), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4529 try testArgs(@Vector(3, u63), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4530 try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4531 try testArgs(@Vector(3, u65), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4532 try testArgs(@Vector(3, u127), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4533 try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4534 try testArgs(@Vector(3, u129), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4535 try testArgs(@Vector(3, u255), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4536 try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4537 try testArgs(@Vector(3, u257), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4538 try testArgs(@Vector(3, u511), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4539 try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4540 try testArgs(@Vector(3, u513), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4541 try testArgs(@Vector(3, u1023), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4542 try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4543 try testArgs(@Vector(3, u1025), @Vector(3, u95), .{ 0, 1, 1 << 94 });
4544
4545 try testArgs(@Vector(3, i7), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4546 try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4547 try testArgs(@Vector(3, i9), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4548 try testArgs(@Vector(3, i15), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4549 try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4550 try testArgs(@Vector(3, i17), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4551 try testArgs(@Vector(3, i31), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4552 try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4553 try testArgs(@Vector(3, i33), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4554 try testArgs(@Vector(3, i63), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4555 try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4556 try testArgs(@Vector(3, i65), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4557 try testArgs(@Vector(3, i127), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4558 try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4559 try testArgs(@Vector(3, i129), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4560 try testArgs(@Vector(3, i255), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4561 try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4562 try testArgs(@Vector(3, i257), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4563 try testArgs(@Vector(3, i511), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4564 try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4565 try testArgs(@Vector(3, i513), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4566 try testArgs(@Vector(3, i1023), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4567 try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4568 try testArgs(@Vector(3, i1025), @Vector(3, i96), .{ -1 << 95, -1, 0 });
4569 try testArgs(@Vector(3, u7), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4570 try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4571 try testArgs(@Vector(3, u9), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4572 try testArgs(@Vector(3, u15), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4573 try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4574 try testArgs(@Vector(3, u17), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4575 try testArgs(@Vector(3, u31), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4576 try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4577 try testArgs(@Vector(3, u33), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4578 try testArgs(@Vector(3, u63), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4579 try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4580 try testArgs(@Vector(3, u65), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4581 try testArgs(@Vector(3, u127), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4582 try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4583 try testArgs(@Vector(3, u129), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4584 try testArgs(@Vector(3, u255), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4585 try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4586 try testArgs(@Vector(3, u257), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4587 try testArgs(@Vector(3, u511), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4588 try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4589 try testArgs(@Vector(3, u513), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4590 try testArgs(@Vector(3, u1023), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4591 try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4592 try testArgs(@Vector(3, u1025), @Vector(3, u96), .{ 0, 1, 1 << 95 });
4593
4594 try testArgs(@Vector(3, i7), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4595 try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4596 try testArgs(@Vector(3, i9), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4597 try testArgs(@Vector(3, i15), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4598 try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4599 try testArgs(@Vector(3, i17), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4600 try testArgs(@Vector(3, i31), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4601 try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4602 try testArgs(@Vector(3, i33), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4603 try testArgs(@Vector(3, i63), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4604 try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4605 try testArgs(@Vector(3, i65), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4606 try testArgs(@Vector(3, i127), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4607 try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4608 try testArgs(@Vector(3, i129), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4609 try testArgs(@Vector(3, i255), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4610 try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4611 try testArgs(@Vector(3, i257), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4612 try testArgs(@Vector(3, i511), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4613 try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4614 try testArgs(@Vector(3, i513), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4615 try testArgs(@Vector(3, i1023), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4616 try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4617 try testArgs(@Vector(3, i1025), @Vector(3, i97), .{ -1 << 96, -1, 0 });
4618 try testArgs(@Vector(3, u7), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4619 try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4620 try testArgs(@Vector(3, u9), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4621 try testArgs(@Vector(3, u15), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4622 try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4623 try testArgs(@Vector(3, u17), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4624 try testArgs(@Vector(3, u31), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4625 try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4626 try testArgs(@Vector(3, u33), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4627 try testArgs(@Vector(3, u63), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4628 try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4629 try testArgs(@Vector(3, u65), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4630 try testArgs(@Vector(3, u127), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4631 try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4632 try testArgs(@Vector(3, u129), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4633 try testArgs(@Vector(3, u255), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4634 try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4635 try testArgs(@Vector(3, u257), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4636 try testArgs(@Vector(3, u511), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4637 try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4638 try testArgs(@Vector(3, u513), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4639 try testArgs(@Vector(3, u1023), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4640 try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4641 try testArgs(@Vector(3, u1025), @Vector(3, u97), .{ 0, 1, 1 << 96 });
4642
4643 try testArgs(@Vector(3, i7), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4644 try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4645 try testArgs(@Vector(3, i9), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4646 try testArgs(@Vector(3, i15), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4647 try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4648 try testArgs(@Vector(3, i17), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4649 try testArgs(@Vector(3, i31), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4650 try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4651 try testArgs(@Vector(3, i33), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4652 try testArgs(@Vector(3, i63), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4653 try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4654 try testArgs(@Vector(3, i65), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4655 try testArgs(@Vector(3, i127), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4656 try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4657 try testArgs(@Vector(3, i129), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4658 try testArgs(@Vector(3, i255), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4659 try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4660 try testArgs(@Vector(3, i257), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4661 try testArgs(@Vector(3, i511), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4662 try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4663 try testArgs(@Vector(3, i513), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4664 try testArgs(@Vector(3, i1023), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4665 try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4666 try testArgs(@Vector(3, i1025), @Vector(3, i127), .{ -1 << 126, -1, 0 });
4667 try testArgs(@Vector(3, u7), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4668 try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4669 try testArgs(@Vector(3, u9), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4670 try testArgs(@Vector(3, u15), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4671 try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4672 try testArgs(@Vector(3, u17), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4673 try testArgs(@Vector(3, u31), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4674 try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4675 try testArgs(@Vector(3, u33), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4676 try testArgs(@Vector(3, u63), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4677 try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4678 try testArgs(@Vector(3, u65), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4679 try testArgs(@Vector(3, u127), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4680 try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4681 try testArgs(@Vector(3, u129), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4682 try testArgs(@Vector(3, u255), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4683 try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4684 try testArgs(@Vector(3, u257), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4685 try testArgs(@Vector(3, u511), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4686 try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4687 try testArgs(@Vector(3, u513), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4688 try testArgs(@Vector(3, u1023), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4689 try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4690 try testArgs(@Vector(3, u1025), @Vector(3, u127), .{ 0, 1, 1 << 126 });
4691
4692 try testArgs(@Vector(3, i7), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4693 try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4694 try testArgs(@Vector(3, i9), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4695 try testArgs(@Vector(3, i15), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4696 try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4697 try testArgs(@Vector(3, i17), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4698 try testArgs(@Vector(3, i31), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4699 try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4700 try testArgs(@Vector(3, i33), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4701 try testArgs(@Vector(3, i63), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4702 try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4703 try testArgs(@Vector(3, i65), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4704 try testArgs(@Vector(3, i127), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4705 try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4706 try testArgs(@Vector(3, i129), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4707 try testArgs(@Vector(3, i255), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4708 try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4709 try testArgs(@Vector(3, i257), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4710 try testArgs(@Vector(3, i511), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4711 try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4712 try testArgs(@Vector(3, i513), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4713 try testArgs(@Vector(3, i1023), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4714 try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4715 try testArgs(@Vector(3, i1025), @Vector(3, i128), .{ -1 << 127, -1, 0 });
4716 try testArgs(@Vector(3, u7), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4717 try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4718 try testArgs(@Vector(3, u9), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4719 try testArgs(@Vector(3, u15), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4720 try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4721 try testArgs(@Vector(3, u17), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4722 try testArgs(@Vector(3, u31), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4723 try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4724 try testArgs(@Vector(3, u33), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4725 try testArgs(@Vector(3, u63), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4726 try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4727 try testArgs(@Vector(3, u65), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4728 try testArgs(@Vector(3, u127), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4729 try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4730 try testArgs(@Vector(3, u129), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4731 try testArgs(@Vector(3, u255), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4732 try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4733 try testArgs(@Vector(3, u257), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4734 try testArgs(@Vector(3, u511), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4735 try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4736 try testArgs(@Vector(3, u513), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4737 try testArgs(@Vector(3, u1023), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4738 try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4739 try testArgs(@Vector(3, u1025), @Vector(3, u128), .{ 0, 1, 1 << 127 });
4740
4741 try testArgs(@Vector(3, i7), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4742 try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4743 try testArgs(@Vector(3, i9), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4744 try testArgs(@Vector(3, i15), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4745 try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4746 try testArgs(@Vector(3, i17), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4747 try testArgs(@Vector(3, i31), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4748 try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4749 try testArgs(@Vector(3, i33), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4750 try testArgs(@Vector(3, i63), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4751 try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4752 try testArgs(@Vector(3, i65), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4753 try testArgs(@Vector(3, i127), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4754 try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4755 try testArgs(@Vector(3, i129), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4756 try testArgs(@Vector(3, i255), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4757 try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4758 try testArgs(@Vector(3, i257), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4759 try testArgs(@Vector(3, i511), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4760 try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4761 try testArgs(@Vector(3, i513), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4762 try testArgs(@Vector(3, i1023), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4763 try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4764 try testArgs(@Vector(3, i1025), @Vector(3, i129), .{ -1 << 128, -1, 0 });
4765 try testArgs(@Vector(3, u7), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4766 try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4767 try testArgs(@Vector(3, u9), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4768 try testArgs(@Vector(3, u15), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4769 try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4770 try testArgs(@Vector(3, u17), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4771 try testArgs(@Vector(3, u31), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4772 try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4773 try testArgs(@Vector(3, u33), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4774 try testArgs(@Vector(3, u63), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4775 try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4776 try testArgs(@Vector(3, u65), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4777 try testArgs(@Vector(3, u127), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4778 try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4779 try testArgs(@Vector(3, u129), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4780 try testArgs(@Vector(3, u255), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4781 try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4782 try testArgs(@Vector(3, u257), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4783 try testArgs(@Vector(3, u511), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4784 try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4785 try testArgs(@Vector(3, u513), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4786 try testArgs(@Vector(3, u1023), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4787 try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4788 try testArgs(@Vector(3, u1025), @Vector(3, u129), .{ 0, 1, 1 << 128 });
4789
4790 try testArgs(@Vector(3, i7), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4791 try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4792 try testArgs(@Vector(3, i9), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4793 try testArgs(@Vector(3, i15), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4794 try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4795 try testArgs(@Vector(3, i17), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4796 try testArgs(@Vector(3, i31), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4797 try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4798 try testArgs(@Vector(3, i33), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4799 try testArgs(@Vector(3, i63), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4800 try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4801 try testArgs(@Vector(3, i65), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4802 try testArgs(@Vector(3, i127), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4803 try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4804 try testArgs(@Vector(3, i129), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4805 try testArgs(@Vector(3, i255), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4806 try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4807 try testArgs(@Vector(3, i257), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4808 try testArgs(@Vector(3, i511), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4809 try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4810 try testArgs(@Vector(3, i513), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4811 try testArgs(@Vector(3, i1023), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4812 try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4813 try testArgs(@Vector(3, i1025), @Vector(3, i159), .{ -1 << 158, -1, 0 });
4814 try testArgs(@Vector(3, u7), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4815 try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4816 try testArgs(@Vector(3, u9), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4817 try testArgs(@Vector(3, u15), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4818 try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4819 try testArgs(@Vector(3, u17), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4820 try testArgs(@Vector(3, u31), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4821 try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4822 try testArgs(@Vector(3, u33), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4823 try testArgs(@Vector(3, u63), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4824 try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4825 try testArgs(@Vector(3, u65), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4826 try testArgs(@Vector(3, u127), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4827 try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4828 try testArgs(@Vector(3, u129), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4829 try testArgs(@Vector(3, u255), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4830 try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4831 try testArgs(@Vector(3, u257), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4832 try testArgs(@Vector(3, u511), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4833 try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4834 try testArgs(@Vector(3, u513), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4835 try testArgs(@Vector(3, u1023), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4836 try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4837 try testArgs(@Vector(3, u1025), @Vector(3, u159), .{ 0, 1, 1 << 158 });
4838
4839 try testArgs(@Vector(3, i7), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4840 try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4841 try testArgs(@Vector(3, i9), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4842 try testArgs(@Vector(3, i15), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4843 try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4844 try testArgs(@Vector(3, i17), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4845 try testArgs(@Vector(3, i31), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4846 try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4847 try testArgs(@Vector(3, i33), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4848 try testArgs(@Vector(3, i63), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4849 try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4850 try testArgs(@Vector(3, i65), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4851 try testArgs(@Vector(3, i127), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4852 try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4853 try testArgs(@Vector(3, i129), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4854 try testArgs(@Vector(3, i255), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4855 try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4856 try testArgs(@Vector(3, i257), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4857 try testArgs(@Vector(3, i511), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4858 try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4859 try testArgs(@Vector(3, i513), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4860 try testArgs(@Vector(3, i1023), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4861 try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4862 try testArgs(@Vector(3, i1025), @Vector(3, i160), .{ -1 << 159, -1, 0 });
4863 try testArgs(@Vector(3, u7), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4864 try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4865 try testArgs(@Vector(3, u9), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4866 try testArgs(@Vector(3, u15), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4867 try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4868 try testArgs(@Vector(3, u17), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4869 try testArgs(@Vector(3, u31), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4870 try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4871 try testArgs(@Vector(3, u33), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4872 try testArgs(@Vector(3, u63), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4873 try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4874 try testArgs(@Vector(3, u65), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4875 try testArgs(@Vector(3, u127), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4876 try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4877 try testArgs(@Vector(3, u129), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4878 try testArgs(@Vector(3, u255), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4879 try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4880 try testArgs(@Vector(3, u257), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4881 try testArgs(@Vector(3, u511), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4882 try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4883 try testArgs(@Vector(3, u513), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4884 try testArgs(@Vector(3, u1023), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4885 try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4886 try testArgs(@Vector(3, u1025), @Vector(3, u160), .{ 0, 1, 1 << 159 });
4887
4888 try testArgs(@Vector(3, i7), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4889 try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4890 try testArgs(@Vector(3, i9), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4891 try testArgs(@Vector(3, i15), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4892 try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4893 try testArgs(@Vector(3, i17), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4894 try testArgs(@Vector(3, i31), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4895 try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4896 try testArgs(@Vector(3, i33), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4897 try testArgs(@Vector(3, i63), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4898 try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4899 try testArgs(@Vector(3, i65), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4900 try testArgs(@Vector(3, i127), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4901 try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4902 try testArgs(@Vector(3, i129), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4903 try testArgs(@Vector(3, i255), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4904 try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4905 try testArgs(@Vector(3, i257), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4906 try testArgs(@Vector(3, i511), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4907 try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4908 try testArgs(@Vector(3, i513), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4909 try testArgs(@Vector(3, i1023), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4910 try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4911 try testArgs(@Vector(3, i1025), @Vector(3, i161), .{ -1 << 160, -1, 0 });
4912 try testArgs(@Vector(3, u7), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4913 try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4914 try testArgs(@Vector(3, u9), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4915 try testArgs(@Vector(3, u15), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4916 try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4917 try testArgs(@Vector(3, u17), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4918 try testArgs(@Vector(3, u31), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4919 try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4920 try testArgs(@Vector(3, u33), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4921 try testArgs(@Vector(3, u63), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4922 try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4923 try testArgs(@Vector(3, u65), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4924 try testArgs(@Vector(3, u127), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4925 try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4926 try testArgs(@Vector(3, u129), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4927 try testArgs(@Vector(3, u255), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4928 try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4929 try testArgs(@Vector(3, u257), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4930 try testArgs(@Vector(3, u511), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4931 try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4932 try testArgs(@Vector(3, u513), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4933 try testArgs(@Vector(3, u1023), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4934 try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4935 try testArgs(@Vector(3, u1025), @Vector(3, u161), .{ 0, 1, 1 << 160 });
4936
4937 try testArgs(@Vector(3, i7), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4938 try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4939 try testArgs(@Vector(3, i9), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4940 try testArgs(@Vector(3, i15), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4941 try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4942 try testArgs(@Vector(3, i17), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4943 try testArgs(@Vector(3, i31), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4944 try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4945 try testArgs(@Vector(3, i33), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4946 try testArgs(@Vector(3, i63), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4947 try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4948 try testArgs(@Vector(3, i65), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4949 try testArgs(@Vector(3, i127), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4950 try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4951 try testArgs(@Vector(3, i129), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4952 try testArgs(@Vector(3, i255), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4953 try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4954 try testArgs(@Vector(3, i257), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4955 try testArgs(@Vector(3, i511), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4956 try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4957 try testArgs(@Vector(3, i513), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4958 try testArgs(@Vector(3, i1023), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4959 try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4960 try testArgs(@Vector(3, i1025), @Vector(3, i191), .{ -1 << 190, -1, 0 });
4961 try testArgs(@Vector(3, u7), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4962 try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4963 try testArgs(@Vector(3, u9), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4964 try testArgs(@Vector(3, u15), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4965 try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4966 try testArgs(@Vector(3, u17), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4967 try testArgs(@Vector(3, u31), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4968 try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4969 try testArgs(@Vector(3, u33), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4970 try testArgs(@Vector(3, u63), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4971 try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4972 try testArgs(@Vector(3, u65), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4973 try testArgs(@Vector(3, u127), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4974 try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4975 try testArgs(@Vector(3, u129), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4976 try testArgs(@Vector(3, u255), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4977 try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4978 try testArgs(@Vector(3, u257), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4979 try testArgs(@Vector(3, u511), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4980 try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4981 try testArgs(@Vector(3, u513), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4982 try testArgs(@Vector(3, u1023), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4983 try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4984 try testArgs(@Vector(3, u1025), @Vector(3, u191), .{ 0, 1, 1 << 190 });
4985
4986 try testArgs(@Vector(3, i7), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4987 try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4988 try testArgs(@Vector(3, i9), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4989 try testArgs(@Vector(3, i15), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4990 try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4991 try testArgs(@Vector(3, i17), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4992 try testArgs(@Vector(3, i31), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4993 try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4994 try testArgs(@Vector(3, i33), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4995 try testArgs(@Vector(3, i63), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4996 try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4997 try testArgs(@Vector(3, i65), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4998 try testArgs(@Vector(3, i127), @Vector(3, i192), .{ -1 << 191, -1, 0 });
4999 try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5000 try testArgs(@Vector(3, i129), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5001 try testArgs(@Vector(3, i255), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5002 try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5003 try testArgs(@Vector(3, i257), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5004 try testArgs(@Vector(3, i511), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5005 try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5006 try testArgs(@Vector(3, i513), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5007 try testArgs(@Vector(3, i1023), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5008 try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5009 try testArgs(@Vector(3, i1025), @Vector(3, i192), .{ -1 << 191, -1, 0 });
5010 try testArgs(@Vector(3, u7), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5011 try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5012 try testArgs(@Vector(3, u9), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5013 try testArgs(@Vector(3, u15), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5014 try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5015 try testArgs(@Vector(3, u17), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5016 try testArgs(@Vector(3, u31), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5017 try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5018 try testArgs(@Vector(3, u33), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5019 try testArgs(@Vector(3, u63), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5020 try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5021 try testArgs(@Vector(3, u65), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5022 try testArgs(@Vector(3, u127), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5023 try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5024 try testArgs(@Vector(3, u129), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5025 try testArgs(@Vector(3, u255), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5026 try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5027 try testArgs(@Vector(3, u257), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5028 try testArgs(@Vector(3, u511), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5029 try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5030 try testArgs(@Vector(3, u513), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5031 try testArgs(@Vector(3, u1023), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5032 try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5033 try testArgs(@Vector(3, u1025), @Vector(3, u192), .{ 0, 1, 1 << 191 });
5034
5035 try testArgs(@Vector(3, i7), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5036 try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5037 try testArgs(@Vector(3, i9), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5038 try testArgs(@Vector(3, i15), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5039 try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5040 try testArgs(@Vector(3, i17), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5041 try testArgs(@Vector(3, i31), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5042 try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5043 try testArgs(@Vector(3, i33), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5044 try testArgs(@Vector(3, i63), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5045 try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5046 try testArgs(@Vector(3, i65), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5047 try testArgs(@Vector(3, i127), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5048 try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5049 try testArgs(@Vector(3, i129), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5050 try testArgs(@Vector(3, i255), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5051 try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5052 try testArgs(@Vector(3, i257), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5053 try testArgs(@Vector(3, i511), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5054 try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5055 try testArgs(@Vector(3, i513), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5056 try testArgs(@Vector(3, i1023), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5057 try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5058 try testArgs(@Vector(3, i1025), @Vector(3, i193), .{ -1 << 192, -1, 0 });
5059 try testArgs(@Vector(3, u7), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5060 try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5061 try testArgs(@Vector(3, u9), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5062 try testArgs(@Vector(3, u15), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5063 try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5064 try testArgs(@Vector(3, u17), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5065 try testArgs(@Vector(3, u31), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5066 try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5067 try testArgs(@Vector(3, u33), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5068 try testArgs(@Vector(3, u63), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5069 try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5070 try testArgs(@Vector(3, u65), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5071 try testArgs(@Vector(3, u127), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5072 try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5073 try testArgs(@Vector(3, u129), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5074 try testArgs(@Vector(3, u255), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5075 try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5076 try testArgs(@Vector(3, u257), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5077 try testArgs(@Vector(3, u511), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5078 try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5079 try testArgs(@Vector(3, u513), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5080 try testArgs(@Vector(3, u1023), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5081 try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5082 try testArgs(@Vector(3, u1025), @Vector(3, u193), .{ 0, 1, 1 << 192 });
5083
5084 try testArgs(@Vector(3, i7), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5085 try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5086 try testArgs(@Vector(3, i9), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5087 try testArgs(@Vector(3, i15), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5088 try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5089 try testArgs(@Vector(3, i17), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5090 try testArgs(@Vector(3, i31), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5091 try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5092 try testArgs(@Vector(3, i33), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5093 try testArgs(@Vector(3, i63), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5094 try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5095 try testArgs(@Vector(3, i65), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5096 try testArgs(@Vector(3, i127), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5097 try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5098 try testArgs(@Vector(3, i129), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5099 try testArgs(@Vector(3, i255), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5100 try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5101 try testArgs(@Vector(3, i257), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5102 try testArgs(@Vector(3, i511), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5103 try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5104 try testArgs(@Vector(3, i513), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5105 try testArgs(@Vector(3, i1023), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5106 try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5107 try testArgs(@Vector(3, i1025), @Vector(3, i223), .{ -1 << 222, -1, 0 });
5108 try testArgs(@Vector(3, u7), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5109 try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5110 try testArgs(@Vector(3, u9), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5111 try testArgs(@Vector(3, u15), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5112 try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5113 try testArgs(@Vector(3, u17), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5114 try testArgs(@Vector(3, u31), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5115 try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5116 try testArgs(@Vector(3, u33), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5117 try testArgs(@Vector(3, u63), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5118 try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5119 try testArgs(@Vector(3, u65), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5120 try testArgs(@Vector(3, u127), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5121 try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5122 try testArgs(@Vector(3, u129), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5123 try testArgs(@Vector(3, u255), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5124 try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5125 try testArgs(@Vector(3, u257), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5126 try testArgs(@Vector(3, u511), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5127 try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5128 try testArgs(@Vector(3, u513), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5129 try testArgs(@Vector(3, u1023), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5130 try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5131 try testArgs(@Vector(3, u1025), @Vector(3, u223), .{ 0, 1, 1 << 222 });
5132
5133 try testArgs(@Vector(3, i7), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5134 try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5135 try testArgs(@Vector(3, i9), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5136 try testArgs(@Vector(3, i15), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5137 try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5138 try testArgs(@Vector(3, i17), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5139 try testArgs(@Vector(3, i31), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5140 try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5141 try testArgs(@Vector(3, i33), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5142 try testArgs(@Vector(3, i63), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5143 try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5144 try testArgs(@Vector(3, i65), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5145 try testArgs(@Vector(3, i127), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5146 try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5147 try testArgs(@Vector(3, i129), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5148 try testArgs(@Vector(3, i255), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5149 try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5150 try testArgs(@Vector(3, i257), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5151 try testArgs(@Vector(3, i511), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5152 try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5153 try testArgs(@Vector(3, i513), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5154 try testArgs(@Vector(3, i1023), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5155 try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5156 try testArgs(@Vector(3, i1025), @Vector(3, i224), .{ -1 << 223, -1, 0 });
5157 try testArgs(@Vector(3, u7), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5158 try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5159 try testArgs(@Vector(3, u9), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5160 try testArgs(@Vector(3, u15), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5161 try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5162 try testArgs(@Vector(3, u17), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5163 try testArgs(@Vector(3, u31), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5164 try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5165 try testArgs(@Vector(3, u33), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5166 try testArgs(@Vector(3, u63), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5167 try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5168 try testArgs(@Vector(3, u65), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5169 try testArgs(@Vector(3, u127), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5170 try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5171 try testArgs(@Vector(3, u129), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5172 try testArgs(@Vector(3, u255), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5173 try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5174 try testArgs(@Vector(3, u257), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5175 try testArgs(@Vector(3, u511), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5176 try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5177 try testArgs(@Vector(3, u513), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5178 try testArgs(@Vector(3, u1023), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5179 try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5180 try testArgs(@Vector(3, u1025), @Vector(3, u224), .{ 0, 1, 1 << 223 });
5181
5182 try testArgs(@Vector(3, i7), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5183 try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5184 try testArgs(@Vector(3, i9), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5185 try testArgs(@Vector(3, i15), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5186 try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5187 try testArgs(@Vector(3, i17), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5188 try testArgs(@Vector(3, i31), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5189 try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5190 try testArgs(@Vector(3, i33), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5191 try testArgs(@Vector(3, i63), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5192 try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5193 try testArgs(@Vector(3, i65), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5194 try testArgs(@Vector(3, i127), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5195 try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5196 try testArgs(@Vector(3, i129), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5197 try testArgs(@Vector(3, i255), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5198 try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5199 try testArgs(@Vector(3, i257), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5200 try testArgs(@Vector(3, i511), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5201 try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5202 try testArgs(@Vector(3, i513), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5203 try testArgs(@Vector(3, i1023), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5204 try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5205 try testArgs(@Vector(3, i1025), @Vector(3, i225), .{ -1 << 224, -1, 0 });
5206 try testArgs(@Vector(3, u7), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5207 try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5208 try testArgs(@Vector(3, u9), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5209 try testArgs(@Vector(3, u15), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5210 try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5211 try testArgs(@Vector(3, u17), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5212 try testArgs(@Vector(3, u31), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5213 try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5214 try testArgs(@Vector(3, u33), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5215 try testArgs(@Vector(3, u63), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5216 try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5217 try testArgs(@Vector(3, u65), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5218 try testArgs(@Vector(3, u127), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5219 try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5220 try testArgs(@Vector(3, u129), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5221 try testArgs(@Vector(3, u255), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5222 try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5223 try testArgs(@Vector(3, u257), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5224 try testArgs(@Vector(3, u511), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5225 try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5226 try testArgs(@Vector(3, u513), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5227 try testArgs(@Vector(3, u1023), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5228 try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5229 try testArgs(@Vector(3, u1025), @Vector(3, u225), .{ 0, 1, 1 << 224 });
5230
5231 try testArgs(@Vector(3, i7), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5232 try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5233 try testArgs(@Vector(3, i9), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5234 try testArgs(@Vector(3, i15), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5235 try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5236 try testArgs(@Vector(3, i17), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5237 try testArgs(@Vector(3, i31), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5238 try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5239 try testArgs(@Vector(3, i33), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5240 try testArgs(@Vector(3, i63), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5241 try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5242 try testArgs(@Vector(3, i65), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5243 try testArgs(@Vector(3, i127), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5244 try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5245 try testArgs(@Vector(3, i129), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5246 try testArgs(@Vector(3, i255), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5247 try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5248 try testArgs(@Vector(3, i257), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5249 try testArgs(@Vector(3, i511), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5250 try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5251 try testArgs(@Vector(3, i513), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5252 try testArgs(@Vector(3, i1023), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5253 try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5254 try testArgs(@Vector(3, i1025), @Vector(3, i255), .{ -1 << 254, -1, 0 });
5255 try testArgs(@Vector(3, u7), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5256 try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5257 try testArgs(@Vector(3, u9), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5258 try testArgs(@Vector(3, u15), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5259 try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5260 try testArgs(@Vector(3, u17), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5261 try testArgs(@Vector(3, u31), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5262 try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5263 try testArgs(@Vector(3, u33), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5264 try testArgs(@Vector(3, u63), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5265 try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5266 try testArgs(@Vector(3, u65), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5267 try testArgs(@Vector(3, u127), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5268 try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5269 try testArgs(@Vector(3, u129), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5270 try testArgs(@Vector(3, u255), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5271 try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5272 try testArgs(@Vector(3, u257), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5273 try testArgs(@Vector(3, u511), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5274 try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5275 try testArgs(@Vector(3, u513), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5276 try testArgs(@Vector(3, u1023), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5277 try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5278 try testArgs(@Vector(3, u1025), @Vector(3, u255), .{ 0, 1, 1 << 254 });
5279
5280 try testArgs(@Vector(3, i7), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5281 try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5282 try testArgs(@Vector(3, i9), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5283 try testArgs(@Vector(3, i15), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5284 try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5285 try testArgs(@Vector(3, i17), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5286 try testArgs(@Vector(3, i31), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5287 try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5288 try testArgs(@Vector(3, i33), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5289 try testArgs(@Vector(3, i63), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5290 try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5291 try testArgs(@Vector(3, i65), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5292 try testArgs(@Vector(3, i127), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5293 try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5294 try testArgs(@Vector(3, i129), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5295 try testArgs(@Vector(3, i255), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5296 try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5297 try testArgs(@Vector(3, i257), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5298 try testArgs(@Vector(3, i511), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5299 try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5300 try testArgs(@Vector(3, i513), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5301 try testArgs(@Vector(3, i1023), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5302 try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5303 try testArgs(@Vector(3, i1025), @Vector(3, i256), .{ -1 << 255, -1, 0 });
5304 try testArgs(@Vector(3, u7), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5305 try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5306 try testArgs(@Vector(3, u9), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5307 try testArgs(@Vector(3, u15), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5308 try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5309 try testArgs(@Vector(3, u17), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5310 try testArgs(@Vector(3, u31), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5311 try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5312 try testArgs(@Vector(3, u33), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5313 try testArgs(@Vector(3, u63), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5314 try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5315 try testArgs(@Vector(3, u65), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5316 try testArgs(@Vector(3, u127), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5317 try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5318 try testArgs(@Vector(3, u129), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5319 try testArgs(@Vector(3, u255), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5320 try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5321 try testArgs(@Vector(3, u257), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5322 try testArgs(@Vector(3, u511), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5323 try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5324 try testArgs(@Vector(3, u513), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5325 try testArgs(@Vector(3, u1023), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5326 try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5327 try testArgs(@Vector(3, u1025), @Vector(3, u256), .{ 0, 1, 1 << 255 });
5328
5329 try testArgs(@Vector(3, i7), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5330 try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5331 try testArgs(@Vector(3, i9), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5332 try testArgs(@Vector(3, i15), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5333 try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5334 try testArgs(@Vector(3, i17), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5335 try testArgs(@Vector(3, i31), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5336 try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5337 try testArgs(@Vector(3, i33), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5338 try testArgs(@Vector(3, i63), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5339 try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5340 try testArgs(@Vector(3, i65), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5341 try testArgs(@Vector(3, i127), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5342 try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5343 try testArgs(@Vector(3, i129), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5344 try testArgs(@Vector(3, i255), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5345 try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5346 try testArgs(@Vector(3, i257), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5347 try testArgs(@Vector(3, i511), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5348 try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5349 try testArgs(@Vector(3, i513), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5350 try testArgs(@Vector(3, i1023), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5351 try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5352 try testArgs(@Vector(3, i1025), @Vector(3, i257), .{ -1 << 256, -1, 0 });
5353 try testArgs(@Vector(3, u7), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5354 try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5355 try testArgs(@Vector(3, u9), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5356 try testArgs(@Vector(3, u15), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5357 try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5358 try testArgs(@Vector(3, u17), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5359 try testArgs(@Vector(3, u31), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5360 try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5361 try testArgs(@Vector(3, u33), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5362 try testArgs(@Vector(3, u63), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5363 try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5364 try testArgs(@Vector(3, u65), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5365 try testArgs(@Vector(3, u127), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5366 try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5367 try testArgs(@Vector(3, u129), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5368 try testArgs(@Vector(3, u255), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5369 try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5370 try testArgs(@Vector(3, u257), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5371 try testArgs(@Vector(3, u511), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5372 try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5373 try testArgs(@Vector(3, u513), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5374 try testArgs(@Vector(3, u1023), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5375 try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5376 try testArgs(@Vector(3, u1025), @Vector(3, u257), .{ 0, 1, 1 << 256 });
5377
5378 try testArgs(@Vector(3, i7), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5379 try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5380 try testArgs(@Vector(3, i9), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5381 try testArgs(@Vector(3, i15), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5382 try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5383 try testArgs(@Vector(3, i17), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5384 try testArgs(@Vector(3, i31), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5385 try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5386 try testArgs(@Vector(3, i33), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5387 try testArgs(@Vector(3, i63), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5388 try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5389 try testArgs(@Vector(3, i65), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5390 try testArgs(@Vector(3, i127), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5391 try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5392 try testArgs(@Vector(3, i129), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5393 try testArgs(@Vector(3, i255), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5394 try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5395 try testArgs(@Vector(3, i257), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5396 try testArgs(@Vector(3, i511), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5397 try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5398 try testArgs(@Vector(3, i513), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5399 try testArgs(@Vector(3, i1023), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5400 try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5401 try testArgs(@Vector(3, i1025), @Vector(3, i511), .{ -1 << 510, -1, 0 });
5402 try testArgs(@Vector(3, u7), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5403 try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5404 try testArgs(@Vector(3, u9), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5405 try testArgs(@Vector(3, u15), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5406 try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5407 try testArgs(@Vector(3, u17), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5408 try testArgs(@Vector(3, u31), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5409 try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5410 try testArgs(@Vector(3, u33), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5411 try testArgs(@Vector(3, u63), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5412 try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5413 try testArgs(@Vector(3, u65), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5414 try testArgs(@Vector(3, u127), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5415 try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5416 try testArgs(@Vector(3, u129), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5417 try testArgs(@Vector(3, u255), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5418 try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5419 try testArgs(@Vector(3, u257), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5420 try testArgs(@Vector(3, u511), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5421 try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5422 try testArgs(@Vector(3, u513), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5423 try testArgs(@Vector(3, u1023), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5424 try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5425 try testArgs(@Vector(3, u1025), @Vector(3, u511), .{ 0, 1, 1 << 510 });
5426
5427 try testArgs(@Vector(3, i7), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5428 try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5429 try testArgs(@Vector(3, i9), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5430 try testArgs(@Vector(3, i15), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5431 try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5432 try testArgs(@Vector(3, i17), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5433 try testArgs(@Vector(3, i31), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5434 try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5435 try testArgs(@Vector(3, i33), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5436 try testArgs(@Vector(3, i63), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5437 try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5438 try testArgs(@Vector(3, i65), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5439 try testArgs(@Vector(3, i127), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5440 try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5441 try testArgs(@Vector(3, i129), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5442 try testArgs(@Vector(3, i255), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5443 try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5444 try testArgs(@Vector(3, i257), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5445 try testArgs(@Vector(3, i511), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5446 try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5447 try testArgs(@Vector(3, i513), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5448 try testArgs(@Vector(3, i1023), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5449 try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5450 try testArgs(@Vector(3, i1025), @Vector(3, i512), .{ -1 << 511, -1, 0 });
5451 try testArgs(@Vector(3, u7), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5452 try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5453 try testArgs(@Vector(3, u9), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5454 try testArgs(@Vector(3, u15), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5455 try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5456 try testArgs(@Vector(3, u17), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5457 try testArgs(@Vector(3, u31), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5458 try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5459 try testArgs(@Vector(3, u33), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5460 try testArgs(@Vector(3, u63), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5461 try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5462 try testArgs(@Vector(3, u65), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5463 try testArgs(@Vector(3, u127), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5464 try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5465 try testArgs(@Vector(3, u129), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5466 try testArgs(@Vector(3, u255), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5467 try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5468 try testArgs(@Vector(3, u257), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5469 try testArgs(@Vector(3, u511), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5470 try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5471 try testArgs(@Vector(3, u513), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5472 try testArgs(@Vector(3, u1023), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5473 try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5474 try testArgs(@Vector(3, u1025), @Vector(3, u512), .{ 0, 1, 1 << 511 });
5475
5476 try testArgs(@Vector(3, i7), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5477 try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5478 try testArgs(@Vector(3, i9), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5479 try testArgs(@Vector(3, i15), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5480 try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5481 try testArgs(@Vector(3, i17), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5482 try testArgs(@Vector(3, i31), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5483 try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5484 try testArgs(@Vector(3, i33), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5485 try testArgs(@Vector(3, i63), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5486 try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5487 try testArgs(@Vector(3, i65), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5488 try testArgs(@Vector(3, i127), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5489 try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5490 try testArgs(@Vector(3, i129), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5491 try testArgs(@Vector(3, i255), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5492 try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5493 try testArgs(@Vector(3, i257), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5494 try testArgs(@Vector(3, i511), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5495 try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5496 try testArgs(@Vector(3, i513), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5497 try testArgs(@Vector(3, i1023), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5498 try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5499 try testArgs(@Vector(3, i1025), @Vector(3, i513), .{ -1 << 512, -1, 0 });
5500 try testArgs(@Vector(3, u7), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5501 try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5502 try testArgs(@Vector(3, u9), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5503 try testArgs(@Vector(3, u15), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5504 try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5505 try testArgs(@Vector(3, u17), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5506 try testArgs(@Vector(3, u31), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5507 try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5508 try testArgs(@Vector(3, u33), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5509 try testArgs(@Vector(3, u63), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5510 try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5511 try testArgs(@Vector(3, u65), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5512 try testArgs(@Vector(3, u127), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5513 try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5514 try testArgs(@Vector(3, u129), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5515 try testArgs(@Vector(3, u255), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5516 try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5517 try testArgs(@Vector(3, u257), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5518 try testArgs(@Vector(3, u511), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5519 try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5520 try testArgs(@Vector(3, u513), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5521 try testArgs(@Vector(3, u1023), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5522 try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5523 try testArgs(@Vector(3, u1025), @Vector(3, u513), .{ 0, 1, 1 << 512 });
5524
5525 try testArgs(@Vector(3, i7), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5526 try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5527 try testArgs(@Vector(3, i9), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5528 try testArgs(@Vector(3, i15), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5529 try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5530 try testArgs(@Vector(3, i17), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5531 try testArgs(@Vector(3, i31), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5532 try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5533 try testArgs(@Vector(3, i33), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5534 try testArgs(@Vector(3, i63), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5535 try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5536 try testArgs(@Vector(3, i65), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5537 try testArgs(@Vector(3, i127), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5538 try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5539 try testArgs(@Vector(3, i129), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5540 try testArgs(@Vector(3, i255), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5541 try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5542 try testArgs(@Vector(3, i257), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5543 try testArgs(@Vector(3, i511), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5544 try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5545 try testArgs(@Vector(3, i513), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5546 try testArgs(@Vector(3, i1023), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5547 try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5548 try testArgs(@Vector(3, i1025), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
5549 try testArgs(@Vector(3, u7), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5550 try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5551 try testArgs(@Vector(3, u9), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5552 try testArgs(@Vector(3, u15), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5553 try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5554 try testArgs(@Vector(3, u17), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5555 try testArgs(@Vector(3, u31), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5556 try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5557 try testArgs(@Vector(3, u33), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5558 try testArgs(@Vector(3, u63), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5559 try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5560 try testArgs(@Vector(3, u65), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5561 try testArgs(@Vector(3, u127), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5562 try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5563 try testArgs(@Vector(3, u129), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5564 try testArgs(@Vector(3, u255), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5565 try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5566 try testArgs(@Vector(3, u257), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5567 try testArgs(@Vector(3, u511), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5568 try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5569 try testArgs(@Vector(3, u513), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5570 try testArgs(@Vector(3, u1023), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5571 try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5572 try testArgs(@Vector(3, u1025), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
5573
5574 try testArgs(@Vector(3, i7), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5575 try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5576 try testArgs(@Vector(3, i9), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5577 try testArgs(@Vector(3, i15), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5578 try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5579 try testArgs(@Vector(3, i17), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5580 try testArgs(@Vector(3, i31), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5581 try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5582 try testArgs(@Vector(3, i33), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5583 try testArgs(@Vector(3, i63), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5584 try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5585 try testArgs(@Vector(3, i65), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5586 try testArgs(@Vector(3, i127), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5587 try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5588 try testArgs(@Vector(3, i129), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5589 try testArgs(@Vector(3, i255), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5590 try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5591 try testArgs(@Vector(3, i257), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5592 try testArgs(@Vector(3, i511), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5593 try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5594 try testArgs(@Vector(3, i513), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5595 try testArgs(@Vector(3, i1023), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5596 try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5597 try testArgs(@Vector(3, i1025), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
5598 try testArgs(@Vector(3, u7), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5599 try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5600 try testArgs(@Vector(3, u9), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5601 try testArgs(@Vector(3, u15), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5602 try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5603 try testArgs(@Vector(3, u17), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5604 try testArgs(@Vector(3, u31), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5605 try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5606 try testArgs(@Vector(3, u33), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5607 try testArgs(@Vector(3, u63), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5608 try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5609 try testArgs(@Vector(3, u65), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5610 try testArgs(@Vector(3, u127), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5611 try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5612 try testArgs(@Vector(3, u129), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5613 try testArgs(@Vector(3, u255), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5614 try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5615 try testArgs(@Vector(3, u257), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5616 try testArgs(@Vector(3, u511), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5617 try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5618 try testArgs(@Vector(3, u513), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5619 try testArgs(@Vector(3, u1023), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5620 try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5621 try testArgs(@Vector(3, u1025), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
5622
5623 try testArgs(@Vector(3, i7), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5624 try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5625 try testArgs(@Vector(3, i9), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5626 try testArgs(@Vector(3, i15), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5627 try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5628 try testArgs(@Vector(3, i17), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5629 try testArgs(@Vector(3, i31), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5630 try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5631 try testArgs(@Vector(3, i33), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5632 try testArgs(@Vector(3, i63), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5633 try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5634 try testArgs(@Vector(3, i65), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5635 try testArgs(@Vector(3, i127), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5636 try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5637 try testArgs(@Vector(3, i129), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5638 try testArgs(@Vector(3, i255), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5639 try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5640 try testArgs(@Vector(3, i257), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5641 try testArgs(@Vector(3, i511), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5642 try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5643 try testArgs(@Vector(3, i513), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5644 try testArgs(@Vector(3, i1023), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5645 try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5646 try testArgs(@Vector(3, i1025), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
5647 try testArgs(@Vector(3, u7), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5648 try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5649 try testArgs(@Vector(3, u9), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5650 try testArgs(@Vector(3, u15), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5651 try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5652 try testArgs(@Vector(3, u17), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5653 try testArgs(@Vector(3, u31), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5654 try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5655 try testArgs(@Vector(3, u33), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5656 try testArgs(@Vector(3, u63), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5657 try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5658 try testArgs(@Vector(3, u65), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5659 try testArgs(@Vector(3, u127), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5660 try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5661 try testArgs(@Vector(3, u129), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5662 try testArgs(@Vector(3, u255), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5663 try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5664 try testArgs(@Vector(3, u257), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5665 try testArgs(@Vector(3, u511), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5666 try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5667 try testArgs(@Vector(3, u513), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5668 try testArgs(@Vector(3, u1023), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5669 try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5670 try testArgs(@Vector(3, u1025), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
5671 }
5672 fn testIntVectors() !void {
5673 try testSameSignednessIntVectors();
5674
5675 try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});
5676 try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});
5677 try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});
5678 try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});
5679 try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});
5680 try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});
5681 try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});
5682 try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});
5683 try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});
5684 try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});
5685 try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});
5686 try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});
5687 try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});
5688 try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});
5689 try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});
5690 try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1});
5691
5692 try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });
5693 try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });
5694 try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });
5695 try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });
5696 try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });
5697 try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });
5698 try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });
5699 try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });
5700 try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });
5701 try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });
5702 try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });
5703 try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });
5704 try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });
5705 try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });
5706 try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });
5707 try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 });
5708
5709 try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5710 try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5711 try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5712 try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5713 try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5714 try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5715 try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5716 try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5717 try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5718 try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5719 try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5720 try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5721 try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5722 try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5723 try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5724 try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5725
5726 try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5727 try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5728 try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5729 try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5730 try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5731 try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5732 try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5733 try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5734 try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5735 try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5736 try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5737 try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5738 try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5739 try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5740 try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5741 try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5742
5743 try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5744 try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5745 try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5746 try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5747 try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5748 try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5749 try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5750 try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5751 try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5752 try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5753 try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5754 try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5755 try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5756 try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5757 try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5758 try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5759
5760 try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5761 try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5762 try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5763 try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5764 try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5765 try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5766 try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5767 try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5768 try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5769 try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5770 try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5771 try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5772 try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5773 try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5774 try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5775 try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5776
5777 try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5778 try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5779 try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5780 try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5781 try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5782 try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5783 try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5784 try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5785 try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5786 try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5787 try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5788 try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5789 try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5790 try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5791 try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5792 try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5793
5794 try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5795 try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5796 try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5797 try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5798 try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5799 try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5800 try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5801 try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5802 try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5803 try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5804 try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5805 try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5806 try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5807 try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5808 try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5809 try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5810
5811 try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5812 try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5813 try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5814 try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5815 try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5816 try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5817 try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5818 try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5819 try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5820 try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5821 try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5822 try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5823 try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5824 try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5825 try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5826 try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5827
5828 try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5829 try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5830 try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5831 try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5832 try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5833 try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5834 try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5835 try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5836 try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5837 try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5838 try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5839 try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5840 try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5841 try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5842 try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5843 try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5844
5845 try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5846 try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5847 try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5848 try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5849 try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5850 try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5851 try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5852 try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5853 try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5854 try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5855 try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5856 try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5857 try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5858 try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5859 try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5860 try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5861
5862 try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5863 try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5864 try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5865 try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5866 try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5867 try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5868 try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5869 try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5870 try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5871 try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5872 try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5873 try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5874 try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5875 try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5876 try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5877 try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5878
5879 try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5880 try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5881 try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5882 try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5883 try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5884 try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5885 try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5886 try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5887 try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5888 try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5889 try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5890 try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5891 try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5892 try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5893 try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5894 try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5895
5896 try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5897 try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5898 try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5899 try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5900 try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5901 try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5902 try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5903 try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5904 try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5905 try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5906 try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5907 try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5908 try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5909 try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5910 try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5911 try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5912
5913 try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5914 try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5915 try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5916 try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5917 try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5918 try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5919 try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5920 try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
5921 try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5922 try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5923 try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5924 try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5925 try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5926 try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5927 try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5928 try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
5929
5930 try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5931 try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5932 try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5933 try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5934 try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5935 try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5936 try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5937 try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
5938 try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5939 try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5940 try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5941 try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5942 try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5943 try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5944 try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5945 try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
5946
5947 try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5948 try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5949 try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5950 try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5951 try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5952 try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5953 try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5954 try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
5955 try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5956 try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5957 try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5958 try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5959 try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5960 try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5961 try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5962 try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
5963
5964 try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5965 try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5966 try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5967 try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5968 try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5969 try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5970 try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5971 try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
5972 try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5973 try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5974 try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5975 try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5976 try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5977 try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5978 try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5979 try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
5980
5981 try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5982 try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5983 try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5984 try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5985 try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5986 try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5987 try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5988 try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
5989 try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5990 try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5991 try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5992 try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5993 try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5994 try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5995 try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5996 try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
5997
5998 try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
5999 try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6000 try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6001 try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6002 try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6003 try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6004 try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6005 try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6006 try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6007 try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6008 try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6009 try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6010 try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6011 try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6012 try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6013 try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6014
6015 try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6016 try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6017 try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6018 try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6019 try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6020 try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6021 try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6022 try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6023 try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6024 try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6025 try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6026 try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6027 try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6028 try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6029 try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6030 try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6031
6032 try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6033 try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6034 try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6035 try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6036 try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6037 try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6038 try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6039 try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6040 try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6041 try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6042 try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6043 try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6044 try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6045 try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6046 try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6047 try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6048
6049 try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6050 try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6051 try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6052 try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6053 try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6054 try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6055 try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6056 try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6057 try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6058 try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6059 try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6060 try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6061 try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6062 try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6063 try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6064 try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6065
6066 try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6067 try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6068 try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6069 try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6070 try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6071 try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6072 try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6073 try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6074 try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6075 try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6076 try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6077 try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6078 try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6079 try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6080 try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6081 try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6082
6083 try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6084 try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6085 try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6086 try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6087 try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6088 try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6089 try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6090 try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6091 try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6092 try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6093 try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6094 try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6095 try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6096 try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6097 try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6098 try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6099
6100 try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6101 try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6102 try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6103 try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6104 try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6105 try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6106 try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6107 try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6108 try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6109 try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6110 try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6111 try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6112 try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6113 try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6114 try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6115 try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6116
6117 try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6118 try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6119 try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6120 try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6121 try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6122 try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6123 try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6124 try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6125 try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6126 try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6127 try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6128 try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6129 try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6130 try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6131 try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6132 try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6133
6134 try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6135 try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6136 try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6137 try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6138 try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6139 try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6140 try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6141 try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6142 try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6143 try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6144 try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6145 try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6146 try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6147 try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6148 try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6149 try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6150
6151 try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6152 try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6153 try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6154 try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6155 try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6156 try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6157 try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6158 try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6159 try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6160 try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6161 try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6162 try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6163 try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6164 try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6165 try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6166 try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6167
6168 try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6169 try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6170 try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6171 try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6172 try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6173 try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6174 try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6175 try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6176 try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6177 try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6178 try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6179 try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6180 try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6181 try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6182 try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6183 try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6184
6185 try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6186 try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6187 try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6188 try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6189 try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6190 try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6191 try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6192 try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6193 try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6194 try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6195 try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6196 try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6197 try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6198 try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6199 try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6200 try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6201
6202 try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6203 try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6204 try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6205 try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6206 try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6207 try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6208 try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6209 try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6210 try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6211 try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6212 try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6213 try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6214 try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6215 try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6216 try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6217 try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6218
6219 try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6220 try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6221 try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6222 try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6223 try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6224 try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6225 try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6226 try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6227 try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6228 try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6229 try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6230 try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6231 try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6232 try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6233 try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6234 try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6235
6236 try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6237 try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6238 try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6239 try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6240 try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6241 try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6242 try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6243 try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6244 try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6245 try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6246 try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6247 try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6248 try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6249 try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6250 try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6251 try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6252
6253 try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6254 try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6255 try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6256 try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6257 try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6258 try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6259 try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6260 try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
6261 try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6262 try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6263 try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6264 try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6265 try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6266 try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6267 try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6268 try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
6269
6270 try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6271 try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6272 try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6273 try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6274 try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6275 try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6276 try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6277 try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
6278 try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6279 try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6280 try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6281 try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6282 try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6283 try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6284 try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6285 try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
6286
6287 try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6288 try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6289 try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6290 try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6291 try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6292 try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6293 try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6294 try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
6295 try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6296 try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6297 try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6298 try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6299 try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6300 try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6301 try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6302 try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
6303
6304 try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6305 try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6306 try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6307 try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6308 try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6309 try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6310 try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6311 try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
6312 try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6313 try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6314 try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6315 try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6316 try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6317 try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6318 try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6319 try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
6320
6321 try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6322 try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6323 try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6324 try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6325 try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6326 try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6327 try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6328 try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
6329 try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6330 try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6331 try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6332 try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6333 try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6334 try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6335 try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6336 try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
6337
6338 try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6339 try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6340 try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6341 try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6342 try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6343 try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6344 try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6345 try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
6346 try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6347 try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6348 try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6349 try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6350 try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6351 try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6352 try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6353 try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
6354
6355 try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6356 try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6357 try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6358 try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6359 try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6360 try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6361 try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6362 try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
6363 try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6364 try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6365 try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6366 try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6367 try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6368 try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6369 try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6370 try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
6371
6372 try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6373 try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6374 try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6375 try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6376 try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6377 try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6378 try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6379 try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
6380 try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6381 try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6382 try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6383 try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6384 try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6385 try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6386 try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6387 try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
6388 }
6389 fn testFloatVectors() !void {
6390 @setEvalBranchQuota(6_700);
6391
6392 try testArgs(@Vector(1, f16), @Vector(1, f16), .{
6393 1e0,
6394 });
6395 try testArgs(@Vector(2, f16), @Vector(2, f16), .{
6396 -inf(f16), -1e-2,
6397 });
6398 try testArgs(@Vector(4, f16), @Vector(4, f16), .{
6399 -1e2, 1e-1, fmax(f16), 1e-2,
6400 });
6401 try testArgs(@Vector(8, f16), @Vector(8, f16), .{
6402 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
6403 });
6404 try testArgs(@Vector(16, f16), @Vector(16, f16), .{
6405 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
6406 });
6407 try testArgs(@Vector(32, f16), @Vector(32, f16), .{
6408 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
6409 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
6410 });
6411
6412 try testArgs(@Vector(1, f32), @Vector(1, f16), .{
6413 1e0,
6414 });
6415 try testArgs(@Vector(2, f32), @Vector(2, f16), .{
6416 -inf(f16), -1e-2,
6417 });
6418 try testArgs(@Vector(4, f32), @Vector(4, f16), .{
6419 -1e2, 1e-1, fmax(f16), 1e-2,
6420 });
6421 try testArgs(@Vector(8, f32), @Vector(8, f16), .{
6422 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
6423 });
6424 try testArgs(@Vector(16, f32), @Vector(16, f16), .{
6425 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
6426 });
6427 try testArgs(@Vector(32, f32), @Vector(32, f16), .{
6428 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
6429 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
6430 });
6431
6432 try testArgs(@Vector(1, f64), @Vector(1, f16), .{
6433 1e0,
6434 });
6435 try testArgs(@Vector(2, f64), @Vector(2, f16), .{
6436 -inf(f16), -1e-2,
6437 });
6438 try testArgs(@Vector(4, f64), @Vector(4, f16), .{
6439 -1e2, 1e-1, fmax(f16), 1e-2,
6440 });
6441 try testArgs(@Vector(8, f64), @Vector(8, f16), .{
6442 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
6443 });
6444 try testArgs(@Vector(16, f64), @Vector(16, f16), .{
6445 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
6446 });
6447 try testArgs(@Vector(32, f64), @Vector(32, f16), .{
6448 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
6449 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
6450 });
6451
6452 try testArgs(@Vector(1, f80), @Vector(1, f16), .{
6453 1e0,
6454 });
6455 try testArgs(@Vector(2, f80), @Vector(2, f16), .{
6456 -inf(f16), -1e-2,
6457 });
6458 try testArgs(@Vector(4, f80), @Vector(4, f16), .{
6459 -1e2, 1e-1, fmax(f16), 1e-2,
6460 });
6461 try testArgs(@Vector(8, f80), @Vector(8, f16), .{
6462 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
6463 });
6464 try testArgs(@Vector(16, f80), @Vector(16, f16), .{
6465 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
6466 });
6467 try testArgs(@Vector(32, f80), @Vector(32, f16), .{
6468 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
6469 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
6470 });
6471
6472 try testArgs(@Vector(1, f128), @Vector(1, f16), .{
6473 1e0,
6474 });
6475 try testArgs(@Vector(2, f128), @Vector(2, f16), .{
6476 -inf(f16), -1e-2,
6477 });
6478 try testArgs(@Vector(4, f128), @Vector(4, f16), .{
6479 -1e2, 1e-1, fmax(f16), 1e-2,
6480 });
6481 try testArgs(@Vector(8, f128), @Vector(8, f16), .{
6482 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
6483 });
6484 try testArgs(@Vector(16, f128), @Vector(16, f16), .{
6485 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
6486 });
6487 try testArgs(@Vector(32, f128), @Vector(32, f16), .{
6488 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
6489 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
6490 });
6491
6492 try testArgs(@Vector(1, f16), @Vector(1, f32), .{
6493 1e0,
6494 });
6495 try testArgs(@Vector(2, f16), @Vector(2, f32), .{
6496 -inf(f32), -1e-2,
6497 });
6498 try testArgs(@Vector(4, f16), @Vector(4, f32), .{
6499 -1e2, 1e-1, fmax(f32), 1e-2,
6500 });
6501 try testArgs(@Vector(8, f16), @Vector(8, f32), .{
6502 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
6503 });
6504 try testArgs(@Vector(16, f16), @Vector(16, f32), .{
6505 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
6506 });
6507 try testArgs(@Vector(32, f16), @Vector(32, f32), .{
6508 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
6509 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
6510 });
6511
6512 try testArgs(@Vector(1, f32), @Vector(1, f32), .{
6513 1e0,
6514 });
6515 try testArgs(@Vector(2, f32), @Vector(2, f32), .{
6516 -inf(f32), -1e-2,
6517 });
6518 try testArgs(@Vector(4, f32), @Vector(4, f32), .{
6519 -1e2, 1e-1, fmax(f32), 1e-2,
6520 });
6521 try testArgs(@Vector(8, f32), @Vector(8, f32), .{
6522 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
6523 });
6524 try testArgs(@Vector(16, f32), @Vector(16, f32), .{
6525 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
6526 });
6527 try testArgs(@Vector(32, f32), @Vector(32, f32), .{
6528 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
6529 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
6530 });
6531
6532 try testArgs(@Vector(1, f64), @Vector(1, f32), .{
6533 1e0,
6534 });
6535 try testArgs(@Vector(2, f64), @Vector(2, f32), .{
6536 -inf(f32), -1e-2,
6537 });
6538 try testArgs(@Vector(4, f64), @Vector(4, f32), .{
6539 -1e2, 1e-1, fmax(f32), 1e-2,
6540 });
6541 try testArgs(@Vector(8, f64), @Vector(8, f32), .{
6542 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
6543 });
6544 try testArgs(@Vector(16, f64), @Vector(16, f32), .{
6545 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
6546 });
6547 try testArgs(@Vector(32, f64), @Vector(32, f32), .{
6548 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
6549 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
6550 });
6551
6552 try testArgs(@Vector(1, f80), @Vector(1, f32), .{
6553 1e0,
6554 });
6555 try testArgs(@Vector(2, f80), @Vector(2, f32), .{
6556 -inf(f32), -1e-2,
6557 });
6558 try testArgs(@Vector(4, f80), @Vector(4, f32), .{
6559 -1e2, 1e-1, fmax(f32), 1e-2,
6560 });
6561 try testArgs(@Vector(8, f80), @Vector(8, f32), .{
6562 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
6563 });
6564 try testArgs(@Vector(16, f80), @Vector(16, f32), .{
6565 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
6566 });
6567 try testArgs(@Vector(32, f80), @Vector(32, f32), .{
6568 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
6569 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
6570 });
6571
6572 try testArgs(@Vector(1, f128), @Vector(1, f32), .{
6573 1e0,
6574 });
6575 try testArgs(@Vector(2, f128), @Vector(2, f32), .{
6576 -inf(f32), -1e-2,
6577 });
6578 try testArgs(@Vector(4, f128), @Vector(4, f32), .{
6579 -1e2, 1e-1, fmax(f32), 1e-2,
6580 });
6581 try testArgs(@Vector(8, f128), @Vector(8, f32), .{
6582 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
6583 });
6584 try testArgs(@Vector(16, f128), @Vector(16, f32), .{
6585 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
6586 });
6587 try testArgs(@Vector(32, f128), @Vector(32, f32), .{
6588 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
6589 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
6590 });
6591
6592 try testArgs(@Vector(1, f16), @Vector(1, f64), .{
6593 1e0,
6594 });
6595 try testArgs(@Vector(2, f16), @Vector(2, f64), .{
6596 -inf(f64), -1e-2,
6597 });
6598 try testArgs(@Vector(4, f16), @Vector(4, f64), .{
6599 -1e2, 1e-1, fmax(f64), 1e-2,
6600 });
6601 try testArgs(@Vector(8, f16), @Vector(8, f64), .{
6602 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
6603 });
6604 try testArgs(@Vector(16, f16), @Vector(16, f64), .{
6605 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
6606 });
6607 try testArgs(@Vector(32, f16), @Vector(32, f64), .{
6608 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
6609 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
6610 });
6611
6612 try testArgs(@Vector(1, f32), @Vector(1, f64), .{
6613 1e0,
6614 });
6615 try testArgs(@Vector(2, f32), @Vector(2, f64), .{
6616 -inf(f64), -1e-2,
6617 });
6618 try testArgs(@Vector(4, f32), @Vector(4, f64), .{
6619 -1e2, 1e-1, fmax(f64), 1e-2,
6620 });
6621 try testArgs(@Vector(8, f32), @Vector(8, f64), .{
6622 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
6623 });
6624 try testArgs(@Vector(16, f32), @Vector(16, f64), .{
6625 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
6626 });
6627 try testArgs(@Vector(32, f32), @Vector(32, f64), .{
6628 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
6629 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
6630 });
6631
6632 try testArgs(@Vector(1, f64), @Vector(1, f64), .{
6633 1e0,
6634 });
6635 try testArgs(@Vector(2, f64), @Vector(2, f64), .{
6636 -inf(f64), -1e-2,
6637 });
6638 try testArgs(@Vector(4, f64), @Vector(4, f64), .{
6639 -1e2, 1e-1, fmax(f64), 1e-2,
6640 });
6641 try testArgs(@Vector(8, f64), @Vector(8, f64), .{
6642 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
6643 });
6644 try testArgs(@Vector(16, f64), @Vector(16, f64), .{
6645 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
6646 });
6647 try testArgs(@Vector(32, f64), @Vector(32, f64), .{
6648 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
6649 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
6650 });
6651
6652 try testArgs(@Vector(1, f80), @Vector(1, f64), .{
6653 1e0,
6654 });
6655 try testArgs(@Vector(2, f80), @Vector(2, f64), .{
6656 -inf(f64), -1e-2,
6657 });
6658 try testArgs(@Vector(4, f80), @Vector(4, f64), .{
6659 -1e2, 1e-1, fmax(f64), 1e-2,
6660 });
6661 try testArgs(@Vector(8, f80), @Vector(8, f64), .{
6662 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
6663 });
6664 try testArgs(@Vector(16, f80), @Vector(16, f64), .{
6665 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
6666 });
6667 try testArgs(@Vector(32, f80), @Vector(32, f64), .{
6668 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
6669 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
6670 });
6671
6672 try testArgs(@Vector(1, f128), @Vector(1, f64), .{
6673 1e0,
6674 });
6675 try testArgs(@Vector(2, f128), @Vector(2, f64), .{
6676 -inf(f64), -1e-2,
6677 });
6678 try testArgs(@Vector(4, f128), @Vector(4, f64), .{
6679 -1e2, 1e-1, fmax(f64), 1e-2,
6680 });
6681 try testArgs(@Vector(8, f128), @Vector(8, f64), .{
6682 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
6683 });
6684 try testArgs(@Vector(16, f128), @Vector(16, f64), .{
6685 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
6686 });
6687 try testArgs(@Vector(32, f128), @Vector(32, f64), .{
6688 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
6689 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
6690 });
6691
6692 try testArgs(@Vector(1, f16), @Vector(1, f80), .{
6693 1e0,
6694 });
6695 try testArgs(@Vector(2, f16), @Vector(2, f80), .{
6696 -inf(f80), -1e-2,
6697 });
6698 try testArgs(@Vector(4, f16), @Vector(4, f80), .{
6699 -1e2, 1e-1, fmax(f80), 1e-2,
6700 });
6701 try testArgs(@Vector(8, f16), @Vector(8, f80), .{
6702 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
6703 });
6704 try testArgs(@Vector(16, f16), @Vector(16, f80), .{
6705 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
6706 });
6707 try testArgs(@Vector(32, f16), @Vector(32, f80), .{
6708 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
6709 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
6710 });
6711
6712 try testArgs(@Vector(1, f32), @Vector(1, f80), .{
6713 1e0,
6714 });
6715 try testArgs(@Vector(2, f32), @Vector(2, f80), .{
6716 -inf(f80), -1e-2,
6717 });
6718 try testArgs(@Vector(4, f32), @Vector(4, f80), .{
6719 -1e2, 1e-1, fmax(f80), 1e-2,
6720 });
6721 try testArgs(@Vector(8, f32), @Vector(8, f80), .{
6722 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
6723 });
6724 try testArgs(@Vector(16, f32), @Vector(16, f80), .{
6725 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
6726 });
6727 try testArgs(@Vector(32, f32), @Vector(32, f80), .{
6728 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
6729 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
6730 });
6731
6732 try testArgs(@Vector(1, f64), @Vector(1, f80), .{
6733 1e0,
6734 });
6735 try testArgs(@Vector(2, f64), @Vector(2, f80), .{
6736 -inf(f80), -1e-2,
6737 });
6738 try testArgs(@Vector(4, f64), @Vector(4, f80), .{
6739 -1e2, 1e-1, fmax(f80), 1e-2,
6740 });
6741 try testArgs(@Vector(8, f64), @Vector(8, f80), .{
6742 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
6743 });
6744 try testArgs(@Vector(16, f64), @Vector(16, f80), .{
6745 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
6746 });
6747 try testArgs(@Vector(32, f64), @Vector(32, f80), .{
6748 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
6749 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
6750 });
6751
6752 try testArgs(@Vector(1, f80), @Vector(1, f80), .{
6753 1e0,
6754 });
6755 try testArgs(@Vector(2, f80), @Vector(2, f80), .{
6756 -inf(f80), -1e-2,
6757 });
6758 try testArgs(@Vector(4, f80), @Vector(4, f80), .{
6759 -1e2, 1e-1, fmax(f80), 1e-2,
6760 });
6761 try testArgs(@Vector(8, f80), @Vector(8, f80), .{
6762 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
6763 });
6764 try testArgs(@Vector(16, f80), @Vector(16, f80), .{
6765 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
6766 });
6767 try testArgs(@Vector(32, f80), @Vector(32, f80), .{
6768 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
6769 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
6770 });
6771
6772 try testArgs(@Vector(1, f128), @Vector(1, f80), .{
6773 1e0,
6774 });
6775 try testArgs(@Vector(2, f128), @Vector(2, f80), .{
6776 -inf(f80), -1e-2,
6777 });
6778 try testArgs(@Vector(4, f128), @Vector(4, f80), .{
6779 -1e2, 1e-1, fmax(f80), 1e-2,
6780 });
6781 try testArgs(@Vector(8, f128), @Vector(8, f80), .{
6782 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
6783 });
6784 try testArgs(@Vector(16, f128), @Vector(16, f80), .{
6785 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
6786 });
6787 try testArgs(@Vector(32, f128), @Vector(32, f80), .{
6788 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
6789 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
6790 });
6791
6792 try testArgs(@Vector(1, f16), @Vector(1, f128), .{
6793 1e0,
6794 });
6795 try testArgs(@Vector(2, f16), @Vector(2, f128), .{
6796 -inf(f128), -1e-2,
6797 });
6798 try testArgs(@Vector(4, f16), @Vector(4, f128), .{
6799 -1e2, 1e-1, fmax(f128), 1e-2,
6800 });
6801 try testArgs(@Vector(8, f16), @Vector(8, f128), .{
6802 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
6803 });
6804 try testArgs(@Vector(16, f16), @Vector(16, f128), .{
6805 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
6806 });
6807 try testArgs(@Vector(32, f16), @Vector(32, f128), .{
6808 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
6809 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
6810 });
6811
6812 try testArgs(@Vector(1, f32), @Vector(1, f128), .{
6813 1e0,
6814 });
6815 try testArgs(@Vector(2, f32), @Vector(2, f128), .{
6816 -inf(f128), -1e-2,
6817 });
6818 try testArgs(@Vector(4, f32), @Vector(4, f128), .{
6819 -1e2, 1e-1, fmax(f128), 1e-2,
6820 });
6821 try testArgs(@Vector(8, f32), @Vector(8, f128), .{
6822 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
6823 });
6824 try testArgs(@Vector(16, f32), @Vector(16, f128), .{
6825 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
6826 });
6827 try testArgs(@Vector(32, f32), @Vector(32, f128), .{
6828 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
6829 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
6830 });
6831
6832 try testArgs(@Vector(1, f64), @Vector(1, f128), .{
6833 1e0,
6834 });
6835 try testArgs(@Vector(2, f64), @Vector(2, f128), .{
6836 -inf(f128), -1e-2,
6837 });
6838 try testArgs(@Vector(4, f64), @Vector(4, f128), .{
6839 -1e2, 1e-1, fmax(f128), 1e-2,
6840 });
6841 try testArgs(@Vector(8, f64), @Vector(8, f128), .{
6842 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
6843 });
6844 try testArgs(@Vector(16, f64), @Vector(16, f128), .{
6845 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
6846 });
6847 try testArgs(@Vector(32, f64), @Vector(32, f128), .{
6848 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
6849 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
6850 });
6851
6852 try testArgs(@Vector(1, f80), @Vector(1, f128), .{
6853 1e0,
6854 });
6855 try testArgs(@Vector(2, f80), @Vector(2, f128), .{
6856 -inf(f128), -1e-2,
6857 });
6858 try testArgs(@Vector(4, f80), @Vector(4, f128), .{
6859 -1e2, 1e-1, fmax(f128), 1e-2,
6860 });
6861 try testArgs(@Vector(8, f80), @Vector(8, f128), .{
6862 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
6863 });
6864 try testArgs(@Vector(16, f80), @Vector(16, f128), .{
6865 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
6866 });
6867 try testArgs(@Vector(32, f80), @Vector(32, f128), .{
6868 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
6869 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
6870 });
6871
6872 try testArgs(@Vector(1, f128), @Vector(1, f128), .{
6873 1e0,
6874 });
6875 try testArgs(@Vector(2, f128), @Vector(2, f128), .{
6876 -inf(f128), -1e-2,
6877 });
6878 try testArgs(@Vector(4, f128), @Vector(4, f128), .{
6879 -1e2, 1e-1, fmax(f128), 1e-2,
6880 });
6881 try testArgs(@Vector(8, f128), @Vector(8, f128), .{
6882 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
6883 });
6884 try testArgs(@Vector(16, f128), @Vector(16, f128), .{
6885 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
6886 });
6887 try testArgs(@Vector(32, f128), @Vector(32, f128), .{
6888 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
6889 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
6890 });
6891 }
6892 fn testIntsFromFloats() !void {
6893 @setEvalBranchQuota(2_600);
6894
6895 try testArgs(i8, f16, -0x0.8p8);
6896 try testArgs(i8, f16, next(f16, -0x0.8p8, -0.0));
6897 try testArgs(i8, f16, next(f16, next(f16, -0x0.8p8, -0.0), -0.0));
6898 try testArgs(i8, f16, -1e2);
6899 try testArgs(i8, f16, -1e1);
6900 try testArgs(i8, f16, -1e0);
6901 try testArgs(i8, f16, -1e-1);
6902 try testArgs(i8, f16, -0.0);
6903 try testArgs(i8, f16, 0.0);
6904 try testArgs(i8, f16, 1e-1);
6905 try testArgs(i8, f16, 1e0);
6906 try testArgs(i8, f16, 1e1);
6907 try testArgs(i8, f16, 1e2);
6908 try testArgs(i8, f16, next(f16, next(f16, 0x0.8p8, 0.0), 0.0));
6909 try testArgs(i8, f16, next(f16, 0x0.8p8, 0.0));
6910
6911 try testArgs(u8, f16, -0.0);
6912 try testArgs(u8, f16, 0.0);
6913 try testArgs(u8, f16, 1e-1);
6914 try testArgs(u8, f16, 1e0);
6915 try testArgs(u8, f16, 1e1);
6916 try testArgs(u8, f16, 1e2);
6917 try testArgs(u8, f16, next(f16, next(f16, 0x1p8, 0.0), 0.0));
6918 try testArgs(u8, f16, next(f16, 0x1p8, 0.0));
6919
6920 try testArgs(i16, f16, -1e4);
6921 try testArgs(i16, f16, -1e3);
6922 try testArgs(i16, f16, -1e2);
6923 try testArgs(i16, f16, -1e1);
6924 try testArgs(i16, f16, -1e0);
6925 try testArgs(i16, f16, -1e-1);
6926 try testArgs(i16, f16, -0.0);
6927 try testArgs(i16, f16, 0.0);
6928 try testArgs(i16, f16, 1e-1);
6929 try testArgs(i16, f16, 1e0);
6930 try testArgs(i16, f16, 1e1);
6931 try testArgs(i16, f16, 1e2);
6932 try testArgs(i16, f16, 1e3);
6933 try testArgs(i16, f16, 1e4);
6934 try testArgs(i16, f16, next(f16, next(f16, 0x0.8p16, 0.0), 0.0));
6935 try testArgs(i16, f16, next(f16, 0x0.8p16, 0.0));
6936
6937 try testArgs(u16, f16, -0.0);
6938 try testArgs(u16, f16, 0.0);
6939 try testArgs(u16, f16, 1e-1);
6940 try testArgs(u16, f16, 1e0);
6941 try testArgs(u16, f16, 1e1);
6942 try testArgs(u16, f16, 1e2);
6943 try testArgs(u16, f16, 1e3);
6944 try testArgs(u16, f16, 1e4);
6945 try testArgs(u16, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
6946 try testArgs(u16, f16, next(f16, fmax(f16), 0.0));
6947 try testArgs(u16, f16, fmax(f16));
6948
6949 try testArgs(i32, f16, -fmax(f16));
6950 try testArgs(i32, f16, next(f16, -fmax(f16), -0.0));
6951 try testArgs(i32, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
6952 try testArgs(i32, f16, -1e4);
6953 try testArgs(i32, f16, -1e3);
6954 try testArgs(i32, f16, -1e2);
6955 try testArgs(i32, f16, -1e1);
6956 try testArgs(i32, f16, -1e0);
6957 try testArgs(i32, f16, -1e-1);
6958 try testArgs(i32, f16, -0.0);
6959 try testArgs(i32, f16, 0.0);
6960 try testArgs(i32, f16, 1e-1);
6961 try testArgs(i32, f16, 1e0);
6962 try testArgs(i32, f16, 1e1);
6963 try testArgs(i32, f16, 1e2);
6964 try testArgs(i32, f16, 1e3);
6965 try testArgs(i32, f16, 1e4);
6966 try testArgs(i32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
6967 try testArgs(i32, f16, next(f16, fmax(f16), 0.0));
6968 try testArgs(i32, f16, fmax(f16));
6969
6970 try testArgs(u32, f16, -0.0);
6971 try testArgs(u32, f16, 0.0);
6972 try testArgs(u32, f16, 1e-1);
6973 try testArgs(u32, f16, 1e0);
6974 try testArgs(u32, f16, 1e1);
6975 try testArgs(u32, f16, 1e2);
6976 try testArgs(u32, f16, 1e3);
6977 try testArgs(u32, f16, 1e4);
6978 try testArgs(u32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
6979 try testArgs(u32, f16, next(f16, fmax(f16), 0.0));
6980 try testArgs(u32, f16, fmax(f16));
6981
6982 try testArgs(i64, f16, -fmax(f16));
6983 try testArgs(i64, f16, next(f16, -fmax(f16), -0.0));
6984 try testArgs(i64, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
6985 try testArgs(i64, f16, -1e4);
6986 try testArgs(i64, f16, -1e3);
6987 try testArgs(i64, f16, -1e2);
6988 try testArgs(i64, f16, -1e1);
6989 try testArgs(i64, f16, -1e0);
6990 try testArgs(i64, f16, -1e-1);
6991 try testArgs(i64, f16, -0.0);
6992 try testArgs(i64, f16, 0.0);
6993 try testArgs(i64, f16, 1e-1);
6994 try testArgs(i64, f16, 1e0);
6995 try testArgs(i64, f16, 1e1);
6996 try testArgs(i64, f16, 1e2);
6997 try testArgs(i64, f16, 1e3);
6998 try testArgs(i64, f16, 1e4);
6999 try testArgs(i64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7000 try testArgs(i64, f16, next(f16, fmax(f16), 0.0));
7001 try testArgs(i64, f16, fmax(f16));
7002
7003 try testArgs(u64, f16, -0.0);
7004 try testArgs(u64, f16, 0.0);
7005 try testArgs(u64, f16, 1e-1);
7006 try testArgs(u64, f16, 1e0);
7007 try testArgs(u64, f16, 1e1);
7008 try testArgs(u64, f16, 1e2);
7009 try testArgs(u64, f16, 1e3);
7010 try testArgs(u64, f16, 1e4);
7011 try testArgs(u64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7012 try testArgs(u64, f16, next(f16, fmax(f16), 0.0));
7013 try testArgs(u64, f16, fmax(f16));
7014
7015 try testArgs(i128, f16, -fmax(f16));
7016 try testArgs(i128, f16, next(f16, -fmax(f16), -0.0));
7017 try testArgs(i128, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
7018 try testArgs(i128, f16, -1e4);
7019 try testArgs(i128, f16, -1e3);
7020 try testArgs(i128, f16, -1e2);
7021 try testArgs(i128, f16, -1e1);
7022 try testArgs(i128, f16, -1e0);
7023 try testArgs(i128, f16, -1e-1);
7024 try testArgs(i128, f16, -0.0);
7025 try testArgs(i128, f16, 0.0);
7026 try testArgs(i128, f16, 1e-1);
7027 try testArgs(i128, f16, 1e0);
7028 try testArgs(i128, f16, 1e1);
7029 try testArgs(i128, f16, 1e2);
7030 try testArgs(i128, f16, 1e3);
7031 try testArgs(i128, f16, 1e4);
7032 try testArgs(i128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7033 try testArgs(i128, f16, next(f16, fmax(f16), 0.0));
7034 try testArgs(i128, f16, fmax(f16));
7035
7036 try testArgs(u128, f16, -0.0);
7037 try testArgs(u128, f16, 0.0);
7038 try testArgs(u128, f16, 1e-1);
7039 try testArgs(u128, f16, 1e0);
7040 try testArgs(u128, f16, 1e1);
7041 try testArgs(u128, f16, 1e2);
7042 try testArgs(u128, f16, 1e3);
7043 try testArgs(u128, f16, 1e4);
7044 try testArgs(u128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7045 try testArgs(u128, f16, next(f16, fmax(f16), 0.0));
7046 try testArgs(u128, f16, fmax(f16));
7047
7048 try testArgs(i256, f16, -fmax(f16));
7049 try testArgs(i256, f16, next(f16, -fmax(f16), -0.0));
7050 try testArgs(i256, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
7051 try testArgs(i256, f16, -1e4);
7052 try testArgs(i256, f16, -1e3);
7053 try testArgs(i256, f16, -1e2);
7054 try testArgs(i256, f16, -1e1);
7055 try testArgs(i256, f16, -1e0);
7056 try testArgs(i256, f16, -1e-1);
7057 try testArgs(i256, f16, -0.0);
7058 try testArgs(i256, f16, 0.0);
7059 try testArgs(i256, f16, 1e-1);
7060 try testArgs(i256, f16, 1e0);
7061 try testArgs(i256, f16, 1e1);
7062 try testArgs(i256, f16, 1e2);
7063 try testArgs(i256, f16, 1e3);
7064 try testArgs(i256, f16, 1e4);
7065 try testArgs(i256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7066 try testArgs(i256, f16, next(f16, fmax(f16), 0.0));
7067 try testArgs(i256, f16, fmax(f16));
7068
7069 try testArgs(u256, f16, -0.0);
7070 try testArgs(u256, f16, 0.0);
7071 try testArgs(u256, f16, 1e-1);
7072 try testArgs(u256, f16, 1e0);
7073 try testArgs(u256, f16, 1e1);
7074 try testArgs(u256, f16, 1e2);
7075 try testArgs(u256, f16, 1e3);
7076 try testArgs(u256, f16, 1e4);
7077 try testArgs(u256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
7078 try testArgs(u256, f16, next(f16, fmax(f16), 0.0));
7079 try testArgs(u256, f16, fmax(f16));
7080
7081 try testArgs(i8, f32, -0x0.8p8);
7082 try testArgs(i8, f32, next(f32, -0x0.8p8, -0.0));
7083 try testArgs(i8, f32, next(f32, next(f32, -0x0.8p8, -0.0), -0.0));
7084 try testArgs(i8, f32, -1e2);
7085 try testArgs(i8, f32, -1e1);
7086 try testArgs(i8, f32, -1e0);
7087 try testArgs(i8, f32, -1e-1);
7088 try testArgs(i8, f32, -0.0);
7089 try testArgs(i8, f32, 0.0);
7090 try testArgs(i8, f32, 1e-1);
7091 try testArgs(i8, f32, 1e0);
7092 try testArgs(i8, f32, 1e1);
7093 try testArgs(i8, f32, 1e2);
7094 try testArgs(i8, f32, next(f32, next(f32, 0x0.8p8, 0.0), 0.0));
7095 try testArgs(i8, f32, next(f32, 0x0.8p8, 0.0));
7096
7097 try testArgs(u8, f32, -0.0);
7098 try testArgs(u8, f32, 0.0);
7099 try testArgs(u8, f32, 1e-1);
7100 try testArgs(u8, f32, 1e0);
7101 try testArgs(u8, f32, 1e1);
7102 try testArgs(u8, f32, 1e2);
7103 try testArgs(u8, f32, next(f32, next(f32, 0x1p8, 0.0), 0.0));
7104 try testArgs(u8, f32, next(f32, 0x1p8, 0.0));
7105
7106 try testArgs(i16, f32, -0x0.8p16);
7107 try testArgs(i16, f32, next(f32, -0x0.8p16, -0.0));
7108 try testArgs(i16, f32, next(f32, next(f32, -0x0.8p16, -0.0), -0.0));
7109 try testArgs(i16, f32, -1e4);
7110 try testArgs(i16, f32, -1e3);
7111 try testArgs(i16, f32, -1e2);
7112 try testArgs(i16, f32, -1e1);
7113 try testArgs(i16, f32, -1e0);
7114 try testArgs(i16, f32, -1e-1);
7115 try testArgs(i16, f32, -0.0);
7116 try testArgs(i16, f32, 0.0);
7117 try testArgs(i16, f32, 1e-1);
7118 try testArgs(i16, f32, 1e0);
7119 try testArgs(i16, f32, 1e1);
7120 try testArgs(i16, f32, 1e2);
7121 try testArgs(i16, f32, 1e3);
7122 try testArgs(i16, f32, 1e4);
7123 try testArgs(i16, f32, next(f32, next(f32, 0x0.8p16, 0.0), 0.0));
7124 try testArgs(i16, f32, next(f32, 0x0.8p16, 0.0));
7125
7126 try testArgs(u16, f32, -0.0);
7127 try testArgs(u16, f32, 0.0);
7128 try testArgs(u16, f32, 1e-1);
7129 try testArgs(u16, f32, 1e0);
7130 try testArgs(u16, f32, 1e1);
7131 try testArgs(u16, f32, 1e2);
7132 try testArgs(u16, f32, 1e3);
7133 try testArgs(u16, f32, 1e4);
7134 try testArgs(u16, f32, next(f32, next(f32, 0x1p16, 0.0), 0.0));
7135 try testArgs(u16, f32, next(f32, 0x1p16, 0.0));
7136
7137 try testArgs(i32, f32, -0x0.8p32);
7138 try testArgs(i32, f32, next(f32, -0x0.8p32, -0.0));
7139 try testArgs(i32, f32, next(f32, next(f32, -0x0.8p32, -0.0), -0.0));
7140 try testArgs(i32, f32, -1e9);
7141 try testArgs(i32, f32, -1e8);
7142 try testArgs(i32, f32, -1e7);
7143 try testArgs(i32, f32, -1e6);
7144 try testArgs(i32, f32, -1e5);
7145 try testArgs(i32, f32, -1e4);
7146 try testArgs(i32, f32, -1e3);
7147 try testArgs(i32, f32, -1e2);
7148 try testArgs(i32, f32, -1e1);
7149 try testArgs(i32, f32, -1e0);
7150 try testArgs(i32, f32, -1e-1);
7151 try testArgs(i32, f32, -0.0);
7152 try testArgs(i32, f32, 0.0);
7153 try testArgs(i32, f32, 1e-1);
7154 try testArgs(i32, f32, 1e0);
7155 try testArgs(i32, f32, 1e1);
7156 try testArgs(i32, f32, 1e2);
7157 try testArgs(i32, f32, 1e3);
7158 try testArgs(i32, f32, 1e4);
7159 try testArgs(i32, f32, 1e5);
7160 try testArgs(i32, f32, 1e6);
7161 try testArgs(i32, f32, 1e7);
7162 try testArgs(i32, f32, 1e8);
7163 try testArgs(i32, f32, 1e9);
7164 try testArgs(i32, f32, next(f32, next(f32, 0x0.8p32, 0.0), 0.0));
7165 try testArgs(i32, f32, next(f32, 0x0.8p32, 0.0));
7166
7167 try testArgs(u32, f32, -0.0);
7168 try testArgs(u32, f32, 0.0);
7169 try testArgs(u32, f32, 1e-1);
7170 try testArgs(u32, f32, 1e0);
7171 try testArgs(u32, f32, 1e1);
7172 try testArgs(u32, f32, 1e2);
7173 try testArgs(u32, f32, 1e3);
7174 try testArgs(u32, f32, 1e4);
7175 try testArgs(u32, f32, 1e5);
7176 try testArgs(u32, f32, 1e6);
7177 try testArgs(u32, f32, 1e7);
7178 try testArgs(u32, f32, 1e8);
7179 try testArgs(u32, f32, 1e9);
7180 try testArgs(u32, f32, next(f32, next(f32, 0x1p32, 0.0), 0.0));
7181 try testArgs(u32, f32, next(f32, 0x1p32, 0.0));
7182
7183 try testArgs(i64, f32, -0x0.8p64);
7184 try testArgs(i64, f32, next(f32, -0x0.8p64, -0.0));
7185 try testArgs(i64, f32, next(f32, next(f32, -0x0.8p64, -0.0), -0.0));
7186 try testArgs(i64, f32, -1e18);
7187 try testArgs(i64, f32, -1e16);
7188 try testArgs(i64, f32, -1e14);
7189 try testArgs(i64, f32, -1e12);
7190 try testArgs(i64, f32, -1e10);
7191 try testArgs(i64, f32, -1e8);
7192 try testArgs(i64, f32, -1e6);
7193 try testArgs(i64, f32, -1e4);
7194 try testArgs(i64, f32, -1e2);
7195 try testArgs(i64, f32, -1e0);
7196 try testArgs(i64, f32, -1e-1);
7197 try testArgs(i64, f32, -0.0);
7198 try testArgs(i64, f32, 0.0);
7199 try testArgs(i64, f32, 1e-1);
7200 try testArgs(i64, f32, 1e0);
7201 try testArgs(i64, f32, 1e2);
7202 try testArgs(i64, f32, 1e4);
7203 try testArgs(i64, f32, 1e6);
7204 try testArgs(i64, f32, 1e8);
7205 try testArgs(i64, f32, 1e10);
7206 try testArgs(i64, f32, 1e12);
7207 try testArgs(i64, f32, 1e14);
7208 try testArgs(i64, f32, 1e16);
7209 try testArgs(i64, f32, 1e18);
7210 try testArgs(i64, f32, next(f32, next(f32, 0x0.8p64, 0.0), 0.0));
7211 try testArgs(i64, f32, next(f32, 0x0.8p64, 0.0));
7212
7213 try testArgs(u64, f32, -0.0);
7214 try testArgs(u64, f32, 0.0);
7215 try testArgs(u64, f32, 1e-1);
7216 try testArgs(u64, f32, 1e0);
7217 try testArgs(u64, f32, 1e2);
7218 try testArgs(u64, f32, 1e4);
7219 try testArgs(u64, f32, 1e6);
7220 try testArgs(u64, f32, 1e8);
7221 try testArgs(u64, f32, 1e10);
7222 try testArgs(u64, f32, 1e12);
7223 try testArgs(u64, f32, 1e14);
7224 try testArgs(u64, f32, 1e16);
7225 try testArgs(u64, f32, 1e18);
7226 try testArgs(u64, f32, next(f32, next(f32, 0x1p64, 0.0), 0.0));
7227 try testArgs(u64, f32, next(f32, 0x1p64, 0.0));
7228
7229 try testArgs(i128, f32, -0x0.8p128);
7230 try testArgs(i128, f32, next(f32, -0x0.8p128, -0.0));
7231 try testArgs(i128, f32, next(f32, next(f32, -0x0.8p128, -0.0), -0.0));
7232 try testArgs(i128, f32, -1e38);
7233 try testArgs(i128, f32, -1e34);
7234 try testArgs(i128, f32, -1e30);
7235 try testArgs(i128, f32, -1e26);
7236 try testArgs(i128, f32, -1e22);
7237 try testArgs(i128, f32, -1e18);
7238 try testArgs(i128, f32, -1e14);
7239 try testArgs(i128, f32, -1e10);
7240 try testArgs(i128, f32, -1e6);
7241 try testArgs(i128, f32, -1e2);
7242 try testArgs(i128, f32, -1e0);
7243 try testArgs(i128, f32, -1e-1);
7244 try testArgs(i128, f32, -0.0);
7245 try testArgs(i128, f32, 0.0);
7246 try testArgs(i128, f32, 1e-1);
7247 try testArgs(i128, f32, 1e0);
7248 try testArgs(i128, f32, 1e2);
7249 try testArgs(i128, f32, 1e6);
7250 try testArgs(i128, f32, 1e10);
7251 try testArgs(i128, f32, 1e14);
7252 try testArgs(i128, f32, 1e18);
7253 try testArgs(i128, f32, 1e22);
7254 try testArgs(i128, f32, 1e26);
7255 try testArgs(i128, f32, 1e30);
7256 try testArgs(i128, f32, 1e34);
7257 try testArgs(i128, f32, 1e38);
7258 try testArgs(i128, f32, next(f32, next(f32, 0x0.8p128, 0.0), 0.0));
7259 try testArgs(i128, f32, next(f32, 0x0.8p128, 0.0));
7260
7261 try testArgs(u128, f32, -0.0);
7262 try testArgs(u128, f32, 0.0);
7263 try testArgs(u128, f32, 1e-1);
7264 try testArgs(u128, f32, 1e0);
7265 try testArgs(u128, f32, 1e2);
7266 try testArgs(u128, f32, 1e6);
7267 try testArgs(u128, f32, 1e10);
7268 try testArgs(u128, f32, 1e14);
7269 try testArgs(u128, f32, 1e18);
7270 try testArgs(u128, f32, 1e22);
7271 try testArgs(u128, f32, 1e26);
7272 try testArgs(u128, f32, 1e30);
7273 try testArgs(u128, f32, 1e34);
7274 try testArgs(u128, f32, 1e38);
7275 try testArgs(u128, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
7276 try testArgs(u128, f32, next(f32, fmax(f32), 0.0));
7277
7278 try testArgs(i256, f32, -fmax(f32));
7279 try testArgs(i256, f32, next(f32, -fmax(f32), -0.0));
7280 try testArgs(i256, f32, next(f32, next(f32, -fmax(f32), -0.0), -0.0));
7281 try testArgs(i256, f32, -1e38);
7282 try testArgs(i256, f32, -1e34);
7283 try testArgs(i256, f32, -1e30);
7284 try testArgs(i256, f32, -1e26);
7285 try testArgs(i256, f32, -1e22);
7286 try testArgs(i256, f32, -1e18);
7287 try testArgs(i256, f32, -1e14);
7288 try testArgs(i256, f32, -1e10);
7289 try testArgs(i256, f32, -1e6);
7290 try testArgs(i256, f32, -1e2);
7291 try testArgs(i256, f32, -1e0);
7292 try testArgs(i256, f32, -1e-1);
7293 try testArgs(i256, f32, -0.0);
7294 try testArgs(i256, f32, 0.0);
7295 try testArgs(i256, f32, 1e-1);
7296 try testArgs(i256, f32, 1e0);
7297 try testArgs(i256, f32, 1e2);
7298 try testArgs(i256, f32, 1e6);
7299 try testArgs(i256, f32, 1e10);
7300 try testArgs(i256, f32, 1e14);
7301 try testArgs(i256, f32, 1e18);
7302 try testArgs(i256, f32, 1e22);
7303 try testArgs(i256, f32, 1e26);
7304 try testArgs(i256, f32, 1e30);
7305 try testArgs(i256, f32, 1e34);
7306 try testArgs(i256, f32, 1e38);
7307 try testArgs(i256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
7308 try testArgs(i256, f32, next(f32, fmax(f32), 0.0));
7309
7310 try testArgs(u256, f32, -0.0);
7311 try testArgs(u256, f32, 0.0);
7312 try testArgs(u256, f32, 1e-1);
7313 try testArgs(u256, f32, 1e0);
7314 try testArgs(u256, f32, 1e2);
7315 try testArgs(u256, f32, 1e6);
7316 try testArgs(u256, f32, 1e10);
7317 try testArgs(u256, f32, 1e14);
7318 try testArgs(u256, f32, 1e18);
7319 try testArgs(u256, f32, 1e22);
7320 try testArgs(u256, f32, 1e26);
7321 try testArgs(u256, f32, 1e30);
7322 try testArgs(u256, f32, 1e34);
7323 try testArgs(u256, f32, 1e38);
7324 try testArgs(u256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
7325 try testArgs(u256, f32, next(f32, fmax(f32), 0.0));
7326
7327 try testArgs(i8, f64, -0x0.8p8);
7328 try testArgs(i8, f64, next(f64, -0x0.8p8, -0.0));
7329 try testArgs(i8, f64, next(f64, next(f64, -0x0.8p8, -0.0), -0.0));
7330 try testArgs(i8, f64, -1e2);
7331 try testArgs(i8, f64, -1e1);
7332 try testArgs(i8, f64, -1e0);
7333 try testArgs(i8, f64, -1e-1);
7334 try testArgs(i8, f64, -0.0);
7335 try testArgs(i8, f64, 0.0);
7336 try testArgs(i8, f64, 1e-1);
7337 try testArgs(i8, f64, 1e0);
7338 try testArgs(i8, f64, 1e1);
7339 try testArgs(i8, f64, 1e2);
7340 try testArgs(i8, f64, next(f64, next(f64, 0x0.8p8, 0.0), 0.0));
7341 try testArgs(i8, f64, next(f64, 0x0.8p8, 0.0));
7342
7343 try testArgs(u8, f64, -0.0);
7344 try testArgs(u8, f64, 0.0);
7345 try testArgs(u8, f64, 1e-1);
7346 try testArgs(u8, f64, 1e0);
7347 try testArgs(u8, f64, 1e1);
7348 try testArgs(u8, f64, 1e2);
7349 try testArgs(u8, f64, next(f64, next(f64, 0x1p8, 0.0), 0.0));
7350 try testArgs(u8, f64, next(f64, 0x1p8, 0.0));
7351
7352 try testArgs(i16, f64, -0x0.8p16);
7353 try testArgs(i16, f64, next(f64, -0x0.8p16, -0.0));
7354 try testArgs(i16, f64, next(f64, next(f64, -0x0.8p16, -0.0), -0.0));
7355 try testArgs(i16, f64, -1e4);
7356 try testArgs(i16, f64, -1e3);
7357 try testArgs(i16, f64, -1e2);
7358 try testArgs(i16, f64, -1e1);
7359 try testArgs(i16, f64, -1e0);
7360 try testArgs(i16, f64, -1e-1);
7361 try testArgs(i16, f64, -0.0);
7362 try testArgs(i16, f64, 0.0);
7363 try testArgs(i16, f64, 1e-1);
7364 try testArgs(i16, f64, 1e0);
7365 try testArgs(i16, f64, 1e1);
7366 try testArgs(i16, f64, 1e2);
7367 try testArgs(i16, f64, 1e3);
7368 try testArgs(i16, f64, 1e4);
7369 try testArgs(i16, f64, next(f64, next(f64, 0x0.8p16, 0.0), 0.0));
7370 try testArgs(i16, f64, next(f64, 0x0.8p16, 0.0));
7371
7372 try testArgs(u16, f64, -0.0);
7373 try testArgs(u16, f64, 0.0);
7374 try testArgs(u16, f64, 1e-1);
7375 try testArgs(u16, f64, 1e0);
7376 try testArgs(u16, f64, 1e1);
7377 try testArgs(u16, f64, 1e2);
7378 try testArgs(u16, f64, 1e3);
7379 try testArgs(u16, f64, 1e4);
7380 try testArgs(u16, f64, next(f64, next(f64, 0x1p16, 0.0), 0.0));
7381 try testArgs(u16, f64, next(f64, 0x1p16, 0.0));
7382
7383 try testArgs(i32, f64, -0x0.8p32);
7384 try testArgs(i32, f64, next(f64, -0x0.8p32, -0.0));
7385 try testArgs(i32, f64, next(f64, next(f64, -0x0.8p32, -0.0), -0.0));
7386 try testArgs(i32, f64, -1e9);
7387 try testArgs(i32, f64, -1e8);
7388 try testArgs(i32, f64, -1e7);
7389 try testArgs(i32, f64, -1e6);
7390 try testArgs(i32, f64, -1e5);
7391 try testArgs(i32, f64, -1e4);
7392 try testArgs(i32, f64, -1e3);
7393 try testArgs(i32, f64, -1e2);
7394 try testArgs(i32, f64, -1e1);
7395 try testArgs(i32, f64, -1e0);
7396 try testArgs(i32, f64, -1e-1);
7397 try testArgs(i32, f64, -0.0);
7398 try testArgs(i32, f64, 0.0);
7399 try testArgs(i32, f64, 1e-1);
7400 try testArgs(i32, f64, 1e0);
7401 try testArgs(i32, f64, 1e1);
7402 try testArgs(i32, f64, 1e2);
7403 try testArgs(i32, f64, 1e3);
7404 try testArgs(i32, f64, 1e4);
7405 try testArgs(i32, f64, 1e5);
7406 try testArgs(i32, f64, 1e6);
7407 try testArgs(i32, f64, 1e7);
7408 try testArgs(i32, f64, 1e8);
7409 try testArgs(i32, f64, 1e9);
7410 try testArgs(i32, f64, next(f64, next(f64, 0x0.8p32, 0.0), 0.0));
7411 try testArgs(i32, f64, next(f64, 0x0.8p32, 0.0));
7412
7413 try testArgs(u32, f64, -0.0);
7414 try testArgs(u32, f64, 0.0);
7415 try testArgs(u32, f64, 1e-1);
7416 try testArgs(u32, f64, 1e0);
7417 try testArgs(u32, f64, 1e1);
7418 try testArgs(u32, f64, 1e2);
7419 try testArgs(u32, f64, 1e3);
7420 try testArgs(u32, f64, 1e4);
7421 try testArgs(u32, f64, 1e5);
7422 try testArgs(u32, f64, 1e6);
7423 try testArgs(u32, f64, 1e7);
7424 try testArgs(u32, f64, 1e8);
7425 try testArgs(u32, f64, 1e9);
7426 try testArgs(u32, f64, next(f64, next(f64, 0x1p32, 0.0), 0.0));
7427 try testArgs(u32, f64, next(f64, 0x1p32, 0.0));
7428
7429 try testArgs(i64, f64, -0x0.8p64);
7430 try testArgs(i64, f64, next(f64, -0x0.8p64, -0.0));
7431 try testArgs(i64, f64, next(f64, next(f64, -0x0.8p64, -0.0), -0.0));
7432 try testArgs(i64, f64, -1e18);
7433 try testArgs(i64, f64, -1e16);
7434 try testArgs(i64, f64, -1e14);
7435 try testArgs(i64, f64, -1e12);
7436 try testArgs(i64, f64, -1e10);
7437 try testArgs(i64, f64, -1e8);
7438 try testArgs(i64, f64, -1e6);
7439 try testArgs(i64, f64, -1e4);
7440 try testArgs(i64, f64, -1e2);
7441 try testArgs(i64, f64, -1e0);
7442 try testArgs(i64, f64, -1e-1);
7443 try testArgs(i64, f64, -0.0);
7444 try testArgs(i64, f64, 0.0);
7445 try testArgs(i64, f64, 1e-1);
7446 try testArgs(i64, f64, 1e0);
7447 try testArgs(i64, f64, 1e2);
7448 try testArgs(i64, f64, 1e4);
7449 try testArgs(i64, f64, 1e6);
7450 try testArgs(i64, f64, 1e8);
7451 try testArgs(i64, f64, 1e10);
7452 try testArgs(i64, f64, 1e12);
7453 try testArgs(i64, f64, 1e14);
7454 try testArgs(i64, f64, 1e16);
7455 try testArgs(i64, f64, 1e18);
7456 try testArgs(i64, f64, next(f64, next(f64, 0x0.8p64, 0.0), 0.0));
7457 try testArgs(i64, f64, next(f64, 0x0.8p64, 0.0));
7458
7459 try testArgs(u64, f64, -0.0);
7460 try testArgs(u64, f64, 0.0);
7461 try testArgs(u64, f64, 1e-1);
7462 try testArgs(u64, f64, 1e0);
7463 try testArgs(u64, f64, 1e2);
7464 try testArgs(u64, f64, 1e4);
7465 try testArgs(u64, f64, 1e6);
7466 try testArgs(u64, f64, 1e8);
7467 try testArgs(u64, f64, 1e10);
7468 try testArgs(u64, f64, 1e12);
7469 try testArgs(u64, f64, 1e14);
7470 try testArgs(u64, f64, 1e16);
7471 try testArgs(u64, f64, 1e18);
7472 try testArgs(u64, f64, next(f64, next(f64, 0x1p64, 0.0), 0.0));
7473 try testArgs(u64, f64, next(f64, 0x1p64, 0.0));
7474
7475 try testArgs(i128, f64, -0x0.8p128);
7476 try testArgs(i128, f64, next(f64, -0x0.8p128, -0.0));
7477 try testArgs(i128, f64, next(f64, next(f64, -0x0.8p128, -0.0), -0.0));
7478 try testArgs(i128, f64, -1e38);
7479 try testArgs(i128, f64, -1e34);
7480 try testArgs(i128, f64, -1e30);
7481 try testArgs(i128, f64, -1e26);
7482 try testArgs(i128, f64, -1e22);
7483 try testArgs(i128, f64, -1e18);
7484 try testArgs(i128, f64, -1e14);
7485 try testArgs(i128, f64, -1e10);
7486 try testArgs(i128, f64, -1e6);
7487 try testArgs(i128, f64, -1e2);
7488 try testArgs(i128, f64, -1e0);
7489 try testArgs(i128, f64, -1e-1);
7490 try testArgs(i128, f64, -0.0);
7491 try testArgs(i128, f64, 0.0);
7492 try testArgs(i128, f64, 1e-1);
7493 try testArgs(i128, f64, 1e0);
7494 try testArgs(i128, f64, 1e2);
7495 try testArgs(i128, f64, 1e6);
7496 try testArgs(i128, f64, 1e10);
7497 try testArgs(i128, f64, 1e14);
7498 try testArgs(i128, f64, 1e18);
7499 try testArgs(i128, f64, 1e22);
7500 try testArgs(i128, f64, 1e26);
7501 try testArgs(i128, f64, 1e30);
7502 try testArgs(i128, f64, 1e34);
7503 try testArgs(i128, f64, 1e38);
7504 try testArgs(i128, f64, next(f64, next(f64, 0x0.8p128, 0.0), 0.0));
7505 try testArgs(i128, f64, next(f64, 0x0.8p128, 0.0));
7506
7507 try testArgs(u128, f64, -0.0);
7508 try testArgs(u128, f64, 0.0);
7509 try testArgs(u128, f64, 1e-1);
7510 try testArgs(u128, f64, 1e0);
7511 try testArgs(u128, f64, 1e2);
7512 try testArgs(u128, f64, 1e6);
7513 try testArgs(u128, f64, 1e10);
7514 try testArgs(u128, f64, 1e14);
7515 try testArgs(u128, f64, 1e18);
7516 try testArgs(u128, f64, 1e22);
7517 try testArgs(u128, f64, 1e26);
7518 try testArgs(u128, f64, 1e30);
7519 try testArgs(u128, f64, 1e34);
7520 try testArgs(u128, f64, 1e38);
7521 try testArgs(u128, f64, next(f64, next(f64, 0x1p128, 0.0), 0.0));
7522 try testArgs(u128, f64, next(f64, 0x1p128, 0.0));
7523
7524 try testArgs(i256, f64, -0x0.8p256);
7525 try testArgs(i256, f64, next(f64, -0x0.8p256, -0.0));
7526 try testArgs(i256, f64, next(f64, next(f64, -0x0.8p256, -0.0), -0.0));
7527 try testArgs(i256, f64, -1e76);
7528 try testArgs(i256, f64, -1e69);
7529 try testArgs(i256, f64, -1e62);
7530 try testArgs(i256, f64, -1e55);
7531 try testArgs(i256, f64, -1e48);
7532 try testArgs(i256, f64, -1e41);
7533 try testArgs(i256, f64, -1e34);
7534 try testArgs(i256, f64, -1e27);
7535 try testArgs(i256, f64, -1e20);
7536 try testArgs(i256, f64, -1e13);
7537 try testArgs(i256, f64, -1e6);
7538 try testArgs(i256, f64, -1e0);
7539 try testArgs(i256, f64, -1e-1);
7540 try testArgs(i256, f64, -0.0);
7541 try testArgs(i256, f64, 0.0);
7542 try testArgs(i256, f64, 1e-1);
7543 try testArgs(i256, f64, 1e0);
7544 try testArgs(i256, f64, 1e6);
7545 try testArgs(i256, f64, 1e13);
7546 try testArgs(i256, f64, 1e20);
7547 try testArgs(i256, f64, 1e27);
7548 try testArgs(i256, f64, 1e34);
7549 try testArgs(i256, f64, 1e41);
7550 try testArgs(i256, f64, 1e48);
7551 try testArgs(i256, f64, 1e55);
7552 try testArgs(i256, f64, 1e62);
7553 try testArgs(i256, f64, 1e69);
7554 try testArgs(i256, f64, 1e76);
7555 try testArgs(i256, f64, next(f64, next(f64, 0x0.8p256, 0.0), 0.0));
7556 try testArgs(i256, f64, next(f64, 0x0.8p256, 0.0));
7557
7558 try testArgs(u256, f64, -0.0);
7559 try testArgs(u256, f64, 0.0);
7560 try testArgs(u256, f64, 1e-1);
7561 try testArgs(u256, f64, 1e0);
7562 try testArgs(u256, f64, 1e7);
7563 try testArgs(u256, f64, 1e14);
7564 try testArgs(u256, f64, 1e21);
7565 try testArgs(u256, f64, 1e28);
7566 try testArgs(u256, f64, 1e35);
7567 try testArgs(u256, f64, 1e42);
7568 try testArgs(u256, f64, 1e49);
7569 try testArgs(u256, f64, 1e56);
7570 try testArgs(u256, f64, 1e63);
7571 try testArgs(u256, f64, 1e70);
7572 try testArgs(u256, f64, 1e77);
7573 try testArgs(u256, f64, next(f64, next(f64, 0x1p256, 0.0), 0.0));
7574 try testArgs(u256, f64, next(f64, 0x1p256, 0.0));
7575
7576 try testArgs(i8, f80, -0x0.8p8);
7577 try testArgs(i8, f80, next(f80, -0x0.8p8, -0.0));
7578 try testArgs(i8, f80, next(f80, next(f80, -0x0.8p8, -0.0), -0.0));
7579 try testArgs(i8, f80, -1e2);
7580 try testArgs(i8, f80, -1e1);
7581 try testArgs(i8, f80, -1e0);
7582 try testArgs(i8, f80, -1e-1);
7583 try testArgs(i8, f80, -0.0);
7584 try testArgs(i8, f80, 0.0);
7585 try testArgs(i8, f80, 1e-1);
7586 try testArgs(i8, f80, 1e0);
7587 try testArgs(i8, f80, 1e1);
7588 try testArgs(i8, f80, 1e2);
7589 try testArgs(i8, f80, next(f80, next(f80, 0x0.8p8, 0.0), 0.0));
7590 try testArgs(i8, f80, next(f80, 0x0.8p8, 0.0));
7591
7592 try testArgs(u8, f80, -0.0);
7593 try testArgs(u8, f80, 0.0);
7594 try testArgs(u8, f80, 1e-1);
7595 try testArgs(u8, f80, 1e0);
7596 try testArgs(u8, f80, 1e1);
7597 try testArgs(u8, f80, 1e2);
7598 try testArgs(u8, f80, next(f80, next(f80, 0x1p8, 0.0), 0.0));
7599 try testArgs(u8, f80, next(f80, 0x1p8, 0.0));
7600
7601 try testArgs(i16, f80, -0x0.8p16);
7602 try testArgs(i16, f80, next(f80, -0x0.8p16, -0.0));
7603 try testArgs(i16, f80, next(f80, next(f80, -0x0.8p16, -0.0), -0.0));
7604 try testArgs(i16, f80, -1e4);
7605 try testArgs(i16, f80, -1e3);
7606 try testArgs(i16, f80, -1e2);
7607 try testArgs(i16, f80, -1e1);
7608 try testArgs(i16, f80, -1e0);
7609 try testArgs(i16, f80, -1e-1);
7610 try testArgs(i16, f80, -0.0);
7611 try testArgs(i16, f80, 0.0);
7612 try testArgs(i16, f80, 1e-1);
7613 try testArgs(i16, f80, 1e0);
7614 try testArgs(i16, f80, 1e1);
7615 try testArgs(i16, f80, 1e2);
7616 try testArgs(i16, f80, 1e3);
7617 try testArgs(i16, f80, 1e4);
7618 try testArgs(i16, f80, next(f80, next(f80, 0x0.8p16, 0.0), 0.0));
7619 try testArgs(i16, f80, next(f80, 0x0.8p16, 0.0));
7620
7621 try testArgs(u16, f80, -0.0);
7622 try testArgs(u16, f80, 0.0);
7623 try testArgs(u16, f80, 1e-1);
7624 try testArgs(u16, f80, 1e0);
7625 try testArgs(u16, f80, 1e1);
7626 try testArgs(u16, f80, 1e2);
7627 try testArgs(u16, f80, 1e3);
7628 try testArgs(u16, f80, 1e4);
7629 try testArgs(u16, f80, next(f80, next(f80, 0x1p16, 0.0), 0.0));
7630 try testArgs(u16, f80, next(f80, 0x1p16, 0.0));
7631
7632 try testArgs(i32, f80, -0x0.8p32);
7633 try testArgs(i32, f80, next(f80, -0x0.8p32, -0.0));
7634 try testArgs(i32, f80, next(f80, next(f80, -0x0.8p32, -0.0), -0.0));
7635 try testArgs(i32, f80, -1e9);
7636 try testArgs(i32, f80, -1e8);
7637 try testArgs(i32, f80, -1e7);
7638 try testArgs(i32, f80, -1e6);
7639 try testArgs(i32, f80, -1e5);
7640 try testArgs(i32, f80, -1e4);
7641 try testArgs(i32, f80, -1e3);
7642 try testArgs(i32, f80, -1e2);
7643 try testArgs(i32, f80, -1e1);
7644 try testArgs(i32, f80, -1e0);
7645 try testArgs(i32, f80, -1e-1);
7646 try testArgs(i32, f80, -0.0);
7647 try testArgs(i32, f80, 0.0);
7648 try testArgs(i32, f80, 1e-1);
7649 try testArgs(i32, f80, 1e0);
7650 try testArgs(i32, f80, 1e1);
7651 try testArgs(i32, f80, 1e2);
7652 try testArgs(i32, f80, 1e3);
7653 try testArgs(i32, f80, 1e4);
7654 try testArgs(i32, f80, 1e5);
7655 try testArgs(i32, f80, 1e6);
7656 try testArgs(i32, f80, 1e7);
7657 try testArgs(i32, f80, 1e8);
7658 try testArgs(i32, f80, 1e9);
7659 try testArgs(i32, f80, next(f80, next(f80, 0x0.8p32, 0.0), 0.0));
7660 try testArgs(i32, f80, next(f80, 0x0.8p32, 0.0));
7661
7662 try testArgs(u32, f80, -0.0);
7663 try testArgs(u32, f80, 0.0);
7664 try testArgs(u32, f80, 1e-1);
7665 try testArgs(u32, f80, 1e0);
7666 try testArgs(u32, f80, 1e1);
7667 try testArgs(u32, f80, 1e2);
7668 try testArgs(u32, f80, 1e3);
7669 try testArgs(u32, f80, 1e4);
7670 try testArgs(u32, f80, 1e5);
7671 try testArgs(u32, f80, 1e6);
7672 try testArgs(u32, f80, 1e7);
7673 try testArgs(u32, f80, 1e8);
7674 try testArgs(u32, f80, 1e9);
7675 try testArgs(u32, f80, next(f80, next(f80, 0x1p32, 0.0), 0.0));
7676 try testArgs(u32, f80, next(f80, 0x1p32, 0.0));
7677
7678 try testArgs(i64, f80, -0x0.8p64);
7679 try testArgs(i64, f80, next(f80, -0x0.8p64, -0.0));
7680 try testArgs(i64, f80, next(f80, next(f80, -0x0.8p64, -0.0), -0.0));
7681 try testArgs(i64, f80, -1e18);
7682 try testArgs(i64, f80, -1e16);
7683 try testArgs(i64, f80, -1e14);
7684 try testArgs(i64, f80, -1e12);
7685 try testArgs(i64, f80, -1e10);
7686 try testArgs(i64, f80, -1e8);
7687 try testArgs(i64, f80, -1e6);
7688 try testArgs(i64, f80, -1e4);
7689 try testArgs(i64, f80, -1e2);
7690 try testArgs(i64, f80, -1e0);
7691 try testArgs(i64, f80, -1e-1);
7692 try testArgs(i64, f80, -0.0);
7693 try testArgs(i64, f80, 0.0);
7694 try testArgs(i64, f80, 1e-1);
7695 try testArgs(i64, f80, 1e0);
7696 try testArgs(i64, f80, 1e2);
7697 try testArgs(i64, f80, 1e4);
7698 try testArgs(i64, f80, 1e6);
7699 try testArgs(i64, f80, 1e8);
7700 try testArgs(i64, f80, 1e10);
7701 try testArgs(i64, f80, 1e12);
7702 try testArgs(i64, f80, 1e14);
7703 try testArgs(i64, f80, 1e16);
7704 try testArgs(i64, f80, 1e18);
7705 try testArgs(i64, f80, next(f80, next(f80, 0x0.8p64, 0.0), 0.0));
7706 try testArgs(i64, f80, next(f80, 0x0.8p64, 0.0));
7707
7708 try testArgs(u64, f80, -0.0);
7709 try testArgs(u64, f80, 0.0);
7710 try testArgs(u64, f80, 1e-1);
7711 try testArgs(u64, f80, 1e0);
7712 try testArgs(u64, f80, 1e2);
7713 try testArgs(u64, f80, 1e4);
7714 try testArgs(u64, f80, 1e6);
7715 try testArgs(u64, f80, 1e8);
7716 try testArgs(u64, f80, 1e10);
7717 try testArgs(u64, f80, 1e12);
7718 try testArgs(u64, f80, 1e14);
7719 try testArgs(u64, f80, 1e16);
7720 try testArgs(u64, f80, 1e18);
7721 try testArgs(u64, f80, next(f80, next(f80, 0x1p64, 0.0), 0.0));
7722 try testArgs(u64, f80, next(f80, 0x1p64, 0.0));
7723
7724 try testArgs(i128, f80, -0x0.8p128);
7725 try testArgs(i128, f80, next(f80, -0x0.8p128, -0.0));
7726 try testArgs(i128, f80, next(f80, next(f80, -0x0.8p128, -0.0), -0.0));
7727 try testArgs(i128, f80, -1e38);
7728 try testArgs(i128, f80, -1e34);
7729 try testArgs(i128, f80, -1e30);
7730 try testArgs(i128, f80, -1e26);
7731 try testArgs(i128, f80, -1e22);
7732 try testArgs(i128, f80, -1e18);
7733 try testArgs(i128, f80, -1e14);
7734 try testArgs(i128, f80, -1e10);
7735 try testArgs(i128, f80, -1e6);
7736 try testArgs(i128, f80, -1e2);
7737 try testArgs(i128, f80, -1e0);
7738 try testArgs(i128, f80, -1e-1);
7739 try testArgs(i128, f80, -0.0);
7740 try testArgs(i128, f80, 0.0);
7741 try testArgs(i128, f80, 1e-1);
7742 try testArgs(i128, f80, 1e0);
7743 try testArgs(i128, f80, 1e2);
7744 try testArgs(i128, f80, 1e6);
7745 try testArgs(i128, f80, 1e10);
7746 try testArgs(i128, f80, 1e14);
7747 try testArgs(i128, f80, 1e18);
7748 try testArgs(i128, f80, 1e22);
7749 try testArgs(i128, f80, 1e26);
7750 try testArgs(i128, f80, 1e30);
7751 try testArgs(i128, f80, 1e34);
7752 try testArgs(i128, f80, 1e38);
7753 try testArgs(i128, f80, next(f80, next(f80, 0x0.8p128, 0.0), 0.0));
7754 try testArgs(i128, f80, next(f80, 0x0.8p128, 0.0));
7755
7756 try testArgs(u128, f80, -0.0);
7757 try testArgs(u128, f80, 0.0);
7758 try testArgs(u128, f80, 1e-1);
7759 try testArgs(u128, f80, 1e0);
7760 try testArgs(u128, f80, 1e2);
7761 try testArgs(u128, f80, 1e6);
7762 try testArgs(u128, f80, 1e10);
7763 try testArgs(u128, f80, 1e14);
7764 try testArgs(u128, f80, 1e18);
7765 try testArgs(u128, f80, 1e22);
7766 try testArgs(u128, f80, 1e26);
7767 try testArgs(u128, f80, 1e30);
7768 try testArgs(u128, f80, 1e34);
7769 try testArgs(u128, f80, 1e38);
7770 try testArgs(u128, f80, next(f80, next(f80, 0x1p128, 0.0), 0.0));
7771 try testArgs(u128, f80, next(f80, 0x1p128, 0.0));
7772
7773 try testArgs(i256, f80, -0x0.8p256);
7774 try testArgs(i256, f80, next(f80, -0x0.8p256, -0.0));
7775 try testArgs(i256, f80, next(f80, next(f80, -0x0.8p256, -0.0), -0.0));
7776 try testArgs(i256, f80, -1e76);
7777 try testArgs(i256, f80, -1e69);
7778 try testArgs(i256, f80, -1e62);
7779 try testArgs(i256, f80, -1e55);
7780 try testArgs(i256, f80, -1e48);
7781 try testArgs(i256, f80, -1e41);
7782 try testArgs(i256, f80, -1e34);
7783 try testArgs(i256, f80, -1e27);
7784 try testArgs(i256, f80, -1e20);
7785 try testArgs(i256, f80, -1e13);
7786 try testArgs(i256, f80, -1e6);
7787 try testArgs(i256, f80, -1e0);
7788 try testArgs(i256, f80, -1e-1);
7789 try testArgs(i256, f80, -0.0);
7790 try testArgs(i256, f80, 0.0);
7791 try testArgs(i256, f80, 1e-1);
7792 try testArgs(i256, f80, 1e0);
7793 try testArgs(i256, f80, 1e6);
7794 try testArgs(i256, f80, 1e13);
7795 try testArgs(i256, f80, 1e20);
7796 try testArgs(i256, f80, 1e27);
7797 try testArgs(i256, f80, 1e34);
7798 try testArgs(i256, f80, 1e41);
7799 try testArgs(i256, f80, 1e48);
7800 try testArgs(i256, f80, 1e55);
7801 try testArgs(i256, f80, 1e62);
7802 try testArgs(i256, f80, 1e69);
7803 try testArgs(i256, f80, 1e76);
7804 try testArgs(i256, f80, next(f80, next(f80, 0x0.8p256, 0.0), 0.0));
7805 try testArgs(i256, f80, next(f80, 0x0.8p256, 0.0));
7806
7807 try testArgs(u256, f80, -0.0);
7808 try testArgs(u256, f80, 0.0);
7809 try testArgs(u256, f80, 1e-1);
7810 try testArgs(u256, f80, 1e0);
7811 try testArgs(u256, f80, 1e7);
7812 try testArgs(u256, f80, 1e14);
7813 try testArgs(u256, f80, 1e21);
7814 try testArgs(u256, f80, 1e28);
7815 try testArgs(u256, f80, 1e35);
7816 try testArgs(u256, f80, 1e42);
7817 try testArgs(u256, f80, 1e49);
7818 try testArgs(u256, f80, 1e56);
7819 try testArgs(u256, f80, 1e63);
7820 try testArgs(u256, f80, 1e70);
7821 try testArgs(u256, f80, 1e77);
7822 try testArgs(u256, f80, next(f80, next(f80, 0x1p256, 0.0), 0.0));
7823 try testArgs(u256, f80, next(f80, 0x1p256, 0.0));
7824
7825 try testArgs(i8, f128, -0x0.8p8);
7826 try testArgs(i8, f128, next(f128, -0x0.8p8, -0.0));
7827 try testArgs(i8, f128, next(f128, next(f128, -0x0.8p8, -0.0), -0.0));
7828 try testArgs(i8, f128, -1e2);
7829 try testArgs(i8, f128, -1e1);
7830 try testArgs(i8, f128, -1e0);
7831 try testArgs(i8, f128, -1e-1);
7832 try testArgs(i8, f128, -0.0);
7833 try testArgs(i8, f128, 0.0);
7834 try testArgs(i8, f128, 1e-1);
7835 try testArgs(i8, f128, 1e0);
7836 try testArgs(i8, f128, 1e1);
7837 try testArgs(i8, f128, 1e2);
7838 try testArgs(i8, f128, next(f128, next(f128, 0x0.8p8, 0.0), 0.0));
7839 try testArgs(i8, f128, next(f128, 0x0.8p8, 0.0));
7840
7841 try testArgs(u8, f128, -0.0);
7842 try testArgs(u8, f128, 0.0);
7843 try testArgs(u8, f128, 1e-1);
7844 try testArgs(u8, f128, 1e0);
7845 try testArgs(u8, f128, 1e1);
7846 try testArgs(u8, f128, 1e2);
7847 try testArgs(u8, f128, next(f128, next(f128, 0x1p8, 0.0), 0.0));
7848 try testArgs(u8, f128, next(f128, 0x1p8, 0.0));
7849
7850 try testArgs(i16, f128, -0x0.8p16);
7851 try testArgs(i16, f128, next(f128, -0x0.8p16, -0.0));
7852 try testArgs(i16, f128, next(f128, next(f128, -0x0.8p16, -0.0), -0.0));
7853 try testArgs(i16, f128, -1e4);
7854 try testArgs(i16, f128, -1e3);
7855 try testArgs(i16, f128, -1e2);
7856 try testArgs(i16, f128, -1e1);
7857 try testArgs(i16, f128, -1e0);
7858 try testArgs(i16, f128, -1e-1);
7859 try testArgs(i16, f128, -0.0);
7860 try testArgs(i16, f128, 0.0);
7861 try testArgs(i16, f128, 1e-1);
7862 try testArgs(i16, f128, 1e0);
7863 try testArgs(i16, f128, 1e1);
7864 try testArgs(i16, f128, 1e2);
7865 try testArgs(i16, f128, 1e3);
7866 try testArgs(i16, f128, 1e4);
7867 try testArgs(i16, f128, next(f128, next(f128, 0x0.8p16, 0.0), 0.0));
7868 try testArgs(i16, f128, next(f128, 0x0.8p16, 0.0));
7869
7870 try testArgs(u16, f128, -0.0);
7871 try testArgs(u16, f128, 0.0);
7872 try testArgs(u16, f128, 1e-1);
7873 try testArgs(u16, f128, 1e0);
7874 try testArgs(u16, f128, 1e1);
7875 try testArgs(u16, f128, 1e2);
7876 try testArgs(u16, f128, 1e3);
7877 try testArgs(u16, f128, 1e4);
7878 try testArgs(u16, f128, next(f128, next(f128, 0x1p16, 0.0), 0.0));
7879 try testArgs(u16, f128, next(f128, 0x1p16, 0.0));
7880
7881 try testArgs(i32, f128, -0x0.8p32);
7882 try testArgs(i32, f128, next(f128, -0x0.8p32, -0.0));
7883 try testArgs(i32, f128, next(f128, next(f128, -0x0.8p32, -0.0), -0.0));
7884 try testArgs(i32, f128, -1e9);
7885 try testArgs(i32, f128, -1e8);
7886 try testArgs(i32, f128, -1e7);
7887 try testArgs(i32, f128, -1e6);
7888 try testArgs(i32, f128, -1e5);
7889 try testArgs(i32, f128, -1e4);
7890 try testArgs(i32, f128, -1e3);
7891 try testArgs(i32, f128, -1e2);
7892 try testArgs(i32, f128, -1e1);
7893 try testArgs(i32, f128, -1e0);
7894 try testArgs(i32, f128, -1e-1);
7895 try testArgs(i32, f128, -0.0);
7896 try testArgs(i32, f128, 0.0);
7897 try testArgs(i32, f128, 1e-1);
7898 try testArgs(i32, f128, 1e0);
7899 try testArgs(i32, f128, 1e1);
7900 try testArgs(i32, f128, 1e2);
7901 try testArgs(i32, f128, 1e3);
7902 try testArgs(i32, f128, 1e4);
7903 try testArgs(i32, f128, 1e5);
7904 try testArgs(i32, f128, 1e6);
7905 try testArgs(i32, f128, 1e7);
7906 try testArgs(i32, f128, 1e8);
7907 try testArgs(i32, f128, 1e9);
7908 try testArgs(i32, f128, next(f128, next(f128, 0x0.8p32, 0.0), 0.0));
7909 try testArgs(i32, f128, next(f128, 0x0.8p32, 0.0));
7910
7911 try testArgs(u32, f128, -0.0);
7912 try testArgs(u32, f128, 0.0);
7913 try testArgs(u32, f128, 1e-1);
7914 try testArgs(u32, f128, 1e0);
7915 try testArgs(u32, f128, 1e1);
7916 try testArgs(u32, f128, 1e2);
7917 try testArgs(u32, f128, 1e3);
7918 try testArgs(u32, f128, 1e4);
7919 try testArgs(u32, f128, 1e5);
7920 try testArgs(u32, f128, 1e6);
7921 try testArgs(u32, f128, 1e7);
7922 try testArgs(u32, f128, 1e8);
7923 try testArgs(u32, f128, 1e9);
7924 try testArgs(u32, f128, next(f128, next(f128, 0x1p32, 0.0), 0.0));
7925 try testArgs(u32, f128, next(f128, 0x1p32, 0.0));
7926
7927 try testArgs(i64, f128, -0x0.8p64);
7928 try testArgs(i64, f128, next(f128, -0x0.8p64, -0.0));
7929 try testArgs(i64, f128, next(f128, next(f128, -0x0.8p64, -0.0), -0.0));
7930 try testArgs(i64, f128, -1e18);
7931 try testArgs(i64, f128, -1e16);
7932 try testArgs(i64, f128, -1e14);
7933 try testArgs(i64, f128, -1e12);
7934 try testArgs(i64, f128, -1e10);
7935 try testArgs(i64, f128, -1e8);
7936 try testArgs(i64, f128, -1e6);
7937 try testArgs(i64, f128, -1e4);
7938 try testArgs(i64, f128, -1e2);
7939 try testArgs(i64, f128, -1e0);
7940 try testArgs(i64, f128, -1e-1);
7941 try testArgs(i64, f128, -0.0);
7942 try testArgs(i64, f128, 0.0);
7943 try testArgs(i64, f128, 1e-1);
7944 try testArgs(i64, f128, 1e0);
7945 try testArgs(i64, f128, 1e2);
7946 try testArgs(i64, f128, 1e4);
7947 try testArgs(i64, f128, 1e6);
7948 try testArgs(i64, f128, 1e8);
7949 try testArgs(i64, f128, 1e10);
7950 try testArgs(i64, f128, 1e11);
7951 try testArgs(i64, f128, 1e12);
7952 try testArgs(i64, f128, 1e13);
7953 try testArgs(i64, f128, 1e14);
7954 try testArgs(i64, f128, 1e15);
7955 try testArgs(i64, f128, 1e16);
7956 try testArgs(i64, f128, 1e17);
7957 try testArgs(i64, f128, 1e18);
7958 try testArgs(i64, f128, next(f128, next(f128, 0x0.8p64, 0.0), 0.0));
7959 try testArgs(i64, f128, next(f128, 0x0.8p64, 0.0));
7960
7961 try testArgs(u64, f128, -0.0);
7962 try testArgs(u64, f128, 0.0);
7963 try testArgs(u64, f128, 1e-1);
7964 try testArgs(u64, f128, 1e0);
7965 try testArgs(u64, f128, 1e2);
7966 try testArgs(u64, f128, 1e4);
7967 try testArgs(u64, f128, 1e6);
7968 try testArgs(u64, f128, 1e8);
7969 try testArgs(u64, f128, 1e10);
7970 try testArgs(u64, f128, 1e12);
7971 try testArgs(u64, f128, 1e14);
7972 try testArgs(u64, f128, 1e16);
7973 try testArgs(u64, f128, 1e18);
7974 try testArgs(u64, f128, next(f128, next(f128, 0x1p64, 0.0), 0.0));
7975 try testArgs(u64, f128, next(f128, 0x1p64, 0.0));
7976
7977 try testArgs(i128, f128, -0x0.8p128);
7978 try testArgs(i128, f128, next(f128, -0x0.8p128, -0.0));
7979 try testArgs(i128, f128, next(f128, next(f128, -0x0.8p128, -0.0), -0.0));
7980 try testArgs(i128, f128, -1e38);
7981 try testArgs(i128, f128, -1e34);
7982 try testArgs(i128, f128, -1e30);
7983 try testArgs(i128, f128, -1e26);
7984 try testArgs(i128, f128, -1e22);
7985 try testArgs(i128, f128, -1e18);
7986 try testArgs(i128, f128, -1e14);
7987 try testArgs(i128, f128, -1e10);
7988 try testArgs(i128, f128, -1e6);
7989 try testArgs(i128, f128, -1e2);
7990 try testArgs(i128, f128, -1e0);
7991 try testArgs(i128, f128, -1e-1);
7992 try testArgs(i128, f128, -0.0);
7993 try testArgs(i128, f128, 0.0);
7994 try testArgs(i128, f128, 1e-1);
7995 try testArgs(i128, f128, 1e0);
7996 try testArgs(i128, f128, 1e2);
7997 try testArgs(i128, f128, 1e6);
7998 try testArgs(i128, f128, 1e10);
7999 try testArgs(i128, f128, 1e14);
8000 try testArgs(i128, f128, 1e18);
8001 try testArgs(i128, f128, 1e22);
8002 try testArgs(i128, f128, 1e26);
8003 try testArgs(i128, f128, 1e30);
8004 try testArgs(i128, f128, 1e34);
8005 try testArgs(i128, f128, 1e38);
8006 try testArgs(i128, f128, next(f128, next(f128, 0x0.8p128, 0.0), 0.0));
8007 try testArgs(i128, f128, next(f128, 0x0.8p128, 0.0));
8008
8009 try testArgs(u128, f128, -0.0);
8010 try testArgs(u128, f128, 0.0);
8011 try testArgs(u128, f128, 1e-1);
8012 try testArgs(u128, f128, 1e0);
8013 try testArgs(u128, f128, 1e2);
8014 try testArgs(u128, f128, 1e6);
8015 try testArgs(u128, f128, 1e10);
8016 try testArgs(u128, f128, 1e14);
8017 try testArgs(u128, f128, 1e18);
8018 try testArgs(u128, f128, 1e22);
8019 try testArgs(u128, f128, 1e26);
8020 try testArgs(u128, f128, 1e30);
8021 try testArgs(u128, f128, 1e34);
8022 try testArgs(u128, f128, 1e38);
8023 try testArgs(u128, f128, next(f128, next(f128, 0x1p128, 0.0), 0.0));
8024 try testArgs(u128, f128, next(f128, 0x1p128, 0.0));
8025
8026 try testArgs(i256, f128, -0x0.8p256);
8027 try testArgs(i256, f128, next(f128, -0x0.8p256, -0.0));
8028 try testArgs(i256, f128, next(f128, next(f128, -0x0.8p256, -0.0), -0.0));
8029 try testArgs(i256, f128, -1e76);
8030 try testArgs(i256, f128, -1e69);
8031 try testArgs(i256, f128, -1e62);
8032 try testArgs(i256, f128, -1e55);
8033 try testArgs(i256, f128, -1e48);
8034 try testArgs(i256, f128, -1e41);
8035 try testArgs(i256, f128, -1e34);
8036 try testArgs(i256, f128, -1e27);
8037 try testArgs(i256, f128, -1e20);
8038 try testArgs(i256, f128, -1e13);
8039 try testArgs(i256, f128, -1e6);
8040 try testArgs(i256, f128, -1e0);
8041 try testArgs(i256, f128, -1e-1);
8042 try testArgs(i256, f128, -0.0);
8043 try testArgs(i256, f128, 0.0);
8044 try testArgs(i256, f128, 1e-1);
8045 try testArgs(i256, f128, 1e0);
8046 try testArgs(i256, f128, 1e6);
8047 try testArgs(i256, f128, 1e13);
8048 try testArgs(i256, f128, 1e20);
8049 try testArgs(i256, f128, 1e27);
8050 try testArgs(i256, f128, 1e34);
8051 try testArgs(i256, f128, 1e41);
8052 try testArgs(i256, f128, 1e48);
8053 try testArgs(i256, f128, 1e55);
8054 try testArgs(i256, f128, 1e62);
8055 try testArgs(i256, f128, 1e69);
8056 try testArgs(i256, f128, 1e76);
8057 try testArgs(i256, f128, next(f128, next(f128, 0x0.8p256, 0.0), 0.0));
8058 try testArgs(i256, f128, next(f128, 0x0.8p256, 0.0));
8059
8060 try testArgs(u256, f128, -0.0);
8061 try testArgs(u256, f128, 0.0);
8062 try testArgs(u256, f128, 1e-1);
8063 try testArgs(u256, f128, 1e0);
8064 try testArgs(u256, f128, 1e7);
8065 try testArgs(u256, f128, 1e14);
8066 try testArgs(u256, f128, 1e21);
8067 try testArgs(u256, f128, 1e28);
8068 try testArgs(u256, f128, 1e35);
8069 try testArgs(u256, f128, 1e42);
8070 try testArgs(u256, f128, 1e49);
8071 try testArgs(u256, f128, 1e56);
8072 try testArgs(u256, f128, 1e63);
8073 try testArgs(u256, f128, 1e70);
8074 try testArgs(u256, f128, 1e77);
8075 try testArgs(u256, f128, next(f128, next(f128, 0x1p256, 0.0), 0.0));
8076 try testArgs(u256, f128, next(f128, 0x1p256, 0.0));
8077 }
8078 fn testFloatsFromInts() !void {
8079 try testArgs(f16, i8, imin(i8));
8080 try testArgs(f16, i8, imin(i8) + 1);
8081 try testArgs(f16, i8, -1e2);
8082 try testArgs(f16, i8, -1e1);
8083 try testArgs(f16, i8, -1e0);
8084 try testArgs(f16, i8, 0);
8085 try testArgs(f16, i8, 1e0);
8086 try testArgs(f16, i8, 1e1);
8087 try testArgs(f16, i8, 1e2);
8088 try testArgs(f16, i8, imax(i8) - 1);
8089 try testArgs(f16, i8, imax(i8));
8090
8091 try testArgs(f16, u8, 0);
8092 try testArgs(f16, u8, 1e0);
8093 try testArgs(f16, u8, 1e1);
8094 try testArgs(f16, u8, 1e2);
8095 try testArgs(f16, u8, imax(u8) - 1);
8096 try testArgs(f16, u8, imax(u8));
8097
8098 try testArgs(f16, i16, imin(i16));
8099 try testArgs(f16, i16, imin(i16) + 1);
8100 try testArgs(f16, i16, -1e4);
8101 try testArgs(f16, i16, -1e3);
8102 try testArgs(f16, i16, -1e2);
8103 try testArgs(f16, i16, -1e1);
8104 try testArgs(f16, i16, -1e0);
8105 try testArgs(f16, i16, 0);
8106 try testArgs(f16, i16, 1e0);
8107 try testArgs(f16, i16, 1e1);
8108 try testArgs(f16, i16, 1e2);
8109 try testArgs(f16, i16, 1e3);
8110 try testArgs(f16, i16, 1e4);
8111 try testArgs(f16, i16, imax(i16) - 1);
8112 try testArgs(f16, i16, imax(i16));
8113
8114 try testArgs(f16, u16, 0);
8115 try testArgs(f16, u16, 1e0);
8116 try testArgs(f16, u16, 1e1);
8117 try testArgs(f16, u16, 1e2);
8118 try testArgs(f16, u16, 1e3);
8119 try testArgs(f16, u16, 1e4);
8120 try testArgs(f16, u16, imax(u16) - 1);
8121 try testArgs(f16, u16, imax(u16));
8122
8123 try testArgs(f16, i32, imin(i32));
8124 try testArgs(f16, i32, imin(i32) + 1);
8125 try testArgs(f16, i32, -1e9);
8126 try testArgs(f16, i32, -1e8);
8127 try testArgs(f16, i32, -1e7);
8128 try testArgs(f16, i32, -1e6);
8129 try testArgs(f16, i32, -1e5);
8130 try testArgs(f16, i32, -1e4);
8131 try testArgs(f16, i32, -1e3);
8132 try testArgs(f16, i32, -1e2);
8133 try testArgs(f16, i32, -1e1);
8134 try testArgs(f16, i32, -1e0);
8135 try testArgs(f16, i32, 0);
8136 try testArgs(f16, i32, 1e0);
8137 try testArgs(f16, i32, 1e1);
8138 try testArgs(f16, i32, 1e2);
8139 try testArgs(f16, i32, 1e3);
8140 try testArgs(f16, i32, 1e4);
8141 try testArgs(f16, i32, 1e5);
8142 try testArgs(f16, i32, 1e6);
8143 try testArgs(f16, i32, 1e7);
8144 try testArgs(f16, i32, 1e8);
8145 try testArgs(f16, i32, 1e9);
8146 try testArgs(f16, i32, imax(i32) - 1);
8147 try testArgs(f16, i32, imax(i32));
8148
8149 try testArgs(f16, u32, 0);
8150 try testArgs(f16, u32, 1e0);
8151 try testArgs(f16, u32, 1e1);
8152 try testArgs(f16, u32, 1e2);
8153 try testArgs(f16, u32, 1e3);
8154 try testArgs(f16, u32, 1e4);
8155 try testArgs(f16, u32, 1e5);
8156 try testArgs(f16, u32, 1e6);
8157 try testArgs(f16, u32, 1e7);
8158 try testArgs(f16, u32, 1e8);
8159 try testArgs(f16, u32, 1e9);
8160 try testArgs(f16, u32, imax(u32) - 1);
8161 try testArgs(f16, u32, imax(u32));
8162
8163 try testArgs(f16, i64, imin(i64));
8164 try testArgs(f16, i64, imin(i64) + 1);
8165 try testArgs(f16, i64, -1e18);
8166 try testArgs(f16, i64, -1e16);
8167 try testArgs(f16, i64, -1e14);
8168 try testArgs(f16, i64, -1e12);
8169 try testArgs(f16, i64, -1e10);
8170 try testArgs(f16, i64, -1e8);
8171 try testArgs(f16, i64, -1e6);
8172 try testArgs(f16, i64, -1e4);
8173 try testArgs(f16, i64, -1e2);
8174 try testArgs(f16, i64, -1e0);
8175 try testArgs(f16, i64, 0);
8176 try testArgs(f16, i64, 1e0);
8177 try testArgs(f16, i64, 1e2);
8178 try testArgs(f16, i64, 1e4);
8179 try testArgs(f16, i64, 1e6);
8180 try testArgs(f16, i64, 1e8);
8181 try testArgs(f16, i64, 1e10);
8182 try testArgs(f16, i64, 1e12);
8183 try testArgs(f16, i64, 1e14);
8184 try testArgs(f16, i64, 1e16);
8185 try testArgs(f16, i64, 1e18);
8186 try testArgs(f16, i64, imax(i64) - 1);
8187 try testArgs(f16, i64, imax(i64));
8188
8189 try testArgs(f16, u64, 0);
8190 try testArgs(f16, u64, 1e0);
8191 try testArgs(f16, u64, 1e2);
8192 try testArgs(f16, u64, 1e4);
8193 try testArgs(f16, u64, 1e6);
8194 try testArgs(f16, u64, 1e8);
8195 try testArgs(f16, u64, 1e10);
8196 try testArgs(f16, u64, 1e12);
8197 try testArgs(f16, u64, 1e14);
8198 try testArgs(f16, u64, 1e16);
8199 try testArgs(f16, u64, 1e18);
8200 try testArgs(f16, u64, imax(u64) - 1);
8201 try testArgs(f16, u64, imax(u64));
8202
8203 try testArgs(f16, i128, imin(i128));
8204 try testArgs(f16, i128, imin(i128) + 1);
8205 try testArgs(f16, i128, -1e38);
8206 try testArgs(f16, i128, -1e34);
8207 try testArgs(f16, i128, -1e30);
8208 try testArgs(f16, i128, -1e26);
8209 try testArgs(f16, i128, -1e22);
8210 try testArgs(f16, i128, -1e18);
8211 try testArgs(f16, i128, -1e14);
8212 try testArgs(f16, i128, -1e10);
8213 try testArgs(f16, i128, -1e6);
8214 try testArgs(f16, i128, -1e2);
8215 try testArgs(f16, i128, -1e0);
8216 try testArgs(f16, i128, 0);
8217 try testArgs(f16, i128, 1e0);
8218 try testArgs(f16, i128, 1e2);
8219 try testArgs(f16, i128, 1e6);
8220 try testArgs(f16, i128, 1e10);
8221 try testArgs(f16, i128, 1e14);
8222 try testArgs(f16, i128, 1e18);
8223 try testArgs(f16, i128, 1e22);
8224 try testArgs(f16, i128, 1e26);
8225 try testArgs(f16, i128, 1e30);
8226 try testArgs(f16, i128, 1e34);
8227 try testArgs(f16, i128, 1e38);
8228 try testArgs(f16, i128, imax(i128) - 1);
8229 try testArgs(f16, i128, imax(i128));
8230
8231 try testArgs(f16, u128, 0);
8232 try testArgs(f16, u128, 1e0);
8233 try testArgs(f16, u128, 1e2);
8234 try testArgs(f16, u128, 1e6);
8235 try testArgs(f16, u128, 1e10);
8236 try testArgs(f16, u128, 1e14);
8237 try testArgs(f16, u128, 1e18);
8238 try testArgs(f16, u128, 1e22);
8239 try testArgs(f16, u128, 1e26);
8240 try testArgs(f16, u128, 1e30);
8241 try testArgs(f16, u128, 1e34);
8242 try testArgs(f16, u128, 1e38);
8243 try testArgs(f16, u128, imax(u128) - 1);
8244 try testArgs(f16, u128, imax(u128));
8245
8246 try testArgs(f16, i256, imin(i256));
8247 try testArgs(f16, i256, imin(i256) + 1);
8248 try testArgs(f16, i256, -1e76);
8249 try testArgs(f16, i256, -1e69);
8250 try testArgs(f16, i256, -1e62);
8251 try testArgs(f16, i256, -1e55);
8252 try testArgs(f16, i256, -1e48);
8253 try testArgs(f16, i256, -1e41);
8254 try testArgs(f16, i256, -1e34);
8255 try testArgs(f16, i256, -1e27);
8256 try testArgs(f16, i256, -1e20);
8257 try testArgs(f16, i256, -1e13);
8258 try testArgs(f16, i256, -1e6);
8259 try testArgs(f16, i256, -1e0);
8260 try testArgs(f16, i256, 0);
8261 try testArgs(f16, i256, 1e0);
8262 try testArgs(f16, i256, 1e6);
8263 try testArgs(f16, i256, 1e13);
8264 try testArgs(f16, i256, 1e20);
8265 try testArgs(f16, i256, 1e27);
8266 try testArgs(f16, i256, 1e34);
8267 try testArgs(f16, i256, 1e41);
8268 try testArgs(f16, i256, 1e48);
8269 try testArgs(f16, i256, 1e55);
8270 try testArgs(f16, i256, 1e62);
8271 try testArgs(f16, i256, 1e69);
8272 try testArgs(f16, i256, 1e76);
8273 try testArgs(f16, i256, imax(i256) - 1);
8274 try testArgs(f16, i256, imax(i256));
8275
8276 try testArgs(f16, u256, 0);
8277 try testArgs(f16, u256, 1e0);
8278 try testArgs(f16, u256, 1e7);
8279 try testArgs(f16, u256, 1e14);
8280 try testArgs(f16, u256, 1e21);
8281 try testArgs(f16, u256, 1e28);
8282 try testArgs(f16, u256, 1e35);
8283 try testArgs(f16, u256, 1e42);
8284 try testArgs(f16, u256, 1e49);
8285 try testArgs(f16, u256, 1e56);
8286 try testArgs(f16, u256, 1e63);
8287 try testArgs(f16, u256, 1e70);
8288 try testArgs(f16, u256, 1e77);
8289 try testArgs(f16, u256, imax(u256) - 1);
8290 try testArgs(f16, u256, imax(u256));
8291
8292 try testArgs(f32, i8, imin(i8));
8293 try testArgs(f32, i8, imin(i8) + 1);
8294 try testArgs(f32, i8, -1e2);
8295 try testArgs(f32, i8, -1e1);
8296 try testArgs(f32, i8, -1e0);
8297 try testArgs(f32, i8, 0);
8298 try testArgs(f32, i8, 1e0);
8299 try testArgs(f32, i8, 1e1);
8300 try testArgs(f32, i8, 1e2);
8301 try testArgs(f32, i8, imax(i8) - 1);
8302 try testArgs(f32, i8, imax(i8));
8303
8304 try testArgs(f32, u8, 0);
8305 try testArgs(f32, u8, 1e0);
8306 try testArgs(f32, u8, 1e1);
8307 try testArgs(f32, u8, 1e2);
8308 try testArgs(f32, u8, imax(u8) - 1);
8309 try testArgs(f32, u8, imax(u8));
8310
8311 try testArgs(f32, i16, imin(i16));
8312 try testArgs(f32, i16, imin(i16) + 1);
8313 try testArgs(f32, i16, -1e4);
8314 try testArgs(f32, i16, -1e3);
8315 try testArgs(f32, i16, -1e2);
8316 try testArgs(f32, i16, -1e1);
8317 try testArgs(f32, i16, -1e0);
8318 try testArgs(f32, i16, 0);
8319 try testArgs(f32, i16, 1e0);
8320 try testArgs(f32, i16, 1e1);
8321 try testArgs(f32, i16, 1e2);
8322 try testArgs(f32, i16, 1e3);
8323 try testArgs(f32, i16, 1e4);
8324 try testArgs(f32, i16, imax(i16) - 1);
8325 try testArgs(f32, i16, imax(i16));
8326
8327 try testArgs(f32, u16, 0);
8328 try testArgs(f32, u16, 1e0);
8329 try testArgs(f32, u16, 1e1);
8330 try testArgs(f32, u16, 1e2);
8331 try testArgs(f32, u16, 1e3);
8332 try testArgs(f32, u16, 1e4);
8333 try testArgs(f32, u16, imax(u16) - 1);
8334 try testArgs(f32, u16, imax(u16));
8335
8336 try testArgs(f32, i32, imin(i32));
8337 try testArgs(f32, i32, imin(i32) + 1);
8338 try testArgs(f32, i32, -1e9);
8339 try testArgs(f32, i32, -1e8);
8340 try testArgs(f32, i32, -1e7);
8341 try testArgs(f32, i32, -1e6);
8342 try testArgs(f32, i32, -1e5);
8343 try testArgs(f32, i32, -1e4);
8344 try testArgs(f32, i32, -1e3);
8345 try testArgs(f32, i32, -1e2);
8346 try testArgs(f32, i32, -1e1);
8347 try testArgs(f32, i32, -1e0);
8348 try testArgs(f32, i32, 0);
8349 try testArgs(f32, i32, 1e0);
8350 try testArgs(f32, i32, 1e1);
8351 try testArgs(f32, i32, 1e2);
8352 try testArgs(f32, i32, 1e3);
8353 try testArgs(f32, i32, 1e4);
8354 try testArgs(f32, i32, 1e5);
8355 try testArgs(f32, i32, 1e6);
8356 try testArgs(f32, i32, 1e7);
8357 try testArgs(f32, i32, 1e8);
8358 try testArgs(f32, i32, 1e9);
8359 try testArgs(f32, i32, imax(i32) - 1);
8360 try testArgs(f32, i32, imax(i32));
8361
8362 try testArgs(f32, u32, 0);
8363 try testArgs(f32, u32, 1e0);
8364 try testArgs(f32, u32, 1e1);
8365 try testArgs(f32, u32, 1e2);
8366 try testArgs(f32, u32, 1e3);
8367 try testArgs(f32, u32, 1e4);
8368 try testArgs(f32, u32, 1e5);
8369 try testArgs(f32, u32, 1e6);
8370 try testArgs(f32, u32, 1e7);
8371 try testArgs(f32, u32, 1e8);
8372 try testArgs(f32, u32, 1e9);
8373 try testArgs(f32, u32, imax(u32) - 1);
8374 try testArgs(f32, u32, imax(u32));
8375
8376 try testArgs(f32, i64, imin(i64));
8377 try testArgs(f32, i64, imin(i64) + 1);
8378 try testArgs(f32, i64, -1e18);
8379 try testArgs(f32, i64, -1e16);
8380 try testArgs(f32, i64, -1e14);
8381 try testArgs(f32, i64, -1e12);
8382 try testArgs(f32, i64, -1e10);
8383 try testArgs(f32, i64, -1e8);
8384 try testArgs(f32, i64, -1e6);
8385 try testArgs(f32, i64, -1e4);
8386 try testArgs(f32, i64, -1e2);
8387 try testArgs(f32, i64, -1e0);
8388 try testArgs(f32, i64, 0);
8389 try testArgs(f32, i64, 1e0);
8390 try testArgs(f32, i64, 1e2);
8391 try testArgs(f32, i64, 1e4);
8392 try testArgs(f32, i64, 1e6);
8393 try testArgs(f32, i64, 1e8);
8394 try testArgs(f32, i64, 1e10);
8395 try testArgs(f32, i64, 1e12);
8396 try testArgs(f32, i64, 1e14);
8397 try testArgs(f32, i64, 1e16);
8398 try testArgs(f32, i64, 1e18);
8399 try testArgs(f32, i64, imax(i64) - 1);
8400 try testArgs(f32, i64, imax(i64));
8401
8402 try testArgs(f32, u64, 0);
8403 try testArgs(f32, u64, 1e0);
8404 try testArgs(f32, u64, 1e2);
8405 try testArgs(f32, u64, 1e4);
8406 try testArgs(f32, u64, 1e6);
8407 try testArgs(f32, u64, 1e8);
8408 try testArgs(f32, u64, 1e10);
8409 try testArgs(f32, u64, 1e12);
8410 try testArgs(f32, u64, 1e14);
8411 try testArgs(f32, u64, 1e16);
8412 try testArgs(f32, u64, 1e18);
8413 try testArgs(f32, u64, imax(u64) - 1);
8414 try testArgs(f32, u64, imax(u64));
8415
8416 try testArgs(f32, i128, imin(i128));
8417 try testArgs(f32, i128, imin(i128) + 1);
8418 try testArgs(f32, i128, -1e38);
8419 try testArgs(f32, i128, -1e34);
8420 try testArgs(f32, i128, -1e30);
8421 try testArgs(f32, i128, -1e26);
8422 try testArgs(f32, i128, -1e22);
8423 try testArgs(f32, i128, -1e18);
8424 try testArgs(f32, i128, -1e14);
8425 try testArgs(f32, i128, -1e10);
8426 try testArgs(f32, i128, -1e6);
8427 try testArgs(f32, i128, -1e2);
8428 try testArgs(f32, i128, -1e0);
8429 try testArgs(f32, i128, 0);
8430 try testArgs(f32, i128, 1e0);
8431 try testArgs(f32, i128, 1e2);
8432 try testArgs(f32, i128, 1e6);
8433 try testArgs(f32, i128, 1e10);
8434 try testArgs(f32, i128, 1e14);
8435 try testArgs(f32, i128, 1e18);
8436 try testArgs(f32, i128, 1e22);
8437 try testArgs(f32, i128, 1e26);
8438 try testArgs(f32, i128, 1e30);
8439 try testArgs(f32, i128, 1e34);
8440 try testArgs(f32, i128, 1e38);
8441 try testArgs(f32, i128, imax(i128) - 1);
8442 try testArgs(f32, i128, imax(i128));
8443
8444 try testArgs(f32, u128, 0);
8445 try testArgs(f32, u128, 1e0);
8446 try testArgs(f32, u128, 1e2);
8447 try testArgs(f32, u128, 1e6);
8448 try testArgs(f32, u128, 1e10);
8449 try testArgs(f32, u128, 1e14);
8450 try testArgs(f32, u128, 1e18);
8451 try testArgs(f32, u128, 1e22);
8452 try testArgs(f32, u128, 1e26);
8453 try testArgs(f32, u128, 1e30);
8454 try testArgs(f32, u128, 1e34);
8455 try testArgs(f32, u128, 1e38);
8456 try testArgs(f32, u128, imax(u128) - 1);
8457 try testArgs(f32, u128, imax(u128));
8458
8459 try testArgs(f32, i256, imin(i256));
8460 try testArgs(f32, i256, imin(i256) + 1);
8461 try testArgs(f32, i256, -1e76);
8462 try testArgs(f32, i256, -1e69);
8463 try testArgs(f32, i256, -1e62);
8464 try testArgs(f32, i256, -1e55);
8465 try testArgs(f32, i256, -1e48);
8466 try testArgs(f32, i256, -1e41);
8467 try testArgs(f32, i256, -1e34);
8468 try testArgs(f32, i256, -1e27);
8469 try testArgs(f32, i256, -1e20);
8470 try testArgs(f32, i256, -1e13);
8471 try testArgs(f32, i256, -1e6);
8472 try testArgs(f32, i256, -1e0);
8473 try testArgs(f32, i256, 0);
8474 try testArgs(f32, i256, 1e0);
8475 try testArgs(f32, i256, 1e6);
8476 try testArgs(f32, i256, 1e13);
8477 try testArgs(f32, i256, 1e20);
8478 try testArgs(f32, i256, 1e27);
8479 try testArgs(f32, i256, 1e34);
8480 try testArgs(f32, i256, 1e41);
8481 try testArgs(f32, i256, 1e48);
8482 try testArgs(f32, i256, 1e55);
8483 try testArgs(f32, i256, 1e62);
8484 try testArgs(f32, i256, 1e69);
8485 try testArgs(f32, i256, 1e76);
8486 try testArgs(f32, i256, imax(i256) - 1);
8487 try testArgs(f32, i256, imax(i256));
8488
8489 try testArgs(f32, u256, 0);
8490 try testArgs(f32, u256, 1e0);
8491 try testArgs(f32, u256, 1e7);
8492 try testArgs(f32, u256, 1e14);
8493 try testArgs(f32, u256, 1e21);
8494 try testArgs(f32, u256, 1e28);
8495 try testArgs(f32, u256, 1e35);
8496 try testArgs(f32, u256, 1e42);
8497 try testArgs(f32, u256, 1e49);
8498 try testArgs(f32, u256, 1e56);
8499 try testArgs(f32, u256, 1e63);
8500 try testArgs(f32, u256, 1e70);
8501 try testArgs(f32, u256, 1e77);
8502 try testArgs(f32, u256, imax(u256) - 1);
8503 try testArgs(f32, u256, imax(u256));
8504
8505 try testArgs(f64, i8, imin(i8));
8506 try testArgs(f64, i8, imin(i8) + 1);
8507 try testArgs(f64, i8, -1e2);
8508 try testArgs(f64, i8, -1e1);
8509 try testArgs(f64, i8, -1e0);
8510 try testArgs(f64, i8, 0);
8511 try testArgs(f64, i8, 1e0);
8512 try testArgs(f64, i8, 1e1);
8513 try testArgs(f64, i8, 1e2);
8514 try testArgs(f64, i8, imax(i8) - 1);
8515 try testArgs(f64, i8, imax(i8));
8516
8517 try testArgs(f64, u8, 0);
8518 try testArgs(f64, u8, 1e0);
8519 try testArgs(f64, u8, 1e1);
8520 try testArgs(f64, u8, 1e2);
8521 try testArgs(f64, u8, imax(u8) - 1);
8522 try testArgs(f64, u8, imax(u8));
8523
8524 try testArgs(f64, i16, imin(i16));
8525 try testArgs(f64, i16, imin(i16) + 1);
8526 try testArgs(f64, i16, -1e4);
8527 try testArgs(f64, i16, -1e3);
8528 try testArgs(f64, i16, -1e2);
8529 try testArgs(f64, i16, -1e1);
8530 try testArgs(f64, i16, -1e0);
8531 try testArgs(f64, i16, 0);
8532 try testArgs(f64, i16, 1e0);
8533 try testArgs(f64, i16, 1e1);
8534 try testArgs(f64, i16, 1e2);
8535 try testArgs(f64, i16, 1e3);
8536 try testArgs(f64, i16, 1e4);
8537 try testArgs(f64, i16, imax(i16) - 1);
8538 try testArgs(f64, i16, imax(i16));
8539
8540 try testArgs(f64, u16, 0);
8541 try testArgs(f64, u16, 1e0);
8542 try testArgs(f64, u16, 1e1);
8543 try testArgs(f64, u16, 1e2);
8544 try testArgs(f64, u16, 1e3);
8545 try testArgs(f64, u16, 1e4);
8546 try testArgs(f64, u16, imax(u16) - 1);
8547 try testArgs(f64, u16, imax(u16));
8548
8549 try testArgs(f64, i32, imin(i32));
8550 try testArgs(f64, i32, imin(i32) + 1);
8551 try testArgs(f64, i32, -1e9);
8552 try testArgs(f64, i32, -1e8);
8553 try testArgs(f64, i32, -1e7);
8554 try testArgs(f64, i32, -1e6);
8555 try testArgs(f64, i32, -1e5);
8556 try testArgs(f64, i32, -1e4);
8557 try testArgs(f64, i32, -1e3);
8558 try testArgs(f64, i32, -1e2);
8559 try testArgs(f64, i32, -1e1);
8560 try testArgs(f64, i32, -1e0);
8561 try testArgs(f64, i32, 0);
8562 try testArgs(f64, i32, 1e0);
8563 try testArgs(f64, i32, 1e1);
8564 try testArgs(f64, i32, 1e2);
8565 try testArgs(f64, i32, 1e3);
8566 try testArgs(f64, i32, 1e4);
8567 try testArgs(f64, i32, 1e5);
8568 try testArgs(f64, i32, 1e6);
8569 try testArgs(f64, i32, 1e7);
8570 try testArgs(f64, i32, 1e8);
8571 try testArgs(f64, i32, 1e9);
8572 try testArgs(f64, i32, imax(i32) - 1);
8573 try testArgs(f64, i32, imax(i32));
8574
8575 try testArgs(f64, u32, 0);
8576 try testArgs(f64, u32, 1e0);
8577 try testArgs(f64, u32, 1e1);
8578 try testArgs(f64, u32, 1e2);
8579 try testArgs(f64, u32, 1e3);
8580 try testArgs(f64, u32, 1e4);
8581 try testArgs(f64, u32, 1e5);
8582 try testArgs(f64, u32, 1e6);
8583 try testArgs(f64, u32, 1e7);
8584 try testArgs(f64, u32, 1e8);
8585 try testArgs(f64, u32, 1e9);
8586 try testArgs(f64, u32, imax(u32) - 1);
8587 try testArgs(f64, u32, imax(u32));
8588
8589 try testArgs(f64, i64, imin(i64));
8590 try testArgs(f64, i64, imin(i64) + 1);
8591 try testArgs(f64, i64, -1e18);
8592 try testArgs(f64, i64, -1e16);
8593 try testArgs(f64, i64, -1e14);
8594 try testArgs(f64, i64, -1e12);
8595 try testArgs(f64, i64, -1e10);
8596 try testArgs(f64, i64, -1e8);
8597 try testArgs(f64, i64, -1e6);
8598 try testArgs(f64, i64, -1e4);
8599 try testArgs(f64, i64, -1e2);
8600 try testArgs(f64, i64, -1e0);
8601 try testArgs(f64, i64, 0);
8602 try testArgs(f64, i64, 1e0);
8603 try testArgs(f64, i64, 1e2);
8604 try testArgs(f64, i64, 1e4);
8605 try testArgs(f64, i64, 1e6);
8606 try testArgs(f64, i64, 1e8);
8607 try testArgs(f64, i64, 1e10);
8608 try testArgs(f64, i64, 1e12);
8609 try testArgs(f64, i64, 1e14);
8610 try testArgs(f64, i64, 1e16);
8611 try testArgs(f64, i64, 1e18);
8612 try testArgs(f64, i64, imax(i64) - 1);
8613 try testArgs(f64, i64, imax(i64));
8614
8615 try testArgs(f64, u64, 0);
8616 try testArgs(f64, u64, 1e0);
8617 try testArgs(f64, u64, 1e2);
8618 try testArgs(f64, u64, 1e4);
8619 try testArgs(f64, u64, 1e6);
8620 try testArgs(f64, u64, 1e8);
8621 try testArgs(f64, u64, 1e10);
8622 try testArgs(f64, u64, 1e12);
8623 try testArgs(f64, u64, 1e14);
8624 try testArgs(f64, u64, 1e16);
8625 try testArgs(f64, u64, 1e18);
8626 try testArgs(f64, u64, imax(u64) - 1);
8627 try testArgs(f64, u64, imax(u64));
8628
8629 try testArgs(f64, i128, imin(i128));
8630 try testArgs(f64, i128, imin(i128) + 1);
8631 try testArgs(f64, i128, -1e38);
8632 try testArgs(f64, i128, -1e34);
8633 try testArgs(f64, i128, -1e30);
8634 try testArgs(f64, i128, -1e26);
8635 try testArgs(f64, i128, -1e22);
8636 try testArgs(f64, i128, -1e18);
8637 try testArgs(f64, i128, -1e14);
8638 try testArgs(f64, i128, -1e10);
8639 try testArgs(f64, i128, -1e6);
8640 try testArgs(f64, i128, -1e2);
8641 try testArgs(f64, i128, -1e0);
8642 try testArgs(f64, i128, 0);
8643 try testArgs(f64, i128, 1e0);
8644 try testArgs(f64, i128, 1e2);
8645 try testArgs(f64, i128, 1e6);
8646 try testArgs(f64, i128, 1e10);
8647 try testArgs(f64, i128, 1e14);
8648 try testArgs(f64, i128, 1e18);
8649 try testArgs(f64, i128, 1e22);
8650 try testArgs(f64, i128, 1e26);
8651 try testArgs(f64, i128, 1e30);
8652 try testArgs(f64, i128, 1e34);
8653 try testArgs(f64, i128, 1e38);
8654 try testArgs(f64, i128, imax(i128) - 1);
8655 try testArgs(f64, i128, imax(i128));
8656
8657 try testArgs(f64, u128, 0);
8658 try testArgs(f64, u128, 1e0);
8659 try testArgs(f64, u128, 1e2);
8660 try testArgs(f64, u128, 1e6);
8661 try testArgs(f64, u128, 1e10);
8662 try testArgs(f64, u128, 1e14);
8663 try testArgs(f64, u128, 1e18);
8664 try testArgs(f64, u128, 1e22);
8665 try testArgs(f64, u128, 1e26);
8666 try testArgs(f64, u128, 1e30);
8667 try testArgs(f64, u128, 1e34);
8668 try testArgs(f64, u128, 1e38);
8669 try testArgs(f64, u128, imax(u128) - 1);
8670 try testArgs(f64, u128, imax(u128));
8671
8672 try testArgs(f64, i256, imin(i256));
8673 try testArgs(f64, i256, imin(i256) + 1);
8674 try testArgs(f64, i256, -1e76);
8675 try testArgs(f64, i256, -1e69);
8676 try testArgs(f64, i256, -1e62);
8677 try testArgs(f64, i256, -1e55);
8678 try testArgs(f64, i256, -1e48);
8679 try testArgs(f64, i256, -1e41);
8680 try testArgs(f64, i256, -1e34);
8681 try testArgs(f64, i256, -1e27);
8682 try testArgs(f64, i256, -1e20);
8683 try testArgs(f64, i256, -1e13);
8684 try testArgs(f64, i256, -1e6);
8685 try testArgs(f64, i256, -1e0);
8686 try testArgs(f64, i256, 0);
8687 try testArgs(f64, i256, 1e0);
8688 try testArgs(f64, i256, 1e6);
8689 try testArgs(f64, i256, 1e13);
8690 try testArgs(f64, i256, 1e20);
8691 try testArgs(f64, i256, 1e27);
8692 try testArgs(f64, i256, 1e34);
8693 try testArgs(f64, i256, 1e41);
8694 try testArgs(f64, i256, 1e48);
8695 try testArgs(f64, i256, 1e55);
8696 try testArgs(f64, i256, 1e62);
8697 try testArgs(f64, i256, 1e69);
8698 try testArgs(f64, i256, 1e76);
8699 try testArgs(f64, i256, imax(i256) - 1);
8700 try testArgs(f64, i256, imax(i256));
8701
8702 try testArgs(f64, u256, 0);
8703 try testArgs(f64, u256, 1e0);
8704 try testArgs(f64, u256, 1e7);
8705 try testArgs(f64, u256, 1e14);
8706 try testArgs(f64, u256, 1e21);
8707 try testArgs(f64, u256, 1e28);
8708 try testArgs(f64, u256, 1e35);
8709 try testArgs(f64, u256, 1e42);
8710 try testArgs(f64, u256, 1e49);
8711 try testArgs(f64, u256, 1e56);
8712 try testArgs(f64, u256, 1e63);
8713 try testArgs(f64, u256, 1e70);
8714 try testArgs(f64, u256, 1e77);
8715 try testArgs(f64, u256, imax(u256) - 1);
8716 try testArgs(f64, u256, imax(u256));
8717
8718 try testArgs(f80, i8, imin(i8));
8719 try testArgs(f80, i8, imin(i8) + 1);
8720 try testArgs(f80, i8, -1e2);
8721 try testArgs(f80, i8, -1e1);
8722 try testArgs(f80, i8, -1e0);
8723 try testArgs(f80, i8, 0);
8724 try testArgs(f80, i8, 1e0);
8725 try testArgs(f80, i8, 1e1);
8726 try testArgs(f80, i8, 1e2);
8727 try testArgs(f80, i8, imax(i8) - 1);
8728 try testArgs(f80, i8, imax(i8));
8729
8730 try testArgs(f80, u8, 0);
8731 try testArgs(f80, u8, 1e0);
8732 try testArgs(f80, u8, 1e1);
8733 try testArgs(f80, u8, 1e2);
8734 try testArgs(f80, u8, imax(u8) - 1);
8735 try testArgs(f80, u8, imax(u8));
8736
8737 try testArgs(f80, i16, imin(i16));
8738 try testArgs(f80, i16, imin(i16) + 1);
8739 try testArgs(f80, i16, -1e4);
8740 try testArgs(f80, i16, -1e3);
8741 try testArgs(f80, i16, -1e2);
8742 try testArgs(f80, i16, -1e1);
8743 try testArgs(f80, i16, -1e0);
8744 try testArgs(f80, i16, 0);
8745 try testArgs(f80, i16, 1e0);
8746 try testArgs(f80, i16, 1e1);
8747 try testArgs(f80, i16, 1e2);
8748 try testArgs(f80, i16, 1e3);
8749 try testArgs(f80, i16, 1e4);
8750 try testArgs(f80, i16, imax(i16) - 1);
8751 try testArgs(f80, i16, imax(i16));
8752
8753 try testArgs(f80, u16, 0);
8754 try testArgs(f80, u16, 1e0);
8755 try testArgs(f80, u16, 1e1);
8756 try testArgs(f80, u16, 1e2);
8757 try testArgs(f80, u16, 1e3);
8758 try testArgs(f80, u16, 1e4);
8759 try testArgs(f80, u16, imax(u16) - 1);
8760 try testArgs(f80, u16, imax(u16));
8761
8762 try testArgs(f80, i32, imin(i32));
8763 try testArgs(f80, i32, imin(i32) + 1);
8764 try testArgs(f80, i32, -1e9);
8765 try testArgs(f80, i32, -1e8);
8766 try testArgs(f80, i32, -1e7);
8767 try testArgs(f80, i32, -1e6);
8768 try testArgs(f80, i32, -1e5);
8769 try testArgs(f80, i32, -1e4);
8770 try testArgs(f80, i32, -1e3);
8771 try testArgs(f80, i32, -1e2);
8772 try testArgs(f80, i32, -1e1);
8773 try testArgs(f80, i32, -1e0);
8774 try testArgs(f80, i32, 0);
8775 try testArgs(f80, i32, 1e0);
8776 try testArgs(f80, i32, 1e1);
8777 try testArgs(f80, i32, 1e2);
8778 try testArgs(f80, i32, 1e3);
8779 try testArgs(f80, i32, 1e4);
8780 try testArgs(f80, i32, 1e5);
8781 try testArgs(f80, i32, 1e6);
8782 try testArgs(f80, i32, 1e7);
8783 try testArgs(f80, i32, 1e8);
8784 try testArgs(f80, i32, 1e9);
8785 try testArgs(f80, i32, imax(i32) - 1);
8786 try testArgs(f80, i32, imax(i32));
8787
8788 try testArgs(f80, u32, 0);
8789 try testArgs(f80, u32, 1e0);
8790 try testArgs(f80, u32, 1e1);
8791 try testArgs(f80, u32, 1e2);
8792 try testArgs(f80, u32, 1e3);
8793 try testArgs(f80, u32, 1e4);
8794 try testArgs(f80, u32, 1e5);
8795 try testArgs(f80, u32, 1e6);
8796 try testArgs(f80, u32, 1e7);
8797 try testArgs(f80, u32, 1e8);
8798 try testArgs(f80, u32, 1e9);
8799 try testArgs(f80, u32, imax(u32) - 1);
8800 try testArgs(f80, u32, imax(u32));
8801
8802 try testArgs(f80, i64, imin(i64));
8803 try testArgs(f80, i64, imin(i64) + 1);
8804 try testArgs(f80, i64, -1e18);
8805 try testArgs(f80, i64, -1e16);
8806 try testArgs(f80, i64, -1e14);
8807 try testArgs(f80, i64, -1e12);
8808 try testArgs(f80, i64, -1e10);
8809 try testArgs(f80, i64, -1e8);
8810 try testArgs(f80, i64, -1e6);
8811 try testArgs(f80, i64, -1e4);
8812 try testArgs(f80, i64, -1e2);
8813 try testArgs(f80, i64, -1e0);
8814 try testArgs(f80, i64, 0);
8815 try testArgs(f80, i64, 1e0);
8816 try testArgs(f80, i64, 1e2);
8817 try testArgs(f80, i64, 1e4);
8818 try testArgs(f80, i64, 1e6);
8819 try testArgs(f80, i64, 1e8);
8820 try testArgs(f80, i64, 1e10);
8821 try testArgs(f80, i64, 1e12);
8822 try testArgs(f80, i64, 1e14);
8823 try testArgs(f80, i64, 1e16);
8824 try testArgs(f80, i64, 1e18);
8825 try testArgs(f80, i64, imax(i64) - 1);
8826 try testArgs(f80, i64, imax(i64));
8827
8828 try testArgs(f80, u64, 0);
8829 try testArgs(f80, u64, 1e0);
8830 try testArgs(f80, u64, 1e2);
8831 try testArgs(f80, u64, 1e4);
8832 try testArgs(f80, u64, 1e6);
8833 try testArgs(f80, u64, 1e8);
8834 try testArgs(f80, u64, 1e10);
8835 try testArgs(f80, u64, 1e12);
8836 try testArgs(f80, u64, 1e14);
8837 try testArgs(f80, u64, 1e16);
8838 try testArgs(f80, u64, 1e18);
8839 try testArgs(f80, u64, imax(u64) - 1);
8840 try testArgs(f80, u64, imax(u64));
8841
8842 try testArgs(f80, i128, imin(i128));
8843 try testArgs(f80, i128, imin(i128) + 1);
8844 try testArgs(f80, i128, -1e38);
8845 try testArgs(f80, i128, -1e34);
8846 try testArgs(f80, i128, -1e30);
8847 try testArgs(f80, i128, -1e26);
8848 try testArgs(f80, i128, -1e22);
8849 try testArgs(f80, i128, -1e18);
8850 try testArgs(f80, i128, -1e14);
8851 try testArgs(f80, i128, -1e10);
8852 try testArgs(f80, i128, -1e6);
8853 try testArgs(f80, i128, -1e2);
8854 try testArgs(f80, i128, -1e0);
8855 try testArgs(f80, i128, 0);
8856 try testArgs(f80, i128, 1e0);
8857 try testArgs(f80, i128, 1e2);
8858 try testArgs(f80, i128, 1e6);
8859 try testArgs(f80, i128, 1e10);
8860 try testArgs(f80, i128, 1e14);
8861 try testArgs(f80, i128, 1e18);
8862 try testArgs(f80, i128, 1e22);
8863 try testArgs(f80, i128, 1e26);
8864 try testArgs(f80, i128, 1e30);
8865 try testArgs(f80, i128, 1e34);
8866 try testArgs(f80, i128, 1e38);
8867 try testArgs(f80, i128, imax(i128) - 1);
8868 try testArgs(f80, i128, imax(i128));
8869
8870 try testArgs(f80, u128, 0);
8871 try testArgs(f80, u128, 1e0);
8872 try testArgs(f80, u128, 1e2);
8873 try testArgs(f80, u128, 1e6);
8874 try testArgs(f80, u128, 1e10);
8875 try testArgs(f80, u128, 1e14);
8876 try testArgs(f80, u128, 1e18);
8877 try testArgs(f80, u128, 1e22);
8878 try testArgs(f80, u128, 1e26);
8879 try testArgs(f80, u128, 1e30);
8880 try testArgs(f80, u128, 1e34);
8881 try testArgs(f80, u128, 1e38);
8882 try testArgs(f80, u128, imax(u128) - 1);
8883 try testArgs(f80, u128, imax(u128));
8884
8885 try testArgs(f80, i256, imin(i256));
8886 try testArgs(f80, i256, imin(i256) + 1);
8887 try testArgs(f80, i256, -1e76);
8888 try testArgs(f80, i256, -1e69);
8889 try testArgs(f80, i256, -1e62);
8890 try testArgs(f80, i256, -1e55);
8891 try testArgs(f80, i256, -1e48);
8892 try testArgs(f80, i256, -1e41);
8893 try testArgs(f80, i256, -1e34);
8894 try testArgs(f80, i256, -1e27);
8895 try testArgs(f80, i256, -1e20);
8896 try testArgs(f80, i256, -1e13);
8897 try testArgs(f80, i256, -1e6);
8898 try testArgs(f80, i256, -1e0);
8899 try testArgs(f80, i256, 0);
8900 try testArgs(f80, i256, 1e0);
8901 try testArgs(f80, i256, 1e6);
8902 try testArgs(f80, i256, 1e13);
8903 try testArgs(f80, i256, 1e20);
8904 try testArgs(f80, i256, 1e27);
8905 try testArgs(f80, i256, 1e34);
8906 try testArgs(f80, i256, 1e41);
8907 try testArgs(f80, i256, 1e48);
8908 try testArgs(f80, i256, 1e55);
8909 try testArgs(f80, i256, 1e62);
8910 try testArgs(f80, i256, 1e69);
8911 try testArgs(f80, i256, 1e76);
8912 try testArgs(f80, i256, imax(i256) - 1);
8913 try testArgs(f80, i256, imax(i256));
8914
8915 try testArgs(f80, u256, 0);
8916 try testArgs(f80, u256, 1e0);
8917 try testArgs(f80, u256, 1e7);
8918 try testArgs(f80, u256, 1e14);
8919 try testArgs(f80, u256, 1e21);
8920 try testArgs(f80, u256, 1e28);
8921 try testArgs(f80, u256, 1e35);
8922 try testArgs(f80, u256, 1e42);
8923 try testArgs(f80, u256, 1e49);
8924 try testArgs(f80, u256, 1e56);
8925 try testArgs(f80, u256, 1e63);
8926 try testArgs(f80, u256, 1e70);
8927 try testArgs(f80, u256, 1e77);
8928 try testArgs(f80, u256, imax(u256) - 1);
8929 try testArgs(f80, u256, imax(u256));
8930
8931 try testArgs(f128, i8, imin(i8));
8932 try testArgs(f128, i8, imin(i8) + 1);
8933 try testArgs(f128, i8, -1e2);
8934 try testArgs(f128, i8, -1e1);
8935 try testArgs(f128, i8, -1e0);
8936 try testArgs(f128, i8, 0);
8937 try testArgs(f128, i8, 1e0);
8938 try testArgs(f128, i8, 1e1);
8939 try testArgs(f128, i8, 1e2);
8940 try testArgs(f128, i8, imax(i8) - 1);
8941 try testArgs(f128, i8, imax(i8));
8942
8943 try testArgs(f128, u8, 0);
8944 try testArgs(f128, u8, 1e0);
8945 try testArgs(f128, u8, 1e1);
8946 try testArgs(f128, u8, 1e2);
8947 try testArgs(f128, u8, imax(u8) - 1);
8948 try testArgs(f128, u8, imax(u8));
8949
8950 try testArgs(f128, i16, imin(i16));
8951 try testArgs(f128, i16, imin(i16) + 1);
8952 try testArgs(f128, i16, -1e4);
8953 try testArgs(f128, i16, -1e3);
8954 try testArgs(f128, i16, -1e2);
8955 try testArgs(f128, i16, -1e1);
8956 try testArgs(f128, i16, -1e0);
8957 try testArgs(f128, i16, 0);
8958 try testArgs(f128, i16, 1e0);
8959 try testArgs(f128, i16, 1e1);
8960 try testArgs(f128, i16, 1e2);
8961 try testArgs(f128, i16, 1e3);
8962 try testArgs(f128, i16, 1e4);
8963 try testArgs(f128, i16, imax(i16) - 1);
8964 try testArgs(f128, i16, imax(i16));
8965
8966 try testArgs(f128, u16, 0);
8967 try testArgs(f128, u16, 1e0);
8968 try testArgs(f128, u16, 1e1);
8969 try testArgs(f128, u16, 1e2);
8970 try testArgs(f128, u16, 1e3);
8971 try testArgs(f128, u16, 1e4);
8972 try testArgs(f128, u16, imax(u16) - 1);
8973 try testArgs(f128, u16, imax(u16));
8974
8975 try testArgs(f128, i32, imin(i32));
8976 try testArgs(f128, i32, imin(i32) + 1);
8977 try testArgs(f128, i32, -1e9);
8978 try testArgs(f128, i32, -1e8);
8979 try testArgs(f128, i32, -1e7);
8980 try testArgs(f128, i32, -1e6);
8981 try testArgs(f128, i32, -1e5);
8982 try testArgs(f128, i32, -1e4);
8983 try testArgs(f128, i32, -1e3);
8984 try testArgs(f128, i32, -1e2);
8985 try testArgs(f128, i32, -1e1);
8986 try testArgs(f128, i32, -1e0);
8987 try testArgs(f128, i32, 0);
8988 try testArgs(f128, i32, 1e0);
8989 try testArgs(f128, i32, 1e1);
8990 try testArgs(f128, i32, 1e2);
8991 try testArgs(f128, i32, 1e3);
8992 try testArgs(f128, i32, 1e4);
8993 try testArgs(f128, i32, 1e5);
8994 try testArgs(f128, i32, 1e6);
8995 try testArgs(f128, i32, 1e7);
8996 try testArgs(f128, i32, 1e8);
8997 try testArgs(f128, i32, 1e9);
8998 try testArgs(f128, i32, imax(i32) - 1);
8999 try testArgs(f128, i32, imax(i32));
9000
9001 try testArgs(f128, u32, 0);
9002 try testArgs(f128, u32, 1e0);
9003 try testArgs(f128, u32, 1e1);
9004 try testArgs(f128, u32, 1e2);
9005 try testArgs(f128, u32, 1e3);
9006 try testArgs(f128, u32, 1e4);
9007 try testArgs(f128, u32, 1e5);
9008 try testArgs(f128, u32, 1e6);
9009 try testArgs(f128, u32, 1e7);
9010 try testArgs(f128, u32, 1e8);
9011 try testArgs(f128, u32, 1e9);
9012 try testArgs(f128, u32, imax(u32) - 1);
9013 try testArgs(f128, u32, imax(u32));
9014
9015 try testArgs(f128, i64, imin(i64));
9016 try testArgs(f128, i64, imin(i64) + 1);
9017 try testArgs(f128, i64, -1e18);
9018 try testArgs(f128, i64, -1e16);
9019 try testArgs(f128, i64, -1e14);
9020 try testArgs(f128, i64, -1e12);
9021 try testArgs(f128, i64, -1e10);
9022 try testArgs(f128, i64, -1e8);
9023 try testArgs(f128, i64, -1e6);
9024 try testArgs(f128, i64, -1e4);
9025 try testArgs(f128, i64, -1e2);
9026 try testArgs(f128, i64, -1e0);
9027 try testArgs(f128, i64, 0);
9028 try testArgs(f128, i64, 1e0);
9029 try testArgs(f128, i64, 1e2);
9030 try testArgs(f128, i64, 1e4);
9031 try testArgs(f128, i64, 1e6);
9032 try testArgs(f128, i64, 1e8);
9033 try testArgs(f128, i64, 1e10);
9034 try testArgs(f128, i64, 1e12);
9035 try testArgs(f128, i64, 1e14);
9036 try testArgs(f128, i64, 1e16);
9037 try testArgs(f128, i64, 1e18);
9038 try testArgs(f128, i64, imax(i64) - 1);
9039 try testArgs(f128, i64, imax(i64));
9040
9041 try testArgs(f128, u64, 0);
9042 try testArgs(f128, u64, 1e0);
9043 try testArgs(f128, u64, 1e2);
9044 try testArgs(f128, u64, 1e4);
9045 try testArgs(f128, u64, 1e6);
9046 try testArgs(f128, u64, 1e8);
9047 try testArgs(f128, u64, 1e10);
9048 try testArgs(f128, u64, 1e12);
9049 try testArgs(f128, u64, 1e14);
9050 try testArgs(f128, u64, 1e16);
9051 try testArgs(f128, u64, 1e18);
9052 try testArgs(f128, u64, imax(u64) - 1);
9053 try testArgs(f128, u64, imax(u64));
9054
9055 try testArgs(f128, i128, imin(i128));
9056 try testArgs(f128, i128, imin(i128) + 1);
9057 try testArgs(f128, i128, -1e38);
9058 try testArgs(f128, i128, -1e34);
9059 try testArgs(f128, i128, -1e30);
9060 try testArgs(f128, i128, -1e26);
9061 try testArgs(f128, i128, -1e22);
9062 try testArgs(f128, i128, -1e18);
9063 try testArgs(f128, i128, -1e14);
9064 try testArgs(f128, i128, -1e10);
9065 try testArgs(f128, i128, -1e6);
9066 try testArgs(f128, i128, -1e2);
9067 try testArgs(f128, i128, -1e0);
9068 try testArgs(f128, i128, 0);
9069 try testArgs(f128, i128, 1e0);
9070 try testArgs(f128, i128, 1e2);
9071 try testArgs(f128, i128, 1e6);
9072 try testArgs(f128, i128, 1e10);
9073 try testArgs(f128, i128, 1e14);
9074 try testArgs(f128, i128, 1e18);
9075 try testArgs(f128, i128, 1e22);
9076 try testArgs(f128, i128, 1e26);
9077 try testArgs(f128, i128, 1e30);
9078 try testArgs(f128, i128, 1e34);
9079 try testArgs(f128, i128, 1e38);
9080 try testArgs(f128, i128, imax(i128) - 1);
9081 try testArgs(f128, i128, imax(i128));
9082
9083 try testArgs(f128, u128, 0);
9084 try testArgs(f128, u128, 1e0);
9085 try testArgs(f128, u128, 1e2);
9086 try testArgs(f128, u128, 1e6);
9087 try testArgs(f128, u128, 1e10);
9088 try testArgs(f128, u128, 1e14);
9089 try testArgs(f128, u128, 1e18);
9090 try testArgs(f128, u128, 1e22);
9091 try testArgs(f128, u128, 1e26);
9092 try testArgs(f128, u128, 1e30);
9093 try testArgs(f128, u128, 1e34);
9094 try testArgs(f128, u128, 1e38);
9095 try testArgs(f128, u128, imax(u128) - 1);
9096 try testArgs(f128, u128, imax(u128));
9097
9098 try testArgs(f128, i256, imin(i256));
9099 try testArgs(f128, i256, imin(i256) + 1);
9100 try testArgs(f128, i256, -1e76);
9101 try testArgs(f128, i256, -1e69);
9102 try testArgs(f128, i256, -1e62);
9103 try testArgs(f128, i256, -1e55);
9104 try testArgs(f128, i256, -1e48);
9105 try testArgs(f128, i256, -1e41);
9106 try testArgs(f128, i256, -1e34);
9107 try testArgs(f128, i256, -1e27);
9108 try testArgs(f128, i256, -1e20);
9109 try testArgs(f128, i256, -1e13);
9110 try testArgs(f128, i256, -1e6);
9111 try testArgs(f128, i256, -1e0);
9112 try testArgs(f128, i256, 0);
9113 try testArgs(f128, i256, 1e0);
9114 try testArgs(f128, i256, 1e6);
9115 try testArgs(f128, i256, 1e13);
9116 try testArgs(f128, i256, 1e20);
9117 try testArgs(f128, i256, 1e27);
9118 try testArgs(f128, i256, 1e34);
9119 try testArgs(f128, i256, 1e41);
9120 try testArgs(f128, i256, 1e48);
9121 try testArgs(f128, i256, 1e55);
9122 try testArgs(f128, i256, 1e62);
9123 try testArgs(f128, i256, 1e69);
9124 try testArgs(f128, i256, 1e76);
9125 try testArgs(f128, i256, imax(i256) - 1);
9126 try testArgs(f128, i256, imax(i256));
9127
9128 try testArgs(f128, u256, 0);
9129 try testArgs(f128, u256, 1e0);
9130 try testArgs(f128, u256, 1e7);
9131 try testArgs(f128, u256, 1e14);
9132 try testArgs(f128, u256, 1e21);
9133 try testArgs(f128, u256, 1e28);
9134 try testArgs(f128, u256, 1e35);
9135 try testArgs(f128, u256, 1e42);
9136 try testArgs(f128, u256, 1e49);
9137 try testArgs(f128, u256, 1e56);
9138 try testArgs(f128, u256, 1e63);
9139 try testArgs(f128, u256, 1e70);
9140 try testArgs(f128, u256, 1e77);
9141 try testArgs(f128, u256, imax(u256) - 1);
9142 try testArgs(f128, u256, imax(u256));
9143 }
9144 fn testIntVectorsFromFloatVectors() !void {
9145 @setEvalBranchQuota(2_500);
9146
9147 try testArgs(@Vector(1, i8), @Vector(1, f16), .{
9148 -0x0.8p8,
9149 });
9150 try testArgs(@Vector(2, i8), @Vector(2, f16), .{
9151 next(f16, -0x0.8p8, -0.0), next(f16, next(f16, -0x0.8p8, -0.0), -0.0),
9152 });
9153 try testArgs(@Vector(4, i8), @Vector(4, f16), .{
9154 -1e2, -1e1, -1e0, -1e-1,
9155 });
9156 try testArgs(@Vector(8, i8), @Vector(8, f16), .{
9157 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
9158 });
9159 try testArgs(@Vector(16, i8), @Vector(16, f16), .{
9160 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f16, next(f16, 0x0.8p8, 0.0), 0.0), next(f16, 0x0.8p8, 0.0),
9161 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
9162 });
9163 try testArgs(@Vector(32, i8), @Vector(32, f16), .{
9164 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
9165 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
9166 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
9167 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9168 });
9169 try testArgs(@Vector(64, i8), @Vector(64, f16), .{
9170 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
9171 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
9172 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
9173 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
9174 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
9175 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
9176 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
9177 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
9178 });
9179 try testArgs(@Vector(128, i8), @Vector(128, f16), .{
9180 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
9181 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
9182 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
9183 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
9184 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
9185 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9186 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
9187 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
9188 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
9189 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
9190 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
9191 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
9192 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
9193 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
9194 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
9195 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
9196 });
9197
9198 try testArgs(@Vector(1, u8), @Vector(1, f16), .{
9199 -0.0,
9200 });
9201 try testArgs(@Vector(2, u8), @Vector(2, f16), .{
9202 0.0, 1e-5,
9203 });
9204 try testArgs(@Vector(4, u8), @Vector(4, f16), .{
9205 1e-4, 1e-3, 1e-2, 1e-1,
9206 });
9207 try testArgs(@Vector(8, u8), @Vector(8, f16), .{
9208 1e0, 1e1, 1e2, next(f16, next(f16, 0x1p8, 0.0), 0.0), next(f16, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
9209 });
9210 try testArgs(@Vector(16, u8), @Vector(16, f16), .{
9211 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
9212 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
9213 });
9214 try testArgs(@Vector(32, u8), @Vector(32, f16), .{
9215 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
9216 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
9217 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
9218 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
9219 });
9220 try testArgs(@Vector(64, u8), @Vector(64, f16), .{
9221 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
9222 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
9223 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9224 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
9225 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
9226 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
9227 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
9228 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
9229 });
9230 try testArgs(@Vector(128, u8), @Vector(128, f16), .{
9231 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
9232 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9233 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
9234 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
9235 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
9236 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
9237 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
9238 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
9239 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
9240 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
9241 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
9242 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
9243 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
9244 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
9245 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
9246 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
9247 });
9248
9249 try testArgs(@Vector(1, i16), @Vector(1, f16), .{
9250 -0x0.8p16,
9251 });
9252 try testArgs(@Vector(2, i16), @Vector(2, f16), .{
9253 next(f16, -0x0.8p16, -0.0), next(f16, next(f16, -0x0.8p16, -0.0), -0.0),
9254 });
9255 try testArgs(@Vector(4, i16), @Vector(4, f16), .{
9256 -1e4, -1e3, -1e2, -1e1,
9257 });
9258 try testArgs(@Vector(8, i16), @Vector(8, f16), .{
9259 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9260 });
9261 try testArgs(@Vector(16, i16), @Vector(16, f16), .{
9262 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9263 1e3, 1e4, next(f16, next(f16, 0x0.8p16, 0.0), 0.0), next(f16, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
9264 });
9265 try testArgs(@Vector(32, i16), @Vector(32, f16), .{
9266 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9267 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9268 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9269 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9270 });
9271 try testArgs(@Vector(64, i16), @Vector(64, f16), .{
9272 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9273 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9274 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9275 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9276 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9277 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9278 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9279 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9280 });
9281 try testArgs(@Vector(128, i16), @Vector(128, f16), .{
9282 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
9283 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
9284 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
9285 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
9286 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
9287 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
9288 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
9289 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9290 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
9291 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
9292 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
9293 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
9294 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
9295 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
9296 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
9297 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
9298 });
9299
9300 try testArgs(@Vector(1, u16), @Vector(1, f16), .{
9301 -0.0,
9302 });
9303 try testArgs(@Vector(2, u16), @Vector(2, f16), .{
9304 0.0, 1e-5,
9305 });
9306 try testArgs(@Vector(4, u16), @Vector(4, f16), .{
9307 1e-4, 1e-3, 1e-2, 1e-1,
9308 });
9309 try testArgs(@Vector(8, u16), @Vector(8, f16), .{
9310 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, 0x1p16, 0.0), 0.0), next(f16, 0x1p16, 0.0), 2e-5,
9311 });
9312 try testArgs(@Vector(16, u16), @Vector(16, f16), .{
9313 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9314 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9315 });
9316 try testArgs(@Vector(32, u16), @Vector(32, f16), .{
9317 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9318 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9319 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9320 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9321 });
9322 try testArgs(@Vector(64, u16), @Vector(64, f16), .{
9323 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9324 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9325 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9326 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9327 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9328 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9329 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9330 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9331 });
9332 try testArgs(@Vector(128, u16), @Vector(128, f16), .{
9333 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
9334 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
9335 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
9336 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
9337 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
9338 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
9339 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9340 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
9341 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
9342 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
9343 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
9344 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
9345 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
9346 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
9347 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
9348 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
9349 });
9350
9351 try testArgs(@Vector(1, i32), @Vector(1, f16), .{
9352 -fmax(f16),
9353 });
9354 try testArgs(@Vector(2, i32), @Vector(2, f16), .{
9355 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
9356 });
9357 try testArgs(@Vector(4, i32), @Vector(4, f16), .{
9358 -1e4, -1e3, -1e2, -1e1,
9359 });
9360 try testArgs(@Vector(8, i32), @Vector(8, f16), .{
9361 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9362 });
9363 try testArgs(@Vector(16, i32), @Vector(16, f16), .{
9364 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9365 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
9366 });
9367 try testArgs(@Vector(32, i32), @Vector(32, f16), .{
9368 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9369 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9370 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9371 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9372 });
9373 try testArgs(@Vector(64, i32), @Vector(64, f16), .{
9374 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9375 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9376 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9377 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9378 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9379 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9380 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9381 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9382 });
9383 try testArgs(@Vector(128, i32), @Vector(128, f16), .{
9384 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
9385 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
9386 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
9387 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
9388 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
9389 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
9390 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
9391 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9392 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
9393 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
9394 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
9395 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
9396 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
9397 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
9398 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
9399 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
9400 });
9401
9402 try testArgs(@Vector(1, u32), @Vector(1, f16), .{
9403 -0.0,
9404 });
9405 try testArgs(@Vector(2, u32), @Vector(2, f16), .{
9406 0.0, 1e-5,
9407 });
9408 try testArgs(@Vector(4, u32), @Vector(4, f16), .{
9409 1e-4, 1e-3, 1e-2, 1e-1,
9410 });
9411 try testArgs(@Vector(8, u32), @Vector(8, f16), .{
9412 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
9413 });
9414 try testArgs(@Vector(16, u32), @Vector(16, f16), .{
9415 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9416 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9417 });
9418 try testArgs(@Vector(32, u32), @Vector(32, f16), .{
9419 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9420 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9421 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9422 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9423 });
9424 try testArgs(@Vector(64, u32), @Vector(64, f16), .{
9425 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9426 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9427 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9428 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9429 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9430 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9431 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9432 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9433 });
9434 try testArgs(@Vector(128, u32), @Vector(128, f16), .{
9435 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
9436 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
9437 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
9438 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
9439 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
9440 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
9441 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9442 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
9443 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
9444 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
9445 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
9446 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
9447 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
9448 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
9449 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
9450 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
9451 });
9452
9453 try testArgs(@Vector(1, i64), @Vector(1, f16), .{
9454 -fmax(f16),
9455 });
9456 try testArgs(@Vector(2, i64), @Vector(2, f16), .{
9457 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
9458 });
9459 try testArgs(@Vector(4, i64), @Vector(4, f16), .{
9460 -1e4, -1e3, -1e2, -1e1,
9461 });
9462 try testArgs(@Vector(8, i64), @Vector(8, f16), .{
9463 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9464 });
9465 try testArgs(@Vector(16, i64), @Vector(16, f16), .{
9466 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9467 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
9468 });
9469 try testArgs(@Vector(32, i64), @Vector(32, f16), .{
9470 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9471 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9472 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9473 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9474 });
9475 try testArgs(@Vector(64, i64), @Vector(64, f16), .{
9476 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9477 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9478 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9479 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9480 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9481 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9482 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9483 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9484 });
9485 try testArgs(@Vector(128, i64), @Vector(128, f16), .{
9486 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
9487 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
9488 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
9489 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
9490 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
9491 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
9492 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
9493 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9494 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
9495 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
9496 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
9497 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
9498 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
9499 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
9500 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
9501 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
9502 });
9503
9504 try testArgs(@Vector(1, u64), @Vector(1, f16), .{
9505 -0.0,
9506 });
9507 try testArgs(@Vector(2, u64), @Vector(2, f16), .{
9508 0.0, 1e-5,
9509 });
9510 try testArgs(@Vector(4, u64), @Vector(4, f16), .{
9511 1e-4, 1e-3, 1e-2, 1e-1,
9512 });
9513 try testArgs(@Vector(8, u64), @Vector(8, f16), .{
9514 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
9515 });
9516 try testArgs(@Vector(16, u64), @Vector(16, f16), .{
9517 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9518 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9519 });
9520 try testArgs(@Vector(32, u64), @Vector(32, f16), .{
9521 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9522 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9523 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9524 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9525 });
9526 try testArgs(@Vector(64, u64), @Vector(64, f16), .{
9527 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9528 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9529 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9530 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9531 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9532 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9533 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9534 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9535 });
9536 try testArgs(@Vector(128, u64), @Vector(128, f16), .{
9537 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
9538 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
9539 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
9540 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
9541 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
9542 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
9543 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9544 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
9545 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
9546 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
9547 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
9548 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
9549 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
9550 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
9551 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
9552 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
9553 });
9554
9555 try testArgs(@Vector(1, i128), @Vector(1, f16), .{
9556 -fmax(f16),
9557 });
9558 try testArgs(@Vector(2, i128), @Vector(2, f16), .{
9559 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
9560 });
9561 try testArgs(@Vector(4, i128), @Vector(4, f16), .{
9562 -1e4, -1e3, -1e2, -1e1,
9563 });
9564 try testArgs(@Vector(8, i128), @Vector(8, f16), .{
9565 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9566 });
9567 try testArgs(@Vector(16, i128), @Vector(16, f16), .{
9568 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9569 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
9570 });
9571 try testArgs(@Vector(32, i128), @Vector(32, f16), .{
9572 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9573 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9574 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9575 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9576 });
9577 try testArgs(@Vector(64, i128), @Vector(64, f16), .{
9578 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9579 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9580 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9581 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9582 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9583 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9584 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9585 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9586 });
9587
9588 try testArgs(@Vector(1, u128), @Vector(1, f16), .{
9589 -0.0,
9590 });
9591 try testArgs(@Vector(2, u128), @Vector(2, f16), .{
9592 0.0, 1e-5,
9593 });
9594 try testArgs(@Vector(4, u128), @Vector(4, f16), .{
9595 1e-4, 1e-3, 1e-2, 1e-1,
9596 });
9597 try testArgs(@Vector(8, u128), @Vector(8, f16), .{
9598 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
9599 });
9600 try testArgs(@Vector(16, u128), @Vector(16, f16), .{
9601 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9602 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9603 });
9604 try testArgs(@Vector(32, u128), @Vector(32, f16), .{
9605 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9606 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9607 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9608 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9609 });
9610 try testArgs(@Vector(64, u128), @Vector(64, f16), .{
9611 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9612 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9613 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9614 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9615 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9616 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9617 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9618 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9619 });
9620
9621 try testArgs(@Vector(1, i256), @Vector(1, f16), .{
9622 -fmax(f16),
9623 });
9624 try testArgs(@Vector(2, i256), @Vector(2, f16), .{
9625 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
9626 });
9627 try testArgs(@Vector(4, i256), @Vector(4, f16), .{
9628 -1e4, -1e3, -1e2, -1e1,
9629 });
9630 try testArgs(@Vector(8, i256), @Vector(8, f16), .{
9631 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9632 });
9633 try testArgs(@Vector(16, i256), @Vector(16, f16), .{
9634 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9635 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
9636 });
9637 try testArgs(@Vector(32, i256), @Vector(32, f16), .{
9638 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9639 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9640 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9641 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9642 });
9643 try testArgs(@Vector(64, i256), @Vector(64, f16), .{
9644 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9645 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9646 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9647 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9648 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9649 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9650 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9651 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9652 });
9653
9654 try testArgs(@Vector(1, u256), @Vector(1, f16), .{
9655 -0.0,
9656 });
9657 try testArgs(@Vector(2, u256), @Vector(2, f16), .{
9658 0.0, 1e-5,
9659 });
9660 try testArgs(@Vector(4, u256), @Vector(4, f16), .{
9661 1e-4, 1e-3, 1e-2, 1e-1,
9662 });
9663 try testArgs(@Vector(8, u256), @Vector(8, f16), .{
9664 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
9665 });
9666 try testArgs(@Vector(16, u256), @Vector(16, f16), .{
9667 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9668 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9669 });
9670 try testArgs(@Vector(32, u256), @Vector(32, f16), .{
9671 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9672 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9673 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9674 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9675 });
9676 try testArgs(@Vector(64, u256), @Vector(64, f16), .{
9677 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9678 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9679 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9680 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9681 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9682 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9683 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9684 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9685 });
9686
9687 try testArgs(@Vector(1, i8), @Vector(1, f32), .{
9688 -0x0.8p8,
9689 });
9690 try testArgs(@Vector(2, i8), @Vector(2, f32), .{
9691 next(f32, -0x0.8p8, -0.0), next(f32, next(f32, -0x0.8p8, -0.0), -0.0),
9692 });
9693 try testArgs(@Vector(4, i8), @Vector(4, f32), .{
9694 -1e2, -1e1, -1e0, -1e-1,
9695 });
9696 try testArgs(@Vector(8, i8), @Vector(8, f32), .{
9697 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
9698 });
9699 try testArgs(@Vector(16, i8), @Vector(16, f32), .{
9700 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f32, next(f32, 0x0.8p8, 0.0), 0.0), next(f32, 0x0.8p8, 0.0),
9701 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
9702 });
9703 try testArgs(@Vector(32, i8), @Vector(32, f32), .{
9704 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
9705 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
9706 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
9707 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9708 });
9709 try testArgs(@Vector(64, i8), @Vector(64, f32), .{
9710 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
9711 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
9712 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
9713 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
9714 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
9715 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
9716 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
9717 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
9718 });
9719 try testArgs(@Vector(128, i8), @Vector(128, f32), .{
9720 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
9721 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
9722 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
9723 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
9724 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
9725 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9726 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
9727 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
9728 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
9729 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
9730 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
9731 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
9732 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
9733 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
9734 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
9735 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
9736 });
9737
9738 try testArgs(@Vector(1, u8), @Vector(1, f32), .{
9739 -0.0,
9740 });
9741 try testArgs(@Vector(2, u8), @Vector(2, f32), .{
9742 0.0, 1e-5,
9743 });
9744 try testArgs(@Vector(4, u8), @Vector(4, f32), .{
9745 1e-4, 1e-3, 1e-2, 1e-1,
9746 });
9747 try testArgs(@Vector(8, u8), @Vector(8, f32), .{
9748 1e0, 1e1, 1e2, next(f32, next(f32, 0x1p8, 0.0), 0.0), next(f32, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
9749 });
9750 try testArgs(@Vector(16, u8), @Vector(16, f32), .{
9751 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
9752 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
9753 });
9754 try testArgs(@Vector(32, u8), @Vector(32, f32), .{
9755 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
9756 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
9757 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
9758 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
9759 });
9760 try testArgs(@Vector(64, u8), @Vector(64, f32), .{
9761 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
9762 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
9763 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9764 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
9765 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
9766 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
9767 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
9768 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
9769 });
9770 try testArgs(@Vector(128, u8), @Vector(128, f32), .{
9771 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
9772 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9773 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
9774 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
9775 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
9776 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
9777 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
9778 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
9779 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
9780 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
9781 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
9782 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
9783 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
9784 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
9785 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
9786 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
9787 });
9788
9789 try testArgs(@Vector(1, i16), @Vector(1, f32), .{
9790 -0x0.8p16,
9791 });
9792 try testArgs(@Vector(2, i16), @Vector(2, f32), .{
9793 next(f32, -0x0.8p16, -0.0), next(f32, next(f32, -0x0.8p16, -0.0), -0.0),
9794 });
9795 try testArgs(@Vector(4, i16), @Vector(4, f32), .{
9796 -1e4, -1e3, -1e2, -1e1,
9797 });
9798 try testArgs(@Vector(8, i16), @Vector(8, f32), .{
9799 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9800 });
9801 try testArgs(@Vector(16, i16), @Vector(16, f32), .{
9802 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9803 1e3, 1e4, next(f32, next(f32, 0x0.8p16, 0.0), 0.0), next(f32, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
9804 });
9805 try testArgs(@Vector(32, i16), @Vector(32, f32), .{
9806 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9807 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9808 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9809 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9810 });
9811 try testArgs(@Vector(64, i16), @Vector(64, f32), .{
9812 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9813 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9814 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9815 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9816 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9817 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9818 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9819 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9820 });
9821 try testArgs(@Vector(128, i16), @Vector(128, f32), .{
9822 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
9823 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
9824 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
9825 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
9826 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
9827 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
9828 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
9829 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9830 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
9831 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
9832 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
9833 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
9834 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
9835 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
9836 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
9837 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
9838 });
9839
9840 try testArgs(@Vector(1, u16), @Vector(1, f32), .{
9841 -0.0,
9842 });
9843 try testArgs(@Vector(2, u16), @Vector(2, f32), .{
9844 0.0, 1e-5,
9845 });
9846 try testArgs(@Vector(4, u16), @Vector(4, f32), .{
9847 1e-4, 1e-3, 1e-2, 1e-1,
9848 });
9849 try testArgs(@Vector(8, u16), @Vector(8, f32), .{
9850 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p16, 0.0), 0.0), next(f32, 0x1p16, 0.0), 2e-5,
9851 });
9852 try testArgs(@Vector(16, u16), @Vector(16, f32), .{
9853 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9854 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9855 });
9856 try testArgs(@Vector(32, u16), @Vector(32, f32), .{
9857 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9858 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9859 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9860 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9861 });
9862 try testArgs(@Vector(64, u16), @Vector(64, f32), .{
9863 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9864 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9865 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9866 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9867 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9868 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9869 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9870 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9871 });
9872 try testArgs(@Vector(128, u16), @Vector(128, f32), .{
9873 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
9874 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
9875 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
9876 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
9877 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
9878 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
9879 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9880 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
9881 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
9882 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
9883 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
9884 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
9885 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
9886 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
9887 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
9888 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
9889 });
9890
9891 try testArgs(@Vector(1, i32), @Vector(1, f32), .{
9892 -0x0.8p32,
9893 });
9894 try testArgs(@Vector(2, i32), @Vector(2, f32), .{
9895 next(f32, -0x0.8p32, -0.0), next(f32, next(f32, -0x0.8p32, -0.0), -0.0),
9896 });
9897 try testArgs(@Vector(4, i32), @Vector(4, f32), .{
9898 -1e4, -1e3, -1e2, -1e1,
9899 });
9900 try testArgs(@Vector(8, i32), @Vector(8, f32), .{
9901 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
9902 });
9903 try testArgs(@Vector(16, i32), @Vector(16, f32), .{
9904 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
9905 1e3, 1e4, next(f32, next(f32, 0x0.8p32, 0.0), 0.0), next(f32, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
9906 });
9907 try testArgs(@Vector(32, i32), @Vector(32, f32), .{
9908 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
9909 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
9910 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
9911 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
9912 });
9913 try testArgs(@Vector(64, i32), @Vector(64, f32), .{
9914 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
9915 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
9916 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
9917 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
9918 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
9919 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
9920 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
9921 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
9922 });
9923 try testArgs(@Vector(128, i32), @Vector(128, f32), .{
9924 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
9925 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
9926 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
9927 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
9928 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
9929 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
9930 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
9931 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9932 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
9933 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
9934 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
9935 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
9936 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
9937 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
9938 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
9939 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
9940 });
9941
9942 try testArgs(@Vector(1, u32), @Vector(1, f32), .{
9943 -0.0,
9944 });
9945 try testArgs(@Vector(2, u32), @Vector(2, f32), .{
9946 0.0, 1e-5,
9947 });
9948 try testArgs(@Vector(4, u32), @Vector(4, f32), .{
9949 1e-4, 1e-3, 1e-2, 1e-1,
9950 });
9951 try testArgs(@Vector(8, u32), @Vector(8, f32), .{
9952 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p32, 0.0), 0.0), next(f32, 0x1p32, 0.0), 2e-5,
9953 });
9954 try testArgs(@Vector(16, u32), @Vector(16, f32), .{
9955 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
9956 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
9957 });
9958 try testArgs(@Vector(32, u32), @Vector(32, f32), .{
9959 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
9960 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
9961 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
9962 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
9963 });
9964 try testArgs(@Vector(64, u32), @Vector(64, f32), .{
9965 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
9966 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
9967 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
9968 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
9969 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
9970 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
9971 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
9972 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
9973 });
9974 try testArgs(@Vector(128, u32), @Vector(128, f32), .{
9975 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
9976 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
9977 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
9978 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
9979 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
9980 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
9981 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
9982 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
9983 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
9984 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
9985 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
9986 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
9987 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
9988 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
9989 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
9990 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
9991 });
9992
9993 try testArgs(@Vector(1, i64), @Vector(1, f32), .{
9994 -0x0.8p64,
9995 });
9996 try testArgs(@Vector(2, i64), @Vector(2, f32), .{
9997 next(f32, -0x0.8p64, -0.0), next(f32, next(f32, -0x0.8p64, -0.0), -0.0),
9998 });
9999 try testArgs(@Vector(4, i64), @Vector(4, f32), .{
10000 -1e4, -1e3, -1e2, -1e1,
10001 });
10002 try testArgs(@Vector(8, i64), @Vector(8, f32), .{
10003 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10004 });
10005 try testArgs(@Vector(16, i64), @Vector(16, f32), .{
10006 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10007 1e3, 1e4, next(f32, next(f32, 0x0.8p64, 0.0), 0.0), next(f32, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
10008 });
10009 try testArgs(@Vector(32, i64), @Vector(32, f32), .{
10010 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10011 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10012 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10013 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10014 });
10015 try testArgs(@Vector(64, i64), @Vector(64, f32), .{
10016 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10017 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10018 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10019 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10020 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10021 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10022 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10023 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10024 });
10025 try testArgs(@Vector(128, i64), @Vector(128, f32), .{
10026 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
10027 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
10028 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
10029 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
10030 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
10031 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
10032 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
10033 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10034 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
10035 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
10036 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
10037 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
10038 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
10039 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
10040 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
10041 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
10042 });
10043
10044 try testArgs(@Vector(1, u64), @Vector(1, f32), .{
10045 -0.0,
10046 });
10047 try testArgs(@Vector(2, u64), @Vector(2, f32), .{
10048 0.0, 1e-5,
10049 });
10050 try testArgs(@Vector(4, u64), @Vector(4, f32), .{
10051 1e-4, 1e-3, 1e-2, 1e-1,
10052 });
10053 try testArgs(@Vector(8, u64), @Vector(8, f32), .{
10054 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p64, 0.0), 0.0), next(f32, 0x1p64, 0.0), 2e-5,
10055 });
10056 try testArgs(@Vector(16, u64), @Vector(16, f32), .{
10057 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10058 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10059 });
10060 try testArgs(@Vector(32, u64), @Vector(32, f32), .{
10061 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10062 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10063 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10064 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10065 });
10066 try testArgs(@Vector(64, u64), @Vector(64, f32), .{
10067 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10068 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10069 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10070 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10071 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10072 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10073 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10074 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10075 });
10076 try testArgs(@Vector(128, u64), @Vector(128, f32), .{
10077 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
10078 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
10079 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
10080 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
10081 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
10082 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
10083 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10084 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
10085 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
10086 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
10087 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
10088 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
10089 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
10090 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
10091 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
10092 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
10093 });
10094
10095 try testArgs(@Vector(1, i128), @Vector(1, f32), .{
10096 -0x0.8p128,
10097 });
10098 try testArgs(@Vector(2, i128), @Vector(2, f32), .{
10099 next(f32, -0x0.8p128, -0.0), next(f32, next(f32, -0x0.8p128, -0.0), -0.0),
10100 });
10101 try testArgs(@Vector(4, i128), @Vector(4, f32), .{
10102 -1e4, -1e3, -1e2, -1e1,
10103 });
10104 try testArgs(@Vector(8, i128), @Vector(8, f32), .{
10105 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10106 });
10107 try testArgs(@Vector(16, i128), @Vector(16, f32), .{
10108 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10109 1e3, 1e4, next(f32, next(f32, 0x0.8p128, 0.0), 0.0), next(f32, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
10110 });
10111 try testArgs(@Vector(32, i128), @Vector(32, f32), .{
10112 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10113 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10114 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10115 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10116 });
10117 try testArgs(@Vector(64, i128), @Vector(64, f32), .{
10118 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10119 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10120 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10121 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10122 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10123 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10124 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10125 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10126 });
10127
10128 try testArgs(@Vector(1, u128), @Vector(1, f32), .{
10129 -0.0,
10130 });
10131 try testArgs(@Vector(2, u128), @Vector(2, f32), .{
10132 0.0, 1e-5,
10133 });
10134 try testArgs(@Vector(4, u128), @Vector(4, f32), .{
10135 1e-4, 1e-3, 1e-2, 1e-1,
10136 });
10137 try testArgs(@Vector(8, u128), @Vector(8, f32), .{
10138 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5,
10139 });
10140 try testArgs(@Vector(16, u128), @Vector(16, f32), .{
10141 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10142 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10143 });
10144 try testArgs(@Vector(32, u128), @Vector(32, f32), .{
10145 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10146 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10147 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10148 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10149 });
10150 try testArgs(@Vector(64, u128), @Vector(64, f32), .{
10151 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10152 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10153 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10154 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10155 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10156 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10157 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10158 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10159 });
10160
10161 try testArgs(@Vector(1, i256), @Vector(1, f32), .{
10162 -fmax(f32),
10163 });
10164 try testArgs(@Vector(2, i256), @Vector(2, f32), .{
10165 next(f32, -fmax(f32), -0.0), next(f32, next(f32, -fmax(f32), -0.0), -0.0),
10166 });
10167 try testArgs(@Vector(4, i256), @Vector(4, f32), .{
10168 -1e4, -1e3, -1e2, -1e1,
10169 });
10170 try testArgs(@Vector(8, i256), @Vector(8, f32), .{
10171 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10172 });
10173 try testArgs(@Vector(16, i256), @Vector(16, f32), .{
10174 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10175 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), -2e4, -2e3, -2e2, -2e1,
10176 });
10177 try testArgs(@Vector(32, i256), @Vector(32, f32), .{
10178 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10179 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10180 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10181 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10182 });
10183 try testArgs(@Vector(64, i256), @Vector(64, f32), .{
10184 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10185 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10186 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10187 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10188 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10189 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10190 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10191 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10192 });
10193
10194 try testArgs(@Vector(1, u256), @Vector(1, f32), .{
10195 -0.0,
10196 });
10197 try testArgs(@Vector(2, u256), @Vector(2, f32), .{
10198 0.0, 1e-5,
10199 });
10200 try testArgs(@Vector(4, u256), @Vector(4, f32), .{
10201 1e-4, 1e-3, 1e-2, 1e-1,
10202 });
10203 try testArgs(@Vector(8, u256), @Vector(8, f32), .{
10204 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5,
10205 });
10206 try testArgs(@Vector(16, u256), @Vector(16, f32), .{
10207 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10208 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10209 });
10210 try testArgs(@Vector(32, u256), @Vector(32, f32), .{
10211 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10212 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10213 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10214 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10215 });
10216 try testArgs(@Vector(64, u256), @Vector(64, f32), .{
10217 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10218 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10219 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10220 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10221 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10222 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10223 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10224 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10225 });
10226
10227 try testArgs(@Vector(1, i8), @Vector(1, f64), .{
10228 -0x0.8p8,
10229 });
10230 try testArgs(@Vector(2, i8), @Vector(2, f64), .{
10231 next(f64, -0x0.8p8, -0.0), next(f64, next(f64, -0x0.8p8, -0.0), -0.0),
10232 });
10233 try testArgs(@Vector(4, i8), @Vector(4, f64), .{
10234 -1e2, -1e1, -1e0, -1e-1,
10235 });
10236 try testArgs(@Vector(8, i8), @Vector(8, f64), .{
10237 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
10238 });
10239 try testArgs(@Vector(16, i8), @Vector(16, f64), .{
10240 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f64, next(f64, 0x0.8p8, 0.0), 0.0), next(f64, 0x0.8p8, 0.0),
10241 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
10242 });
10243 try testArgs(@Vector(32, i8), @Vector(32, f64), .{
10244 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
10245 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
10246 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
10247 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10248 });
10249 try testArgs(@Vector(64, i8), @Vector(64, f64), .{
10250 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
10251 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
10252 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
10253 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
10254 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
10255 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
10256 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
10257 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
10258 });
10259 try testArgs(@Vector(128, i8), @Vector(128, f64), .{
10260 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
10261 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
10262 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
10263 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
10264 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
10265 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10266 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
10267 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
10268 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10269 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
10270 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
10271 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
10272 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
10273 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
10274 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
10275 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
10276 });
10277
10278 try testArgs(@Vector(1, u8), @Vector(1, f64), .{
10279 -0.0,
10280 });
10281 try testArgs(@Vector(2, u8), @Vector(2, f64), .{
10282 0.0, 1e-5,
10283 });
10284 try testArgs(@Vector(4, u8), @Vector(4, f64), .{
10285 1e-4, 1e-3, 1e-2, 1e-1,
10286 });
10287 try testArgs(@Vector(8, u8), @Vector(8, f64), .{
10288 1e0, 1e1, 1e2, next(f64, next(f64, 0x1p8, 0.0), 0.0), next(f64, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
10289 });
10290 try testArgs(@Vector(16, u8), @Vector(16, f64), .{
10291 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
10292 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
10293 });
10294 try testArgs(@Vector(32, u8), @Vector(32, f64), .{
10295 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
10296 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
10297 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
10298 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
10299 });
10300 try testArgs(@Vector(64, u8), @Vector(64, f64), .{
10301 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
10302 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
10303 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10304 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10305 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
10306 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
10307 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
10308 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
10309 });
10310 try testArgs(@Vector(128, u8), @Vector(128, f64), .{
10311 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
10312 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10313 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
10314 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
10315 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
10316 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
10317 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
10318 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
10319 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
10320 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
10321 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
10322 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
10323 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
10324 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
10325 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
10326 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
10327 });
10328
10329 try testArgs(@Vector(1, i16), @Vector(1, f64), .{
10330 -0x0.8p16,
10331 });
10332 try testArgs(@Vector(2, i16), @Vector(2, f64), .{
10333 next(f64, -0x0.8p16, -0.0), next(f64, next(f64, -0x0.8p16, -0.0), -0.0),
10334 });
10335 try testArgs(@Vector(4, i16), @Vector(4, f64), .{
10336 -1e4, -1e3, -1e2, -1e1,
10337 });
10338 try testArgs(@Vector(8, i16), @Vector(8, f64), .{
10339 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10340 });
10341 try testArgs(@Vector(16, i16), @Vector(16, f64), .{
10342 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10343 1e3, 1e4, next(f64, next(f64, 0x0.8p16, 0.0), 0.0), next(f64, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
10344 });
10345 try testArgs(@Vector(32, i16), @Vector(32, f64), .{
10346 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10347 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10348 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10349 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10350 });
10351 try testArgs(@Vector(64, i16), @Vector(64, f64), .{
10352 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10353 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10354 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10355 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10356 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10357 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10358 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10359 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10360 });
10361 try testArgs(@Vector(128, i16), @Vector(128, f64), .{
10362 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
10363 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
10364 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
10365 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
10366 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
10367 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
10368 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
10369 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10370 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
10371 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
10372 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
10373 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
10374 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
10375 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
10376 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
10377 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
10378 });
10379
10380 try testArgs(@Vector(1, u16), @Vector(1, f64), .{
10381 -0.0,
10382 });
10383 try testArgs(@Vector(2, u16), @Vector(2, f64), .{
10384 0.0, 1e-5,
10385 });
10386 try testArgs(@Vector(4, u16), @Vector(4, f64), .{
10387 1e-4, 1e-3, 1e-2, 1e-1,
10388 });
10389 try testArgs(@Vector(8, u16), @Vector(8, f64), .{
10390 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p16, 0.0), 0.0), next(f64, 0x1p16, 0.0), 2e-5,
10391 });
10392 try testArgs(@Vector(16, u16), @Vector(16, f64), .{
10393 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10394 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10395 });
10396 try testArgs(@Vector(32, u16), @Vector(32, f64), .{
10397 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10398 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10399 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10400 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10401 });
10402 try testArgs(@Vector(64, u16), @Vector(64, f64), .{
10403 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10404 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10405 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10406 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10407 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10408 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10409 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10410 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10411 });
10412 try testArgs(@Vector(128, u16), @Vector(128, f64), .{
10413 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
10414 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
10415 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
10416 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
10417 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
10418 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
10419 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10420 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
10421 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
10422 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
10423 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
10424 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
10425 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
10426 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
10427 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
10428 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
10429 });
10430
10431 try testArgs(@Vector(1, i32), @Vector(1, f64), .{
10432 -0x0.8p32,
10433 });
10434 try testArgs(@Vector(2, i32), @Vector(2, f64), .{
10435 next(f64, -0x0.8p32, -0.0), next(f64, next(f64, -0x0.8p32, -0.0), -0.0),
10436 });
10437 try testArgs(@Vector(4, i32), @Vector(4, f64), .{
10438 -1e4, -1e3, -1e2, -1e1,
10439 });
10440 try testArgs(@Vector(8, i32), @Vector(8, f64), .{
10441 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10442 });
10443 try testArgs(@Vector(16, i32), @Vector(16, f64), .{
10444 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10445 1e3, 1e4, next(f64, next(f64, 0x0.8p32, 0.0), 0.0), next(f64, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
10446 });
10447 try testArgs(@Vector(32, i32), @Vector(32, f64), .{
10448 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10449 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10450 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10451 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10452 });
10453 try testArgs(@Vector(64, i32), @Vector(64, f64), .{
10454 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10455 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10456 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10457 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10458 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10459 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10460 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10461 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10462 });
10463 try testArgs(@Vector(128, i32), @Vector(128, f64), .{
10464 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
10465 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
10466 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
10467 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
10468 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
10469 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
10470 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
10471 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10472 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
10473 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
10474 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
10475 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
10476 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
10477 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
10478 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
10479 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
10480 });
10481
10482 try testArgs(@Vector(1, u32), @Vector(1, f64), .{
10483 -0.0,
10484 });
10485 try testArgs(@Vector(2, u32), @Vector(2, f64), .{
10486 0.0, 1e-5,
10487 });
10488 try testArgs(@Vector(4, u32), @Vector(4, f64), .{
10489 1e-4, 1e-3, 1e-2, 1e-1,
10490 });
10491 try testArgs(@Vector(8, u32), @Vector(8, f64), .{
10492 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p32, 0.0), 0.0), next(f64, 0x1p32, 0.0), 2e-5,
10493 });
10494 try testArgs(@Vector(16, u32), @Vector(16, f64), .{
10495 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10496 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10497 });
10498 try testArgs(@Vector(32, u32), @Vector(32, f64), .{
10499 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10500 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10501 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10502 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10503 });
10504 try testArgs(@Vector(64, u32), @Vector(64, f64), .{
10505 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10506 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10507 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10508 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10509 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10510 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10511 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10512 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10513 });
10514 try testArgs(@Vector(128, u32), @Vector(128, f64), .{
10515 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
10516 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
10517 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
10518 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
10519 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
10520 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
10521 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10522 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
10523 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
10524 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
10525 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
10526 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
10527 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
10528 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
10529 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
10530 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
10531 });
10532
10533 try testArgs(@Vector(1, i64), @Vector(1, f64), .{
10534 -0x0.8p64,
10535 });
10536 try testArgs(@Vector(2, i64), @Vector(2, f64), .{
10537 next(f64, -0x0.8p64, -0.0), next(f64, next(f64, -0x0.8p64, -0.0), -0.0),
10538 });
10539 try testArgs(@Vector(4, i64), @Vector(4, f64), .{
10540 -1e4, -1e3, -1e2, -1e1,
10541 });
10542 try testArgs(@Vector(8, i64), @Vector(8, f64), .{
10543 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10544 });
10545 try testArgs(@Vector(16, i64), @Vector(16, f64), .{
10546 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10547 1e3, 1e4, next(f64, next(f64, 0x0.8p64, 0.0), 0.0), next(f64, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
10548 });
10549 try testArgs(@Vector(32, i64), @Vector(32, f64), .{
10550 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10551 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10552 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10553 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10554 });
10555 try testArgs(@Vector(64, i64), @Vector(64, f64), .{
10556 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10557 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10558 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10559 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10560 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10561 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10562 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10563 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10564 });
10565 try testArgs(@Vector(128, i64), @Vector(128, f64), .{
10566 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
10567 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
10568 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
10569 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
10570 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
10571 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
10572 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
10573 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10574 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
10575 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
10576 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
10577 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
10578 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
10579 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
10580 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
10581 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
10582 });
10583
10584 try testArgs(@Vector(1, u64), @Vector(1, f64), .{
10585 -0.0,
10586 });
10587 try testArgs(@Vector(2, u64), @Vector(2, f64), .{
10588 0.0, 1e-5,
10589 });
10590 try testArgs(@Vector(4, u64), @Vector(4, f64), .{
10591 1e-4, 1e-3, 1e-2, 1e-1,
10592 });
10593 try testArgs(@Vector(8, u64), @Vector(8, f64), .{
10594 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p64, 0.0), 0.0), next(f64, 0x1p64, 0.0), 2e-5,
10595 });
10596 try testArgs(@Vector(16, u64), @Vector(16, f64), .{
10597 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10598 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10599 });
10600 try testArgs(@Vector(32, u64), @Vector(32, f64), .{
10601 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10602 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10603 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10604 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10605 });
10606 try testArgs(@Vector(64, u64), @Vector(64, f64), .{
10607 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10608 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10609 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10610 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10611 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10612 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10613 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10614 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10615 });
10616 try testArgs(@Vector(128, u64), @Vector(128, f64), .{
10617 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
10618 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
10619 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
10620 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
10621 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
10622 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
10623 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10624 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
10625 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
10626 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
10627 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
10628 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
10629 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
10630 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
10631 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
10632 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
10633 });
10634
10635 try testArgs(@Vector(1, i128), @Vector(1, f64), .{
10636 -0x0.8p128,
10637 });
10638 try testArgs(@Vector(2, i128), @Vector(2, f64), .{
10639 next(f64, -0x0.8p128, -0.0), next(f64, next(f64, -0x0.8p128, -0.0), -0.0),
10640 });
10641 try testArgs(@Vector(4, i128), @Vector(4, f64), .{
10642 -1e4, -1e3, -1e2, -1e1,
10643 });
10644 try testArgs(@Vector(8, i128), @Vector(8, f64), .{
10645 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10646 });
10647 try testArgs(@Vector(16, i128), @Vector(16, f64), .{
10648 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10649 1e3, 1e4, next(f64, next(f64, 0x0.8p128, 0.0), 0.0), next(f64, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
10650 });
10651 try testArgs(@Vector(32, i128), @Vector(32, f64), .{
10652 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10653 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10654 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10655 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10656 });
10657 try testArgs(@Vector(64, i128), @Vector(64, f64), .{
10658 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10659 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10660 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10661 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10662 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10663 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10664 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10665 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10666 });
10667
10668 try testArgs(@Vector(1, u128), @Vector(1, f64), .{
10669 -0.0,
10670 });
10671 try testArgs(@Vector(2, u128), @Vector(2, f64), .{
10672 0.0, 1e-5,
10673 });
10674 try testArgs(@Vector(4, u128), @Vector(4, f64), .{
10675 1e-4, 1e-3, 1e-2, 1e-1,
10676 });
10677 try testArgs(@Vector(8, u128), @Vector(8, f64), .{
10678 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p128, 0.0), 0.0), next(f64, 0x1p128, 0.0), 2e-5,
10679 });
10680 try testArgs(@Vector(16, u128), @Vector(16, f64), .{
10681 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10682 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10683 });
10684 try testArgs(@Vector(32, u128), @Vector(32, f64), .{
10685 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10686 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10687 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10688 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10689 });
10690 try testArgs(@Vector(64, u128), @Vector(64, f64), .{
10691 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10692 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10693 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10694 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10695 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10696 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10697 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10698 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10699 });
10700
10701 try testArgs(@Vector(1, i256), @Vector(1, f64), .{
10702 -0x0.8p256,
10703 });
10704 try testArgs(@Vector(2, i256), @Vector(2, f64), .{
10705 next(f64, -0x0.8p256, -0.0), next(f64, next(f64, -0x0.8p256, -0.0), -0.0),
10706 });
10707 try testArgs(@Vector(4, i256), @Vector(4, f64), .{
10708 -1e4, -1e3, -1e2, -1e1,
10709 });
10710 try testArgs(@Vector(8, i256), @Vector(8, f64), .{
10711 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10712 });
10713 try testArgs(@Vector(16, i256), @Vector(16, f64), .{
10714 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10715 1e3, 1e4, next(f64, next(f64, 0x0.8p256, 0.0), 0.0), next(f64, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
10716 });
10717 try testArgs(@Vector(32, i256), @Vector(32, f64), .{
10718 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10719 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10720 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10721 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10722 });
10723 try testArgs(@Vector(64, i256), @Vector(64, f64), .{
10724 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10725 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10726 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10727 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10728 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10729 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10730 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10731 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10732 });
10733
10734 try testArgs(@Vector(1, u256), @Vector(1, f64), .{
10735 -0.0,
10736 });
10737 try testArgs(@Vector(2, u256), @Vector(2, f64), .{
10738 0.0, 1e-5,
10739 });
10740 try testArgs(@Vector(4, u256), @Vector(4, f64), .{
10741 1e-4, 1e-3, 1e-2, 1e-1,
10742 });
10743 try testArgs(@Vector(8, u256), @Vector(8, f64), .{
10744 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p256, 0.0), 0.0), next(f64, 0x1p256, 0.0), 2e-5,
10745 });
10746 try testArgs(@Vector(16, u256), @Vector(16, f64), .{
10747 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10748 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10749 });
10750 try testArgs(@Vector(32, u256), @Vector(32, f64), .{
10751 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10752 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10753 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10754 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10755 });
10756 try testArgs(@Vector(64, u256), @Vector(64, f64), .{
10757 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10758 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10759 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10760 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10761 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10762 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10763 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10764 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10765 });
10766
10767 try testArgs(@Vector(1, i8), @Vector(1, f80), .{
10768 -0x0.8p8,
10769 });
10770 try testArgs(@Vector(2, i8), @Vector(2, f80), .{
10771 next(f80, -0x0.8p8, -0.0), next(f80, next(f80, -0x0.8p8, -0.0), -0.0),
10772 });
10773 try testArgs(@Vector(4, i8), @Vector(4, f80), .{
10774 -1e2, -1e1, -1e0, -1e-1,
10775 });
10776 try testArgs(@Vector(8, i8), @Vector(8, f80), .{
10777 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
10778 });
10779 try testArgs(@Vector(16, i8), @Vector(16, f80), .{
10780 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f80, next(f80, 0x0.8p8, 0.0), 0.0), next(f80, 0x0.8p8, 0.0),
10781 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
10782 });
10783 try testArgs(@Vector(32, i8), @Vector(32, f80), .{
10784 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
10785 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
10786 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
10787 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10788 });
10789 try testArgs(@Vector(64, i8), @Vector(64, f80), .{
10790 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
10791 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
10792 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
10793 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
10794 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
10795 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
10796 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
10797 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
10798 });
10799 try testArgs(@Vector(128, i8), @Vector(128, f80), .{
10800 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
10801 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
10802 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
10803 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
10804 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
10805 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10806 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
10807 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
10808 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10809 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
10810 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
10811 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
10812 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
10813 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
10814 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
10815 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
10816 });
10817
10818 try testArgs(@Vector(1, u8), @Vector(1, f80), .{
10819 -0.0,
10820 });
10821 try testArgs(@Vector(2, u8), @Vector(2, f80), .{
10822 0.0, 1e-5,
10823 });
10824 try testArgs(@Vector(4, u8), @Vector(4, f80), .{
10825 1e-4, 1e-3, 1e-2, 1e-1,
10826 });
10827 try testArgs(@Vector(8, u8), @Vector(8, f80), .{
10828 1e0, 1e1, 1e2, next(f80, next(f80, 0x1p8, 0.0), 0.0), next(f80, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
10829 });
10830 try testArgs(@Vector(16, u8), @Vector(16, f80), .{
10831 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
10832 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
10833 });
10834 try testArgs(@Vector(32, u8), @Vector(32, f80), .{
10835 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
10836 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
10837 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
10838 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
10839 });
10840 try testArgs(@Vector(64, u8), @Vector(64, f80), .{
10841 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
10842 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
10843 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10844 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10845 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
10846 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
10847 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
10848 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
10849 });
10850 try testArgs(@Vector(128, u8), @Vector(128, f80), .{
10851 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
10852 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10853 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
10854 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
10855 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
10856 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
10857 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
10858 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
10859 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
10860 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
10861 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
10862 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
10863 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
10864 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
10865 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
10866 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
10867 });
10868
10869 try testArgs(@Vector(1, i16), @Vector(1, f80), .{
10870 -0x0.8p16,
10871 });
10872 try testArgs(@Vector(2, i16), @Vector(2, f80), .{
10873 next(f80, -0x0.8p16, -0.0), next(f80, next(f80, -0x0.8p16, -0.0), -0.0),
10874 });
10875 try testArgs(@Vector(4, i16), @Vector(4, f80), .{
10876 -1e4, -1e3, -1e2, -1e1,
10877 });
10878 try testArgs(@Vector(8, i16), @Vector(8, f80), .{
10879 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10880 });
10881 try testArgs(@Vector(16, i16), @Vector(16, f80), .{
10882 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10883 1e3, 1e4, next(f80, next(f80, 0x0.8p16, 0.0), 0.0), next(f80, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
10884 });
10885 try testArgs(@Vector(32, i16), @Vector(32, f80), .{
10886 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10887 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10888 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10889 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10890 });
10891 try testArgs(@Vector(64, i16), @Vector(64, f80), .{
10892 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10893 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10894 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10895 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10896 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10897 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10898 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
10899 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
10900 });
10901 try testArgs(@Vector(128, i16), @Vector(128, f80), .{
10902 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
10903 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
10904 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
10905 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
10906 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
10907 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
10908 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
10909 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10910 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
10911 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
10912 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
10913 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
10914 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
10915 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
10916 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
10917 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
10918 });
10919
10920 try testArgs(@Vector(1, u16), @Vector(1, f80), .{
10921 -0.0,
10922 });
10923 try testArgs(@Vector(2, u16), @Vector(2, f80), .{
10924 0.0, 1e-5,
10925 });
10926 try testArgs(@Vector(4, u16), @Vector(4, f80), .{
10927 1e-4, 1e-3, 1e-2, 1e-1,
10928 });
10929 try testArgs(@Vector(8, u16), @Vector(8, f80), .{
10930 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p16, 0.0), 0.0), next(f80, 0x1p16, 0.0), 2e-5,
10931 });
10932 try testArgs(@Vector(16, u16), @Vector(16, f80), .{
10933 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
10934 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
10935 });
10936 try testArgs(@Vector(32, u16), @Vector(32, f80), .{
10937 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10938 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
10939 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
10940 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
10941 });
10942 try testArgs(@Vector(64, u16), @Vector(64, f80), .{
10943 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
10944 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
10945 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
10946 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
10947 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10948 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10949 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
10950 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
10951 });
10952 try testArgs(@Vector(128, u16), @Vector(128, f80), .{
10953 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
10954 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
10955 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
10956 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
10957 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
10958 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
10959 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10960 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
10961 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
10962 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
10963 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
10964 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
10965 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
10966 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
10967 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
10968 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
10969 });
10970
10971 try testArgs(@Vector(1, i32), @Vector(1, f80), .{
10972 -0x0.8p32,
10973 });
10974 try testArgs(@Vector(2, i32), @Vector(2, f80), .{
10975 next(f80, -0x0.8p32, -0.0), next(f80, next(f80, -0x0.8p32, -0.0), -0.0),
10976 });
10977 try testArgs(@Vector(4, i32), @Vector(4, f80), .{
10978 -1e4, -1e3, -1e2, -1e1,
10979 });
10980 try testArgs(@Vector(8, i32), @Vector(8, f80), .{
10981 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10982 });
10983 try testArgs(@Vector(16, i32), @Vector(16, f80), .{
10984 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10985 1e3, 1e4, next(f80, next(f80, 0x0.8p32, 0.0), 0.0), next(f80, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
10986 });
10987 try testArgs(@Vector(32, i32), @Vector(32, f80), .{
10988 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10989 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10990 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10991 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10992 });
10993 try testArgs(@Vector(64, i32), @Vector(64, f80), .{
10994 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10995 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10996 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10997 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10998 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10999 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11000 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11001 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11002 });
11003 try testArgs(@Vector(128, i32), @Vector(128, f80), .{
11004 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11005 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11006 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11007 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11008 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11009 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11010 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11011 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11012 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11013 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11014 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11015 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11016 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11017 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11018 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11019 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11020 });
11021
11022 try testArgs(@Vector(1, u32), @Vector(1, f80), .{
11023 -0.0,
11024 });
11025 try testArgs(@Vector(2, u32), @Vector(2, f80), .{
11026 0.0, 1e-5,
11027 });
11028 try testArgs(@Vector(4, u32), @Vector(4, f80), .{
11029 1e-4, 1e-3, 1e-2, 1e-1,
11030 });
11031 try testArgs(@Vector(8, u32), @Vector(8, f80), .{
11032 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p32, 0.0), 0.0), next(f80, 0x1p32, 0.0), 2e-5,
11033 });
11034 try testArgs(@Vector(16, u32), @Vector(16, f80), .{
11035 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11036 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11037 });
11038 try testArgs(@Vector(32, u32), @Vector(32, f80), .{
11039 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11040 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11041 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11042 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11043 });
11044 try testArgs(@Vector(64, u32), @Vector(64, f80), .{
11045 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11046 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11047 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11048 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11049 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11050 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11051 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11052 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11053 });
11054 try testArgs(@Vector(128, u32), @Vector(128, f80), .{
11055 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11056 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11057 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11058 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11059 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11060 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11061 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11062 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11063 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11064 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11065 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11066 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11067 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11068 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11069 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11070 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11071 });
11072
11073 try testArgs(@Vector(1, i64), @Vector(1, f80), .{
11074 -0x0.8p64,
11075 });
11076 try testArgs(@Vector(2, i64), @Vector(2, f80), .{
11077 next(f80, -0x0.8p64, -0.0), next(f80, next(f80, -0x0.8p64, -0.0), -0.0),
11078 });
11079 try testArgs(@Vector(4, i64), @Vector(4, f80), .{
11080 -1e4, -1e3, -1e2, -1e1,
11081 });
11082 try testArgs(@Vector(8, i64), @Vector(8, f80), .{
11083 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11084 });
11085 try testArgs(@Vector(16, i64), @Vector(16, f80), .{
11086 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11087 1e3, 1e4, next(f80, next(f80, 0x0.8p64, 0.0), 0.0), next(f80, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
11088 });
11089 try testArgs(@Vector(32, i64), @Vector(32, f80), .{
11090 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11091 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11092 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11093 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11094 });
11095 try testArgs(@Vector(64, i64), @Vector(64, f80), .{
11096 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11097 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11098 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11099 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11100 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11101 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11102 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11103 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11104 });
11105 try testArgs(@Vector(128, i64), @Vector(128, f80), .{
11106 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11107 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11108 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11109 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11110 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11111 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11112 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11113 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11114 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11115 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11116 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11117 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11118 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11119 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11120 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11121 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11122 });
11123
11124 try testArgs(@Vector(1, u64), @Vector(1, f80), .{
11125 -0.0,
11126 });
11127 try testArgs(@Vector(2, u64), @Vector(2, f80), .{
11128 0.0, 1e-5,
11129 });
11130 try testArgs(@Vector(4, u64), @Vector(4, f80), .{
11131 1e-4, 1e-3, 1e-2, 1e-1,
11132 });
11133 try testArgs(@Vector(8, u64), @Vector(8, f80), .{
11134 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p64, 0.0), 0.0), next(f80, 0x1p64, 0.0), 2e-5,
11135 });
11136 try testArgs(@Vector(16, u64), @Vector(16, f80), .{
11137 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11138 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11139 });
11140 try testArgs(@Vector(32, u64), @Vector(32, f80), .{
11141 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11142 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11143 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11144 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11145 });
11146 try testArgs(@Vector(64, u64), @Vector(64, f80), .{
11147 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11148 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11149 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11150 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11151 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11152 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11153 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11154 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11155 });
11156 try testArgs(@Vector(128, u64), @Vector(128, f80), .{
11157 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11158 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11159 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11160 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11161 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11162 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11163 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11164 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11165 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11166 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11167 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11168 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11169 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11170 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11171 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11172 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11173 });
11174
11175 try testArgs(@Vector(1, i128), @Vector(1, f80), .{
11176 -0x0.8p128,
11177 });
11178 try testArgs(@Vector(2, i128), @Vector(2, f80), .{
11179 next(f80, -0x0.8p128, -0.0), next(f80, next(f80, -0x0.8p128, -0.0), -0.0),
11180 });
11181 try testArgs(@Vector(4, i128), @Vector(4, f80), .{
11182 -1e4, -1e3, -1e2, -1e1,
11183 });
11184 try testArgs(@Vector(8, i128), @Vector(8, f80), .{
11185 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11186 });
11187 try testArgs(@Vector(16, i128), @Vector(16, f80), .{
11188 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11189 1e3, 1e4, next(f80, next(f80, 0x0.8p128, 0.0), 0.0), next(f80, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
11190 });
11191 try testArgs(@Vector(32, i128), @Vector(32, f80), .{
11192 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11193 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11194 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11195 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11196 });
11197 try testArgs(@Vector(64, i128), @Vector(64, f80), .{
11198 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11199 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11200 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11201 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11202 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11203 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11204 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11205 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11206 });
11207
11208 try testArgs(@Vector(1, u128), @Vector(1, f80), .{
11209 -0.0,
11210 });
11211 try testArgs(@Vector(2, u128), @Vector(2, f80), .{
11212 0.0, 1e-5,
11213 });
11214 try testArgs(@Vector(4, u128), @Vector(4, f80), .{
11215 1e-4, 1e-3, 1e-2, 1e-1,
11216 });
11217 try testArgs(@Vector(8, u128), @Vector(8, f80), .{
11218 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p128, 0.0), 0.0), next(f80, 0x1p128, 0.0), 2e-5,
11219 });
11220 try testArgs(@Vector(16, u128), @Vector(16, f80), .{
11221 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11222 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11223 });
11224 try testArgs(@Vector(32, u128), @Vector(32, f80), .{
11225 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11226 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11227 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11228 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11229 });
11230 try testArgs(@Vector(64, u128), @Vector(64, f80), .{
11231 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11232 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11233 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11234 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11235 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11236 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11237 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11238 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11239 });
11240
11241 try testArgs(@Vector(1, i256), @Vector(1, f80), .{
11242 -0x0.8p256,
11243 });
11244 try testArgs(@Vector(2, i256), @Vector(2, f80), .{
11245 next(f80, -0x0.8p256, -0.0), next(f80, next(f80, -0x0.8p256, -0.0), -0.0),
11246 });
11247 try testArgs(@Vector(4, i256), @Vector(4, f80), .{
11248 -1e4, -1e3, -1e2, -1e1,
11249 });
11250 try testArgs(@Vector(8, i256), @Vector(8, f80), .{
11251 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11252 });
11253 try testArgs(@Vector(16, i256), @Vector(16, f80), .{
11254 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11255 1e3, 1e4, next(f80, next(f80, 0x0.8p256, 0.0), 0.0), next(f80, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
11256 });
11257 try testArgs(@Vector(32, i256), @Vector(32, f80), .{
11258 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11259 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11260 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11261 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11262 });
11263 try testArgs(@Vector(64, i256), @Vector(64, f80), .{
11264 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11265 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11266 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11267 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11268 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11269 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11270 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11271 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11272 });
11273
11274 try testArgs(@Vector(1, u256), @Vector(1, f80), .{
11275 -0.0,
11276 });
11277 try testArgs(@Vector(2, u256), @Vector(2, f80), .{
11278 0.0, 1e-5,
11279 });
11280 try testArgs(@Vector(4, u256), @Vector(4, f80), .{
11281 1e-4, 1e-3, 1e-2, 1e-1,
11282 });
11283 try testArgs(@Vector(8, u256), @Vector(8, f80), .{
11284 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p256, 0.0), 0.0), next(f80, 0x1p256, 0.0), 2e-5,
11285 });
11286 try testArgs(@Vector(16, u256), @Vector(16, f80), .{
11287 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11288 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11289 });
11290 try testArgs(@Vector(32, u256), @Vector(32, f80), .{
11291 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11292 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11293 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11294 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11295 });
11296 try testArgs(@Vector(64, u256), @Vector(64, f80), .{
11297 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11298 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11299 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11300 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11301 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11302 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11303 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11304 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11305 });
11306
11307 try testArgs(@Vector(1, i8), @Vector(1, f128), .{
11308 -0x0.8p8,
11309 });
11310 try testArgs(@Vector(2, i8), @Vector(2, f128), .{
11311 next(f128, -0x0.8p8, -0.0), next(f128, next(f128, -0x0.8p8, -0.0), -0.0),
11312 });
11313 try testArgs(@Vector(4, i8), @Vector(4, f128), .{
11314 -1e2, -1e1, -1e0, -1e-1,
11315 });
11316 try testArgs(@Vector(8, i8), @Vector(8, f128), .{
11317 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
11318 });
11319 try testArgs(@Vector(16, i8), @Vector(16, f128), .{
11320 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f128, next(f128, 0x0.8p8, 0.0), 0.0), next(f128, 0x0.8p8, 0.0),
11321 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
11322 });
11323 try testArgs(@Vector(32, i8), @Vector(32, f128), .{
11324 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
11325 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
11326 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
11327 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11328 });
11329 try testArgs(@Vector(64, i8), @Vector(64, f128), .{
11330 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
11331 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
11332 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
11333 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
11334 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
11335 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
11336 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
11337 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
11338 });
11339 try testArgs(@Vector(128, i8), @Vector(128, f128), .{
11340 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
11341 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
11342 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
11343 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
11344 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
11345 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11346 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
11347 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
11348 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
11349 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
11350 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
11351 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
11352 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
11353 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
11354 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
11355 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
11356 });
11357
11358 try testArgs(@Vector(1, u8), @Vector(1, f128), .{
11359 -0.0,
11360 });
11361 try testArgs(@Vector(2, u8), @Vector(2, f128), .{
11362 0.0, 1e-5,
11363 });
11364 try testArgs(@Vector(4, u8), @Vector(4, f128), .{
11365 1e-4, 1e-3, 1e-2, 1e-1,
11366 });
11367 try testArgs(@Vector(8, u8), @Vector(8, f128), .{
11368 1e0, 1e1, 1e2, next(f128, next(f128, 0x1p8, 0.0), 0.0), next(f128, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
11369 });
11370 try testArgs(@Vector(16, u8), @Vector(16, f128), .{
11371 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
11372 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
11373 });
11374 try testArgs(@Vector(32, u8), @Vector(32, f128), .{
11375 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
11376 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
11377 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
11378 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
11379 });
11380 try testArgs(@Vector(64, u8), @Vector(64, f128), .{
11381 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
11382 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
11383 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11384 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
11385 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
11386 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
11387 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
11388 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
11389 });
11390 try testArgs(@Vector(128, u8), @Vector(128, f128), .{
11391 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
11392 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11393 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
11394 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
11395 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
11396 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
11397 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
11398 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
11399 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
11400 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
11401 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
11402 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
11403 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
11404 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
11405 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
11406 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
11407 });
11408
11409 try testArgs(@Vector(1, i16), @Vector(1, f128), .{
11410 -0x0.8p16,
11411 });
11412 try testArgs(@Vector(2, i16), @Vector(2, f128), .{
11413 next(f128, -0x0.8p16, -0.0), next(f128, next(f128, -0x0.8p16, -0.0), -0.0),
11414 });
11415 try testArgs(@Vector(4, i16), @Vector(4, f128), .{
11416 -1e4, -1e3, -1e2, -1e1,
11417 });
11418 try testArgs(@Vector(8, i16), @Vector(8, f128), .{
11419 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11420 });
11421 try testArgs(@Vector(16, i16), @Vector(16, f128), .{
11422 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11423 1e3, 1e4, next(f128, next(f128, 0x0.8p16, 0.0), 0.0), next(f128, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
11424 });
11425 try testArgs(@Vector(32, i16), @Vector(32, f128), .{
11426 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11427 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11428 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11429 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11430 });
11431 try testArgs(@Vector(64, i16), @Vector(64, f128), .{
11432 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11433 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11434 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11435 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11436 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11437 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11438 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11439 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11440 });
11441 try testArgs(@Vector(128, i16), @Vector(128, f128), .{
11442 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11443 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11444 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11445 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11446 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11447 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11448 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11449 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11450 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11451 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11452 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11453 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11454 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11455 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11456 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11457 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11458 });
11459
11460 try testArgs(@Vector(1, u16), @Vector(1, f128), .{
11461 -0.0,
11462 });
11463 try testArgs(@Vector(2, u16), @Vector(2, f128), .{
11464 0.0, 1e-5,
11465 });
11466 try testArgs(@Vector(4, u16), @Vector(4, f128), .{
11467 1e-4, 1e-3, 1e-2, 1e-1,
11468 });
11469 try testArgs(@Vector(8, u16), @Vector(8, f128), .{
11470 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p16, 0.0), 0.0), next(f128, 0x1p16, 0.0), 2e-5,
11471 });
11472 try testArgs(@Vector(16, u16), @Vector(16, f128), .{
11473 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11474 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11475 });
11476 try testArgs(@Vector(32, u16), @Vector(32, f128), .{
11477 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11478 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11479 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11480 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11481 });
11482 try testArgs(@Vector(64, u16), @Vector(64, f128), .{
11483 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11484 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11485 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11486 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11487 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11488 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11489 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11490 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11491 });
11492 try testArgs(@Vector(128, u16), @Vector(128, f128), .{
11493 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11494 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11495 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11496 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11497 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11498 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11499 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11500 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11501 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11502 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11503 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11504 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11505 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11506 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11507 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11508 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11509 });
11510
11511 try testArgs(@Vector(1, i32), @Vector(1, f128), .{
11512 -0x0.8p32,
11513 });
11514 try testArgs(@Vector(2, i32), @Vector(2, f128), .{
11515 next(f128, -0x0.8p32, -0.0), next(f128, next(f128, -0x0.8p32, -0.0), -0.0),
11516 });
11517 try testArgs(@Vector(4, i32), @Vector(4, f128), .{
11518 -1e4, -1e3, -1e2, -1e1,
11519 });
11520 try testArgs(@Vector(8, i32), @Vector(8, f128), .{
11521 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11522 });
11523 try testArgs(@Vector(16, i32), @Vector(16, f128), .{
11524 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11525 1e3, 1e4, next(f128, next(f128, 0x0.8p32, 0.0), 0.0), next(f128, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
11526 });
11527 try testArgs(@Vector(32, i32), @Vector(32, f128), .{
11528 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11529 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11530 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11531 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11532 });
11533 try testArgs(@Vector(64, i32), @Vector(64, f128), .{
11534 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11535 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11536 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11537 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11538 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11539 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11540 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11541 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11542 });
11543 try testArgs(@Vector(128, i32), @Vector(128, f128), .{
11544 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11545 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11546 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11547 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11548 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11549 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11550 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11551 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11552 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11553 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11554 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11555 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11556 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11557 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11558 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11559 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11560 });
11561
11562 try testArgs(@Vector(1, u32), @Vector(1, f128), .{
11563 -0.0,
11564 });
11565 try testArgs(@Vector(2, u32), @Vector(2, f128), .{
11566 0.0, 1e-5,
11567 });
11568 try testArgs(@Vector(4, u32), @Vector(4, f128), .{
11569 1e-4, 1e-3, 1e-2, 1e-1,
11570 });
11571 try testArgs(@Vector(8, u32), @Vector(8, f128), .{
11572 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p32, 0.0), 0.0), next(f128, 0x1p32, 0.0), 2e-5,
11573 });
11574 try testArgs(@Vector(16, u32), @Vector(16, f128), .{
11575 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11576 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11577 });
11578 try testArgs(@Vector(32, u32), @Vector(32, f128), .{
11579 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11580 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11581 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11582 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11583 });
11584 try testArgs(@Vector(64, u32), @Vector(64, f128), .{
11585 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11586 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11587 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11588 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11589 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11590 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11591 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11592 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11593 });
11594 try testArgs(@Vector(128, u32), @Vector(128, f128), .{
11595 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11596 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11597 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11598 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11599 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11600 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11601 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11602 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11603 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11604 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11605 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11606 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11607 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11608 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11609 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11610 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11611 });
11612
11613 try testArgs(@Vector(1, i64), @Vector(1, f128), .{
11614 -0x0.8p64,
11615 });
11616 try testArgs(@Vector(2, i64), @Vector(2, f128), .{
11617 next(f128, -0x0.8p64, -0.0), next(f128, next(f128, -0x0.8p64, -0.0), -0.0),
11618 });
11619 try testArgs(@Vector(4, i64), @Vector(4, f128), .{
11620 -1e4, -1e3, -1e2, -1e1,
11621 });
11622 try testArgs(@Vector(8, i64), @Vector(8, f128), .{
11623 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11624 });
11625 try testArgs(@Vector(16, i64), @Vector(16, f128), .{
11626 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11627 1e3, 1e4, next(f128, next(f128, 0x0.8p64, 0.0), 0.0), next(f128, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
11628 });
11629 try testArgs(@Vector(32, i64), @Vector(32, f128), .{
11630 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11631 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11632 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11633 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11634 });
11635 try testArgs(@Vector(64, i64), @Vector(64, f128), .{
11636 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11637 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11638 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11639 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11640 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11641 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11642 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11643 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11644 });
11645 try testArgs(@Vector(128, i64), @Vector(128, f128), .{
11646 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11647 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11648 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11649 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11650 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11651 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11652 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11653 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11654 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11655 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11656 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11657 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11658 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11659 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11660 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11661 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11662 });
11663
11664 try testArgs(@Vector(1, u64), @Vector(1, f128), .{
11665 -0.0,
11666 });
11667 try testArgs(@Vector(2, u64), @Vector(2, f128), .{
11668 0.0, 1e-5,
11669 });
11670 try testArgs(@Vector(4, u64), @Vector(4, f128), .{
11671 1e-4, 1e-3, 1e-2, 1e-1,
11672 });
11673 try testArgs(@Vector(8, u64), @Vector(8, f128), .{
11674 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p64, 0.0), 0.0), next(f128, 0x1p64, 0.0), 2e-5,
11675 });
11676 try testArgs(@Vector(16, u64), @Vector(16, f128), .{
11677 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11678 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11679 });
11680 try testArgs(@Vector(32, u64), @Vector(32, f128), .{
11681 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11682 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11683 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11684 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11685 });
11686 try testArgs(@Vector(64, u64), @Vector(64, f128), .{
11687 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11688 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11689 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11690 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11691 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11692 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11693 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11694 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11695 });
11696 try testArgs(@Vector(128, u64), @Vector(128, f128), .{
11697 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11698 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11699 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11700 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11701 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11702 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11703 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11704 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11705 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11706 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11707 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11708 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11709 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11710 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11711 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11712 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11713 });
11714
11715 try testArgs(@Vector(1, i128), @Vector(1, f128), .{
11716 -0x0.8p128,
11717 });
11718 try testArgs(@Vector(2, i128), @Vector(2, f128), .{
11719 next(f128, -0x0.8p128, -0.0), next(f128, next(f128, -0x0.8p128, -0.0), -0.0),
11720 });
11721 try testArgs(@Vector(4, i128), @Vector(4, f128), .{
11722 -1e4, -1e3, -1e2, -1e1,
11723 });
11724 try testArgs(@Vector(8, i128), @Vector(8, f128), .{
11725 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11726 });
11727 try testArgs(@Vector(16, i128), @Vector(16, f128), .{
11728 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11729 1e3, 1e4, next(f128, next(f128, 0x0.8p128, 0.0), 0.0), next(f128, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
11730 });
11731 try testArgs(@Vector(32, i128), @Vector(32, f128), .{
11732 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11733 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11734 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11735 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11736 });
11737 try testArgs(@Vector(64, i128), @Vector(64, f128), .{
11738 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11739 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11740 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11741 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11742 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11743 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11744 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11745 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11746 });
11747
11748 try testArgs(@Vector(1, u128), @Vector(1, f128), .{
11749 -0.0,
11750 });
11751 try testArgs(@Vector(2, u128), @Vector(2, f128), .{
11752 0.0, 1e-5,
11753 });
11754 try testArgs(@Vector(4, u128), @Vector(4, f128), .{
11755 1e-4, 1e-3, 1e-2, 1e-1,
11756 });
11757 try testArgs(@Vector(8, u128), @Vector(8, f128), .{
11758 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p128, 0.0), 0.0), next(f128, 0x1p128, 0.0), 2e-5,
11759 });
11760 try testArgs(@Vector(16, u128), @Vector(16, f128), .{
11761 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11762 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11763 });
11764 try testArgs(@Vector(32, u128), @Vector(32, f128), .{
11765 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11766 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11767 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11768 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11769 });
11770 try testArgs(@Vector(64, u128), @Vector(64, f128), .{
11771 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11772 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11773 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11774 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11775 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11776 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11777 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11778 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11779 });
11780
11781 try testArgs(@Vector(1, i256), @Vector(1, f128), .{
11782 -0x0.8p256,
11783 });
11784 try testArgs(@Vector(2, i256), @Vector(2, f128), .{
11785 next(f128, -0x0.8p256, -0.0), next(f128, next(f128, -0x0.8p256, -0.0), -0.0),
11786 });
11787 try testArgs(@Vector(4, i256), @Vector(4, f128), .{
11788 -1e4, -1e3, -1e2, -1e1,
11789 });
11790 try testArgs(@Vector(8, i256), @Vector(8, f128), .{
11791 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11792 });
11793 try testArgs(@Vector(16, i256), @Vector(16, f128), .{
11794 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11795 1e3, 1e4, next(f128, next(f128, 0x0.8p256, 0.0), 0.0), next(f128, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
11796 });
11797 try testArgs(@Vector(32, i256), @Vector(32, f128), .{
11798 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11799 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11800 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11801 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11802 });
11803 try testArgs(@Vector(64, i256), @Vector(64, f128), .{
11804 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11805 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11806 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11807 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11808 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11809 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11810 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11811 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11812 });
11813
11814 try testArgs(@Vector(1, u256), @Vector(1, f128), .{
11815 -0.0,
11816 });
11817 try testArgs(@Vector(2, u256), @Vector(2, f128), .{
11818 0.0, 1e-5,
11819 });
11820 try testArgs(@Vector(4, u256), @Vector(4, f128), .{
11821 1e-4, 1e-3, 1e-2, 1e-1,
11822 });
11823 try testArgs(@Vector(8, u256), @Vector(8, f128), .{
11824 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p256, 0.0), 0.0), next(f128, 0x1p256, 0.0), 2e-5,
11825 });
11826 try testArgs(@Vector(16, u256), @Vector(16, f128), .{
11827 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11828 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11829 });
11830 try testArgs(@Vector(32, u256), @Vector(32, f128), .{
11831 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11832 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11833 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11834 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11835 });
11836 try testArgs(@Vector(64, u256), @Vector(64, f128), .{
11837 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11838 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11839 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11840 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11841 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11842 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11843 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11844 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11845 });
11846 }
11847 fn testFloatVectorsFromIntVectors() !void {
11848 @setEvalBranchQuota(2_700);
11849
11850 try testArgs(@Vector(1, f16), @Vector(1, i8), .{
11851 imin(i8),
11852 });
11853 try testArgs(@Vector(2, f16), @Vector(2, i8), .{
11854 imin(i8) + 1, -1e2,
11855 });
11856 try testArgs(@Vector(4, f16), @Vector(4, i8), .{
11857 -1e1, -1e0, 0, 1e0,
11858 });
11859 try testArgs(@Vector(8, f16), @Vector(8, i8), .{
11860 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
11861 });
11862 try testArgs(@Vector(16, f16), @Vector(16, i8), .{
11863 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
11864 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
11865 });
11866 try testArgs(@Vector(32, f16), @Vector(32, i8), .{
11867 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
11868 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
11869 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
11870 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
11871 });
11872 try testArgs(@Vector(64, f16), @Vector(64, i8), .{
11873 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
11874 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
11875 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
11876 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
11877 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
11878 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
11879 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
11880 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
11881 });
11882 try testArgs(@Vector(128, f16), @Vector(128, i8), .{
11883 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
11884 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
11885 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
11886 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
11887 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
11888 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
11889 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
11890 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
11891 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
11892 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
11893 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
11894 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
11895 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
11896 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
11897 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
11898 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
11899 });
11900
11901 try testArgs(@Vector(1, f16), @Vector(1, u8), .{
11902 0,
11903 });
11904 try testArgs(@Vector(2, f16), @Vector(2, u8), .{
11905 1e0, 1e1,
11906 });
11907 try testArgs(@Vector(4, f16), @Vector(4, u8), .{
11908 1e2, imax(u8) - 1, imax(u8), 2e0,
11909 });
11910 try testArgs(@Vector(8, f16), @Vector(8, u8), .{
11911 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
11912 });
11913 try testArgs(@Vector(16, f16), @Vector(16, u8), .{
11914 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
11915 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
11916 });
11917 try testArgs(@Vector(32, f16), @Vector(32, u8), .{
11918 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
11919 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
11920 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
11921 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
11922 });
11923 try testArgs(@Vector(64, f16), @Vector(64, u8), .{
11924 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
11925 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
11926 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
11927 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
11928 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
11929 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
11930 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
11931 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
11932 });
11933 try testArgs(@Vector(128, f16), @Vector(128, u8), .{
11934 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
11935 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
11936 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
11937 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
11938 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
11939 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
11940 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
11941 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
11942 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
11943 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
11944 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
11945 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
11946 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
11947 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
11948 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
11949 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
11950 });
11951
11952 try testArgs(@Vector(1, f16), @Vector(1, i16), .{
11953 imin(i16),
11954 });
11955 try testArgs(@Vector(2, f16), @Vector(2, i16), .{
11956 imin(i16) + 1, -1e4,
11957 });
11958 try testArgs(@Vector(4, f16), @Vector(4, i16), .{
11959 -1e3, -1e2, -1e1, -1e0,
11960 });
11961 try testArgs(@Vector(8, f16), @Vector(8, i16), .{
11962 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
11963 });
11964 try testArgs(@Vector(16, f16), @Vector(16, i16), .{
11965 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
11966 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
11967 });
11968 try testArgs(@Vector(32, f16), @Vector(32, i16), .{
11969 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
11970 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
11971 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
11972 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
11973 });
11974 try testArgs(@Vector(64, f16), @Vector(64, i16), .{
11975 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
11976 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
11977 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
11978 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
11979 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
11980 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
11981 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
11982 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
11983 });
11984 try testArgs(@Vector(128, f16), @Vector(128, i16), .{
11985 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
11986 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
11987 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
11988 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
11989 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
11990 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
11991 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
11992 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
11993 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
11994 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
11995 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
11996 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
11997 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
11998 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
11999 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
12000 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
12001 });
12002
12003 try testArgs(@Vector(1, f16), @Vector(1, u16), .{
12004 0,
12005 });
12006 try testArgs(@Vector(2, f16), @Vector(2, u16), .{
12007 1e0, 1e1,
12008 });
12009 try testArgs(@Vector(4, f16), @Vector(4, u16), .{
12010 1e2, 1e3, 1e4, imax(u16) - 1,
12011 });
12012 try testArgs(@Vector(8, f16), @Vector(8, u16), .{
12013 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
12014 });
12015 try testArgs(@Vector(16, f16), @Vector(16, u16), .{
12016 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
12017 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
12018 });
12019 try testArgs(@Vector(32, f16), @Vector(32, u16), .{
12020 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
12021 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
12022 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
12023 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
12024 });
12025 try testArgs(@Vector(64, f16), @Vector(64, u16), .{
12026 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
12027 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
12028 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
12029 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
12030 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
12031 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
12032 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
12033 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
12034 });
12035 try testArgs(@Vector(128, f16), @Vector(128, u16), .{
12036 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
12037 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
12038 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
12039 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
12040 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
12041 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
12042 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
12043 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
12044 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
12045 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
12046 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
12047 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
12048 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
12049 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
12050 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
12051 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
12052 });
12053
12054 try testArgs(@Vector(1, f16), @Vector(1, i32), .{
12055 imin(i32),
12056 });
12057 try testArgs(@Vector(2, f16), @Vector(2, i32), .{
12058 imin(i32) + 1, -1e9,
12059 });
12060 try testArgs(@Vector(4, f16), @Vector(4, i32), .{
12061 -1e8, -1e7, -1e6, -1e5,
12062 });
12063 try testArgs(@Vector(8, f16), @Vector(8, i32), .{
12064 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
12065 });
12066 try testArgs(@Vector(16, f16), @Vector(16, i32), .{
12067 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
12068 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
12069 });
12070 try testArgs(@Vector(32, f16), @Vector(32, i32), .{
12071 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
12072 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
12073 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
12074 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
12075 });
12076 try testArgs(@Vector(64, f16), @Vector(64, i32), .{
12077 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
12078 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
12079 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
12080 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
12081 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
12082 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
12083 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
12084 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
12085 });
12086 try testArgs(@Vector(128, f16), @Vector(128, i32), .{
12087 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
12088 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
12089 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
12090 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
12091 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
12092 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
12093 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
12094 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
12095 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
12096 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
12097 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
12098 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
12099 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
12100 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
12101 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
12102 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
12103 });
12104
12105 try testArgs(@Vector(1, f16), @Vector(1, u32), .{
12106 0,
12107 });
12108 try testArgs(@Vector(2, f16), @Vector(2, u32), .{
12109 1e0, 1e1,
12110 });
12111 try testArgs(@Vector(4, f16), @Vector(4, u32), .{
12112 1e2, 1e3, 1e4, imax(u32) - 1,
12113 });
12114 try testArgs(@Vector(8, f16), @Vector(8, u32), .{
12115 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
12116 });
12117 try testArgs(@Vector(16, f16), @Vector(16, u32), .{
12118 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
12119 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
12120 });
12121 try testArgs(@Vector(32, f16), @Vector(32, u32), .{
12122 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
12123 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
12124 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
12125 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
12126 });
12127 try testArgs(@Vector(64, f16), @Vector(64, u32), .{
12128 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
12129 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
12130 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
12131 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
12132 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
12133 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
12134 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
12135 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
12136 });
12137 try testArgs(@Vector(128, f16), @Vector(128, u32), .{
12138 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
12139 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
12140 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
12141 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
12142 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
12143 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
12144 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
12145 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
12146 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
12147 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
12148 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
12149 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
12150 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
12151 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
12152 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
12153 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
12154 });
12155
12156 try testArgs(@Vector(1, f16), @Vector(1, i64), .{
12157 imin(i64),
12158 });
12159 try testArgs(@Vector(2, f16), @Vector(2, i64), .{
12160 imin(i64) + 1, -1e18,
12161 });
12162 try testArgs(@Vector(4, f16), @Vector(4, i64), .{
12163 -1e17, -1e16, -1e15, -1e14,
12164 });
12165 try testArgs(@Vector(8, f16), @Vector(8, i64), .{
12166 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
12167 });
12168 try testArgs(@Vector(16, f16), @Vector(16, i64), .{
12169 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
12170 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
12171 });
12172 try testArgs(@Vector(32, f16), @Vector(32, i64), .{
12173 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
12174 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
12175 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
12176 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
12177 });
12178 try testArgs(@Vector(64, f16), @Vector(64, i64), .{
12179 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
12180 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
12181 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
12182 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
12183 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
12184 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
12185 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
12186 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
12187 });
12188 try testArgs(@Vector(128, f16), @Vector(128, i64), .{
12189 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
12190 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
12191 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
12192 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
12193 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
12194 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
12195 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
12196 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
12197 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
12198 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
12199 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
12200 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
12201 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
12202 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
12203 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
12204 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
12205 });
12206
12207 try testArgs(@Vector(1, f16), @Vector(1, u64), .{
12208 0,
12209 });
12210 try testArgs(@Vector(2, f16), @Vector(2, u64), .{
12211 1e0, 1e1,
12212 });
12213 try testArgs(@Vector(4, f16), @Vector(4, u64), .{
12214 1e2, 1e3, 1e4, 1e5,
12215 });
12216 try testArgs(@Vector(8, f16), @Vector(8, u64), .{
12217 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
12218 });
12219 try testArgs(@Vector(16, f16), @Vector(16, u64), .{
12220 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
12221 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
12222 });
12223 try testArgs(@Vector(32, f16), @Vector(32, u64), .{
12224 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
12225 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
12226 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
12227 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
12228 });
12229 try testArgs(@Vector(64, f16), @Vector(64, u64), .{
12230 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
12231 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
12232 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
12233 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
12234 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
12235 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
12236 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
12237 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
12238 });
12239 try testArgs(@Vector(128, f16), @Vector(128, u64), .{
12240 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
12241 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
12242 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
12243 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
12244 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
12245 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
12246 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
12247 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
12248 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
12249 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
12250 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
12251 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
12252 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
12253 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
12254 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
12255 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
12256 });
12257
12258 try testArgs(@Vector(1, f16), @Vector(1, i128), .{
12259 imin(i128),
12260 });
12261 try testArgs(@Vector(2, f16), @Vector(2, i128), .{
12262 imin(i128) + 1, -1e38,
12263 });
12264 try testArgs(@Vector(4, f16), @Vector(4, i128), .{
12265 -1e37, -1e36, -1e35, -1e34,
12266 });
12267 try testArgs(@Vector(8, f16), @Vector(8, i128), .{
12268 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
12269 });
12270 try testArgs(@Vector(16, f16), @Vector(16, i128), .{
12271 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
12272 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
12273 });
12274 try testArgs(@Vector(32, f16), @Vector(32, i128), .{
12275 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
12276 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
12277 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
12278 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
12279 });
12280 try testArgs(@Vector(64, f16), @Vector(64, i128), .{
12281 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
12282 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
12283 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
12284 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
12285 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
12286 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
12287 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
12288 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
12289 });
12290 try testArgs(@Vector(128, f16), @Vector(128, i128), .{
12291 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
12292 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
12293 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
12294 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
12295 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
12296 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
12297 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
12298 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
12299 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
12300 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
12301 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
12302 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
12303 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
12304 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
12305 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
12306 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
12307 });
12308
12309 try testArgs(@Vector(1, f16), @Vector(1, u128), .{
12310 0,
12311 });
12312 try testArgs(@Vector(2, f16), @Vector(2, u128), .{
12313 1e0, 1e1,
12314 });
12315 try testArgs(@Vector(4, f16), @Vector(4, u128), .{
12316 1e2, 1e3, 1e4, 1e5,
12317 });
12318 try testArgs(@Vector(8, f16), @Vector(8, u128), .{
12319 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
12320 });
12321 try testArgs(@Vector(16, f16), @Vector(16, u128), .{
12322 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
12323 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
12324 });
12325 try testArgs(@Vector(32, f16), @Vector(32, u128), .{
12326 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
12327 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
12328 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
12329 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
12330 });
12331 try testArgs(@Vector(64, f16), @Vector(64, u128), .{
12332 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
12333 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
12334 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
12335 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
12336 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
12337 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
12338 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
12339 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
12340 });
12341 try testArgs(@Vector(128, f16), @Vector(128, u128), .{
12342 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
12343 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
12344 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
12345 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
12346 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
12347 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
12348 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
12349 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
12350 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
12351 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
12352 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
12353 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
12354 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
12355 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
12356 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
12357 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
12358 });
12359
12360 try testArgs(@Vector(1, f16), @Vector(1, i256), .{
12361 imin(i256),
12362 });
12363 try testArgs(@Vector(2, f16), @Vector(2, i256), .{
12364 imin(i256) + 1, -1e76,
12365 });
12366 try testArgs(@Vector(4, f16), @Vector(4, i256), .{
12367 -1e75, -1e74, -1e73, -1e72,
12368 });
12369 try testArgs(@Vector(8, f16), @Vector(8, i256), .{
12370 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
12371 });
12372 try testArgs(@Vector(16, f16), @Vector(16, i256), .{
12373 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
12374 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
12375 });
12376 try testArgs(@Vector(32, f16), @Vector(32, i256), .{
12377 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
12378 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
12379 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
12380 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
12381 });
12382 try testArgs(@Vector(64, f16), @Vector(64, i256), .{
12383 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
12384 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
12385 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
12386 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
12387 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
12388 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
12389 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
12390 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
12391 });
12392 try testArgs(@Vector(128, f16), @Vector(128, i256), .{
12393 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
12394 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
12395 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
12396 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
12397 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
12398 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
12399 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
12400 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
12401 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
12402 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
12403 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
12404 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
12405 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
12406 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
12407 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
12408 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
12409 });
12410
12411 try testArgs(@Vector(1, f16), @Vector(1, u256), .{
12412 0,
12413 });
12414 try testArgs(@Vector(2, f16), @Vector(2, u256), .{
12415 1e0, 1e1,
12416 });
12417 try testArgs(@Vector(4, f16), @Vector(4, u256), .{
12418 1e2, 1e3, 1e4, 1e5,
12419 });
12420 try testArgs(@Vector(8, f16), @Vector(8, u256), .{
12421 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
12422 });
12423 try testArgs(@Vector(16, f16), @Vector(16, u256), .{
12424 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
12425 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
12426 });
12427 try testArgs(@Vector(32, f16), @Vector(32, u256), .{
12428 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
12429 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
12430 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
12431 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
12432 });
12433 try testArgs(@Vector(64, f16), @Vector(64, u256), .{
12434 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
12435 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
12436 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
12437 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
12438 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
12439 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
12440 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
12441 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
12442 });
12443 try testArgs(@Vector(128, f16), @Vector(128, u256), .{
12444 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
12445 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
12446 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
12447 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
12448 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
12449 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
12450 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
12451 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
12452 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
12453 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
12454 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
12455 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
12456 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
12457 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
12458 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
12459 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
12460 });
12461
12462 try testArgs(@Vector(1, f32), @Vector(1, i8), .{
12463 imin(i8),
12464 });
12465 try testArgs(@Vector(2, f32), @Vector(2, i8), .{
12466 imin(i8) + 1, -1e2,
12467 });
12468 try testArgs(@Vector(4, f32), @Vector(4, i8), .{
12469 -1e1, -1e0, 0, 1e0,
12470 });
12471 try testArgs(@Vector(8, f32), @Vector(8, i8), .{
12472 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
12473 });
12474 try testArgs(@Vector(16, f32), @Vector(16, i8), .{
12475 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
12476 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
12477 });
12478 try testArgs(@Vector(32, f32), @Vector(32, i8), .{
12479 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
12480 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
12481 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
12482 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
12483 });
12484 try testArgs(@Vector(64, f32), @Vector(64, i8), .{
12485 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
12486 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
12487 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
12488 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
12489 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
12490 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
12491 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
12492 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
12493 });
12494 try testArgs(@Vector(128, f32), @Vector(128, i8), .{
12495 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
12496 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
12497 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
12498 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
12499 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
12500 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
12501 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
12502 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
12503 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
12504 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
12505 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
12506 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
12507 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
12508 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
12509 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
12510 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
12511 });
12512
12513 try testArgs(@Vector(1, f32), @Vector(1, u8), .{
12514 0,
12515 });
12516 try testArgs(@Vector(2, f32), @Vector(2, u8), .{
12517 1e0, 1e1,
12518 });
12519 try testArgs(@Vector(4, f32), @Vector(4, u8), .{
12520 1e2, imax(u8) - 1, imax(u8), 2e0,
12521 });
12522 try testArgs(@Vector(8, f32), @Vector(8, u8), .{
12523 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
12524 });
12525 try testArgs(@Vector(16, f32), @Vector(16, u8), .{
12526 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
12527 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
12528 });
12529 try testArgs(@Vector(32, f32), @Vector(32, u8), .{
12530 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
12531 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
12532 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
12533 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
12534 });
12535 try testArgs(@Vector(64, f32), @Vector(64, u8), .{
12536 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
12537 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
12538 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
12539 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
12540 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
12541 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
12542 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
12543 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
12544 });
12545 try testArgs(@Vector(128, f32), @Vector(128, u8), .{
12546 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
12547 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
12548 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
12549 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
12550 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
12551 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
12552 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
12553 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
12554 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
12555 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
12556 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
12557 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
12558 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
12559 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
12560 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
12561 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
12562 });
12563
12564 try testArgs(@Vector(1, f32), @Vector(1, i16), .{
12565 imin(i16),
12566 });
12567 try testArgs(@Vector(2, f32), @Vector(2, i16), .{
12568 imin(i16) + 1, -1e4,
12569 });
12570 try testArgs(@Vector(4, f32), @Vector(4, i16), .{
12571 -1e3, -1e2, -1e1, -1e0,
12572 });
12573 try testArgs(@Vector(8, f32), @Vector(8, i16), .{
12574 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
12575 });
12576 try testArgs(@Vector(16, f32), @Vector(16, i16), .{
12577 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
12578 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
12579 });
12580 try testArgs(@Vector(32, f32), @Vector(32, i16), .{
12581 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
12582 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
12583 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
12584 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
12585 });
12586 try testArgs(@Vector(64, f32), @Vector(64, i16), .{
12587 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
12588 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
12589 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
12590 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
12591 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
12592 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
12593 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
12594 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
12595 });
12596 try testArgs(@Vector(128, f32), @Vector(128, i16), .{
12597 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
12598 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
12599 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
12600 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
12601 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
12602 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
12603 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
12604 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
12605 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
12606 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
12607 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
12608 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
12609 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
12610 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
12611 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
12612 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
12613 });
12614
12615 try testArgs(@Vector(1, f32), @Vector(1, u16), .{
12616 0,
12617 });
12618 try testArgs(@Vector(2, f32), @Vector(2, u16), .{
12619 1e0, 1e1,
12620 });
12621 try testArgs(@Vector(4, f32), @Vector(4, u16), .{
12622 1e2, 1e3, 1e4, imax(u16) - 1,
12623 });
12624 try testArgs(@Vector(8, f32), @Vector(8, u16), .{
12625 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
12626 });
12627 try testArgs(@Vector(16, f32), @Vector(16, u16), .{
12628 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
12629 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
12630 });
12631 try testArgs(@Vector(32, f32), @Vector(32, u16), .{
12632 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
12633 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
12634 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
12635 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
12636 });
12637 try testArgs(@Vector(64, f32), @Vector(64, u16), .{
12638 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
12639 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
12640 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
12641 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
12642 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
12643 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
12644 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
12645 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
12646 });
12647 try testArgs(@Vector(128, f32), @Vector(128, u16), .{
12648 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
12649 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
12650 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
12651 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
12652 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
12653 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
12654 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
12655 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
12656 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
12657 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
12658 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
12659 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
12660 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
12661 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
12662 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
12663 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
12664 });
12665
12666 try testArgs(@Vector(1, f32), @Vector(1, i32), .{
12667 imin(i32),
12668 });
12669 try testArgs(@Vector(2, f32), @Vector(2, i32), .{
12670 imin(i32) + 1, -1e9,
12671 });
12672 try testArgs(@Vector(4, f32), @Vector(4, i32), .{
12673 -1e8, -1e7, -1e6, -1e5,
12674 });
12675 try testArgs(@Vector(8, f32), @Vector(8, i32), .{
12676 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
12677 });
12678 try testArgs(@Vector(16, f32), @Vector(16, i32), .{
12679 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
12680 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
12681 });
12682 try testArgs(@Vector(32, f32), @Vector(32, i32), .{
12683 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
12684 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
12685 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
12686 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
12687 });
12688 try testArgs(@Vector(64, f32), @Vector(64, i32), .{
12689 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
12690 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
12691 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
12692 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
12693 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
12694 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
12695 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
12696 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
12697 });
12698 try testArgs(@Vector(128, f32), @Vector(128, i32), .{
12699 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
12700 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
12701 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
12702 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
12703 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
12704 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
12705 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
12706 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
12707 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
12708 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
12709 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
12710 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
12711 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
12712 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
12713 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
12714 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
12715 });
12716
12717 try testArgs(@Vector(1, f32), @Vector(1, u32), .{
12718 0,
12719 });
12720 try testArgs(@Vector(2, f32), @Vector(2, u32), .{
12721 1e0, 1e1,
12722 });
12723 try testArgs(@Vector(4, f32), @Vector(4, u32), .{
12724 1e2, 1e3, 1e4, imax(u32) - 1,
12725 });
12726 try testArgs(@Vector(8, f32), @Vector(8, u32), .{
12727 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
12728 });
12729 try testArgs(@Vector(16, f32), @Vector(16, u32), .{
12730 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
12731 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
12732 });
12733 try testArgs(@Vector(32, f32), @Vector(32, u32), .{
12734 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
12735 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
12736 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
12737 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
12738 });
12739 try testArgs(@Vector(64, f32), @Vector(64, u32), .{
12740 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
12741 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
12742 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
12743 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
12744 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
12745 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
12746 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
12747 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
12748 });
12749 try testArgs(@Vector(128, f32), @Vector(128, u32), .{
12750 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
12751 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
12752 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
12753 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
12754 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
12755 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
12756 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
12757 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
12758 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
12759 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
12760 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
12761 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
12762 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
12763 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
12764 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
12765 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
12766 });
12767
12768 try testArgs(@Vector(1, f32), @Vector(1, i64), .{
12769 imin(i64),
12770 });
12771 try testArgs(@Vector(2, f32), @Vector(2, i64), .{
12772 imin(i64) + 1, -1e18,
12773 });
12774 try testArgs(@Vector(4, f32), @Vector(4, i64), .{
12775 -1e17, -1e16, -1e15, -1e14,
12776 });
12777 try testArgs(@Vector(8, f32), @Vector(8, i64), .{
12778 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
12779 });
12780 try testArgs(@Vector(16, f32), @Vector(16, i64), .{
12781 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
12782 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
12783 });
12784 try testArgs(@Vector(32, f32), @Vector(32, i64), .{
12785 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
12786 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
12787 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
12788 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
12789 });
12790 try testArgs(@Vector(64, f32), @Vector(64, i64), .{
12791 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
12792 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
12793 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
12794 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
12795 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
12796 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
12797 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
12798 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
12799 });
12800 try testArgs(@Vector(128, f32), @Vector(128, i64), .{
12801 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
12802 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
12803 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
12804 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
12805 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
12806 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
12807 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
12808 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
12809 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
12810 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
12811 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
12812 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
12813 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
12814 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
12815 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
12816 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
12817 });
12818
12819 try testArgs(@Vector(1, f32), @Vector(1, u64), .{
12820 0,
12821 });
12822 try testArgs(@Vector(2, f32), @Vector(2, u64), .{
12823 1e0, 1e1,
12824 });
12825 try testArgs(@Vector(4, f32), @Vector(4, u64), .{
12826 1e2, 1e3, 1e4, 1e5,
12827 });
12828 try testArgs(@Vector(8, f32), @Vector(8, u64), .{
12829 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
12830 });
12831 try testArgs(@Vector(16, f32), @Vector(16, u64), .{
12832 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
12833 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
12834 });
12835 try testArgs(@Vector(32, f32), @Vector(32, u64), .{
12836 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
12837 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
12838 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
12839 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
12840 });
12841 try testArgs(@Vector(64, f32), @Vector(64, u64), .{
12842 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
12843 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
12844 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
12845 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
12846 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
12847 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
12848 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
12849 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
12850 });
12851 try testArgs(@Vector(128, f32), @Vector(128, u64), .{
12852 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
12853 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
12854 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
12855 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
12856 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
12857 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
12858 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
12859 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
12860 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
12861 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
12862 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
12863 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
12864 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
12865 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
12866 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
12867 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
12868 });
12869
12870 try testArgs(@Vector(1, f32), @Vector(1, i128), .{
12871 imin(i128),
12872 });
12873 try testArgs(@Vector(2, f32), @Vector(2, i128), .{
12874 imin(i128) + 1, -1e38,
12875 });
12876 try testArgs(@Vector(4, f32), @Vector(4, i128), .{
12877 -1e37, -1e36, -1e35, -1e34,
12878 });
12879 try testArgs(@Vector(8, f32), @Vector(8, i128), .{
12880 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
12881 });
12882 try testArgs(@Vector(16, f32), @Vector(16, i128), .{
12883 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
12884 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
12885 });
12886 try testArgs(@Vector(32, f32), @Vector(32, i128), .{
12887 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
12888 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
12889 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
12890 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
12891 });
12892 try testArgs(@Vector(64, f32), @Vector(64, i128), .{
12893 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
12894 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
12895 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
12896 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
12897 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
12898 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
12899 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
12900 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
12901 });
12902 try testArgs(@Vector(128, f32), @Vector(128, i128), .{
12903 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
12904 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
12905 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
12906 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
12907 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
12908 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
12909 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
12910 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
12911 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
12912 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
12913 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
12914 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
12915 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
12916 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
12917 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
12918 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
12919 });
12920
12921 try testArgs(@Vector(1, f32), @Vector(1, u128), .{
12922 0,
12923 });
12924 try testArgs(@Vector(2, f32), @Vector(2, u128), .{
12925 1e0, 1e1,
12926 });
12927 try testArgs(@Vector(4, f32), @Vector(4, u128), .{
12928 1e2, 1e3, 1e4, 1e5,
12929 });
12930 try testArgs(@Vector(8, f32), @Vector(8, u128), .{
12931 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
12932 });
12933 try testArgs(@Vector(16, f32), @Vector(16, u128), .{
12934 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
12935 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
12936 });
12937 try testArgs(@Vector(32, f32), @Vector(32, u128), .{
12938 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
12939 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
12940 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
12941 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
12942 });
12943 try testArgs(@Vector(64, f32), @Vector(64, u128), .{
12944 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
12945 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
12946 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
12947 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
12948 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
12949 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
12950 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
12951 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
12952 });
12953 try testArgs(@Vector(128, f32), @Vector(128, u128), .{
12954 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
12955 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
12956 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
12957 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
12958 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
12959 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
12960 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
12961 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
12962 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
12963 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
12964 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
12965 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
12966 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
12967 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
12968 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
12969 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
12970 });
12971
12972 try testArgs(@Vector(1, f32), @Vector(1, i256), .{
12973 imin(i256),
12974 });
12975 try testArgs(@Vector(2, f32), @Vector(2, i256), .{
12976 imin(i256) + 1, -1e76,
12977 });
12978 try testArgs(@Vector(4, f32), @Vector(4, i256), .{
12979 -1e75, -1e74, -1e73, -1e72,
12980 });
12981 try testArgs(@Vector(8, f32), @Vector(8, i256), .{
12982 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
12983 });
12984 try testArgs(@Vector(16, f32), @Vector(16, i256), .{
12985 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
12986 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
12987 });
12988 try testArgs(@Vector(32, f32), @Vector(32, i256), .{
12989 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
12990 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
12991 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
12992 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
12993 });
12994 try testArgs(@Vector(64, f32), @Vector(64, i256), .{
12995 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
12996 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
12997 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
12998 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
12999 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
13000 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
13001 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
13002 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
13003 });
13004 try testArgs(@Vector(128, f32), @Vector(128, i256), .{
13005 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
13006 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
13007 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
13008 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
13009 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
13010 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
13011 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
13012 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
13013 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
13014 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
13015 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
13016 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
13017 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
13018 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
13019 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
13020 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
13021 });
13022
13023 try testArgs(@Vector(1, f32), @Vector(1, u256), .{
13024 0,
13025 });
13026 try testArgs(@Vector(2, f32), @Vector(2, u256), .{
13027 1e0, 1e1,
13028 });
13029 try testArgs(@Vector(4, f32), @Vector(4, u256), .{
13030 1e2, 1e3, 1e4, 1e5,
13031 });
13032 try testArgs(@Vector(8, f32), @Vector(8, u256), .{
13033 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13034 });
13035 try testArgs(@Vector(16, f32), @Vector(16, u256), .{
13036 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
13037 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
13038 });
13039 try testArgs(@Vector(32, f32), @Vector(32, u256), .{
13040 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
13041 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
13042 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
13043 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
13044 });
13045 try testArgs(@Vector(64, f32), @Vector(64, u256), .{
13046 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
13047 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
13048 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
13049 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
13050 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
13051 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
13052 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
13053 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
13054 });
13055 try testArgs(@Vector(128, f32), @Vector(128, u256), .{
13056 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
13057 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
13058 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
13059 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
13060 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
13061 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
13062 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
13063 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
13064 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
13065 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
13066 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
13067 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
13068 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
13069 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
13070 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
13071 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
13072 });
13073
13074 try testArgs(@Vector(1, f64), @Vector(1, i8), .{
13075 imin(i8),
13076 });
13077 try testArgs(@Vector(2, f64), @Vector(2, i8), .{
13078 imin(i8) + 1, -1e2,
13079 });
13080 try testArgs(@Vector(4, f64), @Vector(4, i8), .{
13081 -1e1, -1e0, 0, 1e0,
13082 });
13083 try testArgs(@Vector(8, f64), @Vector(8, i8), .{
13084 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
13085 });
13086 try testArgs(@Vector(16, f64), @Vector(16, i8), .{
13087 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
13088 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
13089 });
13090 try testArgs(@Vector(32, f64), @Vector(32, i8), .{
13091 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
13092 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
13093 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
13094 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
13095 });
13096 try testArgs(@Vector(64, f64), @Vector(64, i8), .{
13097 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
13098 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
13099 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
13100 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
13101 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
13102 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
13103 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
13104 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
13105 });
13106 try testArgs(@Vector(128, f64), @Vector(128, i8), .{
13107 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
13108 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
13109 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
13110 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
13111 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
13112 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
13113 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
13114 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
13115 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
13116 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
13117 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
13118 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
13119 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
13120 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
13121 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
13122 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
13123 });
13124
13125 try testArgs(@Vector(1, f64), @Vector(1, u8), .{
13126 0,
13127 });
13128 try testArgs(@Vector(2, f64), @Vector(2, u8), .{
13129 1e0, 1e1,
13130 });
13131 try testArgs(@Vector(4, f64), @Vector(4, u8), .{
13132 1e2, imax(u8) - 1, imax(u8), 2e0,
13133 });
13134 try testArgs(@Vector(8, f64), @Vector(8, u8), .{
13135 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
13136 });
13137 try testArgs(@Vector(16, f64), @Vector(16, u8), .{
13138 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
13139 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
13140 });
13141 try testArgs(@Vector(32, f64), @Vector(32, u8), .{
13142 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
13143 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
13144 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
13145 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
13146 });
13147 try testArgs(@Vector(64, f64), @Vector(64, u8), .{
13148 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
13149 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
13150 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
13151 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
13152 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
13153 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
13154 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
13155 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
13156 });
13157 try testArgs(@Vector(128, f64), @Vector(128, u8), .{
13158 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
13159 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
13160 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
13161 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
13162 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
13163 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
13164 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
13165 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
13166 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
13167 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
13168 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
13169 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
13170 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
13171 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
13172 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
13173 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
13174 });
13175
13176 try testArgs(@Vector(1, f64), @Vector(1, i16), .{
13177 imin(i16),
13178 });
13179 try testArgs(@Vector(2, f64), @Vector(2, i16), .{
13180 imin(i16) + 1, -1e4,
13181 });
13182 try testArgs(@Vector(4, f64), @Vector(4, i16), .{
13183 -1e3, -1e2, -1e1, -1e0,
13184 });
13185 try testArgs(@Vector(8, f64), @Vector(8, i16), .{
13186 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
13187 });
13188 try testArgs(@Vector(16, f64), @Vector(16, i16), .{
13189 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
13190 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
13191 });
13192 try testArgs(@Vector(32, f64), @Vector(32, i16), .{
13193 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13194 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
13195 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
13196 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
13197 });
13198 try testArgs(@Vector(64, f64), @Vector(64, i16), .{
13199 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
13200 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
13201 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
13202 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
13203 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
13204 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
13205 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
13206 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
13207 });
13208 try testArgs(@Vector(128, f64), @Vector(128, i16), .{
13209 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
13210 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
13211 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
13212 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
13213 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
13214 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
13215 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
13216 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
13217 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
13218 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
13219 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
13220 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
13221 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
13222 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
13223 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
13224 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
13225 });
13226
13227 try testArgs(@Vector(1, f64), @Vector(1, u16), .{
13228 0,
13229 });
13230 try testArgs(@Vector(2, f64), @Vector(2, u16), .{
13231 1e0, 1e1,
13232 });
13233 try testArgs(@Vector(4, f64), @Vector(4, u16), .{
13234 1e2, 1e3, 1e4, imax(u16) - 1,
13235 });
13236 try testArgs(@Vector(8, f64), @Vector(8, u16), .{
13237 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
13238 });
13239 try testArgs(@Vector(16, f64), @Vector(16, u16), .{
13240 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
13241 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
13242 });
13243 try testArgs(@Vector(32, f64), @Vector(32, u16), .{
13244 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
13245 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
13246 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
13247 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
13248 });
13249 try testArgs(@Vector(64, f64), @Vector(64, u16), .{
13250 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
13251 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
13252 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
13253 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
13254 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
13255 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
13256 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
13257 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
13258 });
13259 try testArgs(@Vector(128, f64), @Vector(128, u16), .{
13260 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
13261 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
13262 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
13263 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
13264 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
13265 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
13266 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
13267 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
13268 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
13269 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
13270 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
13271 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
13272 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
13273 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
13274 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
13275 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
13276 });
13277
13278 try testArgs(@Vector(1, f64), @Vector(1, i32), .{
13279 imin(i32),
13280 });
13281 try testArgs(@Vector(2, f64), @Vector(2, i32), .{
13282 imin(i32) + 1, -1e9,
13283 });
13284 try testArgs(@Vector(4, f64), @Vector(4, i32), .{
13285 -1e8, -1e7, -1e6, -1e5,
13286 });
13287 try testArgs(@Vector(8, f64), @Vector(8, i32), .{
13288 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
13289 });
13290 try testArgs(@Vector(16, f64), @Vector(16, i32), .{
13291 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
13292 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
13293 });
13294 try testArgs(@Vector(32, f64), @Vector(32, i32), .{
13295 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
13296 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
13297 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
13298 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13299 });
13300 try testArgs(@Vector(64, f64), @Vector(64, i32), .{
13301 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
13302 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
13303 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
13304 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
13305 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
13306 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
13307 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
13308 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
13309 });
13310 try testArgs(@Vector(128, f64), @Vector(128, i32), .{
13311 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
13312 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
13313 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
13314 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
13315 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
13316 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
13317 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
13318 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
13319 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
13320 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
13321 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
13322 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
13323 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
13324 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
13325 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
13326 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
13327 });
13328
13329 try testArgs(@Vector(1, f64), @Vector(1, u32), .{
13330 0,
13331 });
13332 try testArgs(@Vector(2, f64), @Vector(2, u32), .{
13333 1e0, 1e1,
13334 });
13335 try testArgs(@Vector(4, f64), @Vector(4, u32), .{
13336 1e2, 1e3, 1e4, imax(u32) - 1,
13337 });
13338 try testArgs(@Vector(8, f64), @Vector(8, u32), .{
13339 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
13340 });
13341 try testArgs(@Vector(16, f64), @Vector(16, u32), .{
13342 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
13343 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
13344 });
13345 try testArgs(@Vector(32, f64), @Vector(32, u32), .{
13346 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
13347 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
13348 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
13349 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
13350 });
13351 try testArgs(@Vector(64, f64), @Vector(64, u32), .{
13352 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
13353 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
13354 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
13355 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
13356 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
13357 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
13358 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
13359 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
13360 });
13361 try testArgs(@Vector(128, f64), @Vector(128, u32), .{
13362 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
13363 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
13364 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
13365 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
13366 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
13367 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
13368 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
13369 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
13370 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
13371 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
13372 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
13373 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
13374 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
13375 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
13376 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
13377 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
13378 });
13379
13380 try testArgs(@Vector(1, f64), @Vector(1, i64), .{
13381 imin(i64),
13382 });
13383 try testArgs(@Vector(2, f64), @Vector(2, i64), .{
13384 imin(i64) + 1, -1e18,
13385 });
13386 try testArgs(@Vector(4, f64), @Vector(4, i64), .{
13387 -1e17, -1e16, -1e15, -1e14,
13388 });
13389 try testArgs(@Vector(8, f64), @Vector(8, i64), .{
13390 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
13391 });
13392 try testArgs(@Vector(16, f64), @Vector(16, i64), .{
13393 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
13394 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
13395 });
13396 try testArgs(@Vector(32, f64), @Vector(32, i64), .{
13397 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
13398 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
13399 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
13400 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
13401 });
13402 try testArgs(@Vector(64, f64), @Vector(64, i64), .{
13403 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
13404 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
13405 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
13406 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
13407 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
13408 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
13409 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
13410 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
13411 });
13412 try testArgs(@Vector(128, f64), @Vector(128, i64), .{
13413 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
13414 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
13415 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
13416 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
13417 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
13418 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
13419 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
13420 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
13421 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
13422 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
13423 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
13424 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
13425 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
13426 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
13427 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
13428 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
13429 });
13430
13431 try testArgs(@Vector(1, f64), @Vector(1, u64), .{
13432 0,
13433 });
13434 try testArgs(@Vector(2, f64), @Vector(2, u64), .{
13435 1e0, 1e1,
13436 });
13437 try testArgs(@Vector(4, f64), @Vector(4, u64), .{
13438 1e2, 1e3, 1e4, 1e5,
13439 });
13440 try testArgs(@Vector(8, f64), @Vector(8, u64), .{
13441 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13442 });
13443 try testArgs(@Vector(16, f64), @Vector(16, u64), .{
13444 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
13445 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
13446 });
13447 try testArgs(@Vector(32, f64), @Vector(32, u64), .{
13448 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
13449 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
13450 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
13451 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
13452 });
13453 try testArgs(@Vector(64, f64), @Vector(64, u64), .{
13454 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
13455 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
13456 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
13457 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
13458 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
13459 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
13460 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
13461 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
13462 });
13463 try testArgs(@Vector(128, f64), @Vector(128, u64), .{
13464 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
13465 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
13466 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
13467 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
13468 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
13469 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
13470 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
13471 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
13472 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
13473 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
13474 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
13475 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
13476 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
13477 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
13478 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
13479 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
13480 });
13481
13482 try testArgs(@Vector(1, f64), @Vector(1, i128), .{
13483 imin(i128),
13484 });
13485 try testArgs(@Vector(2, f64), @Vector(2, i128), .{
13486 imin(i128) + 1, -1e38,
13487 });
13488 try testArgs(@Vector(4, f64), @Vector(4, i128), .{
13489 -1e37, -1e36, -1e35, -1e34,
13490 });
13491 try testArgs(@Vector(8, f64), @Vector(8, i128), .{
13492 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
13493 });
13494 try testArgs(@Vector(16, f64), @Vector(16, i128), .{
13495 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
13496 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
13497 });
13498 try testArgs(@Vector(32, f64), @Vector(32, i128), .{
13499 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
13500 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
13501 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
13502 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
13503 });
13504 try testArgs(@Vector(64, f64), @Vector(64, i128), .{
13505 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
13506 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
13507 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
13508 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
13509 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
13510 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
13511 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
13512 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
13513 });
13514 try testArgs(@Vector(128, f64), @Vector(128, i128), .{
13515 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
13516 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
13517 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
13518 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
13519 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
13520 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
13521 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
13522 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
13523 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
13524 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
13525 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
13526 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
13527 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
13528 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
13529 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
13530 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
13531 });
13532
13533 try testArgs(@Vector(1, f64), @Vector(1, u128), .{
13534 0,
13535 });
13536 try testArgs(@Vector(2, f64), @Vector(2, u128), .{
13537 1e0, 1e1,
13538 });
13539 try testArgs(@Vector(4, f64), @Vector(4, u128), .{
13540 1e2, 1e3, 1e4, 1e5,
13541 });
13542 try testArgs(@Vector(8, f64), @Vector(8, u128), .{
13543 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13544 });
13545 try testArgs(@Vector(16, f64), @Vector(16, u128), .{
13546 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
13547 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
13548 });
13549 try testArgs(@Vector(32, f64), @Vector(32, u128), .{
13550 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
13551 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
13552 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
13553 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
13554 });
13555 try testArgs(@Vector(64, f64), @Vector(64, u128), .{
13556 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
13557 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
13558 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
13559 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
13560 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
13561 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
13562 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
13563 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
13564 });
13565 try testArgs(@Vector(128, f64), @Vector(128, u128), .{
13566 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
13567 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
13568 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
13569 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
13570 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
13571 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
13572 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
13573 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
13574 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
13575 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
13576 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
13577 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
13578 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
13579 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
13580 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
13581 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
13582 });
13583
13584 try testArgs(@Vector(1, f64), @Vector(1, i256), .{
13585 imin(i256),
13586 });
13587 try testArgs(@Vector(2, f64), @Vector(2, i256), .{
13588 imin(i256) + 1, -1e76,
13589 });
13590 try testArgs(@Vector(4, f64), @Vector(4, i256), .{
13591 -1e75, -1e74, -1e73, -1e72,
13592 });
13593 try testArgs(@Vector(8, f64), @Vector(8, i256), .{
13594 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
13595 });
13596 try testArgs(@Vector(16, f64), @Vector(16, i256), .{
13597 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
13598 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
13599 });
13600 try testArgs(@Vector(32, f64), @Vector(32, i256), .{
13601 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
13602 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
13603 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
13604 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
13605 });
13606 try testArgs(@Vector(64, f64), @Vector(64, i256), .{
13607 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
13608 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
13609 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
13610 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
13611 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
13612 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
13613 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
13614 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
13615 });
13616 try testArgs(@Vector(128, f64), @Vector(128, i256), .{
13617 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
13618 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
13619 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
13620 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
13621 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
13622 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
13623 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
13624 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
13625 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
13626 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
13627 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
13628 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
13629 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
13630 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
13631 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
13632 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
13633 });
13634
13635 try testArgs(@Vector(1, f64), @Vector(1, u256), .{
13636 0,
13637 });
13638 try testArgs(@Vector(2, f64), @Vector(2, u256), .{
13639 1e0, 1e1,
13640 });
13641 try testArgs(@Vector(4, f64), @Vector(4, u256), .{
13642 1e2, 1e3, 1e4, 1e5,
13643 });
13644 try testArgs(@Vector(8, f64), @Vector(8, u256), .{
13645 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13646 });
13647 try testArgs(@Vector(16, f64), @Vector(16, u256), .{
13648 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
13649 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
13650 });
13651 try testArgs(@Vector(32, f64), @Vector(32, u256), .{
13652 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
13653 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
13654 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
13655 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
13656 });
13657 try testArgs(@Vector(64, f64), @Vector(64, u256), .{
13658 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
13659 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
13660 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
13661 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
13662 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
13663 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
13664 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
13665 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
13666 });
13667 try testArgs(@Vector(128, f64), @Vector(128, u256), .{
13668 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
13669 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
13670 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
13671 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
13672 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
13673 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
13674 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
13675 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
13676 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
13677 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
13678 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
13679 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
13680 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
13681 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
13682 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
13683 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
13684 });
13685
13686 try testArgs(@Vector(1, f80), @Vector(1, i8), .{
13687 imin(i8),
13688 });
13689 try testArgs(@Vector(2, f80), @Vector(2, i8), .{
13690 imin(i8) + 1, -1e2,
13691 });
13692 try testArgs(@Vector(4, f80), @Vector(4, i8), .{
13693 -1e1, -1e0, 0, 1e0,
13694 });
13695 try testArgs(@Vector(8, f80), @Vector(8, i8), .{
13696 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
13697 });
13698 try testArgs(@Vector(16, f80), @Vector(16, i8), .{
13699 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
13700 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
13701 });
13702 try testArgs(@Vector(32, f80), @Vector(32, i8), .{
13703 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
13704 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
13705 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
13706 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
13707 });
13708 try testArgs(@Vector(64, f80), @Vector(64, i8), .{
13709 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
13710 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
13711 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
13712 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
13713 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
13714 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
13715 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
13716 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
13717 });
13718
13719 try testArgs(@Vector(1, f80), @Vector(1, u8), .{
13720 0,
13721 });
13722 try testArgs(@Vector(2, f80), @Vector(2, u8), .{
13723 1e0, 1e1,
13724 });
13725 try testArgs(@Vector(4, f80), @Vector(4, u8), .{
13726 1e2, imax(u8) - 1, imax(u8), 2e0,
13727 });
13728 try testArgs(@Vector(8, f80), @Vector(8, u8), .{
13729 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
13730 });
13731 try testArgs(@Vector(16, f80), @Vector(16, u8), .{
13732 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
13733 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
13734 });
13735 try testArgs(@Vector(32, f80), @Vector(32, u8), .{
13736 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
13737 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
13738 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
13739 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
13740 });
13741 try testArgs(@Vector(64, f80), @Vector(64, u8), .{
13742 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
13743 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
13744 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
13745 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
13746 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
13747 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
13748 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
13749 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
13750 });
13751
13752 try testArgs(@Vector(1, f80), @Vector(1, i16), .{
13753 imin(i16),
13754 });
13755 try testArgs(@Vector(2, f80), @Vector(2, i16), .{
13756 imin(i16) + 1, -1e4,
13757 });
13758 try testArgs(@Vector(4, f80), @Vector(4, i16), .{
13759 -1e3, -1e2, -1e1, -1e0,
13760 });
13761 try testArgs(@Vector(8, f80), @Vector(8, i16), .{
13762 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
13763 });
13764 try testArgs(@Vector(16, f80), @Vector(16, i16), .{
13765 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
13766 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
13767 });
13768 try testArgs(@Vector(32, f80), @Vector(32, i16), .{
13769 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13770 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
13771 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
13772 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
13773 });
13774 try testArgs(@Vector(64, f80), @Vector(64, i16), .{
13775 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
13776 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
13777 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
13778 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
13779 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
13780 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
13781 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
13782 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
13783 });
13784
13785 try testArgs(@Vector(1, f80), @Vector(1, u16), .{
13786 0,
13787 });
13788 try testArgs(@Vector(2, f80), @Vector(2, u16), .{
13789 1e0, 1e1,
13790 });
13791 try testArgs(@Vector(4, f80), @Vector(4, u16), .{
13792 1e2, 1e3, 1e4, imax(u16) - 1,
13793 });
13794 try testArgs(@Vector(8, f80), @Vector(8, u16), .{
13795 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
13796 });
13797 try testArgs(@Vector(16, f80), @Vector(16, u16), .{
13798 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
13799 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
13800 });
13801 try testArgs(@Vector(32, f80), @Vector(32, u16), .{
13802 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
13803 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
13804 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
13805 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
13806 });
13807 try testArgs(@Vector(64, f80), @Vector(64, u16), .{
13808 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
13809 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
13810 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
13811 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
13812 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
13813 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
13814 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
13815 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
13816 });
13817
13818 try testArgs(@Vector(1, f80), @Vector(1, i32), .{
13819 imin(i32),
13820 });
13821 try testArgs(@Vector(2, f80), @Vector(2, i32), .{
13822 imin(i32) + 1, -1e9,
13823 });
13824 try testArgs(@Vector(4, f80), @Vector(4, i32), .{
13825 -1e8, -1e7, -1e6, -1e5,
13826 });
13827 try testArgs(@Vector(8, f80), @Vector(8, i32), .{
13828 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
13829 });
13830 try testArgs(@Vector(16, f80), @Vector(16, i32), .{
13831 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
13832 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
13833 });
13834 try testArgs(@Vector(32, f80), @Vector(32, i32), .{
13835 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
13836 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
13837 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
13838 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13839 });
13840 try testArgs(@Vector(64, f80), @Vector(64, i32), .{
13841 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
13842 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
13843 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
13844 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
13845 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
13846 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
13847 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
13848 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
13849 });
13850
13851 try testArgs(@Vector(1, f80), @Vector(1, u32), .{
13852 0,
13853 });
13854 try testArgs(@Vector(2, f80), @Vector(2, u32), .{
13855 1e0, 1e1,
13856 });
13857 try testArgs(@Vector(4, f80), @Vector(4, u32), .{
13858 1e2, 1e3, 1e4, imax(u32) - 1,
13859 });
13860 try testArgs(@Vector(8, f80), @Vector(8, u32), .{
13861 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
13862 });
13863 try testArgs(@Vector(16, f80), @Vector(16, u32), .{
13864 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
13865 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
13866 });
13867 try testArgs(@Vector(32, f80), @Vector(32, u32), .{
13868 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
13869 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
13870 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
13871 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
13872 });
13873 try testArgs(@Vector(64, f80), @Vector(64, u32), .{
13874 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
13875 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
13876 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
13877 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
13878 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
13879 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
13880 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
13881 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
13882 });
13883
13884 try testArgs(@Vector(1, f80), @Vector(1, i64), .{
13885 imin(i64),
13886 });
13887 try testArgs(@Vector(2, f80), @Vector(2, i64), .{
13888 imin(i64) + 1, -1e18,
13889 });
13890 try testArgs(@Vector(4, f80), @Vector(4, i64), .{
13891 -1e17, -1e16, -1e15, -1e14,
13892 });
13893 try testArgs(@Vector(8, f80), @Vector(8, i64), .{
13894 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
13895 });
13896 try testArgs(@Vector(16, f80), @Vector(16, i64), .{
13897 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
13898 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
13899 });
13900 try testArgs(@Vector(32, f80), @Vector(32, i64), .{
13901 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
13902 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
13903 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
13904 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
13905 });
13906 try testArgs(@Vector(64, f80), @Vector(64, i64), .{
13907 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
13908 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
13909 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
13910 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
13911 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
13912 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
13913 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
13914 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
13915 });
13916
13917 try testArgs(@Vector(1, f80), @Vector(1, u64), .{
13918 0,
13919 });
13920 try testArgs(@Vector(2, f80), @Vector(2, u64), .{
13921 1e0, 1e1,
13922 });
13923 try testArgs(@Vector(4, f80), @Vector(4, u64), .{
13924 1e2, 1e3, 1e4, 1e5,
13925 });
13926 try testArgs(@Vector(8, f80), @Vector(8, u64), .{
13927 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13928 });
13929 try testArgs(@Vector(16, f80), @Vector(16, u64), .{
13930 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
13931 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
13932 });
13933 try testArgs(@Vector(32, f80), @Vector(32, u64), .{
13934 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
13935 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
13936 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
13937 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
13938 });
13939 try testArgs(@Vector(64, f80), @Vector(64, u64), .{
13940 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
13941 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
13942 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
13943 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
13944 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
13945 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
13946 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
13947 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
13948 });
13949
13950 try testArgs(@Vector(1, f80), @Vector(1, i128), .{
13951 imin(i128),
13952 });
13953 try testArgs(@Vector(2, f80), @Vector(2, i128), .{
13954 imin(i128) + 1, -1e38,
13955 });
13956 try testArgs(@Vector(4, f80), @Vector(4, i128), .{
13957 -1e37, -1e36, -1e35, -1e34,
13958 });
13959 try testArgs(@Vector(8, f80), @Vector(8, i128), .{
13960 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
13961 });
13962 try testArgs(@Vector(16, f80), @Vector(16, i128), .{
13963 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
13964 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
13965 });
13966 try testArgs(@Vector(32, f80), @Vector(32, i128), .{
13967 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
13968 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
13969 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
13970 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
13971 });
13972 try testArgs(@Vector(64, f80), @Vector(64, i128), .{
13973 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
13974 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
13975 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
13976 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
13977 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
13978 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
13979 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
13980 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
13981 });
13982
13983 try testArgs(@Vector(1, f80), @Vector(1, u128), .{
13984 0,
13985 });
13986 try testArgs(@Vector(2, f80), @Vector(2, u128), .{
13987 1e0, 1e1,
13988 });
13989 try testArgs(@Vector(4, f80), @Vector(4, u128), .{
13990 1e2, 1e3, 1e4, 1e5,
13991 });
13992 try testArgs(@Vector(8, f80), @Vector(8, u128), .{
13993 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13994 });
13995 try testArgs(@Vector(16, f80), @Vector(16, u128), .{
13996 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
13997 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
13998 });
13999 try testArgs(@Vector(32, f80), @Vector(32, u128), .{
14000 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14001 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
14002 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
14003 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
14004 });
14005 try testArgs(@Vector(64, f80), @Vector(64, u128), .{
14006 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
14007 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
14008 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
14009 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14010 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14011 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14012 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14013 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
14014 });
14015
14016 try testArgs(@Vector(1, f80), @Vector(1, i256), .{
14017 imin(i256),
14018 });
14019 try testArgs(@Vector(2, f80), @Vector(2, i256), .{
14020 imin(i256) + 1, -1e76,
14021 });
14022 try testArgs(@Vector(4, f80), @Vector(4, i256), .{
14023 -1e75, -1e74, -1e73, -1e72,
14024 });
14025 try testArgs(@Vector(8, f80), @Vector(8, i256), .{
14026 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
14027 });
14028 try testArgs(@Vector(16, f80), @Vector(16, i256), .{
14029 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
14030 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
14031 });
14032 try testArgs(@Vector(32, f80), @Vector(32, i256), .{
14033 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
14034 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
14035 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
14036 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
14037 });
14038 try testArgs(@Vector(64, f80), @Vector(64, i256), .{
14039 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
14040 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
14041 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
14042 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
14043 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
14044 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
14045 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
14046 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
14047 });
14048
14049 try testArgs(@Vector(1, f80), @Vector(1, u256), .{
14050 0,
14051 });
14052 try testArgs(@Vector(2, f80), @Vector(2, u256), .{
14053 1e0, 1e1,
14054 });
14055 try testArgs(@Vector(4, f80), @Vector(4, u256), .{
14056 1e2, 1e3, 1e4, 1e5,
14057 });
14058 try testArgs(@Vector(8, f80), @Vector(8, u256), .{
14059 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14060 });
14061 try testArgs(@Vector(16, f80), @Vector(16, u256), .{
14062 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14063 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14064 });
14065 try testArgs(@Vector(32, f80), @Vector(32, u256), .{
14066 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14067 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
14068 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
14069 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
14070 });
14071 try testArgs(@Vector(64, f80), @Vector(64, u256), .{
14072 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
14073 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
14074 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
14075 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
14076 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
14077 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
14078 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
14079 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
14080 });
14081
14082 try testArgs(@Vector(1, f128), @Vector(1, i8), .{
14083 imin(i8),
14084 });
14085 try testArgs(@Vector(2, f128), @Vector(2, i8), .{
14086 imin(i8) + 1, -1e2,
14087 });
14088 try testArgs(@Vector(4, f128), @Vector(4, i8), .{
14089 -1e1, -1e0, 0, 1e0,
14090 });
14091 try testArgs(@Vector(8, f128), @Vector(8, i8), .{
14092 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
14093 });
14094 try testArgs(@Vector(16, f128), @Vector(16, i8), .{
14095 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
14096 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
14097 });
14098 try testArgs(@Vector(32, f128), @Vector(32, i8), .{
14099 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
14100 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
14101 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
14102 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
14103 });
14104 try testArgs(@Vector(64, f128), @Vector(64, i8), .{
14105 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
14106 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
14107 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
14108 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
14109 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
14110 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
14111 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
14112 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
14113 });
14114
14115 try testArgs(@Vector(1, f128), @Vector(1, u8), .{
14116 0,
14117 });
14118 try testArgs(@Vector(2, f128), @Vector(2, u8), .{
14119 1e0, 1e1,
14120 });
14121 try testArgs(@Vector(4, f128), @Vector(4, u8), .{
14122 1e2, imax(u8) - 1, imax(u8), 2e0,
14123 });
14124 try testArgs(@Vector(8, f128), @Vector(8, u8), .{
14125 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
14126 });
14127 try testArgs(@Vector(16, f128), @Vector(16, u8), .{
14128 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
14129 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
14130 });
14131 try testArgs(@Vector(32, f128), @Vector(32, u8), .{
14132 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
14133 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
14134 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
14135 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
14136 });
14137 try testArgs(@Vector(64, f128), @Vector(64, u8), .{
14138 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
14139 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
14140 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
14141 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
14142 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
14143 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
14144 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
14145 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
14146 });
14147
14148 try testArgs(@Vector(1, f128), @Vector(1, i16), .{
14149 imin(i16),
14150 });
14151 try testArgs(@Vector(2, f128), @Vector(2, i16), .{
14152 imin(i16) + 1, -1e4,
14153 });
14154 try testArgs(@Vector(4, f128), @Vector(4, i16), .{
14155 -1e3, -1e2, -1e1, -1e0,
14156 });
14157 try testArgs(@Vector(8, f128), @Vector(8, i16), .{
14158 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
14159 });
14160 try testArgs(@Vector(16, f128), @Vector(16, i16), .{
14161 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
14162 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
14163 });
14164 try testArgs(@Vector(32, f128), @Vector(32, i16), .{
14165 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
14166 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
14167 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
14168 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
14169 });
14170 try testArgs(@Vector(64, f128), @Vector(64, i16), .{
14171 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
14172 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
14173 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
14174 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
14175 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
14176 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
14177 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
14178 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
14179 });
14180
14181 try testArgs(@Vector(1, f128), @Vector(1, u16), .{
14182 0,
14183 });
14184 try testArgs(@Vector(2, f128), @Vector(2, u16), .{
14185 1e0, 1e1,
14186 });
14187 try testArgs(@Vector(4, f128), @Vector(4, u16), .{
14188 1e2, 1e3, 1e4, imax(u16) - 1,
14189 });
14190 try testArgs(@Vector(8, f128), @Vector(8, u16), .{
14191 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
14192 });
14193 try testArgs(@Vector(16, f128), @Vector(16, u16), .{
14194 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
14195 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
14196 });
14197 try testArgs(@Vector(32, f128), @Vector(32, u16), .{
14198 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
14199 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
14200 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
14201 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
14202 });
14203 try testArgs(@Vector(64, f128), @Vector(64, u16), .{
14204 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
14205 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
14206 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
14207 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
14208 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
14209 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
14210 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
14211 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
14212 });
14213
14214 try testArgs(@Vector(1, f128), @Vector(1, i32), .{
14215 imin(i32),
14216 });
14217 try testArgs(@Vector(2, f128), @Vector(2, i32), .{
14218 imin(i32) + 1, -1e9,
14219 });
14220 try testArgs(@Vector(4, f128), @Vector(4, i32), .{
14221 -1e8, -1e7, -1e6, -1e5,
14222 });
14223 try testArgs(@Vector(8, f128), @Vector(8, i32), .{
14224 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
14225 });
14226 try testArgs(@Vector(16, f128), @Vector(16, i32), .{
14227 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
14228 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
14229 });
14230 try testArgs(@Vector(32, f128), @Vector(32, i32), .{
14231 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
14232 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
14233 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
14234 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
14235 });
14236 try testArgs(@Vector(64, f128), @Vector(64, i32), .{
14237 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
14238 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
14239 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
14240 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
14241 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
14242 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
14243 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
14244 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
14245 });
14246
14247 try testArgs(@Vector(1, f128), @Vector(1, u32), .{
14248 0,
14249 });
14250 try testArgs(@Vector(2, f128), @Vector(2, u32), .{
14251 1e0, 1e1,
14252 });
14253 try testArgs(@Vector(4, f128), @Vector(4, u32), .{
14254 1e2, 1e3, 1e4, imax(u32) - 1,
14255 });
14256 try testArgs(@Vector(8, f128), @Vector(8, u32), .{
14257 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
14258 });
14259 try testArgs(@Vector(16, f128), @Vector(16, u32), .{
14260 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
14261 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
14262 });
14263 try testArgs(@Vector(32, f128), @Vector(32, u32), .{
14264 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
14265 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
14266 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
14267 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
14268 });
14269 try testArgs(@Vector(64, f128), @Vector(64, u32), .{
14270 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
14271 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
14272 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
14273 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
14274 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
14275 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
14276 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
14277 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
14278 });
14279
14280 try testArgs(@Vector(1, f128), @Vector(1, i64), .{
14281 imin(i64),
14282 });
14283 try testArgs(@Vector(2, f128), @Vector(2, i64), .{
14284 imin(i64) + 1, -1e18,
14285 });
14286 try testArgs(@Vector(4, f128), @Vector(4, i64), .{
14287 -1e17, -1e16, -1e15, -1e14,
14288 });
14289 try testArgs(@Vector(8, f128), @Vector(8, i64), .{
14290 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
14291 });
14292 try testArgs(@Vector(16, f128), @Vector(16, i64), .{
14293 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
14294 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
14295 });
14296 try testArgs(@Vector(32, f128), @Vector(32, i64), .{
14297 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
14298 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
14299 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
14300 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
14301 });
14302 try testArgs(@Vector(64, f128), @Vector(64, i64), .{
14303 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
14304 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
14305 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
14306 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
14307 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
14308 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
14309 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
14310 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
14311 });
14312
14313 try testArgs(@Vector(1, f128), @Vector(1, u64), .{
14314 0,
14315 });
14316 try testArgs(@Vector(2, f128), @Vector(2, u64), .{
14317 1e0, 1e1,
14318 });
14319 try testArgs(@Vector(4, f128), @Vector(4, u64), .{
14320 1e2, 1e3, 1e4, 1e5,
14321 });
14322 try testArgs(@Vector(8, f128), @Vector(8, u64), .{
14323 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14324 });
14325 try testArgs(@Vector(16, f128), @Vector(16, u64), .{
14326 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
14327 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
14328 });
14329 try testArgs(@Vector(32, f128), @Vector(32, u64), .{
14330 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
14331 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
14332 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
14333 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
14334 });
14335 try testArgs(@Vector(64, f128), @Vector(64, u64), .{
14336 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
14337 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
14338 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
14339 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
14340 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
14341 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
14342 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
14343 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
14344 });
14345
14346 try testArgs(@Vector(1, f128), @Vector(1, i128), .{
14347 imin(i128),
14348 });
14349 try testArgs(@Vector(2, f128), @Vector(2, i128), .{
14350 imin(i128) + 1, -1e38,
14351 });
14352 try testArgs(@Vector(4, f128), @Vector(4, i128), .{
14353 -1e37, -1e36, -1e35, -1e34,
14354 });
14355 try testArgs(@Vector(8, f128), @Vector(8, i128), .{
14356 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
14357 });
14358 try testArgs(@Vector(16, f128), @Vector(16, i128), .{
14359 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
14360 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
14361 });
14362 try testArgs(@Vector(32, f128), @Vector(32, i128), .{
14363 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
14364 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
14365 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
14366 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
14367 });
14368 try testArgs(@Vector(64, f128), @Vector(64, i128), .{
14369 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
14370 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
14371 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
14372 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
14373 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
14374 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
14375 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
14376 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
14377 });
14378
14379 try testArgs(@Vector(1, f128), @Vector(1, u128), .{
14380 0,
14381 });
14382 try testArgs(@Vector(2, f128), @Vector(2, u128), .{
14383 1e0, 1e1,
14384 });
14385 try testArgs(@Vector(4, f128), @Vector(4, u128), .{
14386 1e2, 1e3, 1e4, 1e5,
14387 });
14388 try testArgs(@Vector(8, f128), @Vector(8, u128), .{
14389 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14390 });
14391 try testArgs(@Vector(16, f128), @Vector(16, u128), .{
14392 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14393 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14394 });
14395 try testArgs(@Vector(32, f128), @Vector(32, u128), .{
14396 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14397 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
14398 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
14399 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
14400 });
14401 try testArgs(@Vector(64, f128), @Vector(64, u128), .{
14402 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
14403 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
14404 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
14405 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14406 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14407 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14408 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14409 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
14410 });
14411
14412 try testArgs(@Vector(1, f128), @Vector(1, i256), .{
14413 imin(i256),
14414 });
14415 try testArgs(@Vector(2, f128), @Vector(2, i256), .{
14416 imin(i256) + 1, -1e76,
14417 });
14418 try testArgs(@Vector(4, f128), @Vector(4, i256), .{
14419 -1e75, -1e74, -1e73, -1e72,
14420 });
14421 try testArgs(@Vector(8, f128), @Vector(8, i256), .{
14422 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
14423 });
14424 try testArgs(@Vector(16, f128), @Vector(16, i256), .{
14425 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
14426 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
14427 });
14428 try testArgs(@Vector(32, f128), @Vector(32, i256), .{
14429 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
14430 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
14431 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
14432 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
14433 });
14434 try testArgs(@Vector(64, f128), @Vector(64, i256), .{
14435 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
14436 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
14437 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
14438 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
14439 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
14440 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
14441 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
14442 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
14443 });
14444
14445 try testArgs(@Vector(1, f128), @Vector(1, u256), .{
14446 0,
14447 });
14448 try testArgs(@Vector(2, f128), @Vector(2, u256), .{
14449 1e0, 1e1,
14450 });
14451 try testArgs(@Vector(4, f128), @Vector(4, u256), .{
14452 1e2, 1e3, 1e4, 1e5,
14453 });
14454 try testArgs(@Vector(8, f128), @Vector(8, u256), .{
14455 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14456 });
14457 try testArgs(@Vector(16, f128), @Vector(16, u256), .{
14458 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14459 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14460 });
14461 try testArgs(@Vector(32, f128), @Vector(32, u256), .{
14462 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14463 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
14464 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
14465 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
14466 });
14467 try testArgs(@Vector(64, f128), @Vector(64, u256), .{
14468 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
14469 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
14470 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
14471 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
14472 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
14473 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
14474 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
14475 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
14476 });
14477 }
14478 };
14479}
14480
14481inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type, comptime ct_rhs: Type) Result {
14482 @setRuntimeSafety(false); // TODO
14483 const res_info = switch (@typeInfo(Result)) {
14484 .int => |info| info,
14485 .vector => |info| @typeInfo(info.child).int,
14486 else => @compileError(@typeName(Result)),
14487 };
14488 const rhs_info = @typeInfo(Scalar(Type)).int;
14489 const min_bits = @min(res_info.bits, rhs_info.bits);
14490 return @intCast(switch (@as(union(enum) {
14491 shift: Log2Int(Scalar(Type)),
14492 mask: Log2IntCeil(Scalar(Type)),
14493 }, switch (res_info.signedness) {
14494 .signed => switch (rhs_info.signedness) {
14495 .signed => .{ .shift = rhs_info.bits - min_bits },
14496 .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) },
14497 },
14498 .unsigned => switch (rhs_info.signedness) {
14499 .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) },
14500 .unsigned => .{ .mask = min_bits },
14501 },
14502 })) {
14503 // TODO: if (bits == 0) rhs else rhs >> bits,
14504 .shift => |bits| if (bits == 0) rhs else switch (@typeInfo(Type)) {
14505 .int => if (ct_rhs < 0)
14506 rhs | imin(Type) >> bits
14507 else
14508 rhs & imax(Type) >> bits,
14509 .vector => rhs | @select(
14510 Scalar(Type),
14511 ct_rhs < splat(Type, 0),
14512 splat(Type, imin(Scalar(Type)) >> bits),
14513 splat(Type, 0),
14514 ) & ~@select(
14515 Scalar(Type),
14516 ct_rhs >= splat(Type, 0),
14517 splat(Type, imin(Scalar(Type)) >> bits),
14518 splat(Type, 0),
14519 ),
14520 else => comptime unreachable,
14521 },
14522 .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & splat(Type, (1 << bits) - 1),
14523 });
14524}
14525test intCast {
14526 const test_int_cast = cast(intCast, .{});
14527 try test_int_cast.testInts();
14528 try test_int_cast.testIntVectors();
14529}
14530
14531inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
14532 return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs;
14533}
14534test truncate {
14535 const test_truncate = cast(truncate, .{});
14536 try test_truncate.testSameSignednessInts();
14537 try test_truncate.testSameSignednessIntVectors();
14538}
14539
14540inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
14541 return @floatCast(rhs);
14542}
14543test floatCast {
14544 const test_float_cast = cast(floatCast, .{ .compare = .strict });
14545 try test_float_cast.testFloats();
14546 try test_float_cast.testFloatVectors();
14547}
14548
14549inline fn intFromFloat(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
14550 return @intFromFloat(rhs);
14551}
14552test intFromFloat {
14553 const test_int_from_float = cast(intFromFloat, .{ .compare = .strict });
14554 try test_int_from_float.testIntsFromFloats();
14555 try test_int_from_float.testIntVectorsFromFloatVectors();
14556}
14557
14558inline fn floatFromInt(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
14559 return @floatFromInt(rhs);
14560}
14561test floatFromInt {
14562 const test_float_from_int = cast(floatFromInt, .{ .compare = .strict });
14563 try test_float_from_int.testFloatsFromInts();
14564 try test_float_from_int.testFloatVectorsFromIntVectors();
14565}
test/behavior/x86_64/math.zig+22-22066
...@@ -1,39 +1,36 @@...@@ -1,39 +1,36 @@
1const builtin = @import("builtin");1const builtin = @import("builtin");
2const inf = math.inf;
3const math = std.math;2const math = std.math;
4const fmax = math.floatMax;
5const fmin = math.floatMin;
6const imax = math.maxInt;
7const imin = math.minInt;
8const nan = math.nan;
9const next = math.nextAfter;
10const std = @import("std");3const std = @import("std");
11const tmin = math.floatTrueMin;
124
13const Gpr = switch (builtin.cpu.arch) {5pub const cast = math.cast;
6pub const fmax = math.floatMax;
7pub const fmin = math.floatMin;
8pub const imax = math.maxInt;
9pub const imin = math.minInt;
10pub const inf = math.inf;
11pub const Log2Int = math.Log2Int;
12pub const Log2IntCeil = math.Log2IntCeil;
13pub const nan = math.nan;
14pub const next = math.nextAfter;
15pub const tmin = math.floatTrueMin;
16
17pub const Gpr = switch (builtin.cpu.arch) {
14 else => unreachable,18 else => unreachable,
15 .x86 => u32,19 .x86 => u32,
16 .x86_64 => u64,20 .x86_64 => u64,
17};21};
18const Sse = if (std.Target.x86.featureSetHas(builtin.cpu.features, .avx))22pub const Sse = if (std.Target.x86.featureSetHas(builtin.cpu.features, .avx))
19 @Vector(32, u8)23 @Vector(32, u8)
20else24else
21 @Vector(16, u8);25 @Vector(16, u8);
2226
23inline fn runtime(comptime Type: type, comptime value: Type) Type {27pub fn Scalar(comptime Type: type) type {
24 if (@inComptime()) return value;
25 return struct {
26 var variable: Type = value;
27 }.variable;
28}
29
30fn Scalar(comptime Type: type) type {
31 return switch (@typeInfo(Type)) {28 return switch (@typeInfo(Type)) {
32 else => Type,29 else => Type,
33 .vector => |info| info.child,30 .vector => |info| info.child,
34 };31 };
35}32}
36fn AddOneBit(comptime Type: type) type {33pub fn AddOneBit(comptime Type: type) type {
37 const ResultScalar = switch (@typeInfo(Scalar(Type))) {34 const ResultScalar = switch (@typeInfo(Scalar(Type))) {
38 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = 1 + int.bits } }),35 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = 1 + int.bits } }),
39 .float => Scalar(Type),36 .float => Scalar(Type),
...@@ -44,7 +41,7 @@ fn AddOneBit(comptime Type: type) type {...@@ -44,7 +41,7 @@ fn AddOneBit(comptime Type: type) type {
44 .vector => |vector| @Vector(vector.len, ResultScalar),41 .vector => |vector| @Vector(vector.len, ResultScalar),
45 };42 };
46}43}
47fn DoubleBits(comptime Type: type) type {44pub fn DoubleBits(comptime Type: type) type {
48 const ResultScalar = switch (@typeInfo(Scalar(Type))) {45 const ResultScalar = switch (@typeInfo(Scalar(Type))) {
49 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = int.bits * 2 } }),46 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = int.bits * 2 } }),
50 .float => Scalar(Type),47 .float => Scalar(Type),
...@@ -55,7 +52,7 @@ fn DoubleBits(comptime Type: type) type {...@@ -55,7 +52,7 @@ fn DoubleBits(comptime Type: type) type {
55 .vector => |vector| @Vector(vector.len, ResultScalar),52 .vector => |vector| @Vector(vector.len, ResultScalar),
56 };53 };
57}54}
58fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type {55pub fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type {
59 const ResultScalar = switch (@typeInfo(Scalar(Type))) {56 const ResultScalar = switch (@typeInfo(Scalar(Type))) {
60 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = std.mem.alignForward(u16, int.bits, multiple) } }),57 .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = std.mem.alignForward(u16, int.bits, multiple) } }),
61 .float => Scalar(Type),58 .float => Scalar(Type),
...@@ -67,7 +64,7 @@ fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type {...@@ -67,7 +64,7 @@ fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type {
67 };64 };
68}65}
69// inline to avoid a runtime `@splat`66// inline to avoid a runtime `@splat`
70inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type {67pub inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type {
71 return switch (@typeInfo(Type)) {68 return switch (@typeInfo(Type)) {
72 else => scalar,69 else => scalar,
73 .vector => @splat(scalar),70 .vector => @splat(scalar),
...@@ -81,7 +78,7 @@ inline fn select(cond: anytype, lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {...@@ -81,7 +78,7 @@ inline fn select(cond: anytype, lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {
81 else => @compileError(@typeName(@TypeOf(cond))),78 else => @compileError(@typeName(@TypeOf(cond))),
82 };79 };
83}80}
84fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) {81pub fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) {
85 else => bool,82 else => bool,
86 .vector => |vector| @Vector(vector.len, bool),83 .vector => |vector| @Vector(vector.len, bool),
87} {84} {
...@@ -128,9 +125,9 @@ fn boolOr(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {...@@ -128,9 +125,9 @@ fn boolOr(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) {
128 @compileError("unsupported boolOr type: " ++ @typeName(@TypeOf(lhs)));125 @compileError("unsupported boolOr type: " ++ @typeName(@TypeOf(lhs)));
129}126}
130127
131const Compare = enum { strict, relaxed, approx, approx_int };128pub const Compare = enum { strict, relaxed, approx, approx_int };
132// noinline for a more helpful stack trace129// noinline for a more helpful stack trace
133noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void {130pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void {
134 const Expected = @TypeOf(expected);131 const Expected = @TypeOf(expected);
135 const unexpected = unexpected: switch (@typeInfo(Scalar(Expected))) {132 const unexpected = unexpected: switch (@typeInfo(Scalar(Expected))) {
136 else => expected != actual,133 else => expected != actual,
...@@ -198,22044 +195,3 @@ test checkExpected {...@@ -198,22044 +195,3 @@ test checkExpected {
198 if (checkExpected(@as(f128, -0.0), @as(f128, 0.0), .strict) != error.Unexpected) return error.Unexpected;195 if (checkExpected(@as(f128, -0.0), @as(f128, 0.0), .strict) != error.Unexpected) return error.Unexpected;
199 if (checkExpected(@as(f128, 0.0), @as(f128, -0.0), .strict) != error.Unexpected) return error.Unexpected;196 if (checkExpected(@as(f128, 0.0), @as(f128, -0.0), .strict) != error.Unexpected) return error.Unexpected;
200}197}
201
202fn unary(comptime op: anytype, comptime opts: struct {
203 libc_name: ?[]const u8 = null,
204 compare: Compare = .relaxed,
205}) type {
206 return struct {
207 // noinline so that `mem_arg` is on the stack
208 noinline fn testArgKinds(
209 _: Gpr,
210 _: Gpr,
211 _: Gpr,
212 _: Gpr,
213 _: Gpr,
214 _: Gpr,
215 _: Gpr,
216 _: Gpr,
217 _: Sse,
218 _: Sse,
219 _: Sse,
220 _: Sse,
221 _: Sse,
222 _: Sse,
223 _: Sse,
224 _: Sse,
225 comptime Type: type,
226 comptime imm_arg: Type,
227 mem_arg: Type,
228 ) !void {
229 const expected = expected: {
230 if (opts.libc_name) |libc_name| libc: {
231 const libc_func = @extern(*const fn (Scalar(Type)) callconv(.c) Scalar(Type), .{
232 .name = switch (Scalar(Type)) {
233 f16 => "__" ++ libc_name ++ "h",
234 f32 => libc_name ++ "f",
235 f64 => libc_name,
236 f80 => "__" ++ libc_name ++ "x",
237 f128 => libc_name ++ "q",
238 else => break :libc,
239 },
240 });
241 switch (@typeInfo(Type)) {
242 else => break :expected libc_func(imm_arg),
243 .vector => |vector| {
244 var res: Type = undefined;
245 inline for (0..vector.len) |i| res[i] = libc_func(imm_arg[i]);
246 break :expected res;
247 },
248 }
249 }
250 break :expected comptime op(Type, imm_arg);
251 };
252 var reg_arg = mem_arg;
253 _ = .{&reg_arg};
254 try checkExpected(expected, op(Type, reg_arg), opts.compare);
255 try checkExpected(expected, op(Type, mem_arg), opts.compare);
256 if (opts.libc_name == null) try checkExpected(expected, op(Type, imm_arg), opts.compare);
257 }
258 // noinline for a more helpful stack trace
259 noinline fn testArgs(comptime Type: type, comptime imm_arg: Type) !void {
260 try testArgKinds(
261 undefined,
262 undefined,
263 undefined,
264 undefined,
265 undefined,
266 undefined,
267 undefined,
268 undefined,
269 undefined,
270 undefined,
271 undefined,
272 undefined,
273 undefined,
274 undefined,
275 undefined,
276 undefined,
277 Type,
278 imm_arg,
279 imm_arg,
280 );
281 }
282 fn testIntTypes() !void {
283 try testArgs(i1, undefined);
284 try testArgs(u1, undefined);
285 try testArgs(i2, undefined);
286 try testArgs(u2, undefined);
287 try testArgs(i3, undefined);
288 try testArgs(u3, undefined);
289 try testArgs(i4, undefined);
290 try testArgs(u4, undefined);
291 try testArgs(i5, undefined);
292 try testArgs(u5, undefined);
293 try testArgs(i7, undefined);
294 try testArgs(u7, undefined);
295 try testArgs(i8, undefined);
296 try testArgs(u8, undefined);
297 try testArgs(i9, undefined);
298 try testArgs(u9, undefined);
299 try testArgs(i15, undefined);
300 try testArgs(u15, undefined);
301 try testArgs(i16, undefined);
302 try testArgs(u16, undefined);
303 try testArgs(i17, undefined);
304 try testArgs(u17, undefined);
305 try testArgs(i31, undefined);
306 try testArgs(u31, undefined);
307 try testArgs(i32, undefined);
308 try testArgs(u32, undefined);
309 try testArgs(i33, undefined);
310 try testArgs(u33, undefined);
311 try testArgs(i63, undefined);
312 try testArgs(u63, undefined);
313 try testArgs(i64, undefined);
314 try testArgs(u64, undefined);
315 try testArgs(i65, undefined);
316 try testArgs(u65, undefined);
317 try testArgs(i95, undefined);
318 try testArgs(u95, undefined);
319 try testArgs(i96, undefined);
320 try testArgs(u96, undefined);
321 try testArgs(i97, undefined);
322 try testArgs(u97, undefined);
323 try testArgs(i127, undefined);
324 try testArgs(u127, undefined);
325 try testArgs(i128, undefined);
326 try testArgs(u128, undefined);
327 try testArgs(i129, undefined);
328 try testArgs(u129, undefined);
329 try testArgs(i159, undefined);
330 try testArgs(u159, undefined);
331 try testArgs(i160, undefined);
332 try testArgs(u160, undefined);
333 try testArgs(i161, undefined);
334 try testArgs(u161, undefined);
335 try testArgs(i191, undefined);
336 try testArgs(u191, undefined);
337 try testArgs(i192, undefined);
338 try testArgs(u192, undefined);
339 try testArgs(i193, undefined);
340 try testArgs(u193, undefined);
341 try testArgs(i223, undefined);
342 try testArgs(u223, undefined);
343 try testArgs(i224, undefined);
344 try testArgs(u224, undefined);
345 try testArgs(i225, undefined);
346 try testArgs(u225, undefined);
347 try testArgs(i255, undefined);
348 try testArgs(u255, undefined);
349 try testArgs(i256, undefined);
350 try testArgs(u256, undefined);
351 try testArgs(i257, undefined);
352 try testArgs(u257, undefined);
353 try testArgs(i511, undefined);
354 try testArgs(u511, undefined);
355 try testArgs(i512, undefined);
356 try testArgs(u512, undefined);
357 try testArgs(i513, undefined);
358 try testArgs(u513, undefined);
359 try testArgs(i1023, undefined);
360 try testArgs(u1023, undefined);
361 try testArgs(i1024, undefined);
362 try testArgs(u1024, undefined);
363 try testArgs(i1025, undefined);
364 try testArgs(u1025, undefined);
365 }
366 fn testInts() !void {
367 try testArgs(i1, -1);
368 try testArgs(i1, 0);
369 try testArgs(u1, 0);
370 try testArgs(u1, 1 << 0);
371
372 try testArgs(i2, -1 << 1);
373 try testArgs(i2, -1);
374 try testArgs(i2, 0);
375 try testArgs(u2, 0);
376 try testArgs(u2, 1 << 0);
377 try testArgs(u2, 1 << 1);
378
379 try testArgs(i3, -1 << 2);
380 try testArgs(i3, -1);
381 try testArgs(i3, 0);
382 try testArgs(u3, 0);
383 try testArgs(u3, 1 << 0);
384 try testArgs(u3, 1 << 1);
385 try testArgs(u3, 1 << 2);
386
387 try testArgs(i4, -1 << 3);
388 try testArgs(i4, -1);
389 try testArgs(i4, 0);
390 try testArgs(u4, 0);
391 try testArgs(u4, 1 << 0);
392 try testArgs(u4, 1 << 1);
393 try testArgs(u4, 1 << 2);
394 try testArgs(u4, 1 << 3);
395
396 try testArgs(i5, -1 << 4);
397 try testArgs(i5, -1);
398 try testArgs(i5, 0);
399 try testArgs(u5, 0);
400 try testArgs(u5, 1 << 0);
401 try testArgs(u5, 1 << 1);
402 try testArgs(u5, 1 << 3);
403 try testArgs(u5, 1 << 4);
404
405 try testArgs(i7, -1 << 6);
406 try testArgs(i7, -1);
407 try testArgs(i7, 0);
408 try testArgs(u7, 0);
409 try testArgs(u7, 1 << 0);
410 try testArgs(u7, 1 << 1);
411 try testArgs(u7, 1 << 5);
412 try testArgs(u7, 1 << 6);
413
414 try testArgs(i8, -1 << 7);
415 try testArgs(i8, -1);
416 try testArgs(i8, 0);
417 try testArgs(u8, 0);
418 try testArgs(u8, 1 << 0);
419 try testArgs(u8, 1 << 1);
420 try testArgs(u8, 1 << 6);
421 try testArgs(u8, 1 << 7);
422
423 try testArgs(i9, -1 << 8);
424 try testArgs(i9, -1);
425 try testArgs(i9, 0);
426 try testArgs(u9, 0);
427 try testArgs(u9, 1 << 0);
428 try testArgs(u9, 1 << 1);
429 try testArgs(u9, 1 << 7);
430 try testArgs(u9, 1 << 8);
431
432 try testArgs(i15, -1 << 14);
433 try testArgs(i15, -1);
434 try testArgs(i15, 0);
435 try testArgs(u15, 0);
436 try testArgs(u15, 1 << 0);
437 try testArgs(u15, 1 << 1);
438 try testArgs(u15, 1 << 13);
439 try testArgs(u15, 1 << 14);
440
441 try testArgs(i16, -1 << 15);
442 try testArgs(i16, -1);
443 try testArgs(i16, 0);
444 try testArgs(u16, 0);
445 try testArgs(u16, 1 << 0);
446 try testArgs(u16, 1 << 1);
447 try testArgs(u16, 1 << 14);
448 try testArgs(u16, 1 << 15);
449
450 try testArgs(i17, -1 << 16);
451 try testArgs(i17, -1);
452 try testArgs(i17, 0);
453 try testArgs(u17, 0);
454 try testArgs(u17, 1 << 0);
455 try testArgs(u17, 1 << 1);
456 try testArgs(u17, 1 << 15);
457 try testArgs(u17, 1 << 16);
458
459 try testArgs(i31, -1 << 30);
460 try testArgs(i31, -1);
461 try testArgs(i31, 0);
462 try testArgs(u31, 0);
463 try testArgs(u31, 1 << 0);
464 try testArgs(u31, 1 << 1);
465 try testArgs(u31, 1 << 29);
466 try testArgs(u31, 1 << 30);
467
468 try testArgs(i32, -1 << 31);
469 try testArgs(i32, -1);
470 try testArgs(i32, 0);
471 try testArgs(u32, 0);
472 try testArgs(u32, 1 << 0);
473 try testArgs(u32, 1 << 1);
474 try testArgs(u32, 1 << 30);
475 try testArgs(u32, 1 << 31);
476
477 try testArgs(i33, -1 << 32);
478 try testArgs(i33, -1);
479 try testArgs(i33, 0);
480 try testArgs(u33, 0);
481 try testArgs(u33, 1 << 0);
482 try testArgs(u33, 1 << 1);
483 try testArgs(u33, 1 << 31);
484 try testArgs(u33, 1 << 32);
485
486 try testArgs(i63, -1 << 62);
487 try testArgs(i63, -1);
488 try testArgs(i63, 0);
489 try testArgs(u63, 0);
490 try testArgs(u63, 1 << 0);
491 try testArgs(u63, 1 << 1);
492 try testArgs(u63, 1 << 61);
493 try testArgs(u63, 1 << 62);
494
495 try testArgs(i64, -1 << 63);
496 try testArgs(i64, -1);
497 try testArgs(i64, 0);
498 try testArgs(u64, 0);
499 try testArgs(u64, 1 << 0);
500 try testArgs(u64, 1 << 1);
501 try testArgs(u64, 1 << 62);
502 try testArgs(u64, 1 << 63);
503
504 try testArgs(i65, -1 << 64);
505 try testArgs(i65, -1);
506 try testArgs(i65, 0);
507 try testArgs(u65, 0);
508 try testArgs(u65, 1 << 0);
509 try testArgs(u65, 1 << 1);
510 try testArgs(u65, 1 << 63);
511 try testArgs(u65, 1 << 64);
512
513 try testArgs(i95, -1 << 94);
514 try testArgs(i95, -1);
515 try testArgs(i95, 0);
516 try testArgs(u95, 0);
517 try testArgs(u95, 1 << 0);
518 try testArgs(u95, 1 << 1);
519 try testArgs(u95, 1 << 93);
520 try testArgs(u95, 1 << 94);
521
522 try testArgs(i96, -1 << 95);
523 try testArgs(i96, -1);
524 try testArgs(i96, 0);
525 try testArgs(u96, 0);
526 try testArgs(u96, 1 << 0);
527 try testArgs(u96, 1 << 1);
528 try testArgs(u96, 1 << 94);
529 try testArgs(u96, 1 << 95);
530
531 try testArgs(i97, -1 << 96);
532 try testArgs(i97, -1);
533 try testArgs(i97, 0);
534 try testArgs(u97, 0);
535 try testArgs(u97, 1 << 0);
536 try testArgs(u97, 1 << 1);
537 try testArgs(u97, 1 << 95);
538 try testArgs(u97, 1 << 96);
539
540 try testArgs(i127, -1 << 126);
541 try testArgs(i127, -1);
542 try testArgs(i127, 0);
543 try testArgs(u127, 0);
544 try testArgs(u127, 1 << 0);
545 try testArgs(u127, 1 << 1);
546 try testArgs(u127, 1 << 125);
547 try testArgs(u127, 1 << 126);
548
549 try testArgs(i128, -1 << 127);
550 try testArgs(i128, -1);
551 try testArgs(i128, 0);
552 try testArgs(u128, 0);
553 try testArgs(u128, 1 << 0);
554 try testArgs(u128, 1 << 1);
555 try testArgs(u128, 1 << 126);
556 try testArgs(u128, 1 << 127);
557
558 try testArgs(i129, -1 << 128);
559 try testArgs(i129, -1);
560 try testArgs(i129, 0);
561 try testArgs(u129, 0);
562 try testArgs(u129, 1 << 0);
563 try testArgs(u129, 1 << 1);
564 try testArgs(u129, 1 << 127);
565 try testArgs(u129, 1 << 128);
566
567 try testArgs(i159, -1 << 158);
568 try testArgs(i159, -1);
569 try testArgs(i159, 0);
570 try testArgs(u159, 0);
571 try testArgs(u159, 1 << 0);
572 try testArgs(u159, 1 << 1);
573 try testArgs(u159, 1 << 157);
574 try testArgs(u159, 1 << 158);
575
576 try testArgs(i160, -1 << 159);
577 try testArgs(i160, -1);
578 try testArgs(i160, 0);
579 try testArgs(u160, 0);
580 try testArgs(u160, 1 << 0);
581 try testArgs(u160, 1 << 1);
582 try testArgs(u160, 1 << 158);
583 try testArgs(u160, 1 << 159);
584
585 try testArgs(i161, -1 << 160);
586 try testArgs(i161, -1);
587 try testArgs(i161, 0);
588 try testArgs(u161, 0);
589 try testArgs(u161, 1 << 0);
590 try testArgs(u161, 1 << 1);
591 try testArgs(u161, 1 << 159);
592 try testArgs(u161, 1 << 160);
593
594 try testArgs(i191, -1 << 190);
595 try testArgs(i191, -1);
596 try testArgs(i191, 0);
597 try testArgs(u191, 0);
598 try testArgs(u191, 1 << 0);
599 try testArgs(u191, 1 << 1);
600 try testArgs(u191, 1 << 189);
601 try testArgs(u191, 1 << 190);
602
603 try testArgs(i192, -1 << 191);
604 try testArgs(i192, -1);
605 try testArgs(i192, 0);
606 try testArgs(u192, 0);
607 try testArgs(u192, 1 << 0);
608 try testArgs(u192, 1 << 1);
609 try testArgs(u192, 1 << 190);
610 try testArgs(u192, 1 << 191);
611
612 try testArgs(i193, -1 << 192);
613 try testArgs(i193, -1);
614 try testArgs(i193, 0);
615 try testArgs(u193, 0);
616 try testArgs(u193, 1 << 0);
617 try testArgs(u193, 1 << 1);
618 try testArgs(u193, 1 << 191);
619 try testArgs(u193, 1 << 192);
620
621 try testArgs(i223, -1 << 222);
622 try testArgs(i223, -1);
623 try testArgs(i223, 0);
624 try testArgs(u223, 0);
625 try testArgs(u223, 1 << 0);
626 try testArgs(u223, 1 << 1);
627 try testArgs(u223, 1 << 221);
628 try testArgs(u223, 1 << 222);
629
630 try testArgs(i224, -1 << 223);
631 try testArgs(i224, -1);
632 try testArgs(i224, 0);
633 try testArgs(u224, 0);
634 try testArgs(u224, 1 << 0);
635 try testArgs(u224, 1 << 1);
636 try testArgs(u224, 1 << 222);
637 try testArgs(u224, 1 << 223);
638
639 try testArgs(i225, -1 << 224);
640 try testArgs(i225, -1);
641 try testArgs(i225, 0);
642 try testArgs(u225, 0);
643 try testArgs(u225, 1 << 0);
644 try testArgs(u225, 1 << 1);
645 try testArgs(u225, 1 << 223);
646 try testArgs(u225, 1 << 224);
647
648 try testArgs(i255, -1 << 254);
649 try testArgs(i255, -1);
650 try testArgs(i255, 0);
651 try testArgs(u255, 0);
652 try testArgs(u255, 1 << 0);
653 try testArgs(u255, 1 << 1);
654 try testArgs(u255, 1 << 253);
655 try testArgs(u255, 1 << 254);
656
657 try testArgs(i256, -1 << 255);
658 try testArgs(i256, -1);
659 try testArgs(i256, 0);
660 try testArgs(u256, 0);
661 try testArgs(u256, 1 << 0);
662 try testArgs(u256, 1 << 1);
663 try testArgs(u256, 1 << 254);
664 try testArgs(u256, 1 << 255);
665
666 try testArgs(i257, -1 << 256);
667 try testArgs(i257, -1);
668 try testArgs(i257, 0);
669 try testArgs(u257, 0);
670 try testArgs(u257, 1 << 0);
671 try testArgs(u257, 1 << 1);
672 try testArgs(u257, 1 << 255);
673 try testArgs(u257, 1 << 256);
674
675 try testArgs(i383, -1 << 382);
676 try testArgs(i383, -1);
677 try testArgs(i383, 0);
678 try testArgs(u383, 0);
679 try testArgs(u383, 1 << 0);
680 try testArgs(u383, 1 << 1);
681 try testArgs(u383, 1 << 381);
682 try testArgs(u383, 1 << 382);
683
684 try testArgs(i384, -1 << 383);
685 try testArgs(i384, -1);
686 try testArgs(i384, 0);
687 try testArgs(u384, 0);
688 try testArgs(u384, 1 << 0);
689 try testArgs(u384, 1 << 1);
690 try testArgs(u384, 1 << 382);
691 try testArgs(u384, 1 << 383);
692
693 try testArgs(i385, -1 << 384);
694 try testArgs(i385, -1);
695 try testArgs(i385, 0);
696 try testArgs(u385, 0);
697 try testArgs(u385, 1 << 0);
698 try testArgs(u385, 1 << 1);
699 try testArgs(u385, 1 << 383);
700 try testArgs(u385, 1 << 384);
701
702 try testArgs(i511, -1 << 510);
703 try testArgs(i511, -1);
704 try testArgs(i511, 0);
705 try testArgs(u511, 0);
706 try testArgs(u511, 1 << 0);
707 try testArgs(u511, 1 << 1);
708 try testArgs(u511, 1 << 509);
709 try testArgs(u511, 1 << 510);
710
711 try testArgs(i512, -1 << 511);
712 try testArgs(i512, -1);
713 try testArgs(i512, 0);
714 try testArgs(u512, 0);
715 try testArgs(u512, 1 << 0);
716 try testArgs(u512, 1 << 1);
717 try testArgs(u512, 1 << 510);
718 try testArgs(u512, 1 << 511);
719
720 try testArgs(i513, -1 << 512);
721 try testArgs(i513, -1);
722 try testArgs(i513, 0);
723 try testArgs(u513, 0);
724 try testArgs(u513, 1 << 0);
725 try testArgs(u513, 1 << 1);
726 try testArgs(u513, 1 << 511);
727 try testArgs(u513, 1 << 512);
728
729 try testArgs(i1023, -1 << 1022);
730 try testArgs(i1023, -1);
731 try testArgs(i1023, 0);
732 try testArgs(u1023, 0);
733 try testArgs(u1023, 1 << 0);
734 try testArgs(u1023, 1 << 1);
735 try testArgs(u1023, 1 << 1021);
736 try testArgs(u1023, 1 << 1022);
737
738 try testArgs(i1024, -1 << 1023);
739 try testArgs(i1024, -1);
740 try testArgs(i1024, 0);
741 try testArgs(u1024, 0);
742 try testArgs(u1024, 1 << 0);
743 try testArgs(u1024, 1 << 1);
744 try testArgs(u1024, 1 << 1022);
745 try testArgs(u1024, 1 << 1023);
746
747 try testArgs(i1025, -1 << 1024);
748 try testArgs(i1025, -1);
749 try testArgs(i1025, 0);
750 try testArgs(u1025, 0);
751 try testArgs(u1025, 1 << 0);
752 try testArgs(u1025, 1 << 1);
753 try testArgs(u1025, 1 << 1023);
754 try testArgs(u1025, 1 << 1024);
755 }
756 fn testFloatTypes() !void {
757 try testArgs(f16, undefined);
758 try testArgs(f32, undefined);
759 try testArgs(f64, undefined);
760 try testArgs(f80, undefined);
761 try testArgs(f128, undefined);
762 }
763 fn testFloats() !void {
764 try testArgs(f16, -nan(f16));
765 try testArgs(f16, -inf(f16));
766 try testArgs(f16, -fmax(f16));
767 try testArgs(f16, -1e1);
768 try testArgs(f16, -1e0);
769 try testArgs(f16, -1e-1);
770 try testArgs(f16, -fmin(f16));
771 try testArgs(f16, -tmin(f16));
772 try testArgs(f16, -0.0);
773 try testArgs(f16, 0.0);
774 try testArgs(f16, tmin(f16));
775 try testArgs(f16, fmin(f16));
776 try testArgs(f16, 1e-1);
777 try testArgs(f16, 1e0);
778 try testArgs(f16, 1e1);
779 try testArgs(f16, fmax(f16));
780 try testArgs(f16, inf(f16));
781 try testArgs(f16, nan(f16));
782
783 try testArgs(f32, -nan(f32));
784 try testArgs(f32, -inf(f32));
785 try testArgs(f32, -fmax(f32));
786 try testArgs(f32, -1e1);
787 try testArgs(f32, -1e0);
788 try testArgs(f32, -1e-1);
789 try testArgs(f32, -fmin(f32));
790 try testArgs(f32, -tmin(f32));
791 try testArgs(f32, -0.0);
792 try testArgs(f32, 0.0);
793 try testArgs(f32, tmin(f32));
794 try testArgs(f32, fmin(f32));
795 try testArgs(f32, 1e-1);
796 try testArgs(f32, 1e0);
797 try testArgs(f32, 1e1);
798 try testArgs(f32, fmax(f32));
799 try testArgs(f32, inf(f32));
800 try testArgs(f32, nan(f32));
801
802 try testArgs(f64, -nan(f64));
803 try testArgs(f64, -inf(f64));
804 try testArgs(f64, -fmax(f64));
805 try testArgs(f64, -1e1);
806 try testArgs(f64, -1e0);
807 try testArgs(f64, -1e-1);
808 try testArgs(f64, -fmin(f64));
809 try testArgs(f64, -tmin(f64));
810 try testArgs(f64, -0.0);
811 try testArgs(f64, 0.0);
812 try testArgs(f64, tmin(f64));
813 try testArgs(f64, fmin(f64));
814 try testArgs(f64, 1e-1);
815 try testArgs(f64, 1e0);
816 try testArgs(f64, 1e1);
817 try testArgs(f64, fmax(f64));
818 try testArgs(f64, inf(f64));
819 try testArgs(f64, nan(f64));
820
821 try testArgs(f80, -nan(f80));
822 try testArgs(f80, -inf(f80));
823 try testArgs(f80, -fmax(f80));
824 try testArgs(f80, -1e1);
825 try testArgs(f80, -1e0);
826 try testArgs(f80, -1e-1);
827 try testArgs(f80, -fmin(f80));
828 try testArgs(f80, -tmin(f80));
829 try testArgs(f80, -0.0);
830 try testArgs(f80, 0.0);
831 try testArgs(f80, tmin(f80));
832 try testArgs(f80, fmin(f80));
833 try testArgs(f80, 1e-1);
834 try testArgs(f80, 1e0);
835 try testArgs(f80, 1e1);
836 try testArgs(f80, fmax(f80));
837 try testArgs(f80, inf(f80));
838 try testArgs(f80, nan(f80));
839
840 try testArgs(f128, -nan(f128));
841 try testArgs(f128, -inf(f128));
842 try testArgs(f128, -fmax(f128));
843 try testArgs(f128, -1e1);
844 try testArgs(f128, -1e0);
845 try testArgs(f128, -1e-1);
846 try testArgs(f128, -fmin(f128));
847 try testArgs(f128, -tmin(f128));
848 try testArgs(f128, -0.0);
849 try testArgs(f128, 0.0);
850 try testArgs(f128, tmin(f128));
851 try testArgs(f128, fmin(f128));
852 try testArgs(f128, 1e-1);
853 try testArgs(f128, 1e0);
854 try testArgs(f128, 1e1);
855 try testArgs(f128, fmax(f128));
856 try testArgs(f128, inf(f128));
857 try testArgs(f128, nan(f128));
858 }
859 fn testIntVectorTypes() !void {
860 try testArgs(@Vector(3, i1), undefined);
861 try testArgs(@Vector(3, u1), undefined);
862 try testArgs(@Vector(3, i2), undefined);
863 try testArgs(@Vector(3, u2), undefined);
864 try testArgs(@Vector(3, i3), undefined);
865 try testArgs(@Vector(3, u3), undefined);
866 try testArgs(@Vector(3, i4), undefined);
867 try testArgs(@Vector(1, i4), undefined);
868 try testArgs(@Vector(2, i4), undefined);
869 try testArgs(@Vector(4, i4), undefined);
870 try testArgs(@Vector(8, i4), undefined);
871 try testArgs(@Vector(16, i4), undefined);
872 try testArgs(@Vector(32, i4), undefined);
873 try testArgs(@Vector(64, i4), undefined);
874 try testArgs(@Vector(128, i4), undefined);
875 try testArgs(@Vector(256, i4), undefined);
876 try testArgs(@Vector(3, u4), undefined);
877 try testArgs(@Vector(1, u4), undefined);
878 try testArgs(@Vector(2, u4), undefined);
879 try testArgs(@Vector(4, u4), undefined);
880 try testArgs(@Vector(8, u4), undefined);
881 try testArgs(@Vector(16, u4), undefined);
882 try testArgs(@Vector(32, u4), undefined);
883 try testArgs(@Vector(64, u4), undefined);
884 try testArgs(@Vector(128, u4), undefined);
885 try testArgs(@Vector(256, u4), undefined);
886 try testArgs(@Vector(3, i5), undefined);
887 try testArgs(@Vector(3, u5), undefined);
888 try testArgs(@Vector(3, i7), undefined);
889 try testArgs(@Vector(3, u7), undefined);
890 try testArgs(@Vector(3, i8), undefined);
891 try testArgs(@Vector(1, i8), undefined);
892 try testArgs(@Vector(2, i8), undefined);
893 try testArgs(@Vector(4, i8), undefined);
894 try testArgs(@Vector(8, i8), undefined);
895 try testArgs(@Vector(16, i8), undefined);
896 try testArgs(@Vector(32, i8), undefined);
897 try testArgs(@Vector(64, i8), undefined);
898 try testArgs(@Vector(128, i8), undefined);
899 try testArgs(@Vector(3, u8), undefined);
900 try testArgs(@Vector(1, u8), undefined);
901 try testArgs(@Vector(2, u8), undefined);
902 try testArgs(@Vector(4, u8), undefined);
903 try testArgs(@Vector(8, u8), undefined);
904 try testArgs(@Vector(16, u8), undefined);
905 try testArgs(@Vector(32, u8), undefined);
906 try testArgs(@Vector(64, u8), undefined);
907 try testArgs(@Vector(128, u8), undefined);
908 try testArgs(@Vector(3, i9), undefined);
909 try testArgs(@Vector(3, u9), undefined);
910 try testArgs(@Vector(3, i15), undefined);
911 try testArgs(@Vector(3, u15), undefined);
912 try testArgs(@Vector(3, i16), undefined);
913 try testArgs(@Vector(1, i16), undefined);
914 try testArgs(@Vector(2, i16), undefined);
915 try testArgs(@Vector(4, i16), undefined);
916 try testArgs(@Vector(8, i16), undefined);
917 try testArgs(@Vector(16, i16), undefined);
918 try testArgs(@Vector(32, i16), undefined);
919 try testArgs(@Vector(64, i16), undefined);
920 try testArgs(@Vector(3, u16), undefined);
921 try testArgs(@Vector(1, u16), undefined);
922 try testArgs(@Vector(2, u16), undefined);
923 try testArgs(@Vector(4, u16), undefined);
924 try testArgs(@Vector(8, u16), undefined);
925 try testArgs(@Vector(16, u16), undefined);
926 try testArgs(@Vector(32, u16), undefined);
927 try testArgs(@Vector(64, u16), undefined);
928 try testArgs(@Vector(3, i17), undefined);
929 try testArgs(@Vector(3, u17), undefined);
930 try testArgs(@Vector(3, i31), undefined);
931 try testArgs(@Vector(3, u31), undefined);
932 try testArgs(@Vector(3, i32), undefined);
933 try testArgs(@Vector(1, i32), undefined);
934 try testArgs(@Vector(2, i32), undefined);
935 try testArgs(@Vector(4, i32), undefined);
936 try testArgs(@Vector(8, i32), undefined);
937 try testArgs(@Vector(16, i32), undefined);
938 try testArgs(@Vector(32, i32), undefined);
939 try testArgs(@Vector(3, u32), undefined);
940 try testArgs(@Vector(1, u32), undefined);
941 try testArgs(@Vector(2, u32), undefined);
942 try testArgs(@Vector(4, u32), undefined);
943 try testArgs(@Vector(8, u32), undefined);
944 try testArgs(@Vector(16, u32), undefined);
945 try testArgs(@Vector(32, u32), undefined);
946 try testArgs(@Vector(3, i33), undefined);
947 try testArgs(@Vector(3, u33), undefined);
948 try testArgs(@Vector(3, i63), undefined);
949 try testArgs(@Vector(3, u63), undefined);
950 try testArgs(@Vector(3, i64), undefined);
951 try testArgs(@Vector(1, i64), undefined);
952 try testArgs(@Vector(2, i64), undefined);
953 try testArgs(@Vector(4, i64), undefined);
954 try testArgs(@Vector(8, i64), undefined);
955 try testArgs(@Vector(16, i64), undefined);
956 try testArgs(@Vector(3, u64), undefined);
957 try testArgs(@Vector(1, u64), undefined);
958 try testArgs(@Vector(2, u64), undefined);
959 try testArgs(@Vector(4, u64), undefined);
960 try testArgs(@Vector(8, u64), undefined);
961 try testArgs(@Vector(16, u64), undefined);
962 try testArgs(@Vector(3, i65), undefined);
963 try testArgs(@Vector(3, u65), undefined);
964 try testArgs(@Vector(3, i127), undefined);
965 try testArgs(@Vector(3, u127), undefined);
966 try testArgs(@Vector(3, i128), undefined);
967 try testArgs(@Vector(1, i128), undefined);
968 try testArgs(@Vector(2, i128), undefined);
969 try testArgs(@Vector(4, i128), undefined);
970 try testArgs(@Vector(8, i128), undefined);
971 try testArgs(@Vector(3, u128), undefined);
972 try testArgs(@Vector(1, u128), undefined);
973 try testArgs(@Vector(2, u128), undefined);
974 try testArgs(@Vector(4, u128), undefined);
975 try testArgs(@Vector(8, u128), undefined);
976 try testArgs(@Vector(3, i129), undefined);
977 try testArgs(@Vector(3, u129), undefined);
978 try testArgs(@Vector(3, i191), undefined);
979 try testArgs(@Vector(3, u191), undefined);
980 try testArgs(@Vector(3, i192), undefined);
981 try testArgs(@Vector(1, i192), undefined);
982 try testArgs(@Vector(2, i192), undefined);
983 try testArgs(@Vector(4, i192), undefined);
984 try testArgs(@Vector(3, u192), undefined);
985 try testArgs(@Vector(1, u192), undefined);
986 try testArgs(@Vector(2, u192), undefined);
987 try testArgs(@Vector(4, u192), undefined);
988 try testArgs(@Vector(3, i193), undefined);
989 try testArgs(@Vector(3, u193), undefined);
990 try testArgs(@Vector(3, i255), undefined);
991 try testArgs(@Vector(3, u255), undefined);
992 try testArgs(@Vector(3, i256), undefined);
993 try testArgs(@Vector(1, i256), undefined);
994 try testArgs(@Vector(2, i256), undefined);
995 try testArgs(@Vector(4, i256), undefined);
996 try testArgs(@Vector(3, u256), undefined);
997 try testArgs(@Vector(1, u256), undefined);
998 try testArgs(@Vector(2, u256), undefined);
999 try testArgs(@Vector(4, u256), undefined);
1000 try testArgs(@Vector(3, i257), undefined);
1001 try testArgs(@Vector(3, u257), undefined);
1002 try testArgs(@Vector(3, i511), undefined);
1003 try testArgs(@Vector(3, u511), undefined);
1004 try testArgs(@Vector(3, i512), undefined);
1005 try testArgs(@Vector(1, i512), undefined);
1006 try testArgs(@Vector(2, i512), undefined);
1007 try testArgs(@Vector(3, u512), undefined);
1008 try testArgs(@Vector(1, u512), undefined);
1009 try testArgs(@Vector(2, u512), undefined);
1010 try testArgs(@Vector(3, i513), undefined);
1011 try testArgs(@Vector(3, u513), undefined);
1012 try testArgs(@Vector(3, i1023), undefined);
1013 try testArgs(@Vector(3, u1023), undefined);
1014 try testArgs(@Vector(3, i1024), undefined);
1015 try testArgs(@Vector(1, i1024), undefined);
1016 try testArgs(@Vector(3, u1024), undefined);
1017 try testArgs(@Vector(1, u1024), undefined);
1018 try testArgs(@Vector(3, i1025), undefined);
1019 try testArgs(@Vector(3, u1025), undefined);
1020 }
1021 fn testIntVectors() !void {
1022 try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 });
1023 try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 });
1024
1025 try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 });
1026 try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 });
1027
1028 try testArgs(@Vector(3, i3), .{ -1 << 2, -1, 0 });
1029 try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 });
1030
1031 try testArgs(@Vector(3, i4), .{ -1 << 3, -1, 0 });
1032 try testArgs(@Vector(1, i4), .{
1033 -0x2,
1034 });
1035 try testArgs(@Vector(2, i4), .{
1036 -0x7, 0x4,
1037 });
1038 try testArgs(@Vector(4, i4), .{
1039 -0x3, 0x4, 0x2, -0x2,
1040 });
1041 try testArgs(@Vector(8, i4), .{
1042 -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5,
1043 });
1044 try testArgs(@Vector(16, i4), .{
1045 -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7,
1046 });
1047 try testArgs(@Vector(32, i4), .{
1048 -0x4, -0x2, 0x6, 0x6, -0x5, -0x8, -0x8, 0x7, -0x5, -0x5, 0x4, 0x5, -0x6, -0x1, 0x2, 0x0, -0x1, 0x3, 0x5, 0x1, -0x4, 0x2, -0x8, -0x6, -0x1, 0x3, 0x1, -0x8, 0x5, -0x6, 0x0, 0x2,
1049 });
1050 try testArgs(@Vector(64, i4), .{
1051 -0x2, 0x6, -0x5, 0x2, 0x6, -0x5, 0x1, -0x6, -0x6, 0x3, -0x5, 0x5, 0x0, 0x3, -0x6, -0x2, 0x0, -0x5, -0x2, -0x7, 0x6, 0x6, -0x6, 0x5, -0x1, 0x1, -0x5, 0x4, -0x1, 0x2, 0x5, 0x0,
1052 0x6, -0x1, -0x3, -0x1, 0x0, 0x0, -0x2, -0x5, 0x7, 0x4, -0x7, 0x4, -0x8, 0x2, -0x1, -0x5, 0x4, -0x6, -0x3, 0x6, -0x6, 0x5, 0x0, 0x6, -0x3, 0x3, -0x4, -0x4, 0x3, -0x6, -0x5, -0x3,
1053 });
1054 try testArgs(@Vector(128, i4), .{
1055 -0x2, 0x7, -0x7, 0x5, 0x4, -0x8, -0x4, 0x2, -0x6, 0x6, 0x3, 0x4, -0x6, -0x3, 0x1, -0x3, 0x4, -0x4, 0x0, -0x5, 0x4, -0x2, 0x4, -0x6, 0x4, 0x7, -0x6, 0x3, -0x6, 0x5, 0x7, -0x7,
1056 -0x8, 0x0, 0x2, -0x6, -0x4, 0x5, -0x2, -0x6, 0x2, -0x3, -0x8, -0x3, -0x1, 0x4, 0x7, -0x2, 0x7, -0x3, 0x5, 0x3, -0x6, 0x5, -0x2, -0x5, -0x1, 0x5, -0x6, -0x2, -0x5, -0x4, -0x7, -0x3,
1057 -0x4, -0x4, 0x6, -0x8, -0x2, 0x3, 0x1, 0x7, 0x1, -0x2, -0x7, -0x2, -0x8, -0x6, -0x6, 0x0, -0x3, -0x4, 0x3, -0x5, -0x3, -0x5, 0x6, 0x5, -0x7, -0x8, -0x5, -0x6, -0x2, -0x5, 0x5, -0x5,
1058 0x0, -0x6, -0x3, 0x0, 0x7, 0x6, -0x6, -0x7, -0x4, -0x5, 0x3, 0x2, 0x7, -0x3, -0x2, 0x4, -0x4, -0x5, 0x6, 0x1, 0x7, -0x5, -0x6, 0x0, 0x0, -0x8, 0x4, -0x1, -0x7, 0x0, 0x0, 0x5,
1059 });
1060 try testArgs(@Vector(256, i4), .{
1061 -0x7, 0x4, 0x7, -0x5, 0x6, -0x2, 0x6, -0x5, 0x5, 0x5, 0x3, -0x3, -0x5, 0x0, 0x5, 0x1, 0x4, -0x1, 0x4, -0x8, -0x4, -0x8, 0x2, -0x8, 0x3, 0x1, -0x7, -0x3, -0x1, 0x5, -0x5, -0x8,
1062 -0x3, -0x3, -0x5, 0x6, 0x0, 0x4, -0x3, -0x5, 0x0, 0x5, -0x1, -0x3, -0x4, -0x3, 0x6, -0x3, -0x1, 0x5, -0x3, -0x3, 0x0, 0x3, -0x2, -0x1, -0x5, 0x3, 0x2, -0x8, 0x7, -0x8, 0x6, 0x4,
1063 -0x5, -0x4, 0x5, 0x5, 0x6, -0x3, 0x2, -0x4, 0x3, 0x7, 0x6, -0x2, -0x8, -0x1, -0x8, 0x2, 0x4, 0x1, 0x2, -0x1, 0x5, 0x1, 0x3, 0x1, 0x3, -0x5, 0x3, -0x5, -0x5, 0x5, -0x6, -0x7,
1064 0x0, 0x0, -0x3, 0x6, 0x0, 0x5, 0x3, 0x0, 0x0, -0x1, -0x6, -0x4, 0x5, -0x8, -0x4, -0x3, -0x3, 0x2, -0x5, -0x4, 0x4, 0x5, -0x6, -0x3, 0x2, 0x5, -0x7, -0x6, 0x3, 0x7, -0x2, 0x6,
1065 0x2, 0x3, 0x7, 0x3, 0x2, -0x5, 0x4, 0x5, -0x4, -0x7, 0x2, 0x2, -0x5, 0x7, -0x3, -0x8, 0x2, -0x4, 0x2, 0x4, 0x5, -0x7, 0x7, -0x6, 0x4, -0x8, -0x1, 0x7, 0x0, -0x4, 0x6, -0x8,
1066 -0x5, 0x4, -0x5, 0x1, 0x6, -0x8, -0x1, -0x3, -0x5, 0x7, 0x1, 0x0, -0x3, 0x4, -0x5, -0x7, -0x5, 0x2, 0x0, -0x1, -0x4, 0x0, 0x5, 0x6, -0x3, -0x4, -0x2, 0x4, -0x1, -0x8, 0x0, 0x6,
1067 0x7, 0x1, 0x5, 0x2, -0x4, -0x7, -0x3, -0x3, -0x8, -0x8, -0x3, -0x4, 0x5, -0x5, -0x2, -0x2, 0x1, 0x1, 0x1, -0x8, 0x5, 0x4, 0x5, 0x6, 0x3, 0x0, -0x2, -0x1, 0x4, -0x4, -0x5, 0x0,
1068 -0x7, -0x8, -0x2, 0x1, 0x5, 0x4, 0x5, -0x7, 0x3, 0x2, 0x2, 0x5, -0x3, 0x7, -0x4, 0x0, -0x3, -0x2, -0x5, 0x1, 0x1, -0x4, -0x4, 0x1, -0x8, -0x3, 0x6, -0x8, -0x2, 0x5, 0x7, -0x3,
1069 });
1070
1071 try testArgs(@Vector(3, u4), .{ 0, 1, 1 << 3 });
1072 try testArgs(@Vector(1, u4), .{
1073 0xb,
1074 });
1075 try testArgs(@Vector(2, u4), .{
1076 0x3, 0x4,
1077 });
1078 try testArgs(@Vector(4, u4), .{
1079 0x9, 0x2, 0xf, 0xe,
1080 });
1081 try testArgs(@Vector(8, u4), .{
1082 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6,
1083 });
1084 try testArgs(@Vector(16, u4), .{
1085 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc,
1086 });
1087 try testArgs(@Vector(32, u4), .{
1088 0xe, 0x6, 0xe, 0xa, 0xb, 0x4, 0xa, 0xb, 0x1, 0x3, 0xb, 0xc, 0x0, 0xb, 0x9, 0x4, 0xd, 0xa, 0xd, 0xd, 0x4, 0x8, 0x8, 0x6, 0xb, 0xe, 0x9, 0x6, 0xc, 0xd, 0x5, 0xd,
1089 });
1090 try testArgs(@Vector(64, u4), .{
1091 0x1, 0xc, 0xe, 0x9, 0x9, 0xf, 0x3, 0xf, 0x9, 0x9, 0x5, 0x3, 0xb, 0xd, 0xd, 0xf, 0x1, 0x2, 0xf, 0x9, 0x4, 0x4, 0x8, 0x9, 0x2, 0x9, 0x8, 0xe, 0x8, 0xa, 0x4, 0x3,
1092 0x4, 0xc, 0xb, 0x6, 0x4, 0x0, 0xa, 0x5, 0x1, 0xa, 0x4, 0xe, 0xa, 0x7, 0xd, 0x0, 0x4, 0xe, 0xe, 0x7, 0x7, 0xa, 0x4, 0x5, 0x6, 0xc, 0x6, 0x2, 0x6, 0xa, 0xe, 0xa,
1093 });
1094 try testArgs(@Vector(128, u4), .{
1095 0xd, 0x5, 0x6, 0xe, 0x3, 0x3, 0x3, 0xe, 0xd, 0xd, 0x9, 0x0, 0x0, 0xe, 0xa, 0x9, 0x8, 0x7, 0xb, 0x5, 0x7, 0xf, 0xb, 0x8, 0x0, 0xf, 0xb, 0x3, 0xa, 0x2, 0xb, 0xc,
1096 0x1, 0x1, 0xc, 0x8, 0x8, 0x6, 0x9, 0x1, 0xb, 0x0, 0x2, 0xb, 0x2, 0x2, 0x7, 0x6, 0x1, 0x1, 0xb, 0x4, 0x6, 0x4, 0x7, 0xc, 0xd, 0xc, 0xa, 0x8, 0x1, 0x7, 0x8, 0xa,
1097 0x9, 0xa, 0x1, 0x8, 0x1, 0x7, 0x9, 0x4, 0x5, 0x9, 0xd, 0x0, 0xa, 0xf, 0x3, 0x3, 0x9, 0x2, 0xf, 0x5, 0xb, 0x8, 0x6, 0xb, 0xf, 0x5, 0x8, 0x3, 0x9, 0xf, 0x6, 0x8,
1098 0xc, 0x8, 0x3, 0x4, 0xa, 0xe, 0xc, 0x1, 0xe, 0x9, 0x1, 0x8, 0xf, 0x6, 0xc, 0xc, 0x6, 0xf, 0x6, 0xd, 0xb, 0x9, 0xc, 0x3, 0xd, 0xa, 0x6, 0x8, 0x4, 0xa, 0x6, 0x9,
1099 });
1100 try testArgs(@Vector(256, u4), .{
1101 0x6, 0xc, 0xe, 0x3, 0x8, 0x2, 0xb, 0xd, 0x3, 0xa, 0x3, 0x8, 0xb, 0x8, 0x3, 0x0, 0xb, 0x5, 0x1, 0x3, 0x2, 0x2, 0xf, 0xc, 0x5, 0x1, 0x3, 0xb, 0x1, 0xc, 0x2, 0xd,
1102 0xa, 0x8, 0x1, 0xc, 0xb, 0xa, 0x3, 0x1, 0xe, 0x4, 0xf, 0xb, 0xd, 0x8, 0xf, 0xa, 0xc, 0xb, 0xb, 0x0, 0xa, 0xc, 0xf, 0xe, 0x8, 0xd, 0x9, 0x3, 0xa, 0xe, 0x8, 0x7,
1103 0x5, 0xa, 0x0, 0xe, 0x0, 0xd, 0x2, 0x2, 0x9, 0x4, 0x8, 0x9, 0x0, 0x4, 0x4, 0x8, 0xe, 0x1, 0xf, 0x1, 0x9, 0x3, 0xf, 0xc, 0xa, 0x0, 0x3, 0x2, 0x4, 0x1, 0x2, 0x3,
1104 0xf, 0x2, 0x7, 0xb, 0x5, 0x0, 0xd, 0x3, 0x4, 0xf, 0xa, 0x3, 0xc, 0x2, 0x5, 0xe, 0x7, 0x5, 0xd, 0x7, 0x9, 0x0, 0xd, 0x7, 0x9, 0xd, 0x5, 0x7, 0xf, 0xd, 0xb, 0x4,
1105 0x9, 0x6, 0xf, 0xb, 0x1, 0xb, 0x6, 0xb, 0xf, 0x7, 0xf, 0x0, 0x4, 0x7, 0x5, 0xa, 0x8, 0x1, 0xf, 0x9, 0x9, 0x0, 0x6, 0xb, 0x1, 0x2, 0x4, 0x3, 0x2, 0x0, 0x7, 0x0,
1106 0x6, 0x7, 0xf, 0x1, 0xe, 0xa, 0x8, 0x2, 0x9, 0xc, 0x1, 0x5, 0x7, 0x1, 0xb, 0x0, 0x1, 0x3, 0xd, 0x3, 0x0, 0x1, 0xa, 0x0, 0x3, 0x7, 0x1, 0x2, 0xb, 0xc, 0x2, 0x9,
1107 0x8, 0x8, 0x7, 0x0, 0xd, 0x5, 0x1, 0x5, 0x7, 0x7, 0x2, 0x3, 0x8, 0x7, 0xc, 0x8, 0xf, 0xa, 0xf, 0xf, 0x3, 0x2, 0x0, 0x4, 0x7, 0x5, 0x6, 0xd, 0x6, 0x3, 0xa, 0x4,
1108 0x1, 0x1, 0x2, 0xc, 0x3, 0xe, 0x2, 0xc, 0x7, 0x6, 0xe, 0xf, 0xb, 0x8, 0x6, 0x6, 0x9, 0x0, 0x4, 0xb, 0xe, 0x4, 0x2, 0x7, 0xf, 0xc, 0x0, 0x6, 0xd, 0xa, 0xe, 0xc,
1109 });
1110
1111 try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 });
1112 try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 });
1113
1114 try testArgs(@Vector(3, i7), .{ -1 << 6, -1, 0 });
1115 try testArgs(@Vector(3, u7), .{ 0, 1, 1 << 6 });
1116
1117 try testArgs(@Vector(3, i8), .{ -1 << 7, -1, 0 });
1118 try testArgs(@Vector(1, i8), .{
1119 0x71,
1120 });
1121 try testArgs(@Vector(2, i8), .{
1122 -0x50, -0x43,
1123 });
1124 try testArgs(@Vector(4, i8), .{
1125 -0x09, -0x19, -0x15, -0x5d,
1126 });
1127 try testArgs(@Vector(8, i8), .{
1128 -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63,
1129 });
1130 try testArgs(@Vector(16, i8), .{
1131 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45,
1132 });
1133 try testArgs(@Vector(32, i8), .{
1134 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a,
1135 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39,
1136 });
1137 try testArgs(@Vector(64, i8), .{
1138 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f,
1139 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44,
1140 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02,
1141 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57,
1142 });
1143 try testArgs(@Vector(128, i8), .{
1144 -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a,
1145 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f,
1146 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64,
1147 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55,
1148 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f,
1149 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60,
1150 -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03,
1151 -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19,
1152 });
1153
1154 try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 });
1155 try testArgs(@Vector(1, u8), .{
1156 0x33,
1157 });
1158 try testArgs(@Vector(2, u8), .{
1159 0x66, 0x87,
1160 });
1161 try testArgs(@Vector(4, u8), .{
1162 0x9d, 0xcb, 0x30, 0x7b,
1163 });
1164 try testArgs(@Vector(8, u8), .{
1165 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d,
1166 });
1167 try testArgs(@Vector(16, u8), .{
1168 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37,
1169 });
1170 try testArgs(@Vector(32, u8), .{
1171 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae,
1172 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6,
1173 });
1174 try testArgs(@Vector(64, u8), .{
1175 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72,
1176 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3,
1177 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c,
1178 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72,
1179 });
1180 try testArgs(@Vector(128, u8), .{
1181 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11,
1182 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21,
1183 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67,
1184 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea,
1185 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86,
1186 0xfb, 0x29, 0xfe, 0xc7, 0xff, 0x62, 0x1a, 0x6f, 0xf8, 0xbd, 0xfe, 0xa4, 0xac, 0x24, 0xcf, 0x56,
1187 0x82, 0x69, 0x81, 0x0d, 0xc1, 0x51, 0x8d, 0x85, 0xf4, 0x00, 0xe7, 0x25, 0xab, 0xa5, 0x33, 0x45,
1188 0x66, 0x2e, 0x33, 0xc8, 0xf3, 0x35, 0x16, 0x7d, 0x1f, 0xc9, 0xf7, 0x44, 0xab, 0x66, 0x28, 0x0d,
1189 });
1190
1191 try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 });
1192 try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 });
1193
1194 try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 });
1195 try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 });
1196
1197 try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 });
1198 try testArgs(@Vector(1, i16), .{
1199 -0x015a,
1200 });
1201 try testArgs(@Vector(2, i16), .{
1202 -0x1c2f, 0x5ce8,
1203 });
1204 try testArgs(@Vector(4, i16), .{
1205 0x1212, 0x5bfc, -0x20ea, 0x0993,
1206 });
1207 try testArgs(@Vector(8, i16), .{
1208 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23,
1209 });
1210 try testArgs(@Vector(16, i16), .{
1211 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377,
1212 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5,
1213 });
1214 try testArgs(@Vector(32, i16), .{
1215 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0,
1216 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078,
1217 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d,
1218 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3,
1219 });
1220 try testArgs(@Vector(64, i16), .{
1221 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb,
1222 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e,
1223 0x2fab, -0x2b96, 0x7474, -0x6644, -0x5484, -0x278e, -0x6a0e, -0x5210,
1224 0x1adf, -0x2799, 0x61e0, -0x733c, -0x6bcc, -0x6fe2, -0x4e91, 0x5d01,
1225 0x3745, 0x24eb, 0x6c89, 0x4a94, -0x7339, 0x4907, -0x4f8f, -0x7e39,
1226 0x1a32, 0x65ca, -0x6c27, -0x3269, 0x107b, 0x1c53, -0x5529, 0x5232,
1227 -0x26ec, 0x4442, -0x63f5, -0x174a, 0x3033, -0x7363, 0x58be, 0x239f,
1228 0x7f7b, -0x437d, -0x6df6, 0x0a7b, 0x3faa, -0x1d75, -0x7426, 0x1274,
1229 });
1230
1231 try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 });
1232 try testArgs(@Vector(1, u16), .{
1233 0x4da6,
1234 });
1235 try testArgs(@Vector(2, u16), .{
1236 0x04d7, 0x50c6,
1237 });
1238 try testArgs(@Vector(4, u16), .{
1239 0x4c06, 0xd71f, 0x4d8f, 0xe0a4,
1240 });
1241 try testArgs(@Vector(8, u16), .{
1242 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7,
1243 });
1244 try testArgs(@Vector(16, u16), .{
1245 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a,
1246 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01,
1247 });
1248 try testArgs(@Vector(32, u16), .{
1249 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd,
1250 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71,
1251 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229,
1252 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2,
1253 });
1254 try testArgs(@Vector(64, u16), .{
1255 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f,
1256 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead,
1257 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387,
1258 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803,
1259 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853,
1260 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0,
1261 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed,
1262 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f,
1263 });
1264
1265 try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 });
1266 try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 });
1267
1268 try testArgs(@Vector(3, i31), .{ -1 << 30, -1, 0 });
1269 try testArgs(@Vector(3, u31), .{ 0, 1, 1 << 30 });
1270
1271 try testArgs(@Vector(3, i32), .{ -1 << 31, -1, 0 });
1272 try testArgs(@Vector(1, i32), .{
1273 -0x27f49dce,
1274 });
1275 try testArgs(@Vector(2, i32), .{
1276 0x24641ec7, 0x436c5bd2,
1277 });
1278 try testArgs(@Vector(4, i32), .{
1279 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73,
1280 });
1281 try testArgs(@Vector(8, i32), .{
1282 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8,
1283 -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966,
1284 });
1285 try testArgs(@Vector(16, i32), .{
1286 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400,
1287 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf,
1288 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a,
1289 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8,
1290 });
1291 try testArgs(@Vector(32, i32), .{
1292 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d,
1293 -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2,
1294 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287,
1295 -0x7cf56523, -0x3c98e2e4, 0x1e7db6c0, -0x7e668ad2,
1296 -0x6c245ecf, -0x09842450, -0x403a4335, -0x7a68e9b7,
1297 0x0036cf57, -0x251edb4e, -0x67ec3abf, -0x183f0333,
1298 -0x4b46723c, -0x1e5383d6, 0x188c1de3, 0x400b3648,
1299 -0x4b21d9d3, 0x61635257, 0x179eb187, 0x31cd8376,
1300 });
1301
1302 try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 });
1303 try testArgs(@Vector(1, u32), .{
1304 0x17e2805c,
1305 });
1306 try testArgs(@Vector(2, u32), .{
1307 0xdb6aadc5, 0xb1ff3754,
1308 });
1309 try testArgs(@Vector(4, u32), .{
1310 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374,
1311 });
1312 try testArgs(@Vector(8, u32), .{
1313 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7,
1314 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c,
1315 });
1316 try testArgs(@Vector(16, u32), .{
1317 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13,
1318 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc,
1319 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a,
1320 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54,
1321 });
1322 try testArgs(@Vector(32, u32), .{
1323 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72,
1324 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7,
1325 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c,
1326 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37,
1327 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d,
1328 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785,
1329 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa,
1330 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f,
1331 });
1332
1333 try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 });
1334 try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 });
1335
1336 try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 });
1337 try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 });
1338
1339 try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 });
1340 try testArgs(@Vector(1, i64), .{
1341 0x29113011488d8b65,
1342 });
1343 try testArgs(@Vector(2, i64), .{
1344 -0x3f865dcdfd831d03, -0x35512d15095445d6,
1345 });
1346 try testArgs(@Vector(4, i64), .{
1347 0x6f37a9484440251e, 0x2757e5e2b77e6ef3,
1348 0x4903a91bd2993d0b, 0x162244ba22371f62,
1349 });
1350 try testArgs(@Vector(8, i64), .{
1351 -0x46e2340c765175c1, -0x031ee2297e6cc8b3,
1352 -0x2627434d4b4fb796, 0x525e1ef31b6daa46,
1353 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448,
1354 -0x5419ebf5cd514cde, -0x618c56a881057ac4,
1355 });
1356 try testArgs(@Vector(16, i64), .{
1357 0x36b4a703d084c774, 0x07a500f0d603a4d5,
1358 -0x27387989d2450cdd, 0x02073880984d74c8,
1359 -0x18d1593e36724417, -0x79df283cc6f403d8,
1360 0x36838a7c54da5f2b, -0x2bf76c1666a1b768,
1361 -0x6ace0d64a2757edc, 0x41442e9979a0ab64,
1362 0x002612bfdf419826, 0x1128ba5648d22fe8,
1363 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3,
1364 -0x5c89f516258c7e77, 0x6b345f04e60d2e56,
1365 });
1366
1367 try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 });
1368 try testArgs(@Vector(1, u64), .{
1369 0x7d2e439abb0edba7,
1370 });
1371 try testArgs(@Vector(2, u64), .{
1372 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389,
1373 });
1374 try testArgs(@Vector(4, u64), .{
1375 0x03c127040e10d52b, 0xa86fe019072e27eb,
1376 0x0a554a47b709cdba, 0xf4342cc597e196c3,
1377 });
1378 try testArgs(@Vector(8, u64), .{
1379 0xea455c104375a055, 0x5c35d9d945edb2fa,
1380 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b,
1381 0xed6603f1f5d574b3, 0x2f37b354c81c1e56,
1382 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f,
1383 });
1384 try testArgs(@Vector(16, u64), .{
1385 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8,
1386 0xebf24b31c0460510, 0x15d5b4c09b53ffa5,
1387 0x05abf6e744b17cc6, 0x9747b483f2d159fe,
1388 0x4616d8b2c8673125, 0x8ae3f91d422447eb,
1389 0x18da2f101a9e9776, 0x77a1197fb0441007,
1390 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278,
1391 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515,
1392 0x0901c59a9a6a408b, 0x7c77ca72e25df033,
1393 });
1394
1395 try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 });
1396 try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 });
1397
1398 try testArgs(@Vector(3, i127), .{ -1 << 126, -1, 0 });
1399 try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 });
1400
1401 try testArgs(@Vector(3, i128), .{ -1 << 127, -1, 0 });
1402 try testArgs(@Vector(1, i128), .{
1403 -0x2b0b1462b44785f39d1b7d763ec7bdb2,
1404 });
1405 try testArgs(@Vector(2, i128), .{
1406 -0x2faebe898a6fe60fbc6aadc3623431b7,
1407 0x5e596259e7b2588860d2b470ba751ace,
1408 });
1409 try testArgs(@Vector(4, i128), .{
1410 -0x624cb7e74cf789c06121809a3a5b51ba,
1411 0x23af4553d4d64672795c2b949635426f,
1412 -0x0b598b1f94876757fb13f2198e902b13,
1413 0x1daf732f50654d8211d464fda4fc030c,
1414 });
1415 try testArgs(@Vector(8, i128), .{
1416 -0x03c7df38daee9bc9a2c659a1a124ef10,
1417 0x657a590c91905c4021c28b0d6e42304a,
1418 -0x3f5176206dadc974d10e6fcbd67f3d29,
1419 0x066310ace384b1bc3549c71113b96b8a,
1420 -0x6c0201f66583206fcea7b7fe11889644,
1421 -0x5cc4d2a368002b380b25415be83f8218,
1422 0x11156c91b97a6a93427009efebcb2c31,
1423 -0x4221b5249ed0686c2ff2d5cab9f1c362,
1424 });
1425
1426 try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 });
1427 try testArgs(@Vector(1, u128), .{
1428 0x809f29e7fbafadc01145e1732590e7d9,
1429 });
1430 try testArgs(@Vector(2, u128), .{
1431 0x5150ac3438aacd0d51132cc2723b2995,
1432 0x151be9c47ad29cf719cf8358dd40165c,
1433 });
1434 try testArgs(@Vector(4, u128), .{
1435 0x4bae22df929f2f7cb9bd84deaad3e7a8,
1436 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb,
1437 0xae93ea459d2ccfd5fb794e6d5c31aabb,
1438 0xb1177136acf099f550b70949ac202ec4,
1439 });
1440 try testArgs(@Vector(8, u128), .{
1441 0x7cd78db6baed6bfdf8c5265136c4e0fd,
1442 0xa41b8984c6bbde84640068194b7eba98,
1443 0xd33102778f2ae1a48d1e9bf8801bbbf0,
1444 0x0d59f6de003513a60055c86cbce2c200,
1445 0x825579d90012afddfbf04851c0748561,
1446 0xc2647c885e9d6f0ee1f5fac5da8ef7f5,
1447 0xcb4bbc1f81aa8ee68aa4dc140745687b,
1448 0x4ff10f914f74b46c694407f5bf7c7836,
1449 });
1450
1451 try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 });
1452 try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 });
1453
1454 try testArgs(@Vector(3, i191), .{ -1 << 190, -1, 0 });
1455 try testArgs(@Vector(3, u191), .{ 0, 1, 1 << 190 });
1456
1457 try testArgs(@Vector(3, i192), .{ -1 << 191, -1, 0 });
1458 try testArgs(@Vector(1, i192), .{
1459 0x0206223e53631dfaf431066cf5ac30dd203bb8c7baa0cec7,
1460 });
1461 try testArgs(@Vector(2, i192), .{
1462 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b,
1463 -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3,
1464 });
1465 try testArgs(@Vector(4, i192), .{
1466 -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41,
1467 -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33,
1468 -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073,
1469 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd,
1470 });
1471
1472 try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 });
1473 try testArgs(@Vector(1, u192), .{
1474 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b,
1475 });
1476 try testArgs(@Vector(2, u192), .{
1477 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83,
1478 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65,
1479 });
1480 try testArgs(@Vector(4, u192), .{
1481 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202,
1482 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d,
1483 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d,
1484 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a,
1485 });
1486
1487 try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 });
1488 try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 });
1489
1490 try testArgs(@Vector(3, i255), .{ -1 << 254, -1, 0 });
1491 try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 });
1492
1493 try testArgs(@Vector(3, i256), .{ -1 << 255, -1, 0 });
1494 try testArgs(@Vector(1, i256), .{
1495 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3,
1496 });
1497 try testArgs(@Vector(2, i256), .{
1498 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb,
1499 -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832,
1500 });
1501 try testArgs(@Vector(4, i256), .{
1502 -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5,
1503 -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b,
1504 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311,
1505 -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111,
1506 });
1507
1508 try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 });
1509 try testArgs(@Vector(1, u256), .{
1510 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda,
1511 });
1512 try testArgs(@Vector(2, u256), .{
1513 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d,
1514 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7,
1515 });
1516 try testArgs(@Vector(4, u256), .{
1517 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97,
1518 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa,
1519 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce,
1520 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07,
1521 });
1522
1523 try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 });
1524 try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 });
1525
1526 try testArgs(@Vector(3, i511), .{ -1 << 510, -1, 0 });
1527 try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 });
1528
1529 try testArgs(@Vector(3, i512), .{ -1 << 511, -1, 0 });
1530 try testArgs(@Vector(1, i512), .{
1531 -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5,
1532 });
1533 try testArgs(@Vector(2, i512), .{
1534 -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1,
1535 -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845,
1536 });
1537
1538 try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 });
1539 try testArgs(@Vector(1, u512), .{
1540 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6,
1541 });
1542 try testArgs(@Vector(2, u512), .{
1543 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53,
1544 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e,
1545 });
1546
1547 try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 });
1548 try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 });
1549
1550 try testArgs(@Vector(3, i1023), .{ -1 << 1022, -1, 0 });
1551 try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 });
1552
1553 try testArgs(@Vector(3, i1024), .{ -1 << 1023, -1, 0 });
1554 try testArgs(@Vector(1, i1024), .{
1555 0x10eee350e115375812126750b24255ca76fdee619b64261c354af58bd4a29af6e2448ccda4d84e1b2fbf76d3710cf1b5e62b1360c3b63e104d0755fa264d6c171f8f7a3292d7859b08a5dff60e9ad8ba9dcdd7e6098eb70be7a27a0cbcc6480661330c21299b2960fac954ee4480f3a2cc1ca5a492e1e75084c079ba701cd7ab,
1556 });
1557
1558 try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 });
1559 try testArgs(@Vector(1, u1024), .{
1560 0xc6cfaa6571139552e1f067402dfc131d9b9a58aafda97198a78764b05138fb68cf26f085b7652f3d5ae0e56aa21732f296a581bb411d4a73795c213de793489fa49b173b9f5c089aa6295ff1fcdc14d491a05035b45d08fc35cd67a83d887a02b8db512f07518132e0ba56533c7d6fbe958255eddf5649bd8aba288c0dd84a25,
1561 });
1562
1563 try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 });
1564 try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 });
1565 }
1566 fn testFloatVectorTypes() !void {
1567 try testArgs(@Vector(1, f16), undefined);
1568 try testArgs(@Vector(2, f16), undefined);
1569 try testArgs(@Vector(4, f16), undefined);
1570 try testArgs(@Vector(8, f16), undefined);
1571 try testArgs(@Vector(16, f16), undefined);
1572 try testArgs(@Vector(32, f16), undefined);
1573 try testArgs(@Vector(64, f16), undefined);
1574
1575 try testArgs(@Vector(1, f32), undefined);
1576 try testArgs(@Vector(2, f32), undefined);
1577 try testArgs(@Vector(4, f32), undefined);
1578 try testArgs(@Vector(8, f32), undefined);
1579 try testArgs(@Vector(16, f32), undefined);
1580 try testArgs(@Vector(32, f32), undefined);
1581
1582 try testArgs(@Vector(1, f64), undefined);
1583 try testArgs(@Vector(2, f64), undefined);
1584 try testArgs(@Vector(4, f64), undefined);
1585 try testArgs(@Vector(8, f64), undefined);
1586 try testArgs(@Vector(16, f64), undefined);
1587
1588 try testArgs(@Vector(1, f80), undefined);
1589 try testArgs(@Vector(2, f80), undefined);
1590 try testArgs(@Vector(4, f80), undefined);
1591 try testArgs(@Vector(8, f80), undefined);
1592
1593 try testArgs(@Vector(1, f128), undefined);
1594 try testArgs(@Vector(2, f128), undefined);
1595 try testArgs(@Vector(4, f128), undefined);
1596 try testArgs(@Vector(8, f128), undefined);
1597 }
1598 fn testFloatVectors() !void {
1599 try testArgs(@Vector(1, f16), .{
1600 -0x1.17cp-12,
1601 });
1602 try testArgs(@Vector(2, f16), .{
1603 0x1.47cp9, 0x1.3acp9,
1604 });
1605 try testArgs(@Vector(4, f16), .{
1606 0x1.ab4p0, -0x1.7fcp-7, -0x1.1cp0, -0x1.f14p12,
1607 });
1608 try testArgs(@Vector(8, f16), .{
1609 -0x1.8d8p8, 0x1.83p10, -0x1.5ap-1, -0x1.d78p13, -0x1.608p12, 0x1.e8p-9, -0x1.688p-10, -0x1.738p9,
1610 });
1611 try testArgs(@Vector(16, f16), .{
1612 0x1.da8p-1, -0x1.ed4p-10, -0x1.dc8p1, 0x1.b78p-14, nan(f16), 0x1.9d8p8, nan(f16), 0x1.d5p13,
1613 -0x1.2dp13, 0x1.6c4p12, 0x1.a9cp-11, -0x1.0ecp8, 0x0.4ccp-14, -0x1.0a8p-6, -0x1.5bcp-14, 0x1.6d8p-9,
1614 });
1615 try testArgs(@Vector(32, f16), .{
1616 0x1.d5cp-6, -0x1.a98p5, 0x1.49cp5, -0x1.e4p-1, -0x1.21p-13, -0x1.c94p-1, -0x1.adcp-5, -0x1.524p-1,
1617 -0x1.0d8p-3, -0x1.5c4p-2, 0x1.f84p-2, 0x1.664p1, -0x1.f64p13, -0x1.bf4p4, -0x1.4b8p0, -0x0.f64p-14,
1618 -0x1.3f8p1, 0x1.098p2, -0x1.a44p8, 0x1.048p13, 0x1.fd4p-11, 0x1.18p-9, -0x1.504p2, 0x1.d04p7,
1619 -nan(f16), 0x1.a94p2, 0x0.5e8p-14, -0x1.7acp-7, 0x1.4c8p-3, 0x1.518p-4, nan(f16), 0x1.8f8p10,
1620 });
1621 try testArgs(@Vector(64, f16), .{
1622 -0x1.c2p2, 0x0.2fcp-14, 0x1.de8p0, -0x1.714p2, 0x1.f9p-7, -0x1.11cp-13, -0x1.558p10, -0x1.2acp-7,
1623 0x1.348p14, 0x1.2dcp7, -0x1.8acp-12, -0x1.2cp2, 0x1.868p1, -0x1.1f8p-14, 0x1.638p7, -0x1.734p-5,
1624 0x0.b98p-14, -0x1.7f4p-12, -0x1.38cp15, 0x1.50cp15, 0x1.91cp8, 0x1.cb4p-1, 0x1.fc4p-13, 0x1.9a4p0,
1625 0x1.18p-4, 0x1.60cp10, 0x1.6fp-12, 0x1.b48p6, 0x1.37cp-11, 0x1.424p7, 0x1.44cp13, 0x1.aep5,
1626 0x1.968p14, 0x1.e8p13, -0x1.bp2, -0x1.644p5, 0x1.de4p-8, -0x1.5b4p-14, -0x1.4ap1, -0x1.868p9,
1627 -0x1.d14p0, 0x1.d7cp15, 0x1.3c8p14, 0x1.2ccp-14, -0x1.ee4p8, 0x1.49p-3, 0x1.35cp12, 0x1.d34p6,
1628 0x1.7acp3, -0x1.fa4p2, 0x1.7b4p13, -0x1.cf4p-12, -0x1.ebcp-10, -0x1.5p-3, 0x1.4bp-6, 0x1.83p12,
1629 -0x1.f9cp-8, -0x1.43p-8, -0x1.99p-1, -0x1.dacp3, -0x1.728p-4, -0x1.03cp4, 0x1.604p-2, -0x1.0ep13,
1630 });
1631
1632 try testArgs(@Vector(1, f32), .{
1633 -0x1.17cp-12,
1634 });
1635 try testArgs(@Vector(2, f32), .{
1636 -0x1.a3123ap90, -0x1.4a2ec6p-54,
1637 });
1638 try testArgs(@Vector(4, f32), .{
1639 -0x1.8a41p77, -0x1.7c54e2p-61, -0x1.498556p-41, 0x1.d77c22p-20,
1640 });
1641 try testArgs(@Vector(8, f32), .{
1642 0x1.943da4p-86, 0x1.528792p95, -0x1.9c9bfap-26, -0x1.8df936p-90,
1643 -0x1.6a70cep56, 0x1.626638p-48, 0x1.7bb2bap-57, -0x1.ac5104p94,
1644 });
1645 try testArgs(@Vector(16, f32), .{
1646 0x1.157044p115, -0x1.416c04p-111, 0x1.a8f164p-104, 0x1.9b6678p84,
1647 -0x1.9d065cp9, -0x1.e8c4b4p126, -0x1.ddb968p84, -0x1.fec8c8p74,
1648 0x1.64ffb2p59, 0x1.548922p20, 0x1.7270fcp22, -0x1.abac68p33,
1649 0x1.faabfp33, -0x1.8aee82p55, 0x1.1bf8fp75, 0x1.33c46ap-66,
1650 });
1651 try testArgs(@Vector(32, f32), .{
1652 -0x1.039b68p37, -0x1.34de4ap-74, -0x1.05d78ap-76, -0x1.be0f5ap-47,
1653 0x1.032204p-38, 0x1.ef8e2ap-78, -0x1.b013ecp-80, 0x1.71fe4cp99,
1654 0x1.abdadap-14, 0x1.56a9a8p-48, -0x1.8bbd7ep9, 0x1.edd308p-72,
1655 -0x1.92fafcp-121, -0x1.50812p19, 0x1.f4ddc4p28, -0x1.6f0b12p-50,
1656 -0x1.12ab02p127, 0x1.24df48p21, -0x1.993c3p-14, -0x1.4cc476p-112,
1657 0x1.13d9a8p-40, 0x1.a6e652p-9, -0x1.9c730cp-21, -0x1.a75aaap-70,
1658 -0x1.39e632p-111, 0x1.8e8da8p-45, 0x1.b5652cp31, 0x1.258366p44,
1659 0x1.d473aap92, -0x1.951b64p9, 0x1.542edp15, -0x0.f6222ap-126,
1660 });
1661
1662 try testArgs(@Vector(1, f64), .{
1663 -0x1.0114613df6f97p816,
1664 });
1665 try testArgs(@Vector(2, f64), .{
1666 -0x1.8404dad72003cp720, -0x1.6b14b40bcf3b7p-176,
1667 });
1668 try testArgs(@Vector(4, f64), .{
1669 -0x1.04e1acbfddd9cp681, -0x1.ed553cc056da7p-749,
1670 0x1.3d3f703a0c893p-905, 0x1.0b35633fa78fp691,
1671 });
1672 try testArgs(@Vector(8, f64), .{
1673 -0x1.901a2a60f0562p-301, -0x1.2516175ad61ecp-447,
1674 0x1.e7b12124846bfp564, 0x1.9291384bd7259p209,
1675 -0x1.a7bf62f803c98p900, 0x1.4e2e26257bb3p987,
1676 -0x1.413ca9a32d894p811, 0x1.61b1dd9432e95p479,
1677 });
1678 try testArgs(@Vector(16, f64), .{
1679 -0x1.8fc7286d95f54p-235, -0x1.796a7ea8372b6p-837,
1680 -0x1.8c0f930539acbp-98, -0x1.ec80dfbf0b931p-430,
1681 -0x1.e3d80c640652fp-1019, 0x1.8241238fb542fp161,
1682 -0x1.e1f1a79d50263p137, -0x1.9ac5cb2771c28p-791,
1683 0x1.4d8f00fe881e7p-401, -0x1.87fbd7bfd99d7p346,
1684 -0x1.a8a7cc575335ep1017, 0x1.37bb88dc3fd8bp-355,
1685 0x1.9d53d346c0e65p929, -0x1.bbae3d0229c34p289,
1686 -0x1.cb8ef994d5ce5p25, 0x1.ba20af512616ap50,
1687 });
1688
1689 try testArgs(@Vector(1, f80), .{
1690 -0x1.a2e9410a7dfedabp-2324,
1691 });
1692 try testArgs(@Vector(2, f80), .{
1693 -0x1.a2e9410a7dfedabp-2324,
1694 0x1.2b17da3b9746885p-8665,
1695 });
1696 try testArgs(@Vector(4, f80), .{
1697 -0x1.c488fedb7ab646cep-13007,
1698 0x1.e914deaccaa50016p2073,
1699 -0x1.d1c7ae8ec3c9df86p10642,
1700 -0x1.2da1658f337fa01p9893,
1701 });
1702 try testArgs(@Vector(8, f80), .{
1703 -0x1.bed8a74c43750656p890,
1704 -0x1.7bf57f38004ac976p8481,
1705 -0x1.9cdc10ac0657d328p7884,
1706 0x1.c86f61883da149fp12293,
1707 -0x1.528d6957df6bfdd8p14125,
1708 -0x1.5ebb4006d0243bfep14530,
1709 -0x1.94b9b18636d12402p-1845,
1710 -0x1.25439a6d68add188p5962,
1711 });
1712
1713 try testArgs(@Vector(1, f128), .{
1714 -0x1.d1e6fc3b1e66632e7b79051a47dap14300,
1715 });
1716 try testArgs(@Vector(2, f128), .{
1717 0x1.84b3ac8ffe5893b2c6af8d68de9dp-83,
1718 -0x1.438ca2c8a0d8e3ee9062d351c46ep-10235,
1719 });
1720 try testArgs(@Vector(4, f128), .{
1721 0x1.04eb03882d4fd1b090e714d3e5ep806,
1722 -0x1.4082b29f7c26e701764c915642ffp-6182,
1723 -0x1.b6f1e8565e5040415110f18b519ap13383,
1724 0x1.1c29f8c162cead9061c5797ea15ap11957,
1725 });
1726 try testArgs(@Vector(8, f128), .{
1727 -0x1.53d7f00cd204d80e5ff5bb665773p11218,
1728 -0x1.4daa1c81cffe28e8fa5cd703c287p2362,
1729 -0x1.cc6a71c3ad4560871efdbd025cd7p-8116,
1730 -0x1.87f8553cf8772fb6b78e7df3e3bap14523,
1731 -0x1.14b6880f6678f86dfb543dde1c6ep2105,
1732 0x1.9d2d4398414da9d857e76e8fd7ccp-13668,
1733 0x1.a37f07af240ded458d103c022064p-1158,
1734 0x1.425d53e6bd6070b847e5da1ed593p1394,
1735 });
1736 }
1737 };
1738}
1739
1740fn cast(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type {
1741 return struct {
1742 // noinline so that `mem_arg` is on the stack
1743 noinline fn testArgKinds(
1744 _: Gpr,
1745 _: Gpr,
1746 _: Gpr,
1747 _: Gpr,
1748 _: Gpr,
1749 _: Gpr,
1750 _: Gpr,
1751 _: Gpr,
1752 _: Sse,
1753 _: Sse,
1754 _: Sse,
1755 _: Sse,
1756 _: Sse,
1757 _: Sse,
1758 _: Sse,
1759 _: Sse,
1760 comptime Result: type,
1761 comptime Type: type,
1762 comptime imm_arg: Type,
1763 mem_arg: Type,
1764 ) !void {
1765 const expected = comptime op(Result, Type, imm_arg, imm_arg);
1766 var reg_arg = mem_arg;
1767 _ = .{&reg_arg};
1768 try checkExpected(expected, op(Result, Type, reg_arg, imm_arg), opts.compare);
1769 try checkExpected(expected, op(Result, Type, mem_arg, imm_arg), opts.compare);
1770 try checkExpected(expected, op(Result, Type, imm_arg, imm_arg), opts.compare);
1771 }
1772 // noinline for a more helpful stack trace
1773 noinline fn testArgs(comptime Result: type, comptime Type: type, comptime imm_arg: Type) !void {
1774 try testArgKinds(
1775 undefined,
1776 undefined,
1777 undefined,
1778 undefined,
1779 undefined,
1780 undefined,
1781 undefined,
1782 undefined,
1783 undefined,
1784 undefined,
1785 undefined,
1786 undefined,
1787 undefined,
1788 undefined,
1789 undefined,
1790 undefined,
1791 Result,
1792 Type,
1793 imm_arg,
1794 imm_arg,
1795 );
1796 }
1797 fn testSameSignednessInts() !void {
1798 try testArgs(i8, i1, -1);
1799 try testArgs(i8, i1, 0);
1800 try testArgs(i16, i1, -1);
1801 try testArgs(i16, i1, 0);
1802 try testArgs(i32, i1, -1);
1803 try testArgs(i32, i1, 0);
1804 try testArgs(i64, i1, -1);
1805 try testArgs(i64, i1, 0);
1806 try testArgs(i128, i1, -1);
1807 try testArgs(i128, i1, 0);
1808 try testArgs(i256, i1, -1);
1809 try testArgs(i256, i1, 0);
1810 try testArgs(i512, i1, -1);
1811 try testArgs(i512, i1, 0);
1812 try testArgs(i1024, i1, -1);
1813 try testArgs(i1024, i1, 0);
1814 try testArgs(u8, u1, 0);
1815 try testArgs(u8, u1, 1 << 0);
1816 try testArgs(u16, u1, 0);
1817 try testArgs(u16, u1, 1 << 0);
1818 try testArgs(u32, u1, 0);
1819 try testArgs(u32, u1, 1 << 0);
1820 try testArgs(u64, u1, 0);
1821 try testArgs(u64, u1, 1 << 0);
1822 try testArgs(u128, u1, 0);
1823 try testArgs(u128, u1, 1 << 0);
1824 try testArgs(u256, u1, 0);
1825 try testArgs(u256, u1, 1 << 0);
1826 try testArgs(u512, u1, 0);
1827 try testArgs(u512, u1, 1 << 0);
1828 try testArgs(u1024, u1, 0);
1829 try testArgs(u1024, u1, 1 << 0);
1830
1831 try testArgs(i8, i2, -1 << 1);
1832 try testArgs(i8, i2, -1);
1833 try testArgs(i8, i2, 0);
1834 try testArgs(i16, i2, -1 << 1);
1835 try testArgs(i16, i2, -1);
1836 try testArgs(i16, i2, 0);
1837 try testArgs(i32, i2, -1 << 1);
1838 try testArgs(i32, i2, -1);
1839 try testArgs(i32, i2, 0);
1840 try testArgs(i64, i2, -1 << 1);
1841 try testArgs(i64, i2, -1);
1842 try testArgs(i64, i2, 0);
1843 try testArgs(i128, i2, -1 << 1);
1844 try testArgs(i128, i2, -1);
1845 try testArgs(i128, i2, 0);
1846 try testArgs(i256, i2, -1 << 1);
1847 try testArgs(i256, i2, -1);
1848 try testArgs(i256, i2, 0);
1849 try testArgs(i512, i2, -1 << 1);
1850 try testArgs(i512, i2, -1);
1851 try testArgs(i512, i2, 0);
1852 try testArgs(i1024, i2, -1 << 1);
1853 try testArgs(i1024, i2, -1);
1854 try testArgs(i1024, i2, 0);
1855 try testArgs(u8, u2, 0);
1856 try testArgs(u8, u2, 1 << 0);
1857 try testArgs(u8, u2, 1 << 1);
1858 try testArgs(u16, u2, 0);
1859 try testArgs(u16, u2, 1 << 0);
1860 try testArgs(u16, u2, 1 << 1);
1861 try testArgs(u32, u2, 0);
1862 try testArgs(u32, u2, 1 << 0);
1863 try testArgs(u32, u2, 1 << 1);
1864 try testArgs(u64, u2, 0);
1865 try testArgs(u64, u2, 1 << 0);
1866 try testArgs(u64, u2, 1 << 1);
1867 try testArgs(u128, u2, 0);
1868 try testArgs(u128, u2, 1 << 0);
1869 try testArgs(u128, u2, 1 << 1);
1870 try testArgs(u256, u2, 0);
1871 try testArgs(u256, u2, 1 << 0);
1872 try testArgs(u256, u2, 1 << 1);
1873 try testArgs(u512, u2, 0);
1874 try testArgs(u512, u2, 1 << 0);
1875 try testArgs(u512, u2, 1 << 1);
1876 try testArgs(u1024, u2, 0);
1877 try testArgs(u1024, u2, 1 << 0);
1878 try testArgs(u1024, u2, 1 << 1);
1879
1880 try testArgs(i8, i3, -1 << 2);
1881 try testArgs(i8, i3, -1);
1882 try testArgs(i8, i3, 0);
1883 try testArgs(i16, i3, -1 << 2);
1884 try testArgs(i16, i3, -1);
1885 try testArgs(i16, i3, 0);
1886 try testArgs(i32, i3, -1 << 2);
1887 try testArgs(i32, i3, -1);
1888 try testArgs(i32, i3, 0);
1889 try testArgs(i64, i3, -1 << 2);
1890 try testArgs(i64, i3, -1);
1891 try testArgs(i64, i3, 0);
1892 try testArgs(i128, i3, -1 << 2);
1893 try testArgs(i128, i3, -1);
1894 try testArgs(i128, i3, 0);
1895 try testArgs(i256, i3, -1 << 2);
1896 try testArgs(i256, i3, -1);
1897 try testArgs(i256, i3, 0);
1898 try testArgs(i512, i3, -1 << 2);
1899 try testArgs(i512, i3, -1);
1900 try testArgs(i512, i3, 0);
1901 try testArgs(i1024, i3, -1 << 2);
1902 try testArgs(i1024, i3, -1);
1903 try testArgs(i1024, i3, 0);
1904 try testArgs(u8, u3, 0);
1905 try testArgs(u8, u3, 1 << 0);
1906 try testArgs(u8, u3, 1 << 2);
1907 try testArgs(u16, u3, 0);
1908 try testArgs(u16, u3, 1 << 0);
1909 try testArgs(u16, u3, 1 << 2);
1910 try testArgs(u32, u3, 0);
1911 try testArgs(u32, u3, 1 << 0);
1912 try testArgs(u32, u3, 1 << 2);
1913 try testArgs(u64, u3, 0);
1914 try testArgs(u64, u3, 1 << 0);
1915 try testArgs(u64, u3, 1 << 2);
1916 try testArgs(u128, u3, 0);
1917 try testArgs(u128, u3, 1 << 0);
1918 try testArgs(u128, u3, 1 << 2);
1919 try testArgs(u256, u3, 0);
1920 try testArgs(u256, u3, 1 << 0);
1921 try testArgs(u256, u3, 1 << 2);
1922 try testArgs(u512, u3, 0);
1923 try testArgs(u512, u3, 1 << 0);
1924 try testArgs(u512, u3, 1 << 2);
1925 try testArgs(u1024, u3, 0);
1926 try testArgs(u1024, u3, 1 << 0);
1927 try testArgs(u1024, u3, 1 << 2);
1928
1929 try testArgs(i8, i4, -1 << 3);
1930 try testArgs(i8, i4, -1);
1931 try testArgs(i8, i4, 0);
1932 try testArgs(i16, i4, -1 << 3);
1933 try testArgs(i16, i4, -1);
1934 try testArgs(i16, i4, 0);
1935 try testArgs(i32, i4, -1 << 3);
1936 try testArgs(i32, i4, -1);
1937 try testArgs(i32, i4, 0);
1938 try testArgs(i64, i4, -1 << 3);
1939 try testArgs(i64, i4, -1);
1940 try testArgs(i64, i4, 0);
1941 try testArgs(i128, i4, -1 << 3);
1942 try testArgs(i128, i4, -1);
1943 try testArgs(i128, i4, 0);
1944 try testArgs(i256, i4, -1 << 3);
1945 try testArgs(i256, i4, -1);
1946 try testArgs(i256, i4, 0);
1947 try testArgs(i512, i4, -1 << 3);
1948 try testArgs(i512, i4, -1);
1949 try testArgs(i512, i4, 0);
1950 try testArgs(i1024, i4, -1 << 3);
1951 try testArgs(i1024, i4, -1);
1952 try testArgs(i1024, i4, 0);
1953 try testArgs(u8, u4, 0);
1954 try testArgs(u8, u4, 1 << 0);
1955 try testArgs(u8, u4, 1 << 3);
1956 try testArgs(u16, u4, 0);
1957 try testArgs(u16, u4, 1 << 0);
1958 try testArgs(u16, u4, 1 << 3);
1959 try testArgs(u32, u4, 0);
1960 try testArgs(u32, u4, 1 << 0);
1961 try testArgs(u32, u4, 1 << 3);
1962 try testArgs(u64, u4, 0);
1963 try testArgs(u64, u4, 1 << 0);
1964 try testArgs(u64, u4, 1 << 3);
1965 try testArgs(u128, u4, 0);
1966 try testArgs(u128, u4, 1 << 0);
1967 try testArgs(u128, u4, 1 << 3);
1968 try testArgs(u256, u4, 0);
1969 try testArgs(u256, u4, 1 << 0);
1970 try testArgs(u256, u4, 1 << 3);
1971 try testArgs(u512, u4, 0);
1972 try testArgs(u512, u4, 1 << 0);
1973 try testArgs(u512, u4, 1 << 3);
1974 try testArgs(u1024, u4, 0);
1975 try testArgs(u1024, u4, 1 << 0);
1976 try testArgs(u1024, u4, 1 << 3);
1977
1978 try testArgs(i8, i5, -1 << 4);
1979 try testArgs(i8, i5, -1);
1980 try testArgs(i8, i5, 0);
1981 try testArgs(i16, i5, -1 << 4);
1982 try testArgs(i16, i5, -1);
1983 try testArgs(i16, i5, 0);
1984 try testArgs(i32, i5, -1 << 4);
1985 try testArgs(i32, i5, -1);
1986 try testArgs(i32, i5, 0);
1987 try testArgs(i64, i5, -1 << 4);
1988 try testArgs(i64, i5, -1);
1989 try testArgs(i64, i5, 0);
1990 try testArgs(i128, i5, -1 << 4);
1991 try testArgs(i128, i5, -1);
1992 try testArgs(i128, i5, 0);
1993 try testArgs(i256, i5, -1 << 4);
1994 try testArgs(i256, i5, -1);
1995 try testArgs(i256, i5, 0);
1996 try testArgs(i512, i5, -1 << 4);
1997 try testArgs(i512, i5, -1);
1998 try testArgs(i512, i5, 0);
1999 try testArgs(i1024, i5, -1 << 4);
2000 try testArgs(i1024, i5, -1);
2001 try testArgs(i1024, i5, 0);
2002 try testArgs(u8, u5, 0);
2003 try testArgs(u8, u5, 1 << 0);
2004 try testArgs(u8, u5, 1 << 4);
2005 try testArgs(u16, u5, 0);
2006 try testArgs(u16, u5, 1 << 0);
2007 try testArgs(u16, u5, 1 << 4);
2008 try testArgs(u32, u5, 0);
2009 try testArgs(u32, u5, 1 << 0);
2010 try testArgs(u32, u5, 1 << 4);
2011 try testArgs(u64, u5, 0);
2012 try testArgs(u64, u5, 1 << 0);
2013 try testArgs(u64, u5, 1 << 4);
2014 try testArgs(u128, u5, 0);
2015 try testArgs(u128, u5, 1 << 0);
2016 try testArgs(u128, u5, 1 << 4);
2017 try testArgs(u256, u5, 0);
2018 try testArgs(u256, u5, 1 << 0);
2019 try testArgs(u256, u5, 1 << 4);
2020 try testArgs(u512, u5, 0);
2021 try testArgs(u512, u5, 1 << 0);
2022 try testArgs(u512, u5, 1 << 4);
2023 try testArgs(u1024, u5, 0);
2024 try testArgs(u1024, u5, 1 << 0);
2025 try testArgs(u1024, u5, 1 << 4);
2026
2027 try testArgs(i8, i7, -1 << 6);
2028 try testArgs(i8, i7, -1);
2029 try testArgs(i8, i7, 0);
2030 try testArgs(i16, i7, -1 << 6);
2031 try testArgs(i16, i7, -1);
2032 try testArgs(i16, i7, 0);
2033 try testArgs(i32, i7, -1 << 6);
2034 try testArgs(i32, i7, -1);
2035 try testArgs(i32, i7, 0);
2036 try testArgs(i64, i7, -1 << 6);
2037 try testArgs(i64, i7, -1);
2038 try testArgs(i64, i7, 0);
2039 try testArgs(i128, i7, -1 << 6);
2040 try testArgs(i128, i7, -1);
2041 try testArgs(i128, i7, 0);
2042 try testArgs(i256, i7, -1 << 6);
2043 try testArgs(i256, i7, -1);
2044 try testArgs(i256, i7, 0);
2045 try testArgs(i512, i7, -1 << 6);
2046 try testArgs(i512, i7, -1);
2047 try testArgs(i512, i7, 0);
2048 try testArgs(i1024, i7, -1 << 6);
2049 try testArgs(i1024, i7, -1);
2050 try testArgs(i1024, i7, 0);
2051 try testArgs(u8, u7, 0);
2052 try testArgs(u8, u7, 1 << 0);
2053 try testArgs(u8, u7, 1 << 6);
2054 try testArgs(u16, u7, 0);
2055 try testArgs(u16, u7, 1 << 0);
2056 try testArgs(u16, u7, 1 << 6);
2057 try testArgs(u32, u7, 0);
2058 try testArgs(u32, u7, 1 << 0);
2059 try testArgs(u32, u7, 1 << 6);
2060 try testArgs(u64, u7, 0);
2061 try testArgs(u64, u7, 1 << 0);
2062 try testArgs(u64, u7, 1 << 6);
2063 try testArgs(u128, u7, 0);
2064 try testArgs(u128, u7, 1 << 0);
2065 try testArgs(u128, u7, 1 << 6);
2066 try testArgs(u256, u7, 0);
2067 try testArgs(u256, u7, 1 << 0);
2068 try testArgs(u256, u7, 1 << 6);
2069 try testArgs(u512, u7, 0);
2070 try testArgs(u512, u7, 1 << 0);
2071 try testArgs(u512, u7, 1 << 6);
2072 try testArgs(u1024, u7, 0);
2073 try testArgs(u1024, u7, 1 << 0);
2074 try testArgs(u1024, u7, 1 << 6);
2075
2076 try testArgs(i8, i8, -1 << 7);
2077 try testArgs(i8, i8, -1);
2078 try testArgs(i8, i8, 0);
2079 try testArgs(i16, i8, -1 << 7);
2080 try testArgs(i16, i8, -1);
2081 try testArgs(i16, i8, 0);
2082 try testArgs(i32, i8, -1 << 7);
2083 try testArgs(i32, i8, -1);
2084 try testArgs(i32, i8, 0);
2085 try testArgs(i64, i8, -1 << 7);
2086 try testArgs(i64, i8, -1);
2087 try testArgs(i64, i8, 0);
2088 try testArgs(i128, i8, -1 << 7);
2089 try testArgs(i128, i8, -1);
2090 try testArgs(i128, i8, 0);
2091 try testArgs(i256, i8, -1 << 7);
2092 try testArgs(i256, i8, -1);
2093 try testArgs(i256, i8, 0);
2094 try testArgs(i512, i8, -1 << 7);
2095 try testArgs(i512, i8, -1);
2096 try testArgs(i512, i8, 0);
2097 try testArgs(i1024, i8, -1 << 7);
2098 try testArgs(i1024, i8, -1);
2099 try testArgs(i1024, i8, 0);
2100 try testArgs(u8, u8, 0);
2101 try testArgs(u8, u8, 1 << 0);
2102 try testArgs(u8, u8, 1 << 7);
2103 try testArgs(u16, u8, 0);
2104 try testArgs(u16, u8, 1 << 0);
2105 try testArgs(u16, u8, 1 << 7);
2106 try testArgs(u32, u8, 0);
2107 try testArgs(u32, u8, 1 << 0);
2108 try testArgs(u32, u8, 1 << 7);
2109 try testArgs(u64, u8, 0);
2110 try testArgs(u64, u8, 1 << 0);
2111 try testArgs(u64, u8, 1 << 7);
2112 try testArgs(u128, u8, 0);
2113 try testArgs(u128, u8, 1 << 0);
2114 try testArgs(u128, u8, 1 << 7);
2115 try testArgs(u256, u8, 0);
2116 try testArgs(u256, u8, 1 << 0);
2117 try testArgs(u256, u8, 1 << 7);
2118 try testArgs(u512, u8, 0);
2119 try testArgs(u512, u8, 1 << 0);
2120 try testArgs(u512, u8, 1 << 7);
2121 try testArgs(u1024, u8, 0);
2122 try testArgs(u1024, u8, 1 << 0);
2123 try testArgs(u1024, u8, 1 << 7);
2124
2125 try testArgs(i8, i9, -1 << 8);
2126 try testArgs(i8, i9, -1);
2127 try testArgs(i8, i9, 0);
2128 try testArgs(i16, i9, -1 << 8);
2129 try testArgs(i16, i9, -1);
2130 try testArgs(i16, i9, 0);
2131 try testArgs(i32, i9, -1 << 8);
2132 try testArgs(i32, i9, -1);
2133 try testArgs(i32, i9, 0);
2134 try testArgs(i64, i9, -1 << 8);
2135 try testArgs(i64, i9, -1);
2136 try testArgs(i64, i9, 0);
2137 try testArgs(i128, i9, -1 << 8);
2138 try testArgs(i128, i9, -1);
2139 try testArgs(i128, i9, 0);
2140 try testArgs(i256, i9, -1 << 8);
2141 try testArgs(i256, i9, -1);
2142 try testArgs(i256, i9, 0);
2143 try testArgs(i512, i9, -1 << 8);
2144 try testArgs(i512, i9, -1);
2145 try testArgs(i512, i9, 0);
2146 try testArgs(i1024, i9, -1 << 8);
2147 try testArgs(i1024, i9, -1);
2148 try testArgs(i1024, i9, 0);
2149 try testArgs(u8, u9, 0);
2150 try testArgs(u8, u9, 1 << 0);
2151 try testArgs(u8, u9, 1 << 8);
2152 try testArgs(u16, u9, 0);
2153 try testArgs(u16, u9, 1 << 0);
2154 try testArgs(u16, u9, 1 << 8);
2155 try testArgs(u32, u9, 0);
2156 try testArgs(u32, u9, 1 << 0);
2157 try testArgs(u32, u9, 1 << 8);
2158 try testArgs(u64, u9, 0);
2159 try testArgs(u64, u9, 1 << 0);
2160 try testArgs(u64, u9, 1 << 8);
2161 try testArgs(u128, u9, 0);
2162 try testArgs(u128, u9, 1 << 0);
2163 try testArgs(u128, u9, 1 << 8);
2164 try testArgs(u256, u9, 0);
2165 try testArgs(u256, u9, 1 << 0);
2166 try testArgs(u256, u9, 1 << 8);
2167 try testArgs(u512, u9, 0);
2168 try testArgs(u512, u9, 1 << 0);
2169 try testArgs(u512, u9, 1 << 8);
2170 try testArgs(u1024, u9, 0);
2171 try testArgs(u1024, u9, 1 << 0);
2172 try testArgs(u1024, u9, 1 << 8);
2173
2174 try testArgs(i8, i15, -1 << 14);
2175 try testArgs(i8, i15, -1);
2176 try testArgs(i8, i15, 0);
2177 try testArgs(i16, i15, -1 << 14);
2178 try testArgs(i16, i15, -1);
2179 try testArgs(i16, i15, 0);
2180 try testArgs(i32, i15, -1 << 14);
2181 try testArgs(i32, i15, -1);
2182 try testArgs(i32, i15, 0);
2183 try testArgs(i64, i15, -1 << 14);
2184 try testArgs(i64, i15, -1);
2185 try testArgs(i64, i15, 0);
2186 try testArgs(i128, i15, -1 << 14);
2187 try testArgs(i128, i15, -1);
2188 try testArgs(i128, i15, 0);
2189 try testArgs(i256, i15, -1 << 14);
2190 try testArgs(i256, i15, -1);
2191 try testArgs(i256, i15, 0);
2192 try testArgs(i512, i15, -1 << 14);
2193 try testArgs(i512, i15, -1);
2194 try testArgs(i512, i15, 0);
2195 try testArgs(i1024, i15, -1 << 14);
2196 try testArgs(i1024, i15, -1);
2197 try testArgs(i1024, i15, 0);
2198 try testArgs(u8, u15, 0);
2199 try testArgs(u8, u15, 1 << 0);
2200 try testArgs(u8, u15, 1 << 14);
2201 try testArgs(u16, u15, 0);
2202 try testArgs(u16, u15, 1 << 0);
2203 try testArgs(u16, u15, 1 << 14);
2204 try testArgs(u32, u15, 0);
2205 try testArgs(u32, u15, 1 << 0);
2206 try testArgs(u32, u15, 1 << 14);
2207 try testArgs(u64, u15, 0);
2208 try testArgs(u64, u15, 1 << 0);
2209 try testArgs(u64, u15, 1 << 14);
2210 try testArgs(u128, u15, 0);
2211 try testArgs(u128, u15, 1 << 0);
2212 try testArgs(u128, u15, 1 << 14);
2213 try testArgs(u256, u15, 0);
2214 try testArgs(u256, u15, 1 << 0);
2215 try testArgs(u256, u15, 1 << 14);
2216 try testArgs(u512, u15, 0);
2217 try testArgs(u512, u15, 1 << 0);
2218 try testArgs(u512, u15, 1 << 14);
2219 try testArgs(u1024, u15, 0);
2220 try testArgs(u1024, u15, 1 << 0);
2221 try testArgs(u1024, u15, 1 << 14);
2222
2223 try testArgs(i8, i16, -1 << 15);
2224 try testArgs(i8, i16, -1);
2225 try testArgs(i8, i16, 0);
2226 try testArgs(i16, i16, -1 << 15);
2227 try testArgs(i16, i16, -1);
2228 try testArgs(i16, i16, 0);
2229 try testArgs(i32, i16, -1 << 15);
2230 try testArgs(i32, i16, -1);
2231 try testArgs(i32, i16, 0);
2232 try testArgs(i64, i16, -1 << 15);
2233 try testArgs(i64, i16, -1);
2234 try testArgs(i64, i16, 0);
2235 try testArgs(i128, i16, -1 << 15);
2236 try testArgs(i128, i16, -1);
2237 try testArgs(i128, i16, 0);
2238 try testArgs(i256, i16, -1 << 15);
2239 try testArgs(i256, i16, -1);
2240 try testArgs(i256, i16, 0);
2241 try testArgs(i512, i16, -1 << 15);
2242 try testArgs(i512, i16, -1);
2243 try testArgs(i512, i16, 0);
2244 try testArgs(i1024, i16, -1 << 15);
2245 try testArgs(i1024, i16, -1);
2246 try testArgs(i1024, i16, 0);
2247 try testArgs(u8, u16, 0);
2248 try testArgs(u8, u16, 1 << 0);
2249 try testArgs(u8, u16, 1 << 15);
2250 try testArgs(u16, u16, 0);
2251 try testArgs(u16, u16, 1 << 0);
2252 try testArgs(u16, u16, 1 << 15);
2253 try testArgs(u32, u16, 0);
2254 try testArgs(u32, u16, 1 << 0);
2255 try testArgs(u32, u16, 1 << 15);
2256 try testArgs(u64, u16, 0);
2257 try testArgs(u64, u16, 1 << 0);
2258 try testArgs(u64, u16, 1 << 15);
2259 try testArgs(u128, u16, 0);
2260 try testArgs(u128, u16, 1 << 0);
2261 try testArgs(u128, u16, 1 << 15);
2262 try testArgs(u256, u16, 0);
2263 try testArgs(u256, u16, 1 << 0);
2264 try testArgs(u256, u16, 1 << 15);
2265 try testArgs(u512, u16, 0);
2266 try testArgs(u512, u16, 1 << 0);
2267 try testArgs(u512, u16, 1 << 15);
2268 try testArgs(u1024, u16, 0);
2269 try testArgs(u1024, u16, 1 << 0);
2270 try testArgs(u1024, u16, 1 << 15);
2271
2272 try testArgs(i8, i17, -1 << 16);
2273 try testArgs(i8, i17, -1);
2274 try testArgs(i8, i17, 0);
2275 try testArgs(i16, i17, -1 << 16);
2276 try testArgs(i16, i17, -1);
2277 try testArgs(i16, i17, 0);
2278 try testArgs(i32, i17, -1 << 16);
2279 try testArgs(i32, i17, -1);
2280 try testArgs(i32, i17, 0);
2281 try testArgs(i64, i17, -1 << 16);
2282 try testArgs(i64, i17, -1);
2283 try testArgs(i64, i17, 0);
2284 try testArgs(i128, i17, -1 << 16);
2285 try testArgs(i128, i17, -1);
2286 try testArgs(i128, i17, 0);
2287 try testArgs(i256, i17, -1 << 16);
2288 try testArgs(i256, i17, -1);
2289 try testArgs(i256, i17, 0);
2290 try testArgs(i512, i17, -1 << 16);
2291 try testArgs(i512, i17, -1);
2292 try testArgs(i512, i17, 0);
2293 try testArgs(i1024, i17, -1 << 16);
2294 try testArgs(i1024, i17, -1);
2295 try testArgs(i1024, i17, 0);
2296 try testArgs(u8, u17, 0);
2297 try testArgs(u8, u17, 1 << 0);
2298 try testArgs(u8, u17, 1 << 16);
2299 try testArgs(u16, u17, 0);
2300 try testArgs(u16, u17, 1 << 0);
2301 try testArgs(u16, u17, 1 << 16);
2302 try testArgs(u32, u17, 0);
2303 try testArgs(u32, u17, 1 << 0);
2304 try testArgs(u32, u17, 1 << 16);
2305 try testArgs(u64, u17, 0);
2306 try testArgs(u64, u17, 1 << 0);
2307 try testArgs(u64, u17, 1 << 16);
2308 try testArgs(u128, u17, 0);
2309 try testArgs(u128, u17, 1 << 0);
2310 try testArgs(u128, u17, 1 << 16);
2311 try testArgs(u256, u17, 0);
2312 try testArgs(u256, u17, 1 << 0);
2313 try testArgs(u256, u17, 1 << 16);
2314 try testArgs(u512, u17, 0);
2315 try testArgs(u512, u17, 1 << 0);
2316 try testArgs(u512, u17, 1 << 16);
2317 try testArgs(u1024, u17, 0);
2318 try testArgs(u1024, u17, 1 << 0);
2319 try testArgs(u1024, u17, 1 << 16);
2320
2321 try testArgs(i8, i31, -1 << 30);
2322 try testArgs(i8, i31, -1);
2323 try testArgs(i8, i31, 0);
2324 try testArgs(i16, i31, -1 << 30);
2325 try testArgs(i16, i31, -1);
2326 try testArgs(i16, i31, 0);
2327 try testArgs(i32, i31, -1 << 30);
2328 try testArgs(i32, i31, -1);
2329 try testArgs(i32, i31, 0);
2330 try testArgs(i64, i31, -1 << 30);
2331 try testArgs(i64, i31, -1);
2332 try testArgs(i64, i31, 0);
2333 try testArgs(i128, i31, -1 << 30);
2334 try testArgs(i128, i31, -1);
2335 try testArgs(i128, i31, 0);
2336 try testArgs(i256, i31, -1 << 30);
2337 try testArgs(i256, i31, -1);
2338 try testArgs(i256, i31, 0);
2339 try testArgs(i512, i31, -1 << 30);
2340 try testArgs(i512, i31, -1);
2341 try testArgs(i512, i31, 0);
2342 try testArgs(i1024, i31, -1 << 30);
2343 try testArgs(i1024, i31, -1);
2344 try testArgs(i1024, i31, 0);
2345 try testArgs(u8, u31, 0);
2346 try testArgs(u8, u31, 1 << 0);
2347 try testArgs(u8, u31, 1 << 30);
2348 try testArgs(u16, u31, 0);
2349 try testArgs(u16, u31, 1 << 0);
2350 try testArgs(u16, u31, 1 << 30);
2351 try testArgs(u32, u31, 0);
2352 try testArgs(u32, u31, 1 << 0);
2353 try testArgs(u32, u31, 1 << 30);
2354 try testArgs(u64, u31, 0);
2355 try testArgs(u64, u31, 1 << 0);
2356 try testArgs(u64, u31, 1 << 30);
2357 try testArgs(u128, u31, 0);
2358 try testArgs(u128, u31, 1 << 0);
2359 try testArgs(u128, u31, 1 << 30);
2360 try testArgs(u256, u31, 0);
2361 try testArgs(u256, u31, 1 << 0);
2362 try testArgs(u256, u31, 1 << 30);
2363 try testArgs(u512, u31, 0);
2364 try testArgs(u512, u31, 1 << 0);
2365 try testArgs(u512, u31, 1 << 30);
2366 try testArgs(u1024, u31, 0);
2367 try testArgs(u1024, u31, 1 << 0);
2368 try testArgs(u1024, u31, 1 << 30);
2369
2370 try testArgs(i8, i32, -1 << 31);
2371 try testArgs(i8, i32, -1);
2372 try testArgs(i8, i32, 0);
2373 try testArgs(i16, i32, -1 << 31);
2374 try testArgs(i16, i32, -1);
2375 try testArgs(i16, i32, 0);
2376 try testArgs(i32, i32, -1 << 31);
2377 try testArgs(i32, i32, -1);
2378 try testArgs(i32, i32, 0);
2379 try testArgs(i64, i32, -1 << 31);
2380 try testArgs(i64, i32, -1);
2381 try testArgs(i64, i32, 0);
2382 try testArgs(i128, i32, -1 << 31);
2383 try testArgs(i128, i32, -1);
2384 try testArgs(i128, i32, 0);
2385 try testArgs(i256, i32, -1 << 31);
2386 try testArgs(i256, i32, -1);
2387 try testArgs(i256, i32, 0);
2388 try testArgs(i512, i32, -1 << 31);
2389 try testArgs(i512, i32, -1);
2390 try testArgs(i512, i32, 0);
2391 try testArgs(i1024, i32, -1 << 31);
2392 try testArgs(i1024, i32, -1);
2393 try testArgs(i1024, i32, 0);
2394 try testArgs(u8, u32, 0);
2395 try testArgs(u8, u32, 1 << 0);
2396 try testArgs(u8, u32, 1 << 31);
2397 try testArgs(u16, u32, 0);
2398 try testArgs(u16, u32, 1 << 0);
2399 try testArgs(u16, u32, 1 << 31);
2400 try testArgs(u32, u32, 0);
2401 try testArgs(u32, u32, 1 << 0);
2402 try testArgs(u32, u32, 1 << 31);
2403 try testArgs(u64, u32, 0);
2404 try testArgs(u64, u32, 1 << 0);
2405 try testArgs(u64, u32, 1 << 31);
2406 try testArgs(u128, u32, 0);
2407 try testArgs(u128, u32, 1 << 0);
2408 try testArgs(u128, u32, 1 << 31);
2409 try testArgs(u256, u32, 0);
2410 try testArgs(u256, u32, 1 << 0);
2411 try testArgs(u256, u32, 1 << 31);
2412 try testArgs(u512, u32, 0);
2413 try testArgs(u512, u32, 1 << 0);
2414 try testArgs(u512, u32, 1 << 31);
2415 try testArgs(u1024, u32, 0);
2416 try testArgs(u1024, u32, 1 << 0);
2417 try testArgs(u1024, u32, 1 << 31);
2418
2419 try testArgs(i8, i33, -1 << 32);
2420 try testArgs(i8, i33, -1);
2421 try testArgs(i8, i33, 0);
2422 try testArgs(i16, i33, -1 << 32);
2423 try testArgs(i16, i33, -1);
2424 try testArgs(i16, i33, 0);
2425 try testArgs(i32, i33, -1 << 32);
2426 try testArgs(i32, i33, -1);
2427 try testArgs(i32, i33, 0);
2428 try testArgs(i64, i33, -1 << 32);
2429 try testArgs(i64, i33, -1);
2430 try testArgs(i64, i33, 0);
2431 try testArgs(i128, i33, -1 << 32);
2432 try testArgs(i128, i33, -1);
2433 try testArgs(i128, i33, 0);
2434 try testArgs(i256, i33, -1 << 32);
2435 try testArgs(i256, i33, -1);
2436 try testArgs(i256, i33, 0);
2437 try testArgs(i512, i33, -1 << 32);
2438 try testArgs(i512, i33, -1);
2439 try testArgs(i512, i33, 0);
2440 try testArgs(i1024, i33, -1 << 32);
2441 try testArgs(i1024, i33, -1);
2442 try testArgs(i1024, i33, 0);
2443 try testArgs(u8, u33, 0);
2444 try testArgs(u8, u33, 1 << 0);
2445 try testArgs(u8, u33, 1 << 32);
2446 try testArgs(u16, u33, 0);
2447 try testArgs(u16, u33, 1 << 0);
2448 try testArgs(u16, u33, 1 << 32);
2449 try testArgs(u32, u33, 0);
2450 try testArgs(u32, u33, 1 << 0);
2451 try testArgs(u32, u33, 1 << 32);
2452 try testArgs(u64, u33, 0);
2453 try testArgs(u64, u33, 1 << 0);
2454 try testArgs(u64, u33, 1 << 32);
2455 try testArgs(u128, u33, 0);
2456 try testArgs(u128, u33, 1 << 0);
2457 try testArgs(u128, u33, 1 << 32);
2458 try testArgs(u256, u33, 0);
2459 try testArgs(u256, u33, 1 << 0);
2460 try testArgs(u256, u33, 1 << 32);
2461 try testArgs(u512, u33, 0);
2462 try testArgs(u512, u33, 1 << 0);
2463 try testArgs(u512, u33, 1 << 32);
2464 try testArgs(u1024, u33, 0);
2465 try testArgs(u1024, u33, 1 << 0);
2466 try testArgs(u1024, u33, 1 << 32);
2467
2468 try testArgs(i8, i63, -1 << 62);
2469 try testArgs(i8, i63, -1);
2470 try testArgs(i8, i63, 0);
2471 try testArgs(i16, i63, -1 << 62);
2472 try testArgs(i16, i63, -1);
2473 try testArgs(i16, i63, 0);
2474 try testArgs(i32, i63, -1 << 62);
2475 try testArgs(i32, i63, -1);
2476 try testArgs(i32, i63, 0);
2477 try testArgs(i64, i63, -1 << 62);
2478 try testArgs(i64, i63, -1);
2479 try testArgs(i64, i63, 0);
2480 try testArgs(i128, i63, -1 << 62);
2481 try testArgs(i128, i63, -1);
2482 try testArgs(i128, i63, 0);
2483 try testArgs(i256, i63, -1 << 62);
2484 try testArgs(i256, i63, -1);
2485 try testArgs(i256, i63, 0);
2486 try testArgs(i512, i63, -1 << 62);
2487 try testArgs(i512, i63, -1);
2488 try testArgs(i512, i63, 0);
2489 try testArgs(i1024, i63, -1 << 62);
2490 try testArgs(i1024, i63, -1);
2491 try testArgs(i1024, i63, 0);
2492 try testArgs(u8, u63, 0);
2493 try testArgs(u8, u63, 1 << 0);
2494 try testArgs(u8, u63, 1 << 62);
2495 try testArgs(u16, u63, 0);
2496 try testArgs(u16, u63, 1 << 0);
2497 try testArgs(u16, u63, 1 << 62);
2498 try testArgs(u32, u63, 0);
2499 try testArgs(u32, u63, 1 << 0);
2500 try testArgs(u32, u63, 1 << 62);
2501 try testArgs(u64, u63, 0);
2502 try testArgs(u64, u63, 1 << 0);
2503 try testArgs(u64, u63, 1 << 62);
2504 try testArgs(u128, u63, 0);
2505 try testArgs(u128, u63, 1 << 0);
2506 try testArgs(u128, u63, 1 << 62);
2507 try testArgs(u256, u63, 0);
2508 try testArgs(u256, u63, 1 << 0);
2509 try testArgs(u256, u63, 1 << 62);
2510 try testArgs(u512, u63, 0);
2511 try testArgs(u512, u63, 1 << 0);
2512 try testArgs(u512, u63, 1 << 62);
2513 try testArgs(u1024, u63, 0);
2514 try testArgs(u1024, u63, 1 << 0);
2515 try testArgs(u1024, u63, 1 << 62);
2516
2517 try testArgs(i8, i64, -1 << 63);
2518 try testArgs(i8, i64, -1);
2519 try testArgs(i8, i64, 0);
2520 try testArgs(i16, i64, -1 << 63);
2521 try testArgs(i16, i64, -1);
2522 try testArgs(i16, i64, 0);
2523 try testArgs(i32, i64, -1 << 63);
2524 try testArgs(i32, i64, -1);
2525 try testArgs(i32, i64, 0);
2526 try testArgs(i64, i64, -1 << 63);
2527 try testArgs(i64, i64, -1);
2528 try testArgs(i64, i64, 0);
2529 try testArgs(i128, i64, -1 << 63);
2530 try testArgs(i128, i64, -1);
2531 try testArgs(i128, i64, 0);
2532 try testArgs(i256, i64, -1 << 63);
2533 try testArgs(i256, i64, -1);
2534 try testArgs(i256, i64, 0);
2535 try testArgs(i512, i64, -1 << 63);
2536 try testArgs(i512, i64, -1);
2537 try testArgs(i512, i64, 0);
2538 try testArgs(i1024, i64, -1 << 63);
2539 try testArgs(i1024, i64, -1);
2540 try testArgs(i1024, i64, 0);
2541 try testArgs(u8, u64, 0);
2542 try testArgs(u8, u64, 1 << 0);
2543 try testArgs(u8, u64, 1 << 63);
2544 try testArgs(u16, u64, 0);
2545 try testArgs(u16, u64, 1 << 0);
2546 try testArgs(u16, u64, 1 << 63);
2547 try testArgs(u32, u64, 0);
2548 try testArgs(u32, u64, 1 << 0);
2549 try testArgs(u32, u64, 1 << 63);
2550 try testArgs(u64, u64, 0);
2551 try testArgs(u64, u64, 1 << 0);
2552 try testArgs(u64, u64, 1 << 63);
2553 try testArgs(u128, u64, 0);
2554 try testArgs(u128, u64, 1 << 0);
2555 try testArgs(u128, u64, 1 << 63);
2556 try testArgs(u256, u64, 0);
2557 try testArgs(u256, u64, 1 << 0);
2558 try testArgs(u256, u64, 1 << 63);
2559 try testArgs(u512, u64, 0);
2560 try testArgs(u512, u64, 1 << 0);
2561 try testArgs(u512, u64, 1 << 63);
2562 try testArgs(u1024, u64, 0);
2563 try testArgs(u1024, u64, 1 << 0);
2564 try testArgs(u1024, u64, 1 << 63);
2565
2566 try testArgs(i8, i65, -1 << 64);
2567 try testArgs(i8, i65, -1);
2568 try testArgs(i8, i65, 0);
2569 try testArgs(i16, i65, -1 << 64);
2570 try testArgs(i16, i65, -1);
2571 try testArgs(i16, i65, 0);
2572 try testArgs(i32, i65, -1 << 64);
2573 try testArgs(i32, i65, -1);
2574 try testArgs(i32, i65, 0);
2575 try testArgs(i64, i65, -1 << 64);
2576 try testArgs(i64, i65, -1);
2577 try testArgs(i64, i65, 0);
2578 try testArgs(i128, i65, -1 << 64);
2579 try testArgs(i128, i65, -1);
2580 try testArgs(i128, i65, 0);
2581 try testArgs(i256, i65, -1 << 64);
2582 try testArgs(i256, i65, -1);
2583 try testArgs(i256, i65, 0);
2584 try testArgs(i512, i65, -1 << 64);
2585 try testArgs(i512, i65, -1);
2586 try testArgs(i512, i65, 0);
2587 try testArgs(i1024, i65, -1 << 64);
2588 try testArgs(i1024, i65, -1);
2589 try testArgs(i1024, i65, 0);
2590 try testArgs(u8, u65, 0);
2591 try testArgs(u8, u65, 1 << 0);
2592 try testArgs(u8, u65, 1 << 64);
2593 try testArgs(u16, u65, 0);
2594 try testArgs(u16, u65, 1 << 0);
2595 try testArgs(u16, u65, 1 << 64);
2596 try testArgs(u32, u65, 0);
2597 try testArgs(u32, u65, 1 << 0);
2598 try testArgs(u32, u65, 1 << 64);
2599 try testArgs(u64, u65, 0);
2600 try testArgs(u64, u65, 1 << 0);
2601 try testArgs(u64, u65, 1 << 64);
2602 try testArgs(u128, u65, 0);
2603 try testArgs(u128, u65, 1 << 0);
2604 try testArgs(u128, u65, 1 << 64);
2605 try testArgs(u256, u65, 0);
2606 try testArgs(u256, u65, 1 << 0);
2607 try testArgs(u256, u65, 1 << 64);
2608 try testArgs(u512, u65, 0);
2609 try testArgs(u512, u65, 1 << 0);
2610 try testArgs(u512, u65, 1 << 64);
2611 try testArgs(u1024, u65, 0);
2612 try testArgs(u1024, u65, 1 << 0);
2613 try testArgs(u1024, u65, 1 << 64);
2614
2615 try testArgs(i8, i95, -1 << 94);
2616 try testArgs(i8, i95, -1);
2617 try testArgs(i8, i95, 0);
2618 try testArgs(i16, i95, -1 << 94);
2619 try testArgs(i16, i95, -1);
2620 try testArgs(i16, i95, 0);
2621 try testArgs(i32, i95, -1 << 94);
2622 try testArgs(i32, i95, -1);
2623 try testArgs(i32, i95, 0);
2624 try testArgs(i64, i95, -1 << 94);
2625 try testArgs(i64, i95, -1);
2626 try testArgs(i64, i95, 0);
2627 try testArgs(i128, i95, -1 << 94);
2628 try testArgs(i128, i95, -1);
2629 try testArgs(i128, i95, 0);
2630 try testArgs(i256, i95, -1 << 94);
2631 try testArgs(i256, i95, -1);
2632 try testArgs(i256, i95, 0);
2633 try testArgs(i512, i95, -1 << 94);
2634 try testArgs(i512, i95, -1);
2635 try testArgs(i512, i95, 0);
2636 try testArgs(i1024, i95, -1 << 94);
2637 try testArgs(i1024, i95, -1);
2638 try testArgs(i1024, i95, 0);
2639 try testArgs(u8, u95, 0);
2640 try testArgs(u8, u95, 1 << 0);
2641 try testArgs(u8, u95, 1 << 94);
2642 try testArgs(u16, u95, 0);
2643 try testArgs(u16, u95, 1 << 0);
2644 try testArgs(u16, u95, 1 << 94);
2645 try testArgs(u32, u95, 0);
2646 try testArgs(u32, u95, 1 << 0);
2647 try testArgs(u32, u95, 1 << 94);
2648 try testArgs(u64, u95, 0);
2649 try testArgs(u64, u95, 1 << 0);
2650 try testArgs(u64, u95, 1 << 94);
2651 try testArgs(u128, u95, 0);
2652 try testArgs(u128, u95, 1 << 0);
2653 try testArgs(u128, u95, 1 << 94);
2654 try testArgs(u256, u95, 0);
2655 try testArgs(u256, u95, 1 << 0);
2656 try testArgs(u256, u95, 1 << 94);
2657 try testArgs(u512, u95, 0);
2658 try testArgs(u512, u95, 1 << 0);
2659 try testArgs(u512, u95, 1 << 94);
2660 try testArgs(u1024, u95, 0);
2661 try testArgs(u1024, u95, 1 << 0);
2662 try testArgs(u1024, u95, 1 << 94);
2663
2664 try testArgs(i8, i97, -1 << 96);
2665 try testArgs(i8, i97, -1);
2666 try testArgs(i8, i97, 0);
2667 try testArgs(i16, i97, -1 << 96);
2668 try testArgs(i16, i97, -1);
2669 try testArgs(i16, i97, 0);
2670 try testArgs(i32, i97, -1 << 96);
2671 try testArgs(i32, i97, -1);
2672 try testArgs(i32, i97, 0);
2673 try testArgs(i64, i97, -1 << 96);
2674 try testArgs(i64, i97, -1);
2675 try testArgs(i64, i97, 0);
2676 try testArgs(i128, i97, -1 << 96);
2677 try testArgs(i128, i97, -1);
2678 try testArgs(i128, i97, 0);
2679 try testArgs(i256, i97, -1 << 96);
2680 try testArgs(i256, i97, -1);
2681 try testArgs(i256, i97, 0);
2682 try testArgs(i512, i97, -1 << 96);
2683 try testArgs(i512, i97, -1);
2684 try testArgs(i512, i97, 0);
2685 try testArgs(i1024, i97, -1 << 96);
2686 try testArgs(i1024, i97, -1);
2687 try testArgs(i1024, i97, 0);
2688 try testArgs(u8, u97, 0);
2689 try testArgs(u8, u97, 1 << 0);
2690 try testArgs(u8, u97, 1 << 96);
2691 try testArgs(u16, u97, 0);
2692 try testArgs(u16, u97, 1 << 0);
2693 try testArgs(u16, u97, 1 << 96);
2694 try testArgs(u32, u97, 0);
2695 try testArgs(u32, u97, 1 << 0);
2696 try testArgs(u32, u97, 1 << 96);
2697 try testArgs(u64, u97, 0);
2698 try testArgs(u64, u97, 1 << 0);
2699 try testArgs(u64, u97, 1 << 96);
2700 try testArgs(u128, u97, 0);
2701 try testArgs(u128, u97, 1 << 0);
2702 try testArgs(u128, u97, 1 << 96);
2703 try testArgs(u256, u97, 0);
2704 try testArgs(u256, u97, 1 << 0);
2705 try testArgs(u256, u97, 1 << 96);
2706 try testArgs(u512, u97, 0);
2707 try testArgs(u512, u97, 1 << 0);
2708 try testArgs(u512, u97, 1 << 96);
2709 try testArgs(u1024, u97, 0);
2710 try testArgs(u1024, u97, 1 << 0);
2711 try testArgs(u1024, u97, 1 << 96);
2712
2713 try testArgs(i8, i127, -1 << 126);
2714 try testArgs(i8, i127, -1);
2715 try testArgs(i8, i127, 0);
2716 try testArgs(i16, i127, -1 << 126);
2717 try testArgs(i16, i127, -1);
2718 try testArgs(i16, i127, 0);
2719 try testArgs(i32, i127, -1 << 126);
2720 try testArgs(i32, i127, -1);
2721 try testArgs(i32, i127, 0);
2722 try testArgs(i64, i127, -1 << 126);
2723 try testArgs(i64, i127, -1);
2724 try testArgs(i64, i127, 0);
2725 try testArgs(i128, i127, -1 << 126);
2726 try testArgs(i128, i127, -1);
2727 try testArgs(i128, i127, 0);
2728 try testArgs(i256, i127, -1 << 126);
2729 try testArgs(i256, i127, -1);
2730 try testArgs(i256, i127, 0);
2731 try testArgs(i512, i127, -1 << 126);
2732 try testArgs(i512, i127, -1);
2733 try testArgs(i512, i127, 0);
2734 try testArgs(i1024, i127, -1 << 126);
2735 try testArgs(i1024, i127, -1);
2736 try testArgs(i1024, i127, 0);
2737 try testArgs(u8, u127, 0);
2738 try testArgs(u8, u127, 1 << 0);
2739 try testArgs(u8, u127, 1 << 126);
2740 try testArgs(u16, u127, 0);
2741 try testArgs(u16, u127, 1 << 0);
2742 try testArgs(u16, u127, 1 << 126);
2743 try testArgs(u32, u127, 0);
2744 try testArgs(u32, u127, 1 << 0);
2745 try testArgs(u32, u127, 1 << 126);
2746 try testArgs(u64, u127, 0);
2747 try testArgs(u64, u127, 1 << 0);
2748 try testArgs(u64, u127, 1 << 126);
2749 try testArgs(u128, u127, 0);
2750 try testArgs(u128, u127, 1 << 0);
2751 try testArgs(u128, u127, 1 << 126);
2752 try testArgs(u256, u127, 0);
2753 try testArgs(u256, u127, 1 << 0);
2754 try testArgs(u256, u127, 1 << 126);
2755 try testArgs(u512, u127, 0);
2756 try testArgs(u512, u127, 1 << 0);
2757 try testArgs(u512, u127, 1 << 126);
2758 try testArgs(u1024, u127, 0);
2759 try testArgs(u1024, u127, 1 << 0);
2760 try testArgs(u1024, u127, 1 << 126);
2761
2762 try testArgs(i8, i128, -1 << 127);
2763 try testArgs(i8, i128, -1);
2764 try testArgs(i8, i128, 0);
2765 try testArgs(i16, i128, -1 << 127);
2766 try testArgs(i16, i128, -1);
2767 try testArgs(i16, i128, 0);
2768 try testArgs(i32, i128, -1 << 127);
2769 try testArgs(i32, i128, -1);
2770 try testArgs(i32, i128, 0);
2771 try testArgs(i64, i128, -1 << 127);
2772 try testArgs(i64, i128, -1);
2773 try testArgs(i64, i128, 0);
2774 try testArgs(i128, i128, -1 << 127);
2775 try testArgs(i128, i128, -1);
2776 try testArgs(i128, i128, 0);
2777 try testArgs(i256, i128, -1 << 127);
2778 try testArgs(i256, i128, -1);
2779 try testArgs(i256, i128, 0);
2780 try testArgs(i512, i128, -1 << 127);
2781 try testArgs(i512, i128, -1);
2782 try testArgs(i512, i128, 0);
2783 try testArgs(i1024, i128, -1 << 127);
2784 try testArgs(i1024, i128, -1);
2785 try testArgs(i1024, i128, 0);
2786 try testArgs(u8, u128, 0);
2787 try testArgs(u8, u128, 1 << 0);
2788 try testArgs(u8, u128, 1 << 127);
2789 try testArgs(u16, u128, 0);
2790 try testArgs(u16, u128, 1 << 0);
2791 try testArgs(u16, u128, 1 << 127);
2792 try testArgs(u32, u128, 0);
2793 try testArgs(u32, u128, 1 << 0);
2794 try testArgs(u32, u128, 1 << 127);
2795 try testArgs(u64, u128, 0);
2796 try testArgs(u64, u128, 1 << 0);
2797 try testArgs(u64, u128, 1 << 127);
2798 try testArgs(u128, u128, 0);
2799 try testArgs(u128, u128, 1 << 0);
2800 try testArgs(u128, u128, 1 << 127);
2801 try testArgs(u256, u128, 0);
2802 try testArgs(u256, u128, 1 << 0);
2803 try testArgs(u256, u128, 1 << 127);
2804 try testArgs(u512, u128, 0);
2805 try testArgs(u512, u128, 1 << 0);
2806 try testArgs(u512, u128, 1 << 127);
2807 try testArgs(u1024, u128, 0);
2808 try testArgs(u1024, u128, 1 << 0);
2809 try testArgs(u1024, u128, 1 << 127);
2810
2811 try testArgs(i8, i129, -1 << 128);
2812 try testArgs(i8, i129, -1);
2813 try testArgs(i8, i129, 0);
2814 try testArgs(i16, i129, -1 << 128);
2815 try testArgs(i16, i129, -1);
2816 try testArgs(i16, i129, 0);
2817 try testArgs(i32, i129, -1 << 128);
2818 try testArgs(i32, i129, -1);
2819 try testArgs(i32, i129, 0);
2820 try testArgs(i64, i129, -1 << 128);
2821 try testArgs(i64, i129, -1);
2822 try testArgs(i64, i129, 0);
2823 try testArgs(i128, i129, -1 << 128);
2824 try testArgs(i128, i129, -1);
2825 try testArgs(i128, i129, 0);
2826 try testArgs(i256, i129, -1 << 128);
2827 try testArgs(i256, i129, -1);
2828 try testArgs(i256, i129, 0);
2829 try testArgs(i512, i129, -1 << 128);
2830 try testArgs(i512, i129, -1);
2831 try testArgs(i512, i129, 0);
2832 try testArgs(i1024, i129, -1 << 128);
2833 try testArgs(i1024, i129, -1);
2834 try testArgs(i1024, i129, 0);
2835 try testArgs(u8, u129, 0);
2836 try testArgs(u8, u129, 1 << 0);
2837 try testArgs(u8, u129, 1 << 128);
2838 try testArgs(u16, u129, 0);
2839 try testArgs(u16, u129, 1 << 0);
2840 try testArgs(u16, u129, 1 << 128);
2841 try testArgs(u32, u129, 0);
2842 try testArgs(u32, u129, 1 << 0);
2843 try testArgs(u32, u129, 1 << 128);
2844 try testArgs(u64, u129, 0);
2845 try testArgs(u64, u129, 1 << 0);
2846 try testArgs(u64, u129, 1 << 128);
2847 try testArgs(u128, u129, 0);
2848 try testArgs(u128, u129, 1 << 0);
2849 try testArgs(u128, u129, 1 << 128);
2850 try testArgs(u256, u129, 0);
2851 try testArgs(u256, u129, 1 << 0);
2852 try testArgs(u256, u129, 1 << 128);
2853 try testArgs(u512, u129, 0);
2854 try testArgs(u512, u129, 1 << 0);
2855 try testArgs(u512, u129, 1 << 128);
2856 try testArgs(u1024, u129, 0);
2857 try testArgs(u1024, u129, 1 << 0);
2858 try testArgs(u1024, u129, 1 << 128);
2859
2860 try testArgs(i8, i255, -1 << 254);
2861 try testArgs(i8, i255, -1);
2862 try testArgs(i8, i255, 0);
2863 try testArgs(i16, i255, -1 << 254);
2864 try testArgs(i16, i255, -1);
2865 try testArgs(i16, i255, 0);
2866 try testArgs(i32, i255, -1 << 254);
2867 try testArgs(i32, i255, -1);
2868 try testArgs(i32, i255, 0);
2869 try testArgs(i64, i255, -1 << 254);
2870 try testArgs(i64, i255, -1);
2871 try testArgs(i64, i255, 0);
2872 try testArgs(i128, i255, -1 << 254);
2873 try testArgs(i128, i255, -1);
2874 try testArgs(i128, i255, 0);
2875 try testArgs(i256, i255, -1 << 254);
2876 try testArgs(i256, i255, -1);
2877 try testArgs(i256, i255, 0);
2878 try testArgs(i512, i255, -1 << 254);
2879 try testArgs(i512, i255, -1);
2880 try testArgs(i512, i255, 0);
2881 try testArgs(i1024, i255, -1 << 254);
2882 try testArgs(i1024, i255, -1);
2883 try testArgs(i1024, i255, 0);
2884 try testArgs(u8, u255, 0);
2885 try testArgs(u8, u255, 1 << 0);
2886 try testArgs(u8, u255, 1 << 254);
2887 try testArgs(u16, u255, 0);
2888 try testArgs(u16, u255, 1 << 0);
2889 try testArgs(u16, u255, 1 << 254);
2890 try testArgs(u32, u255, 0);
2891 try testArgs(u32, u255, 1 << 0);
2892 try testArgs(u32, u255, 1 << 254);
2893 try testArgs(u64, u255, 0);
2894 try testArgs(u64, u255, 1 << 0);
2895 try testArgs(u64, u255, 1 << 254);
2896 try testArgs(u128, u255, 0);
2897 try testArgs(u128, u255, 1 << 0);
2898 try testArgs(u128, u255, 1 << 254);
2899 try testArgs(u256, u255, 0);
2900 try testArgs(u256, u255, 1 << 0);
2901 try testArgs(u256, u255, 1 << 254);
2902 try testArgs(u512, u255, 0);
2903 try testArgs(u512, u255, 1 << 0);
2904 try testArgs(u512, u255, 1 << 254);
2905 try testArgs(u1024, u255, 0);
2906 try testArgs(u1024, u255, 1 << 0);
2907 try testArgs(u1024, u255, 1 << 254);
2908
2909 try testArgs(i8, i256, -1 << 255);
2910 try testArgs(i8, i256, -1);
2911 try testArgs(i8, i256, 0);
2912 try testArgs(i16, i256, -1 << 255);
2913 try testArgs(i16, i256, -1);
2914 try testArgs(i16, i256, 0);
2915 try testArgs(i32, i256, -1 << 255);
2916 try testArgs(i32, i256, -1);
2917 try testArgs(i32, i256, 0);
2918 try testArgs(i64, i256, -1 << 255);
2919 try testArgs(i64, i256, -1);
2920 try testArgs(i64, i256, 0);
2921 try testArgs(i128, i256, -1 << 255);
2922 try testArgs(i128, i256, -1);
2923 try testArgs(i128, i256, 0);
2924 try testArgs(i256, i256, -1 << 255);
2925 try testArgs(i256, i256, -1);
2926 try testArgs(i256, i256, 0);
2927 try testArgs(i512, i256, -1 << 255);
2928 try testArgs(i512, i256, -1);
2929 try testArgs(i512, i256, 0);
2930 try testArgs(i1024, i256, -1 << 255);
2931 try testArgs(i1024, i256, -1);
2932 try testArgs(i1024, i256, 0);
2933 try testArgs(u8, u256, 0);
2934 try testArgs(u8, u256, 1 << 0);
2935 try testArgs(u8, u256, 1 << 255);
2936 try testArgs(u16, u256, 0);
2937 try testArgs(u16, u256, 1 << 0);
2938 try testArgs(u16, u256, 1 << 255);
2939 try testArgs(u32, u256, 0);
2940 try testArgs(u32, u256, 1 << 0);
2941 try testArgs(u32, u256, 1 << 255);
2942 try testArgs(u64, u256, 0);
2943 try testArgs(u64, u256, 1 << 0);
2944 try testArgs(u64, u256, 1 << 255);
2945 try testArgs(u128, u256, 0);
2946 try testArgs(u128, u256, 1 << 0);
2947 try testArgs(u128, u256, 1 << 255);
2948 try testArgs(u256, u256, 0);
2949 try testArgs(u256, u256, 1 << 0);
2950 try testArgs(u256, u256, 1 << 255);
2951 try testArgs(u512, u256, 0);
2952 try testArgs(u512, u256, 1 << 0);
2953 try testArgs(u512, u256, 1 << 255);
2954 try testArgs(u1024, u256, 0);
2955 try testArgs(u1024, u256, 1 << 0);
2956 try testArgs(u1024, u256, 1 << 255);
2957
2958 try testArgs(i8, i257, -1 << 256);
2959 try testArgs(i8, i257, -1);
2960 try testArgs(i8, i257, 0);
2961 try testArgs(i16, i257, -1 << 256);
2962 try testArgs(i16, i257, -1);
2963 try testArgs(i16, i257, 0);
2964 try testArgs(i32, i257, -1 << 256);
2965 try testArgs(i32, i257, -1);
2966 try testArgs(i32, i257, 0);
2967 try testArgs(i64, i257, -1 << 256);
2968 try testArgs(i64, i257, -1);
2969 try testArgs(i64, i257, 0);
2970 try testArgs(i128, i257, -1 << 256);
2971 try testArgs(i128, i257, -1);
2972 try testArgs(i128, i257, 0);
2973 try testArgs(i256, i257, -1 << 256);
2974 try testArgs(i256, i257, -1);
2975 try testArgs(i256, i257, 0);
2976 try testArgs(i512, i257, -1 << 256);
2977 try testArgs(i512, i257, -1);
2978 try testArgs(i512, i257, 0);
2979 try testArgs(i1024, i257, -1 << 256);
2980 try testArgs(i1024, i257, -1);
2981 try testArgs(i1024, i257, 0);
2982 try testArgs(u8, u257, 0);
2983 try testArgs(u8, u257, 1 << 0);
2984 try testArgs(u8, u257, 1 << 256);
2985 try testArgs(u16, u257, 0);
2986 try testArgs(u16, u257, 1 << 0);
2987 try testArgs(u16, u257, 1 << 256);
2988 try testArgs(u32, u257, 0);
2989 try testArgs(u32, u257, 1 << 0);
2990 try testArgs(u32, u257, 1 << 256);
2991 try testArgs(u64, u257, 0);
2992 try testArgs(u64, u257, 1 << 0);
2993 try testArgs(u64, u257, 1 << 256);
2994 try testArgs(u128, u257, 0);
2995 try testArgs(u128, u257, 1 << 0);
2996 try testArgs(u128, u257, 1 << 256);
2997 try testArgs(u256, u257, 0);
2998 try testArgs(u256, u257, 1 << 0);
2999 try testArgs(u256, u257, 1 << 256);
3000 try testArgs(u512, u257, 0);
3001 try testArgs(u512, u257, 1 << 0);
3002 try testArgs(u512, u257, 1 << 256);
3003 try testArgs(u1024, u257, 0);
3004 try testArgs(u1024, u257, 1 << 0);
3005 try testArgs(u1024, u257, 1 << 256);
3006
3007 try testArgs(i8, i511, -1 << 510);
3008 try testArgs(i8, i511, -1);
3009 try testArgs(i8, i511, 0);
3010 try testArgs(i16, i511, -1 << 510);
3011 try testArgs(i16, i511, -1);
3012 try testArgs(i16, i511, 0);
3013 try testArgs(i32, i511, -1 << 510);
3014 try testArgs(i32, i511, -1);
3015 try testArgs(i32, i511, 0);
3016 try testArgs(i64, i511, -1 << 510);
3017 try testArgs(i64, i511, -1);
3018 try testArgs(i64, i511, 0);
3019 try testArgs(i128, i511, -1 << 510);
3020 try testArgs(i128, i511, -1);
3021 try testArgs(i128, i511, 0);
3022 try testArgs(i256, i511, -1 << 510);
3023 try testArgs(i256, i511, -1);
3024 try testArgs(i256, i511, 0);
3025 try testArgs(i512, i511, -1 << 510);
3026 try testArgs(i512, i511, -1);
3027 try testArgs(i512, i511, 0);
3028 try testArgs(i1024, i511, -1 << 510);
3029 try testArgs(i1024, i511, -1);
3030 try testArgs(i1024, i511, 0);
3031 try testArgs(u8, u511, 0);
3032 try testArgs(u8, u511, 1 << 0);
3033 try testArgs(u8, u511, 1 << 510);
3034 try testArgs(u16, u511, 0);
3035 try testArgs(u16, u511, 1 << 0);
3036 try testArgs(u16, u511, 1 << 510);
3037 try testArgs(u32, u511, 0);
3038 try testArgs(u32, u511, 1 << 0);
3039 try testArgs(u32, u511, 1 << 510);
3040 try testArgs(u64, u511, 0);
3041 try testArgs(u64, u511, 1 << 0);
3042 try testArgs(u64, u511, 1 << 510);
3043 try testArgs(u128, u511, 0);
3044 try testArgs(u128, u511, 1 << 0);
3045 try testArgs(u128, u511, 1 << 510);
3046 try testArgs(u256, u511, 0);
3047 try testArgs(u256, u511, 1 << 0);
3048 try testArgs(u256, u511, 1 << 510);
3049 try testArgs(u512, u511, 0);
3050 try testArgs(u512, u511, 1 << 0);
3051 try testArgs(u512, u511, 1 << 510);
3052 try testArgs(u1024, u511, 0);
3053 try testArgs(u1024, u511, 1 << 0);
3054 try testArgs(u1024, u511, 1 << 510);
3055
3056 try testArgs(i8, i512, -1 << 511);
3057 try testArgs(i8, i512, -1);
3058 try testArgs(i8, i512, 0);
3059 try testArgs(i16, i512, -1 << 511);
3060 try testArgs(i16, i512, -1);
3061 try testArgs(i16, i512, 0);
3062 try testArgs(i32, i512, -1 << 511);
3063 try testArgs(i32, i512, -1);
3064 try testArgs(i32, i512, 0);
3065 try testArgs(i64, i512, -1 << 511);
3066 try testArgs(i64, i512, -1);
3067 try testArgs(i64, i512, 0);
3068 try testArgs(i128, i512, -1 << 511);
3069 try testArgs(i128, i512, -1);
3070 try testArgs(i128, i512, 0);
3071 try testArgs(i256, i512, -1 << 511);
3072 try testArgs(i256, i512, -1);
3073 try testArgs(i256, i512, 0);
3074 try testArgs(i512, i512, -1 << 511);
3075 try testArgs(i512, i512, -1);
3076 try testArgs(i512, i512, 0);
3077 try testArgs(i1024, i512, -1 << 511);
3078 try testArgs(i1024, i512, -1);
3079 try testArgs(i1024, i512, 0);
3080 try testArgs(u8, u512, 0);
3081 try testArgs(u8, u512, 1 << 0);
3082 try testArgs(u8, u512, 1 << 511);
3083 try testArgs(u16, u512, 0);
3084 try testArgs(u16, u512, 1 << 0);
3085 try testArgs(u16, u512, 1 << 511);
3086 try testArgs(u32, u512, 0);
3087 try testArgs(u32, u512, 1 << 0);
3088 try testArgs(u32, u512, 1 << 511);
3089 try testArgs(u64, u512, 0);
3090 try testArgs(u64, u512, 1 << 0);
3091 try testArgs(u64, u512, 1 << 511);
3092 try testArgs(u128, u512, 0);
3093 try testArgs(u128, u512, 1 << 0);
3094 try testArgs(u128, u512, 1 << 511);
3095 try testArgs(u256, u512, 0);
3096 try testArgs(u256, u512, 1 << 0);
3097 try testArgs(u256, u512, 1 << 511);
3098 try testArgs(u512, u512, 0);
3099 try testArgs(u512, u512, 1 << 0);
3100 try testArgs(u512, u512, 1 << 511);
3101 try testArgs(u1024, u512, 0);
3102 try testArgs(u1024, u512, 1 << 0);
3103 try testArgs(u1024, u512, 1 << 511);
3104
3105 try testArgs(i8, i513, -1 << 512);
3106 try testArgs(i8, i513, -1);
3107 try testArgs(i8, i513, 0);
3108 try testArgs(i16, i513, -1 << 512);
3109 try testArgs(i16, i513, -1);
3110 try testArgs(i16, i513, 0);
3111 try testArgs(i32, i513, -1 << 512);
3112 try testArgs(i32, i513, -1);
3113 try testArgs(i32, i513, 0);
3114 try testArgs(i64, i513, -1 << 512);
3115 try testArgs(i64, i513, -1);
3116 try testArgs(i64, i513, 0);
3117 try testArgs(i128, i513, -1 << 512);
3118 try testArgs(i128, i513, -1);
3119 try testArgs(i128, i513, 0);
3120 try testArgs(i256, i513, -1 << 512);
3121 try testArgs(i256, i513, -1);
3122 try testArgs(i256, i513, 0);
3123 try testArgs(i512, i513, -1 << 512);
3124 try testArgs(i512, i513, -1);
3125 try testArgs(i512, i513, 0);
3126 try testArgs(i1024, i513, -1 << 512);
3127 try testArgs(i1024, i513, -1);
3128 try testArgs(i1024, i513, 0);
3129 try testArgs(u8, u513, 0);
3130 try testArgs(u8, u513, 1 << 0);
3131 try testArgs(u8, u513, 1 << 512);
3132 try testArgs(u16, u513, 0);
3133 try testArgs(u16, u513, 1 << 0);
3134 try testArgs(u16, u513, 1 << 512);
3135 try testArgs(u32, u513, 0);
3136 try testArgs(u32, u513, 1 << 0);
3137 try testArgs(u32, u513, 1 << 512);
3138 try testArgs(u64, u513, 0);
3139 try testArgs(u64, u513, 1 << 0);
3140 try testArgs(u64, u513, 1 << 512);
3141 try testArgs(u128, u513, 0);
3142 try testArgs(u128, u513, 1 << 0);
3143 try testArgs(u128, u513, 1 << 512);
3144 try testArgs(u256, u513, 0);
3145 try testArgs(u256, u513, 1 << 0);
3146 try testArgs(u256, u513, 1 << 512);
3147 try testArgs(u512, u513, 0);
3148 try testArgs(u512, u513, 1 << 0);
3149 try testArgs(u512, u513, 1 << 512);
3150 try testArgs(u1024, u513, 0);
3151 try testArgs(u1024, u513, 1 << 0);
3152 try testArgs(u1024, u513, 1 << 512);
3153
3154 try testArgs(i8, i1023, -1 << 1022);
3155 try testArgs(i8, i1023, -1);
3156 try testArgs(i8, i1023, 0);
3157 try testArgs(i16, i1023, -1 << 1022);
3158 try testArgs(i16, i1023, -1);
3159 try testArgs(i16, i1023, 0);
3160 try testArgs(i32, i1023, -1 << 1022);
3161 try testArgs(i32, i1023, -1);
3162 try testArgs(i32, i1023, 0);
3163 try testArgs(i64, i1023, -1 << 1022);
3164 try testArgs(i64, i1023, -1);
3165 try testArgs(i64, i1023, 0);
3166 try testArgs(i128, i1023, -1 << 1022);
3167 try testArgs(i128, i1023, -1);
3168 try testArgs(i128, i1023, 0);
3169 try testArgs(i256, i1023, -1 << 1022);
3170 try testArgs(i256, i1023, -1);
3171 try testArgs(i256, i1023, 0);
3172 try testArgs(i512, i1023, -1 << 1022);
3173 try testArgs(i512, i1023, -1);
3174 try testArgs(i512, i1023, 0);
3175 try testArgs(i1024, i1023, -1 << 1022);
3176 try testArgs(i1024, i1023, -1);
3177 try testArgs(i1024, i1023, 0);
3178 try testArgs(u8, u1023, 0);
3179 try testArgs(u8, u1023, 1 << 0);
3180 try testArgs(u8, u1023, 1 << 1022);
3181 try testArgs(u16, u1023, 0);
3182 try testArgs(u16, u1023, 1 << 0);
3183 try testArgs(u16, u1023, 1 << 1022);
3184 try testArgs(u32, u1023, 0);
3185 try testArgs(u32, u1023, 1 << 0);
3186 try testArgs(u32, u1023, 1 << 1022);
3187 try testArgs(u64, u1023, 0);
3188 try testArgs(u64, u1023, 1 << 0);
3189 try testArgs(u64, u1023, 1 << 1022);
3190 try testArgs(u128, u1023, 0);
3191 try testArgs(u128, u1023, 1 << 0);
3192 try testArgs(u128, u1023, 1 << 1022);
3193 try testArgs(u256, u1023, 0);
3194 try testArgs(u256, u1023, 1 << 0);
3195 try testArgs(u256, u1023, 1 << 1022);
3196 try testArgs(u512, u1023, 0);
3197 try testArgs(u512, u1023, 1 << 0);
3198 try testArgs(u512, u1023, 1 << 1022);
3199 try testArgs(u1024, u1023, 0);
3200 try testArgs(u1024, u1023, 1 << 0);
3201 try testArgs(u1024, u1023, 1 << 1022);
3202
3203 try testArgs(i8, i1024, -1 << 1023);
3204 try testArgs(i8, i1024, -1);
3205 try testArgs(i8, i1024, 0);
3206 try testArgs(i16, i1024, -1 << 1023);
3207 try testArgs(i16, i1024, -1);
3208 try testArgs(i16, i1024, 0);
3209 try testArgs(i32, i1024, -1 << 1023);
3210 try testArgs(i32, i1024, -1);
3211 try testArgs(i32, i1024, 0);
3212 try testArgs(i64, i1024, -1 << 1023);
3213 try testArgs(i64, i1024, -1);
3214 try testArgs(i64, i1024, 0);
3215 try testArgs(i128, i1024, -1 << 1023);
3216 try testArgs(i128, i1024, -1);
3217 try testArgs(i128, i1024, 0);
3218 try testArgs(i256, i1024, -1 << 1023);
3219 try testArgs(i256, i1024, -1);
3220 try testArgs(i256, i1024, 0);
3221 try testArgs(i512, i1024, -1 << 1023);
3222 try testArgs(i512, i1024, -1);
3223 try testArgs(i512, i1024, 0);
3224 try testArgs(i1024, i1024, -1 << 1023);
3225 try testArgs(i1024, i1024, -1);
3226 try testArgs(i1024, i1024, 0);
3227 try testArgs(u8, u1024, 0);
3228 try testArgs(u8, u1024, 1 << 0);
3229 try testArgs(u8, u1024, 1 << 1023);
3230 try testArgs(u16, u1024, 0);
3231 try testArgs(u16, u1024, 1 << 0);
3232 try testArgs(u16, u1024, 1 << 1023);
3233 try testArgs(u32, u1024, 0);
3234 try testArgs(u32, u1024, 1 << 0);
3235 try testArgs(u32, u1024, 1 << 1023);
3236 try testArgs(u64, u1024, 0);
3237 try testArgs(u64, u1024, 1 << 0);
3238 try testArgs(u64, u1024, 1 << 1023);
3239 try testArgs(u128, u1024, 0);
3240 try testArgs(u128, u1024, 1 << 0);
3241 try testArgs(u128, u1024, 1 << 1023);
3242 try testArgs(u256, u1024, 0);
3243 try testArgs(u256, u1024, 1 << 0);
3244 try testArgs(u256, u1024, 1 << 1023);
3245 try testArgs(u512, u1024, 0);
3246 try testArgs(u512, u1024, 1 << 0);
3247 try testArgs(u512, u1024, 1 << 1023);
3248 try testArgs(u1024, u1024, 0);
3249 try testArgs(u1024, u1024, 1 << 0);
3250 try testArgs(u1024, u1024, 1 << 1023);
3251
3252 try testArgs(i8, i1025, -1 << 1024);
3253 try testArgs(i8, i1025, -1);
3254 try testArgs(i8, i1025, 0);
3255 try testArgs(i16, i1025, -1 << 1024);
3256 try testArgs(i16, i1025, -1);
3257 try testArgs(i16, i1025, 0);
3258 try testArgs(i32, i1025, -1 << 1024);
3259 try testArgs(i32, i1025, -1);
3260 try testArgs(i32, i1025, 0);
3261 try testArgs(i64, i1025, -1 << 1024);
3262 try testArgs(i64, i1025, -1);
3263 try testArgs(i64, i1025, 0);
3264 try testArgs(i128, i1025, -1 << 1024);
3265 try testArgs(i128, i1025, -1);
3266 try testArgs(i128, i1025, 0);
3267 try testArgs(i256, i1025, -1 << 1024);
3268 try testArgs(i256, i1025, -1);
3269 try testArgs(i256, i1025, 0);
3270 try testArgs(i512, i1025, -1 << 1024);
3271 try testArgs(i512, i1025, -1);
3272 try testArgs(i512, i1025, 0);
3273 try testArgs(i1024, i1025, -1 << 1024);
3274 try testArgs(i1024, i1025, -1);
3275 try testArgs(i1024, i1025, 0);
3276 try testArgs(u8, u1025, 0);
3277 try testArgs(u8, u1025, 1 << 0);
3278 try testArgs(u8, u1025, 1 << 1024);
3279 try testArgs(u16, u1025, 0);
3280 try testArgs(u16, u1025, 1 << 0);
3281 try testArgs(u16, u1025, 1 << 1024);
3282 try testArgs(u32, u1025, 0);
3283 try testArgs(u32, u1025, 1 << 0);
3284 try testArgs(u32, u1025, 1 << 1024);
3285 try testArgs(u64, u1025, 0);
3286 try testArgs(u64, u1025, 1 << 0);
3287 try testArgs(u64, u1025, 1 << 1024);
3288 try testArgs(u128, u1025, 0);
3289 try testArgs(u128, u1025, 1 << 0);
3290 try testArgs(u128, u1025, 1 << 1024);
3291 try testArgs(u256, u1025, 0);
3292 try testArgs(u256, u1025, 1 << 0);
3293 try testArgs(u256, u1025, 1 << 1024);
3294 try testArgs(u512, u1025, 0);
3295 try testArgs(u512, u1025, 1 << 0);
3296 try testArgs(u512, u1025, 1 << 1024);
3297 try testArgs(u1024, u1025, 0);
3298 try testArgs(u1024, u1025, 1 << 0);
3299 try testArgs(u1024, u1025, 1 << 1024);
3300 }
3301 fn testInts() !void {
3302 try testSameSignednessInts();
3303
3304 try testArgs(u8, i1, -1);
3305 try testArgs(u8, i1, 0);
3306 try testArgs(u16, i1, -1);
3307 try testArgs(u16, i1, 0);
3308 try testArgs(u32, i1, -1);
3309 try testArgs(u32, i1, 0);
3310 try testArgs(u64, i1, -1);
3311 try testArgs(u64, i1, 0);
3312 try testArgs(u128, i1, -1);
3313 try testArgs(u128, i1, 0);
3314 try testArgs(u256, i1, -1);
3315 try testArgs(u256, i1, 0);
3316 try testArgs(u512, i1, -1);
3317 try testArgs(u512, i1, 0);
3318 try testArgs(u1024, i1, -1);
3319 try testArgs(u1024, i1, 0);
3320 try testArgs(i8, u1, 0);
3321 try testArgs(i8, u1, 1 << 0);
3322 try testArgs(i16, u1, 0);
3323 try testArgs(i16, u1, 1 << 0);
3324 try testArgs(i32, u1, 0);
3325 try testArgs(i32, u1, 1 << 0);
3326 try testArgs(i64, u1, 0);
3327 try testArgs(i64, u1, 1 << 0);
3328 try testArgs(i128, u1, 0);
3329 try testArgs(i128, u1, 1 << 0);
3330 try testArgs(i256, u1, 0);
3331 try testArgs(i256, u1, 1 << 0);
3332 try testArgs(i512, u1, 0);
3333 try testArgs(i512, u1, 1 << 0);
3334 try testArgs(i1024, u1, 0);
3335 try testArgs(i1024, u1, 1 << 0);
3336
3337 try testArgs(u8, i2, -1 << 1);
3338 try testArgs(u8, i2, -1);
3339 try testArgs(u8, i2, 0);
3340 try testArgs(u16, i2, -1 << 1);
3341 try testArgs(u16, i2, -1);
3342 try testArgs(u16, i2, 0);
3343 try testArgs(u32, i2, -1 << 1);
3344 try testArgs(u32, i2, -1);
3345 try testArgs(u32, i2, 0);
3346 try testArgs(u64, i2, -1 << 1);
3347 try testArgs(u64, i2, -1);
3348 try testArgs(u64, i2, 0);
3349 try testArgs(u128, i2, -1 << 1);
3350 try testArgs(u128, i2, -1);
3351 try testArgs(u128, i2, 0);
3352 try testArgs(u256, i2, -1 << 1);
3353 try testArgs(u256, i2, -1);
3354 try testArgs(u256, i2, 0);
3355 try testArgs(u512, i2, -1 << 1);
3356 try testArgs(u512, i2, -1);
3357 try testArgs(u512, i2, 0);
3358 try testArgs(u1024, i2, -1 << 1);
3359 try testArgs(u1024, i2, -1);
3360 try testArgs(u1024, i2, 0);
3361 try testArgs(i8, u2, 0);
3362 try testArgs(i8, u2, 1 << 0);
3363 try testArgs(i8, u2, 1 << 1);
3364 try testArgs(i16, u2, 0);
3365 try testArgs(i16, u2, 1 << 0);
3366 try testArgs(i16, u2, 1 << 1);
3367 try testArgs(i32, u2, 0);
3368 try testArgs(i32, u2, 1 << 0);
3369 try testArgs(i32, u2, 1 << 1);
3370 try testArgs(i64, u2, 0);
3371 try testArgs(i64, u2, 1 << 0);
3372 try testArgs(i64, u2, 1 << 1);
3373 try testArgs(i128, u2, 0);
3374 try testArgs(i128, u2, 1 << 0);
3375 try testArgs(i128, u2, 1 << 1);
3376 try testArgs(i256, u2, 0);
3377 try testArgs(i256, u2, 1 << 0);
3378 try testArgs(i256, u2, 1 << 1);
3379 try testArgs(i512, u2, 0);
3380 try testArgs(i512, u2, 1 << 0);
3381 try testArgs(i512, u2, 1 << 1);
3382 try testArgs(i1024, u2, 0);
3383 try testArgs(i1024, u2, 1 << 0);
3384 try testArgs(i1024, u2, 1 << 1);
3385
3386 try testArgs(u8, i3, -1 << 2);
3387 try testArgs(u8, i3, -1);
3388 try testArgs(u8, i3, 0);
3389 try testArgs(u16, i3, -1 << 2);
3390 try testArgs(u16, i3, -1);
3391 try testArgs(u16, i3, 0);
3392 try testArgs(u32, i3, -1 << 2);
3393 try testArgs(u32, i3, -1);
3394 try testArgs(u32, i3, 0);
3395 try testArgs(u64, i3, -1 << 2);
3396 try testArgs(u64, i3, -1);
3397 try testArgs(u64, i3, 0);
3398 try testArgs(u128, i3, -1 << 2);
3399 try testArgs(u128, i3, -1);
3400 try testArgs(u128, i3, 0);
3401 try testArgs(u256, i3, -1 << 2);
3402 try testArgs(u256, i3, -1);
3403 try testArgs(u256, i3, 0);
3404 try testArgs(u512, i3, -1 << 2);
3405 try testArgs(u512, i3, -1);
3406 try testArgs(u512, i3, 0);
3407 try testArgs(u1024, i3, -1 << 2);
3408 try testArgs(u1024, i3, -1);
3409 try testArgs(u1024, i3, 0);
3410 try testArgs(i8, u3, 0);
3411 try testArgs(i8, u3, 1 << 0);
3412 try testArgs(i8, u3, 1 << 2);
3413 try testArgs(i16, u3, 0);
3414 try testArgs(i16, u3, 1 << 0);
3415 try testArgs(i16, u3, 1 << 2);
3416 try testArgs(i32, u3, 0);
3417 try testArgs(i32, u3, 1 << 0);
3418 try testArgs(i32, u3, 1 << 2);
3419 try testArgs(i64, u3, 0);
3420 try testArgs(i64, u3, 1 << 0);
3421 try testArgs(i64, u3, 1 << 2);
3422 try testArgs(i128, u3, 0);
3423 try testArgs(i128, u3, 1 << 0);
3424 try testArgs(i128, u3, 1 << 2);
3425 try testArgs(i256, u3, 0);
3426 try testArgs(i256, u3, 1 << 0);
3427 try testArgs(i256, u3, 1 << 2);
3428 try testArgs(i512, u3, 0);
3429 try testArgs(i512, u3, 1 << 0);
3430 try testArgs(i512, u3, 1 << 2);
3431 try testArgs(i1024, u3, 0);
3432 try testArgs(i1024, u3, 1 << 0);
3433 try testArgs(i1024, u3, 1 << 2);
3434
3435 try testArgs(u8, i4, -1 << 3);
3436 try testArgs(u8, i4, -1);
3437 try testArgs(u8, i4, 0);
3438 try testArgs(u16, i4, -1 << 3);
3439 try testArgs(u16, i4, -1);
3440 try testArgs(u16, i4, 0);
3441 try testArgs(u32, i4, -1 << 3);
3442 try testArgs(u32, i4, -1);
3443 try testArgs(u32, i4, 0);
3444 try testArgs(u64, i4, -1 << 3);
3445 try testArgs(u64, i4, -1);
3446 try testArgs(u64, i4, 0);
3447 try testArgs(u128, i4, -1 << 3);
3448 try testArgs(u128, i4, -1);
3449 try testArgs(u128, i4, 0);
3450 try testArgs(u256, i4, -1 << 3);
3451 try testArgs(u256, i4, -1);
3452 try testArgs(u256, i4, 0);
3453 try testArgs(u512, i4, -1 << 3);
3454 try testArgs(u512, i4, -1);
3455 try testArgs(u512, i4, 0);
3456 try testArgs(u1024, i4, -1 << 3);
3457 try testArgs(u1024, i4, -1);
3458 try testArgs(u1024, i4, 0);
3459 try testArgs(i8, u4, 0);
3460 try testArgs(i8, u4, 1 << 0);
3461 try testArgs(i8, u4, 1 << 3);
3462 try testArgs(i16, u4, 0);
3463 try testArgs(i16, u4, 1 << 0);
3464 try testArgs(i16, u4, 1 << 3);
3465 try testArgs(i32, u4, 0);
3466 try testArgs(i32, u4, 1 << 0);
3467 try testArgs(i32, u4, 1 << 3);
3468 try testArgs(i64, u4, 0);
3469 try testArgs(i64, u4, 1 << 0);
3470 try testArgs(i64, u4, 1 << 3);
3471 try testArgs(i128, u4, 0);
3472 try testArgs(i128, u4, 1 << 0);
3473 try testArgs(i128, u4, 1 << 3);
3474 try testArgs(i256, u4, 0);
3475 try testArgs(i256, u4, 1 << 0);
3476 try testArgs(i256, u4, 1 << 3);
3477 try testArgs(i512, u4, 0);
3478 try testArgs(i512, u4, 1 << 0);
3479 try testArgs(i512, u4, 1 << 3);
3480 try testArgs(i1024, u4, 0);
3481 try testArgs(i1024, u4, 1 << 0);
3482 try testArgs(i1024, u4, 1 << 3);
3483
3484 try testArgs(u8, i5, -1 << 4);
3485 try testArgs(u8, i5, -1);
3486 try testArgs(u8, i5, 0);
3487 try testArgs(u16, i5, -1 << 4);
3488 try testArgs(u16, i5, -1);
3489 try testArgs(u16, i5, 0);
3490 try testArgs(u32, i5, -1 << 4);
3491 try testArgs(u32, i5, -1);
3492 try testArgs(u32, i5, 0);
3493 try testArgs(u64, i5, -1 << 4);
3494 try testArgs(u64, i5, -1);
3495 try testArgs(u64, i5, 0);
3496 try testArgs(u128, i5, -1 << 4);
3497 try testArgs(u128, i5, -1);
3498 try testArgs(u128, i5, 0);
3499 try testArgs(u256, i5, -1 << 4);
3500 try testArgs(u256, i5, -1);
3501 try testArgs(u256, i5, 0);
3502 try testArgs(u512, i5, -1 << 4);
3503 try testArgs(u512, i5, -1);
3504 try testArgs(u512, i5, 0);
3505 try testArgs(u1024, i5, -1 << 4);
3506 try testArgs(u1024, i5, -1);
3507 try testArgs(u1024, i5, 0);
3508 try testArgs(i8, u5, 0);
3509 try testArgs(i8, u5, 1 << 0);
3510 try testArgs(i8, u5, 1 << 4);
3511 try testArgs(i16, u5, 0);
3512 try testArgs(i16, u5, 1 << 0);
3513 try testArgs(i16, u5, 1 << 4);
3514 try testArgs(i32, u5, 0);
3515 try testArgs(i32, u5, 1 << 0);
3516 try testArgs(i32, u5, 1 << 4);
3517 try testArgs(i64, u5, 0);
3518 try testArgs(i64, u5, 1 << 0);
3519 try testArgs(i64, u5, 1 << 4);
3520 try testArgs(i128, u5, 0);
3521 try testArgs(i128, u5, 1 << 0);
3522 try testArgs(i128, u5, 1 << 4);
3523 try testArgs(i256, u5, 0);
3524 try testArgs(i256, u5, 1 << 0);
3525 try testArgs(i256, u5, 1 << 4);
3526 try testArgs(i512, u5, 0);
3527 try testArgs(i512, u5, 1 << 0);
3528 try testArgs(i512, u5, 1 << 4);
3529 try testArgs(i1024, u5, 0);
3530 try testArgs(i1024, u5, 1 << 0);
3531 try testArgs(i1024, u5, 1 << 4);
3532
3533 try testArgs(u8, i7, -1 << 6);
3534 try testArgs(u8, i7, -1);
3535 try testArgs(u8, i7, 0);
3536 try testArgs(u16, i7, -1 << 6);
3537 try testArgs(u16, i7, -1);
3538 try testArgs(u16, i7, 0);
3539 try testArgs(u32, i7, -1 << 6);
3540 try testArgs(u32, i7, -1);
3541 try testArgs(u32, i7, 0);
3542 try testArgs(u64, i7, -1 << 6);
3543 try testArgs(u64, i7, -1);
3544 try testArgs(u64, i7, 0);
3545 try testArgs(u128, i7, -1 << 6);
3546 try testArgs(u128, i7, -1);
3547 try testArgs(u128, i7, 0);
3548 try testArgs(u256, i7, -1 << 6);
3549 try testArgs(u256, i7, -1);
3550 try testArgs(u256, i7, 0);
3551 try testArgs(u512, i7, -1 << 6);
3552 try testArgs(u512, i7, -1);
3553 try testArgs(u512, i7, 0);
3554 try testArgs(u1024, i7, -1 << 6);
3555 try testArgs(u1024, i7, -1);
3556 try testArgs(u1024, i7, 0);
3557 try testArgs(i8, u7, 0);
3558 try testArgs(i8, u7, 1 << 0);
3559 try testArgs(i8, u7, 1 << 6);
3560 try testArgs(i16, u7, 0);
3561 try testArgs(i16, u7, 1 << 0);
3562 try testArgs(i16, u7, 1 << 6);
3563 try testArgs(i32, u7, 0);
3564 try testArgs(i32, u7, 1 << 0);
3565 try testArgs(i32, u7, 1 << 6);
3566 try testArgs(i64, u7, 0);
3567 try testArgs(i64, u7, 1 << 0);
3568 try testArgs(i64, u7, 1 << 6);
3569 try testArgs(i128, u7, 0);
3570 try testArgs(i128, u7, 1 << 0);
3571 try testArgs(i128, u7, 1 << 6);
3572 try testArgs(i256, u7, 0);
3573 try testArgs(i256, u7, 1 << 0);
3574 try testArgs(i256, u7, 1 << 6);
3575 try testArgs(i512, u7, 0);
3576 try testArgs(i512, u7, 1 << 0);
3577 try testArgs(i512, u7, 1 << 6);
3578 try testArgs(i1024, u7, 0);
3579 try testArgs(i1024, u7, 1 << 0);
3580 try testArgs(i1024, u7, 1 << 6);
3581
3582 try testArgs(u8, i8, -1 << 7);
3583 try testArgs(u8, i8, -1);
3584 try testArgs(u8, i8, 0);
3585 try testArgs(u16, i8, -1 << 7);
3586 try testArgs(u16, i8, -1);
3587 try testArgs(u16, i8, 0);
3588 try testArgs(u32, i8, -1 << 7);
3589 try testArgs(u32, i8, -1);
3590 try testArgs(u32, i8, 0);
3591 try testArgs(u64, i8, -1 << 7);
3592 try testArgs(u64, i8, -1);
3593 try testArgs(u64, i8, 0);
3594 try testArgs(u128, i8, -1 << 7);
3595 try testArgs(u128, i8, -1);
3596 try testArgs(u128, i8, 0);
3597 try testArgs(u256, i8, -1 << 7);
3598 try testArgs(u256, i8, -1);
3599 try testArgs(u256, i8, 0);
3600 try testArgs(u512, i8, -1 << 7);
3601 try testArgs(u512, i8, -1);
3602 try testArgs(u512, i8, 0);
3603 try testArgs(u1024, i8, -1 << 7);
3604 try testArgs(u1024, i8, -1);
3605 try testArgs(u1024, i8, 0);
3606 try testArgs(i8, u8, 0);
3607 try testArgs(i8, u8, 1 << 0);
3608 try testArgs(i8, u8, 1 << 7);
3609 try testArgs(i16, u8, 0);
3610 try testArgs(i16, u8, 1 << 0);
3611 try testArgs(i16, u8, 1 << 7);
3612 try testArgs(i32, u8, 0);
3613 try testArgs(i32, u8, 1 << 0);
3614 try testArgs(i32, u8, 1 << 7);
3615 try testArgs(i64, u8, 0);
3616 try testArgs(i64, u8, 1 << 0);
3617 try testArgs(i64, u8, 1 << 7);
3618 try testArgs(i128, u8, 0);
3619 try testArgs(i128, u8, 1 << 0);
3620 try testArgs(i128, u8, 1 << 7);
3621 try testArgs(i256, u8, 0);
3622 try testArgs(i256, u8, 1 << 0);
3623 try testArgs(i256, u8, 1 << 7);
3624 try testArgs(i512, u8, 0);
3625 try testArgs(i512, u8, 1 << 0);
3626 try testArgs(i512, u8, 1 << 7);
3627 try testArgs(i1024, u8, 0);
3628 try testArgs(i1024, u8, 1 << 0);
3629 try testArgs(i1024, u8, 1 << 7);
3630
3631 try testArgs(u8, i9, -1 << 8);
3632 try testArgs(u8, i9, -1);
3633 try testArgs(u8, i9, 0);
3634 try testArgs(u16, i9, -1 << 8);
3635 try testArgs(u16, i9, -1);
3636 try testArgs(u16, i9, 0);
3637 try testArgs(u32, i9, -1 << 8);
3638 try testArgs(u32, i9, -1);
3639 try testArgs(u32, i9, 0);
3640 try testArgs(u64, i9, -1 << 8);
3641 try testArgs(u64, i9, -1);
3642 try testArgs(u64, i9, 0);
3643 try testArgs(u128, i9, -1 << 8);
3644 try testArgs(u128, i9, -1);
3645 try testArgs(u128, i9, 0);
3646 try testArgs(u256, i9, -1 << 8);
3647 try testArgs(u256, i9, -1);
3648 try testArgs(u256, i9, 0);
3649 try testArgs(u512, i9, -1 << 8);
3650 try testArgs(u512, i9, -1);
3651 try testArgs(u512, i9, 0);
3652 try testArgs(u1024, i9, -1 << 8);
3653 try testArgs(u1024, i9, -1);
3654 try testArgs(u1024, i9, 0);
3655 try testArgs(i8, u9, 0);
3656 try testArgs(i8, u9, 1 << 0);
3657 try testArgs(i8, u9, 1 << 8);
3658 try testArgs(i16, u9, 0);
3659 try testArgs(i16, u9, 1 << 0);
3660 try testArgs(i16, u9, 1 << 8);
3661 try testArgs(i32, u9, 0);
3662 try testArgs(i32, u9, 1 << 0);
3663 try testArgs(i32, u9, 1 << 8);
3664 try testArgs(i64, u9, 0);
3665 try testArgs(i64, u9, 1 << 0);
3666 try testArgs(i64, u9, 1 << 8);
3667 try testArgs(i128, u9, 0);
3668 try testArgs(i128, u9, 1 << 0);
3669 try testArgs(i128, u9, 1 << 8);
3670 try testArgs(i256, u9, 0);
3671 try testArgs(i256, u9, 1 << 0);
3672 try testArgs(i256, u9, 1 << 8);
3673 try testArgs(i512, u9, 0);
3674 try testArgs(i512, u9, 1 << 0);
3675 try testArgs(i512, u9, 1 << 8);
3676 try testArgs(i1024, u9, 0);
3677 try testArgs(i1024, u9, 1 << 0);
3678 try testArgs(i1024, u9, 1 << 8);
3679
3680 try testArgs(u8, i15, -1 << 14);
3681 try testArgs(u8, i15, -1);
3682 try testArgs(u8, i15, 0);
3683 try testArgs(u16, i15, -1 << 14);
3684 try testArgs(u16, i15, -1);
3685 try testArgs(u16, i15, 0);
3686 try testArgs(u32, i15, -1 << 14);
3687 try testArgs(u32, i15, -1);
3688 try testArgs(u32, i15, 0);
3689 try testArgs(u64, i15, -1 << 14);
3690 try testArgs(u64, i15, -1);
3691 try testArgs(u64, i15, 0);
3692 try testArgs(u128, i15, -1 << 14);
3693 try testArgs(u128, i15, -1);
3694 try testArgs(u128, i15, 0);
3695 try testArgs(u256, i15, -1 << 14);
3696 try testArgs(u256, i15, -1);
3697 try testArgs(u256, i15, 0);
3698 try testArgs(u512, i15, -1 << 14);
3699 try testArgs(u512, i15, -1);
3700 try testArgs(u512, i15, 0);
3701 try testArgs(u1024, i15, -1 << 14);
3702 try testArgs(u1024, i15, -1);
3703 try testArgs(u1024, i15, 0);
3704 try testArgs(i8, u15, 0);
3705 try testArgs(i8, u15, 1 << 0);
3706 try testArgs(i8, u15, 1 << 14);
3707 try testArgs(i16, u15, 0);
3708 try testArgs(i16, u15, 1 << 0);
3709 try testArgs(i16, u15, 1 << 14);
3710 try testArgs(i32, u15, 0);
3711 try testArgs(i32, u15, 1 << 0);
3712 try testArgs(i32, u15, 1 << 14);
3713 try testArgs(i64, u15, 0);
3714 try testArgs(i64, u15, 1 << 0);
3715 try testArgs(i64, u15, 1 << 14);
3716 try testArgs(i128, u15, 0);
3717 try testArgs(i128, u15, 1 << 0);
3718 try testArgs(i128, u15, 1 << 14);
3719 try testArgs(i256, u15, 0);
3720 try testArgs(i256, u15, 1 << 0);
3721 try testArgs(i256, u15, 1 << 14);
3722 try testArgs(i512, u15, 0);
3723 try testArgs(i512, u15, 1 << 0);
3724 try testArgs(i512, u15, 1 << 14);
3725 try testArgs(i1024, u15, 0);
3726 try testArgs(i1024, u15, 1 << 0);
3727 try testArgs(i1024, u15, 1 << 14);
3728
3729 try testArgs(u8, i16, -1 << 15);
3730 try testArgs(u8, i16, -1);
3731 try testArgs(u8, i16, 0);
3732 try testArgs(u16, i16, -1 << 15);
3733 try testArgs(u16, i16, -1);
3734 try testArgs(u16, i16, 0);
3735 try testArgs(u32, i16, -1 << 15);
3736 try testArgs(u32, i16, -1);
3737 try testArgs(u32, i16, 0);
3738 try testArgs(u64, i16, -1 << 15);
3739 try testArgs(u64, i16, -1);
3740 try testArgs(u64, i16, 0);
3741 try testArgs(u128, i16, -1 << 15);
3742 try testArgs(u128, i16, -1);
3743 try testArgs(u128, i16, 0);
3744 try testArgs(u256, i16, -1 << 15);
3745 try testArgs(u256, i16, -1);
3746 try testArgs(u256, i16, 0);
3747 try testArgs(u512, i16, -1 << 15);
3748 try testArgs(u512, i16, -1);
3749 try testArgs(u512, i16, 0);
3750 try testArgs(u1024, i16, -1 << 15);
3751 try testArgs(u1024, i16, -1);
3752 try testArgs(u1024, i16, 0);
3753 try testArgs(i8, u16, 0);
3754 try testArgs(i8, u16, 1 << 0);
3755 try testArgs(i8, u16, 1 << 15);
3756 try testArgs(i16, u16, 0);
3757 try testArgs(i16, u16, 1 << 0);
3758 try testArgs(i16, u16, 1 << 15);
3759 try testArgs(i32, u16, 0);
3760 try testArgs(i32, u16, 1 << 0);
3761 try testArgs(i32, u16, 1 << 15);
3762 try testArgs(i64, u16, 0);
3763 try testArgs(i64, u16, 1 << 0);
3764 try testArgs(i64, u16, 1 << 15);
3765 try testArgs(i128, u16, 0);
3766 try testArgs(i128, u16, 1 << 0);
3767 try testArgs(i128, u16, 1 << 15);
3768 try testArgs(i256, u16, 0);
3769 try testArgs(i256, u16, 1 << 0);
3770 try testArgs(i256, u16, 1 << 15);
3771 try testArgs(i512, u16, 0);
3772 try testArgs(i512, u16, 1 << 0);
3773 try testArgs(i512, u16, 1 << 15);
3774 try testArgs(i1024, u16, 0);
3775 try testArgs(i1024, u16, 1 << 0);
3776 try testArgs(i1024, u16, 1 << 15);
3777
3778 try testArgs(u8, i17, -1 << 16);
3779 try testArgs(u8, i17, -1);
3780 try testArgs(u8, i17, 0);
3781 try testArgs(u16, i17, -1 << 16);
3782 try testArgs(u16, i17, -1);
3783 try testArgs(u16, i17, 0);
3784 try testArgs(u32, i17, -1 << 16);
3785 try testArgs(u32, i17, -1);
3786 try testArgs(u32, i17, 0);
3787 try testArgs(u64, i17, -1 << 16);
3788 try testArgs(u64, i17, -1);
3789 try testArgs(u64, i17, 0);
3790 try testArgs(u128, i17, -1 << 16);
3791 try testArgs(u128, i17, -1);
3792 try testArgs(u128, i17, 0);
3793 try testArgs(u256, i17, -1 << 16);
3794 try testArgs(u256, i17, -1);
3795 try testArgs(u256, i17, 0);
3796 try testArgs(u512, i17, -1 << 16);
3797 try testArgs(u512, i17, -1);
3798 try testArgs(u512, i17, 0);
3799 try testArgs(u1024, i17, -1 << 16);
3800 try testArgs(u1024, i17, -1);
3801 try testArgs(u1024, i17, 0);
3802 try testArgs(i8, u17, 0);
3803 try testArgs(i8, u17, 1 << 0);
3804 try testArgs(i8, u17, 1 << 16);
3805 try testArgs(i16, u17, 0);
3806 try testArgs(i16, u17, 1 << 0);
3807 try testArgs(i16, u17, 1 << 16);
3808 try testArgs(i32, u17, 0);
3809 try testArgs(i32, u17, 1 << 0);
3810 try testArgs(i32, u17, 1 << 16);
3811 try testArgs(i64, u17, 0);
3812 try testArgs(i64, u17, 1 << 0);
3813 try testArgs(i64, u17, 1 << 16);
3814 try testArgs(i128, u17, 0);
3815 try testArgs(i128, u17, 1 << 0);
3816 try testArgs(i128, u17, 1 << 16);
3817 try testArgs(i256, u17, 0);
3818 try testArgs(i256, u17, 1 << 0);
3819 try testArgs(i256, u17, 1 << 16);
3820 try testArgs(i512, u17, 0);
3821 try testArgs(i512, u17, 1 << 0);
3822 try testArgs(i512, u17, 1 << 16);
3823 try testArgs(i1024, u17, 0);
3824 try testArgs(i1024, u17, 1 << 0);
3825 try testArgs(i1024, u17, 1 << 16);
3826
3827 try testArgs(u8, i31, -1 << 30);
3828 try testArgs(u8, i31, -1);
3829 try testArgs(u8, i31, 0);
3830 try testArgs(u16, i31, -1 << 30);
3831 try testArgs(u16, i31, -1);
3832 try testArgs(u16, i31, 0);
3833 try testArgs(u32, i31, -1 << 30);
3834 try testArgs(u32, i31, -1);
3835 try testArgs(u32, i31, 0);
3836 try testArgs(u64, i31, -1 << 30);
3837 try testArgs(u64, i31, -1);
3838 try testArgs(u64, i31, 0);
3839 try testArgs(u128, i31, -1 << 30);
3840 try testArgs(u128, i31, -1);
3841 try testArgs(u128, i31, 0);
3842 try testArgs(u256, i31, -1 << 30);
3843 try testArgs(u256, i31, -1);
3844 try testArgs(u256, i31, 0);
3845 try testArgs(u512, i31, -1 << 30);
3846 try testArgs(u512, i31, -1);
3847 try testArgs(u512, i31, 0);
3848 try testArgs(u1024, i31, -1 << 30);
3849 try testArgs(u1024, i31, -1);
3850 try testArgs(u1024, i31, 0);
3851 try testArgs(i8, u31, 0);
3852 try testArgs(i8, u31, 1 << 0);
3853 try testArgs(i8, u31, 1 << 30);
3854 try testArgs(i16, u31, 0);
3855 try testArgs(i16, u31, 1 << 0);
3856 try testArgs(i16, u31, 1 << 30);
3857 try testArgs(i32, u31, 0);
3858 try testArgs(i32, u31, 1 << 0);
3859 try testArgs(i32, u31, 1 << 30);
3860 try testArgs(i64, u31, 0);
3861 try testArgs(i64, u31, 1 << 0);
3862 try testArgs(i64, u31, 1 << 30);
3863 try testArgs(i128, u31, 0);
3864 try testArgs(i128, u31, 1 << 0);
3865 try testArgs(i128, u31, 1 << 30);
3866 try testArgs(i256, u31, 0);
3867 try testArgs(i256, u31, 1 << 0);
3868 try testArgs(i256, u31, 1 << 30);
3869 try testArgs(i512, u31, 0);
3870 try testArgs(i512, u31, 1 << 0);
3871 try testArgs(i512, u31, 1 << 30);
3872 try testArgs(i1024, u31, 0);
3873 try testArgs(i1024, u31, 1 << 0);
3874 try testArgs(i1024, u31, 1 << 30);
3875
3876 try testArgs(u8, i32, -1 << 31);
3877 try testArgs(u8, i32, -1);
3878 try testArgs(u8, i32, 0);
3879 try testArgs(u16, i32, -1 << 31);
3880 try testArgs(u16, i32, -1);
3881 try testArgs(u16, i32, 0);
3882 try testArgs(u32, i32, -1 << 31);
3883 try testArgs(u32, i32, -1);
3884 try testArgs(u32, i32, 0);
3885 try testArgs(u64, i32, -1 << 31);
3886 try testArgs(u64, i32, -1);
3887 try testArgs(u64, i32, 0);
3888 try testArgs(u128, i32, -1 << 31);
3889 try testArgs(u128, i32, -1);
3890 try testArgs(u128, i32, 0);
3891 try testArgs(u256, i32, -1 << 31);
3892 try testArgs(u256, i32, -1);
3893 try testArgs(u256, i32, 0);
3894 try testArgs(u512, i32, -1 << 31);
3895 try testArgs(u512, i32, -1);
3896 try testArgs(u512, i32, 0);
3897 try testArgs(u1024, i32, -1 << 31);
3898 try testArgs(u1024, i32, -1);
3899 try testArgs(u1024, i32, 0);
3900 try testArgs(i8, u32, 0);
3901 try testArgs(i8, u32, 1 << 0);
3902 try testArgs(i8, u32, 1 << 31);
3903 try testArgs(i16, u32, 0);
3904 try testArgs(i16, u32, 1 << 0);
3905 try testArgs(i16, u32, 1 << 31);
3906 try testArgs(i32, u32, 0);
3907 try testArgs(i32, u32, 1 << 0);
3908 try testArgs(i32, u32, 1 << 31);
3909 try testArgs(i64, u32, 0);
3910 try testArgs(i64, u32, 1 << 0);
3911 try testArgs(i64, u32, 1 << 31);
3912 try testArgs(i128, u32, 0);
3913 try testArgs(i128, u32, 1 << 0);
3914 try testArgs(i128, u32, 1 << 31);
3915 try testArgs(i256, u32, 0);
3916 try testArgs(i256, u32, 1 << 0);
3917 try testArgs(i256, u32, 1 << 31);
3918 try testArgs(i512, u32, 0);
3919 try testArgs(i512, u32, 1 << 0);
3920 try testArgs(i512, u32, 1 << 31);
3921 try testArgs(i1024, u32, 0);
3922 try testArgs(i1024, u32, 1 << 0);
3923 try testArgs(i1024, u32, 1 << 31);
3924
3925 try testArgs(u8, i33, -1 << 32);
3926 try testArgs(u8, i33, -1);
3927 try testArgs(u8, i33, 0);
3928 try testArgs(u16, i33, -1 << 32);
3929 try testArgs(u16, i33, -1);
3930 try testArgs(u16, i33, 0);
3931 try testArgs(u32, i33, -1 << 32);
3932 try testArgs(u32, i33, -1);
3933 try testArgs(u32, i33, 0);
3934 try testArgs(u64, i33, -1 << 32);
3935 try testArgs(u64, i33, -1);
3936 try testArgs(u64, i33, 0);
3937 try testArgs(u128, i33, -1 << 32);
3938 try testArgs(u128, i33, -1);
3939 try testArgs(u128, i33, 0);
3940 try testArgs(u256, i33, -1 << 32);
3941 try testArgs(u256, i33, -1);
3942 try testArgs(u256, i33, 0);
3943 try testArgs(u512, i33, -1 << 32);
3944 try testArgs(u512, i33, -1);
3945 try testArgs(u512, i33, 0);
3946 try testArgs(u1024, i33, -1 << 32);
3947 try testArgs(u1024, i33, -1);
3948 try testArgs(u1024, i33, 0);
3949 try testArgs(i8, u33, 0);
3950 try testArgs(i8, u33, 1 << 0);
3951 try testArgs(i8, u33, 1 << 32);
3952 try testArgs(i16, u33, 0);
3953 try testArgs(i16, u33, 1 << 0);
3954 try testArgs(i16, u33, 1 << 32);
3955 try testArgs(i32, u33, 0);
3956 try testArgs(i32, u33, 1 << 0);
3957 try testArgs(i32, u33, 1 << 32);
3958 try testArgs(i64, u33, 0);
3959 try testArgs(i64, u33, 1 << 0);
3960 try testArgs(i64, u33, 1 << 32);
3961 try testArgs(i128, u33, 0);
3962 try testArgs(i128, u33, 1 << 0);
3963 try testArgs(i128, u33, 1 << 32);
3964 try testArgs(i256, u33, 0);
3965 try testArgs(i256, u33, 1 << 0);
3966 try testArgs(i256, u33, 1 << 32);
3967 try testArgs(i512, u33, 0);
3968 try testArgs(i512, u33, 1 << 0);
3969 try testArgs(i512, u33, 1 << 32);
3970 try testArgs(i1024, u33, 0);
3971 try testArgs(i1024, u33, 1 << 0);
3972 try testArgs(i1024, u33, 1 << 32);
3973
3974 try testArgs(u8, i63, -1 << 62);
3975 try testArgs(u8, i63, -1);
3976 try testArgs(u8, i63, 0);
3977 try testArgs(u16, i63, -1 << 62);
3978 try testArgs(u16, i63, -1);
3979 try testArgs(u16, i63, 0);
3980 try testArgs(u32, i63, -1 << 62);
3981 try testArgs(u32, i63, -1);
3982 try testArgs(u32, i63, 0);
3983 try testArgs(u64, i63, -1 << 62);
3984 try testArgs(u64, i63, -1);
3985 try testArgs(u64, i63, 0);
3986 try testArgs(u128, i63, -1 << 62);
3987 try testArgs(u128, i63, -1);
3988 try testArgs(u128, i63, 0);
3989 try testArgs(u256, i63, -1 << 62);
3990 try testArgs(u256, i63, -1);
3991 try testArgs(u256, i63, 0);
3992 try testArgs(u512, i63, -1 << 62);
3993 try testArgs(u512, i63, -1);
3994 try testArgs(u512, i63, 0);
3995 try testArgs(u1024, i63, -1 << 62);
3996 try testArgs(u1024, i63, -1);
3997 try testArgs(u1024, i63, 0);
3998 try testArgs(i8, u63, 0);
3999 try testArgs(i8, u63, 1 << 0);
4000 try testArgs(i8, u63, 1 << 62);
4001 try testArgs(i16, u63, 0);
4002 try testArgs(i16, u63, 1 << 0);
4003 try testArgs(i16, u63, 1 << 62);
4004 try testArgs(i32, u63, 0);
4005 try testArgs(i32, u63, 1 << 0);
4006 try testArgs(i32, u63, 1 << 62);
4007 try testArgs(i64, u63, 0);
4008 try testArgs(i64, u63, 1 << 0);
4009 try testArgs(i64, u63, 1 << 62);
4010 try testArgs(i128, u63, 0);
4011 try testArgs(i128, u63, 1 << 0);
4012 try testArgs(i128, u63, 1 << 62);
4013 try testArgs(i256, u63, 0);
4014 try testArgs(i256, u63, 1 << 0);
4015 try testArgs(i256, u63, 1 << 62);
4016 try testArgs(i512, u63, 0);
4017 try testArgs(i512, u63, 1 << 0);
4018 try testArgs(i512, u63, 1 << 62);
4019 try testArgs(i1024, u63, 0);
4020 try testArgs(i1024, u63, 1 << 0);
4021 try testArgs(i1024, u63, 1 << 62);
4022
4023 try testArgs(u8, i64, -1 << 63);
4024 try testArgs(u8, i64, -1);
4025 try testArgs(u8, i64, 0);
4026 try testArgs(u16, i64, -1 << 63);
4027 try testArgs(u16, i64, -1);
4028 try testArgs(u16, i64, 0);
4029 try testArgs(u32, i64, -1 << 63);
4030 try testArgs(u32, i64, -1);
4031 try testArgs(u32, i64, 0);
4032 try testArgs(u64, i64, -1 << 63);
4033 try testArgs(u64, i64, -1);
4034 try testArgs(u64, i64, 0);
4035 try testArgs(u128, i64, -1 << 63);
4036 try testArgs(u128, i64, -1);
4037 try testArgs(u128, i64, 0);
4038 try testArgs(u256, i64, -1 << 63);
4039 try testArgs(u256, i64, -1);
4040 try testArgs(u256, i64, 0);
4041 try testArgs(u512, i64, -1 << 63);
4042 try testArgs(u512, i64, -1);
4043 try testArgs(u512, i64, 0);
4044 try testArgs(u1024, i64, -1 << 63);
4045 try testArgs(u1024, i64, -1);
4046 try testArgs(u1024, i64, 0);
4047 try testArgs(i8, u64, 0);
4048 try testArgs(i8, u64, 1 << 0);
4049 try testArgs(i8, u64, 1 << 63);
4050 try testArgs(i16, u64, 0);
4051 try testArgs(i16, u64, 1 << 0);
4052 try testArgs(i16, u64, 1 << 63);
4053 try testArgs(i32, u64, 0);
4054 try testArgs(i32, u64, 1 << 0);
4055 try testArgs(i32, u64, 1 << 63);
4056 try testArgs(i64, u64, 0);
4057 try testArgs(i64, u64, 1 << 0);
4058 try testArgs(i64, u64, 1 << 63);
4059 try testArgs(i128, u64, 0);
4060 try testArgs(i128, u64, 1 << 0);
4061 try testArgs(i128, u64, 1 << 63);
4062 try testArgs(i256, u64, 0);
4063 try testArgs(i256, u64, 1 << 0);
4064 try testArgs(i256, u64, 1 << 63);
4065 try testArgs(i512, u64, 0);
4066 try testArgs(i512, u64, 1 << 0);
4067 try testArgs(i512, u64, 1 << 63);
4068 try testArgs(i1024, u64, 0);
4069 try testArgs(i1024, u64, 1 << 0);
4070 try testArgs(i1024, u64, 1 << 63);
4071
4072 try testArgs(u8, i65, -1 << 64);
4073 try testArgs(u8, i65, -1);
4074 try testArgs(u8, i65, 0);
4075 try testArgs(u16, i65, -1 << 64);
4076 try testArgs(u16, i65, -1);
4077 try testArgs(u16, i65, 0);
4078 try testArgs(u32, i65, -1 << 64);
4079 try testArgs(u32, i65, -1);
4080 try testArgs(u32, i65, 0);
4081 try testArgs(u64, i65, -1 << 64);
4082 try testArgs(u64, i65, -1);
4083 try testArgs(u64, i65, 0);
4084 try testArgs(u128, i65, -1 << 64);
4085 try testArgs(u128, i65, -1);
4086 try testArgs(u128, i65, 0);
4087 try testArgs(u256, i65, -1 << 64);
4088 try testArgs(u256, i65, -1);
4089 try testArgs(u256, i65, 0);
4090 try testArgs(u512, i65, -1 << 64);
4091 try testArgs(u512, i65, -1);
4092 try testArgs(u512, i65, 0);
4093 try testArgs(u1024, i65, -1 << 64);
4094 try testArgs(u1024, i65, -1);
4095 try testArgs(u1024, i65, 0);
4096 try testArgs(i8, u65, 0);
4097 try testArgs(i8, u65, 1 << 0);
4098 try testArgs(i8, u65, 1 << 64);
4099 try testArgs(i16, u65, 0);
4100 try testArgs(i16, u65, 1 << 0);
4101 try testArgs(i16, u65, 1 << 64);
4102 try testArgs(i32, u65, 0);
4103 try testArgs(i32, u65, 1 << 0);
4104 try testArgs(i32, u65, 1 << 64);
4105 try testArgs(i64, u65, 0);
4106 try testArgs(i64, u65, 1 << 0);
4107 try testArgs(i64, u65, 1 << 64);
4108 try testArgs(i128, u65, 0);
4109 try testArgs(i128, u65, 1 << 0);
4110 try testArgs(i128, u65, 1 << 64);
4111 try testArgs(i256, u65, 0);
4112 try testArgs(i256, u65, 1 << 0);
4113 try testArgs(i256, u65, 1 << 64);
4114 try testArgs(i512, u65, 0);
4115 try testArgs(i512, u65, 1 << 0);
4116 try testArgs(i512, u65, 1 << 64);
4117 try testArgs(i1024, u65, 0);
4118 try testArgs(i1024, u65, 1 << 0);
4119 try testArgs(i1024, u65, 1 << 64);
4120
4121 try testArgs(u8, i95, -1 << 94);
4122 try testArgs(u8, i95, -1);
4123 try testArgs(u8, i95, 0);
4124 try testArgs(u16, i95, -1 << 94);
4125 try testArgs(u16, i95, -1);
4126 try testArgs(u16, i95, 0);
4127 try testArgs(u32, i95, -1 << 94);
4128 try testArgs(u32, i95, -1);
4129 try testArgs(u32, i95, 0);
4130 try testArgs(u64, i95, -1 << 94);
4131 try testArgs(u64, i95, -1);
4132 try testArgs(u64, i95, 0);
4133 try testArgs(u128, i95, -1 << 94);
4134 try testArgs(u128, i95, -1);
4135 try testArgs(u128, i95, 0);
4136 try testArgs(u256, i95, -1 << 94);
4137 try testArgs(u256, i95, -1);
4138 try testArgs(u256, i95, 0);
4139 try testArgs(u512, i95, -1 << 94);
4140 try testArgs(u512, i95, -1);
4141 try testArgs(u512, i95, 0);
4142 try testArgs(u1024, i95, -1 << 94);
4143 try testArgs(u1024, i95, -1);
4144 try testArgs(u1024, i95, 0);
4145 try testArgs(i8, u95, 0);
4146 try testArgs(i8, u95, 1 << 0);
4147 try testArgs(i8, u95, 1 << 94);
4148 try testArgs(i16, u95, 0);
4149 try testArgs(i16, u95, 1 << 0);
4150 try testArgs(i16, u95, 1 << 94);
4151 try testArgs(i32, u95, 0);
4152 try testArgs(i32, u95, 1 << 0);
4153 try testArgs(i32, u95, 1 << 94);
4154 try testArgs(i64, u95, 0);
4155 try testArgs(i64, u95, 1 << 0);
4156 try testArgs(i64, u95, 1 << 94);
4157 try testArgs(i128, u95, 0);
4158 try testArgs(i128, u95, 1 << 0);
4159 try testArgs(i128, u95, 1 << 94);
4160 try testArgs(i256, u95, 0);
4161 try testArgs(i256, u95, 1 << 0);
4162 try testArgs(i256, u95, 1 << 94);
4163 try testArgs(i512, u95, 0);
4164 try testArgs(i512, u95, 1 << 0);
4165 try testArgs(i512, u95, 1 << 94);
4166 try testArgs(i1024, u95, 0);
4167 try testArgs(i1024, u95, 1 << 0);
4168 try testArgs(i1024, u95, 1 << 94);
4169
4170 try testArgs(u8, i96, -1 << 95);
4171 try testArgs(u8, i96, -1);
4172 try testArgs(u8, i96, 0);
4173 try testArgs(u16, i96, -1 << 95);
4174 try testArgs(u16, i96, -1);
4175 try testArgs(u16, i96, 0);
4176 try testArgs(u32, i96, -1 << 95);
4177 try testArgs(u32, i96, -1);
4178 try testArgs(u32, i96, 0);
4179 try testArgs(u64, i96, -1 << 95);
4180 try testArgs(u64, i96, -1);
4181 try testArgs(u64, i96, 0);
4182 try testArgs(u128, i96, -1 << 95);
4183 try testArgs(u128, i96, -1);
4184 try testArgs(u128, i96, 0);
4185 try testArgs(u256, i96, -1 << 95);
4186 try testArgs(u256, i96, -1);
4187 try testArgs(u256, i96, 0);
4188 try testArgs(u512, i96, -1 << 95);
4189 try testArgs(u512, i96, -1);
4190 try testArgs(u512, i96, 0);
4191 try testArgs(u1024, i96, -1 << 95);
4192 try testArgs(u1024, i96, -1);
4193 try testArgs(u1024, i96, 0);
4194 try testArgs(i8, u96, 0);
4195 try testArgs(i8, u96, 1 << 0);
4196 try testArgs(i8, u96, 1 << 95);
4197 try testArgs(i16, u96, 0);
4198 try testArgs(i16, u96, 1 << 0);
4199 try testArgs(i16, u96, 1 << 95);
4200 try testArgs(i32, u96, 0);
4201 try testArgs(i32, u96, 1 << 0);
4202 try testArgs(i32, u96, 1 << 95);
4203 try testArgs(i64, u96, 0);
4204 try testArgs(i64, u96, 1 << 0);
4205 try testArgs(i64, u96, 1 << 95);
4206 try testArgs(i128, u96, 0);
4207 try testArgs(i128, u96, 1 << 0);
4208 try testArgs(i128, u96, 1 << 95);
4209 try testArgs(i256, u96, 0);
4210 try testArgs(i256, u96, 1 << 0);
4211 try testArgs(i256, u96, 1 << 95);
4212 try testArgs(i512, u96, 0);
4213 try testArgs(i512, u96, 1 << 0);
4214 try testArgs(i512, u96, 1 << 95);
4215 try testArgs(i1024, u96, 0);
4216 try testArgs(i1024, u96, 1 << 0);
4217 try testArgs(i1024, u96, 1 << 95);
4218
4219 try testArgs(u8, i97, -1 << 96);
4220 try testArgs(u8, i97, -1);
4221 try testArgs(u8, i97, 0);
4222 try testArgs(u16, i97, -1 << 96);
4223 try testArgs(u16, i97, -1);
4224 try testArgs(u16, i97, 0);
4225 try testArgs(u32, i97, -1 << 96);
4226 try testArgs(u32, i97, -1);
4227 try testArgs(u32, i97, 0);
4228 try testArgs(u64, i97, -1 << 96);
4229 try testArgs(u64, i97, -1);
4230 try testArgs(u64, i97, 0);
4231 try testArgs(u128, i97, -1 << 96);
4232 try testArgs(u128, i97, -1);
4233 try testArgs(u128, i97, 0);
4234 try testArgs(u256, i97, -1 << 96);
4235 try testArgs(u256, i97, -1);
4236 try testArgs(u256, i97, 0);
4237 try testArgs(u512, i97, -1 << 96);
4238 try testArgs(u512, i97, -1);
4239 try testArgs(u512, i97, 0);
4240 try testArgs(u1024, i97, -1 << 96);
4241 try testArgs(u1024, i97, -1);
4242 try testArgs(u1024, i97, 0);
4243 try testArgs(i8, u97, 0);
4244 try testArgs(i8, u97, 1 << 0);
4245 try testArgs(i8, u97, 1 << 96);
4246 try testArgs(i16, u97, 0);
4247 try testArgs(i16, u97, 1 << 0);
4248 try testArgs(i16, u97, 1 << 96);
4249 try testArgs(i32, u97, 0);
4250 try testArgs(i32, u97, 1 << 0);
4251 try testArgs(i32, u97, 1 << 96);
4252 try testArgs(i64, u97, 0);
4253 try testArgs(i64, u97, 1 << 0);
4254 try testArgs(i64, u97, 1 << 96);
4255 try testArgs(i128, u97, 0);
4256 try testArgs(i128, u97, 1 << 0);
4257 try testArgs(i128, u97, 1 << 96);
4258 try testArgs(i256, u97, 0);
4259 try testArgs(i256, u97, 1 << 0);
4260 try testArgs(i256, u97, 1 << 96);
4261 try testArgs(i512, u97, 0);
4262 try testArgs(i512, u97, 1 << 0);
4263 try testArgs(i512, u97, 1 << 96);
4264 try testArgs(i1024, u97, 0);
4265 try testArgs(i1024, u97, 1 << 0);
4266 try testArgs(i1024, u97, 1 << 96);
4267
4268 try testArgs(u8, i127, -1 << 126);
4269 try testArgs(u8, i127, -1);
4270 try testArgs(u8, i127, 0);
4271 try testArgs(u16, i127, -1 << 126);
4272 try testArgs(u16, i127, -1);
4273 try testArgs(u16, i127, 0);
4274 try testArgs(u32, i127, -1 << 126);
4275 try testArgs(u32, i127, -1);
4276 try testArgs(u32, i127, 0);
4277 try testArgs(u64, i127, -1 << 126);
4278 try testArgs(u64, i127, -1);
4279 try testArgs(u64, i127, 0);
4280 try testArgs(u128, i127, -1 << 126);
4281 try testArgs(u128, i127, -1);
4282 try testArgs(u128, i127, 0);
4283 try testArgs(u256, i127, -1 << 126);
4284 try testArgs(u256, i127, -1);
4285 try testArgs(u256, i127, 0);
4286 try testArgs(u512, i127, -1 << 126);
4287 try testArgs(u512, i127, -1);
4288 try testArgs(u512, i127, 0);
4289 try testArgs(u1024, i127, -1 << 126);
4290 try testArgs(u1024, i127, -1);
4291 try testArgs(u1024, i127, 0);
4292 try testArgs(i8, u127, 0);
4293 try testArgs(i8, u127, 1 << 0);
4294 try testArgs(i8, u127, 1 << 126);
4295 try testArgs(i16, u127, 0);
4296 try testArgs(i16, u127, 1 << 0);
4297 try testArgs(i16, u127, 1 << 126);
4298 try testArgs(i32, u127, 0);
4299 try testArgs(i32, u127, 1 << 0);
4300 try testArgs(i32, u127, 1 << 126);
4301 try testArgs(i64, u127, 0);
4302 try testArgs(i64, u127, 1 << 0);
4303 try testArgs(i64, u127, 1 << 126);
4304 try testArgs(i128, u127, 0);
4305 try testArgs(i128, u127, 1 << 0);
4306 try testArgs(i128, u127, 1 << 126);
4307 try testArgs(i256, u127, 0);
4308 try testArgs(i256, u127, 1 << 0);
4309 try testArgs(i256, u127, 1 << 126);
4310 try testArgs(i512, u127, 0);
4311 try testArgs(i512, u127, 1 << 0);
4312 try testArgs(i512, u127, 1 << 126);
4313 try testArgs(i1024, u127, 0);
4314 try testArgs(i1024, u127, 1 << 0);
4315 try testArgs(i1024, u127, 1 << 126);
4316
4317 try testArgs(u8, i128, -1 << 127);
4318 try testArgs(u8, i128, -1);
4319 try testArgs(u8, i128, 0);
4320 try testArgs(u16, i128, -1 << 127);
4321 try testArgs(u16, i128, -1);
4322 try testArgs(u16, i128, 0);
4323 try testArgs(u32, i128, -1 << 127);
4324 try testArgs(u32, i128, -1);
4325 try testArgs(u32, i128, 0);
4326 try testArgs(u64, i128, -1 << 127);
4327 try testArgs(u64, i128, -1);
4328 try testArgs(u64, i128, 0);
4329 try testArgs(u128, i128, -1 << 127);
4330 try testArgs(u128, i128, -1);
4331 try testArgs(u128, i128, 0);
4332 try testArgs(u256, i128, -1 << 127);
4333 try testArgs(u256, i128, -1);
4334 try testArgs(u256, i128, 0);
4335 try testArgs(u512, i128, -1 << 127);
4336 try testArgs(u512, i128, -1);
4337 try testArgs(u512, i128, 0);
4338 try testArgs(u1024, i128, -1 << 127);
4339 try testArgs(u1024, i128, -1);
4340 try testArgs(u1024, i128, 0);
4341 try testArgs(i8, u128, 0);
4342 try testArgs(i8, u128, 1 << 0);
4343 try testArgs(i8, u128, 1 << 127);
4344 try testArgs(i16, u128, 0);
4345 try testArgs(i16, u128, 1 << 0);
4346 try testArgs(i16, u128, 1 << 127);
4347 try testArgs(i32, u128, 0);
4348 try testArgs(i32, u128, 1 << 0);
4349 try testArgs(i32, u128, 1 << 127);
4350 try testArgs(i64, u128, 0);
4351 try testArgs(i64, u128, 1 << 0);
4352 try testArgs(i64, u128, 1 << 127);
4353 try testArgs(i128, u128, 0);
4354 try testArgs(i128, u128, 1 << 0);
4355 try testArgs(i128, u128, 1 << 127);
4356 try testArgs(i256, u128, 0);
4357 try testArgs(i256, u128, 1 << 0);
4358 try testArgs(i256, u128, 1 << 127);
4359 try testArgs(i512, u128, 0);
4360 try testArgs(i512, u128, 1 << 0);
4361 try testArgs(i512, u128, 1 << 127);
4362 try testArgs(i1024, u128, 0);
4363 try testArgs(i1024, u128, 1 << 0);
4364 try testArgs(i1024, u128, 1 << 127);
4365
4366 try testArgs(u8, i129, -1 << 128);
4367 try testArgs(u8, i129, -1);
4368 try testArgs(u8, i129, 0);
4369 try testArgs(u16, i129, -1 << 128);
4370 try testArgs(u16, i129, -1);
4371 try testArgs(u16, i129, 0);
4372 try testArgs(u32, i129, -1 << 128);
4373 try testArgs(u32, i129, -1);
4374 try testArgs(u32, i129, 0);
4375 try testArgs(u64, i129, -1 << 128);
4376 try testArgs(u64, i129, -1);
4377 try testArgs(u64, i129, 0);
4378 try testArgs(u128, i129, -1 << 128);
4379 try testArgs(u128, i129, -1);
4380 try testArgs(u128, i129, 0);
4381 try testArgs(u256, i129, -1 << 128);
4382 try testArgs(u256, i129, -1);
4383 try testArgs(u256, i129, 0);
4384 try testArgs(u512, i129, -1 << 128);
4385 try testArgs(u512, i129, -1);
4386 try testArgs(u512, i129, 0);
4387 try testArgs(u1024, i129, -1 << 128);
4388 try testArgs(u1024, i129, -1);
4389 try testArgs(u1024, i129, 0);
4390 try testArgs(i8, u129, 0);
4391 try testArgs(i8, u129, 1 << 0);
4392 try testArgs(i8, u129, 1 << 128);
4393 try testArgs(i16, u129, 0);
4394 try testArgs(i16, u129, 1 << 0);
4395 try testArgs(i16, u129, 1 << 128);
4396 try testArgs(i32, u129, 0);
4397 try testArgs(i32, u129, 1 << 0);
4398 try testArgs(i32, u129, 1 << 128);
4399 try testArgs(i64, u129, 0);
4400 try testArgs(i64, u129, 1 << 0);
4401 try testArgs(i64, u129, 1 << 128);
4402 try testArgs(i128, u129, 0);
4403 try testArgs(i128, u129, 1 << 0);
4404 try testArgs(i128, u129, 1 << 128);
4405 try testArgs(i256, u129, 0);
4406 try testArgs(i256, u129, 1 << 0);
4407 try testArgs(i256, u129, 1 << 128);
4408 try testArgs(i512, u129, 0);
4409 try testArgs(i512, u129, 1 << 0);
4410 try testArgs(i512, u129, 1 << 128);
4411 try testArgs(i1024, u129, 0);
4412 try testArgs(i1024, u129, 1 << 0);
4413 try testArgs(i1024, u129, 1 << 128);
4414
4415 try testArgs(u8, i255, -1 << 254);
4416 try testArgs(u8, i255, -1);
4417 try testArgs(u8, i255, 0);
4418 try testArgs(u16, i255, -1 << 254);
4419 try testArgs(u16, i255, -1);
4420 try testArgs(u16, i255, 0);
4421 try testArgs(u32, i255, -1 << 254);
4422 try testArgs(u32, i255, -1);
4423 try testArgs(u32, i255, 0);
4424 try testArgs(u64, i255, -1 << 254);
4425 try testArgs(u64, i255, -1);
4426 try testArgs(u64, i255, 0);
4427 try testArgs(u128, i255, -1 << 254);
4428 try testArgs(u128, i255, -1);
4429 try testArgs(u128, i255, 0);
4430 try testArgs(u256, i255, -1 << 254);
4431 try testArgs(u256, i255, -1);
4432 try testArgs(u256, i255, 0);
4433 try testArgs(u512, i255, -1 << 254);
4434 try testArgs(u512, i255, -1);
4435 try testArgs(u512, i255, 0);
4436 try testArgs(u1024, i255, -1 << 254);
4437 try testArgs(u1024, i255, -1);
4438 try testArgs(u1024, i255, 0);
4439 try testArgs(i8, u255, 0);
4440 try testArgs(i8, u255, 1 << 0);
4441 try testArgs(i8, u255, 1 << 254);
4442 try testArgs(i16, u255, 0);
4443 try testArgs(i16, u255, 1 << 0);
4444 try testArgs(i16, u255, 1 << 254);
4445 try testArgs(i32, u255, 0);
4446 try testArgs(i32, u255, 1 << 0);
4447 try testArgs(i32, u255, 1 << 254);
4448 try testArgs(i64, u255, 0);
4449 try testArgs(i64, u255, 1 << 0);
4450 try testArgs(i64, u255, 1 << 254);
4451 try testArgs(i128, u255, 0);
4452 try testArgs(i128, u255, 1 << 0);
4453 try testArgs(i128, u255, 1 << 254);
4454 try testArgs(i256, u255, 0);
4455 try testArgs(i256, u255, 1 << 0);
4456 try testArgs(i256, u255, 1 << 254);
4457 try testArgs(i512, u255, 0);
4458 try testArgs(i512, u255, 1 << 0);
4459 try testArgs(i512, u255, 1 << 254);
4460 try testArgs(i1024, u255, 0);
4461 try testArgs(i1024, u255, 1 << 0);
4462 try testArgs(i1024, u255, 1 << 254);
4463
4464 try testArgs(u8, i256, -1 << 255);
4465 try testArgs(u8, i256, -1);
4466 try testArgs(u8, i256, 0);
4467 try testArgs(u16, i256, -1 << 255);
4468 try testArgs(u16, i256, -1);
4469 try testArgs(u16, i256, 0);
4470 try testArgs(u32, i256, -1 << 255);
4471 try testArgs(u32, i256, -1);
4472 try testArgs(u32, i256, 0);
4473 try testArgs(u64, i256, -1 << 255);
4474 try testArgs(u64, i256, -1);
4475 try testArgs(u64, i256, 0);
4476 try testArgs(u128, i256, -1 << 255);
4477 try testArgs(u128, i256, -1);
4478 try testArgs(u128, i256, 0);
4479 try testArgs(u256, i256, -1 << 255);
4480 try testArgs(u256, i256, -1);
4481 try testArgs(u256, i256, 0);
4482 try testArgs(u512, i256, -1 << 255);
4483 try testArgs(u512, i256, -1);
4484 try testArgs(u512, i256, 0);
4485 try testArgs(u1024, i256, -1 << 255);
4486 try testArgs(u1024, i256, -1);
4487 try testArgs(u1024, i256, 0);
4488 try testArgs(i8, u256, 0);
4489 try testArgs(i8, u256, 1 << 0);
4490 try testArgs(i8, u256, 1 << 255);
4491 try testArgs(i16, u256, 0);
4492 try testArgs(i16, u256, 1 << 0);
4493 try testArgs(i16, u256, 1 << 255);
4494 try testArgs(i32, u256, 0);
4495 try testArgs(i32, u256, 1 << 0);
4496 try testArgs(i32, u256, 1 << 255);
4497 try testArgs(i64, u256, 0);
4498 try testArgs(i64, u256, 1 << 0);
4499 try testArgs(i64, u256, 1 << 255);
4500 try testArgs(i128, u256, 0);
4501 try testArgs(i128, u256, 1 << 0);
4502 try testArgs(i128, u256, 1 << 255);
4503 try testArgs(i256, u256, 0);
4504 try testArgs(i256, u256, 1 << 0);
4505 try testArgs(i256, u256, 1 << 255);
4506 try testArgs(i512, u256, 0);
4507 try testArgs(i512, u256, 1 << 0);
4508 try testArgs(i512, u256, 1 << 255);
4509 try testArgs(i1024, u256, 0);
4510 try testArgs(i1024, u256, 1 << 0);
4511 try testArgs(i1024, u256, 1 << 255);
4512
4513 try testArgs(u8, i257, -1 << 256);
4514 try testArgs(u8, i257, -1);
4515 try testArgs(u8, i257, 0);
4516 try testArgs(u16, i257, -1 << 256);
4517 try testArgs(u16, i257, -1);
4518 try testArgs(u16, i257, 0);
4519 try testArgs(u32, i257, -1 << 256);
4520 try testArgs(u32, i257, -1);
4521 try testArgs(u32, i257, 0);
4522 try testArgs(u64, i257, -1 << 256);
4523 try testArgs(u64, i257, -1);
4524 try testArgs(u64, i257, 0);
4525 try testArgs(u128, i257, -1 << 256);
4526 try testArgs(u128, i257, -1);
4527 try testArgs(u128, i257, 0);
4528 try testArgs(u256, i257, -1 << 256);
4529 try testArgs(u256, i257, -1);
4530 try testArgs(u256, i257, 0);
4531 try testArgs(u512, i257, -1 << 256);
4532 try testArgs(u512, i257, -1);
4533 try testArgs(u512, i257, 0);
4534 try testArgs(u1024, i257, -1 << 256);
4535 try testArgs(u1024, i257, -1);
4536 try testArgs(u1024, i257, 0);
4537 try testArgs(i8, u257, 0);
4538 try testArgs(i8, u257, 1 << 0);
4539 try testArgs(i8, u257, 1 << 256);
4540 try testArgs(i16, u257, 0);
4541 try testArgs(i16, u257, 1 << 0);
4542 try testArgs(i16, u257, 1 << 256);
4543 try testArgs(i32, u257, 0);
4544 try testArgs(i32, u257, 1 << 0);
4545 try testArgs(i32, u257, 1 << 256);
4546 try testArgs(i64, u257, 0);
4547 try testArgs(i64, u257, 1 << 0);
4548 try testArgs(i64, u257, 1 << 256);
4549 try testArgs(i128, u257, 0);
4550 try testArgs(i128, u257, 1 << 0);
4551 try testArgs(i128, u257, 1 << 256);
4552 try testArgs(i256, u257, 0);
4553 try testArgs(i256, u257, 1 << 0);
4554 try testArgs(i256, u257, 1 << 256);
4555 try testArgs(i512, u257, 0);
4556 try testArgs(i512, u257, 1 << 0);
4557 try testArgs(i512, u257, 1 << 256);
4558 try testArgs(i1024, u257, 0);
4559 try testArgs(i1024, u257, 1 << 0);
4560 try testArgs(i1024, u257, 1 << 256);
4561
4562 try testArgs(u8, i511, -1 << 510);
4563 try testArgs(u8, i511, -1);
4564 try testArgs(u8, i511, 0);
4565 try testArgs(u16, i511, -1 << 510);
4566 try testArgs(u16, i511, -1);
4567 try testArgs(u16, i511, 0);
4568 try testArgs(u32, i511, -1 << 510);
4569 try testArgs(u32, i511, -1);
4570 try testArgs(u32, i511, 0);
4571 try testArgs(u64, i511, -1 << 510);
4572 try testArgs(u64, i511, -1);
4573 try testArgs(u64, i511, 0);
4574 try testArgs(u128, i511, -1 << 510);
4575 try testArgs(u128, i511, -1);
4576 try testArgs(u128, i511, 0);
4577 try testArgs(u256, i511, -1 << 510);
4578 try testArgs(u256, i511, -1);
4579 try testArgs(u256, i511, 0);
4580 try testArgs(u512, i511, -1 << 510);
4581 try testArgs(u512, i511, -1);
4582 try testArgs(u512, i511, 0);
4583 try testArgs(u1024, i511, -1 << 510);
4584 try testArgs(u1024, i511, -1);
4585 try testArgs(u1024, i511, 0);
4586 try testArgs(i8, u511, 0);
4587 try testArgs(i8, u511, 1 << 0);
4588 try testArgs(i8, u511, 1 << 510);
4589 try testArgs(i16, u511, 0);
4590 try testArgs(i16, u511, 1 << 0);
4591 try testArgs(i16, u511, 1 << 510);
4592 try testArgs(i32, u511, 0);
4593 try testArgs(i32, u511, 1 << 0);
4594 try testArgs(i32, u511, 1 << 510);
4595 try testArgs(i64, u511, 0);
4596 try testArgs(i64, u511, 1 << 0);
4597 try testArgs(i64, u511, 1 << 510);
4598 try testArgs(i128, u511, 0);
4599 try testArgs(i128, u511, 1 << 0);
4600 try testArgs(i128, u511, 1 << 510);
4601 try testArgs(i256, u511, 0);
4602 try testArgs(i256, u511, 1 << 0);
4603 try testArgs(i256, u511, 1 << 510);
4604 try testArgs(i512, u511, 0);
4605 try testArgs(i512, u511, 1 << 0);
4606 try testArgs(i512, u511, 1 << 510);
4607 try testArgs(i1024, u511, 0);
4608 try testArgs(i1024, u511, 1 << 0);
4609 try testArgs(i1024, u511, 1 << 510);
4610
4611 try testArgs(u8, i512, -1 << 511);
4612 try testArgs(u8, i512, -1);
4613 try testArgs(u8, i512, 0);
4614 try testArgs(u16, i512, -1 << 511);
4615 try testArgs(u16, i512, -1);
4616 try testArgs(u16, i512, 0);
4617 try testArgs(u32, i512, -1 << 511);
4618 try testArgs(u32, i512, -1);
4619 try testArgs(u32, i512, 0);
4620 try testArgs(u64, i512, -1 << 511);
4621 try testArgs(u64, i512, -1);
4622 try testArgs(u64, i512, 0);
4623 try testArgs(u128, i512, -1 << 511);
4624 try testArgs(u128, i512, -1);
4625 try testArgs(u128, i512, 0);
4626 try testArgs(u256, i512, -1 << 511);
4627 try testArgs(u256, i512, -1);
4628 try testArgs(u256, i512, 0);
4629 try testArgs(u512, i512, -1 << 511);
4630 try testArgs(u512, i512, -1);
4631 try testArgs(u512, i512, 0);
4632 try testArgs(u1024, i512, -1 << 511);
4633 try testArgs(u1024, i512, -1);
4634 try testArgs(u1024, i512, 0);
4635 try testArgs(i8, u512, 0);
4636 try testArgs(i8, u512, 1 << 0);
4637 try testArgs(i8, u512, 1 << 511);
4638 try testArgs(i16, u512, 0);
4639 try testArgs(i16, u512, 1 << 0);
4640 try testArgs(i16, u512, 1 << 511);
4641 try testArgs(i32, u512, 0);
4642 try testArgs(i32, u512, 1 << 0);
4643 try testArgs(i32, u512, 1 << 511);
4644 try testArgs(i64, u512, 0);
4645 try testArgs(i64, u512, 1 << 0);
4646 try testArgs(i64, u512, 1 << 511);
4647 try testArgs(i128, u512, 0);
4648 try testArgs(i128, u512, 1 << 0);
4649 try testArgs(i128, u512, 1 << 511);
4650 try testArgs(i256, u512, 0);
4651 try testArgs(i256, u512, 1 << 0);
4652 try testArgs(i256, u512, 1 << 511);
4653 try testArgs(i512, u512, 0);
4654 try testArgs(i512, u512, 1 << 0);
4655 try testArgs(i512, u512, 1 << 511);
4656 try testArgs(i1024, u512, 0);
4657 try testArgs(i1024, u512, 1 << 0);
4658 try testArgs(i1024, u512, 1 << 511);
4659
4660 try testArgs(u8, i513, -1 << 512);
4661 try testArgs(u8, i513, -1);
4662 try testArgs(u8, i513, 0);
4663 try testArgs(u16, i513, -1 << 512);
4664 try testArgs(u16, i513, -1);
4665 try testArgs(u16, i513, 0);
4666 try testArgs(u32, i513, -1 << 512);
4667 try testArgs(u32, i513, -1);
4668 try testArgs(u32, i513, 0);
4669 try testArgs(u64, i513, -1 << 512);
4670 try testArgs(u64, i513, -1);
4671 try testArgs(u64, i513, 0);
4672 try testArgs(u128, i513, -1 << 512);
4673 try testArgs(u128, i513, -1);
4674 try testArgs(u128, i513, 0);
4675 try testArgs(u256, i513, -1 << 512);
4676 try testArgs(u256, i513, -1);
4677 try testArgs(u256, i513, 0);
4678 try testArgs(u512, i513, -1 << 512);
4679 try testArgs(u512, i513, -1);
4680 try testArgs(u512, i513, 0);
4681 try testArgs(u1024, i513, -1 << 512);
4682 try testArgs(u1024, i513, -1);
4683 try testArgs(u1024, i513, 0);
4684 try testArgs(i8, u513, 0);
4685 try testArgs(i8, u513, 1 << 0);
4686 try testArgs(i8, u513, 1 << 512);
4687 try testArgs(i16, u513, 0);
4688 try testArgs(i16, u513, 1 << 0);
4689 try testArgs(i16, u513, 1 << 512);
4690 try testArgs(i32, u513, 0);
4691 try testArgs(i32, u513, 1 << 0);
4692 try testArgs(i32, u513, 1 << 512);
4693 try testArgs(i64, u513, 0);
4694 try testArgs(i64, u513, 1 << 0);
4695 try testArgs(i64, u513, 1 << 512);
4696 try testArgs(i128, u513, 0);
4697 try testArgs(i128, u513, 1 << 0);
4698 try testArgs(i128, u513, 1 << 512);
4699 try testArgs(i256, u513, 0);
4700 try testArgs(i256, u513, 1 << 0);
4701 try testArgs(i256, u513, 1 << 512);
4702 try testArgs(i512, u513, 0);
4703 try testArgs(i512, u513, 1 << 0);
4704 try testArgs(i512, u513, 1 << 512);
4705 try testArgs(i1024, u513, 0);
4706 try testArgs(i1024, u513, 1 << 0);
4707 try testArgs(i1024, u513, 1 << 512);
4708
4709 try testArgs(u8, i1023, -1 << 1022);
4710 try testArgs(u8, i1023, -1);
4711 try testArgs(u8, i1023, 0);
4712 try testArgs(u16, i1023, -1 << 1022);
4713 try testArgs(u16, i1023, -1);
4714 try testArgs(u16, i1023, 0);
4715 try testArgs(u32, i1023, -1 << 1022);
4716 try testArgs(u32, i1023, -1);
4717 try testArgs(u32, i1023, 0);
4718 try testArgs(u64, i1023, -1 << 1022);
4719 try testArgs(u64, i1023, -1);
4720 try testArgs(u64, i1023, 0);
4721 try testArgs(u128, i1023, -1 << 1022);
4722 try testArgs(u128, i1023, -1);
4723 try testArgs(u128, i1023, 0);
4724 try testArgs(u256, i1023, -1 << 1022);
4725 try testArgs(u256, i1023, -1);
4726 try testArgs(u256, i1023, 0);
4727 try testArgs(u512, i1023, -1 << 1022);
4728 try testArgs(u512, i1023, -1);
4729 try testArgs(u512, i1023, 0);
4730 try testArgs(u1024, i1023, -1 << 1022);
4731 try testArgs(u1024, i1023, -1);
4732 try testArgs(u1024, i1023, 0);
4733 try testArgs(i8, u1023, 0);
4734 try testArgs(i8, u1023, 1 << 0);
4735 try testArgs(i8, u1023, 1 << 1022);
4736 try testArgs(i16, u1023, 0);
4737 try testArgs(i16, u1023, 1 << 0);
4738 try testArgs(i16, u1023, 1 << 1022);
4739 try testArgs(i32, u1023, 0);
4740 try testArgs(i32, u1023, 1 << 0);
4741 try testArgs(i32, u1023, 1 << 1022);
4742 try testArgs(i64, u1023, 0);
4743 try testArgs(i64, u1023, 1 << 0);
4744 try testArgs(i64, u1023, 1 << 1022);
4745 try testArgs(i128, u1023, 0);
4746 try testArgs(i128, u1023, 1 << 0);
4747 try testArgs(i128, u1023, 1 << 1022);
4748 try testArgs(i256, u1023, 0);
4749 try testArgs(i256, u1023, 1 << 0);
4750 try testArgs(i256, u1023, 1 << 1022);
4751 try testArgs(i512, u1023, 0);
4752 try testArgs(i512, u1023, 1 << 0);
4753 try testArgs(i512, u1023, 1 << 1022);
4754 try testArgs(i1024, u1023, 0);
4755 try testArgs(i1024, u1023, 1 << 0);
4756 try testArgs(i1024, u1023, 1 << 1022);
4757
4758 try testArgs(u8, i1024, -1 << 1023);
4759 try testArgs(u8, i1024, -1);
4760 try testArgs(u8, i1024, 0);
4761 try testArgs(u16, i1024, -1 << 1023);
4762 try testArgs(u16, i1024, -1);
4763 try testArgs(u16, i1024, 0);
4764 try testArgs(u32, i1024, -1 << 1023);
4765 try testArgs(u32, i1024, -1);
4766 try testArgs(u32, i1024, 0);
4767 try testArgs(u64, i1024, -1 << 1023);
4768 try testArgs(u64, i1024, -1);
4769 try testArgs(u64, i1024, 0);
4770 try testArgs(u128, i1024, -1 << 1023);
4771 try testArgs(u128, i1024, -1);
4772 try testArgs(u128, i1024, 0);
4773 try testArgs(u256, i1024, -1 << 1023);
4774 try testArgs(u256, i1024, -1);
4775 try testArgs(u256, i1024, 0);
4776 try testArgs(u512, i1024, -1 << 1023);
4777 try testArgs(u512, i1024, -1);
4778 try testArgs(u512, i1024, 0);
4779 try testArgs(u1024, i1024, -1 << 1023);
4780 try testArgs(u1024, i1024, -1);
4781 try testArgs(u1024, i1024, 0);
4782 try testArgs(i8, u1024, 0);
4783 try testArgs(i8, u1024, 1 << 0);
4784 try testArgs(i8, u1024, 1 << 1023);
4785 try testArgs(i16, u1024, 0);
4786 try testArgs(i16, u1024, 1 << 0);
4787 try testArgs(i16, u1024, 1 << 1023);
4788 try testArgs(i32, u1024, 0);
4789 try testArgs(i32, u1024, 1 << 0);
4790 try testArgs(i32, u1024, 1 << 1023);
4791 try testArgs(i64, u1024, 0);
4792 try testArgs(i64, u1024, 1 << 0);
4793 try testArgs(i64, u1024, 1 << 1023);
4794 try testArgs(i128, u1024, 0);
4795 try testArgs(i128, u1024, 1 << 0);
4796 try testArgs(i128, u1024, 1 << 1023);
4797 try testArgs(i256, u1024, 0);
4798 try testArgs(i256, u1024, 1 << 0);
4799 try testArgs(i256, u1024, 1 << 1023);
4800 try testArgs(i512, u1024, 0);
4801 try testArgs(i512, u1024, 1 << 0);
4802 try testArgs(i512, u1024, 1 << 1023);
4803 try testArgs(i1024, u1024, 0);
4804 try testArgs(i1024, u1024, 1 << 0);
4805 try testArgs(i1024, u1024, 1 << 1023);
4806
4807 try testArgs(u8, i1025, -1 << 1024);
4808 try testArgs(u8, i1025, -1);
4809 try testArgs(u8, i1025, 0);
4810 try testArgs(u16, i1025, -1 << 1024);
4811 try testArgs(u16, i1025, -1);
4812 try testArgs(u16, i1025, 0);
4813 try testArgs(u32, i1025, -1 << 1024);
4814 try testArgs(u32, i1025, -1);
4815 try testArgs(u32, i1025, 0);
4816 try testArgs(u64, i1025, -1 << 1024);
4817 try testArgs(u64, i1025, -1);
4818 try testArgs(u64, i1025, 0);
4819 try testArgs(u128, i1025, -1 << 1024);
4820 try testArgs(u128, i1025, -1);
4821 try testArgs(u128, i1025, 0);
4822 try testArgs(u256, i1025, -1 << 1024);
4823 try testArgs(u256, i1025, -1);
4824 try testArgs(u256, i1025, 0);
4825 try testArgs(u512, i1025, -1 << 1024);
4826 try testArgs(u512, i1025, -1);
4827 try testArgs(u512, i1025, 0);
4828 try testArgs(u1024, i1025, -1 << 1024);
4829 try testArgs(u1024, i1025, -1);
4830 try testArgs(u1024, i1025, 0);
4831 try testArgs(i8, u1025, 0);
4832 try testArgs(i8, u1025, 1 << 0);
4833 try testArgs(i8, u1025, 1 << 1024);
4834 try testArgs(i16, u1025, 0);
4835 try testArgs(i16, u1025, 1 << 0);
4836 try testArgs(i16, u1025, 1 << 1024);
4837 try testArgs(i32, u1025, 0);
4838 try testArgs(i32, u1025, 1 << 0);
4839 try testArgs(i32, u1025, 1 << 1024);
4840 try testArgs(i64, u1025, 0);
4841 try testArgs(i64, u1025, 1 << 0);
4842 try testArgs(i64, u1025, 1 << 1024);
4843 try testArgs(i128, u1025, 0);
4844 try testArgs(i128, u1025, 1 << 0);
4845 try testArgs(i128, u1025, 1 << 1024);
4846 try testArgs(i256, u1025, 0);
4847 try testArgs(i256, u1025, 1 << 0);
4848 try testArgs(i256, u1025, 1 << 1024);
4849 try testArgs(i512, u1025, 0);
4850 try testArgs(i512, u1025, 1 << 0);
4851 try testArgs(i512, u1025, 1 << 1024);
4852 try testArgs(i1024, u1025, 0);
4853 try testArgs(i1024, u1025, 1 << 0);
4854 try testArgs(i1024, u1025, 1 << 1024);
4855 }
4856 fn testFloats() !void {
4857 @setEvalBranchQuota(3_100);
4858
4859 try testArgs(f16, f16, -nan(f16));
4860 try testArgs(f16, f16, -inf(f16));
4861 try testArgs(f16, f16, -fmax(f16));
4862 try testArgs(f16, f16, -1e1);
4863 try testArgs(f16, f16, -1e0);
4864 try testArgs(f16, f16, -1e-1);
4865 try testArgs(f16, f16, -fmin(f16));
4866 try testArgs(f16, f16, -tmin(f16));
4867 try testArgs(f16, f16, -0.0);
4868 try testArgs(f16, f16, 0.0);
4869 try testArgs(f16, f16, tmin(f16));
4870 try testArgs(f16, f16, fmin(f16));
4871 try testArgs(f16, f16, 1e-1);
4872 try testArgs(f16, f16, 1e0);
4873 try testArgs(f16, f16, 1e1);
4874 try testArgs(f16, f16, fmax(f16));
4875 try testArgs(f16, f16, inf(f16));
4876 try testArgs(f16, f16, nan(f16));
4877
4878 try testArgs(f32, f16, -nan(f16));
4879 try testArgs(f32, f16, -inf(f16));
4880 try testArgs(f32, f16, -fmax(f16));
4881 try testArgs(f32, f16, -1e1);
4882 try testArgs(f32, f16, -1e0);
4883 try testArgs(f32, f16, -1e-1);
4884 try testArgs(f32, f16, -fmin(f16));
4885 try testArgs(f32, f16, -tmin(f16));
4886 try testArgs(f32, f16, -0.0);
4887 try testArgs(f32, f16, 0.0);
4888 try testArgs(f32, f16, tmin(f16));
4889 try testArgs(f32, f16, fmin(f16));
4890 try testArgs(f32, f16, 1e-1);
4891 try testArgs(f32, f16, 1e0);
4892 try testArgs(f32, f16, 1e1);
4893 try testArgs(f32, f16, fmax(f16));
4894 try testArgs(f32, f16, inf(f16));
4895 try testArgs(f32, f16, nan(f16));
4896
4897 try testArgs(f64, f16, -nan(f16));
4898 try testArgs(f64, f16, -inf(f16));
4899 try testArgs(f64, f16, -fmax(f16));
4900 try testArgs(f64, f16, -1e1);
4901 try testArgs(f64, f16, -1e0);
4902 try testArgs(f64, f16, -1e-1);
4903 try testArgs(f64, f16, -fmin(f16));
4904 try testArgs(f64, f16, -tmin(f16));
4905 try testArgs(f64, f16, -0.0);
4906 try testArgs(f64, f16, 0.0);
4907 try testArgs(f64, f16, tmin(f16));
4908 try testArgs(f64, f16, fmin(f16));
4909 try testArgs(f64, f16, 1e-1);
4910 try testArgs(f64, f16, 1e0);
4911 try testArgs(f64, f16, 1e1);
4912 try testArgs(f64, f16, fmax(f16));
4913 try testArgs(f64, f16, inf(f16));
4914 try testArgs(f64, f16, nan(f16));
4915
4916 try testArgs(f80, f16, -nan(f16));
4917 try testArgs(f80, f16, -inf(f16));
4918 try testArgs(f80, f16, -fmax(f16));
4919 try testArgs(f80, f16, -1e1);
4920 try testArgs(f80, f16, -1e0);
4921 try testArgs(f80, f16, -1e-1);
4922 try testArgs(f80, f16, -fmin(f16));
4923 try testArgs(f80, f16, -tmin(f16));
4924 try testArgs(f80, f16, -0.0);
4925 try testArgs(f80, f16, 0.0);
4926 try testArgs(f80, f16, tmin(f16));
4927 try testArgs(f80, f16, fmin(f16));
4928 try testArgs(f80, f16, 1e-1);
4929 try testArgs(f80, f16, 1e0);
4930 try testArgs(f80, f16, 1e1);
4931 try testArgs(f80, f16, fmax(f16));
4932 try testArgs(f80, f16, inf(f16));
4933 try testArgs(f80, f16, nan(f16));
4934
4935 try testArgs(f128, f16, -nan(f16));
4936 try testArgs(f128, f16, -inf(f16));
4937 try testArgs(f128, f16, -fmax(f16));
4938 try testArgs(f128, f16, -1e1);
4939 try testArgs(f128, f16, -1e0);
4940 try testArgs(f128, f16, -1e-1);
4941 try testArgs(f128, f16, -fmin(f16));
4942 try testArgs(f128, f16, -tmin(f16));
4943 try testArgs(f128, f16, -0.0);
4944 try testArgs(f128, f16, 0.0);
4945 try testArgs(f128, f16, tmin(f16));
4946 try testArgs(f128, f16, fmin(f16));
4947 try testArgs(f128, f16, 1e-1);
4948 try testArgs(f128, f16, 1e0);
4949 try testArgs(f128, f16, 1e1);
4950 try testArgs(f128, f16, fmax(f16));
4951 try testArgs(f128, f16, inf(f16));
4952 try testArgs(f128, f16, nan(f16));
4953
4954 try testArgs(f16, f32, -nan(f32));
4955 try testArgs(f16, f32, -inf(f32));
4956 try testArgs(f16, f32, -fmax(f32));
4957 try testArgs(f16, f32, -1e1);
4958 try testArgs(f16, f32, -1e0);
4959 try testArgs(f16, f32, -1e-1);
4960 try testArgs(f16, f32, -fmin(f32));
4961 try testArgs(f16, f32, -tmin(f32));
4962 try testArgs(f16, f32, -0.0);
4963 try testArgs(f16, f32, 0.0);
4964 try testArgs(f16, f32, tmin(f32));
4965 try testArgs(f16, f32, fmin(f32));
4966 try testArgs(f16, f32, 1e-1);
4967 try testArgs(f16, f32, 1e0);
4968 try testArgs(f16, f32, 1e1);
4969 try testArgs(f16, f32, fmax(f32));
4970 try testArgs(f16, f32, inf(f32));
4971 try testArgs(f16, f32, nan(f32));
4972
4973 try testArgs(f32, f32, -nan(f32));
4974 try testArgs(f32, f32, -inf(f32));
4975 try testArgs(f32, f32, -fmax(f32));
4976 try testArgs(f32, f32, -1e1);
4977 try testArgs(f32, f32, -1e0);
4978 try testArgs(f32, f32, -1e-1);
4979 try testArgs(f32, f32, -fmin(f32));
4980 try testArgs(f32, f32, -tmin(f32));
4981 try testArgs(f32, f32, -0.0);
4982 try testArgs(f32, f32, 0.0);
4983 try testArgs(f32, f32, tmin(f32));
4984 try testArgs(f32, f32, fmin(f32));
4985 try testArgs(f32, f32, 1e-1);
4986 try testArgs(f32, f32, 1e0);
4987 try testArgs(f32, f32, 1e1);
4988 try testArgs(f32, f32, fmax(f32));
4989 try testArgs(f32, f32, inf(f32));
4990 try testArgs(f32, f32, nan(f32));
4991
4992 try testArgs(f64, f32, -nan(f32));
4993 try testArgs(f64, f32, -inf(f32));
4994 try testArgs(f64, f32, -fmax(f32));
4995 try testArgs(f64, f32, -1e1);
4996 try testArgs(f64, f32, -1e0);
4997 try testArgs(f64, f32, -1e-1);
4998 try testArgs(f64, f32, -fmin(f32));
4999 try testArgs(f64, f32, -tmin(f32));
5000 try testArgs(f64, f32, -0.0);
5001 try testArgs(f64, f32, 0.0);
5002 try testArgs(f64, f32, tmin(f32));
5003 try testArgs(f64, f32, fmin(f32));
5004 try testArgs(f64, f32, 1e-1);
5005 try testArgs(f64, f32, 1e0);
5006 try testArgs(f64, f32, 1e1);
5007 try testArgs(f64, f32, fmax(f32));
5008 try testArgs(f64, f32, inf(f32));
5009 try testArgs(f64, f32, nan(f32));
5010
5011 try testArgs(f80, f32, -nan(f32));
5012 try testArgs(f80, f32, -inf(f32));
5013 try testArgs(f80, f32, -fmax(f32));
5014 try testArgs(f80, f32, -1e1);
5015 try testArgs(f80, f32, -1e0);
5016 try testArgs(f80, f32, -1e-1);
5017 try testArgs(f80, f32, -fmin(f32));
5018 try testArgs(f80, f32, -tmin(f32));
5019 try testArgs(f80, f32, -0.0);
5020 try testArgs(f80, f32, 0.0);
5021 try testArgs(f80, f32, tmin(f32));
5022 try testArgs(f80, f32, fmin(f32));
5023 try testArgs(f80, f32, 1e-1);
5024 try testArgs(f80, f32, 1e0);
5025 try testArgs(f80, f32, 1e1);
5026 try testArgs(f80, f32, fmax(f32));
5027 try testArgs(f80, f32, inf(f32));
5028 try testArgs(f80, f32, nan(f32));
5029
5030 try testArgs(f128, f32, -nan(f32));
5031 try testArgs(f128, f32, -inf(f32));
5032 try testArgs(f128, f32, -fmax(f32));
5033 try testArgs(f128, f32, -1e1);
5034 try testArgs(f128, f32, -1e0);
5035 try testArgs(f128, f32, -1e-1);
5036 try testArgs(f128, f32, -fmin(f32));
5037 try testArgs(f128, f32, -tmin(f32));
5038 try testArgs(f128, f32, -0.0);
5039 try testArgs(f128, f32, 0.0);
5040 try testArgs(f128, f32, tmin(f32));
5041 try testArgs(f128, f32, fmin(f32));
5042 try testArgs(f128, f32, 1e-1);
5043 try testArgs(f128, f32, 1e0);
5044 try testArgs(f128, f32, 1e1);
5045 try testArgs(f128, f32, fmax(f32));
5046 try testArgs(f128, f32, inf(f32));
5047 try testArgs(f128, f32, nan(f32));
5048
5049 try testArgs(f16, f64, -nan(f64));
5050 try testArgs(f16, f64, -inf(f64));
5051 try testArgs(f16, f64, -fmax(f64));
5052 try testArgs(f16, f64, -1e1);
5053 try testArgs(f16, f64, -1e0);
5054 try testArgs(f16, f64, -1e-1);
5055 try testArgs(f16, f64, -fmin(f64));
5056 try testArgs(f16, f64, -tmin(f64));
5057 try testArgs(f16, f64, -0.0);
5058 try testArgs(f16, f64, 0.0);
5059 try testArgs(f16, f64, tmin(f64));
5060 try testArgs(f16, f64, fmin(f64));
5061 try testArgs(f16, f64, 1e-1);
5062 try testArgs(f16, f64, 1e0);
5063 try testArgs(f16, f64, 1e1);
5064 try testArgs(f16, f64, fmax(f64));
5065 try testArgs(f16, f64, inf(f64));
5066 try testArgs(f16, f64, nan(f64));
5067
5068 try testArgs(f32, f64, -nan(f64));
5069 try testArgs(f32, f64, -inf(f64));
5070 try testArgs(f32, f64, -fmax(f64));
5071 try testArgs(f32, f64, -1e1);
5072 try testArgs(f32, f64, -1e0);
5073 try testArgs(f32, f64, -1e-1);
5074 try testArgs(f32, f64, -fmin(f64));
5075 try testArgs(f32, f64, -tmin(f64));
5076 try testArgs(f32, f64, -0.0);
5077 try testArgs(f32, f64, 0.0);
5078 try testArgs(f32, f64, tmin(f64));
5079 try testArgs(f32, f64, fmin(f64));
5080 try testArgs(f32, f64, 1e-1);
5081 try testArgs(f32, f64, 1e0);
5082 try testArgs(f32, f64, 1e1);
5083 try testArgs(f32, f64, fmax(f64));
5084 try testArgs(f32, f64, inf(f64));
5085 try testArgs(f32, f64, nan(f64));
5086
5087 try testArgs(f64, f64, -nan(f64));
5088 try testArgs(f64, f64, -inf(f64));
5089 try testArgs(f64, f64, -fmax(f64));
5090 try testArgs(f64, f64, -1e1);
5091 try testArgs(f64, f64, -1e0);
5092 try testArgs(f64, f64, -1e-1);
5093 try testArgs(f64, f64, -fmin(f64));
5094 try testArgs(f64, f64, -tmin(f64));
5095 try testArgs(f64, f64, -0.0);
5096 try testArgs(f64, f64, 0.0);
5097 try testArgs(f64, f64, tmin(f64));
5098 try testArgs(f64, f64, fmin(f64));
5099 try testArgs(f64, f64, 1e-1);
5100 try testArgs(f64, f64, 1e0);
5101 try testArgs(f64, f64, 1e1);
5102 try testArgs(f64, f64, fmax(f64));
5103 try testArgs(f64, f64, inf(f64));
5104 try testArgs(f64, f64, nan(f64));
5105
5106 try testArgs(f80, f64, -nan(f64));
5107 try testArgs(f80, f64, -inf(f64));
5108 try testArgs(f80, f64, -fmax(f64));
5109 try testArgs(f80, f64, -1e1);
5110 try testArgs(f80, f64, -1e0);
5111 try testArgs(f80, f64, -1e-1);
5112 try testArgs(f80, f64, -fmin(f64));
5113 try testArgs(f80, f64, -tmin(f64));
5114 try testArgs(f80, f64, -0.0);
5115 try testArgs(f80, f64, 0.0);
5116 try testArgs(f80, f64, tmin(f64));
5117 try testArgs(f80, f64, fmin(f64));
5118 try testArgs(f80, f64, 1e-1);
5119 try testArgs(f80, f64, 1e0);
5120 try testArgs(f80, f64, 1e1);
5121 try testArgs(f80, f64, fmax(f64));
5122 try testArgs(f80, f64, inf(f64));
5123 try testArgs(f80, f64, nan(f64));
5124
5125 try testArgs(f128, f64, -nan(f64));
5126 try testArgs(f128, f64, -inf(f64));
5127 try testArgs(f128, f64, -fmax(f64));
5128 try testArgs(f128, f64, -1e1);
5129 try testArgs(f128, f64, -1e0);
5130 try testArgs(f128, f64, -1e-1);
5131 try testArgs(f128, f64, -fmin(f64));
5132 try testArgs(f128, f64, -tmin(f64));
5133 try testArgs(f128, f64, -0.0);
5134 try testArgs(f128, f64, 0.0);
5135 try testArgs(f128, f64, tmin(f64));
5136 try testArgs(f128, f64, fmin(f64));
5137 try testArgs(f128, f64, 1e-1);
5138 try testArgs(f128, f64, 1e0);
5139 try testArgs(f128, f64, 1e1);
5140 try testArgs(f128, f64, fmax(f64));
5141 try testArgs(f128, f64, inf(f64));
5142 try testArgs(f128, f64, nan(f64));
5143
5144 try testArgs(f16, f80, -nan(f80));
5145 try testArgs(f16, f80, -inf(f80));
5146 try testArgs(f16, f80, -fmax(f80));
5147 try testArgs(f16, f80, -1e1);
5148 try testArgs(f16, f80, -1e0);
5149 try testArgs(f16, f80, -1e-1);
5150 try testArgs(f16, f80, -fmin(f80));
5151 try testArgs(f16, f80, -tmin(f80));
5152 try testArgs(f16, f80, -0.0);
5153 try testArgs(f16, f80, 0.0);
5154 try testArgs(f16, f80, tmin(f80));
5155 try testArgs(f16, f80, fmin(f80));
5156 try testArgs(f16, f80, 1e-1);
5157 try testArgs(f16, f80, 1e0);
5158 try testArgs(f16, f80, 1e1);
5159 try testArgs(f16, f80, fmax(f80));
5160 try testArgs(f16, f80, inf(f80));
5161 try testArgs(f16, f80, nan(f80));
5162
5163 try testArgs(f32, f80, -nan(f80));
5164 try testArgs(f32, f80, -inf(f80));
5165 try testArgs(f32, f80, -fmax(f80));
5166 try testArgs(f32, f80, -1e1);
5167 try testArgs(f32, f80, -1e0);
5168 try testArgs(f32, f80, -1e-1);
5169 try testArgs(f32, f80, -fmin(f80));
5170 try testArgs(f32, f80, -tmin(f80));
5171 try testArgs(f32, f80, -0.0);
5172 try testArgs(f32, f80, 0.0);
5173 try testArgs(f32, f80, tmin(f80));
5174 try testArgs(f32, f80, fmin(f80));
5175 try testArgs(f32, f80, 1e-1);
5176 try testArgs(f32, f80, 1e0);
5177 try testArgs(f32, f80, 1e1);
5178 try testArgs(f32, f80, fmax(f80));
5179 try testArgs(f32, f80, inf(f80));
5180 try testArgs(f32, f80, nan(f80));
5181
5182 try testArgs(f64, f80, -nan(f80));
5183 try testArgs(f64, f80, -inf(f80));
5184 try testArgs(f64, f80, -fmax(f80));
5185 try testArgs(f64, f80, -1e1);
5186 try testArgs(f64, f80, -1e0);
5187 try testArgs(f64, f80, -1e-1);
5188 try testArgs(f64, f80, -fmin(f80));
5189 try testArgs(f64, f80, -tmin(f80));
5190 try testArgs(f64, f80, -0.0);
5191 try testArgs(f64, f80, 0.0);
5192 try testArgs(f64, f80, tmin(f80));
5193 try testArgs(f64, f80, fmin(f80));
5194 try testArgs(f64, f80, 1e-1);
5195 try testArgs(f64, f80, 1e0);
5196 try testArgs(f64, f80, 1e1);
5197 try testArgs(f64, f80, fmax(f80));
5198 try testArgs(f64, f80, inf(f80));
5199 try testArgs(f64, f80, nan(f80));
5200
5201 try testArgs(f80, f80, -nan(f80));
5202 try testArgs(f80, f80, -inf(f80));
5203 try testArgs(f80, f80, -fmax(f80));
5204 try testArgs(f80, f80, -1e1);
5205 try testArgs(f80, f80, -1e0);
5206 try testArgs(f80, f80, -1e-1);
5207 try testArgs(f80, f80, -fmin(f80));
5208 try testArgs(f80, f80, -tmin(f80));
5209 try testArgs(f80, f80, -0.0);
5210 try testArgs(f80, f80, 0.0);
5211 try testArgs(f80, f80, tmin(f80));
5212 try testArgs(f80, f80, fmin(f80));
5213 try testArgs(f80, f80, 1e-1);
5214 try testArgs(f80, f80, 1e0);
5215 try testArgs(f80, f80, 1e1);
5216 try testArgs(f80, f80, fmax(f80));
5217 try testArgs(f80, f80, inf(f80));
5218 try testArgs(f80, f80, nan(f80));
5219
5220 try testArgs(f128, f80, -nan(f80));
5221 try testArgs(f128, f80, -inf(f80));
5222 try testArgs(f128, f80, -fmax(f80));
5223 try testArgs(f128, f80, -1e1);
5224 try testArgs(f128, f80, -1e0);
5225 try testArgs(f128, f80, -1e-1);
5226 try testArgs(f128, f80, -fmin(f80));
5227 try testArgs(f128, f80, -tmin(f80));
5228 try testArgs(f128, f80, -0.0);
5229 try testArgs(f128, f80, 0.0);
5230 try testArgs(f128, f80, tmin(f80));
5231 try testArgs(f128, f80, fmin(f80));
5232 try testArgs(f128, f80, 1e-1);
5233 try testArgs(f128, f80, 1e0);
5234 try testArgs(f128, f80, 1e1);
5235 try testArgs(f128, f80, fmax(f80));
5236 try testArgs(f128, f80, inf(f80));
5237 try testArgs(f128, f80, nan(f80));
5238
5239 try testArgs(f16, f128, -nan(f128));
5240 try testArgs(f16, f128, -inf(f128));
5241 try testArgs(f16, f128, -fmax(f128));
5242 try testArgs(f16, f128, -1e1);
5243 try testArgs(f16, f128, -1e0);
5244 try testArgs(f16, f128, -1e-1);
5245 try testArgs(f16, f128, -fmin(f128));
5246 try testArgs(f16, f128, -tmin(f128));
5247 try testArgs(f16, f128, -0.0);
5248 try testArgs(f16, f128, 0.0);
5249 try testArgs(f16, f128, tmin(f128));
5250 try testArgs(f16, f128, fmin(f128));
5251 try testArgs(f16, f128, 1e-1);
5252 try testArgs(f16, f128, 1e0);
5253 try testArgs(f16, f128, 1e1);
5254 try testArgs(f16, f128, fmax(f128));
5255 try testArgs(f16, f128, inf(f128));
5256 try testArgs(f16, f128, nan(f128));
5257
5258 try testArgs(f32, f128, -nan(f128));
5259 try testArgs(f32, f128, -inf(f128));
5260 try testArgs(f32, f128, -fmax(f128));
5261 try testArgs(f32, f128, -1e1);
5262 try testArgs(f32, f128, -1e0);
5263 try testArgs(f32, f128, -1e-1);
5264 try testArgs(f32, f128, -fmin(f128));
5265 try testArgs(f32, f128, -tmin(f128));
5266 try testArgs(f32, f128, -0.0);
5267 try testArgs(f32, f128, 0.0);
5268 try testArgs(f32, f128, tmin(f128));
5269 try testArgs(f32, f128, fmin(f128));
5270 try testArgs(f32, f128, 1e-1);
5271 try testArgs(f32, f128, 1e0);
5272 try testArgs(f32, f128, 1e1);
5273 try testArgs(f32, f128, fmax(f128));
5274 try testArgs(f32, f128, inf(f128));
5275 try testArgs(f32, f128, nan(f128));
5276
5277 try testArgs(f64, f128, -nan(f128));
5278 try testArgs(f64, f128, -inf(f128));
5279 try testArgs(f64, f128, -fmax(f128));
5280 try testArgs(f64, f128, -1e1);
5281 try testArgs(f64, f128, -1e0);
5282 try testArgs(f64, f128, -1e-1);
5283 try testArgs(f64, f128, -fmin(f128));
5284 try testArgs(f64, f128, -tmin(f128));
5285 try testArgs(f64, f128, -0.0);
5286 try testArgs(f64, f128, 0.0);
5287 try testArgs(f64, f128, tmin(f128));
5288 try testArgs(f64, f128, fmin(f128));
5289 try testArgs(f64, f128, 1e-1);
5290 try testArgs(f64, f128, 1e0);
5291 try testArgs(f64, f128, 1e1);
5292 try testArgs(f64, f128, fmax(f128));
5293 try testArgs(f64, f128, inf(f128));
5294 try testArgs(f64, f128, nan(f128));
5295
5296 try testArgs(f80, f128, -nan(f128));
5297 try testArgs(f80, f128, -inf(f128));
5298 try testArgs(f80, f128, -fmax(f128));
5299 try testArgs(f80, f128, -1e1);
5300 try testArgs(f80, f128, -1e0);
5301 try testArgs(f80, f128, -1e-1);
5302 try testArgs(f80, f128, -fmin(f128));
5303 try testArgs(f80, f128, -tmin(f128));
5304 try testArgs(f80, f128, -0.0);
5305 try testArgs(f80, f128, 0.0);
5306 try testArgs(f80, f128, tmin(f128));
5307 try testArgs(f80, f128, fmin(f128));
5308 try testArgs(f80, f128, 1e-1);
5309 try testArgs(f80, f128, 1e0);
5310 try testArgs(f80, f128, 1e1);
5311 try testArgs(f80, f128, fmax(f128));
5312 try testArgs(f80, f128, inf(f128));
5313 try testArgs(f80, f128, nan(f128));
5314
5315 try testArgs(f128, f128, -nan(f128));
5316 try testArgs(f128, f128, -inf(f128));
5317 try testArgs(f128, f128, -fmax(f128));
5318 try testArgs(f128, f128, -1e1);
5319 try testArgs(f128, f128, -1e0);
5320 try testArgs(f128, f128, -1e-1);
5321 try testArgs(f128, f128, -fmin(f128));
5322 try testArgs(f128, f128, -tmin(f128));
5323 try testArgs(f128, f128, -0.0);
5324 try testArgs(f128, f128, 0.0);
5325 try testArgs(f128, f128, tmin(f128));
5326 try testArgs(f128, f128, fmin(f128));
5327 try testArgs(f128, f128, 1e-1);
5328 try testArgs(f128, f128, 1e0);
5329 try testArgs(f128, f128, 1e1);
5330 try testArgs(f128, f128, fmax(f128));
5331 try testArgs(f128, f128, inf(f128));
5332 try testArgs(f128, f128, nan(f128));
5333 }
5334 fn testSameSignednessIntVectors() !void {
5335 try testArgs(@Vector(1, i7), @Vector(1, i1), .{-1});
5336 try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1});
5337 try testArgs(@Vector(1, i9), @Vector(1, i1), .{-1});
5338 try testArgs(@Vector(1, i15), @Vector(1, i1), .{-1});
5339 try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1});
5340 try testArgs(@Vector(1, i17), @Vector(1, i1), .{-1});
5341 try testArgs(@Vector(1, i31), @Vector(1, i1), .{-1});
5342 try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1});
5343 try testArgs(@Vector(1, i33), @Vector(1, i1), .{-1});
5344 try testArgs(@Vector(1, i63), @Vector(1, i1), .{-1});
5345 try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1});
5346 try testArgs(@Vector(1, i65), @Vector(1, i1), .{-1});
5347 try testArgs(@Vector(1, i127), @Vector(1, i1), .{-1});
5348 try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1});
5349 try testArgs(@Vector(1, i129), @Vector(1, i1), .{-1});
5350 try testArgs(@Vector(1, i255), @Vector(1, i1), .{-1});
5351 try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1});
5352 try testArgs(@Vector(1, i257), @Vector(1, i1), .{-1});
5353 try testArgs(@Vector(1, i511), @Vector(1, i1), .{-1});
5354 try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1});
5355 try testArgs(@Vector(1, i513), @Vector(1, i1), .{-1});
5356 try testArgs(@Vector(1, i1023), @Vector(1, i1), .{-1});
5357 try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1});
5358 try testArgs(@Vector(1, i1025), @Vector(1, i1), .{-1});
5359 try testArgs(@Vector(1, u7), @Vector(1, u1), .{1});
5360 try testArgs(@Vector(1, u8), @Vector(1, u1), .{1});
5361 try testArgs(@Vector(1, u9), @Vector(1, u1), .{1});
5362 try testArgs(@Vector(1, u15), @Vector(1, u1), .{1});
5363 try testArgs(@Vector(1, u16), @Vector(1, u1), .{1});
5364 try testArgs(@Vector(1, u17), @Vector(1, u1), .{1});
5365 try testArgs(@Vector(1, u31), @Vector(1, u1), .{1});
5366 try testArgs(@Vector(1, u32), @Vector(1, u1), .{1});
5367 try testArgs(@Vector(1, u33), @Vector(1, u1), .{1});
5368 try testArgs(@Vector(1, u63), @Vector(1, u1), .{1});
5369 try testArgs(@Vector(1, u64), @Vector(1, u1), .{1});
5370 try testArgs(@Vector(1, u65), @Vector(1, u1), .{1});
5371 try testArgs(@Vector(1, u127), @Vector(1, u1), .{1});
5372 try testArgs(@Vector(1, u128), @Vector(1, u1), .{1});
5373 try testArgs(@Vector(1, u129), @Vector(1, u1), .{1});
5374 try testArgs(@Vector(1, u255), @Vector(1, u1), .{1});
5375 try testArgs(@Vector(1, u256), @Vector(1, u1), .{1});
5376 try testArgs(@Vector(1, u257), @Vector(1, u1), .{1});
5377 try testArgs(@Vector(1, u511), @Vector(1, u1), .{1});
5378 try testArgs(@Vector(1, u512), @Vector(1, u1), .{1});
5379 try testArgs(@Vector(1, u513), @Vector(1, u1), .{1});
5380 try testArgs(@Vector(1, u1023), @Vector(1, u1), .{1});
5381 try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1});
5382 try testArgs(@Vector(1, u1025), @Vector(1, u1), .{1});
5383
5384 try testArgs(@Vector(2, i7), @Vector(2, i1), .{ -1, 0 });
5385 try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 });
5386 try testArgs(@Vector(2, i9), @Vector(2, i1), .{ -1, 0 });
5387 try testArgs(@Vector(2, i15), @Vector(2, i1), .{ -1, 0 });
5388 try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 });
5389 try testArgs(@Vector(2, i17), @Vector(2, i1), .{ -1, 0 });
5390 try testArgs(@Vector(2, i31), @Vector(2, i1), .{ -1, 0 });
5391 try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 });
5392 try testArgs(@Vector(2, i33), @Vector(2, i1), .{ -1, 0 });
5393 try testArgs(@Vector(2, i63), @Vector(2, i1), .{ -1, 0 });
5394 try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 });
5395 try testArgs(@Vector(2, i65), @Vector(2, i1), .{ -1, 0 });
5396 try testArgs(@Vector(2, i127), @Vector(2, i1), .{ -1, 0 });
5397 try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 });
5398 try testArgs(@Vector(2, i129), @Vector(2, i1), .{ -1, 0 });
5399 try testArgs(@Vector(2, i255), @Vector(2, i1), .{ -1, 0 });
5400 try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 });
5401 try testArgs(@Vector(2, i257), @Vector(2, i1), .{ -1, 0 });
5402 try testArgs(@Vector(2, i511), @Vector(2, i1), .{ -1, 0 });
5403 try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 });
5404 try testArgs(@Vector(2, i513), @Vector(2, i1), .{ -1, 0 });
5405 try testArgs(@Vector(2, i1023), @Vector(2, i1), .{ -1, 0 });
5406 try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 });
5407 try testArgs(@Vector(2, i1025), @Vector(2, i1), .{ -1, 0 });
5408 try testArgs(@Vector(2, u7), @Vector(2, u1), .{ 0, 1 });
5409 try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 });
5410 try testArgs(@Vector(2, u9), @Vector(2, u1), .{ 0, 1 });
5411 try testArgs(@Vector(2, u15), @Vector(2, u1), .{ 0, 1 });
5412 try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 });
5413 try testArgs(@Vector(2, u17), @Vector(2, u1), .{ 0, 1 });
5414 try testArgs(@Vector(2, u31), @Vector(2, u1), .{ 0, 1 });
5415 try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 });
5416 try testArgs(@Vector(2, u33), @Vector(2, u1), .{ 0, 1 });
5417 try testArgs(@Vector(2, u63), @Vector(2, u1), .{ 0, 1 });
5418 try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 });
5419 try testArgs(@Vector(2, u65), @Vector(2, u1), .{ 0, 1 });
5420 try testArgs(@Vector(2, u127), @Vector(2, u1), .{ 0, 1 });
5421 try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 });
5422 try testArgs(@Vector(2, u129), @Vector(2, u1), .{ 0, 1 });
5423 try testArgs(@Vector(2, u255), @Vector(2, u1), .{ 0, 1 });
5424 try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 });
5425 try testArgs(@Vector(2, u257), @Vector(2, u1), .{ 0, 1 });
5426 try testArgs(@Vector(2, u511), @Vector(2, u1), .{ 0, 1 });
5427 try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 });
5428 try testArgs(@Vector(2, u513), @Vector(2, u1), .{ 0, 1 });
5429 try testArgs(@Vector(2, u1023), @Vector(2, u1), .{ 0, 1 });
5430 try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 });
5431 try testArgs(@Vector(2, u1025), @Vector(2, u1), .{ 0, 1 });
5432
5433 try testArgs(@Vector(3, i7), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5434 try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5435 try testArgs(@Vector(3, i9), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5436 try testArgs(@Vector(3, i15), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5437 try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5438 try testArgs(@Vector(3, i17), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5439 try testArgs(@Vector(3, i31), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5440 try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5441 try testArgs(@Vector(3, i33), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5442 try testArgs(@Vector(3, i63), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5443 try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5444 try testArgs(@Vector(3, i65), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5445 try testArgs(@Vector(3, i127), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5446 try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5447 try testArgs(@Vector(3, i129), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5448 try testArgs(@Vector(3, i255), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5449 try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5450 try testArgs(@Vector(3, i257), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5451 try testArgs(@Vector(3, i511), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5452 try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5453 try testArgs(@Vector(3, i513), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5454 try testArgs(@Vector(3, i1023), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5455 try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5456 try testArgs(@Vector(3, i1025), @Vector(3, i2), .{ -1 << 1, -1, 0 });
5457 try testArgs(@Vector(3, u7), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5458 try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5459 try testArgs(@Vector(3, u9), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5460 try testArgs(@Vector(3, u15), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5461 try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5462 try testArgs(@Vector(3, u17), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5463 try testArgs(@Vector(3, u31), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5464 try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5465 try testArgs(@Vector(3, u33), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5466 try testArgs(@Vector(3, u63), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5467 try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5468 try testArgs(@Vector(3, u65), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5469 try testArgs(@Vector(3, u127), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5470 try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5471 try testArgs(@Vector(3, u129), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5472 try testArgs(@Vector(3, u255), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5473 try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5474 try testArgs(@Vector(3, u257), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5475 try testArgs(@Vector(3, u511), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5476 try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5477 try testArgs(@Vector(3, u513), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5478 try testArgs(@Vector(3, u1023), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5479 try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5480 try testArgs(@Vector(3, u1025), @Vector(3, u2), .{ 0, 1, 1 << 1 });
5481
5482 try testArgs(@Vector(3, i7), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5483 try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5484 try testArgs(@Vector(3, i9), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5485 try testArgs(@Vector(3, i15), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5486 try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5487 try testArgs(@Vector(3, i17), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5488 try testArgs(@Vector(3, i31), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5489 try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5490 try testArgs(@Vector(3, i33), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5491 try testArgs(@Vector(3, i63), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5492 try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5493 try testArgs(@Vector(3, i65), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5494 try testArgs(@Vector(3, i127), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5495 try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5496 try testArgs(@Vector(3, i129), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5497 try testArgs(@Vector(3, i255), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5498 try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5499 try testArgs(@Vector(3, i257), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5500 try testArgs(@Vector(3, i511), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5501 try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5502 try testArgs(@Vector(3, i513), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5503 try testArgs(@Vector(3, i1023), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5504 try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5505 try testArgs(@Vector(3, i1025), @Vector(3, i3), .{ -1 << 2, -1, 0 });
5506 try testArgs(@Vector(3, u7), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5507 try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5508 try testArgs(@Vector(3, u9), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5509 try testArgs(@Vector(3, u15), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5510 try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5511 try testArgs(@Vector(3, u17), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5512 try testArgs(@Vector(3, u31), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5513 try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5514 try testArgs(@Vector(3, u33), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5515 try testArgs(@Vector(3, u63), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5516 try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5517 try testArgs(@Vector(3, u65), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5518 try testArgs(@Vector(3, u127), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5519 try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5520 try testArgs(@Vector(3, u129), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5521 try testArgs(@Vector(3, u255), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5522 try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5523 try testArgs(@Vector(3, u257), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5524 try testArgs(@Vector(3, u511), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5525 try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5526 try testArgs(@Vector(3, u513), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5527 try testArgs(@Vector(3, u1023), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5528 try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5529 try testArgs(@Vector(3, u1025), @Vector(3, u3), .{ 0, 1, 1 << 2 });
5530
5531 try testArgs(@Vector(3, i7), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5532 try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5533 try testArgs(@Vector(3, i9), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5534 try testArgs(@Vector(3, i15), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5535 try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5536 try testArgs(@Vector(3, i17), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5537 try testArgs(@Vector(3, i31), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5538 try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5539 try testArgs(@Vector(3, i33), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5540 try testArgs(@Vector(3, i63), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5541 try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5542 try testArgs(@Vector(3, i65), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5543 try testArgs(@Vector(3, i127), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5544 try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5545 try testArgs(@Vector(3, i129), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5546 try testArgs(@Vector(3, i255), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5547 try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5548 try testArgs(@Vector(3, i257), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5549 try testArgs(@Vector(3, i511), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5550 try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5551 try testArgs(@Vector(3, i513), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5552 try testArgs(@Vector(3, i1023), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5553 try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5554 try testArgs(@Vector(3, i1025), @Vector(3, i4), .{ -1 << 3, -1, 0 });
5555 try testArgs(@Vector(3, u7), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5556 try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5557 try testArgs(@Vector(3, u9), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5558 try testArgs(@Vector(3, u15), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5559 try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5560 try testArgs(@Vector(3, u17), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5561 try testArgs(@Vector(3, u31), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5562 try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5563 try testArgs(@Vector(3, u33), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5564 try testArgs(@Vector(3, u63), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5565 try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5566 try testArgs(@Vector(3, u65), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5567 try testArgs(@Vector(3, u127), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5568 try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5569 try testArgs(@Vector(3, u129), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5570 try testArgs(@Vector(3, u255), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5571 try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5572 try testArgs(@Vector(3, u257), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5573 try testArgs(@Vector(3, u511), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5574 try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5575 try testArgs(@Vector(3, u513), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5576 try testArgs(@Vector(3, u1023), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5577 try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5578 try testArgs(@Vector(3, u1025), @Vector(3, u4), .{ 0, 1, 1 << 3 });
5579
5580 try testArgs(@Vector(3, i7), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5581 try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5582 try testArgs(@Vector(3, i9), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5583 try testArgs(@Vector(3, i15), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5584 try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5585 try testArgs(@Vector(3, i17), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5586 try testArgs(@Vector(3, i31), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5587 try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5588 try testArgs(@Vector(3, i33), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5589 try testArgs(@Vector(3, i63), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5590 try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5591 try testArgs(@Vector(3, i65), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5592 try testArgs(@Vector(3, i127), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5593 try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5594 try testArgs(@Vector(3, i129), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5595 try testArgs(@Vector(3, i255), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5596 try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5597 try testArgs(@Vector(3, i257), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5598 try testArgs(@Vector(3, i511), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5599 try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5600 try testArgs(@Vector(3, i513), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5601 try testArgs(@Vector(3, i1023), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5602 try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5603 try testArgs(@Vector(3, i1025), @Vector(3, i5), .{ -1 << 4, -1, 0 });
5604 try testArgs(@Vector(3, u7), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5605 try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5606 try testArgs(@Vector(3, u9), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5607 try testArgs(@Vector(3, u15), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5608 try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5609 try testArgs(@Vector(3, u17), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5610 try testArgs(@Vector(3, u31), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5611 try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5612 try testArgs(@Vector(3, u33), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5613 try testArgs(@Vector(3, u63), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5614 try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5615 try testArgs(@Vector(3, u65), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5616 try testArgs(@Vector(3, u127), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5617 try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5618 try testArgs(@Vector(3, u129), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5619 try testArgs(@Vector(3, u255), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5620 try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5621 try testArgs(@Vector(3, u257), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5622 try testArgs(@Vector(3, u511), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5623 try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5624 try testArgs(@Vector(3, u513), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5625 try testArgs(@Vector(3, u1023), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5626 try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5627 try testArgs(@Vector(3, u1025), @Vector(3, u5), .{ 0, 1, 1 << 4 });
5628
5629 try testArgs(@Vector(3, i7), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5630 try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5631 try testArgs(@Vector(3, i9), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5632 try testArgs(@Vector(3, i15), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5633 try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5634 try testArgs(@Vector(3, i17), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5635 try testArgs(@Vector(3, i31), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5636 try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5637 try testArgs(@Vector(3, i33), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5638 try testArgs(@Vector(3, i63), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5639 try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5640 try testArgs(@Vector(3, i65), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5641 try testArgs(@Vector(3, i127), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5642 try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5643 try testArgs(@Vector(3, i129), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5644 try testArgs(@Vector(3, i255), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5645 try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5646 try testArgs(@Vector(3, i257), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5647 try testArgs(@Vector(3, i511), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5648 try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5649 try testArgs(@Vector(3, i513), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5650 try testArgs(@Vector(3, i1023), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5651 try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5652 try testArgs(@Vector(3, i1025), @Vector(3, i7), .{ -1 << 6, -1, 0 });
5653 try testArgs(@Vector(3, u7), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5654 try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5655 try testArgs(@Vector(3, u9), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5656 try testArgs(@Vector(3, u15), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5657 try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5658 try testArgs(@Vector(3, u17), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5659 try testArgs(@Vector(3, u31), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5660 try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5661 try testArgs(@Vector(3, u33), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5662 try testArgs(@Vector(3, u63), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5663 try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5664 try testArgs(@Vector(3, u65), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5665 try testArgs(@Vector(3, u127), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5666 try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5667 try testArgs(@Vector(3, u129), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5668 try testArgs(@Vector(3, u255), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5669 try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5670 try testArgs(@Vector(3, u257), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5671 try testArgs(@Vector(3, u511), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5672 try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5673 try testArgs(@Vector(3, u513), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5674 try testArgs(@Vector(3, u1023), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5675 try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5676 try testArgs(@Vector(3, u1025), @Vector(3, u7), .{ 0, 1, 1 << 6 });
5677
5678 try testArgs(@Vector(3, i7), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5679 try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5680 try testArgs(@Vector(3, i9), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5681 try testArgs(@Vector(3, i15), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5682 try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5683 try testArgs(@Vector(3, i17), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5684 try testArgs(@Vector(3, i31), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5685 try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5686 try testArgs(@Vector(3, i33), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5687 try testArgs(@Vector(3, i63), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5688 try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5689 try testArgs(@Vector(3, i65), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5690 try testArgs(@Vector(3, i127), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5691 try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5692 try testArgs(@Vector(3, i129), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5693 try testArgs(@Vector(3, i255), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5694 try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5695 try testArgs(@Vector(3, i257), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5696 try testArgs(@Vector(3, i511), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5697 try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5698 try testArgs(@Vector(3, i513), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5699 try testArgs(@Vector(3, i1023), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5700 try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5701 try testArgs(@Vector(3, i1025), @Vector(3, i8), .{ -1 << 7, -1, 0 });
5702 try testArgs(@Vector(3, u7), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5703 try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5704 try testArgs(@Vector(3, u9), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5705 try testArgs(@Vector(3, u15), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5706 try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5707 try testArgs(@Vector(3, u17), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5708 try testArgs(@Vector(3, u31), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5709 try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5710 try testArgs(@Vector(3, u33), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5711 try testArgs(@Vector(3, u63), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5712 try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5713 try testArgs(@Vector(3, u65), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5714 try testArgs(@Vector(3, u127), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5715 try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5716 try testArgs(@Vector(3, u129), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5717 try testArgs(@Vector(3, u255), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5718 try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5719 try testArgs(@Vector(3, u257), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5720 try testArgs(@Vector(3, u511), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5721 try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5722 try testArgs(@Vector(3, u513), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5723 try testArgs(@Vector(3, u1023), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5724 try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5725 try testArgs(@Vector(3, u1025), @Vector(3, u8), .{ 0, 1, 1 << 7 });
5726
5727 try testArgs(@Vector(3, i7), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5728 try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5729 try testArgs(@Vector(3, i9), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5730 try testArgs(@Vector(3, i15), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5731 try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5732 try testArgs(@Vector(3, i17), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5733 try testArgs(@Vector(3, i31), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5734 try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5735 try testArgs(@Vector(3, i33), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5736 try testArgs(@Vector(3, i63), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5737 try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5738 try testArgs(@Vector(3, i65), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5739 try testArgs(@Vector(3, i127), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5740 try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5741 try testArgs(@Vector(3, i129), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5742 try testArgs(@Vector(3, i255), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5743 try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5744 try testArgs(@Vector(3, i257), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5745 try testArgs(@Vector(3, i511), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5746 try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5747 try testArgs(@Vector(3, i513), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5748 try testArgs(@Vector(3, i1023), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5749 try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5750 try testArgs(@Vector(3, i1025), @Vector(3, i9), .{ -1 << 8, -1, 0 });
5751 try testArgs(@Vector(3, u7), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5752 try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5753 try testArgs(@Vector(3, u9), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5754 try testArgs(@Vector(3, u15), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5755 try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5756 try testArgs(@Vector(3, u17), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5757 try testArgs(@Vector(3, u31), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5758 try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5759 try testArgs(@Vector(3, u33), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5760 try testArgs(@Vector(3, u63), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5761 try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5762 try testArgs(@Vector(3, u65), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5763 try testArgs(@Vector(3, u127), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5764 try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5765 try testArgs(@Vector(3, u129), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5766 try testArgs(@Vector(3, u255), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5767 try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5768 try testArgs(@Vector(3, u257), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5769 try testArgs(@Vector(3, u511), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5770 try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5771 try testArgs(@Vector(3, u513), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5772 try testArgs(@Vector(3, u1023), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5773 try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5774 try testArgs(@Vector(3, u1025), @Vector(3, u9), .{ 0, 1, 1 << 8 });
5775
5776 try testArgs(@Vector(3, i7), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5777 try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5778 try testArgs(@Vector(3, i9), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5779 try testArgs(@Vector(3, i15), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5780 try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5781 try testArgs(@Vector(3, i17), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5782 try testArgs(@Vector(3, i31), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5783 try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5784 try testArgs(@Vector(3, i33), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5785 try testArgs(@Vector(3, i63), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5786 try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5787 try testArgs(@Vector(3, i65), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5788 try testArgs(@Vector(3, i127), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5789 try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5790 try testArgs(@Vector(3, i129), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5791 try testArgs(@Vector(3, i255), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5792 try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5793 try testArgs(@Vector(3, i257), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5794 try testArgs(@Vector(3, i511), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5795 try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5796 try testArgs(@Vector(3, i513), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5797 try testArgs(@Vector(3, i1023), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5798 try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5799 try testArgs(@Vector(3, i1025), @Vector(3, i15), .{ -1 << 14, -1, 0 });
5800 try testArgs(@Vector(3, u7), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5801 try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5802 try testArgs(@Vector(3, u9), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5803 try testArgs(@Vector(3, u15), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5804 try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5805 try testArgs(@Vector(3, u17), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5806 try testArgs(@Vector(3, u31), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5807 try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5808 try testArgs(@Vector(3, u33), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5809 try testArgs(@Vector(3, u63), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5810 try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5811 try testArgs(@Vector(3, u65), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5812 try testArgs(@Vector(3, u127), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5813 try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5814 try testArgs(@Vector(3, u129), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5815 try testArgs(@Vector(3, u255), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5816 try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5817 try testArgs(@Vector(3, u257), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5818 try testArgs(@Vector(3, u511), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5819 try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5820 try testArgs(@Vector(3, u513), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5821 try testArgs(@Vector(3, u1023), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5822 try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5823 try testArgs(@Vector(3, u1025), @Vector(3, u15), .{ 0, 1, 1 << 14 });
5824
5825 try testArgs(@Vector(3, i7), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5826 try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5827 try testArgs(@Vector(3, i9), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5828 try testArgs(@Vector(3, i15), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5829 try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5830 try testArgs(@Vector(3, i17), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5831 try testArgs(@Vector(3, i31), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5832 try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5833 try testArgs(@Vector(3, i33), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5834 try testArgs(@Vector(3, i63), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5835 try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5836 try testArgs(@Vector(3, i65), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5837 try testArgs(@Vector(3, i127), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5838 try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5839 try testArgs(@Vector(3, i129), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5840 try testArgs(@Vector(3, i255), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5841 try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5842 try testArgs(@Vector(3, i257), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5843 try testArgs(@Vector(3, i511), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5844 try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5845 try testArgs(@Vector(3, i513), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5846 try testArgs(@Vector(3, i1023), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5847 try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5848 try testArgs(@Vector(3, i1025), @Vector(3, i16), .{ -1 << 15, -1, 0 });
5849 try testArgs(@Vector(3, u7), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5850 try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5851 try testArgs(@Vector(3, u9), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5852 try testArgs(@Vector(3, u15), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5853 try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5854 try testArgs(@Vector(3, u17), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5855 try testArgs(@Vector(3, u31), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5856 try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5857 try testArgs(@Vector(3, u33), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5858 try testArgs(@Vector(3, u63), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5859 try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5860 try testArgs(@Vector(3, u65), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5861 try testArgs(@Vector(3, u127), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5862 try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5863 try testArgs(@Vector(3, u129), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5864 try testArgs(@Vector(3, u255), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5865 try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5866 try testArgs(@Vector(3, u257), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5867 try testArgs(@Vector(3, u511), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5868 try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5869 try testArgs(@Vector(3, u513), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5870 try testArgs(@Vector(3, u1023), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5871 try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5872 try testArgs(@Vector(3, u1025), @Vector(3, u16), .{ 0, 1, 1 << 15 });
5873
5874 try testArgs(@Vector(3, i7), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5875 try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5876 try testArgs(@Vector(3, i9), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5877 try testArgs(@Vector(3, i15), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5878 try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5879 try testArgs(@Vector(3, i17), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5880 try testArgs(@Vector(3, i31), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5881 try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5882 try testArgs(@Vector(3, i33), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5883 try testArgs(@Vector(3, i63), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5884 try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5885 try testArgs(@Vector(3, i65), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5886 try testArgs(@Vector(3, i127), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5887 try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5888 try testArgs(@Vector(3, i129), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5889 try testArgs(@Vector(3, i255), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5890 try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5891 try testArgs(@Vector(3, i257), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5892 try testArgs(@Vector(3, i511), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5893 try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5894 try testArgs(@Vector(3, i513), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5895 try testArgs(@Vector(3, i1023), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5896 try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5897 try testArgs(@Vector(3, i1025), @Vector(3, i17), .{ -1 << 16, -1, 0 });
5898 try testArgs(@Vector(3, u7), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5899 try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5900 try testArgs(@Vector(3, u9), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5901 try testArgs(@Vector(3, u15), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5902 try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5903 try testArgs(@Vector(3, u17), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5904 try testArgs(@Vector(3, u31), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5905 try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5906 try testArgs(@Vector(3, u33), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5907 try testArgs(@Vector(3, u63), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5908 try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5909 try testArgs(@Vector(3, u65), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5910 try testArgs(@Vector(3, u127), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5911 try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5912 try testArgs(@Vector(3, u129), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5913 try testArgs(@Vector(3, u255), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5914 try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5915 try testArgs(@Vector(3, u257), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5916 try testArgs(@Vector(3, u511), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5917 try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5918 try testArgs(@Vector(3, u513), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5919 try testArgs(@Vector(3, u1023), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5920 try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5921 try testArgs(@Vector(3, u1025), @Vector(3, u17), .{ 0, 1, 1 << 16 });
5922
5923 try testArgs(@Vector(3, i7), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5924 try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5925 try testArgs(@Vector(3, i9), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5926 try testArgs(@Vector(3, i15), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5927 try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5928 try testArgs(@Vector(3, i17), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5929 try testArgs(@Vector(3, i31), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5930 try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5931 try testArgs(@Vector(3, i33), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5932 try testArgs(@Vector(3, i63), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5933 try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5934 try testArgs(@Vector(3, i65), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5935 try testArgs(@Vector(3, i127), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5936 try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5937 try testArgs(@Vector(3, i129), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5938 try testArgs(@Vector(3, i255), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5939 try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5940 try testArgs(@Vector(3, i257), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5941 try testArgs(@Vector(3, i511), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5942 try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5943 try testArgs(@Vector(3, i513), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5944 try testArgs(@Vector(3, i1023), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5945 try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5946 try testArgs(@Vector(3, i1025), @Vector(3, i31), .{ -1 << 30, -1, 0 });
5947 try testArgs(@Vector(3, u7), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5948 try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5949 try testArgs(@Vector(3, u9), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5950 try testArgs(@Vector(3, u15), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5951 try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5952 try testArgs(@Vector(3, u17), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5953 try testArgs(@Vector(3, u31), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5954 try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5955 try testArgs(@Vector(3, u33), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5956 try testArgs(@Vector(3, u63), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5957 try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5958 try testArgs(@Vector(3, u65), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5959 try testArgs(@Vector(3, u127), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5960 try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5961 try testArgs(@Vector(3, u129), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5962 try testArgs(@Vector(3, u255), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5963 try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5964 try testArgs(@Vector(3, u257), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5965 try testArgs(@Vector(3, u511), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5966 try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5967 try testArgs(@Vector(3, u513), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5968 try testArgs(@Vector(3, u1023), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5969 try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5970 try testArgs(@Vector(3, u1025), @Vector(3, u31), .{ 0, 1, 1 << 30 });
5971
5972 try testArgs(@Vector(3, i7), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5973 try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5974 try testArgs(@Vector(3, i9), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5975 try testArgs(@Vector(3, i15), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5976 try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5977 try testArgs(@Vector(3, i17), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5978 try testArgs(@Vector(3, i31), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5979 try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5980 try testArgs(@Vector(3, i33), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5981 try testArgs(@Vector(3, i63), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5982 try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5983 try testArgs(@Vector(3, i65), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5984 try testArgs(@Vector(3, i127), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5985 try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5986 try testArgs(@Vector(3, i129), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5987 try testArgs(@Vector(3, i255), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5988 try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5989 try testArgs(@Vector(3, i257), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5990 try testArgs(@Vector(3, i511), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5991 try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5992 try testArgs(@Vector(3, i513), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5993 try testArgs(@Vector(3, i1023), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5994 try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5995 try testArgs(@Vector(3, i1025), @Vector(3, i32), .{ -1 << 31, -1, 0 });
5996 try testArgs(@Vector(3, u7), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5997 try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5998 try testArgs(@Vector(3, u9), @Vector(3, u32), .{ 0, 1, 1 << 31 });
5999 try testArgs(@Vector(3, u15), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6000 try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6001 try testArgs(@Vector(3, u17), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6002 try testArgs(@Vector(3, u31), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6003 try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6004 try testArgs(@Vector(3, u33), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6005 try testArgs(@Vector(3, u63), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6006 try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6007 try testArgs(@Vector(3, u65), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6008 try testArgs(@Vector(3, u127), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6009 try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6010 try testArgs(@Vector(3, u129), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6011 try testArgs(@Vector(3, u255), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6012 try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6013 try testArgs(@Vector(3, u257), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6014 try testArgs(@Vector(3, u511), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6015 try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6016 try testArgs(@Vector(3, u513), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6017 try testArgs(@Vector(3, u1023), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6018 try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6019 try testArgs(@Vector(3, u1025), @Vector(3, u32), .{ 0, 1, 1 << 31 });
6020
6021 try testArgs(@Vector(3, i7), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6022 try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6023 try testArgs(@Vector(3, i9), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6024 try testArgs(@Vector(3, i15), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6025 try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6026 try testArgs(@Vector(3, i17), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6027 try testArgs(@Vector(3, i31), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6028 try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6029 try testArgs(@Vector(3, i33), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6030 try testArgs(@Vector(3, i63), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6031 try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6032 try testArgs(@Vector(3, i65), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6033 try testArgs(@Vector(3, i127), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6034 try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6035 try testArgs(@Vector(3, i129), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6036 try testArgs(@Vector(3, i255), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6037 try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6038 try testArgs(@Vector(3, i257), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6039 try testArgs(@Vector(3, i511), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6040 try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6041 try testArgs(@Vector(3, i513), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6042 try testArgs(@Vector(3, i1023), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6043 try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6044 try testArgs(@Vector(3, i1025), @Vector(3, i33), .{ -1 << 32, -1, 0 });
6045 try testArgs(@Vector(3, u7), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6046 try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6047 try testArgs(@Vector(3, u9), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6048 try testArgs(@Vector(3, u15), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6049 try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6050 try testArgs(@Vector(3, u17), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6051 try testArgs(@Vector(3, u31), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6052 try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6053 try testArgs(@Vector(3, u33), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6054 try testArgs(@Vector(3, u63), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6055 try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6056 try testArgs(@Vector(3, u65), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6057 try testArgs(@Vector(3, u127), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6058 try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6059 try testArgs(@Vector(3, u129), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6060 try testArgs(@Vector(3, u255), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6061 try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6062 try testArgs(@Vector(3, u257), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6063 try testArgs(@Vector(3, u511), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6064 try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6065 try testArgs(@Vector(3, u513), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6066 try testArgs(@Vector(3, u1023), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6067 try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6068 try testArgs(@Vector(3, u1025), @Vector(3, u33), .{ 0, 1, 1 << 32 });
6069
6070 try testArgs(@Vector(3, i7), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6071 try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6072 try testArgs(@Vector(3, i9), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6073 try testArgs(@Vector(3, i15), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6074 try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6075 try testArgs(@Vector(3, i17), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6076 try testArgs(@Vector(3, i31), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6077 try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6078 try testArgs(@Vector(3, i33), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6079 try testArgs(@Vector(3, i63), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6080 try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6081 try testArgs(@Vector(3, i65), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6082 try testArgs(@Vector(3, i127), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6083 try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6084 try testArgs(@Vector(3, i129), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6085 try testArgs(@Vector(3, i255), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6086 try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6087 try testArgs(@Vector(3, i257), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6088 try testArgs(@Vector(3, i511), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6089 try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6090 try testArgs(@Vector(3, i513), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6091 try testArgs(@Vector(3, i1023), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6092 try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6093 try testArgs(@Vector(3, i1025), @Vector(3, i63), .{ -1 << 62, -1, 0 });
6094 try testArgs(@Vector(3, u7), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6095 try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6096 try testArgs(@Vector(3, u9), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6097 try testArgs(@Vector(3, u15), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6098 try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6099 try testArgs(@Vector(3, u17), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6100 try testArgs(@Vector(3, u31), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6101 try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6102 try testArgs(@Vector(3, u33), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6103 try testArgs(@Vector(3, u63), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6104 try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6105 try testArgs(@Vector(3, u65), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6106 try testArgs(@Vector(3, u127), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6107 try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6108 try testArgs(@Vector(3, u129), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6109 try testArgs(@Vector(3, u255), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6110 try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6111 try testArgs(@Vector(3, u257), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6112 try testArgs(@Vector(3, u511), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6113 try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6114 try testArgs(@Vector(3, u513), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6115 try testArgs(@Vector(3, u1023), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6116 try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6117 try testArgs(@Vector(3, u1025), @Vector(3, u63), .{ 0, 1, 1 << 62 });
6118
6119 try testArgs(@Vector(3, i7), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6120 try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6121 try testArgs(@Vector(3, i9), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6122 try testArgs(@Vector(3, i15), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6123 try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6124 try testArgs(@Vector(3, i17), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6125 try testArgs(@Vector(3, i31), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6126 try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6127 try testArgs(@Vector(3, i33), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6128 try testArgs(@Vector(3, i63), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6129 try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6130 try testArgs(@Vector(3, i65), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6131 try testArgs(@Vector(3, i127), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6132 try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6133 try testArgs(@Vector(3, i129), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6134 try testArgs(@Vector(3, i255), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6135 try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6136 try testArgs(@Vector(3, i257), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6137 try testArgs(@Vector(3, i511), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6138 try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6139 try testArgs(@Vector(3, i513), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6140 try testArgs(@Vector(3, i1023), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6141 try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6142 try testArgs(@Vector(3, i1025), @Vector(3, i64), .{ -1 << 63, -1, 0 });
6143 try testArgs(@Vector(3, u7), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6144 try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6145 try testArgs(@Vector(3, u9), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6146 try testArgs(@Vector(3, u15), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6147 try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6148 try testArgs(@Vector(3, u17), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6149 try testArgs(@Vector(3, u31), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6150 try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6151 try testArgs(@Vector(3, u33), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6152 try testArgs(@Vector(3, u63), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6153 try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6154 try testArgs(@Vector(3, u65), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6155 try testArgs(@Vector(3, u127), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6156 try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6157 try testArgs(@Vector(3, u129), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6158 try testArgs(@Vector(3, u255), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6159 try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6160 try testArgs(@Vector(3, u257), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6161 try testArgs(@Vector(3, u511), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6162 try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6163 try testArgs(@Vector(3, u513), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6164 try testArgs(@Vector(3, u1023), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6165 try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6166 try testArgs(@Vector(3, u1025), @Vector(3, u64), .{ 0, 1, 1 << 63 });
6167
6168 try testArgs(@Vector(3, i7), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6169 try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6170 try testArgs(@Vector(3, i9), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6171 try testArgs(@Vector(3, i15), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6172 try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6173 try testArgs(@Vector(3, i17), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6174 try testArgs(@Vector(3, i31), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6175 try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6176 try testArgs(@Vector(3, i33), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6177 try testArgs(@Vector(3, i63), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6178 try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6179 try testArgs(@Vector(3, i65), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6180 try testArgs(@Vector(3, i127), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6181 try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6182 try testArgs(@Vector(3, i129), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6183 try testArgs(@Vector(3, i255), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6184 try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6185 try testArgs(@Vector(3, i257), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6186 try testArgs(@Vector(3, i511), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6187 try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6188 try testArgs(@Vector(3, i513), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6189 try testArgs(@Vector(3, i1023), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6190 try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6191 try testArgs(@Vector(3, i1025), @Vector(3, i65), .{ -1 << 64, -1, 0 });
6192 try testArgs(@Vector(3, u7), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6193 try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6194 try testArgs(@Vector(3, u9), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6195 try testArgs(@Vector(3, u15), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6196 try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6197 try testArgs(@Vector(3, u17), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6198 try testArgs(@Vector(3, u31), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6199 try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6200 try testArgs(@Vector(3, u33), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6201 try testArgs(@Vector(3, u63), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6202 try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6203 try testArgs(@Vector(3, u65), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6204 try testArgs(@Vector(3, u127), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6205 try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6206 try testArgs(@Vector(3, u129), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6207 try testArgs(@Vector(3, u255), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6208 try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6209 try testArgs(@Vector(3, u257), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6210 try testArgs(@Vector(3, u511), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6211 try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6212 try testArgs(@Vector(3, u513), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6213 try testArgs(@Vector(3, u1023), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6214 try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6215 try testArgs(@Vector(3, u1025), @Vector(3, u65), .{ 0, 1, 1 << 64 });
6216
6217 try testArgs(@Vector(3, i7), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6218 try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6219 try testArgs(@Vector(3, i9), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6220 try testArgs(@Vector(3, i15), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6221 try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6222 try testArgs(@Vector(3, i17), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6223 try testArgs(@Vector(3, i31), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6224 try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6225 try testArgs(@Vector(3, i33), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6226 try testArgs(@Vector(3, i63), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6227 try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6228 try testArgs(@Vector(3, i65), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6229 try testArgs(@Vector(3, i127), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6230 try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6231 try testArgs(@Vector(3, i129), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6232 try testArgs(@Vector(3, i255), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6233 try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6234 try testArgs(@Vector(3, i257), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6235 try testArgs(@Vector(3, i511), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6236 try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6237 try testArgs(@Vector(3, i513), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6238 try testArgs(@Vector(3, i1023), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6239 try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6240 try testArgs(@Vector(3, i1025), @Vector(3, i95), .{ -1 << 94, -1, 0 });
6241 try testArgs(@Vector(3, u7), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6242 try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6243 try testArgs(@Vector(3, u9), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6244 try testArgs(@Vector(3, u15), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6245 try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6246 try testArgs(@Vector(3, u17), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6247 try testArgs(@Vector(3, u31), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6248 try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6249 try testArgs(@Vector(3, u33), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6250 try testArgs(@Vector(3, u63), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6251 try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6252 try testArgs(@Vector(3, u65), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6253 try testArgs(@Vector(3, u127), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6254 try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6255 try testArgs(@Vector(3, u129), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6256 try testArgs(@Vector(3, u255), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6257 try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6258 try testArgs(@Vector(3, u257), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6259 try testArgs(@Vector(3, u511), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6260 try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6261 try testArgs(@Vector(3, u513), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6262 try testArgs(@Vector(3, u1023), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6263 try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6264 try testArgs(@Vector(3, u1025), @Vector(3, u95), .{ 0, 1, 1 << 94 });
6265
6266 try testArgs(@Vector(3, i7), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6267 try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6268 try testArgs(@Vector(3, i9), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6269 try testArgs(@Vector(3, i15), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6270 try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6271 try testArgs(@Vector(3, i17), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6272 try testArgs(@Vector(3, i31), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6273 try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6274 try testArgs(@Vector(3, i33), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6275 try testArgs(@Vector(3, i63), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6276 try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6277 try testArgs(@Vector(3, i65), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6278 try testArgs(@Vector(3, i127), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6279 try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6280 try testArgs(@Vector(3, i129), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6281 try testArgs(@Vector(3, i255), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6282 try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6283 try testArgs(@Vector(3, i257), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6284 try testArgs(@Vector(3, i511), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6285 try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6286 try testArgs(@Vector(3, i513), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6287 try testArgs(@Vector(3, i1023), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6288 try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6289 try testArgs(@Vector(3, i1025), @Vector(3, i96), .{ -1 << 95, -1, 0 });
6290 try testArgs(@Vector(3, u7), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6291 try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6292 try testArgs(@Vector(3, u9), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6293 try testArgs(@Vector(3, u15), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6294 try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6295 try testArgs(@Vector(3, u17), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6296 try testArgs(@Vector(3, u31), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6297 try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6298 try testArgs(@Vector(3, u33), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6299 try testArgs(@Vector(3, u63), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6300 try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6301 try testArgs(@Vector(3, u65), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6302 try testArgs(@Vector(3, u127), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6303 try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6304 try testArgs(@Vector(3, u129), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6305 try testArgs(@Vector(3, u255), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6306 try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6307 try testArgs(@Vector(3, u257), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6308 try testArgs(@Vector(3, u511), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6309 try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6310 try testArgs(@Vector(3, u513), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6311 try testArgs(@Vector(3, u1023), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6312 try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6313 try testArgs(@Vector(3, u1025), @Vector(3, u96), .{ 0, 1, 1 << 95 });
6314
6315 try testArgs(@Vector(3, i7), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6316 try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6317 try testArgs(@Vector(3, i9), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6318 try testArgs(@Vector(3, i15), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6319 try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6320 try testArgs(@Vector(3, i17), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6321 try testArgs(@Vector(3, i31), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6322 try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6323 try testArgs(@Vector(3, i33), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6324 try testArgs(@Vector(3, i63), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6325 try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6326 try testArgs(@Vector(3, i65), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6327 try testArgs(@Vector(3, i127), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6328 try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6329 try testArgs(@Vector(3, i129), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6330 try testArgs(@Vector(3, i255), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6331 try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6332 try testArgs(@Vector(3, i257), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6333 try testArgs(@Vector(3, i511), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6334 try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6335 try testArgs(@Vector(3, i513), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6336 try testArgs(@Vector(3, i1023), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6337 try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6338 try testArgs(@Vector(3, i1025), @Vector(3, i97), .{ -1 << 96, -1, 0 });
6339 try testArgs(@Vector(3, u7), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6340 try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6341 try testArgs(@Vector(3, u9), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6342 try testArgs(@Vector(3, u15), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6343 try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6344 try testArgs(@Vector(3, u17), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6345 try testArgs(@Vector(3, u31), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6346 try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6347 try testArgs(@Vector(3, u33), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6348 try testArgs(@Vector(3, u63), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6349 try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6350 try testArgs(@Vector(3, u65), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6351 try testArgs(@Vector(3, u127), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6352 try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6353 try testArgs(@Vector(3, u129), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6354 try testArgs(@Vector(3, u255), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6355 try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6356 try testArgs(@Vector(3, u257), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6357 try testArgs(@Vector(3, u511), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6358 try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6359 try testArgs(@Vector(3, u513), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6360 try testArgs(@Vector(3, u1023), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6361 try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6362 try testArgs(@Vector(3, u1025), @Vector(3, u97), .{ 0, 1, 1 << 96 });
6363
6364 try testArgs(@Vector(3, i7), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6365 try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6366 try testArgs(@Vector(3, i9), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6367 try testArgs(@Vector(3, i15), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6368 try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6369 try testArgs(@Vector(3, i17), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6370 try testArgs(@Vector(3, i31), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6371 try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6372 try testArgs(@Vector(3, i33), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6373 try testArgs(@Vector(3, i63), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6374 try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6375 try testArgs(@Vector(3, i65), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6376 try testArgs(@Vector(3, i127), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6377 try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6378 try testArgs(@Vector(3, i129), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6379 try testArgs(@Vector(3, i255), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6380 try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6381 try testArgs(@Vector(3, i257), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6382 try testArgs(@Vector(3, i511), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6383 try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6384 try testArgs(@Vector(3, i513), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6385 try testArgs(@Vector(3, i1023), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6386 try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6387 try testArgs(@Vector(3, i1025), @Vector(3, i127), .{ -1 << 126, -1, 0 });
6388 try testArgs(@Vector(3, u7), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6389 try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6390 try testArgs(@Vector(3, u9), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6391 try testArgs(@Vector(3, u15), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6392 try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6393 try testArgs(@Vector(3, u17), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6394 try testArgs(@Vector(3, u31), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6395 try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6396 try testArgs(@Vector(3, u33), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6397 try testArgs(@Vector(3, u63), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6398 try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6399 try testArgs(@Vector(3, u65), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6400 try testArgs(@Vector(3, u127), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6401 try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6402 try testArgs(@Vector(3, u129), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6403 try testArgs(@Vector(3, u255), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6404 try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6405 try testArgs(@Vector(3, u257), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6406 try testArgs(@Vector(3, u511), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6407 try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6408 try testArgs(@Vector(3, u513), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6409 try testArgs(@Vector(3, u1023), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6410 try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6411 try testArgs(@Vector(3, u1025), @Vector(3, u127), .{ 0, 1, 1 << 126 });
6412
6413 try testArgs(@Vector(3, i7), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6414 try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6415 try testArgs(@Vector(3, i9), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6416 try testArgs(@Vector(3, i15), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6417 try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6418 try testArgs(@Vector(3, i17), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6419 try testArgs(@Vector(3, i31), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6420 try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6421 try testArgs(@Vector(3, i33), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6422 try testArgs(@Vector(3, i63), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6423 try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6424 try testArgs(@Vector(3, i65), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6425 try testArgs(@Vector(3, i127), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6426 try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6427 try testArgs(@Vector(3, i129), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6428 try testArgs(@Vector(3, i255), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6429 try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6430 try testArgs(@Vector(3, i257), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6431 try testArgs(@Vector(3, i511), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6432 try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6433 try testArgs(@Vector(3, i513), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6434 try testArgs(@Vector(3, i1023), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6435 try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6436 try testArgs(@Vector(3, i1025), @Vector(3, i128), .{ -1 << 127, -1, 0 });
6437 try testArgs(@Vector(3, u7), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6438 try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6439 try testArgs(@Vector(3, u9), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6440 try testArgs(@Vector(3, u15), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6441 try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6442 try testArgs(@Vector(3, u17), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6443 try testArgs(@Vector(3, u31), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6444 try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6445 try testArgs(@Vector(3, u33), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6446 try testArgs(@Vector(3, u63), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6447 try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6448 try testArgs(@Vector(3, u65), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6449 try testArgs(@Vector(3, u127), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6450 try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6451 try testArgs(@Vector(3, u129), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6452 try testArgs(@Vector(3, u255), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6453 try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6454 try testArgs(@Vector(3, u257), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6455 try testArgs(@Vector(3, u511), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6456 try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6457 try testArgs(@Vector(3, u513), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6458 try testArgs(@Vector(3, u1023), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6459 try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6460 try testArgs(@Vector(3, u1025), @Vector(3, u128), .{ 0, 1, 1 << 127 });
6461
6462 try testArgs(@Vector(3, i7), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6463 try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6464 try testArgs(@Vector(3, i9), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6465 try testArgs(@Vector(3, i15), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6466 try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6467 try testArgs(@Vector(3, i17), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6468 try testArgs(@Vector(3, i31), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6469 try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6470 try testArgs(@Vector(3, i33), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6471 try testArgs(@Vector(3, i63), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6472 try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6473 try testArgs(@Vector(3, i65), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6474 try testArgs(@Vector(3, i127), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6475 try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6476 try testArgs(@Vector(3, i129), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6477 try testArgs(@Vector(3, i255), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6478 try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6479 try testArgs(@Vector(3, i257), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6480 try testArgs(@Vector(3, i511), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6481 try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6482 try testArgs(@Vector(3, i513), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6483 try testArgs(@Vector(3, i1023), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6484 try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6485 try testArgs(@Vector(3, i1025), @Vector(3, i129), .{ -1 << 128, -1, 0 });
6486 try testArgs(@Vector(3, u7), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6487 try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6488 try testArgs(@Vector(3, u9), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6489 try testArgs(@Vector(3, u15), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6490 try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6491 try testArgs(@Vector(3, u17), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6492 try testArgs(@Vector(3, u31), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6493 try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6494 try testArgs(@Vector(3, u33), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6495 try testArgs(@Vector(3, u63), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6496 try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6497 try testArgs(@Vector(3, u65), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6498 try testArgs(@Vector(3, u127), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6499 try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6500 try testArgs(@Vector(3, u129), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6501 try testArgs(@Vector(3, u255), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6502 try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6503 try testArgs(@Vector(3, u257), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6504 try testArgs(@Vector(3, u511), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6505 try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6506 try testArgs(@Vector(3, u513), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6507 try testArgs(@Vector(3, u1023), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6508 try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6509 try testArgs(@Vector(3, u1025), @Vector(3, u129), .{ 0, 1, 1 << 128 });
6510
6511 try testArgs(@Vector(3, i7), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6512 try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6513 try testArgs(@Vector(3, i9), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6514 try testArgs(@Vector(3, i15), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6515 try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6516 try testArgs(@Vector(3, i17), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6517 try testArgs(@Vector(3, i31), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6518 try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6519 try testArgs(@Vector(3, i33), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6520 try testArgs(@Vector(3, i63), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6521 try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6522 try testArgs(@Vector(3, i65), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6523 try testArgs(@Vector(3, i127), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6524 try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6525 try testArgs(@Vector(3, i129), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6526 try testArgs(@Vector(3, i255), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6527 try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6528 try testArgs(@Vector(3, i257), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6529 try testArgs(@Vector(3, i511), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6530 try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6531 try testArgs(@Vector(3, i513), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6532 try testArgs(@Vector(3, i1023), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6533 try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6534 try testArgs(@Vector(3, i1025), @Vector(3, i159), .{ -1 << 158, -1, 0 });
6535 try testArgs(@Vector(3, u7), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6536 try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6537 try testArgs(@Vector(3, u9), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6538 try testArgs(@Vector(3, u15), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6539 try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6540 try testArgs(@Vector(3, u17), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6541 try testArgs(@Vector(3, u31), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6542 try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6543 try testArgs(@Vector(3, u33), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6544 try testArgs(@Vector(3, u63), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6545 try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6546 try testArgs(@Vector(3, u65), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6547 try testArgs(@Vector(3, u127), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6548 try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6549 try testArgs(@Vector(3, u129), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6550 try testArgs(@Vector(3, u255), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6551 try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6552 try testArgs(@Vector(3, u257), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6553 try testArgs(@Vector(3, u511), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6554 try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6555 try testArgs(@Vector(3, u513), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6556 try testArgs(@Vector(3, u1023), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6557 try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6558 try testArgs(@Vector(3, u1025), @Vector(3, u159), .{ 0, 1, 1 << 158 });
6559
6560 try testArgs(@Vector(3, i7), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6561 try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6562 try testArgs(@Vector(3, i9), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6563 try testArgs(@Vector(3, i15), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6564 try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6565 try testArgs(@Vector(3, i17), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6566 try testArgs(@Vector(3, i31), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6567 try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6568 try testArgs(@Vector(3, i33), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6569 try testArgs(@Vector(3, i63), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6570 try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6571 try testArgs(@Vector(3, i65), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6572 try testArgs(@Vector(3, i127), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6573 try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6574 try testArgs(@Vector(3, i129), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6575 try testArgs(@Vector(3, i255), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6576 try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6577 try testArgs(@Vector(3, i257), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6578 try testArgs(@Vector(3, i511), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6579 try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6580 try testArgs(@Vector(3, i513), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6581 try testArgs(@Vector(3, i1023), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6582 try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6583 try testArgs(@Vector(3, i1025), @Vector(3, i160), .{ -1 << 159, -1, 0 });
6584 try testArgs(@Vector(3, u7), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6585 try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6586 try testArgs(@Vector(3, u9), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6587 try testArgs(@Vector(3, u15), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6588 try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6589 try testArgs(@Vector(3, u17), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6590 try testArgs(@Vector(3, u31), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6591 try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6592 try testArgs(@Vector(3, u33), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6593 try testArgs(@Vector(3, u63), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6594 try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6595 try testArgs(@Vector(3, u65), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6596 try testArgs(@Vector(3, u127), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6597 try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6598 try testArgs(@Vector(3, u129), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6599 try testArgs(@Vector(3, u255), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6600 try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6601 try testArgs(@Vector(3, u257), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6602 try testArgs(@Vector(3, u511), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6603 try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6604 try testArgs(@Vector(3, u513), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6605 try testArgs(@Vector(3, u1023), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6606 try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6607 try testArgs(@Vector(3, u1025), @Vector(3, u160), .{ 0, 1, 1 << 159 });
6608
6609 try testArgs(@Vector(3, i7), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6610 try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6611 try testArgs(@Vector(3, i9), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6612 try testArgs(@Vector(3, i15), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6613 try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6614 try testArgs(@Vector(3, i17), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6615 try testArgs(@Vector(3, i31), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6616 try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6617 try testArgs(@Vector(3, i33), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6618 try testArgs(@Vector(3, i63), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6619 try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6620 try testArgs(@Vector(3, i65), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6621 try testArgs(@Vector(3, i127), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6622 try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6623 try testArgs(@Vector(3, i129), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6624 try testArgs(@Vector(3, i255), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6625 try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6626 try testArgs(@Vector(3, i257), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6627 try testArgs(@Vector(3, i511), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6628 try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6629 try testArgs(@Vector(3, i513), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6630 try testArgs(@Vector(3, i1023), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6631 try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6632 try testArgs(@Vector(3, i1025), @Vector(3, i161), .{ -1 << 160, -1, 0 });
6633 try testArgs(@Vector(3, u7), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6634 try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6635 try testArgs(@Vector(3, u9), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6636 try testArgs(@Vector(3, u15), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6637 try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6638 try testArgs(@Vector(3, u17), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6639 try testArgs(@Vector(3, u31), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6640 try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6641 try testArgs(@Vector(3, u33), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6642 try testArgs(@Vector(3, u63), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6643 try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6644 try testArgs(@Vector(3, u65), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6645 try testArgs(@Vector(3, u127), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6646 try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6647 try testArgs(@Vector(3, u129), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6648 try testArgs(@Vector(3, u255), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6649 try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6650 try testArgs(@Vector(3, u257), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6651 try testArgs(@Vector(3, u511), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6652 try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6653 try testArgs(@Vector(3, u513), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6654 try testArgs(@Vector(3, u1023), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6655 try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6656 try testArgs(@Vector(3, u1025), @Vector(3, u161), .{ 0, 1, 1 << 160 });
6657
6658 try testArgs(@Vector(3, i7), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6659 try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6660 try testArgs(@Vector(3, i9), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6661 try testArgs(@Vector(3, i15), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6662 try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6663 try testArgs(@Vector(3, i17), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6664 try testArgs(@Vector(3, i31), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6665 try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6666 try testArgs(@Vector(3, i33), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6667 try testArgs(@Vector(3, i63), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6668 try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6669 try testArgs(@Vector(3, i65), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6670 try testArgs(@Vector(3, i127), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6671 try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6672 try testArgs(@Vector(3, i129), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6673 try testArgs(@Vector(3, i255), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6674 try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6675 try testArgs(@Vector(3, i257), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6676 try testArgs(@Vector(3, i511), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6677 try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6678 try testArgs(@Vector(3, i513), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6679 try testArgs(@Vector(3, i1023), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6680 try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6681 try testArgs(@Vector(3, i1025), @Vector(3, i191), .{ -1 << 190, -1, 0 });
6682 try testArgs(@Vector(3, u7), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6683 try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6684 try testArgs(@Vector(3, u9), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6685 try testArgs(@Vector(3, u15), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6686 try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6687 try testArgs(@Vector(3, u17), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6688 try testArgs(@Vector(3, u31), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6689 try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6690 try testArgs(@Vector(3, u33), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6691 try testArgs(@Vector(3, u63), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6692 try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6693 try testArgs(@Vector(3, u65), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6694 try testArgs(@Vector(3, u127), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6695 try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6696 try testArgs(@Vector(3, u129), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6697 try testArgs(@Vector(3, u255), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6698 try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6699 try testArgs(@Vector(3, u257), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6700 try testArgs(@Vector(3, u511), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6701 try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6702 try testArgs(@Vector(3, u513), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6703 try testArgs(@Vector(3, u1023), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6704 try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6705 try testArgs(@Vector(3, u1025), @Vector(3, u191), .{ 0, 1, 1 << 190 });
6706
6707 try testArgs(@Vector(3, i7), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6708 try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6709 try testArgs(@Vector(3, i9), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6710 try testArgs(@Vector(3, i15), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6711 try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6712 try testArgs(@Vector(3, i17), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6713 try testArgs(@Vector(3, i31), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6714 try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6715 try testArgs(@Vector(3, i33), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6716 try testArgs(@Vector(3, i63), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6717 try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6718 try testArgs(@Vector(3, i65), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6719 try testArgs(@Vector(3, i127), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6720 try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6721 try testArgs(@Vector(3, i129), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6722 try testArgs(@Vector(3, i255), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6723 try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6724 try testArgs(@Vector(3, i257), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6725 try testArgs(@Vector(3, i511), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6726 try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6727 try testArgs(@Vector(3, i513), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6728 try testArgs(@Vector(3, i1023), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6729 try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6730 try testArgs(@Vector(3, i1025), @Vector(3, i192), .{ -1 << 191, -1, 0 });
6731 try testArgs(@Vector(3, u7), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6732 try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6733 try testArgs(@Vector(3, u9), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6734 try testArgs(@Vector(3, u15), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6735 try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6736 try testArgs(@Vector(3, u17), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6737 try testArgs(@Vector(3, u31), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6738 try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6739 try testArgs(@Vector(3, u33), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6740 try testArgs(@Vector(3, u63), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6741 try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6742 try testArgs(@Vector(3, u65), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6743 try testArgs(@Vector(3, u127), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6744 try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6745 try testArgs(@Vector(3, u129), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6746 try testArgs(@Vector(3, u255), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6747 try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6748 try testArgs(@Vector(3, u257), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6749 try testArgs(@Vector(3, u511), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6750 try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6751 try testArgs(@Vector(3, u513), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6752 try testArgs(@Vector(3, u1023), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6753 try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6754 try testArgs(@Vector(3, u1025), @Vector(3, u192), .{ 0, 1, 1 << 191 });
6755
6756 try testArgs(@Vector(3, i7), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6757 try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6758 try testArgs(@Vector(3, i9), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6759 try testArgs(@Vector(3, i15), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6760 try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6761 try testArgs(@Vector(3, i17), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6762 try testArgs(@Vector(3, i31), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6763 try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6764 try testArgs(@Vector(3, i33), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6765 try testArgs(@Vector(3, i63), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6766 try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6767 try testArgs(@Vector(3, i65), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6768 try testArgs(@Vector(3, i127), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6769 try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6770 try testArgs(@Vector(3, i129), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6771 try testArgs(@Vector(3, i255), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6772 try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6773 try testArgs(@Vector(3, i257), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6774 try testArgs(@Vector(3, i511), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6775 try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6776 try testArgs(@Vector(3, i513), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6777 try testArgs(@Vector(3, i1023), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6778 try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6779 try testArgs(@Vector(3, i1025), @Vector(3, i193), .{ -1 << 192, -1, 0 });
6780 try testArgs(@Vector(3, u7), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6781 try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6782 try testArgs(@Vector(3, u9), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6783 try testArgs(@Vector(3, u15), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6784 try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6785 try testArgs(@Vector(3, u17), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6786 try testArgs(@Vector(3, u31), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6787 try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6788 try testArgs(@Vector(3, u33), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6789 try testArgs(@Vector(3, u63), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6790 try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6791 try testArgs(@Vector(3, u65), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6792 try testArgs(@Vector(3, u127), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6793 try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6794 try testArgs(@Vector(3, u129), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6795 try testArgs(@Vector(3, u255), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6796 try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6797 try testArgs(@Vector(3, u257), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6798 try testArgs(@Vector(3, u511), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6799 try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6800 try testArgs(@Vector(3, u513), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6801 try testArgs(@Vector(3, u1023), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6802 try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6803 try testArgs(@Vector(3, u1025), @Vector(3, u193), .{ 0, 1, 1 << 192 });
6804
6805 try testArgs(@Vector(3, i7), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6806 try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6807 try testArgs(@Vector(3, i9), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6808 try testArgs(@Vector(3, i15), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6809 try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6810 try testArgs(@Vector(3, i17), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6811 try testArgs(@Vector(3, i31), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6812 try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6813 try testArgs(@Vector(3, i33), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6814 try testArgs(@Vector(3, i63), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6815 try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6816 try testArgs(@Vector(3, i65), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6817 try testArgs(@Vector(3, i127), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6818 try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6819 try testArgs(@Vector(3, i129), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6820 try testArgs(@Vector(3, i255), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6821 try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6822 try testArgs(@Vector(3, i257), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6823 try testArgs(@Vector(3, i511), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6824 try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6825 try testArgs(@Vector(3, i513), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6826 try testArgs(@Vector(3, i1023), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6827 try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6828 try testArgs(@Vector(3, i1025), @Vector(3, i223), .{ -1 << 222, -1, 0 });
6829 try testArgs(@Vector(3, u7), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6830 try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6831 try testArgs(@Vector(3, u9), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6832 try testArgs(@Vector(3, u15), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6833 try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6834 try testArgs(@Vector(3, u17), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6835 try testArgs(@Vector(3, u31), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6836 try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6837 try testArgs(@Vector(3, u33), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6838 try testArgs(@Vector(3, u63), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6839 try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6840 try testArgs(@Vector(3, u65), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6841 try testArgs(@Vector(3, u127), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6842 try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6843 try testArgs(@Vector(3, u129), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6844 try testArgs(@Vector(3, u255), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6845 try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6846 try testArgs(@Vector(3, u257), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6847 try testArgs(@Vector(3, u511), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6848 try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6849 try testArgs(@Vector(3, u513), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6850 try testArgs(@Vector(3, u1023), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6851 try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6852 try testArgs(@Vector(3, u1025), @Vector(3, u223), .{ 0, 1, 1 << 222 });
6853
6854 try testArgs(@Vector(3, i7), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6855 try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6856 try testArgs(@Vector(3, i9), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6857 try testArgs(@Vector(3, i15), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6858 try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6859 try testArgs(@Vector(3, i17), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6860 try testArgs(@Vector(3, i31), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6861 try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6862 try testArgs(@Vector(3, i33), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6863 try testArgs(@Vector(3, i63), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6864 try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6865 try testArgs(@Vector(3, i65), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6866 try testArgs(@Vector(3, i127), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6867 try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6868 try testArgs(@Vector(3, i129), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6869 try testArgs(@Vector(3, i255), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6870 try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6871 try testArgs(@Vector(3, i257), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6872 try testArgs(@Vector(3, i511), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6873 try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6874 try testArgs(@Vector(3, i513), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6875 try testArgs(@Vector(3, i1023), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6876 try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6877 try testArgs(@Vector(3, i1025), @Vector(3, i224), .{ -1 << 223, -1, 0 });
6878 try testArgs(@Vector(3, u7), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6879 try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6880 try testArgs(@Vector(3, u9), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6881 try testArgs(@Vector(3, u15), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6882 try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6883 try testArgs(@Vector(3, u17), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6884 try testArgs(@Vector(3, u31), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6885 try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6886 try testArgs(@Vector(3, u33), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6887 try testArgs(@Vector(3, u63), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6888 try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6889 try testArgs(@Vector(3, u65), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6890 try testArgs(@Vector(3, u127), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6891 try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6892 try testArgs(@Vector(3, u129), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6893 try testArgs(@Vector(3, u255), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6894 try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6895 try testArgs(@Vector(3, u257), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6896 try testArgs(@Vector(3, u511), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6897 try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6898 try testArgs(@Vector(3, u513), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6899 try testArgs(@Vector(3, u1023), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6900 try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6901 try testArgs(@Vector(3, u1025), @Vector(3, u224), .{ 0, 1, 1 << 223 });
6902
6903 try testArgs(@Vector(3, i7), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6904 try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6905 try testArgs(@Vector(3, i9), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6906 try testArgs(@Vector(3, i15), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6907 try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6908 try testArgs(@Vector(3, i17), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6909 try testArgs(@Vector(3, i31), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6910 try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6911 try testArgs(@Vector(3, i33), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6912 try testArgs(@Vector(3, i63), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6913 try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6914 try testArgs(@Vector(3, i65), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6915 try testArgs(@Vector(3, i127), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6916 try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6917 try testArgs(@Vector(3, i129), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6918 try testArgs(@Vector(3, i255), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6919 try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6920 try testArgs(@Vector(3, i257), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6921 try testArgs(@Vector(3, i511), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6922 try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6923 try testArgs(@Vector(3, i513), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6924 try testArgs(@Vector(3, i1023), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6925 try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6926 try testArgs(@Vector(3, i1025), @Vector(3, i225), .{ -1 << 224, -1, 0 });
6927 try testArgs(@Vector(3, u7), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6928 try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6929 try testArgs(@Vector(3, u9), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6930 try testArgs(@Vector(3, u15), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6931 try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6932 try testArgs(@Vector(3, u17), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6933 try testArgs(@Vector(3, u31), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6934 try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6935 try testArgs(@Vector(3, u33), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6936 try testArgs(@Vector(3, u63), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6937 try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6938 try testArgs(@Vector(3, u65), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6939 try testArgs(@Vector(3, u127), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6940 try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6941 try testArgs(@Vector(3, u129), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6942 try testArgs(@Vector(3, u255), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6943 try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6944 try testArgs(@Vector(3, u257), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6945 try testArgs(@Vector(3, u511), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6946 try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6947 try testArgs(@Vector(3, u513), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6948 try testArgs(@Vector(3, u1023), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6949 try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6950 try testArgs(@Vector(3, u1025), @Vector(3, u225), .{ 0, 1, 1 << 224 });
6951
6952 try testArgs(@Vector(3, i7), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6953 try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6954 try testArgs(@Vector(3, i9), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6955 try testArgs(@Vector(3, i15), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6956 try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6957 try testArgs(@Vector(3, i17), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6958 try testArgs(@Vector(3, i31), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6959 try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6960 try testArgs(@Vector(3, i33), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6961 try testArgs(@Vector(3, i63), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6962 try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6963 try testArgs(@Vector(3, i65), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6964 try testArgs(@Vector(3, i127), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6965 try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6966 try testArgs(@Vector(3, i129), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6967 try testArgs(@Vector(3, i255), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6968 try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6969 try testArgs(@Vector(3, i257), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6970 try testArgs(@Vector(3, i511), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6971 try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6972 try testArgs(@Vector(3, i513), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6973 try testArgs(@Vector(3, i1023), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6974 try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6975 try testArgs(@Vector(3, i1025), @Vector(3, i255), .{ -1 << 254, -1, 0 });
6976 try testArgs(@Vector(3, u7), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6977 try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6978 try testArgs(@Vector(3, u9), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6979 try testArgs(@Vector(3, u15), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6980 try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6981 try testArgs(@Vector(3, u17), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6982 try testArgs(@Vector(3, u31), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6983 try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6984 try testArgs(@Vector(3, u33), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6985 try testArgs(@Vector(3, u63), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6986 try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6987 try testArgs(@Vector(3, u65), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6988 try testArgs(@Vector(3, u127), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6989 try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6990 try testArgs(@Vector(3, u129), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6991 try testArgs(@Vector(3, u255), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6992 try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6993 try testArgs(@Vector(3, u257), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6994 try testArgs(@Vector(3, u511), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6995 try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6996 try testArgs(@Vector(3, u513), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6997 try testArgs(@Vector(3, u1023), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6998 try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
6999 try testArgs(@Vector(3, u1025), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7000
7001 try testArgs(@Vector(3, i7), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7002 try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7003 try testArgs(@Vector(3, i9), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7004 try testArgs(@Vector(3, i15), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7005 try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7006 try testArgs(@Vector(3, i17), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7007 try testArgs(@Vector(3, i31), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7008 try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7009 try testArgs(@Vector(3, i33), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7010 try testArgs(@Vector(3, i63), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7011 try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7012 try testArgs(@Vector(3, i65), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7013 try testArgs(@Vector(3, i127), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7014 try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7015 try testArgs(@Vector(3, i129), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7016 try testArgs(@Vector(3, i255), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7017 try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7018 try testArgs(@Vector(3, i257), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7019 try testArgs(@Vector(3, i511), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7020 try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7021 try testArgs(@Vector(3, i513), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7022 try testArgs(@Vector(3, i1023), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7023 try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7024 try testArgs(@Vector(3, i1025), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7025 try testArgs(@Vector(3, u7), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7026 try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7027 try testArgs(@Vector(3, u9), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7028 try testArgs(@Vector(3, u15), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7029 try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7030 try testArgs(@Vector(3, u17), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7031 try testArgs(@Vector(3, u31), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7032 try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7033 try testArgs(@Vector(3, u33), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7034 try testArgs(@Vector(3, u63), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7035 try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7036 try testArgs(@Vector(3, u65), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7037 try testArgs(@Vector(3, u127), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7038 try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7039 try testArgs(@Vector(3, u129), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7040 try testArgs(@Vector(3, u255), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7041 try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7042 try testArgs(@Vector(3, u257), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7043 try testArgs(@Vector(3, u511), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7044 try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7045 try testArgs(@Vector(3, u513), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7046 try testArgs(@Vector(3, u1023), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7047 try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7048 try testArgs(@Vector(3, u1025), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7049
7050 try testArgs(@Vector(3, i7), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7051 try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7052 try testArgs(@Vector(3, i9), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7053 try testArgs(@Vector(3, i15), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7054 try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7055 try testArgs(@Vector(3, i17), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7056 try testArgs(@Vector(3, i31), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7057 try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7058 try testArgs(@Vector(3, i33), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7059 try testArgs(@Vector(3, i63), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7060 try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7061 try testArgs(@Vector(3, i65), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7062 try testArgs(@Vector(3, i127), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7063 try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7064 try testArgs(@Vector(3, i129), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7065 try testArgs(@Vector(3, i255), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7066 try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7067 try testArgs(@Vector(3, i257), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7068 try testArgs(@Vector(3, i511), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7069 try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7070 try testArgs(@Vector(3, i513), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7071 try testArgs(@Vector(3, i1023), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7072 try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7073 try testArgs(@Vector(3, i1025), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7074 try testArgs(@Vector(3, u7), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7075 try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7076 try testArgs(@Vector(3, u9), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7077 try testArgs(@Vector(3, u15), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7078 try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7079 try testArgs(@Vector(3, u17), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7080 try testArgs(@Vector(3, u31), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7081 try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7082 try testArgs(@Vector(3, u33), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7083 try testArgs(@Vector(3, u63), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7084 try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7085 try testArgs(@Vector(3, u65), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7086 try testArgs(@Vector(3, u127), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7087 try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7088 try testArgs(@Vector(3, u129), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7089 try testArgs(@Vector(3, u255), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7090 try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7091 try testArgs(@Vector(3, u257), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7092 try testArgs(@Vector(3, u511), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7093 try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7094 try testArgs(@Vector(3, u513), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7095 try testArgs(@Vector(3, u1023), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7096 try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7097 try testArgs(@Vector(3, u1025), @Vector(3, u257), .{ 0, 1, 1 << 256 });
7098
7099 try testArgs(@Vector(3, i7), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7100 try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7101 try testArgs(@Vector(3, i9), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7102 try testArgs(@Vector(3, i15), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7103 try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7104 try testArgs(@Vector(3, i17), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7105 try testArgs(@Vector(3, i31), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7106 try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7107 try testArgs(@Vector(3, i33), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7108 try testArgs(@Vector(3, i63), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7109 try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7110 try testArgs(@Vector(3, i65), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7111 try testArgs(@Vector(3, i127), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7112 try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7113 try testArgs(@Vector(3, i129), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7114 try testArgs(@Vector(3, i255), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7115 try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7116 try testArgs(@Vector(3, i257), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7117 try testArgs(@Vector(3, i511), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7118 try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7119 try testArgs(@Vector(3, i513), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7120 try testArgs(@Vector(3, i1023), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7121 try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7122 try testArgs(@Vector(3, i1025), @Vector(3, i511), .{ -1 << 510, -1, 0 });
7123 try testArgs(@Vector(3, u7), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7124 try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7125 try testArgs(@Vector(3, u9), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7126 try testArgs(@Vector(3, u15), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7127 try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7128 try testArgs(@Vector(3, u17), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7129 try testArgs(@Vector(3, u31), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7130 try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7131 try testArgs(@Vector(3, u33), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7132 try testArgs(@Vector(3, u63), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7133 try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7134 try testArgs(@Vector(3, u65), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7135 try testArgs(@Vector(3, u127), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7136 try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7137 try testArgs(@Vector(3, u129), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7138 try testArgs(@Vector(3, u255), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7139 try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7140 try testArgs(@Vector(3, u257), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7141 try testArgs(@Vector(3, u511), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7142 try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7143 try testArgs(@Vector(3, u513), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7144 try testArgs(@Vector(3, u1023), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7145 try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7146 try testArgs(@Vector(3, u1025), @Vector(3, u511), .{ 0, 1, 1 << 510 });
7147
7148 try testArgs(@Vector(3, i7), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7149 try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7150 try testArgs(@Vector(3, i9), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7151 try testArgs(@Vector(3, i15), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7152 try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7153 try testArgs(@Vector(3, i17), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7154 try testArgs(@Vector(3, i31), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7155 try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7156 try testArgs(@Vector(3, i33), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7157 try testArgs(@Vector(3, i63), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7158 try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7159 try testArgs(@Vector(3, i65), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7160 try testArgs(@Vector(3, i127), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7161 try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7162 try testArgs(@Vector(3, i129), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7163 try testArgs(@Vector(3, i255), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7164 try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7165 try testArgs(@Vector(3, i257), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7166 try testArgs(@Vector(3, i511), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7167 try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7168 try testArgs(@Vector(3, i513), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7169 try testArgs(@Vector(3, i1023), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7170 try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7171 try testArgs(@Vector(3, i1025), @Vector(3, i512), .{ -1 << 511, -1, 0 });
7172 try testArgs(@Vector(3, u7), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7173 try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7174 try testArgs(@Vector(3, u9), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7175 try testArgs(@Vector(3, u15), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7176 try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7177 try testArgs(@Vector(3, u17), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7178 try testArgs(@Vector(3, u31), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7179 try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7180 try testArgs(@Vector(3, u33), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7181 try testArgs(@Vector(3, u63), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7182 try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7183 try testArgs(@Vector(3, u65), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7184 try testArgs(@Vector(3, u127), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7185 try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7186 try testArgs(@Vector(3, u129), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7187 try testArgs(@Vector(3, u255), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7188 try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7189 try testArgs(@Vector(3, u257), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7190 try testArgs(@Vector(3, u511), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7191 try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7192 try testArgs(@Vector(3, u513), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7193 try testArgs(@Vector(3, u1023), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7194 try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7195 try testArgs(@Vector(3, u1025), @Vector(3, u512), .{ 0, 1, 1 << 511 });
7196
7197 try testArgs(@Vector(3, i7), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7198 try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7199 try testArgs(@Vector(3, i9), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7200 try testArgs(@Vector(3, i15), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7201 try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7202 try testArgs(@Vector(3, i17), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7203 try testArgs(@Vector(3, i31), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7204 try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7205 try testArgs(@Vector(3, i33), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7206 try testArgs(@Vector(3, i63), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7207 try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7208 try testArgs(@Vector(3, i65), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7209 try testArgs(@Vector(3, i127), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7210 try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7211 try testArgs(@Vector(3, i129), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7212 try testArgs(@Vector(3, i255), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7213 try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7214 try testArgs(@Vector(3, i257), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7215 try testArgs(@Vector(3, i511), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7216 try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7217 try testArgs(@Vector(3, i513), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7218 try testArgs(@Vector(3, i1023), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7219 try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7220 try testArgs(@Vector(3, i1025), @Vector(3, i513), .{ -1 << 512, -1, 0 });
7221 try testArgs(@Vector(3, u7), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7222 try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7223 try testArgs(@Vector(3, u9), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7224 try testArgs(@Vector(3, u15), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7225 try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7226 try testArgs(@Vector(3, u17), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7227 try testArgs(@Vector(3, u31), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7228 try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7229 try testArgs(@Vector(3, u33), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7230 try testArgs(@Vector(3, u63), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7231 try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7232 try testArgs(@Vector(3, u65), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7233 try testArgs(@Vector(3, u127), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7234 try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7235 try testArgs(@Vector(3, u129), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7236 try testArgs(@Vector(3, u255), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7237 try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7238 try testArgs(@Vector(3, u257), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7239 try testArgs(@Vector(3, u511), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7240 try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7241 try testArgs(@Vector(3, u513), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7242 try testArgs(@Vector(3, u1023), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7243 try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7244 try testArgs(@Vector(3, u1025), @Vector(3, u513), .{ 0, 1, 1 << 512 });
7245
7246 try testArgs(@Vector(3, i7), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7247 try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7248 try testArgs(@Vector(3, i9), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7249 try testArgs(@Vector(3, i15), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7250 try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7251 try testArgs(@Vector(3, i17), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7252 try testArgs(@Vector(3, i31), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7253 try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7254 try testArgs(@Vector(3, i33), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7255 try testArgs(@Vector(3, i63), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7256 try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7257 try testArgs(@Vector(3, i65), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7258 try testArgs(@Vector(3, i127), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7259 try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7260 try testArgs(@Vector(3, i129), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7261 try testArgs(@Vector(3, i255), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7262 try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7263 try testArgs(@Vector(3, i257), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7264 try testArgs(@Vector(3, i511), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7265 try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7266 try testArgs(@Vector(3, i513), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7267 try testArgs(@Vector(3, i1023), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7268 try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7269 try testArgs(@Vector(3, i1025), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
7270 try testArgs(@Vector(3, u7), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7271 try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7272 try testArgs(@Vector(3, u9), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7273 try testArgs(@Vector(3, u15), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7274 try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7275 try testArgs(@Vector(3, u17), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7276 try testArgs(@Vector(3, u31), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7277 try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7278 try testArgs(@Vector(3, u33), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7279 try testArgs(@Vector(3, u63), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7280 try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7281 try testArgs(@Vector(3, u65), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7282 try testArgs(@Vector(3, u127), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7283 try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7284 try testArgs(@Vector(3, u129), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7285 try testArgs(@Vector(3, u255), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7286 try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7287 try testArgs(@Vector(3, u257), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7288 try testArgs(@Vector(3, u511), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7289 try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7290 try testArgs(@Vector(3, u513), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7291 try testArgs(@Vector(3, u1023), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7292 try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7293 try testArgs(@Vector(3, u1025), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
7294
7295 try testArgs(@Vector(3, i7), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7296 try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7297 try testArgs(@Vector(3, i9), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7298 try testArgs(@Vector(3, i15), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7299 try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7300 try testArgs(@Vector(3, i17), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7301 try testArgs(@Vector(3, i31), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7302 try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7303 try testArgs(@Vector(3, i33), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7304 try testArgs(@Vector(3, i63), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7305 try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7306 try testArgs(@Vector(3, i65), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7307 try testArgs(@Vector(3, i127), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7308 try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7309 try testArgs(@Vector(3, i129), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7310 try testArgs(@Vector(3, i255), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7311 try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7312 try testArgs(@Vector(3, i257), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7313 try testArgs(@Vector(3, i511), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7314 try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7315 try testArgs(@Vector(3, i513), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7316 try testArgs(@Vector(3, i1023), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7317 try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7318 try testArgs(@Vector(3, i1025), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
7319 try testArgs(@Vector(3, u7), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7320 try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7321 try testArgs(@Vector(3, u9), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7322 try testArgs(@Vector(3, u15), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7323 try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7324 try testArgs(@Vector(3, u17), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7325 try testArgs(@Vector(3, u31), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7326 try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7327 try testArgs(@Vector(3, u33), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7328 try testArgs(@Vector(3, u63), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7329 try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7330 try testArgs(@Vector(3, u65), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7331 try testArgs(@Vector(3, u127), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7332 try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7333 try testArgs(@Vector(3, u129), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7334 try testArgs(@Vector(3, u255), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7335 try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7336 try testArgs(@Vector(3, u257), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7337 try testArgs(@Vector(3, u511), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7338 try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7339 try testArgs(@Vector(3, u513), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7340 try testArgs(@Vector(3, u1023), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7341 try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7342 try testArgs(@Vector(3, u1025), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
7343
7344 try testArgs(@Vector(3, i7), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7345 try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7346 try testArgs(@Vector(3, i9), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7347 try testArgs(@Vector(3, i15), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7348 try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7349 try testArgs(@Vector(3, i17), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7350 try testArgs(@Vector(3, i31), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7351 try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7352 try testArgs(@Vector(3, i33), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7353 try testArgs(@Vector(3, i63), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7354 try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7355 try testArgs(@Vector(3, i65), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7356 try testArgs(@Vector(3, i127), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7357 try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7358 try testArgs(@Vector(3, i129), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7359 try testArgs(@Vector(3, i255), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7360 try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7361 try testArgs(@Vector(3, i257), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7362 try testArgs(@Vector(3, i511), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7363 try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7364 try testArgs(@Vector(3, i513), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7365 try testArgs(@Vector(3, i1023), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7366 try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7367 try testArgs(@Vector(3, i1025), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
7368 try testArgs(@Vector(3, u7), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7369 try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7370 try testArgs(@Vector(3, u9), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7371 try testArgs(@Vector(3, u15), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7372 try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7373 try testArgs(@Vector(3, u17), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7374 try testArgs(@Vector(3, u31), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7375 try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7376 try testArgs(@Vector(3, u33), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7377 try testArgs(@Vector(3, u63), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7378 try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7379 try testArgs(@Vector(3, u65), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7380 try testArgs(@Vector(3, u127), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7381 try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7382 try testArgs(@Vector(3, u129), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7383 try testArgs(@Vector(3, u255), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7384 try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7385 try testArgs(@Vector(3, u257), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7386 try testArgs(@Vector(3, u511), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7387 try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7388 try testArgs(@Vector(3, u513), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7389 try testArgs(@Vector(3, u1023), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7390 try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7391 try testArgs(@Vector(3, u1025), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
7392 }
7393 fn testIntVectors() !void {
7394 try testSameSignednessIntVectors();
7395
7396 try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1});
7397 try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1});
7398 try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1});
7399 try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1});
7400 try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1});
7401 try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1});
7402 try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1});
7403 try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1});
7404 try testArgs(@Vector(1, i8), @Vector(1, u1), .{1});
7405 try testArgs(@Vector(1, i16), @Vector(1, u1), .{1});
7406 try testArgs(@Vector(1, i32), @Vector(1, u1), .{1});
7407 try testArgs(@Vector(1, i64), @Vector(1, u1), .{1});
7408 try testArgs(@Vector(1, i128), @Vector(1, u1), .{1});
7409 try testArgs(@Vector(1, i256), @Vector(1, u1), .{1});
7410 try testArgs(@Vector(1, i512), @Vector(1, u1), .{1});
7411 try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1});
7412
7413 try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 });
7414 try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 });
7415 try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 });
7416 try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 });
7417 try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 });
7418 try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 });
7419 try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 });
7420 try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 });
7421 try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 });
7422 try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 });
7423 try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 });
7424 try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 });
7425 try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 });
7426 try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 });
7427 try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 });
7428 try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 });
7429
7430 try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7431 try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7432 try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7433 try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7434 try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7435 try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7436 try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7437 try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 });
7438 try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7439 try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7440 try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7441 try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7442 try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7443 try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7444 try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7445 try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 });
7446
7447 try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7448 try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7449 try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7450 try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7451 try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7452 try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7453 try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7454 try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 });
7455 try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7456 try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7457 try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7458 try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7459 try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7460 try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7461 try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7462 try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 });
7463
7464 try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7465 try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7466 try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7467 try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7468 try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7469 try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7470 try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7471 try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 });
7472 try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7473 try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7474 try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7475 try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7476 try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7477 try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7478 try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7479 try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 });
7480
7481 try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7482 try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7483 try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7484 try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7485 try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7486 try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7487 try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7488 try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 });
7489 try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7490 try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7491 try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7492 try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7493 try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7494 try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7495 try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7496 try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 });
7497
7498 try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7499 try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7500 try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7501 try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7502 try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7503 try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7504 try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7505 try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 });
7506 try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7507 try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7508 try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7509 try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7510 try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7511 try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7512 try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7513 try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 });
7514
7515 try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7516 try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7517 try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7518 try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7519 try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7520 try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7521 try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7522 try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 });
7523 try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7524 try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7525 try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7526 try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7527 try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7528 try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7529 try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7530 try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 });
7531
7532 try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7533 try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7534 try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7535 try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7536 try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7537 try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7538 try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7539 try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 });
7540 try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7541 try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7542 try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7543 try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7544 try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7545 try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7546 try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7547 try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 });
7548
7549 try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7550 try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7551 try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7552 try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7553 try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7554 try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7555 try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7556 try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 });
7557 try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7558 try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7559 try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7560 try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7561 try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7562 try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7563 try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7564 try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 });
7565
7566 try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7567 try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7568 try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7569 try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7570 try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7571 try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7572 try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7573 try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 });
7574 try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7575 try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7576 try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7577 try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7578 try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7579 try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7580 try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7581 try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 });
7582
7583 try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7584 try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7585 try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7586 try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7587 try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7588 try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7589 try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7590 try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 });
7591 try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7592 try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7593 try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7594 try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7595 try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7596 try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7597 try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7598 try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 });
7599
7600 try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7601 try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7602 try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7603 try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7604 try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7605 try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7606 try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7607 try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 });
7608 try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7609 try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7610 try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7611 try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7612 try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7613 try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7614 try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7615 try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 });
7616
7617 try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7618 try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7619 try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7620 try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7621 try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7622 try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7623 try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7624 try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 });
7625 try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7626 try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7627 try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7628 try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7629 try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7630 try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7631 try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7632 try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 });
7633
7634 try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7635 try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7636 try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7637 try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7638 try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7639 try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7640 try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7641 try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 });
7642 try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7643 try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7644 try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7645 try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7646 try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7647 try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7648 try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7649 try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 });
7650
7651 try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7652 try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7653 try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7654 try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7655 try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7656 try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7657 try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7658 try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 });
7659 try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7660 try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7661 try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7662 try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7663 try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7664 try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7665 try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7666 try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 });
7667
7668 try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7669 try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7670 try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7671 try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7672 try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7673 try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7674 try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7675 try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 });
7676 try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7677 try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7678 try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7679 try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7680 try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7681 try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7682 try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7683 try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 });
7684
7685 try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7686 try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7687 try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7688 try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7689 try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7690 try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7691 try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7692 try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 });
7693 try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7694 try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7695 try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7696 try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7697 try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7698 try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7699 try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7700 try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 });
7701
7702 try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7703 try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7704 try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7705 try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7706 try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7707 try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7708 try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7709 try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 });
7710 try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7711 try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7712 try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7713 try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7714 try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7715 try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7716 try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7717 try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 });
7718
7719 try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7720 try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7721 try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7722 try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7723 try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7724 try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7725 try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7726 try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 });
7727 try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7728 try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7729 try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7730 try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7731 try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7732 try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7733 try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7734 try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 });
7735
7736 try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7737 try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7738 try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7739 try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7740 try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7741 try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7742 try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7743 try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 });
7744 try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7745 try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7746 try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7747 try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7748 try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7749 try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7750 try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7751 try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 });
7752
7753 try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7754 try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7755 try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7756 try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7757 try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7758 try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7759 try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7760 try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 });
7761 try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7762 try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7763 try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7764 try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7765 try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7766 try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7767 try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7768 try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 });
7769
7770 try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7771 try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7772 try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7773 try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7774 try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7775 try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7776 try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7777 try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 });
7778 try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7779 try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7780 try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7781 try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7782 try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7783 try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7784 try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7785 try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 });
7786
7787 try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7788 try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7789 try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7790 try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7791 try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7792 try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7793 try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7794 try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 });
7795 try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7796 try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7797 try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7798 try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7799 try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7800 try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7801 try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7802 try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 });
7803
7804 try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7805 try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7806 try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7807 try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7808 try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7809 try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7810 try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7811 try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 });
7812 try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7813 try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7814 try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7815 try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7816 try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7817 try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7818 try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7819 try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 });
7820
7821 try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7822 try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7823 try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7824 try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7825 try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7826 try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7827 try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7828 try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 });
7829 try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7830 try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7831 try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7832 try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7833 try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7834 try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7835 try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7836 try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 });
7837
7838 try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7839 try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7840 try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7841 try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7842 try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7843 try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7844 try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7845 try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 });
7846 try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7847 try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7848 try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7849 try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7850 try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7851 try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7852 try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7853 try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 });
7854
7855 try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7856 try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7857 try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7858 try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7859 try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7860 try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7861 try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7862 try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 });
7863 try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7864 try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7865 try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7866 try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7867 try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7868 try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7869 try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7870 try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 });
7871
7872 try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7873 try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7874 try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7875 try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7876 try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7877 try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7878 try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7879 try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 });
7880 try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7881 try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7882 try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7883 try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7884 try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7885 try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7886 try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7887 try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 });
7888
7889 try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7890 try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7891 try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7892 try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7893 try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7894 try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7895 try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7896 try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 });
7897 try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7898 try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7899 try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7900 try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7901 try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7902 try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7903 try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7904 try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 });
7905
7906 try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7907 try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7908 try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7909 try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7910 try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7911 try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7912 try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7913 try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 });
7914 try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7915 try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7916 try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7917 try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7918 try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7919 try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7920 try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7921 try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 });
7922
7923 try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7924 try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7925 try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7926 try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7927 try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7928 try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7929 try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7930 try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 });
7931 try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7932 try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7933 try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7934 try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7935 try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7936 try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7937 try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7938 try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 });
7939
7940 try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7941 try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7942 try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7943 try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7944 try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7945 try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7946 try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7947 try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 });
7948 try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7949 try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7950 try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7951 try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7952 try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7953 try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7954 try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7955 try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 });
7956
7957 try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7958 try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7959 try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7960 try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7961 try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7962 try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7963 try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7964 try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 });
7965 try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7966 try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7967 try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7968 try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7969 try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7970 try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7971 try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7972 try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 });
7973
7974 try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7975 try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7976 try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7977 try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7978 try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7979 try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7980 try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7981 try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 });
7982 try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7983 try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7984 try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7985 try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7986 try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7987 try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7988 try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7989 try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 });
7990
7991 try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7992 try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7993 try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7994 try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7995 try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7996 try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7997 try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7998 try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 });
7999 try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8000 try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8001 try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8002 try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8003 try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8004 try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8005 try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8006 try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 });
8007
8008 try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8009 try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8010 try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8011 try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8012 try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8013 try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8014 try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8015 try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 });
8016 try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8017 try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8018 try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8019 try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8020 try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8021 try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8022 try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8023 try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 });
8024
8025 try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8026 try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8027 try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8028 try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8029 try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8030 try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8031 try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8032 try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 });
8033 try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8034 try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8035 try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8036 try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8037 try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8038 try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8039 try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8040 try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 });
8041
8042 try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8043 try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8044 try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8045 try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8046 try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8047 try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8048 try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8049 try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 });
8050 try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8051 try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8052 try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8053 try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8054 try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8055 try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8056 try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8057 try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 });
8058
8059 try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8060 try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8061 try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8062 try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8063 try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8064 try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8065 try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8066 try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 });
8067 try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8068 try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8069 try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8070 try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8071 try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8072 try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8073 try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8074 try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 });
8075
8076 try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8077 try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8078 try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8079 try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8080 try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8081 try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8082 try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8083 try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 });
8084 try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8085 try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8086 try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8087 try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8088 try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8089 try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8090 try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8091 try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 });
8092
8093 try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8094 try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8095 try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8096 try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8097 try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8098 try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8099 try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8100 try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 });
8101 try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8102 try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8103 try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8104 try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8105 try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8106 try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8107 try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8108 try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 });
8109 }
8110 fn testFloatVectors() !void {
8111 @setEvalBranchQuota(6_700);
8112
8113 try testArgs(@Vector(1, f16), @Vector(1, f16), .{
8114 1e0,
8115 });
8116 try testArgs(@Vector(2, f16), @Vector(2, f16), .{
8117 -inf(f16), -1e-2,
8118 });
8119 try testArgs(@Vector(4, f16), @Vector(4, f16), .{
8120 -1e2, 1e-1, fmax(f16), 1e-2,
8121 });
8122 try testArgs(@Vector(8, f16), @Vector(8, f16), .{
8123 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
8124 });
8125 try testArgs(@Vector(16, f16), @Vector(16, f16), .{
8126 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
8127 });
8128 try testArgs(@Vector(32, f16), @Vector(32, f16), .{
8129 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
8130 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
8131 });
8132
8133 try testArgs(@Vector(1, f32), @Vector(1, f16), .{
8134 1e0,
8135 });
8136 try testArgs(@Vector(2, f32), @Vector(2, f16), .{
8137 -inf(f16), -1e-2,
8138 });
8139 try testArgs(@Vector(4, f32), @Vector(4, f16), .{
8140 -1e2, 1e-1, fmax(f16), 1e-2,
8141 });
8142 try testArgs(@Vector(8, f32), @Vector(8, f16), .{
8143 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
8144 });
8145 try testArgs(@Vector(16, f32), @Vector(16, f16), .{
8146 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
8147 });
8148 try testArgs(@Vector(32, f32), @Vector(32, f16), .{
8149 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
8150 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
8151 });
8152
8153 try testArgs(@Vector(1, f64), @Vector(1, f16), .{
8154 1e0,
8155 });
8156 try testArgs(@Vector(2, f64), @Vector(2, f16), .{
8157 -inf(f16), -1e-2,
8158 });
8159 try testArgs(@Vector(4, f64), @Vector(4, f16), .{
8160 -1e2, 1e-1, fmax(f16), 1e-2,
8161 });
8162 try testArgs(@Vector(8, f64), @Vector(8, f16), .{
8163 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
8164 });
8165 try testArgs(@Vector(16, f64), @Vector(16, f16), .{
8166 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
8167 });
8168 try testArgs(@Vector(32, f64), @Vector(32, f16), .{
8169 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
8170 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
8171 });
8172
8173 try testArgs(@Vector(1, f80), @Vector(1, f16), .{
8174 1e0,
8175 });
8176 try testArgs(@Vector(2, f80), @Vector(2, f16), .{
8177 -inf(f16), -1e-2,
8178 });
8179 try testArgs(@Vector(4, f80), @Vector(4, f16), .{
8180 -1e2, 1e-1, fmax(f16), 1e-2,
8181 });
8182 try testArgs(@Vector(8, f80), @Vector(8, f16), .{
8183 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
8184 });
8185 try testArgs(@Vector(16, f80), @Vector(16, f16), .{
8186 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
8187 });
8188 try testArgs(@Vector(32, f80), @Vector(32, f16), .{
8189 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
8190 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
8191 });
8192
8193 try testArgs(@Vector(1, f128), @Vector(1, f16), .{
8194 1e0,
8195 });
8196 try testArgs(@Vector(2, f128), @Vector(2, f16), .{
8197 -inf(f16), -1e-2,
8198 });
8199 try testArgs(@Vector(4, f128), @Vector(4, f16), .{
8200 -1e2, 1e-1, fmax(f16), 1e-2,
8201 });
8202 try testArgs(@Vector(8, f128), @Vector(8, f16), .{
8203 -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4,
8204 });
8205 try testArgs(@Vector(16, f128), @Vector(16, f16), .{
8206 -fmax(f16), -1e0, 1e-4, 1e2, -fmin(f16), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f16), -tmin(f16), -1e-4, inf(f16), 1e-3, -1e-1,
8207 });
8208 try testArgs(@Vector(32, f128), @Vector(32, f16), .{
8209 -1e3, -tmin(f16), inf(f16), -1e4, -0.0, fmax(f16), 1e2, 1e4, -nan(f16), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f16), -1e0,
8210 1e3, -1e-3, -fmin(f16), -inf(f16), 1e-3, tmin(f16), fmin(f16), 1e1, 1e-4, -fmax(f16), -1e2, 1e-2, -1e-2, 1e3, inf(f16), -fmin(f16),
8211 });
8212
8213 try testArgs(@Vector(1, f16), @Vector(1, f32), .{
8214 1e0,
8215 });
8216 try testArgs(@Vector(2, f16), @Vector(2, f32), .{
8217 -inf(f32), -1e-2,
8218 });
8219 try testArgs(@Vector(4, f16), @Vector(4, f32), .{
8220 -1e2, 1e-1, fmax(f32), 1e-2,
8221 });
8222 try testArgs(@Vector(8, f16), @Vector(8, f32), .{
8223 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
8224 });
8225 try testArgs(@Vector(16, f16), @Vector(16, f32), .{
8226 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
8227 });
8228 try testArgs(@Vector(32, f16), @Vector(32, f32), .{
8229 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
8230 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
8231 });
8232
8233 try testArgs(@Vector(1, f32), @Vector(1, f32), .{
8234 1e0,
8235 });
8236 try testArgs(@Vector(2, f32), @Vector(2, f32), .{
8237 -inf(f32), -1e-2,
8238 });
8239 try testArgs(@Vector(4, f32), @Vector(4, f32), .{
8240 -1e2, 1e-1, fmax(f32), 1e-2,
8241 });
8242 try testArgs(@Vector(8, f32), @Vector(8, f32), .{
8243 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
8244 });
8245 try testArgs(@Vector(16, f32), @Vector(16, f32), .{
8246 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
8247 });
8248 try testArgs(@Vector(32, f32), @Vector(32, f32), .{
8249 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
8250 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
8251 });
8252
8253 try testArgs(@Vector(1, f64), @Vector(1, f32), .{
8254 1e0,
8255 });
8256 try testArgs(@Vector(2, f64), @Vector(2, f32), .{
8257 -inf(f32), -1e-2,
8258 });
8259 try testArgs(@Vector(4, f64), @Vector(4, f32), .{
8260 -1e2, 1e-1, fmax(f32), 1e-2,
8261 });
8262 try testArgs(@Vector(8, f64), @Vector(8, f32), .{
8263 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
8264 });
8265 try testArgs(@Vector(16, f64), @Vector(16, f32), .{
8266 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
8267 });
8268 try testArgs(@Vector(32, f64), @Vector(32, f32), .{
8269 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
8270 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
8271 });
8272
8273 try testArgs(@Vector(1, f80), @Vector(1, f32), .{
8274 1e0,
8275 });
8276 try testArgs(@Vector(2, f80), @Vector(2, f32), .{
8277 -inf(f32), -1e-2,
8278 });
8279 try testArgs(@Vector(4, f80), @Vector(4, f32), .{
8280 -1e2, 1e-1, fmax(f32), 1e-2,
8281 });
8282 try testArgs(@Vector(8, f80), @Vector(8, f32), .{
8283 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
8284 });
8285 try testArgs(@Vector(16, f80), @Vector(16, f32), .{
8286 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
8287 });
8288 try testArgs(@Vector(32, f80), @Vector(32, f32), .{
8289 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
8290 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
8291 });
8292
8293 try testArgs(@Vector(1, f128), @Vector(1, f32), .{
8294 1e0,
8295 });
8296 try testArgs(@Vector(2, f128), @Vector(2, f32), .{
8297 -inf(f32), -1e-2,
8298 });
8299 try testArgs(@Vector(4, f128), @Vector(4, f32), .{
8300 -1e2, 1e-1, fmax(f32), 1e-2,
8301 });
8302 try testArgs(@Vector(8, f128), @Vector(8, f32), .{
8303 -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4,
8304 });
8305 try testArgs(@Vector(16, f128), @Vector(16, f32), .{
8306 -fmax(f32), -1e0, 1e-4, 1e2, -fmin(f32), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f32), -tmin(f32), -1e-4, inf(f32), 1e-3, -1e-1,
8307 });
8308 try testArgs(@Vector(32, f128), @Vector(32, f32), .{
8309 -1e3, -tmin(f32), inf(f32), -1e4, -0.0, fmax(f32), 1e2, 1e4, -nan(f32), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f32), -1e0,
8310 1e3, -1e-3, -fmin(f32), -inf(f32), 1e-3, tmin(f32), fmin(f32), 1e1, 1e-4, -fmax(f32), -1e2, 1e-2, -1e-2, 1e3, inf(f32), -fmin(f32),
8311 });
8312
8313 try testArgs(@Vector(1, f16), @Vector(1, f64), .{
8314 1e0,
8315 });
8316 try testArgs(@Vector(2, f16), @Vector(2, f64), .{
8317 -inf(f64), -1e-2,
8318 });
8319 try testArgs(@Vector(4, f16), @Vector(4, f64), .{
8320 -1e2, 1e-1, fmax(f64), 1e-2,
8321 });
8322 try testArgs(@Vector(8, f16), @Vector(8, f64), .{
8323 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
8324 });
8325 try testArgs(@Vector(16, f16), @Vector(16, f64), .{
8326 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
8327 });
8328 try testArgs(@Vector(32, f16), @Vector(32, f64), .{
8329 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
8330 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
8331 });
8332
8333 try testArgs(@Vector(1, f32), @Vector(1, f64), .{
8334 1e0,
8335 });
8336 try testArgs(@Vector(2, f32), @Vector(2, f64), .{
8337 -inf(f64), -1e-2,
8338 });
8339 try testArgs(@Vector(4, f32), @Vector(4, f64), .{
8340 -1e2, 1e-1, fmax(f64), 1e-2,
8341 });
8342 try testArgs(@Vector(8, f32), @Vector(8, f64), .{
8343 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
8344 });
8345 try testArgs(@Vector(16, f32), @Vector(16, f64), .{
8346 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
8347 });
8348 try testArgs(@Vector(32, f32), @Vector(32, f64), .{
8349 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
8350 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
8351 });
8352
8353 try testArgs(@Vector(1, f64), @Vector(1, f64), .{
8354 1e0,
8355 });
8356 try testArgs(@Vector(2, f64), @Vector(2, f64), .{
8357 -inf(f64), -1e-2,
8358 });
8359 try testArgs(@Vector(4, f64), @Vector(4, f64), .{
8360 -1e2, 1e-1, fmax(f64), 1e-2,
8361 });
8362 try testArgs(@Vector(8, f64), @Vector(8, f64), .{
8363 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
8364 });
8365 try testArgs(@Vector(16, f64), @Vector(16, f64), .{
8366 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
8367 });
8368 try testArgs(@Vector(32, f64), @Vector(32, f64), .{
8369 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
8370 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
8371 });
8372
8373 try testArgs(@Vector(1, f80), @Vector(1, f64), .{
8374 1e0,
8375 });
8376 try testArgs(@Vector(2, f80), @Vector(2, f64), .{
8377 -inf(f64), -1e-2,
8378 });
8379 try testArgs(@Vector(4, f80), @Vector(4, f64), .{
8380 -1e2, 1e-1, fmax(f64), 1e-2,
8381 });
8382 try testArgs(@Vector(8, f80), @Vector(8, f64), .{
8383 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
8384 });
8385 try testArgs(@Vector(16, f80), @Vector(16, f64), .{
8386 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
8387 });
8388 try testArgs(@Vector(32, f80), @Vector(32, f64), .{
8389 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
8390 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
8391 });
8392
8393 try testArgs(@Vector(1, f128), @Vector(1, f64), .{
8394 1e0,
8395 });
8396 try testArgs(@Vector(2, f128), @Vector(2, f64), .{
8397 -inf(f64), -1e-2,
8398 });
8399 try testArgs(@Vector(4, f128), @Vector(4, f64), .{
8400 -1e2, 1e-1, fmax(f64), 1e-2,
8401 });
8402 try testArgs(@Vector(8, f128), @Vector(8, f64), .{
8403 -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4,
8404 });
8405 try testArgs(@Vector(16, f128), @Vector(16, f64), .{
8406 -fmax(f64), -1e0, 1e-4, 1e2, -fmin(f64), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f64), -tmin(f64), -1e-4, inf(f64), 1e-3, -1e-1,
8407 });
8408 try testArgs(@Vector(32, f128), @Vector(32, f64), .{
8409 -1e3, -tmin(f64), inf(f64), -1e4, -0.0, fmax(f64), 1e2, 1e4, -nan(f64), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f64), -1e0,
8410 1e3, -1e-3, -fmin(f64), -inf(f64), 1e-3, tmin(f64), fmin(f64), 1e1, 1e-4, -fmax(f64), -1e2, 1e-2, -1e-2, 1e3, inf(f64), -fmin(f64),
8411 });
8412
8413 try testArgs(@Vector(1, f16), @Vector(1, f80), .{
8414 1e0,
8415 });
8416 try testArgs(@Vector(2, f16), @Vector(2, f80), .{
8417 -inf(f80), -1e-2,
8418 });
8419 try testArgs(@Vector(4, f16), @Vector(4, f80), .{
8420 -1e2, 1e-1, fmax(f80), 1e-2,
8421 });
8422 try testArgs(@Vector(8, f16), @Vector(8, f80), .{
8423 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
8424 });
8425 try testArgs(@Vector(16, f16), @Vector(16, f80), .{
8426 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
8427 });
8428 try testArgs(@Vector(32, f16), @Vector(32, f80), .{
8429 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
8430 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
8431 });
8432
8433 try testArgs(@Vector(1, f32), @Vector(1, f80), .{
8434 1e0,
8435 });
8436 try testArgs(@Vector(2, f32), @Vector(2, f80), .{
8437 -inf(f80), -1e-2,
8438 });
8439 try testArgs(@Vector(4, f32), @Vector(4, f80), .{
8440 -1e2, 1e-1, fmax(f80), 1e-2,
8441 });
8442 try testArgs(@Vector(8, f32), @Vector(8, f80), .{
8443 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
8444 });
8445 try testArgs(@Vector(16, f32), @Vector(16, f80), .{
8446 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
8447 });
8448 try testArgs(@Vector(32, f32), @Vector(32, f80), .{
8449 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
8450 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
8451 });
8452
8453 try testArgs(@Vector(1, f64), @Vector(1, f80), .{
8454 1e0,
8455 });
8456 try testArgs(@Vector(2, f64), @Vector(2, f80), .{
8457 -inf(f80), -1e-2,
8458 });
8459 try testArgs(@Vector(4, f64), @Vector(4, f80), .{
8460 -1e2, 1e-1, fmax(f80), 1e-2,
8461 });
8462 try testArgs(@Vector(8, f64), @Vector(8, f80), .{
8463 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
8464 });
8465 try testArgs(@Vector(16, f64), @Vector(16, f80), .{
8466 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
8467 });
8468 try testArgs(@Vector(32, f64), @Vector(32, f80), .{
8469 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
8470 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
8471 });
8472
8473 try testArgs(@Vector(1, f80), @Vector(1, f80), .{
8474 1e0,
8475 });
8476 try testArgs(@Vector(2, f80), @Vector(2, f80), .{
8477 -inf(f80), -1e-2,
8478 });
8479 try testArgs(@Vector(4, f80), @Vector(4, f80), .{
8480 -1e2, 1e-1, fmax(f80), 1e-2,
8481 });
8482 try testArgs(@Vector(8, f80), @Vector(8, f80), .{
8483 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
8484 });
8485 try testArgs(@Vector(16, f80), @Vector(16, f80), .{
8486 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
8487 });
8488 try testArgs(@Vector(32, f80), @Vector(32, f80), .{
8489 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
8490 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
8491 });
8492
8493 try testArgs(@Vector(1, f128), @Vector(1, f80), .{
8494 1e0,
8495 });
8496 try testArgs(@Vector(2, f128), @Vector(2, f80), .{
8497 -inf(f80), -1e-2,
8498 });
8499 try testArgs(@Vector(4, f128), @Vector(4, f80), .{
8500 -1e2, 1e-1, fmax(f80), 1e-2,
8501 });
8502 try testArgs(@Vector(8, f128), @Vector(8, f80), .{
8503 -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4,
8504 });
8505 try testArgs(@Vector(16, f128), @Vector(16, f80), .{
8506 -fmax(f80), -1e0, 1e-4, 1e2, -fmin(f80), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f80), -tmin(f80), -1e-4, inf(f80), 1e-3, -1e-1,
8507 });
8508 try testArgs(@Vector(32, f128), @Vector(32, f80), .{
8509 -1e3, -tmin(f80), inf(f80), -1e4, -0.0, fmax(f80), 1e2, 1e4, -nan(f80), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f80), -1e0,
8510 1e3, -1e-3, -fmin(f80), -inf(f80), 1e-3, tmin(f80), fmin(f80), 1e1, 1e-4, -fmax(f80), -1e2, 1e-2, -1e-2, 1e3, inf(f80), -fmin(f80),
8511 });
8512
8513 try testArgs(@Vector(1, f16), @Vector(1, f128), .{
8514 1e0,
8515 });
8516 try testArgs(@Vector(2, f16), @Vector(2, f128), .{
8517 -inf(f128), -1e-2,
8518 });
8519 try testArgs(@Vector(4, f16), @Vector(4, f128), .{
8520 -1e2, 1e-1, fmax(f128), 1e-2,
8521 });
8522 try testArgs(@Vector(8, f16), @Vector(8, f128), .{
8523 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
8524 });
8525 try testArgs(@Vector(16, f16), @Vector(16, f128), .{
8526 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
8527 });
8528 try testArgs(@Vector(32, f16), @Vector(32, f128), .{
8529 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
8530 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
8531 });
8532
8533 try testArgs(@Vector(1, f32), @Vector(1, f128), .{
8534 1e0,
8535 });
8536 try testArgs(@Vector(2, f32), @Vector(2, f128), .{
8537 -inf(f128), -1e-2,
8538 });
8539 try testArgs(@Vector(4, f32), @Vector(4, f128), .{
8540 -1e2, 1e-1, fmax(f128), 1e-2,
8541 });
8542 try testArgs(@Vector(8, f32), @Vector(8, f128), .{
8543 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
8544 });
8545 try testArgs(@Vector(16, f32), @Vector(16, f128), .{
8546 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
8547 });
8548 try testArgs(@Vector(32, f32), @Vector(32, f128), .{
8549 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
8550 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
8551 });
8552
8553 try testArgs(@Vector(1, f64), @Vector(1, f128), .{
8554 1e0,
8555 });
8556 try testArgs(@Vector(2, f64), @Vector(2, f128), .{
8557 -inf(f128), -1e-2,
8558 });
8559 try testArgs(@Vector(4, f64), @Vector(4, f128), .{
8560 -1e2, 1e-1, fmax(f128), 1e-2,
8561 });
8562 try testArgs(@Vector(8, f64), @Vector(8, f128), .{
8563 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
8564 });
8565 try testArgs(@Vector(16, f64), @Vector(16, f128), .{
8566 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
8567 });
8568 try testArgs(@Vector(32, f64), @Vector(32, f128), .{
8569 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
8570 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
8571 });
8572
8573 try testArgs(@Vector(1, f80), @Vector(1, f128), .{
8574 1e0,
8575 });
8576 try testArgs(@Vector(2, f80), @Vector(2, f128), .{
8577 -inf(f128), -1e-2,
8578 });
8579 try testArgs(@Vector(4, f80), @Vector(4, f128), .{
8580 -1e2, 1e-1, fmax(f128), 1e-2,
8581 });
8582 try testArgs(@Vector(8, f80), @Vector(8, f128), .{
8583 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
8584 });
8585 try testArgs(@Vector(16, f80), @Vector(16, f128), .{
8586 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
8587 });
8588 try testArgs(@Vector(32, f80), @Vector(32, f128), .{
8589 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
8590 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
8591 });
8592
8593 try testArgs(@Vector(1, f128), @Vector(1, f128), .{
8594 1e0,
8595 });
8596 try testArgs(@Vector(2, f128), @Vector(2, f128), .{
8597 -inf(f128), -1e-2,
8598 });
8599 try testArgs(@Vector(4, f128), @Vector(4, f128), .{
8600 -1e2, 1e-1, fmax(f128), 1e-2,
8601 });
8602 try testArgs(@Vector(8, f128), @Vector(8, f128), .{
8603 -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4,
8604 });
8605 try testArgs(@Vector(16, f128), @Vector(16, f128), .{
8606 -fmax(f128), -1e0, 1e-4, 1e2, -fmin(f128), -1e1, 0.0, -1e4, -0.0, 1e3, -nan(f128), -tmin(f128), -1e-4, inf(f128), 1e-3, -1e-1,
8607 });
8608 try testArgs(@Vector(32, f128), @Vector(32, f128), .{
8609 -1e3, -tmin(f128), inf(f128), -1e4, -0.0, fmax(f128), 1e2, 1e4, -nan(f128), 0.0, -1e-4, -1e1, 1e0, 1e-1, nan(f128), -1e0,
8610 1e3, -1e-3, -fmin(f128), -inf(f128), 1e-3, tmin(f128), fmin(f128), 1e1, 1e-4, -fmax(f128), -1e2, 1e-2, -1e-2, 1e3, inf(f128), -fmin(f128),
8611 });
8612 }
8613 fn testIntsFromFloats() !void {
8614 @setEvalBranchQuota(2_600);
8615
8616 try testArgs(i8, f16, -0x0.8p8);
8617 try testArgs(i8, f16, next(f16, -0x0.8p8, -0.0));
8618 try testArgs(i8, f16, next(f16, next(f16, -0x0.8p8, -0.0), -0.0));
8619 try testArgs(i8, f16, -1e2);
8620 try testArgs(i8, f16, -1e1);
8621 try testArgs(i8, f16, -1e0);
8622 try testArgs(i8, f16, -1e-1);
8623 try testArgs(i8, f16, -0.0);
8624 try testArgs(i8, f16, 0.0);
8625 try testArgs(i8, f16, 1e-1);
8626 try testArgs(i8, f16, 1e0);
8627 try testArgs(i8, f16, 1e1);
8628 try testArgs(i8, f16, 1e2);
8629 try testArgs(i8, f16, next(f16, next(f16, 0x0.8p8, 0.0), 0.0));
8630 try testArgs(i8, f16, next(f16, 0x0.8p8, 0.0));
8631
8632 try testArgs(u8, f16, -0.0);
8633 try testArgs(u8, f16, 0.0);
8634 try testArgs(u8, f16, 1e-1);
8635 try testArgs(u8, f16, 1e0);
8636 try testArgs(u8, f16, 1e1);
8637 try testArgs(u8, f16, 1e2);
8638 try testArgs(u8, f16, next(f16, next(f16, 0x1p8, 0.0), 0.0));
8639 try testArgs(u8, f16, next(f16, 0x1p8, 0.0));
8640
8641 try testArgs(i16, f16, -1e4);
8642 try testArgs(i16, f16, -1e3);
8643 try testArgs(i16, f16, -1e2);
8644 try testArgs(i16, f16, -1e1);
8645 try testArgs(i16, f16, -1e0);
8646 try testArgs(i16, f16, -1e-1);
8647 try testArgs(i16, f16, -0.0);
8648 try testArgs(i16, f16, 0.0);
8649 try testArgs(i16, f16, 1e-1);
8650 try testArgs(i16, f16, 1e0);
8651 try testArgs(i16, f16, 1e1);
8652 try testArgs(i16, f16, 1e2);
8653 try testArgs(i16, f16, 1e3);
8654 try testArgs(i16, f16, 1e4);
8655 try testArgs(i16, f16, next(f16, next(f16, 0x0.8p16, 0.0), 0.0));
8656 try testArgs(i16, f16, next(f16, 0x0.8p16, 0.0));
8657
8658 try testArgs(u16, f16, -0.0);
8659 try testArgs(u16, f16, 0.0);
8660 try testArgs(u16, f16, 1e-1);
8661 try testArgs(u16, f16, 1e0);
8662 try testArgs(u16, f16, 1e1);
8663 try testArgs(u16, f16, 1e2);
8664 try testArgs(u16, f16, 1e3);
8665 try testArgs(u16, f16, 1e4);
8666 try testArgs(u16, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8667 try testArgs(u16, f16, next(f16, fmax(f16), 0.0));
8668 try testArgs(u16, f16, fmax(f16));
8669
8670 try testArgs(i32, f16, -fmax(f16));
8671 try testArgs(i32, f16, next(f16, -fmax(f16), -0.0));
8672 try testArgs(i32, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
8673 try testArgs(i32, f16, -1e4);
8674 try testArgs(i32, f16, -1e3);
8675 try testArgs(i32, f16, -1e2);
8676 try testArgs(i32, f16, -1e1);
8677 try testArgs(i32, f16, -1e0);
8678 try testArgs(i32, f16, -1e-1);
8679 try testArgs(i32, f16, -0.0);
8680 try testArgs(i32, f16, 0.0);
8681 try testArgs(i32, f16, 1e-1);
8682 try testArgs(i32, f16, 1e0);
8683 try testArgs(i32, f16, 1e1);
8684 try testArgs(i32, f16, 1e2);
8685 try testArgs(i32, f16, 1e3);
8686 try testArgs(i32, f16, 1e4);
8687 try testArgs(i32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8688 try testArgs(i32, f16, next(f16, fmax(f16), 0.0));
8689 try testArgs(i32, f16, fmax(f16));
8690
8691 try testArgs(u32, f16, -0.0);
8692 try testArgs(u32, f16, 0.0);
8693 try testArgs(u32, f16, 1e-1);
8694 try testArgs(u32, f16, 1e0);
8695 try testArgs(u32, f16, 1e1);
8696 try testArgs(u32, f16, 1e2);
8697 try testArgs(u32, f16, 1e3);
8698 try testArgs(u32, f16, 1e4);
8699 try testArgs(u32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8700 try testArgs(u32, f16, next(f16, fmax(f16), 0.0));
8701 try testArgs(u32, f16, fmax(f16));
8702
8703 try testArgs(i64, f16, -fmax(f16));
8704 try testArgs(i64, f16, next(f16, -fmax(f16), -0.0));
8705 try testArgs(i64, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
8706 try testArgs(i64, f16, -1e4);
8707 try testArgs(i64, f16, -1e3);
8708 try testArgs(i64, f16, -1e2);
8709 try testArgs(i64, f16, -1e1);
8710 try testArgs(i64, f16, -1e0);
8711 try testArgs(i64, f16, -1e-1);
8712 try testArgs(i64, f16, -0.0);
8713 try testArgs(i64, f16, 0.0);
8714 try testArgs(i64, f16, 1e-1);
8715 try testArgs(i64, f16, 1e0);
8716 try testArgs(i64, f16, 1e1);
8717 try testArgs(i64, f16, 1e2);
8718 try testArgs(i64, f16, 1e3);
8719 try testArgs(i64, f16, 1e4);
8720 try testArgs(i64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8721 try testArgs(i64, f16, next(f16, fmax(f16), 0.0));
8722 try testArgs(i64, f16, fmax(f16));
8723
8724 try testArgs(u64, f16, -0.0);
8725 try testArgs(u64, f16, 0.0);
8726 try testArgs(u64, f16, 1e-1);
8727 try testArgs(u64, f16, 1e0);
8728 try testArgs(u64, f16, 1e1);
8729 try testArgs(u64, f16, 1e2);
8730 try testArgs(u64, f16, 1e3);
8731 try testArgs(u64, f16, 1e4);
8732 try testArgs(u64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8733 try testArgs(u64, f16, next(f16, fmax(f16), 0.0));
8734 try testArgs(u64, f16, fmax(f16));
8735
8736 try testArgs(i128, f16, -fmax(f16));
8737 try testArgs(i128, f16, next(f16, -fmax(f16), -0.0));
8738 try testArgs(i128, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
8739 try testArgs(i128, f16, -1e4);
8740 try testArgs(i128, f16, -1e3);
8741 try testArgs(i128, f16, -1e2);
8742 try testArgs(i128, f16, -1e1);
8743 try testArgs(i128, f16, -1e0);
8744 try testArgs(i128, f16, -1e-1);
8745 try testArgs(i128, f16, -0.0);
8746 try testArgs(i128, f16, 0.0);
8747 try testArgs(i128, f16, 1e-1);
8748 try testArgs(i128, f16, 1e0);
8749 try testArgs(i128, f16, 1e1);
8750 try testArgs(i128, f16, 1e2);
8751 try testArgs(i128, f16, 1e3);
8752 try testArgs(i128, f16, 1e4);
8753 try testArgs(i128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8754 try testArgs(i128, f16, next(f16, fmax(f16), 0.0));
8755 try testArgs(i128, f16, fmax(f16));
8756
8757 try testArgs(u128, f16, -0.0);
8758 try testArgs(u128, f16, 0.0);
8759 try testArgs(u128, f16, 1e-1);
8760 try testArgs(u128, f16, 1e0);
8761 try testArgs(u128, f16, 1e1);
8762 try testArgs(u128, f16, 1e2);
8763 try testArgs(u128, f16, 1e3);
8764 try testArgs(u128, f16, 1e4);
8765 try testArgs(u128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8766 try testArgs(u128, f16, next(f16, fmax(f16), 0.0));
8767 try testArgs(u128, f16, fmax(f16));
8768
8769 try testArgs(i256, f16, -fmax(f16));
8770 try testArgs(i256, f16, next(f16, -fmax(f16), -0.0));
8771 try testArgs(i256, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0));
8772 try testArgs(i256, f16, -1e4);
8773 try testArgs(i256, f16, -1e3);
8774 try testArgs(i256, f16, -1e2);
8775 try testArgs(i256, f16, -1e1);
8776 try testArgs(i256, f16, -1e0);
8777 try testArgs(i256, f16, -1e-1);
8778 try testArgs(i256, f16, -0.0);
8779 try testArgs(i256, f16, 0.0);
8780 try testArgs(i256, f16, 1e-1);
8781 try testArgs(i256, f16, 1e0);
8782 try testArgs(i256, f16, 1e1);
8783 try testArgs(i256, f16, 1e2);
8784 try testArgs(i256, f16, 1e3);
8785 try testArgs(i256, f16, 1e4);
8786 try testArgs(i256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8787 try testArgs(i256, f16, next(f16, fmax(f16), 0.0));
8788 try testArgs(i256, f16, fmax(f16));
8789
8790 try testArgs(u256, f16, -0.0);
8791 try testArgs(u256, f16, 0.0);
8792 try testArgs(u256, f16, 1e-1);
8793 try testArgs(u256, f16, 1e0);
8794 try testArgs(u256, f16, 1e1);
8795 try testArgs(u256, f16, 1e2);
8796 try testArgs(u256, f16, 1e3);
8797 try testArgs(u256, f16, 1e4);
8798 try testArgs(u256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0));
8799 try testArgs(u256, f16, next(f16, fmax(f16), 0.0));
8800 try testArgs(u256, f16, fmax(f16));
8801
8802 try testArgs(i8, f32, -0x0.8p8);
8803 try testArgs(i8, f32, next(f32, -0x0.8p8, -0.0));
8804 try testArgs(i8, f32, next(f32, next(f32, -0x0.8p8, -0.0), -0.0));
8805 try testArgs(i8, f32, -1e2);
8806 try testArgs(i8, f32, -1e1);
8807 try testArgs(i8, f32, -1e0);
8808 try testArgs(i8, f32, -1e-1);
8809 try testArgs(i8, f32, -0.0);
8810 try testArgs(i8, f32, 0.0);
8811 try testArgs(i8, f32, 1e-1);
8812 try testArgs(i8, f32, 1e0);
8813 try testArgs(i8, f32, 1e1);
8814 try testArgs(i8, f32, 1e2);
8815 try testArgs(i8, f32, next(f32, next(f32, 0x0.8p8, 0.0), 0.0));
8816 try testArgs(i8, f32, next(f32, 0x0.8p8, 0.0));
8817
8818 try testArgs(u8, f32, -0.0);
8819 try testArgs(u8, f32, 0.0);
8820 try testArgs(u8, f32, 1e-1);
8821 try testArgs(u8, f32, 1e0);
8822 try testArgs(u8, f32, 1e1);
8823 try testArgs(u8, f32, 1e2);
8824 try testArgs(u8, f32, next(f32, next(f32, 0x1p8, 0.0), 0.0));
8825 try testArgs(u8, f32, next(f32, 0x1p8, 0.0));
8826
8827 try testArgs(i16, f32, -0x0.8p16);
8828 try testArgs(i16, f32, next(f32, -0x0.8p16, -0.0));
8829 try testArgs(i16, f32, next(f32, next(f32, -0x0.8p16, -0.0), -0.0));
8830 try testArgs(i16, f32, -1e4);
8831 try testArgs(i16, f32, -1e3);
8832 try testArgs(i16, f32, -1e2);
8833 try testArgs(i16, f32, -1e1);
8834 try testArgs(i16, f32, -1e0);
8835 try testArgs(i16, f32, -1e-1);
8836 try testArgs(i16, f32, -0.0);
8837 try testArgs(i16, f32, 0.0);
8838 try testArgs(i16, f32, 1e-1);
8839 try testArgs(i16, f32, 1e0);
8840 try testArgs(i16, f32, 1e1);
8841 try testArgs(i16, f32, 1e2);
8842 try testArgs(i16, f32, 1e3);
8843 try testArgs(i16, f32, 1e4);
8844 try testArgs(i16, f32, next(f32, next(f32, 0x0.8p16, 0.0), 0.0));
8845 try testArgs(i16, f32, next(f32, 0x0.8p16, 0.0));
8846
8847 try testArgs(u16, f32, -0.0);
8848 try testArgs(u16, f32, 0.0);
8849 try testArgs(u16, f32, 1e-1);
8850 try testArgs(u16, f32, 1e0);
8851 try testArgs(u16, f32, 1e1);
8852 try testArgs(u16, f32, 1e2);
8853 try testArgs(u16, f32, 1e3);
8854 try testArgs(u16, f32, 1e4);
8855 try testArgs(u16, f32, next(f32, next(f32, 0x1p16, 0.0), 0.0));
8856 try testArgs(u16, f32, next(f32, 0x1p16, 0.0));
8857
8858 try testArgs(i32, f32, -0x0.8p32);
8859 try testArgs(i32, f32, next(f32, -0x0.8p32, -0.0));
8860 try testArgs(i32, f32, next(f32, next(f32, -0x0.8p32, -0.0), -0.0));
8861 try testArgs(i32, f32, -1e9);
8862 try testArgs(i32, f32, -1e8);
8863 try testArgs(i32, f32, -1e7);
8864 try testArgs(i32, f32, -1e6);
8865 try testArgs(i32, f32, -1e5);
8866 try testArgs(i32, f32, -1e4);
8867 try testArgs(i32, f32, -1e3);
8868 try testArgs(i32, f32, -1e2);
8869 try testArgs(i32, f32, -1e1);
8870 try testArgs(i32, f32, -1e0);
8871 try testArgs(i32, f32, -1e-1);
8872 try testArgs(i32, f32, -0.0);
8873 try testArgs(i32, f32, 0.0);
8874 try testArgs(i32, f32, 1e-1);
8875 try testArgs(i32, f32, 1e0);
8876 try testArgs(i32, f32, 1e1);
8877 try testArgs(i32, f32, 1e2);
8878 try testArgs(i32, f32, 1e3);
8879 try testArgs(i32, f32, 1e4);
8880 try testArgs(i32, f32, 1e5);
8881 try testArgs(i32, f32, 1e6);
8882 try testArgs(i32, f32, 1e7);
8883 try testArgs(i32, f32, 1e8);
8884 try testArgs(i32, f32, 1e9);
8885 try testArgs(i32, f32, next(f32, next(f32, 0x0.8p32, 0.0), 0.0));
8886 try testArgs(i32, f32, next(f32, 0x0.8p32, 0.0));
8887
8888 try testArgs(u32, f32, -0.0);
8889 try testArgs(u32, f32, 0.0);
8890 try testArgs(u32, f32, 1e-1);
8891 try testArgs(u32, f32, 1e0);
8892 try testArgs(u32, f32, 1e1);
8893 try testArgs(u32, f32, 1e2);
8894 try testArgs(u32, f32, 1e3);
8895 try testArgs(u32, f32, 1e4);
8896 try testArgs(u32, f32, 1e5);
8897 try testArgs(u32, f32, 1e6);
8898 try testArgs(u32, f32, 1e7);
8899 try testArgs(u32, f32, 1e8);
8900 try testArgs(u32, f32, 1e9);
8901 try testArgs(u32, f32, next(f32, next(f32, 0x1p32, 0.0), 0.0));
8902 try testArgs(u32, f32, next(f32, 0x1p32, 0.0));
8903
8904 try testArgs(i64, f32, -0x0.8p64);
8905 try testArgs(i64, f32, next(f32, -0x0.8p64, -0.0));
8906 try testArgs(i64, f32, next(f32, next(f32, -0x0.8p64, -0.0), -0.0));
8907 try testArgs(i64, f32, -1e18);
8908 try testArgs(i64, f32, -1e16);
8909 try testArgs(i64, f32, -1e14);
8910 try testArgs(i64, f32, -1e12);
8911 try testArgs(i64, f32, -1e10);
8912 try testArgs(i64, f32, -1e8);
8913 try testArgs(i64, f32, -1e6);
8914 try testArgs(i64, f32, -1e4);
8915 try testArgs(i64, f32, -1e2);
8916 try testArgs(i64, f32, -1e0);
8917 try testArgs(i64, f32, -1e-1);
8918 try testArgs(i64, f32, -0.0);
8919 try testArgs(i64, f32, 0.0);
8920 try testArgs(i64, f32, 1e-1);
8921 try testArgs(i64, f32, 1e0);
8922 try testArgs(i64, f32, 1e2);
8923 try testArgs(i64, f32, 1e4);
8924 try testArgs(i64, f32, 1e6);
8925 try testArgs(i64, f32, 1e8);
8926 try testArgs(i64, f32, 1e10);
8927 try testArgs(i64, f32, 1e12);
8928 try testArgs(i64, f32, 1e14);
8929 try testArgs(i64, f32, 1e16);
8930 try testArgs(i64, f32, 1e18);
8931 try testArgs(i64, f32, next(f32, next(f32, 0x0.8p64, 0.0), 0.0));
8932 try testArgs(i64, f32, next(f32, 0x0.8p64, 0.0));
8933
8934 try testArgs(u64, f32, -0.0);
8935 try testArgs(u64, f32, 0.0);
8936 try testArgs(u64, f32, 1e-1);
8937 try testArgs(u64, f32, 1e0);
8938 try testArgs(u64, f32, 1e2);
8939 try testArgs(u64, f32, 1e4);
8940 try testArgs(u64, f32, 1e6);
8941 try testArgs(u64, f32, 1e8);
8942 try testArgs(u64, f32, 1e10);
8943 try testArgs(u64, f32, 1e12);
8944 try testArgs(u64, f32, 1e14);
8945 try testArgs(u64, f32, 1e16);
8946 try testArgs(u64, f32, 1e18);
8947 try testArgs(u64, f32, next(f32, next(f32, 0x1p64, 0.0), 0.0));
8948 try testArgs(u64, f32, next(f32, 0x1p64, 0.0));
8949
8950 try testArgs(i128, f32, -0x0.8p128);
8951 try testArgs(i128, f32, next(f32, -0x0.8p128, -0.0));
8952 try testArgs(i128, f32, next(f32, next(f32, -0x0.8p128, -0.0), -0.0));
8953 try testArgs(i128, f32, -1e38);
8954 try testArgs(i128, f32, -1e34);
8955 try testArgs(i128, f32, -1e30);
8956 try testArgs(i128, f32, -1e26);
8957 try testArgs(i128, f32, -1e22);
8958 try testArgs(i128, f32, -1e18);
8959 try testArgs(i128, f32, -1e14);
8960 try testArgs(i128, f32, -1e10);
8961 try testArgs(i128, f32, -1e6);
8962 try testArgs(i128, f32, -1e2);
8963 try testArgs(i128, f32, -1e0);
8964 try testArgs(i128, f32, -1e-1);
8965 try testArgs(i128, f32, -0.0);
8966 try testArgs(i128, f32, 0.0);
8967 try testArgs(i128, f32, 1e-1);
8968 try testArgs(i128, f32, 1e0);
8969 try testArgs(i128, f32, 1e2);
8970 try testArgs(i128, f32, 1e6);
8971 try testArgs(i128, f32, 1e10);
8972 try testArgs(i128, f32, 1e14);
8973 try testArgs(i128, f32, 1e18);
8974 try testArgs(i128, f32, 1e22);
8975 try testArgs(i128, f32, 1e26);
8976 try testArgs(i128, f32, 1e30);
8977 try testArgs(i128, f32, 1e34);
8978 try testArgs(i128, f32, 1e38);
8979 try testArgs(i128, f32, next(f32, next(f32, 0x0.8p128, 0.0), 0.0));
8980 try testArgs(i128, f32, next(f32, 0x0.8p128, 0.0));
8981
8982 try testArgs(u128, f32, -0.0);
8983 try testArgs(u128, f32, 0.0);
8984 try testArgs(u128, f32, 1e-1);
8985 try testArgs(u128, f32, 1e0);
8986 try testArgs(u128, f32, 1e2);
8987 try testArgs(u128, f32, 1e6);
8988 try testArgs(u128, f32, 1e10);
8989 try testArgs(u128, f32, 1e14);
8990 try testArgs(u128, f32, 1e18);
8991 try testArgs(u128, f32, 1e22);
8992 try testArgs(u128, f32, 1e26);
8993 try testArgs(u128, f32, 1e30);
8994 try testArgs(u128, f32, 1e34);
8995 try testArgs(u128, f32, 1e38);
8996 try testArgs(u128, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
8997 try testArgs(u128, f32, next(f32, fmax(f32), 0.0));
8998
8999 try testArgs(i256, f32, -fmax(f32));
9000 try testArgs(i256, f32, next(f32, -fmax(f32), -0.0));
9001 try testArgs(i256, f32, next(f32, next(f32, -fmax(f32), -0.0), -0.0));
9002 try testArgs(i256, f32, -1e38);
9003 try testArgs(i256, f32, -1e34);
9004 try testArgs(i256, f32, -1e30);
9005 try testArgs(i256, f32, -1e26);
9006 try testArgs(i256, f32, -1e22);
9007 try testArgs(i256, f32, -1e18);
9008 try testArgs(i256, f32, -1e14);
9009 try testArgs(i256, f32, -1e10);
9010 try testArgs(i256, f32, -1e6);
9011 try testArgs(i256, f32, -1e2);
9012 try testArgs(i256, f32, -1e0);
9013 try testArgs(i256, f32, -1e-1);
9014 try testArgs(i256, f32, -0.0);
9015 try testArgs(i256, f32, 0.0);
9016 try testArgs(i256, f32, 1e-1);
9017 try testArgs(i256, f32, 1e0);
9018 try testArgs(i256, f32, 1e2);
9019 try testArgs(i256, f32, 1e6);
9020 try testArgs(i256, f32, 1e10);
9021 try testArgs(i256, f32, 1e14);
9022 try testArgs(i256, f32, 1e18);
9023 try testArgs(i256, f32, 1e22);
9024 try testArgs(i256, f32, 1e26);
9025 try testArgs(i256, f32, 1e30);
9026 try testArgs(i256, f32, 1e34);
9027 try testArgs(i256, f32, 1e38);
9028 try testArgs(i256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
9029 try testArgs(i256, f32, next(f32, fmax(f32), 0.0));
9030
9031 try testArgs(u256, f32, -0.0);
9032 try testArgs(u256, f32, 0.0);
9033 try testArgs(u256, f32, 1e-1);
9034 try testArgs(u256, f32, 1e0);
9035 try testArgs(u256, f32, 1e2);
9036 try testArgs(u256, f32, 1e6);
9037 try testArgs(u256, f32, 1e10);
9038 try testArgs(u256, f32, 1e14);
9039 try testArgs(u256, f32, 1e18);
9040 try testArgs(u256, f32, 1e22);
9041 try testArgs(u256, f32, 1e26);
9042 try testArgs(u256, f32, 1e30);
9043 try testArgs(u256, f32, 1e34);
9044 try testArgs(u256, f32, 1e38);
9045 try testArgs(u256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0));
9046 try testArgs(u256, f32, next(f32, fmax(f32), 0.0));
9047
9048 try testArgs(i8, f64, -0x0.8p8);
9049 try testArgs(i8, f64, next(f64, -0x0.8p8, -0.0));
9050 try testArgs(i8, f64, next(f64, next(f64, -0x0.8p8, -0.0), -0.0));
9051 try testArgs(i8, f64, -1e2);
9052 try testArgs(i8, f64, -1e1);
9053 try testArgs(i8, f64, -1e0);
9054 try testArgs(i8, f64, -1e-1);
9055 try testArgs(i8, f64, -0.0);
9056 try testArgs(i8, f64, 0.0);
9057 try testArgs(i8, f64, 1e-1);
9058 try testArgs(i8, f64, 1e0);
9059 try testArgs(i8, f64, 1e1);
9060 try testArgs(i8, f64, 1e2);
9061 try testArgs(i8, f64, next(f64, next(f64, 0x0.8p8, 0.0), 0.0));
9062 try testArgs(i8, f64, next(f64, 0x0.8p8, 0.0));
9063
9064 try testArgs(u8, f64, -0.0);
9065 try testArgs(u8, f64, 0.0);
9066 try testArgs(u8, f64, 1e-1);
9067 try testArgs(u8, f64, 1e0);
9068 try testArgs(u8, f64, 1e1);
9069 try testArgs(u8, f64, 1e2);
9070 try testArgs(u8, f64, next(f64, next(f64, 0x1p8, 0.0), 0.0));
9071 try testArgs(u8, f64, next(f64, 0x1p8, 0.0));
9072
9073 try testArgs(i16, f64, -0x0.8p16);
9074 try testArgs(i16, f64, next(f64, -0x0.8p16, -0.0));
9075 try testArgs(i16, f64, next(f64, next(f64, -0x0.8p16, -0.0), -0.0));
9076 try testArgs(i16, f64, -1e4);
9077 try testArgs(i16, f64, -1e3);
9078 try testArgs(i16, f64, -1e2);
9079 try testArgs(i16, f64, -1e1);
9080 try testArgs(i16, f64, -1e0);
9081 try testArgs(i16, f64, -1e-1);
9082 try testArgs(i16, f64, -0.0);
9083 try testArgs(i16, f64, 0.0);
9084 try testArgs(i16, f64, 1e-1);
9085 try testArgs(i16, f64, 1e0);
9086 try testArgs(i16, f64, 1e1);
9087 try testArgs(i16, f64, 1e2);
9088 try testArgs(i16, f64, 1e3);
9089 try testArgs(i16, f64, 1e4);
9090 try testArgs(i16, f64, next(f64, next(f64, 0x0.8p16, 0.0), 0.0));
9091 try testArgs(i16, f64, next(f64, 0x0.8p16, 0.0));
9092
9093 try testArgs(u16, f64, -0.0);
9094 try testArgs(u16, f64, 0.0);
9095 try testArgs(u16, f64, 1e-1);
9096 try testArgs(u16, f64, 1e0);
9097 try testArgs(u16, f64, 1e1);
9098 try testArgs(u16, f64, 1e2);
9099 try testArgs(u16, f64, 1e3);
9100 try testArgs(u16, f64, 1e4);
9101 try testArgs(u16, f64, next(f64, next(f64, 0x1p16, 0.0), 0.0));
9102 try testArgs(u16, f64, next(f64, 0x1p16, 0.0));
9103
9104 try testArgs(i32, f64, -0x0.8p32);
9105 try testArgs(i32, f64, next(f64, -0x0.8p32, -0.0));
9106 try testArgs(i32, f64, next(f64, next(f64, -0x0.8p32, -0.0), -0.0));
9107 try testArgs(i32, f64, -1e9);
9108 try testArgs(i32, f64, -1e8);
9109 try testArgs(i32, f64, -1e7);
9110 try testArgs(i32, f64, -1e6);
9111 try testArgs(i32, f64, -1e5);
9112 try testArgs(i32, f64, -1e4);
9113 try testArgs(i32, f64, -1e3);
9114 try testArgs(i32, f64, -1e2);
9115 try testArgs(i32, f64, -1e1);
9116 try testArgs(i32, f64, -1e0);
9117 try testArgs(i32, f64, -1e-1);
9118 try testArgs(i32, f64, -0.0);
9119 try testArgs(i32, f64, 0.0);
9120 try testArgs(i32, f64, 1e-1);
9121 try testArgs(i32, f64, 1e0);
9122 try testArgs(i32, f64, 1e1);
9123 try testArgs(i32, f64, 1e2);
9124 try testArgs(i32, f64, 1e3);
9125 try testArgs(i32, f64, 1e4);
9126 try testArgs(i32, f64, 1e5);
9127 try testArgs(i32, f64, 1e6);
9128 try testArgs(i32, f64, 1e7);
9129 try testArgs(i32, f64, 1e8);
9130 try testArgs(i32, f64, 1e9);
9131 try testArgs(i32, f64, next(f64, next(f64, 0x0.8p32, 0.0), 0.0));
9132 try testArgs(i32, f64, next(f64, 0x0.8p32, 0.0));
9133
9134 try testArgs(u32, f64, -0.0);
9135 try testArgs(u32, f64, 0.0);
9136 try testArgs(u32, f64, 1e-1);
9137 try testArgs(u32, f64, 1e0);
9138 try testArgs(u32, f64, 1e1);
9139 try testArgs(u32, f64, 1e2);
9140 try testArgs(u32, f64, 1e3);
9141 try testArgs(u32, f64, 1e4);
9142 try testArgs(u32, f64, 1e5);
9143 try testArgs(u32, f64, 1e6);
9144 try testArgs(u32, f64, 1e7);
9145 try testArgs(u32, f64, 1e8);
9146 try testArgs(u32, f64, 1e9);
9147 try testArgs(u32, f64, next(f64, next(f64, 0x1p32, 0.0), 0.0));
9148 try testArgs(u32, f64, next(f64, 0x1p32, 0.0));
9149
9150 try testArgs(i64, f64, -0x0.8p64);
9151 try testArgs(i64, f64, next(f64, -0x0.8p64, -0.0));
9152 try testArgs(i64, f64, next(f64, next(f64, -0x0.8p64, -0.0), -0.0));
9153 try testArgs(i64, f64, -1e18);
9154 try testArgs(i64, f64, -1e16);
9155 try testArgs(i64, f64, -1e14);
9156 try testArgs(i64, f64, -1e12);
9157 try testArgs(i64, f64, -1e10);
9158 try testArgs(i64, f64, -1e8);
9159 try testArgs(i64, f64, -1e6);
9160 try testArgs(i64, f64, -1e4);
9161 try testArgs(i64, f64, -1e2);
9162 try testArgs(i64, f64, -1e0);
9163 try testArgs(i64, f64, -1e-1);
9164 try testArgs(i64, f64, -0.0);
9165 try testArgs(i64, f64, 0.0);
9166 try testArgs(i64, f64, 1e-1);
9167 try testArgs(i64, f64, 1e0);
9168 try testArgs(i64, f64, 1e2);
9169 try testArgs(i64, f64, 1e4);
9170 try testArgs(i64, f64, 1e6);
9171 try testArgs(i64, f64, 1e8);
9172 try testArgs(i64, f64, 1e10);
9173 try testArgs(i64, f64, 1e12);
9174 try testArgs(i64, f64, 1e14);
9175 try testArgs(i64, f64, 1e16);
9176 try testArgs(i64, f64, 1e18);
9177 try testArgs(i64, f64, next(f64, next(f64, 0x0.8p64, 0.0), 0.0));
9178 try testArgs(i64, f64, next(f64, 0x0.8p64, 0.0));
9179
9180 try testArgs(u64, f64, -0.0);
9181 try testArgs(u64, f64, 0.0);
9182 try testArgs(u64, f64, 1e-1);
9183 try testArgs(u64, f64, 1e0);
9184 try testArgs(u64, f64, 1e2);
9185 try testArgs(u64, f64, 1e4);
9186 try testArgs(u64, f64, 1e6);
9187 try testArgs(u64, f64, 1e8);
9188 try testArgs(u64, f64, 1e10);
9189 try testArgs(u64, f64, 1e12);
9190 try testArgs(u64, f64, 1e14);
9191 try testArgs(u64, f64, 1e16);
9192 try testArgs(u64, f64, 1e18);
9193 try testArgs(u64, f64, next(f64, next(f64, 0x1p64, 0.0), 0.0));
9194 try testArgs(u64, f64, next(f64, 0x1p64, 0.0));
9195
9196 try testArgs(i128, f64, -0x0.8p128);
9197 try testArgs(i128, f64, next(f64, -0x0.8p128, -0.0));
9198 try testArgs(i128, f64, next(f64, next(f64, -0x0.8p128, -0.0), -0.0));
9199 try testArgs(i128, f64, -1e38);
9200 try testArgs(i128, f64, -1e34);
9201 try testArgs(i128, f64, -1e30);
9202 try testArgs(i128, f64, -1e26);
9203 try testArgs(i128, f64, -1e22);
9204 try testArgs(i128, f64, -1e18);
9205 try testArgs(i128, f64, -1e14);
9206 try testArgs(i128, f64, -1e10);
9207 try testArgs(i128, f64, -1e6);
9208 try testArgs(i128, f64, -1e2);
9209 try testArgs(i128, f64, -1e0);
9210 try testArgs(i128, f64, -1e-1);
9211 try testArgs(i128, f64, -0.0);
9212 try testArgs(i128, f64, 0.0);
9213 try testArgs(i128, f64, 1e-1);
9214 try testArgs(i128, f64, 1e0);
9215 try testArgs(i128, f64, 1e2);
9216 try testArgs(i128, f64, 1e6);
9217 try testArgs(i128, f64, 1e10);
9218 try testArgs(i128, f64, 1e14);
9219 try testArgs(i128, f64, 1e18);
9220 try testArgs(i128, f64, 1e22);
9221 try testArgs(i128, f64, 1e26);
9222 try testArgs(i128, f64, 1e30);
9223 try testArgs(i128, f64, 1e34);
9224 try testArgs(i128, f64, 1e38);
9225 try testArgs(i128, f64, next(f64, next(f64, 0x0.8p128, 0.0), 0.0));
9226 try testArgs(i128, f64, next(f64, 0x0.8p128, 0.0));
9227
9228 try testArgs(u128, f64, -0.0);
9229 try testArgs(u128, f64, 0.0);
9230 try testArgs(u128, f64, 1e-1);
9231 try testArgs(u128, f64, 1e0);
9232 try testArgs(u128, f64, 1e2);
9233 try testArgs(u128, f64, 1e6);
9234 try testArgs(u128, f64, 1e10);
9235 try testArgs(u128, f64, 1e14);
9236 try testArgs(u128, f64, 1e18);
9237 try testArgs(u128, f64, 1e22);
9238 try testArgs(u128, f64, 1e26);
9239 try testArgs(u128, f64, 1e30);
9240 try testArgs(u128, f64, 1e34);
9241 try testArgs(u128, f64, 1e38);
9242 try testArgs(u128, f64, next(f64, next(f64, 0x1p128, 0.0), 0.0));
9243 try testArgs(u128, f64, next(f64, 0x1p128, 0.0));
9244
9245 try testArgs(i256, f64, -0x0.8p256);
9246 try testArgs(i256, f64, next(f64, -0x0.8p256, -0.0));
9247 try testArgs(i256, f64, next(f64, next(f64, -0x0.8p256, -0.0), -0.0));
9248 try testArgs(i256, f64, -1e76);
9249 try testArgs(i256, f64, -1e69);
9250 try testArgs(i256, f64, -1e62);
9251 try testArgs(i256, f64, -1e55);
9252 try testArgs(i256, f64, -1e48);
9253 try testArgs(i256, f64, -1e41);
9254 try testArgs(i256, f64, -1e34);
9255 try testArgs(i256, f64, -1e27);
9256 try testArgs(i256, f64, -1e20);
9257 try testArgs(i256, f64, -1e13);
9258 try testArgs(i256, f64, -1e6);
9259 try testArgs(i256, f64, -1e0);
9260 try testArgs(i256, f64, -1e-1);
9261 try testArgs(i256, f64, -0.0);
9262 try testArgs(i256, f64, 0.0);
9263 try testArgs(i256, f64, 1e-1);
9264 try testArgs(i256, f64, 1e0);
9265 try testArgs(i256, f64, 1e6);
9266 try testArgs(i256, f64, 1e13);
9267 try testArgs(i256, f64, 1e20);
9268 try testArgs(i256, f64, 1e27);
9269 try testArgs(i256, f64, 1e34);
9270 try testArgs(i256, f64, 1e41);
9271 try testArgs(i256, f64, 1e48);
9272 try testArgs(i256, f64, 1e55);
9273 try testArgs(i256, f64, 1e62);
9274 try testArgs(i256, f64, 1e69);
9275 try testArgs(i256, f64, 1e76);
9276 try testArgs(i256, f64, next(f64, next(f64, 0x0.8p256, 0.0), 0.0));
9277 try testArgs(i256, f64, next(f64, 0x0.8p256, 0.0));
9278
9279 try testArgs(u256, f64, -0.0);
9280 try testArgs(u256, f64, 0.0);
9281 try testArgs(u256, f64, 1e-1);
9282 try testArgs(u256, f64, 1e0);
9283 try testArgs(u256, f64, 1e7);
9284 try testArgs(u256, f64, 1e14);
9285 try testArgs(u256, f64, 1e21);
9286 try testArgs(u256, f64, 1e28);
9287 try testArgs(u256, f64, 1e35);
9288 try testArgs(u256, f64, 1e42);
9289 try testArgs(u256, f64, 1e49);
9290 try testArgs(u256, f64, 1e56);
9291 try testArgs(u256, f64, 1e63);
9292 try testArgs(u256, f64, 1e70);
9293 try testArgs(u256, f64, 1e77);
9294 try testArgs(u256, f64, next(f64, next(f64, 0x1p256, 0.0), 0.0));
9295 try testArgs(u256, f64, next(f64, 0x1p256, 0.0));
9296
9297 try testArgs(i8, f80, -0x0.8p8);
9298 try testArgs(i8, f80, next(f80, -0x0.8p8, -0.0));
9299 try testArgs(i8, f80, next(f80, next(f80, -0x0.8p8, -0.0), -0.0));
9300 try testArgs(i8, f80, -1e2);
9301 try testArgs(i8, f80, -1e1);
9302 try testArgs(i8, f80, -1e0);
9303 try testArgs(i8, f80, -1e-1);
9304 try testArgs(i8, f80, -0.0);
9305 try testArgs(i8, f80, 0.0);
9306 try testArgs(i8, f80, 1e-1);
9307 try testArgs(i8, f80, 1e0);
9308 try testArgs(i8, f80, 1e1);
9309 try testArgs(i8, f80, 1e2);
9310 try testArgs(i8, f80, next(f80, next(f80, 0x0.8p8, 0.0), 0.0));
9311 try testArgs(i8, f80, next(f80, 0x0.8p8, 0.0));
9312
9313 try testArgs(u8, f80, -0.0);
9314 try testArgs(u8, f80, 0.0);
9315 try testArgs(u8, f80, 1e-1);
9316 try testArgs(u8, f80, 1e0);
9317 try testArgs(u8, f80, 1e1);
9318 try testArgs(u8, f80, 1e2);
9319 try testArgs(u8, f80, next(f80, next(f80, 0x1p8, 0.0), 0.0));
9320 try testArgs(u8, f80, next(f80, 0x1p8, 0.0));
9321
9322 try testArgs(i16, f80, -0x0.8p16);
9323 try testArgs(i16, f80, next(f80, -0x0.8p16, -0.0));
9324 try testArgs(i16, f80, next(f80, next(f80, -0x0.8p16, -0.0), -0.0));
9325 try testArgs(i16, f80, -1e4);
9326 try testArgs(i16, f80, -1e3);
9327 try testArgs(i16, f80, -1e2);
9328 try testArgs(i16, f80, -1e1);
9329 try testArgs(i16, f80, -1e0);
9330 try testArgs(i16, f80, -1e-1);
9331 try testArgs(i16, f80, -0.0);
9332 try testArgs(i16, f80, 0.0);
9333 try testArgs(i16, f80, 1e-1);
9334 try testArgs(i16, f80, 1e0);
9335 try testArgs(i16, f80, 1e1);
9336 try testArgs(i16, f80, 1e2);
9337 try testArgs(i16, f80, 1e3);
9338 try testArgs(i16, f80, 1e4);
9339 try testArgs(i16, f80, next(f80, next(f80, 0x0.8p16, 0.0), 0.0));
9340 try testArgs(i16, f80, next(f80, 0x0.8p16, 0.0));
9341
9342 try testArgs(u16, f80, -0.0);
9343 try testArgs(u16, f80, 0.0);
9344 try testArgs(u16, f80, 1e-1);
9345 try testArgs(u16, f80, 1e0);
9346 try testArgs(u16, f80, 1e1);
9347 try testArgs(u16, f80, 1e2);
9348 try testArgs(u16, f80, 1e3);
9349 try testArgs(u16, f80, 1e4);
9350 try testArgs(u16, f80, next(f80, next(f80, 0x1p16, 0.0), 0.0));
9351 try testArgs(u16, f80, next(f80, 0x1p16, 0.0));
9352
9353 try testArgs(i32, f80, -0x0.8p32);
9354 try testArgs(i32, f80, next(f80, -0x0.8p32, -0.0));
9355 try testArgs(i32, f80, next(f80, next(f80, -0x0.8p32, -0.0), -0.0));
9356 try testArgs(i32, f80, -1e9);
9357 try testArgs(i32, f80, -1e8);
9358 try testArgs(i32, f80, -1e7);
9359 try testArgs(i32, f80, -1e6);
9360 try testArgs(i32, f80, -1e5);
9361 try testArgs(i32, f80, -1e4);
9362 try testArgs(i32, f80, -1e3);
9363 try testArgs(i32, f80, -1e2);
9364 try testArgs(i32, f80, -1e1);
9365 try testArgs(i32, f80, -1e0);
9366 try testArgs(i32, f80, -1e-1);
9367 try testArgs(i32, f80, -0.0);
9368 try testArgs(i32, f80, 0.0);
9369 try testArgs(i32, f80, 1e-1);
9370 try testArgs(i32, f80, 1e0);
9371 try testArgs(i32, f80, 1e1);
9372 try testArgs(i32, f80, 1e2);
9373 try testArgs(i32, f80, 1e3);
9374 try testArgs(i32, f80, 1e4);
9375 try testArgs(i32, f80, 1e5);
9376 try testArgs(i32, f80, 1e6);
9377 try testArgs(i32, f80, 1e7);
9378 try testArgs(i32, f80, 1e8);
9379 try testArgs(i32, f80, 1e9);
9380 try testArgs(i32, f80, next(f80, next(f80, 0x0.8p32, 0.0), 0.0));
9381 try testArgs(i32, f80, next(f80, 0x0.8p32, 0.0));
9382
9383 try testArgs(u32, f80, -0.0);
9384 try testArgs(u32, f80, 0.0);
9385 try testArgs(u32, f80, 1e-1);
9386 try testArgs(u32, f80, 1e0);
9387 try testArgs(u32, f80, 1e1);
9388 try testArgs(u32, f80, 1e2);
9389 try testArgs(u32, f80, 1e3);
9390 try testArgs(u32, f80, 1e4);
9391 try testArgs(u32, f80, 1e5);
9392 try testArgs(u32, f80, 1e6);
9393 try testArgs(u32, f80, 1e7);
9394 try testArgs(u32, f80, 1e8);
9395 try testArgs(u32, f80, 1e9);
9396 try testArgs(u32, f80, next(f80, next(f80, 0x1p32, 0.0), 0.0));
9397 try testArgs(u32, f80, next(f80, 0x1p32, 0.0));
9398
9399 try testArgs(i64, f80, -0x0.8p64);
9400 try testArgs(i64, f80, next(f80, -0x0.8p64, -0.0));
9401 try testArgs(i64, f80, next(f80, next(f80, -0x0.8p64, -0.0), -0.0));
9402 try testArgs(i64, f80, -1e18);
9403 try testArgs(i64, f80, -1e16);
9404 try testArgs(i64, f80, -1e14);
9405 try testArgs(i64, f80, -1e12);
9406 try testArgs(i64, f80, -1e10);
9407 try testArgs(i64, f80, -1e8);
9408 try testArgs(i64, f80, -1e6);
9409 try testArgs(i64, f80, -1e4);
9410 try testArgs(i64, f80, -1e2);
9411 try testArgs(i64, f80, -1e0);
9412 try testArgs(i64, f80, -1e-1);
9413 try testArgs(i64, f80, -0.0);
9414 try testArgs(i64, f80, 0.0);
9415 try testArgs(i64, f80, 1e-1);
9416 try testArgs(i64, f80, 1e0);
9417 try testArgs(i64, f80, 1e2);
9418 try testArgs(i64, f80, 1e4);
9419 try testArgs(i64, f80, 1e6);
9420 try testArgs(i64, f80, 1e8);
9421 try testArgs(i64, f80, 1e10);
9422 try testArgs(i64, f80, 1e12);
9423 try testArgs(i64, f80, 1e14);
9424 try testArgs(i64, f80, 1e16);
9425 try testArgs(i64, f80, 1e18);
9426 try testArgs(i64, f80, next(f80, next(f80, 0x0.8p64, 0.0), 0.0));
9427 try testArgs(i64, f80, next(f80, 0x0.8p64, 0.0));
9428
9429 try testArgs(u64, f80, -0.0);
9430 try testArgs(u64, f80, 0.0);
9431 try testArgs(u64, f80, 1e-1);
9432 try testArgs(u64, f80, 1e0);
9433 try testArgs(u64, f80, 1e2);
9434 try testArgs(u64, f80, 1e4);
9435 try testArgs(u64, f80, 1e6);
9436 try testArgs(u64, f80, 1e8);
9437 try testArgs(u64, f80, 1e10);
9438 try testArgs(u64, f80, 1e12);
9439 try testArgs(u64, f80, 1e14);
9440 try testArgs(u64, f80, 1e16);
9441 try testArgs(u64, f80, 1e18);
9442 try testArgs(u64, f80, next(f80, next(f80, 0x1p64, 0.0), 0.0));
9443 try testArgs(u64, f80, next(f80, 0x1p64, 0.0));
9444
9445 try testArgs(i128, f80, -0x0.8p128);
9446 try testArgs(i128, f80, next(f80, -0x0.8p128, -0.0));
9447 try testArgs(i128, f80, next(f80, next(f80, -0x0.8p128, -0.0), -0.0));
9448 try testArgs(i128, f80, -1e38);
9449 try testArgs(i128, f80, -1e34);
9450 try testArgs(i128, f80, -1e30);
9451 try testArgs(i128, f80, -1e26);
9452 try testArgs(i128, f80, -1e22);
9453 try testArgs(i128, f80, -1e18);
9454 try testArgs(i128, f80, -1e14);
9455 try testArgs(i128, f80, -1e10);
9456 try testArgs(i128, f80, -1e6);
9457 try testArgs(i128, f80, -1e2);
9458 try testArgs(i128, f80, -1e0);
9459 try testArgs(i128, f80, -1e-1);
9460 try testArgs(i128, f80, -0.0);
9461 try testArgs(i128, f80, 0.0);
9462 try testArgs(i128, f80, 1e-1);
9463 try testArgs(i128, f80, 1e0);
9464 try testArgs(i128, f80, 1e2);
9465 try testArgs(i128, f80, 1e6);
9466 try testArgs(i128, f80, 1e10);
9467 try testArgs(i128, f80, 1e14);
9468 try testArgs(i128, f80, 1e18);
9469 try testArgs(i128, f80, 1e22);
9470 try testArgs(i128, f80, 1e26);
9471 try testArgs(i128, f80, 1e30);
9472 try testArgs(i128, f80, 1e34);
9473 try testArgs(i128, f80, 1e38);
9474 try testArgs(i128, f80, next(f80, next(f80, 0x0.8p128, 0.0), 0.0));
9475 try testArgs(i128, f80, next(f80, 0x0.8p128, 0.0));
9476
9477 try testArgs(u128, f80, -0.0);
9478 try testArgs(u128, f80, 0.0);
9479 try testArgs(u128, f80, 1e-1);
9480 try testArgs(u128, f80, 1e0);
9481 try testArgs(u128, f80, 1e2);
9482 try testArgs(u128, f80, 1e6);
9483 try testArgs(u128, f80, 1e10);
9484 try testArgs(u128, f80, 1e14);
9485 try testArgs(u128, f80, 1e18);
9486 try testArgs(u128, f80, 1e22);
9487 try testArgs(u128, f80, 1e26);
9488 try testArgs(u128, f80, 1e30);
9489 try testArgs(u128, f80, 1e34);
9490 try testArgs(u128, f80, 1e38);
9491 try testArgs(u128, f80, next(f80, next(f80, 0x1p128, 0.0), 0.0));
9492 try testArgs(u128, f80, next(f80, 0x1p128, 0.0));
9493
9494 try testArgs(i256, f80, -0x0.8p256);
9495 try testArgs(i256, f80, next(f80, -0x0.8p256, -0.0));
9496 try testArgs(i256, f80, next(f80, next(f80, -0x0.8p256, -0.0), -0.0));
9497 try testArgs(i256, f80, -1e76);
9498 try testArgs(i256, f80, -1e69);
9499 try testArgs(i256, f80, -1e62);
9500 try testArgs(i256, f80, -1e55);
9501 try testArgs(i256, f80, -1e48);
9502 try testArgs(i256, f80, -1e41);
9503 try testArgs(i256, f80, -1e34);
9504 try testArgs(i256, f80, -1e27);
9505 try testArgs(i256, f80, -1e20);
9506 try testArgs(i256, f80, -1e13);
9507 try testArgs(i256, f80, -1e6);
9508 try testArgs(i256, f80, -1e0);
9509 try testArgs(i256, f80, -1e-1);
9510 try testArgs(i256, f80, -0.0);
9511 try testArgs(i256, f80, 0.0);
9512 try testArgs(i256, f80, 1e-1);
9513 try testArgs(i256, f80, 1e0);
9514 try testArgs(i256, f80, 1e6);
9515 try testArgs(i256, f80, 1e13);
9516 try testArgs(i256, f80, 1e20);
9517 try testArgs(i256, f80, 1e27);
9518 try testArgs(i256, f80, 1e34);
9519 try testArgs(i256, f80, 1e41);
9520 try testArgs(i256, f80, 1e48);
9521 try testArgs(i256, f80, 1e55);
9522 try testArgs(i256, f80, 1e62);
9523 try testArgs(i256, f80, 1e69);
9524 try testArgs(i256, f80, 1e76);
9525 try testArgs(i256, f80, next(f80, next(f80, 0x0.8p256, 0.0), 0.0));
9526 try testArgs(i256, f80, next(f80, 0x0.8p256, 0.0));
9527
9528 try testArgs(u256, f80, -0.0);
9529 try testArgs(u256, f80, 0.0);
9530 try testArgs(u256, f80, 1e-1);
9531 try testArgs(u256, f80, 1e0);
9532 try testArgs(u256, f80, 1e7);
9533 try testArgs(u256, f80, 1e14);
9534 try testArgs(u256, f80, 1e21);
9535 try testArgs(u256, f80, 1e28);
9536 try testArgs(u256, f80, 1e35);
9537 try testArgs(u256, f80, 1e42);
9538 try testArgs(u256, f80, 1e49);
9539 try testArgs(u256, f80, 1e56);
9540 try testArgs(u256, f80, 1e63);
9541 try testArgs(u256, f80, 1e70);
9542 try testArgs(u256, f80, 1e77);
9543 try testArgs(u256, f80, next(f80, next(f80, 0x1p256, 0.0), 0.0));
9544 try testArgs(u256, f80, next(f80, 0x1p256, 0.0));
9545
9546 try testArgs(i8, f128, -0x0.8p8);
9547 try testArgs(i8, f128, next(f128, -0x0.8p8, -0.0));
9548 try testArgs(i8, f128, next(f128, next(f128, -0x0.8p8, -0.0), -0.0));
9549 try testArgs(i8, f128, -1e2);
9550 try testArgs(i8, f128, -1e1);
9551 try testArgs(i8, f128, -1e0);
9552 try testArgs(i8, f128, -1e-1);
9553 try testArgs(i8, f128, -0.0);
9554 try testArgs(i8, f128, 0.0);
9555 try testArgs(i8, f128, 1e-1);
9556 try testArgs(i8, f128, 1e0);
9557 try testArgs(i8, f128, 1e1);
9558 try testArgs(i8, f128, 1e2);
9559 try testArgs(i8, f128, next(f128, next(f128, 0x0.8p8, 0.0), 0.0));
9560 try testArgs(i8, f128, next(f128, 0x0.8p8, 0.0));
9561
9562 try testArgs(u8, f128, -0.0);
9563 try testArgs(u8, f128, 0.0);
9564 try testArgs(u8, f128, 1e-1);
9565 try testArgs(u8, f128, 1e0);
9566 try testArgs(u8, f128, 1e1);
9567 try testArgs(u8, f128, 1e2);
9568 try testArgs(u8, f128, next(f128, next(f128, 0x1p8, 0.0), 0.0));
9569 try testArgs(u8, f128, next(f128, 0x1p8, 0.0));
9570
9571 try testArgs(i16, f128, -0x0.8p16);
9572 try testArgs(i16, f128, next(f128, -0x0.8p16, -0.0));
9573 try testArgs(i16, f128, next(f128, next(f128, -0x0.8p16, -0.0), -0.0));
9574 try testArgs(i16, f128, -1e4);
9575 try testArgs(i16, f128, -1e3);
9576 try testArgs(i16, f128, -1e2);
9577 try testArgs(i16, f128, -1e1);
9578 try testArgs(i16, f128, -1e0);
9579 try testArgs(i16, f128, -1e-1);
9580 try testArgs(i16, f128, -0.0);
9581 try testArgs(i16, f128, 0.0);
9582 try testArgs(i16, f128, 1e-1);
9583 try testArgs(i16, f128, 1e0);
9584 try testArgs(i16, f128, 1e1);
9585 try testArgs(i16, f128, 1e2);
9586 try testArgs(i16, f128, 1e3);
9587 try testArgs(i16, f128, 1e4);
9588 try testArgs(i16, f128, next(f128, next(f128, 0x0.8p16, 0.0), 0.0));
9589 try testArgs(i16, f128, next(f128, 0x0.8p16, 0.0));
9590
9591 try testArgs(u16, f128, -0.0);
9592 try testArgs(u16, f128, 0.0);
9593 try testArgs(u16, f128, 1e-1);
9594 try testArgs(u16, f128, 1e0);
9595 try testArgs(u16, f128, 1e1);
9596 try testArgs(u16, f128, 1e2);
9597 try testArgs(u16, f128, 1e3);
9598 try testArgs(u16, f128, 1e4);
9599 try testArgs(u16, f128, next(f128, next(f128, 0x1p16, 0.0), 0.0));
9600 try testArgs(u16, f128, next(f128, 0x1p16, 0.0));
9601
9602 try testArgs(i32, f128, -0x0.8p32);
9603 try testArgs(i32, f128, next(f128, -0x0.8p32, -0.0));
9604 try testArgs(i32, f128, next(f128, next(f128, -0x0.8p32, -0.0), -0.0));
9605 try testArgs(i32, f128, -1e9);
9606 try testArgs(i32, f128, -1e8);
9607 try testArgs(i32, f128, -1e7);
9608 try testArgs(i32, f128, -1e6);
9609 try testArgs(i32, f128, -1e5);
9610 try testArgs(i32, f128, -1e4);
9611 try testArgs(i32, f128, -1e3);
9612 try testArgs(i32, f128, -1e2);
9613 try testArgs(i32, f128, -1e1);
9614 try testArgs(i32, f128, -1e0);
9615 try testArgs(i32, f128, -1e-1);
9616 try testArgs(i32, f128, -0.0);
9617 try testArgs(i32, f128, 0.0);
9618 try testArgs(i32, f128, 1e-1);
9619 try testArgs(i32, f128, 1e0);
9620 try testArgs(i32, f128, 1e1);
9621 try testArgs(i32, f128, 1e2);
9622 try testArgs(i32, f128, 1e3);
9623 try testArgs(i32, f128, 1e4);
9624 try testArgs(i32, f128, 1e5);
9625 try testArgs(i32, f128, 1e6);
9626 try testArgs(i32, f128, 1e7);
9627 try testArgs(i32, f128, 1e8);
9628 try testArgs(i32, f128, 1e9);
9629 try testArgs(i32, f128, next(f128, next(f128, 0x0.8p32, 0.0), 0.0));
9630 try testArgs(i32, f128, next(f128, 0x0.8p32, 0.0));
9631
9632 try testArgs(u32, f128, -0.0);
9633 try testArgs(u32, f128, 0.0);
9634 try testArgs(u32, f128, 1e-1);
9635 try testArgs(u32, f128, 1e0);
9636 try testArgs(u32, f128, 1e1);
9637 try testArgs(u32, f128, 1e2);
9638 try testArgs(u32, f128, 1e3);
9639 try testArgs(u32, f128, 1e4);
9640 try testArgs(u32, f128, 1e5);
9641 try testArgs(u32, f128, 1e6);
9642 try testArgs(u32, f128, 1e7);
9643 try testArgs(u32, f128, 1e8);
9644 try testArgs(u32, f128, 1e9);
9645 try testArgs(u32, f128, next(f128, next(f128, 0x1p32, 0.0), 0.0));
9646 try testArgs(u32, f128, next(f128, 0x1p32, 0.0));
9647
9648 try testArgs(i64, f128, -0x0.8p64);
9649 try testArgs(i64, f128, next(f128, -0x0.8p64, -0.0));
9650 try testArgs(i64, f128, next(f128, next(f128, -0x0.8p64, -0.0), -0.0));
9651 try testArgs(i64, f128, -1e18);
9652 try testArgs(i64, f128, -1e16);
9653 try testArgs(i64, f128, -1e14);
9654 try testArgs(i64, f128, -1e12);
9655 try testArgs(i64, f128, -1e10);
9656 try testArgs(i64, f128, -1e8);
9657 try testArgs(i64, f128, -1e6);
9658 try testArgs(i64, f128, -1e4);
9659 try testArgs(i64, f128, -1e2);
9660 try testArgs(i64, f128, -1e0);
9661 try testArgs(i64, f128, -1e-1);
9662 try testArgs(i64, f128, -0.0);
9663 try testArgs(i64, f128, 0.0);
9664 try testArgs(i64, f128, 1e-1);
9665 try testArgs(i64, f128, 1e0);
9666 try testArgs(i64, f128, 1e2);
9667 try testArgs(i64, f128, 1e4);
9668 try testArgs(i64, f128, 1e6);
9669 try testArgs(i64, f128, 1e8);
9670 try testArgs(i64, f128, 1e10);
9671 try testArgs(i64, f128, 1e11);
9672 try testArgs(i64, f128, 1e12);
9673 try testArgs(i64, f128, 1e13);
9674 try testArgs(i64, f128, 1e14);
9675 try testArgs(i64, f128, 1e15);
9676 try testArgs(i64, f128, 1e16);
9677 try testArgs(i64, f128, 1e17);
9678 try testArgs(i64, f128, 1e18);
9679 try testArgs(i64, f128, next(f128, next(f128, 0x0.8p64, 0.0), 0.0));
9680 try testArgs(i64, f128, next(f128, 0x0.8p64, 0.0));
9681
9682 try testArgs(u64, f128, -0.0);
9683 try testArgs(u64, f128, 0.0);
9684 try testArgs(u64, f128, 1e-1);
9685 try testArgs(u64, f128, 1e0);
9686 try testArgs(u64, f128, 1e2);
9687 try testArgs(u64, f128, 1e4);
9688 try testArgs(u64, f128, 1e6);
9689 try testArgs(u64, f128, 1e8);
9690 try testArgs(u64, f128, 1e10);
9691 try testArgs(u64, f128, 1e12);
9692 try testArgs(u64, f128, 1e14);
9693 try testArgs(u64, f128, 1e16);
9694 try testArgs(u64, f128, 1e18);
9695 try testArgs(u64, f128, next(f128, next(f128, 0x1p64, 0.0), 0.0));
9696 try testArgs(u64, f128, next(f128, 0x1p64, 0.0));
9697
9698 try testArgs(i128, f128, -0x0.8p128);
9699 try testArgs(i128, f128, next(f128, -0x0.8p128, -0.0));
9700 try testArgs(i128, f128, next(f128, next(f128, -0x0.8p128, -0.0), -0.0));
9701 try testArgs(i128, f128, -1e38);
9702 try testArgs(i128, f128, -1e34);
9703 try testArgs(i128, f128, -1e30);
9704 try testArgs(i128, f128, -1e26);
9705 try testArgs(i128, f128, -1e22);
9706 try testArgs(i128, f128, -1e18);
9707 try testArgs(i128, f128, -1e14);
9708 try testArgs(i128, f128, -1e10);
9709 try testArgs(i128, f128, -1e6);
9710 try testArgs(i128, f128, -1e2);
9711 try testArgs(i128, f128, -1e0);
9712 try testArgs(i128, f128, -1e-1);
9713 try testArgs(i128, f128, -0.0);
9714 try testArgs(i128, f128, 0.0);
9715 try testArgs(i128, f128, 1e-1);
9716 try testArgs(i128, f128, 1e0);
9717 try testArgs(i128, f128, 1e2);
9718 try testArgs(i128, f128, 1e6);
9719 try testArgs(i128, f128, 1e10);
9720 try testArgs(i128, f128, 1e14);
9721 try testArgs(i128, f128, 1e18);
9722 try testArgs(i128, f128, 1e22);
9723 try testArgs(i128, f128, 1e26);
9724 try testArgs(i128, f128, 1e30);
9725 try testArgs(i128, f128, 1e34);
9726 try testArgs(i128, f128, 1e38);
9727 try testArgs(i128, f128, next(f128, next(f128, 0x0.8p128, 0.0), 0.0));
9728 try testArgs(i128, f128, next(f128, 0x0.8p128, 0.0));
9729
9730 try testArgs(u128, f128, -0.0);
9731 try testArgs(u128, f128, 0.0);
9732 try testArgs(u128, f128, 1e-1);
9733 try testArgs(u128, f128, 1e0);
9734 try testArgs(u128, f128, 1e2);
9735 try testArgs(u128, f128, 1e6);
9736 try testArgs(u128, f128, 1e10);
9737 try testArgs(u128, f128, 1e14);
9738 try testArgs(u128, f128, 1e18);
9739 try testArgs(u128, f128, 1e22);
9740 try testArgs(u128, f128, 1e26);
9741 try testArgs(u128, f128, 1e30);
9742 try testArgs(u128, f128, 1e34);
9743 try testArgs(u128, f128, 1e38);
9744 try testArgs(u128, f128, next(f128, next(f128, 0x1p128, 0.0), 0.0));
9745 try testArgs(u128, f128, next(f128, 0x1p128, 0.0));
9746
9747 try testArgs(i256, f128, -0x0.8p256);
9748 try testArgs(i256, f128, next(f128, -0x0.8p256, -0.0));
9749 try testArgs(i256, f128, next(f128, next(f128, -0x0.8p256, -0.0), -0.0));
9750 try testArgs(i256, f128, -1e76);
9751 try testArgs(i256, f128, -1e69);
9752 try testArgs(i256, f128, -1e62);
9753 try testArgs(i256, f128, -1e55);
9754 try testArgs(i256, f128, -1e48);
9755 try testArgs(i256, f128, -1e41);
9756 try testArgs(i256, f128, -1e34);
9757 try testArgs(i256, f128, -1e27);
9758 try testArgs(i256, f128, -1e20);
9759 try testArgs(i256, f128, -1e13);
9760 try testArgs(i256, f128, -1e6);
9761 try testArgs(i256, f128, -1e0);
9762 try testArgs(i256, f128, -1e-1);
9763 try testArgs(i256, f128, -0.0);
9764 try testArgs(i256, f128, 0.0);
9765 try testArgs(i256, f128, 1e-1);
9766 try testArgs(i256, f128, 1e0);
9767 try testArgs(i256, f128, 1e6);
9768 try testArgs(i256, f128, 1e13);
9769 try testArgs(i256, f128, 1e20);
9770 try testArgs(i256, f128, 1e27);
9771 try testArgs(i256, f128, 1e34);
9772 try testArgs(i256, f128, 1e41);
9773 try testArgs(i256, f128, 1e48);
9774 try testArgs(i256, f128, 1e55);
9775 try testArgs(i256, f128, 1e62);
9776 try testArgs(i256, f128, 1e69);
9777 try testArgs(i256, f128, 1e76);
9778 try testArgs(i256, f128, next(f128, next(f128, 0x0.8p256, 0.0), 0.0));
9779 try testArgs(i256, f128, next(f128, 0x0.8p256, 0.0));
9780
9781 try testArgs(u256, f128, -0.0);
9782 try testArgs(u256, f128, 0.0);
9783 try testArgs(u256, f128, 1e-1);
9784 try testArgs(u256, f128, 1e0);
9785 try testArgs(u256, f128, 1e7);
9786 try testArgs(u256, f128, 1e14);
9787 try testArgs(u256, f128, 1e21);
9788 try testArgs(u256, f128, 1e28);
9789 try testArgs(u256, f128, 1e35);
9790 try testArgs(u256, f128, 1e42);
9791 try testArgs(u256, f128, 1e49);
9792 try testArgs(u256, f128, 1e56);
9793 try testArgs(u256, f128, 1e63);
9794 try testArgs(u256, f128, 1e70);
9795 try testArgs(u256, f128, 1e77);
9796 try testArgs(u256, f128, next(f128, next(f128, 0x1p256, 0.0), 0.0));
9797 try testArgs(u256, f128, next(f128, 0x1p256, 0.0));
9798 }
9799 fn testFloatsFromInts() !void {
9800 try testArgs(f16, i8, imin(i8));
9801 try testArgs(f16, i8, imin(i8) + 1);
9802 try testArgs(f16, i8, -1e2);
9803 try testArgs(f16, i8, -1e1);
9804 try testArgs(f16, i8, -1e0);
9805 try testArgs(f16, i8, 0);
9806 try testArgs(f16, i8, 1e0);
9807 try testArgs(f16, i8, 1e1);
9808 try testArgs(f16, i8, 1e2);
9809 try testArgs(f16, i8, imax(i8) - 1);
9810 try testArgs(f16, i8, imax(i8));
9811
9812 try testArgs(f16, u8, 0);
9813 try testArgs(f16, u8, 1e0);
9814 try testArgs(f16, u8, 1e1);
9815 try testArgs(f16, u8, 1e2);
9816 try testArgs(f16, u8, imax(u8) - 1);
9817 try testArgs(f16, u8, imax(u8));
9818
9819 try testArgs(f16, i16, imin(i16));
9820 try testArgs(f16, i16, imin(i16) + 1);
9821 try testArgs(f16, i16, -1e4);
9822 try testArgs(f16, i16, -1e3);
9823 try testArgs(f16, i16, -1e2);
9824 try testArgs(f16, i16, -1e1);
9825 try testArgs(f16, i16, -1e0);
9826 try testArgs(f16, i16, 0);
9827 try testArgs(f16, i16, 1e0);
9828 try testArgs(f16, i16, 1e1);
9829 try testArgs(f16, i16, 1e2);
9830 try testArgs(f16, i16, 1e3);
9831 try testArgs(f16, i16, 1e4);
9832 try testArgs(f16, i16, imax(i16) - 1);
9833 try testArgs(f16, i16, imax(i16));
9834
9835 try testArgs(f16, u16, 0);
9836 try testArgs(f16, u16, 1e0);
9837 try testArgs(f16, u16, 1e1);
9838 try testArgs(f16, u16, 1e2);
9839 try testArgs(f16, u16, 1e3);
9840 try testArgs(f16, u16, 1e4);
9841 try testArgs(f16, u16, imax(u16) - 1);
9842 try testArgs(f16, u16, imax(u16));
9843
9844 try testArgs(f16, i32, imin(i32));
9845 try testArgs(f16, i32, imin(i32) + 1);
9846 try testArgs(f16, i32, -1e9);
9847 try testArgs(f16, i32, -1e8);
9848 try testArgs(f16, i32, -1e7);
9849 try testArgs(f16, i32, -1e6);
9850 try testArgs(f16, i32, -1e5);
9851 try testArgs(f16, i32, -1e4);
9852 try testArgs(f16, i32, -1e3);
9853 try testArgs(f16, i32, -1e2);
9854 try testArgs(f16, i32, -1e1);
9855 try testArgs(f16, i32, -1e0);
9856 try testArgs(f16, i32, 0);
9857 try testArgs(f16, i32, 1e0);
9858 try testArgs(f16, i32, 1e1);
9859 try testArgs(f16, i32, 1e2);
9860 try testArgs(f16, i32, 1e3);
9861 try testArgs(f16, i32, 1e4);
9862 try testArgs(f16, i32, 1e5);
9863 try testArgs(f16, i32, 1e6);
9864 try testArgs(f16, i32, 1e7);
9865 try testArgs(f16, i32, 1e8);
9866 try testArgs(f16, i32, 1e9);
9867 try testArgs(f16, i32, imax(i32) - 1);
9868 try testArgs(f16, i32, imax(i32));
9869
9870 try testArgs(f16, u32, 0);
9871 try testArgs(f16, u32, 1e0);
9872 try testArgs(f16, u32, 1e1);
9873 try testArgs(f16, u32, 1e2);
9874 try testArgs(f16, u32, 1e3);
9875 try testArgs(f16, u32, 1e4);
9876 try testArgs(f16, u32, 1e5);
9877 try testArgs(f16, u32, 1e6);
9878 try testArgs(f16, u32, 1e7);
9879 try testArgs(f16, u32, 1e8);
9880 try testArgs(f16, u32, 1e9);
9881 try testArgs(f16, u32, imax(u32) - 1);
9882 try testArgs(f16, u32, imax(u32));
9883
9884 try testArgs(f16, i64, imin(i64));
9885 try testArgs(f16, i64, imin(i64) + 1);
9886 try testArgs(f16, i64, -1e18);
9887 try testArgs(f16, i64, -1e16);
9888 try testArgs(f16, i64, -1e14);
9889 try testArgs(f16, i64, -1e12);
9890 try testArgs(f16, i64, -1e10);
9891 try testArgs(f16, i64, -1e8);
9892 try testArgs(f16, i64, -1e6);
9893 try testArgs(f16, i64, -1e4);
9894 try testArgs(f16, i64, -1e2);
9895 try testArgs(f16, i64, -1e0);
9896 try testArgs(f16, i64, 0);
9897 try testArgs(f16, i64, 1e0);
9898 try testArgs(f16, i64, 1e2);
9899 try testArgs(f16, i64, 1e4);
9900 try testArgs(f16, i64, 1e6);
9901 try testArgs(f16, i64, 1e8);
9902 try testArgs(f16, i64, 1e10);
9903 try testArgs(f16, i64, 1e12);
9904 try testArgs(f16, i64, 1e14);
9905 try testArgs(f16, i64, 1e16);
9906 try testArgs(f16, i64, 1e18);
9907 try testArgs(f16, i64, imax(i64) - 1);
9908 try testArgs(f16, i64, imax(i64));
9909
9910 try testArgs(f16, u64, 0);
9911 try testArgs(f16, u64, 1e0);
9912 try testArgs(f16, u64, 1e2);
9913 try testArgs(f16, u64, 1e4);
9914 try testArgs(f16, u64, 1e6);
9915 try testArgs(f16, u64, 1e8);
9916 try testArgs(f16, u64, 1e10);
9917 try testArgs(f16, u64, 1e12);
9918 try testArgs(f16, u64, 1e14);
9919 try testArgs(f16, u64, 1e16);
9920 try testArgs(f16, u64, 1e18);
9921 try testArgs(f16, u64, imax(u64) - 1);
9922 try testArgs(f16, u64, imax(u64));
9923
9924 try testArgs(f16, i128, imin(i128));
9925 try testArgs(f16, i128, imin(i128) + 1);
9926 try testArgs(f16, i128, -1e38);
9927 try testArgs(f16, i128, -1e34);
9928 try testArgs(f16, i128, -1e30);
9929 try testArgs(f16, i128, -1e26);
9930 try testArgs(f16, i128, -1e22);
9931 try testArgs(f16, i128, -1e18);
9932 try testArgs(f16, i128, -1e14);
9933 try testArgs(f16, i128, -1e10);
9934 try testArgs(f16, i128, -1e6);
9935 try testArgs(f16, i128, -1e2);
9936 try testArgs(f16, i128, -1e0);
9937 try testArgs(f16, i128, 0);
9938 try testArgs(f16, i128, 1e0);
9939 try testArgs(f16, i128, 1e2);
9940 try testArgs(f16, i128, 1e6);
9941 try testArgs(f16, i128, 1e10);
9942 try testArgs(f16, i128, 1e14);
9943 try testArgs(f16, i128, 1e18);
9944 try testArgs(f16, i128, 1e22);
9945 try testArgs(f16, i128, 1e26);
9946 try testArgs(f16, i128, 1e30);
9947 try testArgs(f16, i128, 1e34);
9948 try testArgs(f16, i128, 1e38);
9949 try testArgs(f16, i128, imax(i128) - 1);
9950 try testArgs(f16, i128, imax(i128));
9951
9952 try testArgs(f16, u128, 0);
9953 try testArgs(f16, u128, 1e0);
9954 try testArgs(f16, u128, 1e2);
9955 try testArgs(f16, u128, 1e6);
9956 try testArgs(f16, u128, 1e10);
9957 try testArgs(f16, u128, 1e14);
9958 try testArgs(f16, u128, 1e18);
9959 try testArgs(f16, u128, 1e22);
9960 try testArgs(f16, u128, 1e26);
9961 try testArgs(f16, u128, 1e30);
9962 try testArgs(f16, u128, 1e34);
9963 try testArgs(f16, u128, 1e38);
9964 try testArgs(f16, u128, imax(u128) - 1);
9965 try testArgs(f16, u128, imax(u128));
9966
9967 try testArgs(f16, i256, imin(i256));
9968 try testArgs(f16, i256, imin(i256) + 1);
9969 try testArgs(f16, i256, -1e76);
9970 try testArgs(f16, i256, -1e69);
9971 try testArgs(f16, i256, -1e62);
9972 try testArgs(f16, i256, -1e55);
9973 try testArgs(f16, i256, -1e48);
9974 try testArgs(f16, i256, -1e41);
9975 try testArgs(f16, i256, -1e34);
9976 try testArgs(f16, i256, -1e27);
9977 try testArgs(f16, i256, -1e20);
9978 try testArgs(f16, i256, -1e13);
9979 try testArgs(f16, i256, -1e6);
9980 try testArgs(f16, i256, -1e0);
9981 try testArgs(f16, i256, 0);
9982 try testArgs(f16, i256, 1e0);
9983 try testArgs(f16, i256, 1e6);
9984 try testArgs(f16, i256, 1e13);
9985 try testArgs(f16, i256, 1e20);
9986 try testArgs(f16, i256, 1e27);
9987 try testArgs(f16, i256, 1e34);
9988 try testArgs(f16, i256, 1e41);
9989 try testArgs(f16, i256, 1e48);
9990 try testArgs(f16, i256, 1e55);
9991 try testArgs(f16, i256, 1e62);
9992 try testArgs(f16, i256, 1e69);
9993 try testArgs(f16, i256, 1e76);
9994 try testArgs(f16, i256, imax(i256) - 1);
9995 try testArgs(f16, i256, imax(i256));
9996
9997 try testArgs(f16, u256, 0);
9998 try testArgs(f16, u256, 1e0);
9999 try testArgs(f16, u256, 1e7);
10000 try testArgs(f16, u256, 1e14);
10001 try testArgs(f16, u256, 1e21);
10002 try testArgs(f16, u256, 1e28);
10003 try testArgs(f16, u256, 1e35);
10004 try testArgs(f16, u256, 1e42);
10005 try testArgs(f16, u256, 1e49);
10006 try testArgs(f16, u256, 1e56);
10007 try testArgs(f16, u256, 1e63);
10008 try testArgs(f16, u256, 1e70);
10009 try testArgs(f16, u256, 1e77);
10010 try testArgs(f16, u256, imax(u256) - 1);
10011 try testArgs(f16, u256, imax(u256));
10012
10013 try testArgs(f32, i8, imin(i8));
10014 try testArgs(f32, i8, imin(i8) + 1);
10015 try testArgs(f32, i8, -1e2);
10016 try testArgs(f32, i8, -1e1);
10017 try testArgs(f32, i8, -1e0);
10018 try testArgs(f32, i8, 0);
10019 try testArgs(f32, i8, 1e0);
10020 try testArgs(f32, i8, 1e1);
10021 try testArgs(f32, i8, 1e2);
10022 try testArgs(f32, i8, imax(i8) - 1);
10023 try testArgs(f32, i8, imax(i8));
10024
10025 try testArgs(f32, u8, 0);
10026 try testArgs(f32, u8, 1e0);
10027 try testArgs(f32, u8, 1e1);
10028 try testArgs(f32, u8, 1e2);
10029 try testArgs(f32, u8, imax(u8) - 1);
10030 try testArgs(f32, u8, imax(u8));
10031
10032 try testArgs(f32, i16, imin(i16));
10033 try testArgs(f32, i16, imin(i16) + 1);
10034 try testArgs(f32, i16, -1e4);
10035 try testArgs(f32, i16, -1e3);
10036 try testArgs(f32, i16, -1e2);
10037 try testArgs(f32, i16, -1e1);
10038 try testArgs(f32, i16, -1e0);
10039 try testArgs(f32, i16, 0);
10040 try testArgs(f32, i16, 1e0);
10041 try testArgs(f32, i16, 1e1);
10042 try testArgs(f32, i16, 1e2);
10043 try testArgs(f32, i16, 1e3);
10044 try testArgs(f32, i16, 1e4);
10045 try testArgs(f32, i16, imax(i16) - 1);
10046 try testArgs(f32, i16, imax(i16));
10047
10048 try testArgs(f32, u16, 0);
10049 try testArgs(f32, u16, 1e0);
10050 try testArgs(f32, u16, 1e1);
10051 try testArgs(f32, u16, 1e2);
10052 try testArgs(f32, u16, 1e3);
10053 try testArgs(f32, u16, 1e4);
10054 try testArgs(f32, u16, imax(u16) - 1);
10055 try testArgs(f32, u16, imax(u16));
10056
10057 try testArgs(f32, i32, imin(i32));
10058 try testArgs(f32, i32, imin(i32) + 1);
10059 try testArgs(f32, i32, -1e9);
10060 try testArgs(f32, i32, -1e8);
10061 try testArgs(f32, i32, -1e7);
10062 try testArgs(f32, i32, -1e6);
10063 try testArgs(f32, i32, -1e5);
10064 try testArgs(f32, i32, -1e4);
10065 try testArgs(f32, i32, -1e3);
10066 try testArgs(f32, i32, -1e2);
10067 try testArgs(f32, i32, -1e1);
10068 try testArgs(f32, i32, -1e0);
10069 try testArgs(f32, i32, 0);
10070 try testArgs(f32, i32, 1e0);
10071 try testArgs(f32, i32, 1e1);
10072 try testArgs(f32, i32, 1e2);
10073 try testArgs(f32, i32, 1e3);
10074 try testArgs(f32, i32, 1e4);
10075 try testArgs(f32, i32, 1e5);
10076 try testArgs(f32, i32, 1e6);
10077 try testArgs(f32, i32, 1e7);
10078 try testArgs(f32, i32, 1e8);
10079 try testArgs(f32, i32, 1e9);
10080 try testArgs(f32, i32, imax(i32) - 1);
10081 try testArgs(f32, i32, imax(i32));
10082
10083 try testArgs(f32, u32, 0);
10084 try testArgs(f32, u32, 1e0);
10085 try testArgs(f32, u32, 1e1);
10086 try testArgs(f32, u32, 1e2);
10087 try testArgs(f32, u32, 1e3);
10088 try testArgs(f32, u32, 1e4);
10089 try testArgs(f32, u32, 1e5);
10090 try testArgs(f32, u32, 1e6);
10091 try testArgs(f32, u32, 1e7);
10092 try testArgs(f32, u32, 1e8);
10093 try testArgs(f32, u32, 1e9);
10094 try testArgs(f32, u32, imax(u32) - 1);
10095 try testArgs(f32, u32, imax(u32));
10096
10097 try testArgs(f32, i64, imin(i64));
10098 try testArgs(f32, i64, imin(i64) + 1);
10099 try testArgs(f32, i64, -1e18);
10100 try testArgs(f32, i64, -1e16);
10101 try testArgs(f32, i64, -1e14);
10102 try testArgs(f32, i64, -1e12);
10103 try testArgs(f32, i64, -1e10);
10104 try testArgs(f32, i64, -1e8);
10105 try testArgs(f32, i64, -1e6);
10106 try testArgs(f32, i64, -1e4);
10107 try testArgs(f32, i64, -1e2);
10108 try testArgs(f32, i64, -1e0);
10109 try testArgs(f32, i64, 0);
10110 try testArgs(f32, i64, 1e0);
10111 try testArgs(f32, i64, 1e2);
10112 try testArgs(f32, i64, 1e4);
10113 try testArgs(f32, i64, 1e6);
10114 try testArgs(f32, i64, 1e8);
10115 try testArgs(f32, i64, 1e10);
10116 try testArgs(f32, i64, 1e12);
10117 try testArgs(f32, i64, 1e14);
10118 try testArgs(f32, i64, 1e16);
10119 try testArgs(f32, i64, 1e18);
10120 try testArgs(f32, i64, imax(i64) - 1);
10121 try testArgs(f32, i64, imax(i64));
10122
10123 try testArgs(f32, u64, 0);
10124 try testArgs(f32, u64, 1e0);
10125 try testArgs(f32, u64, 1e2);
10126 try testArgs(f32, u64, 1e4);
10127 try testArgs(f32, u64, 1e6);
10128 try testArgs(f32, u64, 1e8);
10129 try testArgs(f32, u64, 1e10);
10130 try testArgs(f32, u64, 1e12);
10131 try testArgs(f32, u64, 1e14);
10132 try testArgs(f32, u64, 1e16);
10133 try testArgs(f32, u64, 1e18);
10134 try testArgs(f32, u64, imax(u64) - 1);
10135 try testArgs(f32, u64, imax(u64));
10136
10137 try testArgs(f32, i128, imin(i128));
10138 try testArgs(f32, i128, imin(i128) + 1);
10139 try testArgs(f32, i128, -1e38);
10140 try testArgs(f32, i128, -1e34);
10141 try testArgs(f32, i128, -1e30);
10142 try testArgs(f32, i128, -1e26);
10143 try testArgs(f32, i128, -1e22);
10144 try testArgs(f32, i128, -1e18);
10145 try testArgs(f32, i128, -1e14);
10146 try testArgs(f32, i128, -1e10);
10147 try testArgs(f32, i128, -1e6);
10148 try testArgs(f32, i128, -1e2);
10149 try testArgs(f32, i128, -1e0);
10150 try testArgs(f32, i128, 0);
10151 try testArgs(f32, i128, 1e0);
10152 try testArgs(f32, i128, 1e2);
10153 try testArgs(f32, i128, 1e6);
10154 try testArgs(f32, i128, 1e10);
10155 try testArgs(f32, i128, 1e14);
10156 try testArgs(f32, i128, 1e18);
10157 try testArgs(f32, i128, 1e22);
10158 try testArgs(f32, i128, 1e26);
10159 try testArgs(f32, i128, 1e30);
10160 try testArgs(f32, i128, 1e34);
10161 try testArgs(f32, i128, 1e38);
10162 try testArgs(f32, i128, imax(i128) - 1);
10163 try testArgs(f32, i128, imax(i128));
10164
10165 try testArgs(f32, u128, 0);
10166 try testArgs(f32, u128, 1e0);
10167 try testArgs(f32, u128, 1e2);
10168 try testArgs(f32, u128, 1e6);
10169 try testArgs(f32, u128, 1e10);
10170 try testArgs(f32, u128, 1e14);
10171 try testArgs(f32, u128, 1e18);
10172 try testArgs(f32, u128, 1e22);
10173 try testArgs(f32, u128, 1e26);
10174 try testArgs(f32, u128, 1e30);
10175 try testArgs(f32, u128, 1e34);
10176 try testArgs(f32, u128, 1e38);
10177 try testArgs(f32, u128, imax(u128) - 1);
10178 try testArgs(f32, u128, imax(u128));
10179
10180 try testArgs(f32, i256, imin(i256));
10181 try testArgs(f32, i256, imin(i256) + 1);
10182 try testArgs(f32, i256, -1e76);
10183 try testArgs(f32, i256, -1e69);
10184 try testArgs(f32, i256, -1e62);
10185 try testArgs(f32, i256, -1e55);
10186 try testArgs(f32, i256, -1e48);
10187 try testArgs(f32, i256, -1e41);
10188 try testArgs(f32, i256, -1e34);
10189 try testArgs(f32, i256, -1e27);
10190 try testArgs(f32, i256, -1e20);
10191 try testArgs(f32, i256, -1e13);
10192 try testArgs(f32, i256, -1e6);
10193 try testArgs(f32, i256, -1e0);
10194 try testArgs(f32, i256, 0);
10195 try testArgs(f32, i256, 1e0);
10196 try testArgs(f32, i256, 1e6);
10197 try testArgs(f32, i256, 1e13);
10198 try testArgs(f32, i256, 1e20);
10199 try testArgs(f32, i256, 1e27);
10200 try testArgs(f32, i256, 1e34);
10201 try testArgs(f32, i256, 1e41);
10202 try testArgs(f32, i256, 1e48);
10203 try testArgs(f32, i256, 1e55);
10204 try testArgs(f32, i256, 1e62);
10205 try testArgs(f32, i256, 1e69);
10206 try testArgs(f32, i256, 1e76);
10207 try testArgs(f32, i256, imax(i256) - 1);
10208 try testArgs(f32, i256, imax(i256));
10209
10210 try testArgs(f32, u256, 0);
10211 try testArgs(f32, u256, 1e0);
10212 try testArgs(f32, u256, 1e7);
10213 try testArgs(f32, u256, 1e14);
10214 try testArgs(f32, u256, 1e21);
10215 try testArgs(f32, u256, 1e28);
10216 try testArgs(f32, u256, 1e35);
10217 try testArgs(f32, u256, 1e42);
10218 try testArgs(f32, u256, 1e49);
10219 try testArgs(f32, u256, 1e56);
10220 try testArgs(f32, u256, 1e63);
10221 try testArgs(f32, u256, 1e70);
10222 try testArgs(f32, u256, 1e77);
10223 try testArgs(f32, u256, imax(u256) - 1);
10224 try testArgs(f32, u256, imax(u256));
10225
10226 try testArgs(f64, i8, imin(i8));
10227 try testArgs(f64, i8, imin(i8) + 1);
10228 try testArgs(f64, i8, -1e2);
10229 try testArgs(f64, i8, -1e1);
10230 try testArgs(f64, i8, -1e0);
10231 try testArgs(f64, i8, 0);
10232 try testArgs(f64, i8, 1e0);
10233 try testArgs(f64, i8, 1e1);
10234 try testArgs(f64, i8, 1e2);
10235 try testArgs(f64, i8, imax(i8) - 1);
10236 try testArgs(f64, i8, imax(i8));
10237
10238 try testArgs(f64, u8, 0);
10239 try testArgs(f64, u8, 1e0);
10240 try testArgs(f64, u8, 1e1);
10241 try testArgs(f64, u8, 1e2);
10242 try testArgs(f64, u8, imax(u8) - 1);
10243 try testArgs(f64, u8, imax(u8));
10244
10245 try testArgs(f64, i16, imin(i16));
10246 try testArgs(f64, i16, imin(i16) + 1);
10247 try testArgs(f64, i16, -1e4);
10248 try testArgs(f64, i16, -1e3);
10249 try testArgs(f64, i16, -1e2);
10250 try testArgs(f64, i16, -1e1);
10251 try testArgs(f64, i16, -1e0);
10252 try testArgs(f64, i16, 0);
10253 try testArgs(f64, i16, 1e0);
10254 try testArgs(f64, i16, 1e1);
10255 try testArgs(f64, i16, 1e2);
10256 try testArgs(f64, i16, 1e3);
10257 try testArgs(f64, i16, 1e4);
10258 try testArgs(f64, i16, imax(i16) - 1);
10259 try testArgs(f64, i16, imax(i16));
10260
10261 try testArgs(f64, u16, 0);
10262 try testArgs(f64, u16, 1e0);
10263 try testArgs(f64, u16, 1e1);
10264 try testArgs(f64, u16, 1e2);
10265 try testArgs(f64, u16, 1e3);
10266 try testArgs(f64, u16, 1e4);
10267 try testArgs(f64, u16, imax(u16) - 1);
10268 try testArgs(f64, u16, imax(u16));
10269
10270 try testArgs(f64, i32, imin(i32));
10271 try testArgs(f64, i32, imin(i32) + 1);
10272 try testArgs(f64, i32, -1e9);
10273 try testArgs(f64, i32, -1e8);
10274 try testArgs(f64, i32, -1e7);
10275 try testArgs(f64, i32, -1e6);
10276 try testArgs(f64, i32, -1e5);
10277 try testArgs(f64, i32, -1e4);
10278 try testArgs(f64, i32, -1e3);
10279 try testArgs(f64, i32, -1e2);
10280 try testArgs(f64, i32, -1e1);
10281 try testArgs(f64, i32, -1e0);
10282 try testArgs(f64, i32, 0);
10283 try testArgs(f64, i32, 1e0);
10284 try testArgs(f64, i32, 1e1);
10285 try testArgs(f64, i32, 1e2);
10286 try testArgs(f64, i32, 1e3);
10287 try testArgs(f64, i32, 1e4);
10288 try testArgs(f64, i32, 1e5);
10289 try testArgs(f64, i32, 1e6);
10290 try testArgs(f64, i32, 1e7);
10291 try testArgs(f64, i32, 1e8);
10292 try testArgs(f64, i32, 1e9);
10293 try testArgs(f64, i32, imax(i32) - 1);
10294 try testArgs(f64, i32, imax(i32));
10295
10296 try testArgs(f64, u32, 0);
10297 try testArgs(f64, u32, 1e0);
10298 try testArgs(f64, u32, 1e1);
10299 try testArgs(f64, u32, 1e2);
10300 try testArgs(f64, u32, 1e3);
10301 try testArgs(f64, u32, 1e4);
10302 try testArgs(f64, u32, 1e5);
10303 try testArgs(f64, u32, 1e6);
10304 try testArgs(f64, u32, 1e7);
10305 try testArgs(f64, u32, 1e8);
10306 try testArgs(f64, u32, 1e9);
10307 try testArgs(f64, u32, imax(u32) - 1);
10308 try testArgs(f64, u32, imax(u32));
10309
10310 try testArgs(f64, i64, imin(i64));
10311 try testArgs(f64, i64, imin(i64) + 1);
10312 try testArgs(f64, i64, -1e18);
10313 try testArgs(f64, i64, -1e16);
10314 try testArgs(f64, i64, -1e14);
10315 try testArgs(f64, i64, -1e12);
10316 try testArgs(f64, i64, -1e10);
10317 try testArgs(f64, i64, -1e8);
10318 try testArgs(f64, i64, -1e6);
10319 try testArgs(f64, i64, -1e4);
10320 try testArgs(f64, i64, -1e2);
10321 try testArgs(f64, i64, -1e0);
10322 try testArgs(f64, i64, 0);
10323 try testArgs(f64, i64, 1e0);
10324 try testArgs(f64, i64, 1e2);
10325 try testArgs(f64, i64, 1e4);
10326 try testArgs(f64, i64, 1e6);
10327 try testArgs(f64, i64, 1e8);
10328 try testArgs(f64, i64, 1e10);
10329 try testArgs(f64, i64, 1e12);
10330 try testArgs(f64, i64, 1e14);
10331 try testArgs(f64, i64, 1e16);
10332 try testArgs(f64, i64, 1e18);
10333 try testArgs(f64, i64, imax(i64) - 1);
10334 try testArgs(f64, i64, imax(i64));
10335
10336 try testArgs(f64, u64, 0);
10337 try testArgs(f64, u64, 1e0);
10338 try testArgs(f64, u64, 1e2);
10339 try testArgs(f64, u64, 1e4);
10340 try testArgs(f64, u64, 1e6);
10341 try testArgs(f64, u64, 1e8);
10342 try testArgs(f64, u64, 1e10);
10343 try testArgs(f64, u64, 1e12);
10344 try testArgs(f64, u64, 1e14);
10345 try testArgs(f64, u64, 1e16);
10346 try testArgs(f64, u64, 1e18);
10347 try testArgs(f64, u64, imax(u64) - 1);
10348 try testArgs(f64, u64, imax(u64));
10349
10350 try testArgs(f64, i128, imin(i128));
10351 try testArgs(f64, i128, imin(i128) + 1);
10352 try testArgs(f64, i128, -1e38);
10353 try testArgs(f64, i128, -1e34);
10354 try testArgs(f64, i128, -1e30);
10355 try testArgs(f64, i128, -1e26);
10356 try testArgs(f64, i128, -1e22);
10357 try testArgs(f64, i128, -1e18);
10358 try testArgs(f64, i128, -1e14);
10359 try testArgs(f64, i128, -1e10);
10360 try testArgs(f64, i128, -1e6);
10361 try testArgs(f64, i128, -1e2);
10362 try testArgs(f64, i128, -1e0);
10363 try testArgs(f64, i128, 0);
10364 try testArgs(f64, i128, 1e0);
10365 try testArgs(f64, i128, 1e2);
10366 try testArgs(f64, i128, 1e6);
10367 try testArgs(f64, i128, 1e10);
10368 try testArgs(f64, i128, 1e14);
10369 try testArgs(f64, i128, 1e18);
10370 try testArgs(f64, i128, 1e22);
10371 try testArgs(f64, i128, 1e26);
10372 try testArgs(f64, i128, 1e30);
10373 try testArgs(f64, i128, 1e34);
10374 try testArgs(f64, i128, 1e38);
10375 try testArgs(f64, i128, imax(i128) - 1);
10376 try testArgs(f64, i128, imax(i128));
10377
10378 try testArgs(f64, u128, 0);
10379 try testArgs(f64, u128, 1e0);
10380 try testArgs(f64, u128, 1e2);
10381 try testArgs(f64, u128, 1e6);
10382 try testArgs(f64, u128, 1e10);
10383 try testArgs(f64, u128, 1e14);
10384 try testArgs(f64, u128, 1e18);
10385 try testArgs(f64, u128, 1e22);
10386 try testArgs(f64, u128, 1e26);
10387 try testArgs(f64, u128, 1e30);
10388 try testArgs(f64, u128, 1e34);
10389 try testArgs(f64, u128, 1e38);
10390 try testArgs(f64, u128, imax(u128) - 1);
10391 try testArgs(f64, u128, imax(u128));
10392
10393 try testArgs(f64, i256, imin(i256));
10394 try testArgs(f64, i256, imin(i256) + 1);
10395 try testArgs(f64, i256, -1e76);
10396 try testArgs(f64, i256, -1e69);
10397 try testArgs(f64, i256, -1e62);
10398 try testArgs(f64, i256, -1e55);
10399 try testArgs(f64, i256, -1e48);
10400 try testArgs(f64, i256, -1e41);
10401 try testArgs(f64, i256, -1e34);
10402 try testArgs(f64, i256, -1e27);
10403 try testArgs(f64, i256, -1e20);
10404 try testArgs(f64, i256, -1e13);
10405 try testArgs(f64, i256, -1e6);
10406 try testArgs(f64, i256, -1e0);
10407 try testArgs(f64, i256, 0);
10408 try testArgs(f64, i256, 1e0);
10409 try testArgs(f64, i256, 1e6);
10410 try testArgs(f64, i256, 1e13);
10411 try testArgs(f64, i256, 1e20);
10412 try testArgs(f64, i256, 1e27);
10413 try testArgs(f64, i256, 1e34);
10414 try testArgs(f64, i256, 1e41);
10415 try testArgs(f64, i256, 1e48);
10416 try testArgs(f64, i256, 1e55);
10417 try testArgs(f64, i256, 1e62);
10418 try testArgs(f64, i256, 1e69);
10419 try testArgs(f64, i256, 1e76);
10420 try testArgs(f64, i256, imax(i256) - 1);
10421 try testArgs(f64, i256, imax(i256));
10422
10423 try testArgs(f64, u256, 0);
10424 try testArgs(f64, u256, 1e0);
10425 try testArgs(f64, u256, 1e7);
10426 try testArgs(f64, u256, 1e14);
10427 try testArgs(f64, u256, 1e21);
10428 try testArgs(f64, u256, 1e28);
10429 try testArgs(f64, u256, 1e35);
10430 try testArgs(f64, u256, 1e42);
10431 try testArgs(f64, u256, 1e49);
10432 try testArgs(f64, u256, 1e56);
10433 try testArgs(f64, u256, 1e63);
10434 try testArgs(f64, u256, 1e70);
10435 try testArgs(f64, u256, 1e77);
10436 try testArgs(f64, u256, imax(u256) - 1);
10437 try testArgs(f64, u256, imax(u256));
10438
10439 try testArgs(f80, i8, imin(i8));
10440 try testArgs(f80, i8, imin(i8) + 1);
10441 try testArgs(f80, i8, -1e2);
10442 try testArgs(f80, i8, -1e1);
10443 try testArgs(f80, i8, -1e0);
10444 try testArgs(f80, i8, 0);
10445 try testArgs(f80, i8, 1e0);
10446 try testArgs(f80, i8, 1e1);
10447 try testArgs(f80, i8, 1e2);
10448 try testArgs(f80, i8, imax(i8) - 1);
10449 try testArgs(f80, i8, imax(i8));
10450
10451 try testArgs(f80, u8, 0);
10452 try testArgs(f80, u8, 1e0);
10453 try testArgs(f80, u8, 1e1);
10454 try testArgs(f80, u8, 1e2);
10455 try testArgs(f80, u8, imax(u8) - 1);
10456 try testArgs(f80, u8, imax(u8));
10457
10458 try testArgs(f80, i16, imin(i16));
10459 try testArgs(f80, i16, imin(i16) + 1);
10460 try testArgs(f80, i16, -1e4);
10461 try testArgs(f80, i16, -1e3);
10462 try testArgs(f80, i16, -1e2);
10463 try testArgs(f80, i16, -1e1);
10464 try testArgs(f80, i16, -1e0);
10465 try testArgs(f80, i16, 0);
10466 try testArgs(f80, i16, 1e0);
10467 try testArgs(f80, i16, 1e1);
10468 try testArgs(f80, i16, 1e2);
10469 try testArgs(f80, i16, 1e3);
10470 try testArgs(f80, i16, 1e4);
10471 try testArgs(f80, i16, imax(i16) - 1);
10472 try testArgs(f80, i16, imax(i16));
10473
10474 try testArgs(f80, u16, 0);
10475 try testArgs(f80, u16, 1e0);
10476 try testArgs(f80, u16, 1e1);
10477 try testArgs(f80, u16, 1e2);
10478 try testArgs(f80, u16, 1e3);
10479 try testArgs(f80, u16, 1e4);
10480 try testArgs(f80, u16, imax(u16) - 1);
10481 try testArgs(f80, u16, imax(u16));
10482
10483 try testArgs(f80, i32, imin(i32));
10484 try testArgs(f80, i32, imin(i32) + 1);
10485 try testArgs(f80, i32, -1e9);
10486 try testArgs(f80, i32, -1e8);
10487 try testArgs(f80, i32, -1e7);
10488 try testArgs(f80, i32, -1e6);
10489 try testArgs(f80, i32, -1e5);
10490 try testArgs(f80, i32, -1e4);
10491 try testArgs(f80, i32, -1e3);
10492 try testArgs(f80, i32, -1e2);
10493 try testArgs(f80, i32, -1e1);
10494 try testArgs(f80, i32, -1e0);
10495 try testArgs(f80, i32, 0);
10496 try testArgs(f80, i32, 1e0);
10497 try testArgs(f80, i32, 1e1);
10498 try testArgs(f80, i32, 1e2);
10499 try testArgs(f80, i32, 1e3);
10500 try testArgs(f80, i32, 1e4);
10501 try testArgs(f80, i32, 1e5);
10502 try testArgs(f80, i32, 1e6);
10503 try testArgs(f80, i32, 1e7);
10504 try testArgs(f80, i32, 1e8);
10505 try testArgs(f80, i32, 1e9);
10506 try testArgs(f80, i32, imax(i32) - 1);
10507 try testArgs(f80, i32, imax(i32));
10508
10509 try testArgs(f80, u32, 0);
10510 try testArgs(f80, u32, 1e0);
10511 try testArgs(f80, u32, 1e1);
10512 try testArgs(f80, u32, 1e2);
10513 try testArgs(f80, u32, 1e3);
10514 try testArgs(f80, u32, 1e4);
10515 try testArgs(f80, u32, 1e5);
10516 try testArgs(f80, u32, 1e6);
10517 try testArgs(f80, u32, 1e7);
10518 try testArgs(f80, u32, 1e8);
10519 try testArgs(f80, u32, 1e9);
10520 try testArgs(f80, u32, imax(u32) - 1);
10521 try testArgs(f80, u32, imax(u32));
10522
10523 try testArgs(f80, i64, imin(i64));
10524 try testArgs(f80, i64, imin(i64) + 1);
10525 try testArgs(f80, i64, -1e18);
10526 try testArgs(f80, i64, -1e16);
10527 try testArgs(f80, i64, -1e14);
10528 try testArgs(f80, i64, -1e12);
10529 try testArgs(f80, i64, -1e10);
10530 try testArgs(f80, i64, -1e8);
10531 try testArgs(f80, i64, -1e6);
10532 try testArgs(f80, i64, -1e4);
10533 try testArgs(f80, i64, -1e2);
10534 try testArgs(f80, i64, -1e0);
10535 try testArgs(f80, i64, 0);
10536 try testArgs(f80, i64, 1e0);
10537 try testArgs(f80, i64, 1e2);
10538 try testArgs(f80, i64, 1e4);
10539 try testArgs(f80, i64, 1e6);
10540 try testArgs(f80, i64, 1e8);
10541 try testArgs(f80, i64, 1e10);
10542 try testArgs(f80, i64, 1e12);
10543 try testArgs(f80, i64, 1e14);
10544 try testArgs(f80, i64, 1e16);
10545 try testArgs(f80, i64, 1e18);
10546 try testArgs(f80, i64, imax(i64) - 1);
10547 try testArgs(f80, i64, imax(i64));
10548
10549 try testArgs(f80, u64, 0);
10550 try testArgs(f80, u64, 1e0);
10551 try testArgs(f80, u64, 1e2);
10552 try testArgs(f80, u64, 1e4);
10553 try testArgs(f80, u64, 1e6);
10554 try testArgs(f80, u64, 1e8);
10555 try testArgs(f80, u64, 1e10);
10556 try testArgs(f80, u64, 1e12);
10557 try testArgs(f80, u64, 1e14);
10558 try testArgs(f80, u64, 1e16);
10559 try testArgs(f80, u64, 1e18);
10560 try testArgs(f80, u64, imax(u64) - 1);
10561 try testArgs(f80, u64, imax(u64));
10562
10563 try testArgs(f80, i128, imin(i128));
10564 try testArgs(f80, i128, imin(i128) + 1);
10565 try testArgs(f80, i128, -1e38);
10566 try testArgs(f80, i128, -1e34);
10567 try testArgs(f80, i128, -1e30);
10568 try testArgs(f80, i128, -1e26);
10569 try testArgs(f80, i128, -1e22);
10570 try testArgs(f80, i128, -1e18);
10571 try testArgs(f80, i128, -1e14);
10572 try testArgs(f80, i128, -1e10);
10573 try testArgs(f80, i128, -1e6);
10574 try testArgs(f80, i128, -1e2);
10575 try testArgs(f80, i128, -1e0);
10576 try testArgs(f80, i128, 0);
10577 try testArgs(f80, i128, 1e0);
10578 try testArgs(f80, i128, 1e2);
10579 try testArgs(f80, i128, 1e6);
10580 try testArgs(f80, i128, 1e10);
10581 try testArgs(f80, i128, 1e14);
10582 try testArgs(f80, i128, 1e18);
10583 try testArgs(f80, i128, 1e22);
10584 try testArgs(f80, i128, 1e26);
10585 try testArgs(f80, i128, 1e30);
10586 try testArgs(f80, i128, 1e34);
10587 try testArgs(f80, i128, 1e38);
10588 try testArgs(f80, i128, imax(i128) - 1);
10589 try testArgs(f80, i128, imax(i128));
10590
10591 try testArgs(f80, u128, 0);
10592 try testArgs(f80, u128, 1e0);
10593 try testArgs(f80, u128, 1e2);
10594 try testArgs(f80, u128, 1e6);
10595 try testArgs(f80, u128, 1e10);
10596 try testArgs(f80, u128, 1e14);
10597 try testArgs(f80, u128, 1e18);
10598 try testArgs(f80, u128, 1e22);
10599 try testArgs(f80, u128, 1e26);
10600 try testArgs(f80, u128, 1e30);
10601 try testArgs(f80, u128, 1e34);
10602 try testArgs(f80, u128, 1e38);
10603 try testArgs(f80, u128, imax(u128) - 1);
10604 try testArgs(f80, u128, imax(u128));
10605
10606 try testArgs(f80, i256, imin(i256));
10607 try testArgs(f80, i256, imin(i256) + 1);
10608 try testArgs(f80, i256, -1e76);
10609 try testArgs(f80, i256, -1e69);
10610 try testArgs(f80, i256, -1e62);
10611 try testArgs(f80, i256, -1e55);
10612 try testArgs(f80, i256, -1e48);
10613 try testArgs(f80, i256, -1e41);
10614 try testArgs(f80, i256, -1e34);
10615 try testArgs(f80, i256, -1e27);
10616 try testArgs(f80, i256, -1e20);
10617 try testArgs(f80, i256, -1e13);
10618 try testArgs(f80, i256, -1e6);
10619 try testArgs(f80, i256, -1e0);
10620 try testArgs(f80, i256, 0);
10621 try testArgs(f80, i256, 1e0);
10622 try testArgs(f80, i256, 1e6);
10623 try testArgs(f80, i256, 1e13);
10624 try testArgs(f80, i256, 1e20);
10625 try testArgs(f80, i256, 1e27);
10626 try testArgs(f80, i256, 1e34);
10627 try testArgs(f80, i256, 1e41);
10628 try testArgs(f80, i256, 1e48);
10629 try testArgs(f80, i256, 1e55);
10630 try testArgs(f80, i256, 1e62);
10631 try testArgs(f80, i256, 1e69);
10632 try testArgs(f80, i256, 1e76);
10633 try testArgs(f80, i256, imax(i256) - 1);
10634 try testArgs(f80, i256, imax(i256));
10635
10636 try testArgs(f80, u256, 0);
10637 try testArgs(f80, u256, 1e0);
10638 try testArgs(f80, u256, 1e7);
10639 try testArgs(f80, u256, 1e14);
10640 try testArgs(f80, u256, 1e21);
10641 try testArgs(f80, u256, 1e28);
10642 try testArgs(f80, u256, 1e35);
10643 try testArgs(f80, u256, 1e42);
10644 try testArgs(f80, u256, 1e49);
10645 try testArgs(f80, u256, 1e56);
10646 try testArgs(f80, u256, 1e63);
10647 try testArgs(f80, u256, 1e70);
10648 try testArgs(f80, u256, 1e77);
10649 try testArgs(f80, u256, imax(u256) - 1);
10650 try testArgs(f80, u256, imax(u256));
10651
10652 try testArgs(f128, i8, imin(i8));
10653 try testArgs(f128, i8, imin(i8) + 1);
10654 try testArgs(f128, i8, -1e2);
10655 try testArgs(f128, i8, -1e1);
10656 try testArgs(f128, i8, -1e0);
10657 try testArgs(f128, i8, 0);
10658 try testArgs(f128, i8, 1e0);
10659 try testArgs(f128, i8, 1e1);
10660 try testArgs(f128, i8, 1e2);
10661 try testArgs(f128, i8, imax(i8) - 1);
10662 try testArgs(f128, i8, imax(i8));
10663
10664 try testArgs(f128, u8, 0);
10665 try testArgs(f128, u8, 1e0);
10666 try testArgs(f128, u8, 1e1);
10667 try testArgs(f128, u8, 1e2);
10668 try testArgs(f128, u8, imax(u8) - 1);
10669 try testArgs(f128, u8, imax(u8));
10670
10671 try testArgs(f128, i16, imin(i16));
10672 try testArgs(f128, i16, imin(i16) + 1);
10673 try testArgs(f128, i16, -1e4);
10674 try testArgs(f128, i16, -1e3);
10675 try testArgs(f128, i16, -1e2);
10676 try testArgs(f128, i16, -1e1);
10677 try testArgs(f128, i16, -1e0);
10678 try testArgs(f128, i16, 0);
10679 try testArgs(f128, i16, 1e0);
10680 try testArgs(f128, i16, 1e1);
10681 try testArgs(f128, i16, 1e2);
10682 try testArgs(f128, i16, 1e3);
10683 try testArgs(f128, i16, 1e4);
10684 try testArgs(f128, i16, imax(i16) - 1);
10685 try testArgs(f128, i16, imax(i16));
10686
10687 try testArgs(f128, u16, 0);
10688 try testArgs(f128, u16, 1e0);
10689 try testArgs(f128, u16, 1e1);
10690 try testArgs(f128, u16, 1e2);
10691 try testArgs(f128, u16, 1e3);
10692 try testArgs(f128, u16, 1e4);
10693 try testArgs(f128, u16, imax(u16) - 1);
10694 try testArgs(f128, u16, imax(u16));
10695
10696 try testArgs(f128, i32, imin(i32));
10697 try testArgs(f128, i32, imin(i32) + 1);
10698 try testArgs(f128, i32, -1e9);
10699 try testArgs(f128, i32, -1e8);
10700 try testArgs(f128, i32, -1e7);
10701 try testArgs(f128, i32, -1e6);
10702 try testArgs(f128, i32, -1e5);
10703 try testArgs(f128, i32, -1e4);
10704 try testArgs(f128, i32, -1e3);
10705 try testArgs(f128, i32, -1e2);
10706 try testArgs(f128, i32, -1e1);
10707 try testArgs(f128, i32, -1e0);
10708 try testArgs(f128, i32, 0);
10709 try testArgs(f128, i32, 1e0);
10710 try testArgs(f128, i32, 1e1);
10711 try testArgs(f128, i32, 1e2);
10712 try testArgs(f128, i32, 1e3);
10713 try testArgs(f128, i32, 1e4);
10714 try testArgs(f128, i32, 1e5);
10715 try testArgs(f128, i32, 1e6);
10716 try testArgs(f128, i32, 1e7);
10717 try testArgs(f128, i32, 1e8);
10718 try testArgs(f128, i32, 1e9);
10719 try testArgs(f128, i32, imax(i32) - 1);
10720 try testArgs(f128, i32, imax(i32));
10721
10722 try testArgs(f128, u32, 0);
10723 try testArgs(f128, u32, 1e0);
10724 try testArgs(f128, u32, 1e1);
10725 try testArgs(f128, u32, 1e2);
10726 try testArgs(f128, u32, 1e3);
10727 try testArgs(f128, u32, 1e4);
10728 try testArgs(f128, u32, 1e5);
10729 try testArgs(f128, u32, 1e6);
10730 try testArgs(f128, u32, 1e7);
10731 try testArgs(f128, u32, 1e8);
10732 try testArgs(f128, u32, 1e9);
10733 try testArgs(f128, u32, imax(u32) - 1);
10734 try testArgs(f128, u32, imax(u32));
10735
10736 try testArgs(f128, i64, imin(i64));
10737 try testArgs(f128, i64, imin(i64) + 1);
10738 try testArgs(f128, i64, -1e18);
10739 try testArgs(f128, i64, -1e16);
10740 try testArgs(f128, i64, -1e14);
10741 try testArgs(f128, i64, -1e12);
10742 try testArgs(f128, i64, -1e10);
10743 try testArgs(f128, i64, -1e8);
10744 try testArgs(f128, i64, -1e6);
10745 try testArgs(f128, i64, -1e4);
10746 try testArgs(f128, i64, -1e2);
10747 try testArgs(f128, i64, -1e0);
10748 try testArgs(f128, i64, 0);
10749 try testArgs(f128, i64, 1e0);
10750 try testArgs(f128, i64, 1e2);
10751 try testArgs(f128, i64, 1e4);
10752 try testArgs(f128, i64, 1e6);
10753 try testArgs(f128, i64, 1e8);
10754 try testArgs(f128, i64, 1e10);
10755 try testArgs(f128, i64, 1e12);
10756 try testArgs(f128, i64, 1e14);
10757 try testArgs(f128, i64, 1e16);
10758 try testArgs(f128, i64, 1e18);
10759 try testArgs(f128, i64, imax(i64) - 1);
10760 try testArgs(f128, i64, imax(i64));
10761
10762 try testArgs(f128, u64, 0);
10763 try testArgs(f128, u64, 1e0);
10764 try testArgs(f128, u64, 1e2);
10765 try testArgs(f128, u64, 1e4);
10766 try testArgs(f128, u64, 1e6);
10767 try testArgs(f128, u64, 1e8);
10768 try testArgs(f128, u64, 1e10);
10769 try testArgs(f128, u64, 1e12);
10770 try testArgs(f128, u64, 1e14);
10771 try testArgs(f128, u64, 1e16);
10772 try testArgs(f128, u64, 1e18);
10773 try testArgs(f128, u64, imax(u64) - 1);
10774 try testArgs(f128, u64, imax(u64));
10775
10776 try testArgs(f128, i128, imin(i128));
10777 try testArgs(f128, i128, imin(i128) + 1);
10778 try testArgs(f128, i128, -1e38);
10779 try testArgs(f128, i128, -1e34);
10780 try testArgs(f128, i128, -1e30);
10781 try testArgs(f128, i128, -1e26);
10782 try testArgs(f128, i128, -1e22);
10783 try testArgs(f128, i128, -1e18);
10784 try testArgs(f128, i128, -1e14);
10785 try testArgs(f128, i128, -1e10);
10786 try testArgs(f128, i128, -1e6);
10787 try testArgs(f128, i128, -1e2);
10788 try testArgs(f128, i128, -1e0);
10789 try testArgs(f128, i128, 0);
10790 try testArgs(f128, i128, 1e0);
10791 try testArgs(f128, i128, 1e2);
10792 try testArgs(f128, i128, 1e6);
10793 try testArgs(f128, i128, 1e10);
10794 try testArgs(f128, i128, 1e14);
10795 try testArgs(f128, i128, 1e18);
10796 try testArgs(f128, i128, 1e22);
10797 try testArgs(f128, i128, 1e26);
10798 try testArgs(f128, i128, 1e30);
10799 try testArgs(f128, i128, 1e34);
10800 try testArgs(f128, i128, 1e38);
10801 try testArgs(f128, i128, imax(i128) - 1);
10802 try testArgs(f128, i128, imax(i128));
10803
10804 try testArgs(f128, u128, 0);
10805 try testArgs(f128, u128, 1e0);
10806 try testArgs(f128, u128, 1e2);
10807 try testArgs(f128, u128, 1e6);
10808 try testArgs(f128, u128, 1e10);
10809 try testArgs(f128, u128, 1e14);
10810 try testArgs(f128, u128, 1e18);
10811 try testArgs(f128, u128, 1e22);
10812 try testArgs(f128, u128, 1e26);
10813 try testArgs(f128, u128, 1e30);
10814 try testArgs(f128, u128, 1e34);
10815 try testArgs(f128, u128, 1e38);
10816 try testArgs(f128, u128, imax(u128) - 1);
10817 try testArgs(f128, u128, imax(u128));
10818
10819 try testArgs(f128, i256, imin(i256));
10820 try testArgs(f128, i256, imin(i256) + 1);
10821 try testArgs(f128, i256, -1e76);
10822 try testArgs(f128, i256, -1e69);
10823 try testArgs(f128, i256, -1e62);
10824 try testArgs(f128, i256, -1e55);
10825 try testArgs(f128, i256, -1e48);
10826 try testArgs(f128, i256, -1e41);
10827 try testArgs(f128, i256, -1e34);
10828 try testArgs(f128, i256, -1e27);
10829 try testArgs(f128, i256, -1e20);
10830 try testArgs(f128, i256, -1e13);
10831 try testArgs(f128, i256, -1e6);
10832 try testArgs(f128, i256, -1e0);
10833 try testArgs(f128, i256, 0);
10834 try testArgs(f128, i256, 1e0);
10835 try testArgs(f128, i256, 1e6);
10836 try testArgs(f128, i256, 1e13);
10837 try testArgs(f128, i256, 1e20);
10838 try testArgs(f128, i256, 1e27);
10839 try testArgs(f128, i256, 1e34);
10840 try testArgs(f128, i256, 1e41);
10841 try testArgs(f128, i256, 1e48);
10842 try testArgs(f128, i256, 1e55);
10843 try testArgs(f128, i256, 1e62);
10844 try testArgs(f128, i256, 1e69);
10845 try testArgs(f128, i256, 1e76);
10846 try testArgs(f128, i256, imax(i256) - 1);
10847 try testArgs(f128, i256, imax(i256));
10848
10849 try testArgs(f128, u256, 0);
10850 try testArgs(f128, u256, 1e0);
10851 try testArgs(f128, u256, 1e7);
10852 try testArgs(f128, u256, 1e14);
10853 try testArgs(f128, u256, 1e21);
10854 try testArgs(f128, u256, 1e28);
10855 try testArgs(f128, u256, 1e35);
10856 try testArgs(f128, u256, 1e42);
10857 try testArgs(f128, u256, 1e49);
10858 try testArgs(f128, u256, 1e56);
10859 try testArgs(f128, u256, 1e63);
10860 try testArgs(f128, u256, 1e70);
10861 try testArgs(f128, u256, 1e77);
10862 try testArgs(f128, u256, imax(u256) - 1);
10863 try testArgs(f128, u256, imax(u256));
10864 }
10865 fn testIntVectorsFromFloatVectors() !void {
10866 @setEvalBranchQuota(2_500);
10867
10868 try testArgs(@Vector(1, i8), @Vector(1, f16), .{
10869 -0x0.8p8,
10870 });
10871 try testArgs(@Vector(2, i8), @Vector(2, f16), .{
10872 next(f16, -0x0.8p8, -0.0), next(f16, next(f16, -0x0.8p8, -0.0), -0.0),
10873 });
10874 try testArgs(@Vector(4, i8), @Vector(4, f16), .{
10875 -1e2, -1e1, -1e0, -1e-1,
10876 });
10877 try testArgs(@Vector(8, i8), @Vector(8, f16), .{
10878 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
10879 });
10880 try testArgs(@Vector(16, i8), @Vector(16, f16), .{
10881 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f16, next(f16, 0x0.8p8, 0.0), 0.0), next(f16, 0x0.8p8, 0.0),
10882 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
10883 });
10884 try testArgs(@Vector(32, i8), @Vector(32, f16), .{
10885 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
10886 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
10887 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
10888 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
10889 });
10890 try testArgs(@Vector(64, i8), @Vector(64, f16), .{
10891 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
10892 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
10893 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
10894 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
10895 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
10896 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
10897 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
10898 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
10899 });
10900 try testArgs(@Vector(128, i8), @Vector(128, f16), .{
10901 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
10902 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
10903 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
10904 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
10905 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
10906 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
10907 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
10908 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
10909 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10910 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
10911 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
10912 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
10913 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
10914 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
10915 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
10916 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
10917 });
10918
10919 try testArgs(@Vector(1, u8), @Vector(1, f16), .{
10920 -0.0,
10921 });
10922 try testArgs(@Vector(2, u8), @Vector(2, f16), .{
10923 0.0, 1e-5,
10924 });
10925 try testArgs(@Vector(4, u8), @Vector(4, f16), .{
10926 1e-4, 1e-3, 1e-2, 1e-1,
10927 });
10928 try testArgs(@Vector(8, u8), @Vector(8, f16), .{
10929 1e0, 1e1, 1e2, next(f16, next(f16, 0x1p8, 0.0), 0.0), next(f16, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
10930 });
10931 try testArgs(@Vector(16, u8), @Vector(16, f16), .{
10932 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
10933 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
10934 });
10935 try testArgs(@Vector(32, u8), @Vector(32, f16), .{
10936 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
10937 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
10938 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
10939 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
10940 });
10941 try testArgs(@Vector(64, u8), @Vector(64, f16), .{
10942 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
10943 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
10944 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
10945 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
10946 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
10947 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
10948 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
10949 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
10950 });
10951 try testArgs(@Vector(128, u8), @Vector(128, f16), .{
10952 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
10953 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
10954 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
10955 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
10956 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
10957 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
10958 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
10959 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
10960 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
10961 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
10962 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
10963 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
10964 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
10965 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
10966 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
10967 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
10968 });
10969
10970 try testArgs(@Vector(1, i16), @Vector(1, f16), .{
10971 -0x0.8p16,
10972 });
10973 try testArgs(@Vector(2, i16), @Vector(2, f16), .{
10974 next(f16, -0x0.8p16, -0.0), next(f16, next(f16, -0x0.8p16, -0.0), -0.0),
10975 });
10976 try testArgs(@Vector(4, i16), @Vector(4, f16), .{
10977 -1e4, -1e3, -1e2, -1e1,
10978 });
10979 try testArgs(@Vector(8, i16), @Vector(8, f16), .{
10980 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
10981 });
10982 try testArgs(@Vector(16, i16), @Vector(16, f16), .{
10983 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
10984 1e3, 1e4, next(f16, next(f16, 0x0.8p16, 0.0), 0.0), next(f16, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
10985 });
10986 try testArgs(@Vector(32, i16), @Vector(32, f16), .{
10987 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
10988 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
10989 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
10990 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
10991 });
10992 try testArgs(@Vector(64, i16), @Vector(64, f16), .{
10993 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
10994 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
10995 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
10996 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
10997 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
10998 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
10999 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11000 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11001 });
11002 try testArgs(@Vector(128, i16), @Vector(128, f16), .{
11003 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11004 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11005 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11006 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11007 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11008 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11009 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11010 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11011 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11012 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11013 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11014 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11015 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11016 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11017 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11018 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11019 });
11020
11021 try testArgs(@Vector(1, u16), @Vector(1, f16), .{
11022 -0.0,
11023 });
11024 try testArgs(@Vector(2, u16), @Vector(2, f16), .{
11025 0.0, 1e-5,
11026 });
11027 try testArgs(@Vector(4, u16), @Vector(4, f16), .{
11028 1e-4, 1e-3, 1e-2, 1e-1,
11029 });
11030 try testArgs(@Vector(8, u16), @Vector(8, f16), .{
11031 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, 0x1p16, 0.0), 0.0), next(f16, 0x1p16, 0.0), 2e-5,
11032 });
11033 try testArgs(@Vector(16, u16), @Vector(16, f16), .{
11034 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11035 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11036 });
11037 try testArgs(@Vector(32, u16), @Vector(32, f16), .{
11038 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11039 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11040 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11041 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11042 });
11043 try testArgs(@Vector(64, u16), @Vector(64, f16), .{
11044 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11045 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11046 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11047 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11048 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11049 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11050 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11051 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11052 });
11053 try testArgs(@Vector(128, u16), @Vector(128, f16), .{
11054 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11055 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11056 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11057 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11058 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11059 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11060 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11061 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11062 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11063 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11064 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11065 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11066 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11067 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11068 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11069 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11070 });
11071
11072 try testArgs(@Vector(1, i32), @Vector(1, f16), .{
11073 -fmax(f16),
11074 });
11075 try testArgs(@Vector(2, i32), @Vector(2, f16), .{
11076 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
11077 });
11078 try testArgs(@Vector(4, i32), @Vector(4, f16), .{
11079 -1e4, -1e3, -1e2, -1e1,
11080 });
11081 try testArgs(@Vector(8, i32), @Vector(8, f16), .{
11082 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11083 });
11084 try testArgs(@Vector(16, i32), @Vector(16, f16), .{
11085 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11086 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
11087 });
11088 try testArgs(@Vector(32, i32), @Vector(32, f16), .{
11089 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11090 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11091 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11092 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11093 });
11094 try testArgs(@Vector(64, i32), @Vector(64, f16), .{
11095 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11096 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11097 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11098 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11099 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11100 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11101 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11102 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11103 });
11104 try testArgs(@Vector(128, i32), @Vector(128, f16), .{
11105 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11106 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11107 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11108 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11109 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11110 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11111 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11112 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11113 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11114 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11115 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11116 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11117 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11118 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11119 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11120 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11121 });
11122
11123 try testArgs(@Vector(1, u32), @Vector(1, f16), .{
11124 -0.0,
11125 });
11126 try testArgs(@Vector(2, u32), @Vector(2, f16), .{
11127 0.0, 1e-5,
11128 });
11129 try testArgs(@Vector(4, u32), @Vector(4, f16), .{
11130 1e-4, 1e-3, 1e-2, 1e-1,
11131 });
11132 try testArgs(@Vector(8, u32), @Vector(8, f16), .{
11133 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
11134 });
11135 try testArgs(@Vector(16, u32), @Vector(16, f16), .{
11136 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11137 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11138 });
11139 try testArgs(@Vector(32, u32), @Vector(32, f16), .{
11140 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11141 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11142 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11143 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11144 });
11145 try testArgs(@Vector(64, u32), @Vector(64, f16), .{
11146 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11147 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11148 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11149 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11150 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11151 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11152 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11153 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11154 });
11155 try testArgs(@Vector(128, u32), @Vector(128, f16), .{
11156 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11157 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11158 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11159 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11160 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11161 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11162 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11163 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11164 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11165 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11166 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11167 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11168 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11169 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11170 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11171 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11172 });
11173
11174 try testArgs(@Vector(1, i64), @Vector(1, f16), .{
11175 -fmax(f16),
11176 });
11177 try testArgs(@Vector(2, i64), @Vector(2, f16), .{
11178 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
11179 });
11180 try testArgs(@Vector(4, i64), @Vector(4, f16), .{
11181 -1e4, -1e3, -1e2, -1e1,
11182 });
11183 try testArgs(@Vector(8, i64), @Vector(8, f16), .{
11184 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11185 });
11186 try testArgs(@Vector(16, i64), @Vector(16, f16), .{
11187 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11188 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
11189 });
11190 try testArgs(@Vector(32, i64), @Vector(32, f16), .{
11191 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11192 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11193 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11194 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11195 });
11196 try testArgs(@Vector(64, i64), @Vector(64, f16), .{
11197 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11198 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11199 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11200 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11201 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11202 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11203 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11204 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11205 });
11206 try testArgs(@Vector(128, i64), @Vector(128, f16), .{
11207 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11208 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11209 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11210 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11211 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11212 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11213 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11214 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11215 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11216 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11217 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11218 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11219 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11220 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11221 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11222 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11223 });
11224
11225 try testArgs(@Vector(1, u64), @Vector(1, f16), .{
11226 -0.0,
11227 });
11228 try testArgs(@Vector(2, u64), @Vector(2, f16), .{
11229 0.0, 1e-5,
11230 });
11231 try testArgs(@Vector(4, u64), @Vector(4, f16), .{
11232 1e-4, 1e-3, 1e-2, 1e-1,
11233 });
11234 try testArgs(@Vector(8, u64), @Vector(8, f16), .{
11235 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
11236 });
11237 try testArgs(@Vector(16, u64), @Vector(16, f16), .{
11238 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11239 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11240 });
11241 try testArgs(@Vector(32, u64), @Vector(32, f16), .{
11242 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11243 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11244 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11245 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11246 });
11247 try testArgs(@Vector(64, u64), @Vector(64, f16), .{
11248 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11249 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11250 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11251 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11252 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11253 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11254 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11255 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11256 });
11257 try testArgs(@Vector(128, u64), @Vector(128, f16), .{
11258 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11259 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11260 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11261 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11262 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11263 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11264 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11265 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11266 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11267 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11268 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11269 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11270 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11271 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11272 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11273 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11274 });
11275
11276 try testArgs(@Vector(1, i128), @Vector(1, f16), .{
11277 -fmax(f16),
11278 });
11279 try testArgs(@Vector(2, i128), @Vector(2, f16), .{
11280 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
11281 });
11282 try testArgs(@Vector(4, i128), @Vector(4, f16), .{
11283 -1e4, -1e3, -1e2, -1e1,
11284 });
11285 try testArgs(@Vector(8, i128), @Vector(8, f16), .{
11286 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11287 });
11288 try testArgs(@Vector(16, i128), @Vector(16, f16), .{
11289 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11290 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
11291 });
11292 try testArgs(@Vector(32, i128), @Vector(32, f16), .{
11293 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11294 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11295 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11296 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11297 });
11298 try testArgs(@Vector(64, i128), @Vector(64, f16), .{
11299 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11300 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11301 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11302 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11303 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11304 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11305 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11306 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11307 });
11308
11309 try testArgs(@Vector(1, u128), @Vector(1, f16), .{
11310 -0.0,
11311 });
11312 try testArgs(@Vector(2, u128), @Vector(2, f16), .{
11313 0.0, 1e-5,
11314 });
11315 try testArgs(@Vector(4, u128), @Vector(4, f16), .{
11316 1e-4, 1e-3, 1e-2, 1e-1,
11317 });
11318 try testArgs(@Vector(8, u128), @Vector(8, f16), .{
11319 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
11320 });
11321 try testArgs(@Vector(16, u128), @Vector(16, f16), .{
11322 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11323 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11324 });
11325 try testArgs(@Vector(32, u128), @Vector(32, f16), .{
11326 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11327 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11328 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11329 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11330 });
11331 try testArgs(@Vector(64, u128), @Vector(64, f16), .{
11332 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11333 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11334 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11335 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11336 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11337 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11338 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11339 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11340 });
11341
11342 try testArgs(@Vector(1, i256), @Vector(1, f16), .{
11343 -fmax(f16),
11344 });
11345 try testArgs(@Vector(2, i256), @Vector(2, f16), .{
11346 next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0),
11347 });
11348 try testArgs(@Vector(4, i256), @Vector(4, f16), .{
11349 -1e4, -1e3, -1e2, -1e1,
11350 });
11351 try testArgs(@Vector(8, i256), @Vector(8, f16), .{
11352 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11353 });
11354 try testArgs(@Vector(16, i256), @Vector(16, f16), .{
11355 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11356 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1,
11357 });
11358 try testArgs(@Vector(32, i256), @Vector(32, f16), .{
11359 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11360 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11361 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11362 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11363 });
11364 try testArgs(@Vector(64, i256), @Vector(64, f16), .{
11365 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11366 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11367 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11368 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11369 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11370 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11371 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11372 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11373 });
11374
11375 try testArgs(@Vector(1, u256), @Vector(1, f16), .{
11376 -0.0,
11377 });
11378 try testArgs(@Vector(2, u256), @Vector(2, f16), .{
11379 0.0, 1e-5,
11380 });
11381 try testArgs(@Vector(4, u256), @Vector(4, f16), .{
11382 1e-4, 1e-3, 1e-2, 1e-1,
11383 });
11384 try testArgs(@Vector(8, u256), @Vector(8, f16), .{
11385 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5,
11386 });
11387 try testArgs(@Vector(16, u256), @Vector(16, f16), .{
11388 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11389 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11390 });
11391 try testArgs(@Vector(32, u256), @Vector(32, f16), .{
11392 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11393 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11394 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11395 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11396 });
11397 try testArgs(@Vector(64, u256), @Vector(64, f16), .{
11398 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11399 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11400 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11401 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11402 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11403 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11404 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11405 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11406 });
11407
11408 try testArgs(@Vector(1, i8), @Vector(1, f32), .{
11409 -0x0.8p8,
11410 });
11411 try testArgs(@Vector(2, i8), @Vector(2, f32), .{
11412 next(f32, -0x0.8p8, -0.0), next(f32, next(f32, -0x0.8p8, -0.0), -0.0),
11413 });
11414 try testArgs(@Vector(4, i8), @Vector(4, f32), .{
11415 -1e2, -1e1, -1e0, -1e-1,
11416 });
11417 try testArgs(@Vector(8, i8), @Vector(8, f32), .{
11418 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
11419 });
11420 try testArgs(@Vector(16, i8), @Vector(16, f32), .{
11421 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f32, next(f32, 0x0.8p8, 0.0), 0.0), next(f32, 0x0.8p8, 0.0),
11422 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
11423 });
11424 try testArgs(@Vector(32, i8), @Vector(32, f32), .{
11425 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
11426 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
11427 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
11428 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11429 });
11430 try testArgs(@Vector(64, i8), @Vector(64, f32), .{
11431 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
11432 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
11433 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
11434 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
11435 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
11436 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
11437 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
11438 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
11439 });
11440 try testArgs(@Vector(128, i8), @Vector(128, f32), .{
11441 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
11442 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
11443 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
11444 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
11445 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
11446 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11447 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
11448 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
11449 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
11450 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
11451 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
11452 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
11453 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
11454 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
11455 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
11456 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
11457 });
11458
11459 try testArgs(@Vector(1, u8), @Vector(1, f32), .{
11460 -0.0,
11461 });
11462 try testArgs(@Vector(2, u8), @Vector(2, f32), .{
11463 0.0, 1e-5,
11464 });
11465 try testArgs(@Vector(4, u8), @Vector(4, f32), .{
11466 1e-4, 1e-3, 1e-2, 1e-1,
11467 });
11468 try testArgs(@Vector(8, u8), @Vector(8, f32), .{
11469 1e0, 1e1, 1e2, next(f32, next(f32, 0x1p8, 0.0), 0.0), next(f32, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
11470 });
11471 try testArgs(@Vector(16, u8), @Vector(16, f32), .{
11472 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
11473 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
11474 });
11475 try testArgs(@Vector(32, u8), @Vector(32, f32), .{
11476 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
11477 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
11478 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
11479 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
11480 });
11481 try testArgs(@Vector(64, u8), @Vector(64, f32), .{
11482 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
11483 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
11484 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11485 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
11486 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
11487 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
11488 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
11489 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
11490 });
11491 try testArgs(@Vector(128, u8), @Vector(128, f32), .{
11492 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
11493 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11494 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
11495 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
11496 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
11497 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
11498 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
11499 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
11500 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
11501 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
11502 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
11503 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
11504 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
11505 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
11506 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
11507 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
11508 });
11509
11510 try testArgs(@Vector(1, i16), @Vector(1, f32), .{
11511 -0x0.8p16,
11512 });
11513 try testArgs(@Vector(2, i16), @Vector(2, f32), .{
11514 next(f32, -0x0.8p16, -0.0), next(f32, next(f32, -0x0.8p16, -0.0), -0.0),
11515 });
11516 try testArgs(@Vector(4, i16), @Vector(4, f32), .{
11517 -1e4, -1e3, -1e2, -1e1,
11518 });
11519 try testArgs(@Vector(8, i16), @Vector(8, f32), .{
11520 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11521 });
11522 try testArgs(@Vector(16, i16), @Vector(16, f32), .{
11523 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11524 1e3, 1e4, next(f32, next(f32, 0x0.8p16, 0.0), 0.0), next(f32, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
11525 });
11526 try testArgs(@Vector(32, i16), @Vector(32, f32), .{
11527 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11528 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11529 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11530 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11531 });
11532 try testArgs(@Vector(64, i16), @Vector(64, f32), .{
11533 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11534 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11535 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11536 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11537 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11538 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11539 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11540 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11541 });
11542 try testArgs(@Vector(128, i16), @Vector(128, f32), .{
11543 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11544 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11545 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11546 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11547 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11548 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11549 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11550 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11551 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11552 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11553 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11554 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11555 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11556 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11557 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11558 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11559 });
11560
11561 try testArgs(@Vector(1, u16), @Vector(1, f32), .{
11562 -0.0,
11563 });
11564 try testArgs(@Vector(2, u16), @Vector(2, f32), .{
11565 0.0, 1e-5,
11566 });
11567 try testArgs(@Vector(4, u16), @Vector(4, f32), .{
11568 1e-4, 1e-3, 1e-2, 1e-1,
11569 });
11570 try testArgs(@Vector(8, u16), @Vector(8, f32), .{
11571 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p16, 0.0), 0.0), next(f32, 0x1p16, 0.0), 2e-5,
11572 });
11573 try testArgs(@Vector(16, u16), @Vector(16, f32), .{
11574 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11575 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11576 });
11577 try testArgs(@Vector(32, u16), @Vector(32, f32), .{
11578 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11579 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11580 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11581 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11582 });
11583 try testArgs(@Vector(64, u16), @Vector(64, f32), .{
11584 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11585 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11586 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11587 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11588 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11589 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11590 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11591 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11592 });
11593 try testArgs(@Vector(128, u16), @Vector(128, f32), .{
11594 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11595 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11596 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11597 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11598 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11599 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11600 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11601 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11602 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11603 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11604 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11605 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11606 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11607 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11608 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11609 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11610 });
11611
11612 try testArgs(@Vector(1, i32), @Vector(1, f32), .{
11613 -0x0.8p32,
11614 });
11615 try testArgs(@Vector(2, i32), @Vector(2, f32), .{
11616 next(f32, -0x0.8p32, -0.0), next(f32, next(f32, -0x0.8p32, -0.0), -0.0),
11617 });
11618 try testArgs(@Vector(4, i32), @Vector(4, f32), .{
11619 -1e4, -1e3, -1e2, -1e1,
11620 });
11621 try testArgs(@Vector(8, i32), @Vector(8, f32), .{
11622 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11623 });
11624 try testArgs(@Vector(16, i32), @Vector(16, f32), .{
11625 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11626 1e3, 1e4, next(f32, next(f32, 0x0.8p32, 0.0), 0.0), next(f32, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
11627 });
11628 try testArgs(@Vector(32, i32), @Vector(32, f32), .{
11629 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11630 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11631 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11632 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11633 });
11634 try testArgs(@Vector(64, i32), @Vector(64, f32), .{
11635 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11636 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11637 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11638 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11639 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11640 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11641 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11642 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11643 });
11644 try testArgs(@Vector(128, i32), @Vector(128, f32), .{
11645 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11646 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11647 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11648 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11649 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11650 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11651 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11652 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11653 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11654 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11655 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11656 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11657 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11658 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11659 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11660 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11661 });
11662
11663 try testArgs(@Vector(1, u32), @Vector(1, f32), .{
11664 -0.0,
11665 });
11666 try testArgs(@Vector(2, u32), @Vector(2, f32), .{
11667 0.0, 1e-5,
11668 });
11669 try testArgs(@Vector(4, u32), @Vector(4, f32), .{
11670 1e-4, 1e-3, 1e-2, 1e-1,
11671 });
11672 try testArgs(@Vector(8, u32), @Vector(8, f32), .{
11673 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p32, 0.0), 0.0), next(f32, 0x1p32, 0.0), 2e-5,
11674 });
11675 try testArgs(@Vector(16, u32), @Vector(16, f32), .{
11676 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11677 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11678 });
11679 try testArgs(@Vector(32, u32), @Vector(32, f32), .{
11680 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11681 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11682 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11683 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11684 });
11685 try testArgs(@Vector(64, u32), @Vector(64, f32), .{
11686 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11687 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11688 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11689 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11690 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11691 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11692 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11693 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11694 });
11695 try testArgs(@Vector(128, u32), @Vector(128, f32), .{
11696 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11697 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11698 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11699 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11700 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11701 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11702 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11703 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11704 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11705 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11706 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11707 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11708 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11709 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11710 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11711 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11712 });
11713
11714 try testArgs(@Vector(1, i64), @Vector(1, f32), .{
11715 -0x0.8p64,
11716 });
11717 try testArgs(@Vector(2, i64), @Vector(2, f32), .{
11718 next(f32, -0x0.8p64, -0.0), next(f32, next(f32, -0x0.8p64, -0.0), -0.0),
11719 });
11720 try testArgs(@Vector(4, i64), @Vector(4, f32), .{
11721 -1e4, -1e3, -1e2, -1e1,
11722 });
11723 try testArgs(@Vector(8, i64), @Vector(8, f32), .{
11724 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11725 });
11726 try testArgs(@Vector(16, i64), @Vector(16, f32), .{
11727 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11728 1e3, 1e4, next(f32, next(f32, 0x0.8p64, 0.0), 0.0), next(f32, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
11729 });
11730 try testArgs(@Vector(32, i64), @Vector(32, f32), .{
11731 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11732 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11733 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11734 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11735 });
11736 try testArgs(@Vector(64, i64), @Vector(64, f32), .{
11737 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11738 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11739 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11740 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11741 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11742 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11743 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11744 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11745 });
11746 try testArgs(@Vector(128, i64), @Vector(128, f32), .{
11747 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
11748 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
11749 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
11750 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
11751 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
11752 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
11753 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
11754 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11755 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
11756 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
11757 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
11758 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
11759 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
11760 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
11761 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
11762 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
11763 });
11764
11765 try testArgs(@Vector(1, u64), @Vector(1, f32), .{
11766 -0.0,
11767 });
11768 try testArgs(@Vector(2, u64), @Vector(2, f32), .{
11769 0.0, 1e-5,
11770 });
11771 try testArgs(@Vector(4, u64), @Vector(4, f32), .{
11772 1e-4, 1e-3, 1e-2, 1e-1,
11773 });
11774 try testArgs(@Vector(8, u64), @Vector(8, f32), .{
11775 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p64, 0.0), 0.0), next(f32, 0x1p64, 0.0), 2e-5,
11776 });
11777 try testArgs(@Vector(16, u64), @Vector(16, f32), .{
11778 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11779 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11780 });
11781 try testArgs(@Vector(32, u64), @Vector(32, f32), .{
11782 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11783 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11784 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11785 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11786 });
11787 try testArgs(@Vector(64, u64), @Vector(64, f32), .{
11788 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11789 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11790 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11791 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11792 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11793 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11794 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11795 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11796 });
11797 try testArgs(@Vector(128, u64), @Vector(128, f32), .{
11798 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
11799 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
11800 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
11801 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
11802 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
11803 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
11804 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
11805 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
11806 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
11807 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
11808 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
11809 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
11810 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
11811 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
11812 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
11813 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
11814 });
11815
11816 try testArgs(@Vector(1, i128), @Vector(1, f32), .{
11817 -0x0.8p128,
11818 });
11819 try testArgs(@Vector(2, i128), @Vector(2, f32), .{
11820 next(f32, -0x0.8p128, -0.0), next(f32, next(f32, -0x0.8p128, -0.0), -0.0),
11821 });
11822 try testArgs(@Vector(4, i128), @Vector(4, f32), .{
11823 -1e4, -1e3, -1e2, -1e1,
11824 });
11825 try testArgs(@Vector(8, i128), @Vector(8, f32), .{
11826 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11827 });
11828 try testArgs(@Vector(16, i128), @Vector(16, f32), .{
11829 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11830 1e3, 1e4, next(f32, next(f32, 0x0.8p128, 0.0), 0.0), next(f32, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
11831 });
11832 try testArgs(@Vector(32, i128), @Vector(32, f32), .{
11833 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11834 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11835 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11836 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11837 });
11838 try testArgs(@Vector(64, i128), @Vector(64, f32), .{
11839 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11840 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11841 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11842 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11843 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11844 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11845 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11846 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11847 });
11848
11849 try testArgs(@Vector(1, u128), @Vector(1, f32), .{
11850 -0.0,
11851 });
11852 try testArgs(@Vector(2, u128), @Vector(2, f32), .{
11853 0.0, 1e-5,
11854 });
11855 try testArgs(@Vector(4, u128), @Vector(4, f32), .{
11856 1e-4, 1e-3, 1e-2, 1e-1,
11857 });
11858 try testArgs(@Vector(8, u128), @Vector(8, f32), .{
11859 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5,
11860 });
11861 try testArgs(@Vector(16, u128), @Vector(16, f32), .{
11862 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11863 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11864 });
11865 try testArgs(@Vector(32, u128), @Vector(32, f32), .{
11866 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11867 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11868 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11869 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11870 });
11871 try testArgs(@Vector(64, u128), @Vector(64, f32), .{
11872 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11873 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11874 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11875 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11876 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11877 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11878 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11879 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11880 });
11881
11882 try testArgs(@Vector(1, i256), @Vector(1, f32), .{
11883 -fmax(f32),
11884 });
11885 try testArgs(@Vector(2, i256), @Vector(2, f32), .{
11886 next(f32, -fmax(f32), -0.0), next(f32, next(f32, -fmax(f32), -0.0), -0.0),
11887 });
11888 try testArgs(@Vector(4, i256), @Vector(4, f32), .{
11889 -1e4, -1e3, -1e2, -1e1,
11890 });
11891 try testArgs(@Vector(8, i256), @Vector(8, f32), .{
11892 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
11893 });
11894 try testArgs(@Vector(16, i256), @Vector(16, f32), .{
11895 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
11896 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), -2e4, -2e3, -2e2, -2e1,
11897 });
11898 try testArgs(@Vector(32, i256), @Vector(32, f32), .{
11899 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
11900 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
11901 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
11902 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
11903 });
11904 try testArgs(@Vector(64, i256), @Vector(64, f32), .{
11905 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
11906 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
11907 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
11908 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
11909 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
11910 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
11911 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
11912 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
11913 });
11914
11915 try testArgs(@Vector(1, u256), @Vector(1, f32), .{
11916 -0.0,
11917 });
11918 try testArgs(@Vector(2, u256), @Vector(2, f32), .{
11919 0.0, 1e-5,
11920 });
11921 try testArgs(@Vector(4, u256), @Vector(4, f32), .{
11922 1e-4, 1e-3, 1e-2, 1e-1,
11923 });
11924 try testArgs(@Vector(8, u256), @Vector(8, f32), .{
11925 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5,
11926 });
11927 try testArgs(@Vector(16, u256), @Vector(16, f32), .{
11928 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
11929 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
11930 });
11931 try testArgs(@Vector(32, u256), @Vector(32, f32), .{
11932 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11933 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
11934 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
11935 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
11936 });
11937 try testArgs(@Vector(64, u256), @Vector(64, f32), .{
11938 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
11939 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
11940 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
11941 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
11942 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11943 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
11944 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
11945 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
11946 });
11947
11948 try testArgs(@Vector(1, i8), @Vector(1, f64), .{
11949 -0x0.8p8,
11950 });
11951 try testArgs(@Vector(2, i8), @Vector(2, f64), .{
11952 next(f64, -0x0.8p8, -0.0), next(f64, next(f64, -0x0.8p8, -0.0), -0.0),
11953 });
11954 try testArgs(@Vector(4, i8), @Vector(4, f64), .{
11955 -1e2, -1e1, -1e0, -1e-1,
11956 });
11957 try testArgs(@Vector(8, i8), @Vector(8, f64), .{
11958 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
11959 });
11960 try testArgs(@Vector(16, i8), @Vector(16, f64), .{
11961 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f64, next(f64, 0x0.8p8, 0.0), 0.0), next(f64, 0x0.8p8, 0.0),
11962 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
11963 });
11964 try testArgs(@Vector(32, i8), @Vector(32, f64), .{
11965 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
11966 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
11967 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
11968 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
11969 });
11970 try testArgs(@Vector(64, i8), @Vector(64, f64), .{
11971 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
11972 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
11973 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
11974 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
11975 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
11976 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
11977 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
11978 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
11979 });
11980 try testArgs(@Vector(128, i8), @Vector(128, f64), .{
11981 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
11982 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
11983 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
11984 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
11985 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
11986 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
11987 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
11988 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
11989 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
11990 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
11991 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
11992 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
11993 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
11994 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
11995 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
11996 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
11997 });
11998
11999 try testArgs(@Vector(1, u8), @Vector(1, f64), .{
12000 -0.0,
12001 });
12002 try testArgs(@Vector(2, u8), @Vector(2, f64), .{
12003 0.0, 1e-5,
12004 });
12005 try testArgs(@Vector(4, u8), @Vector(4, f64), .{
12006 1e-4, 1e-3, 1e-2, 1e-1,
12007 });
12008 try testArgs(@Vector(8, u8), @Vector(8, f64), .{
12009 1e0, 1e1, 1e2, next(f64, next(f64, 0x1p8, 0.0), 0.0), next(f64, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
12010 });
12011 try testArgs(@Vector(16, u8), @Vector(16, f64), .{
12012 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
12013 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
12014 });
12015 try testArgs(@Vector(32, u8), @Vector(32, f64), .{
12016 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
12017 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
12018 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
12019 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
12020 });
12021 try testArgs(@Vector(64, u8), @Vector(64, f64), .{
12022 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
12023 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
12024 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12025 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
12026 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
12027 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
12028 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
12029 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
12030 });
12031 try testArgs(@Vector(128, u8), @Vector(128, f64), .{
12032 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
12033 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12034 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
12035 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
12036 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
12037 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
12038 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
12039 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
12040 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
12041 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
12042 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
12043 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
12044 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
12045 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
12046 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
12047 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
12048 });
12049
12050 try testArgs(@Vector(1, i16), @Vector(1, f64), .{
12051 -0x0.8p16,
12052 });
12053 try testArgs(@Vector(2, i16), @Vector(2, f64), .{
12054 next(f64, -0x0.8p16, -0.0), next(f64, next(f64, -0x0.8p16, -0.0), -0.0),
12055 });
12056 try testArgs(@Vector(4, i16), @Vector(4, f64), .{
12057 -1e4, -1e3, -1e2, -1e1,
12058 });
12059 try testArgs(@Vector(8, i16), @Vector(8, f64), .{
12060 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12061 });
12062 try testArgs(@Vector(16, i16), @Vector(16, f64), .{
12063 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12064 1e3, 1e4, next(f64, next(f64, 0x0.8p16, 0.0), 0.0), next(f64, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
12065 });
12066 try testArgs(@Vector(32, i16), @Vector(32, f64), .{
12067 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12068 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12069 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12070 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12071 });
12072 try testArgs(@Vector(64, i16), @Vector(64, f64), .{
12073 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12074 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12075 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12076 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12077 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12078 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12079 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12080 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12081 });
12082 try testArgs(@Vector(128, i16), @Vector(128, f64), .{
12083 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12084 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12085 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12086 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12087 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12088 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12089 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12090 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12091 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12092 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12093 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12094 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12095 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12096 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12097 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12098 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12099 });
12100
12101 try testArgs(@Vector(1, u16), @Vector(1, f64), .{
12102 -0.0,
12103 });
12104 try testArgs(@Vector(2, u16), @Vector(2, f64), .{
12105 0.0, 1e-5,
12106 });
12107 try testArgs(@Vector(4, u16), @Vector(4, f64), .{
12108 1e-4, 1e-3, 1e-2, 1e-1,
12109 });
12110 try testArgs(@Vector(8, u16), @Vector(8, f64), .{
12111 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p16, 0.0), 0.0), next(f64, 0x1p16, 0.0), 2e-5,
12112 });
12113 try testArgs(@Vector(16, u16), @Vector(16, f64), .{
12114 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12115 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12116 });
12117 try testArgs(@Vector(32, u16), @Vector(32, f64), .{
12118 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12119 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12120 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12121 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12122 });
12123 try testArgs(@Vector(64, u16), @Vector(64, f64), .{
12124 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12125 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12126 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12127 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12128 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12129 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12130 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12131 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12132 });
12133 try testArgs(@Vector(128, u16), @Vector(128, f64), .{
12134 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12135 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12136 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12137 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12138 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12139 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12140 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12141 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12142 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12143 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12144 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12145 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12146 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12147 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12148 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12149 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12150 });
12151
12152 try testArgs(@Vector(1, i32), @Vector(1, f64), .{
12153 -0x0.8p32,
12154 });
12155 try testArgs(@Vector(2, i32), @Vector(2, f64), .{
12156 next(f64, -0x0.8p32, -0.0), next(f64, next(f64, -0x0.8p32, -0.0), -0.0),
12157 });
12158 try testArgs(@Vector(4, i32), @Vector(4, f64), .{
12159 -1e4, -1e3, -1e2, -1e1,
12160 });
12161 try testArgs(@Vector(8, i32), @Vector(8, f64), .{
12162 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12163 });
12164 try testArgs(@Vector(16, i32), @Vector(16, f64), .{
12165 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12166 1e3, 1e4, next(f64, next(f64, 0x0.8p32, 0.0), 0.0), next(f64, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
12167 });
12168 try testArgs(@Vector(32, i32), @Vector(32, f64), .{
12169 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12170 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12171 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12172 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12173 });
12174 try testArgs(@Vector(64, i32), @Vector(64, f64), .{
12175 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12176 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12177 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12178 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12179 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12180 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12181 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12182 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12183 });
12184 try testArgs(@Vector(128, i32), @Vector(128, f64), .{
12185 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12186 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12187 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12188 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12189 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12190 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12191 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12192 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12193 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12194 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12195 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12196 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12197 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12198 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12199 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12200 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12201 });
12202
12203 try testArgs(@Vector(1, u32), @Vector(1, f64), .{
12204 -0.0,
12205 });
12206 try testArgs(@Vector(2, u32), @Vector(2, f64), .{
12207 0.0, 1e-5,
12208 });
12209 try testArgs(@Vector(4, u32), @Vector(4, f64), .{
12210 1e-4, 1e-3, 1e-2, 1e-1,
12211 });
12212 try testArgs(@Vector(8, u32), @Vector(8, f64), .{
12213 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p32, 0.0), 0.0), next(f64, 0x1p32, 0.0), 2e-5,
12214 });
12215 try testArgs(@Vector(16, u32), @Vector(16, f64), .{
12216 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12217 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12218 });
12219 try testArgs(@Vector(32, u32), @Vector(32, f64), .{
12220 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12221 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12222 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12223 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12224 });
12225 try testArgs(@Vector(64, u32), @Vector(64, f64), .{
12226 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12227 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12228 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12229 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12230 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12231 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12232 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12233 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12234 });
12235 try testArgs(@Vector(128, u32), @Vector(128, f64), .{
12236 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12237 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12238 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12239 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12240 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12241 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12242 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12243 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12244 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12245 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12246 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12247 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12248 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12249 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12250 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12251 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12252 });
12253
12254 try testArgs(@Vector(1, i64), @Vector(1, f64), .{
12255 -0x0.8p64,
12256 });
12257 try testArgs(@Vector(2, i64), @Vector(2, f64), .{
12258 next(f64, -0x0.8p64, -0.0), next(f64, next(f64, -0x0.8p64, -0.0), -0.0),
12259 });
12260 try testArgs(@Vector(4, i64), @Vector(4, f64), .{
12261 -1e4, -1e3, -1e2, -1e1,
12262 });
12263 try testArgs(@Vector(8, i64), @Vector(8, f64), .{
12264 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12265 });
12266 try testArgs(@Vector(16, i64), @Vector(16, f64), .{
12267 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12268 1e3, 1e4, next(f64, next(f64, 0x0.8p64, 0.0), 0.0), next(f64, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
12269 });
12270 try testArgs(@Vector(32, i64), @Vector(32, f64), .{
12271 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12272 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12273 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12274 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12275 });
12276 try testArgs(@Vector(64, i64), @Vector(64, f64), .{
12277 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12278 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12279 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12280 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12281 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12282 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12283 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12284 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12285 });
12286 try testArgs(@Vector(128, i64), @Vector(128, f64), .{
12287 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12288 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12289 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12290 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12291 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12292 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12293 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12294 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12295 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12296 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12297 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12298 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12299 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12300 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12301 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12302 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12303 });
12304
12305 try testArgs(@Vector(1, u64), @Vector(1, f64), .{
12306 -0.0,
12307 });
12308 try testArgs(@Vector(2, u64), @Vector(2, f64), .{
12309 0.0, 1e-5,
12310 });
12311 try testArgs(@Vector(4, u64), @Vector(4, f64), .{
12312 1e-4, 1e-3, 1e-2, 1e-1,
12313 });
12314 try testArgs(@Vector(8, u64), @Vector(8, f64), .{
12315 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p64, 0.0), 0.0), next(f64, 0x1p64, 0.0), 2e-5,
12316 });
12317 try testArgs(@Vector(16, u64), @Vector(16, f64), .{
12318 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12319 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12320 });
12321 try testArgs(@Vector(32, u64), @Vector(32, f64), .{
12322 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12323 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12324 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12325 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12326 });
12327 try testArgs(@Vector(64, u64), @Vector(64, f64), .{
12328 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12329 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12330 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12331 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12332 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12333 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12334 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12335 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12336 });
12337 try testArgs(@Vector(128, u64), @Vector(128, f64), .{
12338 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12339 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12340 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12341 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12342 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12343 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12344 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12345 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12346 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12347 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12348 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12349 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12350 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12351 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12352 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12353 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12354 });
12355
12356 try testArgs(@Vector(1, i128), @Vector(1, f64), .{
12357 -0x0.8p128,
12358 });
12359 try testArgs(@Vector(2, i128), @Vector(2, f64), .{
12360 next(f64, -0x0.8p128, -0.0), next(f64, next(f64, -0x0.8p128, -0.0), -0.0),
12361 });
12362 try testArgs(@Vector(4, i128), @Vector(4, f64), .{
12363 -1e4, -1e3, -1e2, -1e1,
12364 });
12365 try testArgs(@Vector(8, i128), @Vector(8, f64), .{
12366 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12367 });
12368 try testArgs(@Vector(16, i128), @Vector(16, f64), .{
12369 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12370 1e3, 1e4, next(f64, next(f64, 0x0.8p128, 0.0), 0.0), next(f64, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
12371 });
12372 try testArgs(@Vector(32, i128), @Vector(32, f64), .{
12373 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12374 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12375 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12376 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12377 });
12378 try testArgs(@Vector(64, i128), @Vector(64, f64), .{
12379 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12380 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12381 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12382 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12383 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12384 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12385 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12386 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12387 });
12388
12389 try testArgs(@Vector(1, u128), @Vector(1, f64), .{
12390 -0.0,
12391 });
12392 try testArgs(@Vector(2, u128), @Vector(2, f64), .{
12393 0.0, 1e-5,
12394 });
12395 try testArgs(@Vector(4, u128), @Vector(4, f64), .{
12396 1e-4, 1e-3, 1e-2, 1e-1,
12397 });
12398 try testArgs(@Vector(8, u128), @Vector(8, f64), .{
12399 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p128, 0.0), 0.0), next(f64, 0x1p128, 0.0), 2e-5,
12400 });
12401 try testArgs(@Vector(16, u128), @Vector(16, f64), .{
12402 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12403 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12404 });
12405 try testArgs(@Vector(32, u128), @Vector(32, f64), .{
12406 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12407 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12408 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12409 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12410 });
12411 try testArgs(@Vector(64, u128), @Vector(64, f64), .{
12412 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12413 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12414 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12415 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12416 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12417 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12418 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12419 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12420 });
12421
12422 try testArgs(@Vector(1, i256), @Vector(1, f64), .{
12423 -0x0.8p256,
12424 });
12425 try testArgs(@Vector(2, i256), @Vector(2, f64), .{
12426 next(f64, -0x0.8p256, -0.0), next(f64, next(f64, -0x0.8p256, -0.0), -0.0),
12427 });
12428 try testArgs(@Vector(4, i256), @Vector(4, f64), .{
12429 -1e4, -1e3, -1e2, -1e1,
12430 });
12431 try testArgs(@Vector(8, i256), @Vector(8, f64), .{
12432 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12433 });
12434 try testArgs(@Vector(16, i256), @Vector(16, f64), .{
12435 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12436 1e3, 1e4, next(f64, next(f64, 0x0.8p256, 0.0), 0.0), next(f64, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
12437 });
12438 try testArgs(@Vector(32, i256), @Vector(32, f64), .{
12439 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12440 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12441 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12442 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12443 });
12444 try testArgs(@Vector(64, i256), @Vector(64, f64), .{
12445 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12446 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12447 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12448 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12449 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12450 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12451 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12452 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12453 });
12454
12455 try testArgs(@Vector(1, u256), @Vector(1, f64), .{
12456 -0.0,
12457 });
12458 try testArgs(@Vector(2, u256), @Vector(2, f64), .{
12459 0.0, 1e-5,
12460 });
12461 try testArgs(@Vector(4, u256), @Vector(4, f64), .{
12462 1e-4, 1e-3, 1e-2, 1e-1,
12463 });
12464 try testArgs(@Vector(8, u256), @Vector(8, f64), .{
12465 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p256, 0.0), 0.0), next(f64, 0x1p256, 0.0), 2e-5,
12466 });
12467 try testArgs(@Vector(16, u256), @Vector(16, f64), .{
12468 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12469 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12470 });
12471 try testArgs(@Vector(32, u256), @Vector(32, f64), .{
12472 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12473 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12474 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12475 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12476 });
12477 try testArgs(@Vector(64, u256), @Vector(64, f64), .{
12478 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12479 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12480 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12481 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12482 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12483 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12484 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12485 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12486 });
12487
12488 try testArgs(@Vector(1, i8), @Vector(1, f80), .{
12489 -0x0.8p8,
12490 });
12491 try testArgs(@Vector(2, i8), @Vector(2, f80), .{
12492 next(f80, -0x0.8p8, -0.0), next(f80, next(f80, -0x0.8p8, -0.0), -0.0),
12493 });
12494 try testArgs(@Vector(4, i8), @Vector(4, f80), .{
12495 -1e2, -1e1, -1e0, -1e-1,
12496 });
12497 try testArgs(@Vector(8, i8), @Vector(8, f80), .{
12498 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
12499 });
12500 try testArgs(@Vector(16, i8), @Vector(16, f80), .{
12501 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f80, next(f80, 0x0.8p8, 0.0), 0.0), next(f80, 0x0.8p8, 0.0),
12502 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
12503 });
12504 try testArgs(@Vector(32, i8), @Vector(32, f80), .{
12505 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
12506 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
12507 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
12508 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12509 });
12510 try testArgs(@Vector(64, i8), @Vector(64, f80), .{
12511 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
12512 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
12513 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
12514 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
12515 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
12516 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
12517 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
12518 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
12519 });
12520 try testArgs(@Vector(128, i8), @Vector(128, f80), .{
12521 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
12522 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
12523 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
12524 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
12525 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
12526 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12527 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
12528 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
12529 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
12530 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
12531 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
12532 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
12533 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
12534 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
12535 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
12536 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
12537 });
12538
12539 try testArgs(@Vector(1, u8), @Vector(1, f80), .{
12540 -0.0,
12541 });
12542 try testArgs(@Vector(2, u8), @Vector(2, f80), .{
12543 0.0, 1e-5,
12544 });
12545 try testArgs(@Vector(4, u8), @Vector(4, f80), .{
12546 1e-4, 1e-3, 1e-2, 1e-1,
12547 });
12548 try testArgs(@Vector(8, u8), @Vector(8, f80), .{
12549 1e0, 1e1, 1e2, next(f80, next(f80, 0x1p8, 0.0), 0.0), next(f80, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
12550 });
12551 try testArgs(@Vector(16, u8), @Vector(16, f80), .{
12552 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
12553 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
12554 });
12555 try testArgs(@Vector(32, u8), @Vector(32, f80), .{
12556 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
12557 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
12558 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
12559 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
12560 });
12561 try testArgs(@Vector(64, u8), @Vector(64, f80), .{
12562 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
12563 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
12564 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12565 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
12566 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
12567 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
12568 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
12569 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
12570 });
12571 try testArgs(@Vector(128, u8), @Vector(128, f80), .{
12572 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
12573 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12574 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
12575 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
12576 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
12577 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
12578 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
12579 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
12580 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
12581 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
12582 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
12583 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
12584 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
12585 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
12586 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
12587 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
12588 });
12589
12590 try testArgs(@Vector(1, i16), @Vector(1, f80), .{
12591 -0x0.8p16,
12592 });
12593 try testArgs(@Vector(2, i16), @Vector(2, f80), .{
12594 next(f80, -0x0.8p16, -0.0), next(f80, next(f80, -0x0.8p16, -0.0), -0.0),
12595 });
12596 try testArgs(@Vector(4, i16), @Vector(4, f80), .{
12597 -1e4, -1e3, -1e2, -1e1,
12598 });
12599 try testArgs(@Vector(8, i16), @Vector(8, f80), .{
12600 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12601 });
12602 try testArgs(@Vector(16, i16), @Vector(16, f80), .{
12603 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12604 1e3, 1e4, next(f80, next(f80, 0x0.8p16, 0.0), 0.0), next(f80, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
12605 });
12606 try testArgs(@Vector(32, i16), @Vector(32, f80), .{
12607 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12608 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12609 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12610 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12611 });
12612 try testArgs(@Vector(64, i16), @Vector(64, f80), .{
12613 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12614 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12615 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12616 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12617 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12618 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12619 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12620 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12621 });
12622 try testArgs(@Vector(128, i16), @Vector(128, f80), .{
12623 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12624 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12625 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12626 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12627 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12628 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12629 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12630 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12631 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12632 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12633 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12634 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12635 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12636 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12637 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12638 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12639 });
12640
12641 try testArgs(@Vector(1, u16), @Vector(1, f80), .{
12642 -0.0,
12643 });
12644 try testArgs(@Vector(2, u16), @Vector(2, f80), .{
12645 0.0, 1e-5,
12646 });
12647 try testArgs(@Vector(4, u16), @Vector(4, f80), .{
12648 1e-4, 1e-3, 1e-2, 1e-1,
12649 });
12650 try testArgs(@Vector(8, u16), @Vector(8, f80), .{
12651 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p16, 0.0), 0.0), next(f80, 0x1p16, 0.0), 2e-5,
12652 });
12653 try testArgs(@Vector(16, u16), @Vector(16, f80), .{
12654 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12655 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12656 });
12657 try testArgs(@Vector(32, u16), @Vector(32, f80), .{
12658 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12659 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12660 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12661 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12662 });
12663 try testArgs(@Vector(64, u16), @Vector(64, f80), .{
12664 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12665 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12666 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12667 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12668 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12669 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12670 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12671 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12672 });
12673 try testArgs(@Vector(128, u16), @Vector(128, f80), .{
12674 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12675 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12676 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12677 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12678 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12679 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12680 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12681 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12682 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12683 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12684 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12685 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12686 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12687 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12688 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12689 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12690 });
12691
12692 try testArgs(@Vector(1, i32), @Vector(1, f80), .{
12693 -0x0.8p32,
12694 });
12695 try testArgs(@Vector(2, i32), @Vector(2, f80), .{
12696 next(f80, -0x0.8p32, -0.0), next(f80, next(f80, -0x0.8p32, -0.0), -0.0),
12697 });
12698 try testArgs(@Vector(4, i32), @Vector(4, f80), .{
12699 -1e4, -1e3, -1e2, -1e1,
12700 });
12701 try testArgs(@Vector(8, i32), @Vector(8, f80), .{
12702 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12703 });
12704 try testArgs(@Vector(16, i32), @Vector(16, f80), .{
12705 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12706 1e3, 1e4, next(f80, next(f80, 0x0.8p32, 0.0), 0.0), next(f80, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
12707 });
12708 try testArgs(@Vector(32, i32), @Vector(32, f80), .{
12709 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12710 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12711 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12712 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12713 });
12714 try testArgs(@Vector(64, i32), @Vector(64, f80), .{
12715 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12716 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12717 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12718 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12719 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12720 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12721 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12722 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12723 });
12724 try testArgs(@Vector(128, i32), @Vector(128, f80), .{
12725 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12726 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12727 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12728 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12729 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12730 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12731 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12732 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12733 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12734 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12735 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12736 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12737 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12738 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12739 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12740 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12741 });
12742
12743 try testArgs(@Vector(1, u32), @Vector(1, f80), .{
12744 -0.0,
12745 });
12746 try testArgs(@Vector(2, u32), @Vector(2, f80), .{
12747 0.0, 1e-5,
12748 });
12749 try testArgs(@Vector(4, u32), @Vector(4, f80), .{
12750 1e-4, 1e-3, 1e-2, 1e-1,
12751 });
12752 try testArgs(@Vector(8, u32), @Vector(8, f80), .{
12753 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p32, 0.0), 0.0), next(f80, 0x1p32, 0.0), 2e-5,
12754 });
12755 try testArgs(@Vector(16, u32), @Vector(16, f80), .{
12756 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12757 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12758 });
12759 try testArgs(@Vector(32, u32), @Vector(32, f80), .{
12760 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12761 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12762 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12763 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12764 });
12765 try testArgs(@Vector(64, u32), @Vector(64, f80), .{
12766 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12767 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12768 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12769 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12770 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12771 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12772 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12773 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12774 });
12775 try testArgs(@Vector(128, u32), @Vector(128, f80), .{
12776 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12777 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12778 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12779 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12780 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12781 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12782 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12783 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12784 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12785 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12786 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12787 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12788 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12789 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12790 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12791 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12792 });
12793
12794 try testArgs(@Vector(1, i64), @Vector(1, f80), .{
12795 -0x0.8p64,
12796 });
12797 try testArgs(@Vector(2, i64), @Vector(2, f80), .{
12798 next(f80, -0x0.8p64, -0.0), next(f80, next(f80, -0x0.8p64, -0.0), -0.0),
12799 });
12800 try testArgs(@Vector(4, i64), @Vector(4, f80), .{
12801 -1e4, -1e3, -1e2, -1e1,
12802 });
12803 try testArgs(@Vector(8, i64), @Vector(8, f80), .{
12804 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12805 });
12806 try testArgs(@Vector(16, i64), @Vector(16, f80), .{
12807 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12808 1e3, 1e4, next(f80, next(f80, 0x0.8p64, 0.0), 0.0), next(f80, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
12809 });
12810 try testArgs(@Vector(32, i64), @Vector(32, f80), .{
12811 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12812 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12813 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12814 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12815 });
12816 try testArgs(@Vector(64, i64), @Vector(64, f80), .{
12817 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12818 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12819 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12820 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12821 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12822 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12823 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12824 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12825 });
12826 try testArgs(@Vector(128, i64), @Vector(128, f80), .{
12827 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
12828 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
12829 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
12830 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
12831 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
12832 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
12833 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
12834 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12835 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
12836 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
12837 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
12838 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
12839 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
12840 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
12841 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
12842 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
12843 });
12844
12845 try testArgs(@Vector(1, u64), @Vector(1, f80), .{
12846 -0.0,
12847 });
12848 try testArgs(@Vector(2, u64), @Vector(2, f80), .{
12849 0.0, 1e-5,
12850 });
12851 try testArgs(@Vector(4, u64), @Vector(4, f80), .{
12852 1e-4, 1e-3, 1e-2, 1e-1,
12853 });
12854 try testArgs(@Vector(8, u64), @Vector(8, f80), .{
12855 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p64, 0.0), 0.0), next(f80, 0x1p64, 0.0), 2e-5,
12856 });
12857 try testArgs(@Vector(16, u64), @Vector(16, f80), .{
12858 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12859 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12860 });
12861 try testArgs(@Vector(32, u64), @Vector(32, f80), .{
12862 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12863 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12864 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12865 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12866 });
12867 try testArgs(@Vector(64, u64), @Vector(64, f80), .{
12868 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12869 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12870 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12871 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12872 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12873 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12874 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12875 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12876 });
12877 try testArgs(@Vector(128, u64), @Vector(128, f80), .{
12878 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
12879 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
12880 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
12881 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
12882 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
12883 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
12884 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
12885 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
12886 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
12887 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
12888 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
12889 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
12890 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
12891 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
12892 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
12893 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
12894 });
12895
12896 try testArgs(@Vector(1, i128), @Vector(1, f80), .{
12897 -0x0.8p128,
12898 });
12899 try testArgs(@Vector(2, i128), @Vector(2, f80), .{
12900 next(f80, -0x0.8p128, -0.0), next(f80, next(f80, -0x0.8p128, -0.0), -0.0),
12901 });
12902 try testArgs(@Vector(4, i128), @Vector(4, f80), .{
12903 -1e4, -1e3, -1e2, -1e1,
12904 });
12905 try testArgs(@Vector(8, i128), @Vector(8, f80), .{
12906 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12907 });
12908 try testArgs(@Vector(16, i128), @Vector(16, f80), .{
12909 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12910 1e3, 1e4, next(f80, next(f80, 0x0.8p128, 0.0), 0.0), next(f80, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
12911 });
12912 try testArgs(@Vector(32, i128), @Vector(32, f80), .{
12913 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12914 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12915 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12916 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12917 });
12918 try testArgs(@Vector(64, i128), @Vector(64, f80), .{
12919 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12920 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12921 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12922 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12923 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12924 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12925 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12926 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12927 });
12928
12929 try testArgs(@Vector(1, u128), @Vector(1, f80), .{
12930 -0.0,
12931 });
12932 try testArgs(@Vector(2, u128), @Vector(2, f80), .{
12933 0.0, 1e-5,
12934 });
12935 try testArgs(@Vector(4, u128), @Vector(4, f80), .{
12936 1e-4, 1e-3, 1e-2, 1e-1,
12937 });
12938 try testArgs(@Vector(8, u128), @Vector(8, f80), .{
12939 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p128, 0.0), 0.0), next(f80, 0x1p128, 0.0), 2e-5,
12940 });
12941 try testArgs(@Vector(16, u128), @Vector(16, f80), .{
12942 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
12943 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
12944 });
12945 try testArgs(@Vector(32, u128), @Vector(32, f80), .{
12946 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
12947 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
12948 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
12949 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
12950 });
12951 try testArgs(@Vector(64, u128), @Vector(64, f80), .{
12952 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
12953 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
12954 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
12955 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
12956 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
12957 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
12958 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
12959 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
12960 });
12961
12962 try testArgs(@Vector(1, i256), @Vector(1, f80), .{
12963 -0x0.8p256,
12964 });
12965 try testArgs(@Vector(2, i256), @Vector(2, f80), .{
12966 next(f80, -0x0.8p256, -0.0), next(f80, next(f80, -0x0.8p256, -0.0), -0.0),
12967 });
12968 try testArgs(@Vector(4, i256), @Vector(4, f80), .{
12969 -1e4, -1e3, -1e2, -1e1,
12970 });
12971 try testArgs(@Vector(8, i256), @Vector(8, f80), .{
12972 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
12973 });
12974 try testArgs(@Vector(16, i256), @Vector(16, f80), .{
12975 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
12976 1e3, 1e4, next(f80, next(f80, 0x0.8p256, 0.0), 0.0), next(f80, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
12977 });
12978 try testArgs(@Vector(32, i256), @Vector(32, f80), .{
12979 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
12980 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
12981 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
12982 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
12983 });
12984 try testArgs(@Vector(64, i256), @Vector(64, f80), .{
12985 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
12986 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
12987 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
12988 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
12989 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
12990 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
12991 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
12992 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
12993 });
12994
12995 try testArgs(@Vector(1, u256), @Vector(1, f80), .{
12996 -0.0,
12997 });
12998 try testArgs(@Vector(2, u256), @Vector(2, f80), .{
12999 0.0, 1e-5,
13000 });
13001 try testArgs(@Vector(4, u256), @Vector(4, f80), .{
13002 1e-4, 1e-3, 1e-2, 1e-1,
13003 });
13004 try testArgs(@Vector(8, u256), @Vector(8, f80), .{
13005 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p256, 0.0), 0.0), next(f80, 0x1p256, 0.0), 2e-5,
13006 });
13007 try testArgs(@Vector(16, u256), @Vector(16, f80), .{
13008 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13009 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13010 });
13011 try testArgs(@Vector(32, u256), @Vector(32, f80), .{
13012 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13013 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13014 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13015 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13016 });
13017 try testArgs(@Vector(64, u256), @Vector(64, f80), .{
13018 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13019 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13020 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13021 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13022 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13023 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13024 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13025 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13026 });
13027
13028 try testArgs(@Vector(1, i8), @Vector(1, f128), .{
13029 -0x0.8p8,
13030 });
13031 try testArgs(@Vector(2, i8), @Vector(2, f128), .{
13032 next(f128, -0x0.8p8, -0.0), next(f128, next(f128, -0x0.8p8, -0.0), -0.0),
13033 });
13034 try testArgs(@Vector(4, i8), @Vector(4, f128), .{
13035 -1e2, -1e1, -1e0, -1e-1,
13036 });
13037 try testArgs(@Vector(8, i8), @Vector(8, f128), .{
13038 -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4,
13039 });
13040 try testArgs(@Vector(16, i8), @Vector(16, f128), .{
13041 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, next(f128, next(f128, 0x0.8p8, 0.0), 0.0), next(f128, 0x0.8p8, 0.0),
13042 -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5,
13043 });
13044 try testArgs(@Vector(32, i8), @Vector(32, f128), .{
13045 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0,
13046 -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3,
13047 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2,
13048 -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13049 });
13050 try testArgs(@Vector(64, i8), @Vector(64, f128), .{
13051 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4,
13052 -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1,
13053 -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5,
13054 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0,
13055 -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3,
13056 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2,
13057 -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1,
13058 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4,
13059 });
13060 try testArgs(@Vector(128, i8), @Vector(128, f128), .{
13061 -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1,
13062 -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5,
13063 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0,
13064 -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3,
13065 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3,
13066 -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13067 -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4,
13068 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3,
13069 -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
13070 -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4,
13071 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3,
13072 -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0,
13073 -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4,
13074 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3,
13075 -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0,
13076 -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4,
13077 });
13078
13079 try testArgs(@Vector(1, u8), @Vector(1, f128), .{
13080 -0.0,
13081 });
13082 try testArgs(@Vector(2, u8), @Vector(2, f128), .{
13083 0.0, 1e-5,
13084 });
13085 try testArgs(@Vector(4, u8), @Vector(4, f128), .{
13086 1e-4, 1e-3, 1e-2, 1e-1,
13087 });
13088 try testArgs(@Vector(8, u8), @Vector(8, f128), .{
13089 1e0, 1e1, 1e2, next(f128, next(f128, 0x1p8, 0.0), 0.0), next(f128, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3,
13090 });
13091 try testArgs(@Vector(16, u8), @Vector(16, f128), .{
13092 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3,
13093 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2,
13094 });
13095 try testArgs(@Vector(32, u8), @Vector(32, f128), .{
13096 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1,
13097 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0,
13098 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1,
13099 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5,
13100 });
13101 try testArgs(@Vector(64, u8), @Vector(64, f128), .{
13102 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4,
13103 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3,
13104 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13105 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0,
13106 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1,
13107 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5,
13108 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4,
13109 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3,
13110 });
13111 try testArgs(@Vector(128, u8), @Vector(128, f128), .{
13112 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2,
13113 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
13114 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0,
13115 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1,
13116 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4,
13117 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2,
13118 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0,
13119 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4,
13120 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2,
13121 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0,
13122 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4,
13123 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2,
13124 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0,
13125 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4,
13126 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2,
13127 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0,
13128 });
13129
13130 try testArgs(@Vector(1, i16), @Vector(1, f128), .{
13131 -0x0.8p16,
13132 });
13133 try testArgs(@Vector(2, i16), @Vector(2, f128), .{
13134 next(f128, -0x0.8p16, -0.0), next(f128, next(f128, -0x0.8p16, -0.0), -0.0),
13135 });
13136 try testArgs(@Vector(4, i16), @Vector(4, f128), .{
13137 -1e4, -1e3, -1e2, -1e1,
13138 });
13139 try testArgs(@Vector(8, i16), @Vector(8, f128), .{
13140 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
13141 });
13142 try testArgs(@Vector(16, i16), @Vector(16, f128), .{
13143 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
13144 1e3, 1e4, next(f128, next(f128, 0x0.8p16, 0.0), 0.0), next(f128, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1,
13145 });
13146 try testArgs(@Vector(32, i16), @Vector(32, f128), .{
13147 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
13148 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
13149 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
13150 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
13151 });
13152 try testArgs(@Vector(64, i16), @Vector(64, f128), .{
13153 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
13154 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
13155 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
13156 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
13157 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
13158 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
13159 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
13160 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
13161 });
13162 try testArgs(@Vector(128, i16), @Vector(128, f128), .{
13163 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
13164 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
13165 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
13166 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
13167 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
13168 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
13169 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
13170 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13171 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
13172 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
13173 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
13174 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
13175 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
13176 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
13177 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
13178 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
13179 });
13180
13181 try testArgs(@Vector(1, u16), @Vector(1, f128), .{
13182 -0.0,
13183 });
13184 try testArgs(@Vector(2, u16), @Vector(2, f128), .{
13185 0.0, 1e-5,
13186 });
13187 try testArgs(@Vector(4, u16), @Vector(4, f128), .{
13188 1e-4, 1e-3, 1e-2, 1e-1,
13189 });
13190 try testArgs(@Vector(8, u16), @Vector(8, f128), .{
13191 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p16, 0.0), 0.0), next(f128, 0x1p16, 0.0), 2e-5,
13192 });
13193 try testArgs(@Vector(16, u16), @Vector(16, f128), .{
13194 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13195 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13196 });
13197 try testArgs(@Vector(32, u16), @Vector(32, f128), .{
13198 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13199 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13200 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13201 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13202 });
13203 try testArgs(@Vector(64, u16), @Vector(64, f128), .{
13204 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13205 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13206 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13207 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13208 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13209 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13210 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13211 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13212 });
13213 try testArgs(@Vector(128, u16), @Vector(128, f128), .{
13214 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
13215 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
13216 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
13217 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
13218 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
13219 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
13220 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
13221 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
13222 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
13223 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
13224 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
13225 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
13226 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
13227 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
13228 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
13229 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
13230 });
13231
13232 try testArgs(@Vector(1, i32), @Vector(1, f128), .{
13233 -0x0.8p32,
13234 });
13235 try testArgs(@Vector(2, i32), @Vector(2, f128), .{
13236 next(f128, -0x0.8p32, -0.0), next(f128, next(f128, -0x0.8p32, -0.0), -0.0),
13237 });
13238 try testArgs(@Vector(4, i32), @Vector(4, f128), .{
13239 -1e4, -1e3, -1e2, -1e1,
13240 });
13241 try testArgs(@Vector(8, i32), @Vector(8, f128), .{
13242 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
13243 });
13244 try testArgs(@Vector(16, i32), @Vector(16, f128), .{
13245 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
13246 1e3, 1e4, next(f128, next(f128, 0x0.8p32, 0.0), 0.0), next(f128, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1,
13247 });
13248 try testArgs(@Vector(32, i32), @Vector(32, f128), .{
13249 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
13250 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
13251 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
13252 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
13253 });
13254 try testArgs(@Vector(64, i32), @Vector(64, f128), .{
13255 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
13256 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
13257 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
13258 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
13259 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
13260 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
13261 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
13262 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
13263 });
13264 try testArgs(@Vector(128, i32), @Vector(128, f128), .{
13265 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
13266 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
13267 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
13268 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
13269 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
13270 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
13271 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
13272 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13273 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
13274 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
13275 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
13276 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
13277 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
13278 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
13279 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
13280 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
13281 });
13282
13283 try testArgs(@Vector(1, u32), @Vector(1, f128), .{
13284 -0.0,
13285 });
13286 try testArgs(@Vector(2, u32), @Vector(2, f128), .{
13287 0.0, 1e-5,
13288 });
13289 try testArgs(@Vector(4, u32), @Vector(4, f128), .{
13290 1e-4, 1e-3, 1e-2, 1e-1,
13291 });
13292 try testArgs(@Vector(8, u32), @Vector(8, f128), .{
13293 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p32, 0.0), 0.0), next(f128, 0x1p32, 0.0), 2e-5,
13294 });
13295 try testArgs(@Vector(16, u32), @Vector(16, f128), .{
13296 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13297 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13298 });
13299 try testArgs(@Vector(32, u32), @Vector(32, f128), .{
13300 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13301 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13302 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13303 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13304 });
13305 try testArgs(@Vector(64, u32), @Vector(64, f128), .{
13306 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13307 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13308 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13309 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13310 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13311 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13312 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13313 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13314 });
13315 try testArgs(@Vector(128, u32), @Vector(128, f128), .{
13316 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
13317 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
13318 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
13319 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
13320 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
13321 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
13322 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
13323 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
13324 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
13325 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
13326 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
13327 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
13328 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
13329 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
13330 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
13331 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
13332 });
13333
13334 try testArgs(@Vector(1, i64), @Vector(1, f128), .{
13335 -0x0.8p64,
13336 });
13337 try testArgs(@Vector(2, i64), @Vector(2, f128), .{
13338 next(f128, -0x0.8p64, -0.0), next(f128, next(f128, -0x0.8p64, -0.0), -0.0),
13339 });
13340 try testArgs(@Vector(4, i64), @Vector(4, f128), .{
13341 -1e4, -1e3, -1e2, -1e1,
13342 });
13343 try testArgs(@Vector(8, i64), @Vector(8, f128), .{
13344 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
13345 });
13346 try testArgs(@Vector(16, i64), @Vector(16, f128), .{
13347 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
13348 1e3, 1e4, next(f128, next(f128, 0x0.8p64, 0.0), 0.0), next(f128, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1,
13349 });
13350 try testArgs(@Vector(32, i64), @Vector(32, f128), .{
13351 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
13352 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
13353 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
13354 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
13355 });
13356 try testArgs(@Vector(64, i64), @Vector(64, f128), .{
13357 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
13358 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
13359 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
13360 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
13361 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
13362 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
13363 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
13364 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
13365 });
13366 try testArgs(@Vector(128, i64), @Vector(128, f128), .{
13367 -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1,
13368 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0,
13369 -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3,
13370 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2,
13371 -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5,
13372 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3,
13373 -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4,
13374 -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13375 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2,
13376 -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1,
13377 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0,
13378 -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3,
13379 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0,
13380 -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3,
13381 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2,
13382 -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5,
13383 });
13384
13385 try testArgs(@Vector(1, u64), @Vector(1, f128), .{
13386 -0.0,
13387 });
13388 try testArgs(@Vector(2, u64), @Vector(2, f128), .{
13389 0.0, 1e-5,
13390 });
13391 try testArgs(@Vector(4, u64), @Vector(4, f128), .{
13392 1e-4, 1e-3, 1e-2, 1e-1,
13393 });
13394 try testArgs(@Vector(8, u64), @Vector(8, f128), .{
13395 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p64, 0.0), 0.0), next(f128, 0x1p64, 0.0), 2e-5,
13396 });
13397 try testArgs(@Vector(16, u64), @Vector(16, f128), .{
13398 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13399 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13400 });
13401 try testArgs(@Vector(32, u64), @Vector(32, f128), .{
13402 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13403 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13404 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13405 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13406 });
13407 try testArgs(@Vector(64, u64), @Vector(64, f128), .{
13408 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13409 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13410 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13411 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13412 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13413 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13414 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13415 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13416 });
13417 try testArgs(@Vector(128, u64), @Vector(128, f128), .{
13418 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4,
13419 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5,
13420 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3,
13421 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2,
13422 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1,
13423 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0,
13424 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1,
13425 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2,
13426 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3,
13427 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4,
13428 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5,
13429 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3,
13430 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2,
13431 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1,
13432 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0,
13433 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1,
13434 });
13435
13436 try testArgs(@Vector(1, i128), @Vector(1, f128), .{
13437 -0x0.8p128,
13438 });
13439 try testArgs(@Vector(2, i128), @Vector(2, f128), .{
13440 next(f128, -0x0.8p128, -0.0), next(f128, next(f128, -0x0.8p128, -0.0), -0.0),
13441 });
13442 try testArgs(@Vector(4, i128), @Vector(4, f128), .{
13443 -1e4, -1e3, -1e2, -1e1,
13444 });
13445 try testArgs(@Vector(8, i128), @Vector(8, f128), .{
13446 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
13447 });
13448 try testArgs(@Vector(16, i128), @Vector(16, f128), .{
13449 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
13450 1e3, 1e4, next(f128, next(f128, 0x0.8p128, 0.0), 0.0), next(f128, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1,
13451 });
13452 try testArgs(@Vector(32, i128), @Vector(32, f128), .{
13453 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
13454 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
13455 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
13456 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
13457 });
13458 try testArgs(@Vector(64, i128), @Vector(64, f128), .{
13459 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
13460 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
13461 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
13462 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
13463 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
13464 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
13465 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
13466 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
13467 });
13468
13469 try testArgs(@Vector(1, u128), @Vector(1, f128), .{
13470 -0.0,
13471 });
13472 try testArgs(@Vector(2, u128), @Vector(2, f128), .{
13473 0.0, 1e-5,
13474 });
13475 try testArgs(@Vector(4, u128), @Vector(4, f128), .{
13476 1e-4, 1e-3, 1e-2, 1e-1,
13477 });
13478 try testArgs(@Vector(8, u128), @Vector(8, f128), .{
13479 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p128, 0.0), 0.0), next(f128, 0x1p128, 0.0), 2e-5,
13480 });
13481 try testArgs(@Vector(16, u128), @Vector(16, f128), .{
13482 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13483 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13484 });
13485 try testArgs(@Vector(32, u128), @Vector(32, f128), .{
13486 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13487 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13488 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13489 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13490 });
13491 try testArgs(@Vector(64, u128), @Vector(64, f128), .{
13492 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13493 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13494 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13495 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13496 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13497 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13498 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13499 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13500 });
13501
13502 try testArgs(@Vector(1, i256), @Vector(1, f128), .{
13503 -0x0.8p256,
13504 });
13505 try testArgs(@Vector(2, i256), @Vector(2, f128), .{
13506 next(f128, -0x0.8p256, -0.0), next(f128, next(f128, -0x0.8p256, -0.0), -0.0),
13507 });
13508 try testArgs(@Vector(4, i256), @Vector(4, f128), .{
13509 -1e4, -1e3, -1e2, -1e1,
13510 });
13511 try testArgs(@Vector(8, i256), @Vector(8, f128), .{
13512 -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0,
13513 });
13514 try testArgs(@Vector(16, i256), @Vector(16, f128), .{
13515 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2,
13516 1e3, 1e4, next(f128, next(f128, 0x0.8p256, 0.0), 0.0), next(f128, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1,
13517 });
13518 try testArgs(@Vector(32, i256), @Vector(32, f128), .{
13519 -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4,
13520 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4,
13521 -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3,
13522 -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0,
13523 });
13524 try testArgs(@Vector(64, i256), @Vector(64, f128), .{
13525 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0,
13526 -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3,
13527 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2,
13528 -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5,
13529 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3,
13530 -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4,
13531 -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1,
13532 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2,
13533 });
13534
13535 try testArgs(@Vector(1, u256), @Vector(1, f128), .{
13536 -0.0,
13537 });
13538 try testArgs(@Vector(2, u256), @Vector(2, f128), .{
13539 0.0, 1e-5,
13540 });
13541 try testArgs(@Vector(4, u256), @Vector(4, f128), .{
13542 1e-4, 1e-3, 1e-2, 1e-1,
13543 });
13544 try testArgs(@Vector(8, u256), @Vector(8, f128), .{
13545 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p256, 0.0), 0.0), next(f128, 0x1p256, 0.0), 2e-5,
13546 });
13547 try testArgs(@Vector(16, u256), @Vector(16, f128), .{
13548 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3,
13549 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1,
13550 });
13551 try testArgs(@Vector(32, u256), @Vector(32, f128), .{
13552 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1,
13553 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2,
13554 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3,
13555 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4,
13556 });
13557 try testArgs(@Vector(64, u256), @Vector(64, f128), .{
13558 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5,
13559 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3,
13560 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2,
13561 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1,
13562 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0,
13563 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1,
13564 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2,
13565 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3,
13566 });
13567 }
13568 fn testFloatVectorsFromIntVectors() !void {
13569 @setEvalBranchQuota(2_700);
13570
13571 try testArgs(@Vector(1, f16), @Vector(1, i8), .{
13572 imin(i8),
13573 });
13574 try testArgs(@Vector(2, f16), @Vector(2, i8), .{
13575 imin(i8) + 1, -1e2,
13576 });
13577 try testArgs(@Vector(4, f16), @Vector(4, i8), .{
13578 -1e1, -1e0, 0, 1e0,
13579 });
13580 try testArgs(@Vector(8, f16), @Vector(8, i8), .{
13581 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
13582 });
13583 try testArgs(@Vector(16, f16), @Vector(16, i8), .{
13584 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
13585 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
13586 });
13587 try testArgs(@Vector(32, f16), @Vector(32, i8), .{
13588 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
13589 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
13590 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
13591 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
13592 });
13593 try testArgs(@Vector(64, f16), @Vector(64, i8), .{
13594 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
13595 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
13596 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
13597 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
13598 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
13599 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
13600 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
13601 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
13602 });
13603 try testArgs(@Vector(128, f16), @Vector(128, i8), .{
13604 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
13605 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
13606 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
13607 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
13608 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
13609 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
13610 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
13611 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
13612 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
13613 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
13614 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
13615 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
13616 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
13617 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
13618 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
13619 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
13620 });
13621
13622 try testArgs(@Vector(1, f16), @Vector(1, u8), .{
13623 0,
13624 });
13625 try testArgs(@Vector(2, f16), @Vector(2, u8), .{
13626 1e0, 1e1,
13627 });
13628 try testArgs(@Vector(4, f16), @Vector(4, u8), .{
13629 1e2, imax(u8) - 1, imax(u8), 2e0,
13630 });
13631 try testArgs(@Vector(8, f16), @Vector(8, u8), .{
13632 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
13633 });
13634 try testArgs(@Vector(16, f16), @Vector(16, u8), .{
13635 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
13636 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
13637 });
13638 try testArgs(@Vector(32, f16), @Vector(32, u8), .{
13639 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
13640 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
13641 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
13642 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
13643 });
13644 try testArgs(@Vector(64, f16), @Vector(64, u8), .{
13645 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
13646 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
13647 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
13648 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
13649 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
13650 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
13651 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
13652 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
13653 });
13654 try testArgs(@Vector(128, f16), @Vector(128, u8), .{
13655 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
13656 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
13657 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
13658 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
13659 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
13660 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
13661 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
13662 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
13663 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
13664 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
13665 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
13666 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
13667 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
13668 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
13669 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
13670 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
13671 });
13672
13673 try testArgs(@Vector(1, f16), @Vector(1, i16), .{
13674 imin(i16),
13675 });
13676 try testArgs(@Vector(2, f16), @Vector(2, i16), .{
13677 imin(i16) + 1, -1e4,
13678 });
13679 try testArgs(@Vector(4, f16), @Vector(4, i16), .{
13680 -1e3, -1e2, -1e1, -1e0,
13681 });
13682 try testArgs(@Vector(8, f16), @Vector(8, i16), .{
13683 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
13684 });
13685 try testArgs(@Vector(16, f16), @Vector(16, i16), .{
13686 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
13687 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
13688 });
13689 try testArgs(@Vector(32, f16), @Vector(32, i16), .{
13690 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13691 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
13692 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
13693 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
13694 });
13695 try testArgs(@Vector(64, f16), @Vector(64, i16), .{
13696 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
13697 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
13698 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
13699 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
13700 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
13701 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
13702 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
13703 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
13704 });
13705 try testArgs(@Vector(128, f16), @Vector(128, i16), .{
13706 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
13707 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
13708 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
13709 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
13710 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
13711 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
13712 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
13713 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
13714 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
13715 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
13716 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
13717 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
13718 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
13719 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
13720 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
13721 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
13722 });
13723
13724 try testArgs(@Vector(1, f16), @Vector(1, u16), .{
13725 0,
13726 });
13727 try testArgs(@Vector(2, f16), @Vector(2, u16), .{
13728 1e0, 1e1,
13729 });
13730 try testArgs(@Vector(4, f16), @Vector(4, u16), .{
13731 1e2, 1e3, 1e4, imax(u16) - 1,
13732 });
13733 try testArgs(@Vector(8, f16), @Vector(8, u16), .{
13734 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
13735 });
13736 try testArgs(@Vector(16, f16), @Vector(16, u16), .{
13737 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
13738 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
13739 });
13740 try testArgs(@Vector(32, f16), @Vector(32, u16), .{
13741 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
13742 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
13743 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
13744 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
13745 });
13746 try testArgs(@Vector(64, f16), @Vector(64, u16), .{
13747 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
13748 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
13749 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
13750 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
13751 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
13752 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
13753 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
13754 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
13755 });
13756 try testArgs(@Vector(128, f16), @Vector(128, u16), .{
13757 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
13758 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
13759 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
13760 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
13761 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
13762 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
13763 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
13764 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
13765 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
13766 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
13767 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
13768 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
13769 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
13770 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
13771 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
13772 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
13773 });
13774
13775 try testArgs(@Vector(1, f16), @Vector(1, i32), .{
13776 imin(i32),
13777 });
13778 try testArgs(@Vector(2, f16), @Vector(2, i32), .{
13779 imin(i32) + 1, -1e9,
13780 });
13781 try testArgs(@Vector(4, f16), @Vector(4, i32), .{
13782 -1e8, -1e7, -1e6, -1e5,
13783 });
13784 try testArgs(@Vector(8, f16), @Vector(8, i32), .{
13785 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
13786 });
13787 try testArgs(@Vector(16, f16), @Vector(16, i32), .{
13788 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
13789 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
13790 });
13791 try testArgs(@Vector(32, f16), @Vector(32, i32), .{
13792 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
13793 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
13794 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
13795 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
13796 });
13797 try testArgs(@Vector(64, f16), @Vector(64, i32), .{
13798 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
13799 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
13800 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
13801 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
13802 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
13803 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
13804 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
13805 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
13806 });
13807 try testArgs(@Vector(128, f16), @Vector(128, i32), .{
13808 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
13809 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
13810 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
13811 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
13812 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
13813 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
13814 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
13815 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
13816 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
13817 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
13818 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
13819 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
13820 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
13821 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
13822 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
13823 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
13824 });
13825
13826 try testArgs(@Vector(1, f16), @Vector(1, u32), .{
13827 0,
13828 });
13829 try testArgs(@Vector(2, f16), @Vector(2, u32), .{
13830 1e0, 1e1,
13831 });
13832 try testArgs(@Vector(4, f16), @Vector(4, u32), .{
13833 1e2, 1e3, 1e4, imax(u32) - 1,
13834 });
13835 try testArgs(@Vector(8, f16), @Vector(8, u32), .{
13836 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
13837 });
13838 try testArgs(@Vector(16, f16), @Vector(16, u32), .{
13839 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
13840 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
13841 });
13842 try testArgs(@Vector(32, f16), @Vector(32, u32), .{
13843 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
13844 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
13845 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
13846 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
13847 });
13848 try testArgs(@Vector(64, f16), @Vector(64, u32), .{
13849 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
13850 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
13851 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
13852 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
13853 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
13854 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
13855 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
13856 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
13857 });
13858 try testArgs(@Vector(128, f16), @Vector(128, u32), .{
13859 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
13860 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
13861 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
13862 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
13863 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
13864 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
13865 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
13866 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
13867 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
13868 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
13869 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
13870 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
13871 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
13872 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
13873 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
13874 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
13875 });
13876
13877 try testArgs(@Vector(1, f16), @Vector(1, i64), .{
13878 imin(i64),
13879 });
13880 try testArgs(@Vector(2, f16), @Vector(2, i64), .{
13881 imin(i64) + 1, -1e18,
13882 });
13883 try testArgs(@Vector(4, f16), @Vector(4, i64), .{
13884 -1e17, -1e16, -1e15, -1e14,
13885 });
13886 try testArgs(@Vector(8, f16), @Vector(8, i64), .{
13887 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
13888 });
13889 try testArgs(@Vector(16, f16), @Vector(16, i64), .{
13890 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
13891 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
13892 });
13893 try testArgs(@Vector(32, f16), @Vector(32, i64), .{
13894 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
13895 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
13896 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
13897 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
13898 });
13899 try testArgs(@Vector(64, f16), @Vector(64, i64), .{
13900 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
13901 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
13902 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
13903 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
13904 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
13905 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
13906 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
13907 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
13908 });
13909 try testArgs(@Vector(128, f16), @Vector(128, i64), .{
13910 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
13911 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
13912 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
13913 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
13914 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
13915 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
13916 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
13917 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
13918 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
13919 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
13920 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
13921 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
13922 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
13923 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
13924 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
13925 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
13926 });
13927
13928 try testArgs(@Vector(1, f16), @Vector(1, u64), .{
13929 0,
13930 });
13931 try testArgs(@Vector(2, f16), @Vector(2, u64), .{
13932 1e0, 1e1,
13933 });
13934 try testArgs(@Vector(4, f16), @Vector(4, u64), .{
13935 1e2, 1e3, 1e4, 1e5,
13936 });
13937 try testArgs(@Vector(8, f16), @Vector(8, u64), .{
13938 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
13939 });
13940 try testArgs(@Vector(16, f16), @Vector(16, u64), .{
13941 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
13942 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
13943 });
13944 try testArgs(@Vector(32, f16), @Vector(32, u64), .{
13945 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
13946 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
13947 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
13948 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
13949 });
13950 try testArgs(@Vector(64, f16), @Vector(64, u64), .{
13951 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
13952 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
13953 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
13954 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
13955 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
13956 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
13957 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
13958 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
13959 });
13960 try testArgs(@Vector(128, f16), @Vector(128, u64), .{
13961 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
13962 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
13963 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
13964 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
13965 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
13966 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
13967 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
13968 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
13969 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
13970 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
13971 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
13972 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
13973 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
13974 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
13975 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
13976 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
13977 });
13978
13979 try testArgs(@Vector(1, f16), @Vector(1, i128), .{
13980 imin(i128),
13981 });
13982 try testArgs(@Vector(2, f16), @Vector(2, i128), .{
13983 imin(i128) + 1, -1e38,
13984 });
13985 try testArgs(@Vector(4, f16), @Vector(4, i128), .{
13986 -1e37, -1e36, -1e35, -1e34,
13987 });
13988 try testArgs(@Vector(8, f16), @Vector(8, i128), .{
13989 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
13990 });
13991 try testArgs(@Vector(16, f16), @Vector(16, i128), .{
13992 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
13993 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
13994 });
13995 try testArgs(@Vector(32, f16), @Vector(32, i128), .{
13996 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
13997 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
13998 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
13999 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
14000 });
14001 try testArgs(@Vector(64, f16), @Vector(64, i128), .{
14002 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
14003 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
14004 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
14005 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
14006 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
14007 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
14008 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
14009 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
14010 });
14011 try testArgs(@Vector(128, f16), @Vector(128, i128), .{
14012 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
14013 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
14014 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
14015 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
14016 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
14017 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
14018 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
14019 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
14020 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
14021 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
14022 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14023 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14024 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14025 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14026 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
14027 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
14028 });
14029
14030 try testArgs(@Vector(1, f16), @Vector(1, u128), .{
14031 0,
14032 });
14033 try testArgs(@Vector(2, f16), @Vector(2, u128), .{
14034 1e0, 1e1,
14035 });
14036 try testArgs(@Vector(4, f16), @Vector(4, u128), .{
14037 1e2, 1e3, 1e4, 1e5,
14038 });
14039 try testArgs(@Vector(8, f16), @Vector(8, u128), .{
14040 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14041 });
14042 try testArgs(@Vector(16, f16), @Vector(16, u128), .{
14043 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14044 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14045 });
14046 try testArgs(@Vector(32, f16), @Vector(32, u128), .{
14047 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14048 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
14049 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
14050 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
14051 });
14052 try testArgs(@Vector(64, f16), @Vector(64, u128), .{
14053 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
14054 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
14055 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
14056 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14057 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14058 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14059 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14060 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
14061 });
14062 try testArgs(@Vector(128, f16), @Vector(128, u128), .{
14063 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
14064 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
14065 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
14066 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
14067 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
14068 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
14069 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
14070 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
14071 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
14072 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
14073 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
14074 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
14075 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
14076 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
14077 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
14078 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
14079 });
14080
14081 try testArgs(@Vector(1, f16), @Vector(1, i256), .{
14082 imin(i256),
14083 });
14084 try testArgs(@Vector(2, f16), @Vector(2, i256), .{
14085 imin(i256) + 1, -1e76,
14086 });
14087 try testArgs(@Vector(4, f16), @Vector(4, i256), .{
14088 -1e75, -1e74, -1e73, -1e72,
14089 });
14090 try testArgs(@Vector(8, f16), @Vector(8, i256), .{
14091 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
14092 });
14093 try testArgs(@Vector(16, f16), @Vector(16, i256), .{
14094 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
14095 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
14096 });
14097 try testArgs(@Vector(32, f16), @Vector(32, i256), .{
14098 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
14099 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
14100 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
14101 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
14102 });
14103 try testArgs(@Vector(64, f16), @Vector(64, i256), .{
14104 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
14105 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
14106 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
14107 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
14108 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
14109 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
14110 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
14111 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
14112 });
14113 try testArgs(@Vector(128, f16), @Vector(128, i256), .{
14114 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
14115 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
14116 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
14117 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
14118 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
14119 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
14120 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
14121 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
14122 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
14123 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
14124 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
14125 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
14126 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
14127 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
14128 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
14129 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
14130 });
14131
14132 try testArgs(@Vector(1, f16), @Vector(1, u256), .{
14133 0,
14134 });
14135 try testArgs(@Vector(2, f16), @Vector(2, u256), .{
14136 1e0, 1e1,
14137 });
14138 try testArgs(@Vector(4, f16), @Vector(4, u256), .{
14139 1e2, 1e3, 1e4, 1e5,
14140 });
14141 try testArgs(@Vector(8, f16), @Vector(8, u256), .{
14142 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14143 });
14144 try testArgs(@Vector(16, f16), @Vector(16, u256), .{
14145 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14146 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14147 });
14148 try testArgs(@Vector(32, f16), @Vector(32, u256), .{
14149 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14150 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
14151 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
14152 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
14153 });
14154 try testArgs(@Vector(64, f16), @Vector(64, u256), .{
14155 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
14156 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
14157 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
14158 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
14159 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
14160 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
14161 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
14162 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
14163 });
14164 try testArgs(@Vector(128, f16), @Vector(128, u256), .{
14165 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
14166 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
14167 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
14168 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
14169 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
14170 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
14171 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
14172 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
14173 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
14174 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
14175 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
14176 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
14177 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
14178 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
14179 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
14180 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
14181 });
14182
14183 try testArgs(@Vector(1, f32), @Vector(1, i8), .{
14184 imin(i8),
14185 });
14186 try testArgs(@Vector(2, f32), @Vector(2, i8), .{
14187 imin(i8) + 1, -1e2,
14188 });
14189 try testArgs(@Vector(4, f32), @Vector(4, i8), .{
14190 -1e1, -1e0, 0, 1e0,
14191 });
14192 try testArgs(@Vector(8, f32), @Vector(8, i8), .{
14193 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
14194 });
14195 try testArgs(@Vector(16, f32), @Vector(16, i8), .{
14196 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
14197 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
14198 });
14199 try testArgs(@Vector(32, f32), @Vector(32, i8), .{
14200 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
14201 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
14202 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
14203 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
14204 });
14205 try testArgs(@Vector(64, f32), @Vector(64, i8), .{
14206 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
14207 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
14208 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
14209 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
14210 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
14211 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
14212 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
14213 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
14214 });
14215 try testArgs(@Vector(128, f32), @Vector(128, i8), .{
14216 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
14217 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
14218 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
14219 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
14220 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
14221 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
14222 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
14223 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
14224 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
14225 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
14226 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
14227 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
14228 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
14229 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
14230 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
14231 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
14232 });
14233
14234 try testArgs(@Vector(1, f32), @Vector(1, u8), .{
14235 0,
14236 });
14237 try testArgs(@Vector(2, f32), @Vector(2, u8), .{
14238 1e0, 1e1,
14239 });
14240 try testArgs(@Vector(4, f32), @Vector(4, u8), .{
14241 1e2, imax(u8) - 1, imax(u8), 2e0,
14242 });
14243 try testArgs(@Vector(8, f32), @Vector(8, u8), .{
14244 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
14245 });
14246 try testArgs(@Vector(16, f32), @Vector(16, u8), .{
14247 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
14248 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
14249 });
14250 try testArgs(@Vector(32, f32), @Vector(32, u8), .{
14251 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
14252 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
14253 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
14254 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
14255 });
14256 try testArgs(@Vector(64, f32), @Vector(64, u8), .{
14257 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
14258 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
14259 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
14260 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
14261 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
14262 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
14263 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
14264 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
14265 });
14266 try testArgs(@Vector(128, f32), @Vector(128, u8), .{
14267 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
14268 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
14269 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
14270 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
14271 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
14272 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
14273 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
14274 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
14275 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
14276 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
14277 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
14278 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
14279 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
14280 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
14281 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
14282 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
14283 });
14284
14285 try testArgs(@Vector(1, f32), @Vector(1, i16), .{
14286 imin(i16),
14287 });
14288 try testArgs(@Vector(2, f32), @Vector(2, i16), .{
14289 imin(i16) + 1, -1e4,
14290 });
14291 try testArgs(@Vector(4, f32), @Vector(4, i16), .{
14292 -1e3, -1e2, -1e1, -1e0,
14293 });
14294 try testArgs(@Vector(8, f32), @Vector(8, i16), .{
14295 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
14296 });
14297 try testArgs(@Vector(16, f32), @Vector(16, i16), .{
14298 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
14299 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
14300 });
14301 try testArgs(@Vector(32, f32), @Vector(32, i16), .{
14302 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
14303 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
14304 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
14305 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
14306 });
14307 try testArgs(@Vector(64, f32), @Vector(64, i16), .{
14308 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
14309 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
14310 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
14311 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
14312 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
14313 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
14314 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
14315 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
14316 });
14317 try testArgs(@Vector(128, f32), @Vector(128, i16), .{
14318 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
14319 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
14320 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
14321 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
14322 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
14323 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
14324 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
14325 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
14326 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
14327 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
14328 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
14329 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
14330 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
14331 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
14332 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
14333 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
14334 });
14335
14336 try testArgs(@Vector(1, f32), @Vector(1, u16), .{
14337 0,
14338 });
14339 try testArgs(@Vector(2, f32), @Vector(2, u16), .{
14340 1e0, 1e1,
14341 });
14342 try testArgs(@Vector(4, f32), @Vector(4, u16), .{
14343 1e2, 1e3, 1e4, imax(u16) - 1,
14344 });
14345 try testArgs(@Vector(8, f32), @Vector(8, u16), .{
14346 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
14347 });
14348 try testArgs(@Vector(16, f32), @Vector(16, u16), .{
14349 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
14350 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
14351 });
14352 try testArgs(@Vector(32, f32), @Vector(32, u16), .{
14353 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
14354 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
14355 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
14356 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
14357 });
14358 try testArgs(@Vector(64, f32), @Vector(64, u16), .{
14359 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
14360 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
14361 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
14362 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
14363 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
14364 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
14365 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
14366 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
14367 });
14368 try testArgs(@Vector(128, f32), @Vector(128, u16), .{
14369 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
14370 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
14371 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
14372 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
14373 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
14374 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
14375 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
14376 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
14377 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
14378 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
14379 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
14380 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
14381 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
14382 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
14383 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
14384 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
14385 });
14386
14387 try testArgs(@Vector(1, f32), @Vector(1, i32), .{
14388 imin(i32),
14389 });
14390 try testArgs(@Vector(2, f32), @Vector(2, i32), .{
14391 imin(i32) + 1, -1e9,
14392 });
14393 try testArgs(@Vector(4, f32), @Vector(4, i32), .{
14394 -1e8, -1e7, -1e6, -1e5,
14395 });
14396 try testArgs(@Vector(8, f32), @Vector(8, i32), .{
14397 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
14398 });
14399 try testArgs(@Vector(16, f32), @Vector(16, i32), .{
14400 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
14401 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
14402 });
14403 try testArgs(@Vector(32, f32), @Vector(32, i32), .{
14404 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
14405 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
14406 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
14407 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
14408 });
14409 try testArgs(@Vector(64, f32), @Vector(64, i32), .{
14410 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
14411 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
14412 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
14413 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
14414 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
14415 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
14416 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
14417 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
14418 });
14419 try testArgs(@Vector(128, f32), @Vector(128, i32), .{
14420 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
14421 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
14422 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
14423 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
14424 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
14425 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
14426 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
14427 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
14428 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
14429 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
14430 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
14431 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
14432 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
14433 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
14434 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
14435 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
14436 });
14437
14438 try testArgs(@Vector(1, f32), @Vector(1, u32), .{
14439 0,
14440 });
14441 try testArgs(@Vector(2, f32), @Vector(2, u32), .{
14442 1e0, 1e1,
14443 });
14444 try testArgs(@Vector(4, f32), @Vector(4, u32), .{
14445 1e2, 1e3, 1e4, imax(u32) - 1,
14446 });
14447 try testArgs(@Vector(8, f32), @Vector(8, u32), .{
14448 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
14449 });
14450 try testArgs(@Vector(16, f32), @Vector(16, u32), .{
14451 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
14452 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
14453 });
14454 try testArgs(@Vector(32, f32), @Vector(32, u32), .{
14455 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
14456 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
14457 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
14458 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
14459 });
14460 try testArgs(@Vector(64, f32), @Vector(64, u32), .{
14461 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
14462 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
14463 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
14464 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
14465 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
14466 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
14467 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
14468 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
14469 });
14470 try testArgs(@Vector(128, f32), @Vector(128, u32), .{
14471 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
14472 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
14473 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
14474 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
14475 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
14476 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
14477 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
14478 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
14479 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
14480 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
14481 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
14482 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
14483 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
14484 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
14485 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
14486 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
14487 });
14488
14489 try testArgs(@Vector(1, f32), @Vector(1, i64), .{
14490 imin(i64),
14491 });
14492 try testArgs(@Vector(2, f32), @Vector(2, i64), .{
14493 imin(i64) + 1, -1e18,
14494 });
14495 try testArgs(@Vector(4, f32), @Vector(4, i64), .{
14496 -1e17, -1e16, -1e15, -1e14,
14497 });
14498 try testArgs(@Vector(8, f32), @Vector(8, i64), .{
14499 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
14500 });
14501 try testArgs(@Vector(16, f32), @Vector(16, i64), .{
14502 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
14503 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
14504 });
14505 try testArgs(@Vector(32, f32), @Vector(32, i64), .{
14506 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
14507 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
14508 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
14509 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
14510 });
14511 try testArgs(@Vector(64, f32), @Vector(64, i64), .{
14512 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
14513 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
14514 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
14515 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
14516 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
14517 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
14518 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
14519 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
14520 });
14521 try testArgs(@Vector(128, f32), @Vector(128, i64), .{
14522 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
14523 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
14524 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
14525 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
14526 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
14527 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
14528 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
14529 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
14530 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
14531 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
14532 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
14533 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
14534 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
14535 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
14536 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
14537 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
14538 });
14539
14540 try testArgs(@Vector(1, f32), @Vector(1, u64), .{
14541 0,
14542 });
14543 try testArgs(@Vector(2, f32), @Vector(2, u64), .{
14544 1e0, 1e1,
14545 });
14546 try testArgs(@Vector(4, f32), @Vector(4, u64), .{
14547 1e2, 1e3, 1e4, 1e5,
14548 });
14549 try testArgs(@Vector(8, f32), @Vector(8, u64), .{
14550 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14551 });
14552 try testArgs(@Vector(16, f32), @Vector(16, u64), .{
14553 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
14554 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
14555 });
14556 try testArgs(@Vector(32, f32), @Vector(32, u64), .{
14557 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
14558 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
14559 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
14560 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
14561 });
14562 try testArgs(@Vector(64, f32), @Vector(64, u64), .{
14563 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
14564 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
14565 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
14566 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
14567 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
14568 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
14569 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
14570 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
14571 });
14572 try testArgs(@Vector(128, f32), @Vector(128, u64), .{
14573 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
14574 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
14575 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
14576 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
14577 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
14578 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
14579 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
14580 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
14581 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
14582 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
14583 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
14584 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
14585 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
14586 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
14587 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
14588 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
14589 });
14590
14591 try testArgs(@Vector(1, f32), @Vector(1, i128), .{
14592 imin(i128),
14593 });
14594 try testArgs(@Vector(2, f32), @Vector(2, i128), .{
14595 imin(i128) + 1, -1e38,
14596 });
14597 try testArgs(@Vector(4, f32), @Vector(4, i128), .{
14598 -1e37, -1e36, -1e35, -1e34,
14599 });
14600 try testArgs(@Vector(8, f32), @Vector(8, i128), .{
14601 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
14602 });
14603 try testArgs(@Vector(16, f32), @Vector(16, i128), .{
14604 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
14605 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
14606 });
14607 try testArgs(@Vector(32, f32), @Vector(32, i128), .{
14608 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
14609 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
14610 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
14611 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
14612 });
14613 try testArgs(@Vector(64, f32), @Vector(64, i128), .{
14614 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
14615 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
14616 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
14617 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
14618 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
14619 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
14620 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
14621 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
14622 });
14623 try testArgs(@Vector(128, f32), @Vector(128, i128), .{
14624 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
14625 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
14626 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
14627 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
14628 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
14629 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
14630 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
14631 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
14632 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
14633 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
14634 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14635 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14636 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14637 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14638 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
14639 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
14640 });
14641
14642 try testArgs(@Vector(1, f32), @Vector(1, u128), .{
14643 0,
14644 });
14645 try testArgs(@Vector(2, f32), @Vector(2, u128), .{
14646 1e0, 1e1,
14647 });
14648 try testArgs(@Vector(4, f32), @Vector(4, u128), .{
14649 1e2, 1e3, 1e4, 1e5,
14650 });
14651 try testArgs(@Vector(8, f32), @Vector(8, u128), .{
14652 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14653 });
14654 try testArgs(@Vector(16, f32), @Vector(16, u128), .{
14655 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14656 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14657 });
14658 try testArgs(@Vector(32, f32), @Vector(32, u128), .{
14659 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14660 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
14661 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
14662 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
14663 });
14664 try testArgs(@Vector(64, f32), @Vector(64, u128), .{
14665 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
14666 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
14667 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
14668 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
14669 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
14670 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
14671 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
14672 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
14673 });
14674 try testArgs(@Vector(128, f32), @Vector(128, u128), .{
14675 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
14676 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
14677 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
14678 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
14679 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
14680 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
14681 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
14682 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
14683 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
14684 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
14685 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
14686 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
14687 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
14688 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
14689 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
14690 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
14691 });
14692
14693 try testArgs(@Vector(1, f32), @Vector(1, i256), .{
14694 imin(i256),
14695 });
14696 try testArgs(@Vector(2, f32), @Vector(2, i256), .{
14697 imin(i256) + 1, -1e76,
14698 });
14699 try testArgs(@Vector(4, f32), @Vector(4, i256), .{
14700 -1e75, -1e74, -1e73, -1e72,
14701 });
14702 try testArgs(@Vector(8, f32), @Vector(8, i256), .{
14703 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
14704 });
14705 try testArgs(@Vector(16, f32), @Vector(16, i256), .{
14706 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
14707 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
14708 });
14709 try testArgs(@Vector(32, f32), @Vector(32, i256), .{
14710 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
14711 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
14712 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
14713 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
14714 });
14715 try testArgs(@Vector(64, f32), @Vector(64, i256), .{
14716 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
14717 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
14718 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
14719 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
14720 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
14721 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
14722 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
14723 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
14724 });
14725 try testArgs(@Vector(128, f32), @Vector(128, i256), .{
14726 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
14727 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
14728 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
14729 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
14730 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
14731 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
14732 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
14733 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
14734 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
14735 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
14736 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
14737 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
14738 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
14739 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
14740 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
14741 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
14742 });
14743
14744 try testArgs(@Vector(1, f32), @Vector(1, u256), .{
14745 0,
14746 });
14747 try testArgs(@Vector(2, f32), @Vector(2, u256), .{
14748 1e0, 1e1,
14749 });
14750 try testArgs(@Vector(4, f32), @Vector(4, u256), .{
14751 1e2, 1e3, 1e4, 1e5,
14752 });
14753 try testArgs(@Vector(8, f32), @Vector(8, u256), .{
14754 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
14755 });
14756 try testArgs(@Vector(16, f32), @Vector(16, u256), .{
14757 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
14758 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
14759 });
14760 try testArgs(@Vector(32, f32), @Vector(32, u256), .{
14761 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
14762 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
14763 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
14764 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
14765 });
14766 try testArgs(@Vector(64, f32), @Vector(64, u256), .{
14767 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
14768 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
14769 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
14770 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
14771 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
14772 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
14773 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
14774 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
14775 });
14776 try testArgs(@Vector(128, f32), @Vector(128, u256), .{
14777 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
14778 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
14779 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
14780 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
14781 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
14782 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
14783 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
14784 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
14785 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
14786 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
14787 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
14788 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
14789 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
14790 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
14791 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
14792 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
14793 });
14794
14795 try testArgs(@Vector(1, f64), @Vector(1, i8), .{
14796 imin(i8),
14797 });
14798 try testArgs(@Vector(2, f64), @Vector(2, i8), .{
14799 imin(i8) + 1, -1e2,
14800 });
14801 try testArgs(@Vector(4, f64), @Vector(4, i8), .{
14802 -1e1, -1e0, 0, 1e0,
14803 });
14804 try testArgs(@Vector(8, f64), @Vector(8, i8), .{
14805 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
14806 });
14807 try testArgs(@Vector(16, f64), @Vector(16, i8), .{
14808 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
14809 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
14810 });
14811 try testArgs(@Vector(32, f64), @Vector(32, i8), .{
14812 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
14813 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
14814 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
14815 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
14816 });
14817 try testArgs(@Vector(64, f64), @Vector(64, i8), .{
14818 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
14819 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
14820 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
14821 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
14822 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
14823 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
14824 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
14825 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
14826 });
14827 try testArgs(@Vector(128, f64), @Vector(128, i8), .{
14828 imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37,
14829 -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0,
14830 imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40,
14831 imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45,
14832 -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0,
14833 imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48,
14834 imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53,
14835 -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0,
14836 imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56,
14837 imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61,
14838 -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0,
14839 imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64,
14840 imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69,
14841 -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0,
14842 imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72,
14843 imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77,
14844 });
14845
14846 try testArgs(@Vector(1, f64), @Vector(1, u8), .{
14847 0,
14848 });
14849 try testArgs(@Vector(2, f64), @Vector(2, u8), .{
14850 1e0, 1e1,
14851 });
14852 try testArgs(@Vector(4, f64), @Vector(4, u8), .{
14853 1e2, imax(u8) - 1, imax(u8), 2e0,
14854 });
14855 try testArgs(@Vector(8, f64), @Vector(8, u8), .{
14856 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
14857 });
14858 try testArgs(@Vector(16, f64), @Vector(16, u8), .{
14859 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
14860 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
14861 });
14862 try testArgs(@Vector(32, f64), @Vector(32, u8), .{
14863 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
14864 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
14865 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
14866 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
14867 });
14868 try testArgs(@Vector(64, f64), @Vector(64, u8), .{
14869 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
14870 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
14871 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
14872 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
14873 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
14874 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
14875 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
14876 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
14877 });
14878 try testArgs(@Vector(128, f64), @Vector(128, u8), .{
14879 imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72,
14880 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79,
14881 imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0,
14882 imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88,
14883 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95,
14884 imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0,
14885 imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104,
14886 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111,
14887 imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0,
14888 imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120,
14889 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127,
14890 imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0,
14891 imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136,
14892 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143,
14893 imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0,
14894 imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152,
14895 });
14896
14897 try testArgs(@Vector(1, f64), @Vector(1, i16), .{
14898 imin(i16),
14899 });
14900 try testArgs(@Vector(2, f64), @Vector(2, i16), .{
14901 imin(i16) + 1, -1e4,
14902 });
14903 try testArgs(@Vector(4, f64), @Vector(4, i16), .{
14904 -1e3, -1e2, -1e1, -1e0,
14905 });
14906 try testArgs(@Vector(8, f64), @Vector(8, i16), .{
14907 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
14908 });
14909 try testArgs(@Vector(16, f64), @Vector(16, i16), .{
14910 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
14911 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
14912 });
14913 try testArgs(@Vector(32, f64), @Vector(32, i16), .{
14914 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
14915 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
14916 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
14917 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
14918 });
14919 try testArgs(@Vector(64, f64), @Vector(64, i16), .{
14920 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
14921 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
14922 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
14923 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
14924 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
14925 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
14926 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
14927 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
14928 });
14929 try testArgs(@Vector(128, f64), @Vector(128, i16), .{
14930 imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1,
14931 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2,
14932 -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22,
14933 imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1,
14934 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2,
14935 -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26,
14936 imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1,
14937 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2,
14938 -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30,
14939 imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1,
14940 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2,
14941 -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34,
14942 imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1,
14943 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2,
14944 -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38,
14945 imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1,
14946 });
14947
14948 try testArgs(@Vector(1, f64), @Vector(1, u16), .{
14949 0,
14950 });
14951 try testArgs(@Vector(2, f64), @Vector(2, u16), .{
14952 1e0, 1e1,
14953 });
14954 try testArgs(@Vector(4, f64), @Vector(4, u16), .{
14955 1e2, 1e3, 1e4, imax(u16) - 1,
14956 });
14957 try testArgs(@Vector(8, f64), @Vector(8, u16), .{
14958 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
14959 });
14960 try testArgs(@Vector(16, f64), @Vector(16, u16), .{
14961 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
14962 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
14963 });
14964 try testArgs(@Vector(32, f64), @Vector(32, u16), .{
14965 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
14966 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
14967 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
14968 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
14969 });
14970 try testArgs(@Vector(64, f64), @Vector(64, u16), .{
14971 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
14972 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
14973 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
14974 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
14975 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
14976 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
14977 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
14978 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
14979 });
14980 try testArgs(@Vector(128, f64), @Vector(128, u16), .{
14981 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1,
14982 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3,
14983 imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46,
14984 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1,
14985 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3,
14986 imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54,
14987 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1,
14988 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3,
14989 imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62,
14990 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1,
14991 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3,
14992 imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70,
14993 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1,
14994 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3,
14995 imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78,
14996 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1,
14997 });
14998
14999 try testArgs(@Vector(1, f64), @Vector(1, i32), .{
15000 imin(i32),
15001 });
15002 try testArgs(@Vector(2, f64), @Vector(2, i32), .{
15003 imin(i32) + 1, -1e9,
15004 });
15005 try testArgs(@Vector(4, f64), @Vector(4, i32), .{
15006 -1e8, -1e7, -1e6, -1e5,
15007 });
15008 try testArgs(@Vector(8, f64), @Vector(8, i32), .{
15009 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
15010 });
15011 try testArgs(@Vector(16, f64), @Vector(16, i32), .{
15012 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
15013 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
15014 });
15015 try testArgs(@Vector(32, f64), @Vector(32, i32), .{
15016 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
15017 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
15018 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
15019 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
15020 });
15021 try testArgs(@Vector(64, f64), @Vector(64, i32), .{
15022 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
15023 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
15024 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
15025 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
15026 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
15027 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
15028 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
15029 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
15030 });
15031 try testArgs(@Vector(128, f64), @Vector(128, i32), .{
15032 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8,
15033 imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5,
15034 -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2,
15035 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12,
15036 imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3,
15037 -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4,
15038 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17,
15039 -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1,
15040 -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6,
15041 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7,
15042 -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0,
15043 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8,
15044 imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5,
15045 -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2,
15046 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20,
15047 imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3,
15048 });
15049
15050 try testArgs(@Vector(1, f64), @Vector(1, u32), .{
15051 0,
15052 });
15053 try testArgs(@Vector(2, f64), @Vector(2, u32), .{
15054 1e0, 1e1,
15055 });
15056 try testArgs(@Vector(4, f64), @Vector(4, u32), .{
15057 1e2, 1e3, 1e4, imax(u32) - 1,
15058 });
15059 try testArgs(@Vector(8, f64), @Vector(8, u32), .{
15060 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
15061 });
15062 try testArgs(@Vector(16, f64), @Vector(16, u32), .{
15063 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
15064 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
15065 });
15066 try testArgs(@Vector(32, f64), @Vector(32, u32), .{
15067 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
15068 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
15069 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
15070 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
15071 });
15072 try testArgs(@Vector(64, f64), @Vector(64, u32), .{
15073 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
15074 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
15075 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
15076 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
15077 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
15078 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
15079 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
15080 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
15081 });
15082 try testArgs(@Vector(128, f64), @Vector(128, u32), .{
15083 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1,
15084 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3,
15085 imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46,
15086 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1,
15087 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3,
15088 imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54,
15089 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1,
15090 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3,
15091 imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62,
15092 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1,
15093 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3,
15094 imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70,
15095 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1,
15096 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3,
15097 imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78,
15098 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1,
15099 });
15100
15101 try testArgs(@Vector(1, f64), @Vector(1, i64), .{
15102 imin(i64),
15103 });
15104 try testArgs(@Vector(2, f64), @Vector(2, i64), .{
15105 imin(i64) + 1, -1e18,
15106 });
15107 try testArgs(@Vector(4, f64), @Vector(4, i64), .{
15108 -1e17, -1e16, -1e15, -1e14,
15109 });
15110 try testArgs(@Vector(8, f64), @Vector(8, i64), .{
15111 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
15112 });
15113 try testArgs(@Vector(16, f64), @Vector(16, i64), .{
15114 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
15115 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
15116 });
15117 try testArgs(@Vector(32, f64), @Vector(32, i64), .{
15118 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
15119 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
15120 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
15121 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
15122 });
15123 try testArgs(@Vector(64, f64), @Vector(64, i64), .{
15124 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
15125 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
15126 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
15127 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
15128 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
15129 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
15130 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
15131 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
15132 });
15133 try testArgs(@Vector(128, f64), @Vector(128, i64), .{
15134 imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13,
15135 -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5,
15136 -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2,
15137 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
15138 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
15139 imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15,
15140 -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7,
15141 -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0,
15142 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
15143 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
15144 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17,
15145 -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9,
15146 -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1,
15147 -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6,
15148 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14,
15149 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13,
15150 });
15151
15152 try testArgs(@Vector(1, f64), @Vector(1, u64), .{
15153 0,
15154 });
15155 try testArgs(@Vector(2, f64), @Vector(2, u64), .{
15156 1e0, 1e1,
15157 });
15158 try testArgs(@Vector(4, f64), @Vector(4, u64), .{
15159 1e2, 1e3, 1e4, 1e5,
15160 });
15161 try testArgs(@Vector(8, f64), @Vector(8, u64), .{
15162 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15163 });
15164 try testArgs(@Vector(16, f64), @Vector(16, u64), .{
15165 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
15166 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
15167 });
15168 try testArgs(@Vector(32, f64), @Vector(32, u64), .{
15169 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
15170 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
15171 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
15172 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
15173 });
15174 try testArgs(@Vector(64, f64), @Vector(64, u64), .{
15175 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
15176 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
15177 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
15178 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
15179 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
15180 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
15181 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
15182 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
15183 });
15184 try testArgs(@Vector(128, f64), @Vector(128, u64), .{
15185 imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6,
15186 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14,
15187 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1,
15188 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9,
15189 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17,
15190 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4,
15191 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12,
15192 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16,
15193 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7,
15194 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15,
15195 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2,
15196 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10,
15197 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18,
15198 imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5,
15199 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13,
15200 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0,
15201 });
15202
15203 try testArgs(@Vector(1, f64), @Vector(1, i128), .{
15204 imin(i128),
15205 });
15206 try testArgs(@Vector(2, f64), @Vector(2, i128), .{
15207 imin(i128) + 1, -1e38,
15208 });
15209 try testArgs(@Vector(4, f64), @Vector(4, i128), .{
15210 -1e37, -1e36, -1e35, -1e34,
15211 });
15212 try testArgs(@Vector(8, f64), @Vector(8, i128), .{
15213 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
15214 });
15215 try testArgs(@Vector(16, f64), @Vector(16, i128), .{
15216 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
15217 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
15218 });
15219 try testArgs(@Vector(32, f64), @Vector(32, i128), .{
15220 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
15221 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
15222 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
15223 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
15224 });
15225 try testArgs(@Vector(64, f64), @Vector(64, i128), .{
15226 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
15227 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
15228 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
15229 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
15230 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
15231 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
15232 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
15233 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
15234 });
15235 try testArgs(@Vector(128, f64), @Vector(128, i128), .{
15236 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11,
15237 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19,
15238 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27,
15239 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35,
15240 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36,
15241 -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28,
15242 -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20,
15243 -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12,
15244 -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4,
15245 -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3,
15246 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
15247 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
15248 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
15249 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
15250 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36,
15251 -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28,
15252 });
15253
15254 try testArgs(@Vector(1, f64), @Vector(1, u128), .{
15255 0,
15256 });
15257 try testArgs(@Vector(2, f64), @Vector(2, u128), .{
15258 1e0, 1e1,
15259 });
15260 try testArgs(@Vector(4, f64), @Vector(4, u128), .{
15261 1e2, 1e3, 1e4, 1e5,
15262 });
15263 try testArgs(@Vector(8, f64), @Vector(8, u128), .{
15264 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15265 });
15266 try testArgs(@Vector(16, f64), @Vector(16, u128), .{
15267 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
15268 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
15269 });
15270 try testArgs(@Vector(32, f64), @Vector(32, u128), .{
15271 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
15272 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
15273 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
15274 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
15275 });
15276 try testArgs(@Vector(64, f64), @Vector(64, u128), .{
15277 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
15278 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
15279 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
15280 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
15281 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
15282 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
15283 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
15284 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
15285 });
15286 try testArgs(@Vector(128, f64), @Vector(128, u128), .{
15287 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10,
15288 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18,
15289 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26,
15290 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34,
15291 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2,
15292 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10,
15293 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18,
15294 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26,
15295 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34,
15296 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2,
15297 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10,
15298 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18,
15299 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26,
15300 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34,
15301 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2,
15302 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10,
15303 });
15304
15305 try testArgs(@Vector(1, f64), @Vector(1, i256), .{
15306 imin(i256),
15307 });
15308 try testArgs(@Vector(2, f64), @Vector(2, i256), .{
15309 imin(i256) + 1, -1e76,
15310 });
15311 try testArgs(@Vector(4, f64), @Vector(4, i256), .{
15312 -1e75, -1e74, -1e73, -1e72,
15313 });
15314 try testArgs(@Vector(8, f64), @Vector(8, i256), .{
15315 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
15316 });
15317 try testArgs(@Vector(16, f64), @Vector(16, i256), .{
15318 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
15319 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
15320 });
15321 try testArgs(@Vector(32, f64), @Vector(32, i256), .{
15322 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
15323 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
15324 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
15325 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
15326 });
15327 try testArgs(@Vector(64, f64), @Vector(64, i256), .{
15328 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
15329 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
15330 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
15331 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
15332 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
15333 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
15334 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
15335 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
15336 });
15337 try testArgs(@Vector(128, f64), @Vector(128, i256), .{
15338 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54,
15339 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62,
15340 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70,
15341 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256),
15342 imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71,
15343 -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63,
15344 -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55,
15345 -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47,
15346 -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39,
15347 -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31,
15348 -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23,
15349 -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15,
15350 -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7,
15351 -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
15352 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8,
15353 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16,
15354 });
15355
15356 try testArgs(@Vector(1, f64), @Vector(1, u256), .{
15357 0,
15358 });
15359 try testArgs(@Vector(2, f64), @Vector(2, u256), .{
15360 1e0, 1e1,
15361 });
15362 try testArgs(@Vector(4, f64), @Vector(4, u256), .{
15363 1e2, 1e3, 1e4, 1e5,
15364 });
15365 try testArgs(@Vector(8, f64), @Vector(8, u256), .{
15366 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15367 });
15368 try testArgs(@Vector(16, f64), @Vector(16, u256), .{
15369 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
15370 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
15371 });
15372 try testArgs(@Vector(32, f64), @Vector(32, u256), .{
15373 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
15374 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
15375 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
15376 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
15377 });
15378 try testArgs(@Vector(64, f64), @Vector(64, u256), .{
15379 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
15380 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
15381 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
15382 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
15383 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
15384 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
15385 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
15386 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
15387 });
15388 try testArgs(@Vector(128, f64), @Vector(128, u256), .{
15389 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53,
15390 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61,
15391 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69,
15392 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3,
15393 imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6,
15394 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14,
15395 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22,
15396 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30,
15397 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38,
15398 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46,
15399 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54,
15400 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62,
15401 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70,
15402 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4,
15403 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7,
15404 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15,
15405 });
15406
15407 try testArgs(@Vector(1, f80), @Vector(1, i8), .{
15408 imin(i8),
15409 });
15410 try testArgs(@Vector(2, f80), @Vector(2, i8), .{
15411 imin(i8) + 1, -1e2,
15412 });
15413 try testArgs(@Vector(4, f80), @Vector(4, i8), .{
15414 -1e1, -1e0, 0, 1e0,
15415 });
15416 try testArgs(@Vector(8, f80), @Vector(8, i8), .{
15417 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
15418 });
15419 try testArgs(@Vector(16, f80), @Vector(16, i8), .{
15420 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
15421 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
15422 });
15423 try testArgs(@Vector(32, f80), @Vector(32, i8), .{
15424 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
15425 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
15426 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
15427 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
15428 });
15429 try testArgs(@Vector(64, f80), @Vector(64, i8), .{
15430 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
15431 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
15432 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
15433 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
15434 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
15435 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
15436 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
15437 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
15438 });
15439
15440 try testArgs(@Vector(1, f80), @Vector(1, u8), .{
15441 0,
15442 });
15443 try testArgs(@Vector(2, f80), @Vector(2, u8), .{
15444 1e0, 1e1,
15445 });
15446 try testArgs(@Vector(4, f80), @Vector(4, u8), .{
15447 1e2, imax(u8) - 1, imax(u8), 2e0,
15448 });
15449 try testArgs(@Vector(8, f80), @Vector(8, u8), .{
15450 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
15451 });
15452 try testArgs(@Vector(16, f80), @Vector(16, u8), .{
15453 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
15454 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
15455 });
15456 try testArgs(@Vector(32, f80), @Vector(32, u8), .{
15457 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
15458 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
15459 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
15460 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
15461 });
15462 try testArgs(@Vector(64, f80), @Vector(64, u8), .{
15463 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
15464 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
15465 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
15466 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
15467 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
15468 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
15469 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
15470 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
15471 });
15472
15473 try testArgs(@Vector(1, f80), @Vector(1, i16), .{
15474 imin(i16),
15475 });
15476 try testArgs(@Vector(2, f80), @Vector(2, i16), .{
15477 imin(i16) + 1, -1e4,
15478 });
15479 try testArgs(@Vector(4, f80), @Vector(4, i16), .{
15480 -1e3, -1e2, -1e1, -1e0,
15481 });
15482 try testArgs(@Vector(8, f80), @Vector(8, i16), .{
15483 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
15484 });
15485 try testArgs(@Vector(16, f80), @Vector(16, i16), .{
15486 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
15487 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
15488 });
15489 try testArgs(@Vector(32, f80), @Vector(32, i16), .{
15490 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
15491 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
15492 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
15493 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
15494 });
15495 try testArgs(@Vector(64, f80), @Vector(64, i16), .{
15496 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
15497 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
15498 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
15499 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
15500 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
15501 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
15502 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
15503 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
15504 });
15505
15506 try testArgs(@Vector(1, f80), @Vector(1, u16), .{
15507 0,
15508 });
15509 try testArgs(@Vector(2, f80), @Vector(2, u16), .{
15510 1e0, 1e1,
15511 });
15512 try testArgs(@Vector(4, f80), @Vector(4, u16), .{
15513 1e2, 1e3, 1e4, imax(u16) - 1,
15514 });
15515 try testArgs(@Vector(8, f80), @Vector(8, u16), .{
15516 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
15517 });
15518 try testArgs(@Vector(16, f80), @Vector(16, u16), .{
15519 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
15520 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
15521 });
15522 try testArgs(@Vector(32, f80), @Vector(32, u16), .{
15523 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
15524 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
15525 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
15526 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
15527 });
15528 try testArgs(@Vector(64, f80), @Vector(64, u16), .{
15529 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
15530 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
15531 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
15532 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
15533 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
15534 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
15535 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
15536 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
15537 });
15538
15539 try testArgs(@Vector(1, f80), @Vector(1, i32), .{
15540 imin(i32),
15541 });
15542 try testArgs(@Vector(2, f80), @Vector(2, i32), .{
15543 imin(i32) + 1, -1e9,
15544 });
15545 try testArgs(@Vector(4, f80), @Vector(4, i32), .{
15546 -1e8, -1e7, -1e6, -1e5,
15547 });
15548 try testArgs(@Vector(8, f80), @Vector(8, i32), .{
15549 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
15550 });
15551 try testArgs(@Vector(16, f80), @Vector(16, i32), .{
15552 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
15553 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
15554 });
15555 try testArgs(@Vector(32, f80), @Vector(32, i32), .{
15556 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
15557 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
15558 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
15559 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
15560 });
15561 try testArgs(@Vector(64, f80), @Vector(64, i32), .{
15562 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
15563 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
15564 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
15565 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
15566 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
15567 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
15568 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
15569 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
15570 });
15571
15572 try testArgs(@Vector(1, f80), @Vector(1, u32), .{
15573 0,
15574 });
15575 try testArgs(@Vector(2, f80), @Vector(2, u32), .{
15576 1e0, 1e1,
15577 });
15578 try testArgs(@Vector(4, f80), @Vector(4, u32), .{
15579 1e2, 1e3, 1e4, imax(u32) - 1,
15580 });
15581 try testArgs(@Vector(8, f80), @Vector(8, u32), .{
15582 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
15583 });
15584 try testArgs(@Vector(16, f80), @Vector(16, u32), .{
15585 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
15586 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
15587 });
15588 try testArgs(@Vector(32, f80), @Vector(32, u32), .{
15589 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
15590 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
15591 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
15592 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
15593 });
15594 try testArgs(@Vector(64, f80), @Vector(64, u32), .{
15595 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
15596 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
15597 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
15598 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
15599 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
15600 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
15601 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
15602 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
15603 });
15604
15605 try testArgs(@Vector(1, f80), @Vector(1, i64), .{
15606 imin(i64),
15607 });
15608 try testArgs(@Vector(2, f80), @Vector(2, i64), .{
15609 imin(i64) + 1, -1e18,
15610 });
15611 try testArgs(@Vector(4, f80), @Vector(4, i64), .{
15612 -1e17, -1e16, -1e15, -1e14,
15613 });
15614 try testArgs(@Vector(8, f80), @Vector(8, i64), .{
15615 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
15616 });
15617 try testArgs(@Vector(16, f80), @Vector(16, i64), .{
15618 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
15619 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
15620 });
15621 try testArgs(@Vector(32, f80), @Vector(32, i64), .{
15622 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
15623 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
15624 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
15625 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
15626 });
15627 try testArgs(@Vector(64, f80), @Vector(64, i64), .{
15628 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
15629 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
15630 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
15631 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
15632 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
15633 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
15634 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
15635 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
15636 });
15637
15638 try testArgs(@Vector(1, f80), @Vector(1, u64), .{
15639 0,
15640 });
15641 try testArgs(@Vector(2, f80), @Vector(2, u64), .{
15642 1e0, 1e1,
15643 });
15644 try testArgs(@Vector(4, f80), @Vector(4, u64), .{
15645 1e2, 1e3, 1e4, 1e5,
15646 });
15647 try testArgs(@Vector(8, f80), @Vector(8, u64), .{
15648 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15649 });
15650 try testArgs(@Vector(16, f80), @Vector(16, u64), .{
15651 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
15652 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
15653 });
15654 try testArgs(@Vector(32, f80), @Vector(32, u64), .{
15655 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
15656 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
15657 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
15658 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
15659 });
15660 try testArgs(@Vector(64, f80), @Vector(64, u64), .{
15661 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
15662 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
15663 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
15664 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
15665 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
15666 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
15667 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
15668 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
15669 });
15670
15671 try testArgs(@Vector(1, f80), @Vector(1, i128), .{
15672 imin(i128),
15673 });
15674 try testArgs(@Vector(2, f80), @Vector(2, i128), .{
15675 imin(i128) + 1, -1e38,
15676 });
15677 try testArgs(@Vector(4, f80), @Vector(4, i128), .{
15678 -1e37, -1e36, -1e35, -1e34,
15679 });
15680 try testArgs(@Vector(8, f80), @Vector(8, i128), .{
15681 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
15682 });
15683 try testArgs(@Vector(16, f80), @Vector(16, i128), .{
15684 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
15685 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
15686 });
15687 try testArgs(@Vector(32, f80), @Vector(32, i128), .{
15688 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
15689 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
15690 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
15691 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
15692 });
15693 try testArgs(@Vector(64, f80), @Vector(64, i128), .{
15694 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
15695 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
15696 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
15697 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
15698 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
15699 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
15700 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
15701 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
15702 });
15703
15704 try testArgs(@Vector(1, f80), @Vector(1, u128), .{
15705 0,
15706 });
15707 try testArgs(@Vector(2, f80), @Vector(2, u128), .{
15708 1e0, 1e1,
15709 });
15710 try testArgs(@Vector(4, f80), @Vector(4, u128), .{
15711 1e2, 1e3, 1e4, 1e5,
15712 });
15713 try testArgs(@Vector(8, f80), @Vector(8, u128), .{
15714 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15715 });
15716 try testArgs(@Vector(16, f80), @Vector(16, u128), .{
15717 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
15718 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
15719 });
15720 try testArgs(@Vector(32, f80), @Vector(32, u128), .{
15721 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
15722 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
15723 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
15724 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
15725 });
15726 try testArgs(@Vector(64, f80), @Vector(64, u128), .{
15727 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
15728 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
15729 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
15730 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
15731 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
15732 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
15733 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
15734 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
15735 });
15736
15737 try testArgs(@Vector(1, f80), @Vector(1, i256), .{
15738 imin(i256),
15739 });
15740 try testArgs(@Vector(2, f80), @Vector(2, i256), .{
15741 imin(i256) + 1, -1e76,
15742 });
15743 try testArgs(@Vector(4, f80), @Vector(4, i256), .{
15744 -1e75, -1e74, -1e73, -1e72,
15745 });
15746 try testArgs(@Vector(8, f80), @Vector(8, i256), .{
15747 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
15748 });
15749 try testArgs(@Vector(16, f80), @Vector(16, i256), .{
15750 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
15751 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
15752 });
15753 try testArgs(@Vector(32, f80), @Vector(32, i256), .{
15754 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
15755 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
15756 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
15757 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
15758 });
15759 try testArgs(@Vector(64, f80), @Vector(64, i256), .{
15760 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
15761 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
15762 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
15763 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
15764 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
15765 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
15766 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
15767 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
15768 });
15769
15770 try testArgs(@Vector(1, f80), @Vector(1, u256), .{
15771 0,
15772 });
15773 try testArgs(@Vector(2, f80), @Vector(2, u256), .{
15774 1e0, 1e1,
15775 });
15776 try testArgs(@Vector(4, f80), @Vector(4, u256), .{
15777 1e2, 1e3, 1e4, 1e5,
15778 });
15779 try testArgs(@Vector(8, f80), @Vector(8, u256), .{
15780 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
15781 });
15782 try testArgs(@Vector(16, f80), @Vector(16, u256), .{
15783 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
15784 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
15785 });
15786 try testArgs(@Vector(32, f80), @Vector(32, u256), .{
15787 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
15788 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
15789 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
15790 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
15791 });
15792 try testArgs(@Vector(64, f80), @Vector(64, u256), .{
15793 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
15794 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
15795 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
15796 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
15797 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
15798 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
15799 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
15800 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
15801 });
15802
15803 try testArgs(@Vector(1, f128), @Vector(1, i8), .{
15804 imin(i8),
15805 });
15806 try testArgs(@Vector(2, f128), @Vector(2, i8), .{
15807 imin(i8) + 1, -1e2,
15808 });
15809 try testArgs(@Vector(4, f128), @Vector(4, i8), .{
15810 -1e1, -1e0, 0, 1e0,
15811 });
15812 try testArgs(@Vector(8, f128), @Vector(8, i8), .{
15813 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0,
15814 });
15815 try testArgs(@Vector(16, f128), @Vector(16, i8), .{
15816 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0,
15817 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0,
15818 });
15819 try testArgs(@Vector(32, f128), @Vector(32, i8), .{
15820 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0,
15821 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0,
15822 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0,
15823 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0,
15824 });
15825 try testArgs(@Vector(64, f128), @Vector(64, i8), .{
15826 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0,
15827 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0,
15828 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0,
15829 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0,
15830 imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24,
15831 imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29,
15832 -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0,
15833 imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32,
15834 });
15835
15836 try testArgs(@Vector(1, f128), @Vector(1, u8), .{
15837 0,
15838 });
15839 try testArgs(@Vector(2, f128), @Vector(2, u8), .{
15840 1e0, 1e1,
15841 });
15842 try testArgs(@Vector(4, f128), @Vector(4, u8), .{
15843 1e2, imax(u8) - 1, imax(u8), 2e0,
15844 });
15845 try testArgs(@Vector(8, f128), @Vector(8, u8), .{
15846 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4,
15847 });
15848 try testArgs(@Vector(16, f128), @Vector(16, u8), .{
15849 imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1,
15850 imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1,
15851 });
15852 try testArgs(@Vector(32, f128), @Vector(32, u8), .{
15853 imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1,
15854 imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1,
15855 imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1,
15856 imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1,
15857 });
15858 try testArgs(@Vector(64, f128), @Vector(64, u8), .{
15859 imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1,
15860 imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1,
15861 imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1,
15862 imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47,
15863 imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0,
15864 imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56,
15865 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63,
15866 imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0,
15867 });
15868
15869 try testArgs(@Vector(1, f128), @Vector(1, i16), .{
15870 imin(i16),
15871 });
15872 try testArgs(@Vector(2, f128), @Vector(2, i16), .{
15873 imin(i16) + 1, -1e4,
15874 });
15875 try testArgs(@Vector(4, f128), @Vector(4, i16), .{
15876 -1e3, -1e2, -1e1, -1e0,
15877 });
15878 try testArgs(@Vector(8, f128), @Vector(8, i16), .{
15879 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16),
15880 });
15881 try testArgs(@Vector(16, f128), @Vector(16, i16), .{
15882 imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0,
15883 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5,
15884 });
15885 try testArgs(@Vector(32, f128), @Vector(32, i16), .{
15886 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
15887 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2,
15888 -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6,
15889 imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1,
15890 });
15891 try testArgs(@Vector(64, f128), @Vector(64, i16), .{
15892 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2,
15893 -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10,
15894 imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1,
15895 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2,
15896 -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14,
15897 imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1,
15898 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2,
15899 -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18,
15900 });
15901
15902 try testArgs(@Vector(1, f128), @Vector(1, u16), .{
15903 0,
15904 });
15905 try testArgs(@Vector(2, f128), @Vector(2, u16), .{
15906 1e0, 1e1,
15907 });
15908 try testArgs(@Vector(4, f128), @Vector(4, u16), .{
15909 1e2, 1e3, 1e4, imax(u16) - 1,
15910 });
15911 try testArgs(@Vector(8, f128), @Vector(8, u16), .{
15912 imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2,
15913 });
15914 try testArgs(@Vector(16, f128), @Vector(16, u16), .{
15915 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0,
15916 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1,
15917 });
15918 try testArgs(@Vector(32, f128), @Vector(32, u16), .{
15919 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2,
15920 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3,
15921 imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14,
15922 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1,
15923 });
15924 try testArgs(@Vector(64, f128), @Vector(64, u16), .{
15925 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3,
15926 imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22,
15927 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1,
15928 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3,
15929 imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30,
15930 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1,
15931 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3,
15932 imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38,
15933 });
15934
15935 try testArgs(@Vector(1, f128), @Vector(1, i32), .{
15936 imin(i32),
15937 });
15938 try testArgs(@Vector(2, f128), @Vector(2, i32), .{
15939 imin(i32) + 1, -1e9,
15940 });
15941 try testArgs(@Vector(4, f128), @Vector(4, i32), .{
15942 -1e8, -1e7, -1e6, -1e5,
15943 });
15944 try testArgs(@Vector(8, f128), @Vector(8, i32), .{
15945 -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1,
15946 });
15947 try testArgs(@Vector(16, f128), @Vector(16, i32), .{
15948 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
15949 imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6,
15950 });
15951 try testArgs(@Vector(32, f128), @Vector(32, i32), .{
15952 -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1,
15953 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9,
15954 imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5,
15955 -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2,
15956 });
15957 try testArgs(@Vector(64, f128), @Vector(64, i32), .{
15958 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4,
15959 imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3,
15960 -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4,
15961 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9,
15962 -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1,
15963 -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6,
15964 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7,
15965 -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0,
15966 });
15967
15968 try testArgs(@Vector(1, f128), @Vector(1, u32), .{
15969 0,
15970 });
15971 try testArgs(@Vector(2, f128), @Vector(2, u32), .{
15972 1e0, 1e1,
15973 });
15974 try testArgs(@Vector(4, f128), @Vector(4, u32), .{
15975 1e2, 1e3, 1e4, imax(u32) - 1,
15976 });
15977 try testArgs(@Vector(8, f128), @Vector(8, u32), .{
15978 imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2,
15979 });
15980 try testArgs(@Vector(16, f128), @Vector(16, u32), .{
15981 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0,
15982 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1,
15983 });
15984 try testArgs(@Vector(32, f128), @Vector(32, u32), .{
15985 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2,
15986 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3,
15987 imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14,
15988 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1,
15989 });
15990 try testArgs(@Vector(64, f128), @Vector(64, u32), .{
15991 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3,
15992 imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22,
15993 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1,
15994 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3,
15995 imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30,
15996 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1,
15997 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3,
15998 imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38,
15999 });
16000
16001 try testArgs(@Vector(1, f128), @Vector(1, i64), .{
16002 imin(i64),
16003 });
16004 try testArgs(@Vector(2, f128), @Vector(2, i64), .{
16005 imin(i64) + 1, -1e18,
16006 });
16007 try testArgs(@Vector(4, f128), @Vector(4, i64), .{
16008 -1e17, -1e16, -1e15, -1e14,
16009 });
16010 try testArgs(@Vector(8, f128), @Vector(8, i64), .{
16011 -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6,
16012 });
16013 try testArgs(@Vector(16, f128), @Vector(16, i64), .{
16014 -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0,
16015 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8,
16016 });
16017 try testArgs(@Vector(32, f128), @Vector(32, i64), .{
16018 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16,
16019 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17,
16020 -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9,
16021 -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1,
16022 });
16023 try testArgs(@Vector(64, f128), @Vector(64, i64), .{
16024 -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6,
16025 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14,
16026 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5,
16027 -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11,
16028 -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3,
16029 -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4,
16030 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12,
16031 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4,
16032 });
16033
16034 try testArgs(@Vector(1, f128), @Vector(1, u64), .{
16035 0,
16036 });
16037 try testArgs(@Vector(2, f128), @Vector(2, u64), .{
16038 1e0, 1e1,
16039 });
16040 try testArgs(@Vector(4, f128), @Vector(4, u64), .{
16041 1e2, 1e3, 1e4, 1e5,
16042 });
16043 try testArgs(@Vector(8, f128), @Vector(8, u64), .{
16044 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
16045 });
16046 try testArgs(@Vector(16, f128), @Vector(16, u64), .{
16047 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64),
16048 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7,
16049 });
16050 try testArgs(@Vector(32, f128), @Vector(32, u64), .{
16051 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15,
16052 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2,
16053 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10,
16054 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18,
16055 });
16056 try testArgs(@Vector(64, f128), @Vector(64, u64), .{
16057 imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5,
16058 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13,
16059 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0,
16060 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8,
16061 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16,
16062 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3,
16063 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11,
16064 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11,
16065 });
16066
16067 try testArgs(@Vector(1, f128), @Vector(1, i128), .{
16068 imin(i128),
16069 });
16070 try testArgs(@Vector(2, f128), @Vector(2, i128), .{
16071 imin(i128) + 1, -1e38,
16072 });
16073 try testArgs(@Vector(4, f128), @Vector(4, i128), .{
16074 -1e37, -1e36, -1e35, -1e34,
16075 });
16076 try testArgs(@Vector(8, f128), @Vector(8, i128), .{
16077 -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26,
16078 });
16079 try testArgs(@Vector(16, f128), @Vector(16, i128), .{
16080 -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18,
16081 -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10,
16082 });
16083 try testArgs(@Vector(32, f128), @Vector(32, i128), .{
16084 -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2,
16085 -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4,
16086 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12,
16087 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20,
16088 });
16089 try testArgs(@Vector(64, f128), @Vector(64, i128), .{
16090 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28,
16091 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36,
16092 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36,
16093 -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28,
16094 -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20,
16095 -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12,
16096 -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4,
16097 -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3,
16098 });
16099
16100 try testArgs(@Vector(1, f128), @Vector(1, u128), .{
16101 0,
16102 });
16103 try testArgs(@Vector(2, f128), @Vector(2, u128), .{
16104 1e0, 1e1,
16105 });
16106 try testArgs(@Vector(4, f128), @Vector(4, u128), .{
16107 1e2, 1e3, 1e4, 1e5,
16108 });
16109 try testArgs(@Vector(8, f128), @Vector(8, u128), .{
16110 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
16111 });
16112 try testArgs(@Vector(16, f128), @Vector(16, u128), .{
16113 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
16114 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
16115 });
16116 try testArgs(@Vector(32, f128), @Vector(32, u128), .{
16117 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
16118 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4,
16119 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12,
16120 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20,
16121 });
16122 try testArgs(@Vector(64, f128), @Vector(64, u128), .{
16123 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28,
16124 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36,
16125 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3,
16126 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11,
16127 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19,
16128 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27,
16129 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35,
16130 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2,
16131 });
16132
16133 try testArgs(@Vector(1, f128), @Vector(1, i256), .{
16134 imin(i256),
16135 });
16136 try testArgs(@Vector(2, f128), @Vector(2, i256), .{
16137 imin(i256) + 1, -1e76,
16138 });
16139 try testArgs(@Vector(4, f128), @Vector(4, i256), .{
16140 -1e75, -1e74, -1e73, -1e72,
16141 });
16142 try testArgs(@Vector(8, f128), @Vector(8, i256), .{
16143 -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64,
16144 });
16145 try testArgs(@Vector(16, f128), @Vector(16, i256), .{
16146 -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56,
16147 -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48,
16148 });
16149 try testArgs(@Vector(32, f128), @Vector(32, i256), .{
16150 -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40,
16151 -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32,
16152 -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24,
16153 -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16,
16154 });
16155 try testArgs(@Vector(64, f128), @Vector(64, i256), .{
16156 -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8,
16157 -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0,
16158 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6,
16159 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14,
16160 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22,
16161 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30,
16162 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38,
16163 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46,
16164 });
16165
16166 try testArgs(@Vector(1, f128), @Vector(1, u256), .{
16167 0,
16168 });
16169 try testArgs(@Vector(2, f128), @Vector(2, u256), .{
16170 1e0, 1e1,
16171 });
16172 try testArgs(@Vector(4, f128), @Vector(4, u256), .{
16173 1e2, 1e3, 1e4, 1e5,
16174 });
16175 try testArgs(@Vector(8, f128), @Vector(8, u256), .{
16176 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13,
16177 });
16178 try testArgs(@Vector(16, f128), @Vector(16, u256), .{
16179 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21,
16180 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29,
16181 });
16182 try testArgs(@Vector(32, f128), @Vector(32, u256), .{
16183 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37,
16184 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45,
16185 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53,
16186 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61,
16187 });
16188 try testArgs(@Vector(64, f128), @Vector(64, u256), .{
16189 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69,
16190 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77,
16191 imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5,
16192 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13,
16193 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21,
16194 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29,
16195 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37,
16196 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45,
16197 });
16198 }
16199 };
16200}
16201
16202fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type {
16203 return struct {
16204 // noinline so that `mem_lhs` and `mem_rhs` are on the stack
16205 noinline fn testArgKinds(
16206 _: Gpr,
16207 _: Gpr,
16208 _: Gpr,
16209 _: Gpr,
16210 _: Gpr,
16211 _: Gpr,
16212 _: Gpr,
16213 _: Gpr,
16214 _: Sse,
16215 _: Sse,
16216 _: Sse,
16217 _: Sse,
16218 _: Sse,
16219 _: Sse,
16220 _: Sse,
16221 _: Sse,
16222 comptime Type: type,
16223 comptime imm_lhs: Type,
16224 mem_lhs: Type,
16225 comptime imm_rhs: Type,
16226 mem_rhs: Type,
16227 ) !void {
16228 const expected = comptime op(Type, imm_lhs, imm_rhs);
16229 var reg_lhs = mem_lhs;
16230 var reg_rhs = mem_rhs;
16231 _ = .{ &reg_lhs, &reg_rhs };
16232 try checkExpected(expected, op(Type, reg_lhs, reg_rhs), opts.compare);
16233 try checkExpected(expected, op(Type, reg_lhs, mem_rhs), opts.compare);
16234 try checkExpected(expected, op(Type, reg_lhs, imm_rhs), opts.compare);
16235 try checkExpected(expected, op(Type, mem_lhs, reg_rhs), opts.compare);
16236 try checkExpected(expected, op(Type, mem_lhs, mem_rhs), opts.compare);
16237 try checkExpected(expected, op(Type, mem_lhs, imm_rhs), opts.compare);
16238 try checkExpected(expected, op(Type, imm_lhs, reg_rhs), opts.compare);
16239 try checkExpected(expected, op(Type, imm_lhs, mem_rhs), opts.compare);
16240 }
16241 // noinline for a more helpful stack trace
16242 noinline fn testArgs(comptime Type: type, comptime imm_lhs: Type, comptime imm_rhs: Type) !void {
16243 try testArgKinds(
16244 undefined,
16245 undefined,
16246 undefined,
16247 undefined,
16248 undefined,
16249 undefined,
16250 undefined,
16251 undefined,
16252 undefined,
16253 undefined,
16254 undefined,
16255 undefined,
16256 undefined,
16257 undefined,
16258 undefined,
16259 undefined,
16260 Type,
16261 imm_lhs,
16262 imm_lhs,
16263 imm_rhs,
16264 imm_rhs,
16265 );
16266 }
16267 fn testInts() !void {
16268 try testArgs(i4, 0x3, 0x2);
16269 try testArgs(u4, 0xe, 0x6);
16270 try testArgs(i8, 0x48, 0x6c);
16271 try testArgs(u8, 0xbb, 0x43);
16272 try testArgs(i16, -0x0fdf, 0x302e);
16273 try testArgs(u16, 0xb8bf, 0x626d);
16274 try testArgs(i32, -0x6280178f, 0x6802c034);
16275 try testArgs(u32, 0x80d7a2c6, 0xbff6a402);
16276 try testArgs(i64, 0x0365a53b8ee0c987, -0x1bb6d3013500a7d2);
16277 try testArgs(u64, 0x71138bc6b4a38898, 0x1bc4043de9438c7b);
16278 try testArgs(i128, 0x76d428c46cdeaa2ac43de8abffb22f6d, 0x427f7545abe434a12544fdbe2a012889);
16279 try testArgs(u128, 0xe05fc132ef2cd8affee00a907f0a851f, 0x29f912a72cfc6a7c6973426a9636da9a);
16280 try testArgs(i256, -0x53d4148cee74ea43477a65b3daa7b8fdadcbf4508e793f4af113b8d8da5a7eb6, -0x30dcbaf7b9b7a3df033694e6795444d842fb0b8f79bc18b3ea8a6b7ccad3ea91);
16281 try testArgs(u256, 0xb7935f5c2f3b1ae7a422c0a7c446884294b7d5370bada307d2fe5a4c4284a999, 0x310e6e196ba4f143b8d285ca6addf7f3bb3344224aff221b27607a31e148be08);
16282 try testArgs(i258, -0x0eee283365108dbeea0bec82f5147418d8ffe86f9eed00e414b4eccd65c21239a, -0x122c730073fc29a24cd6e3e6263566879bc5325d8566b8db31fcb4a76f7ab95eb);
16283 try testArgs(u258, 0x186d5ddaab8cb8cb04e5b41e36f812e039d008baf49f12894c39e29a07796d800, 0x2072daba6ffad168826163eb136f6d28ca4360c8e7e5e41e29755e19e4753a4f5);
16284 try testArgs(i495, 0x2fe6bc5448c55ce18252e2c9d44777505dfe63ff249a8027a6626c7d8dd9893fd5731e51474727be556f757facb586a4e04bbc0148c6c7ad692302f46fbd, -0x016a358821ef8240172f3a08e8830c06e6bcf2225f5f4d41ed42b44d249385f55cc594e1278ecac31c73faed890e5054af1a561483bb1bb6fb1f753514cf);
16285 try testArgs(u495, 0x6eaf4e252b3bf74b75bac59e0b43ca5326bad2a25b3fdb74a67ef132ac5e47d72eebc3316fb2351ee66c50dc5afb92a75cea9b0e35160652c7db39eeb158, 0x49fbed744a92b549d8c05bb3512c617d24dd824f3f69bdf3923bc326a75674b85f5b828d2566fab9c86f571d12c2a63c9164feb0d191d27905533d09622a);
16286 try testArgs(i512, -0x3a6876ca92775286c6e1504a64a9b8d56985bebf4a1b66539d404e0e96f24b226f70c4bcff295fdc2043b82513b2052dc45fd78f7e9e80e5b3e101757289f054, 0x5080c516a819bd32a0a5f0976441bbfbcf89e77684f1f10eb326aeb28e1f8d593278cff60fc99b8ffc87d8696882c64728dd3c322b7142803f4341f85a03bc10);
16287 try testArgs(u512, 0xe5b1fedca3c77db765e517aabd05ffc524a3a8aff1784bbf67c45b894447ede32b65b9940e78173c591e56e078932d465f235aece7ad47b7f229df7ba8f12295, 0x8b4bb7c2969e3b121cc1082c442f8b4330f0a50058438fed56447175bb10178607ecfe425cb54dacc25ef26810f3e04681de1844f1aa8d029aca75d658634806);
16288 }
16289 fn testFloats() !void {
16290 @setEvalBranchQuota(21_700);
16291
16292 try testArgs(f16, -nan(f16), -nan(f16));
16293 try testArgs(f16, -nan(f16), -inf(f16));
16294 try testArgs(f16, -nan(f16), -fmax(f16));
16295 try testArgs(f16, -nan(f16), -1e1);
16296 try testArgs(f16, -nan(f16), -1e0);
16297 try testArgs(f16, -nan(f16), -1e-1);
16298 try testArgs(f16, -nan(f16), -fmin(f16));
16299 try testArgs(f16, -nan(f16), -tmin(f16));
16300 try testArgs(f16, -nan(f16), -0.0);
16301 try testArgs(f16, -nan(f16), 0.0);
16302 try testArgs(f16, -nan(f16), tmin(f16));
16303 try testArgs(f16, -nan(f16), fmin(f16));
16304 try testArgs(f16, -nan(f16), 1e-1);
16305 try testArgs(f16, -nan(f16), 1e0);
16306 try testArgs(f16, -nan(f16), 1e1);
16307 try testArgs(f16, -nan(f16), fmax(f16));
16308 try testArgs(f16, -nan(f16), inf(f16));
16309 try testArgs(f16, -nan(f16), nan(f16));
16310
16311 try testArgs(f16, -inf(f16), -nan(f16));
16312 try testArgs(f16, -inf(f16), -inf(f16));
16313 try testArgs(f16, -inf(f16), -fmax(f16));
16314 try testArgs(f16, -inf(f16), -1e1);
16315 try testArgs(f16, -inf(f16), -1e0);
16316 try testArgs(f16, -inf(f16), -1e-1);
16317 try testArgs(f16, -inf(f16), -fmin(f16));
16318 try testArgs(f16, -inf(f16), -tmin(f16));
16319 try testArgs(f16, -inf(f16), -0.0);
16320 try testArgs(f16, -inf(f16), 0.0);
16321 try testArgs(f16, -inf(f16), tmin(f16));
16322 try testArgs(f16, -inf(f16), fmin(f16));
16323 try testArgs(f16, -inf(f16), 1e-1);
16324 try testArgs(f16, -inf(f16), 1e0);
16325 try testArgs(f16, -inf(f16), 1e1);
16326 try testArgs(f16, -inf(f16), fmax(f16));
16327 try testArgs(f16, -inf(f16), inf(f16));
16328 try testArgs(f16, -inf(f16), nan(f16));
16329
16330 try testArgs(f16, -fmax(f16), -nan(f16));
16331 try testArgs(f16, -fmax(f16), -inf(f16));
16332 try testArgs(f16, -fmax(f16), -fmax(f16));
16333 try testArgs(f16, -fmax(f16), -1e1);
16334 try testArgs(f16, -fmax(f16), -1e0);
16335 try testArgs(f16, -fmax(f16), -1e-1);
16336 try testArgs(f16, -fmax(f16), -fmin(f16));
16337 try testArgs(f16, -fmax(f16), -tmin(f16));
16338 try testArgs(f16, -fmax(f16), -0.0);
16339 try testArgs(f16, -fmax(f16), 0.0);
16340 try testArgs(f16, -fmax(f16), tmin(f16));
16341 try testArgs(f16, -fmax(f16), fmin(f16));
16342 try testArgs(f16, -fmax(f16), 1e-1);
16343 try testArgs(f16, -fmax(f16), 1e0);
16344 try testArgs(f16, -fmax(f16), 1e1);
16345 try testArgs(f16, -fmax(f16), fmax(f16));
16346 try testArgs(f16, -fmax(f16), inf(f16));
16347 try testArgs(f16, -fmax(f16), nan(f16));
16348
16349 try testArgs(f16, -1e1, -nan(f16));
16350 try testArgs(f16, -1e1, -inf(f16));
16351 try testArgs(f16, -1e1, -fmax(f16));
16352 try testArgs(f16, -1e1, -1e1);
16353 try testArgs(f16, -1e1, -1e0);
16354 try testArgs(f16, -1e1, -1e-1);
16355 try testArgs(f16, -1e1, -fmin(f16));
16356 try testArgs(f16, -1e1, -tmin(f16));
16357 try testArgs(f16, -1e1, -0.0);
16358 try testArgs(f16, -1e1, 0.0);
16359 try testArgs(f16, -1e1, tmin(f16));
16360 try testArgs(f16, -1e1, fmin(f16));
16361 try testArgs(f16, -1e1, 1e-1);
16362 try testArgs(f16, -1e1, 1e0);
16363 try testArgs(f16, -1e1, 1e1);
16364 try testArgs(f16, -1e1, fmax(f16));
16365 try testArgs(f16, -1e1, inf(f16));
16366 try testArgs(f16, -1e1, nan(f16));
16367
16368 try testArgs(f16, -1e0, -nan(f16));
16369 try testArgs(f16, -1e0, -inf(f16));
16370 try testArgs(f16, -1e0, -fmax(f16));
16371 try testArgs(f16, -1e0, -1e1);
16372 try testArgs(f16, -1e0, -1e0);
16373 try testArgs(f16, -1e0, -1e-1);
16374 try testArgs(f16, -1e0, -fmin(f16));
16375 try testArgs(f16, -1e0, -tmin(f16));
16376 try testArgs(f16, -1e0, -0.0);
16377 try testArgs(f16, -1e0, 0.0);
16378 try testArgs(f16, -1e0, tmin(f16));
16379 try testArgs(f16, -1e0, fmin(f16));
16380 try testArgs(f16, -1e0, 1e-1);
16381 try testArgs(f16, -1e0, 1e0);
16382 try testArgs(f16, -1e0, 1e1);
16383 try testArgs(f16, -1e0, fmax(f16));
16384 try testArgs(f16, -1e0, inf(f16));
16385 try testArgs(f16, -1e0, nan(f16));
16386
16387 try testArgs(f16, -1e-1, -nan(f16));
16388 try testArgs(f16, -1e-1, -inf(f16));
16389 try testArgs(f16, -1e-1, -fmax(f16));
16390 try testArgs(f16, -1e-1, -1e1);
16391 try testArgs(f16, -1e-1, -1e0);
16392 try testArgs(f16, -1e-1, -1e-1);
16393 try testArgs(f16, -1e-1, -fmin(f16));
16394 try testArgs(f16, -1e-1, -tmin(f16));
16395 try testArgs(f16, -1e-1, -0.0);
16396 try testArgs(f16, -1e-1, 0.0);
16397 try testArgs(f16, -1e-1, tmin(f16));
16398 try testArgs(f16, -1e-1, fmin(f16));
16399 try testArgs(f16, -1e-1, 1e-1);
16400 try testArgs(f16, -1e-1, 1e0);
16401 try testArgs(f16, -1e-1, 1e1);
16402 try testArgs(f16, -1e-1, fmax(f16));
16403 try testArgs(f16, -1e-1, inf(f16));
16404 try testArgs(f16, -1e-1, nan(f16));
16405
16406 try testArgs(f16, -fmin(f16), -nan(f16));
16407 try testArgs(f16, -fmin(f16), -inf(f16));
16408 try testArgs(f16, -fmin(f16), -fmax(f16));
16409 try testArgs(f16, -fmin(f16), -1e1);
16410 try testArgs(f16, -fmin(f16), -1e0);
16411 try testArgs(f16, -fmin(f16), -1e-1);
16412 try testArgs(f16, -fmin(f16), -fmin(f16));
16413 try testArgs(f16, -fmin(f16), -tmin(f16));
16414 try testArgs(f16, -fmin(f16), -0.0);
16415 try testArgs(f16, -fmin(f16), 0.0);
16416 try testArgs(f16, -fmin(f16), tmin(f16));
16417 try testArgs(f16, -fmin(f16), fmin(f16));
16418 try testArgs(f16, -fmin(f16), 1e-1);
16419 try testArgs(f16, -fmin(f16), 1e0);
16420 try testArgs(f16, -fmin(f16), 1e1);
16421 try testArgs(f16, -fmin(f16), fmax(f16));
16422 try testArgs(f16, -fmin(f16), inf(f16));
16423 try testArgs(f16, -fmin(f16), nan(f16));
16424
16425 try testArgs(f16, -tmin(f16), -nan(f16));
16426 try testArgs(f16, -tmin(f16), -inf(f16));
16427 try testArgs(f16, -tmin(f16), -fmax(f16));
16428 try testArgs(f16, -tmin(f16), -1e1);
16429 try testArgs(f16, -tmin(f16), -1e0);
16430 try testArgs(f16, -tmin(f16), -1e-1);
16431 try testArgs(f16, -tmin(f16), -fmin(f16));
16432 try testArgs(f16, -tmin(f16), -tmin(f16));
16433 try testArgs(f16, -tmin(f16), -0.0);
16434 try testArgs(f16, -tmin(f16), 0.0);
16435 try testArgs(f16, -tmin(f16), tmin(f16));
16436 try testArgs(f16, -tmin(f16), fmin(f16));
16437 try testArgs(f16, -tmin(f16), 1e-1);
16438 try testArgs(f16, -tmin(f16), 1e0);
16439 try testArgs(f16, -tmin(f16), 1e1);
16440 try testArgs(f16, -tmin(f16), fmax(f16));
16441 try testArgs(f16, -tmin(f16), inf(f16));
16442 try testArgs(f16, -tmin(f16), nan(f16));
16443
16444 try testArgs(f16, -0.0, -nan(f16));
16445 try testArgs(f16, -0.0, -inf(f16));
16446 try testArgs(f16, -0.0, -fmax(f16));
16447 try testArgs(f16, -0.0, -1e1);
16448 try testArgs(f16, -0.0, -1e0);
16449 try testArgs(f16, -0.0, -1e-1);
16450 try testArgs(f16, -0.0, -fmin(f16));
16451 try testArgs(f16, -0.0, -tmin(f16));
16452 try testArgs(f16, -0.0, -0.0);
16453 try testArgs(f16, -0.0, 0.0);
16454 try testArgs(f16, -0.0, tmin(f16));
16455 try testArgs(f16, -0.0, fmin(f16));
16456 try testArgs(f16, -0.0, 1e-1);
16457 try testArgs(f16, -0.0, 1e0);
16458 try testArgs(f16, -0.0, 1e1);
16459 try testArgs(f16, -0.0, fmax(f16));
16460 try testArgs(f16, -0.0, inf(f16));
16461 try testArgs(f16, -0.0, nan(f16));
16462
16463 try testArgs(f16, 0.0, -nan(f16));
16464 try testArgs(f16, 0.0, -inf(f16));
16465 try testArgs(f16, 0.0, -fmax(f16));
16466 try testArgs(f16, 0.0, -1e1);
16467 try testArgs(f16, 0.0, -1e0);
16468 try testArgs(f16, 0.0, -1e-1);
16469 try testArgs(f16, 0.0, -fmin(f16));
16470 try testArgs(f16, 0.0, -tmin(f16));
16471 try testArgs(f16, 0.0, -0.0);
16472 try testArgs(f16, 0.0, 0.0);
16473 try testArgs(f16, 0.0, tmin(f16));
16474 try testArgs(f16, 0.0, fmin(f16));
16475 try testArgs(f16, 0.0, 1e-1);
16476 try testArgs(f16, 0.0, 1e0);
16477 try testArgs(f16, 0.0, 1e1);
16478 try testArgs(f16, 0.0, fmax(f16));
16479 try testArgs(f16, 0.0, inf(f16));
16480 try testArgs(f16, 0.0, nan(f16));
16481
16482 try testArgs(f16, tmin(f16), -nan(f16));
16483 try testArgs(f16, tmin(f16), -inf(f16));
16484 try testArgs(f16, tmin(f16), -fmax(f16));
16485 try testArgs(f16, tmin(f16), -1e1);
16486 try testArgs(f16, tmin(f16), -1e0);
16487 try testArgs(f16, tmin(f16), -1e-1);
16488 try testArgs(f16, tmin(f16), -fmin(f16));
16489 try testArgs(f16, tmin(f16), -tmin(f16));
16490 try testArgs(f16, tmin(f16), -0.0);
16491 try testArgs(f16, tmin(f16), 0.0);
16492 try testArgs(f16, tmin(f16), tmin(f16));
16493 try testArgs(f16, tmin(f16), fmin(f16));
16494 try testArgs(f16, tmin(f16), 1e-1);
16495 try testArgs(f16, tmin(f16), 1e0);
16496 try testArgs(f16, tmin(f16), 1e1);
16497 try testArgs(f16, tmin(f16), fmax(f16));
16498 try testArgs(f16, tmin(f16), inf(f16));
16499 try testArgs(f16, tmin(f16), nan(f16));
16500
16501 try testArgs(f16, fmin(f16), -nan(f16));
16502 try testArgs(f16, fmin(f16), -inf(f16));
16503 try testArgs(f16, fmin(f16), -fmax(f16));
16504 try testArgs(f16, fmin(f16), -1e1);
16505 try testArgs(f16, fmin(f16), -1e0);
16506 try testArgs(f16, fmin(f16), -1e-1);
16507 try testArgs(f16, fmin(f16), -fmin(f16));
16508 try testArgs(f16, fmin(f16), -tmin(f16));
16509 try testArgs(f16, fmin(f16), -0.0);
16510 try testArgs(f16, fmin(f16), 0.0);
16511 try testArgs(f16, fmin(f16), tmin(f16));
16512 try testArgs(f16, fmin(f16), fmin(f16));
16513 try testArgs(f16, fmin(f16), 1e-1);
16514 try testArgs(f16, fmin(f16), 1e0);
16515 try testArgs(f16, fmin(f16), 1e1);
16516 try testArgs(f16, fmin(f16), fmax(f16));
16517 try testArgs(f16, fmin(f16), inf(f16));
16518 try testArgs(f16, fmin(f16), nan(f16));
16519
16520 try testArgs(f16, 1e-1, -nan(f16));
16521 try testArgs(f16, 1e-1, -inf(f16));
16522 try testArgs(f16, 1e-1, -fmax(f16));
16523 try testArgs(f16, 1e-1, -1e1);
16524 try testArgs(f16, 1e-1, -1e0);
16525 try testArgs(f16, 1e-1, -1e-1);
16526 try testArgs(f16, 1e-1, -fmin(f16));
16527 try testArgs(f16, 1e-1, -tmin(f16));
16528 try testArgs(f16, 1e-1, -0.0);
16529 try testArgs(f16, 1e-1, 0.0);
16530 try testArgs(f16, 1e-1, tmin(f16));
16531 try testArgs(f16, 1e-1, fmin(f16));
16532 try testArgs(f16, 1e-1, 1e-1);
16533 try testArgs(f16, 1e-1, 1e0);
16534 try testArgs(f16, 1e-1, 1e1);
16535 try testArgs(f16, 1e-1, fmax(f16));
16536 try testArgs(f16, 1e-1, inf(f16));
16537 try testArgs(f16, 1e-1, nan(f16));
16538
16539 try testArgs(f16, 1e0, -nan(f16));
16540 try testArgs(f16, 1e0, -inf(f16));
16541 try testArgs(f16, 1e0, -fmax(f16));
16542 try testArgs(f16, 1e0, -1e1);
16543 try testArgs(f16, 1e0, -1e0);
16544 try testArgs(f16, 1e0, -1e-1);
16545 try testArgs(f16, 1e0, -fmin(f16));
16546 try testArgs(f16, 1e0, -tmin(f16));
16547 try testArgs(f16, 1e0, -0.0);
16548 try testArgs(f16, 1e0, 0.0);
16549 try testArgs(f16, 1e0, tmin(f16));
16550 try testArgs(f16, 1e0, fmin(f16));
16551 try testArgs(f16, 1e0, 1e-1);
16552 try testArgs(f16, 1e0, 1e0);
16553 try testArgs(f16, 1e0, 1e1);
16554 try testArgs(f16, 1e0, fmax(f16));
16555 try testArgs(f16, 1e0, inf(f16));
16556 try testArgs(f16, 1e0, nan(f16));
16557
16558 try testArgs(f16, 1e1, -nan(f16));
16559 try testArgs(f16, 1e1, -inf(f16));
16560 try testArgs(f16, 1e1, -fmax(f16));
16561 try testArgs(f16, 1e1, -1e1);
16562 try testArgs(f16, 1e1, -1e0);
16563 try testArgs(f16, 1e1, -1e-1);
16564 try testArgs(f16, 1e1, -fmin(f16));
16565 try testArgs(f16, 1e1, -tmin(f16));
16566 try testArgs(f16, 1e1, -0.0);
16567 try testArgs(f16, 1e1, 0.0);
16568 try testArgs(f16, 1e1, tmin(f16));
16569 try testArgs(f16, 1e1, fmin(f16));
16570 try testArgs(f16, 1e1, 1e-1);
16571 try testArgs(f16, 1e1, 1e0);
16572 try testArgs(f16, 1e1, 1e1);
16573 try testArgs(f16, 1e1, fmax(f16));
16574 try testArgs(f16, 1e1, inf(f16));
16575 try testArgs(f16, 1e1, nan(f16));
16576
16577 try testArgs(f16, fmax(f16), -nan(f16));
16578 try testArgs(f16, fmax(f16), -inf(f16));
16579 try testArgs(f16, fmax(f16), -fmax(f16));
16580 try testArgs(f16, fmax(f16), -1e1);
16581 try testArgs(f16, fmax(f16), -1e0);
16582 try testArgs(f16, fmax(f16), -1e-1);
16583 try testArgs(f16, fmax(f16), -fmin(f16));
16584 try testArgs(f16, fmax(f16), -tmin(f16));
16585 try testArgs(f16, fmax(f16), -0.0);
16586 try testArgs(f16, fmax(f16), 0.0);
16587 try testArgs(f16, fmax(f16), tmin(f16));
16588 try testArgs(f16, fmax(f16), fmin(f16));
16589 try testArgs(f16, fmax(f16), 1e-1);
16590 try testArgs(f16, fmax(f16), 1e0);
16591 try testArgs(f16, fmax(f16), 1e1);
16592 try testArgs(f16, fmax(f16), fmax(f16));
16593 try testArgs(f16, fmax(f16), inf(f16));
16594 try testArgs(f16, fmax(f16), nan(f16));
16595
16596 try testArgs(f16, inf(f16), -nan(f16));
16597 try testArgs(f16, inf(f16), -inf(f16));
16598 try testArgs(f16, inf(f16), -fmax(f16));
16599 try testArgs(f16, inf(f16), -1e1);
16600 try testArgs(f16, inf(f16), -1e0);
16601 try testArgs(f16, inf(f16), -1e-1);
16602 try testArgs(f16, inf(f16), -fmin(f16));
16603 try testArgs(f16, inf(f16), -tmin(f16));
16604 try testArgs(f16, inf(f16), -0.0);
16605 try testArgs(f16, inf(f16), 0.0);
16606 try testArgs(f16, inf(f16), tmin(f16));
16607 try testArgs(f16, inf(f16), fmin(f16));
16608 try testArgs(f16, inf(f16), 1e-1);
16609 try testArgs(f16, inf(f16), 1e0);
16610 try testArgs(f16, inf(f16), 1e1);
16611 try testArgs(f16, inf(f16), fmax(f16));
16612 try testArgs(f16, inf(f16), inf(f16));
16613 try testArgs(f16, inf(f16), nan(f16));
16614
16615 try testArgs(f16, nan(f16), -nan(f16));
16616 try testArgs(f16, nan(f16), -inf(f16));
16617 try testArgs(f16, nan(f16), -fmax(f16));
16618 try testArgs(f16, nan(f16), -1e1);
16619 try testArgs(f16, nan(f16), -1e0);
16620 try testArgs(f16, nan(f16), -1e-1);
16621 try testArgs(f16, nan(f16), -fmin(f16));
16622 try testArgs(f16, nan(f16), -tmin(f16));
16623 try testArgs(f16, nan(f16), -0.0);
16624 try testArgs(f16, nan(f16), 0.0);
16625 try testArgs(f16, nan(f16), tmin(f16));
16626 try testArgs(f16, nan(f16), fmin(f16));
16627 try testArgs(f16, nan(f16), 1e-1);
16628 try testArgs(f16, nan(f16), 1e0);
16629 try testArgs(f16, nan(f16), 1e1);
16630 try testArgs(f16, nan(f16), fmax(f16));
16631 try testArgs(f16, nan(f16), inf(f16));
16632 try testArgs(f16, nan(f16), nan(f16));
16633
16634 try testArgs(f32, -nan(f32), -nan(f32));
16635 try testArgs(f32, -nan(f32), -inf(f32));
16636 try testArgs(f32, -nan(f32), -fmax(f32));
16637 try testArgs(f32, -nan(f32), -1e1);
16638 try testArgs(f32, -nan(f32), -1e0);
16639 try testArgs(f32, -nan(f32), -1e-1);
16640 try testArgs(f32, -nan(f32), -fmin(f32));
16641 try testArgs(f32, -nan(f32), -tmin(f32));
16642 try testArgs(f32, -nan(f32), -0.0);
16643 try testArgs(f32, -nan(f32), 0.0);
16644 try testArgs(f32, -nan(f32), tmin(f32));
16645 try testArgs(f32, -nan(f32), fmin(f32));
16646 try testArgs(f32, -nan(f32), 1e-1);
16647 try testArgs(f32, -nan(f32), 1e0);
16648 try testArgs(f32, -nan(f32), 1e1);
16649 try testArgs(f32, -nan(f32), fmax(f32));
16650 try testArgs(f32, -nan(f32), inf(f32));
16651 try testArgs(f32, -nan(f32), nan(f32));
16652
16653 try testArgs(f32, -inf(f32), -nan(f32));
16654 try testArgs(f32, -inf(f32), -inf(f32));
16655 try testArgs(f32, -inf(f32), -fmax(f32));
16656 try testArgs(f32, -inf(f32), -1e1);
16657 try testArgs(f32, -inf(f32), -1e0);
16658 try testArgs(f32, -inf(f32), -1e-1);
16659 try testArgs(f32, -inf(f32), -fmin(f32));
16660 try testArgs(f32, -inf(f32), -tmin(f32));
16661 try testArgs(f32, -inf(f32), -0.0);
16662 try testArgs(f32, -inf(f32), 0.0);
16663 try testArgs(f32, -inf(f32), tmin(f32));
16664 try testArgs(f32, -inf(f32), fmin(f32));
16665 try testArgs(f32, -inf(f32), 1e-1);
16666 try testArgs(f32, -inf(f32), 1e0);
16667 try testArgs(f32, -inf(f32), 1e1);
16668 try testArgs(f32, -inf(f32), fmax(f32));
16669 try testArgs(f32, -inf(f32), inf(f32));
16670 try testArgs(f32, -inf(f32), nan(f32));
16671
16672 try testArgs(f32, -fmax(f32), -nan(f32));
16673 try testArgs(f32, -fmax(f32), -inf(f32));
16674 try testArgs(f32, -fmax(f32), -fmax(f32));
16675 try testArgs(f32, -fmax(f32), -1e1);
16676 try testArgs(f32, -fmax(f32), -1e0);
16677 try testArgs(f32, -fmax(f32), -1e-1);
16678 try testArgs(f32, -fmax(f32), -fmin(f32));
16679 try testArgs(f32, -fmax(f32), -tmin(f32));
16680 try testArgs(f32, -fmax(f32), -0.0);
16681 try testArgs(f32, -fmax(f32), 0.0);
16682 try testArgs(f32, -fmax(f32), tmin(f32));
16683 try testArgs(f32, -fmax(f32), fmin(f32));
16684 try testArgs(f32, -fmax(f32), 1e-1);
16685 try testArgs(f32, -fmax(f32), 1e0);
16686 try testArgs(f32, -fmax(f32), 1e1);
16687 try testArgs(f32, -fmax(f32), fmax(f32));
16688 try testArgs(f32, -fmax(f32), inf(f32));
16689 try testArgs(f32, -fmax(f32), nan(f32));
16690
16691 try testArgs(f32, -1e1, -nan(f32));
16692 try testArgs(f32, -1e1, -inf(f32));
16693 try testArgs(f32, -1e1, -fmax(f32));
16694 try testArgs(f32, -1e1, -1e1);
16695 try testArgs(f32, -1e1, -1e0);
16696 try testArgs(f32, -1e1, -1e-1);
16697 try testArgs(f32, -1e1, -fmin(f32));
16698 try testArgs(f32, -1e1, -tmin(f32));
16699 try testArgs(f32, -1e1, -0.0);
16700 try testArgs(f32, -1e1, 0.0);
16701 try testArgs(f32, -1e1, tmin(f32));
16702 try testArgs(f32, -1e1, fmin(f32));
16703 try testArgs(f32, -1e1, 1e-1);
16704 try testArgs(f32, -1e1, 1e0);
16705 try testArgs(f32, -1e1, 1e1);
16706 try testArgs(f32, -1e1, fmax(f32));
16707 try testArgs(f32, -1e1, inf(f32));
16708 try testArgs(f32, -1e1, nan(f32));
16709
16710 try testArgs(f32, -1e0, -nan(f32));
16711 try testArgs(f32, -1e0, -inf(f32));
16712 try testArgs(f32, -1e0, -fmax(f32));
16713 try testArgs(f32, -1e0, -1e1);
16714 try testArgs(f32, -1e0, -1e0);
16715 try testArgs(f32, -1e0, -1e-1);
16716 try testArgs(f32, -1e0, -fmin(f32));
16717 try testArgs(f32, -1e0, -tmin(f32));
16718 try testArgs(f32, -1e0, -0.0);
16719 try testArgs(f32, -1e0, 0.0);
16720 try testArgs(f32, -1e0, tmin(f32));
16721 try testArgs(f32, -1e0, fmin(f32));
16722 try testArgs(f32, -1e0, 1e-1);
16723 try testArgs(f32, -1e0, 1e0);
16724 try testArgs(f32, -1e0, 1e1);
16725 try testArgs(f32, -1e0, fmax(f32));
16726 try testArgs(f32, -1e0, inf(f32));
16727 try testArgs(f32, -1e0, nan(f32));
16728
16729 try testArgs(f32, -1e-1, -nan(f32));
16730 try testArgs(f32, -1e-1, -inf(f32));
16731 try testArgs(f32, -1e-1, -fmax(f32));
16732 try testArgs(f32, -1e-1, -1e1);
16733 try testArgs(f32, -1e-1, -1e0);
16734 try testArgs(f32, -1e-1, -1e-1);
16735 try testArgs(f32, -1e-1, -fmin(f32));
16736 try testArgs(f32, -1e-1, -tmin(f32));
16737 try testArgs(f32, -1e-1, -0.0);
16738 try testArgs(f32, -1e-1, 0.0);
16739 try testArgs(f32, -1e-1, tmin(f32));
16740 try testArgs(f32, -1e-1, fmin(f32));
16741 try testArgs(f32, -1e-1, 1e-1);
16742 try testArgs(f32, -1e-1, 1e0);
16743 try testArgs(f32, -1e-1, 1e1);
16744 try testArgs(f32, -1e-1, fmax(f32));
16745 try testArgs(f32, -1e-1, inf(f32));
16746 try testArgs(f32, -1e-1, nan(f32));
16747
16748 try testArgs(f32, -fmin(f32), -nan(f32));
16749 try testArgs(f32, -fmin(f32), -inf(f32));
16750 try testArgs(f32, -fmin(f32), -fmax(f32));
16751 try testArgs(f32, -fmin(f32), -1e1);
16752 try testArgs(f32, -fmin(f32), -1e0);
16753 try testArgs(f32, -fmin(f32), -1e-1);
16754 try testArgs(f32, -fmin(f32), -fmin(f32));
16755 try testArgs(f32, -fmin(f32), -tmin(f32));
16756 try testArgs(f32, -fmin(f32), -0.0);
16757 try testArgs(f32, -fmin(f32), 0.0);
16758 try testArgs(f32, -fmin(f32), tmin(f32));
16759 try testArgs(f32, -fmin(f32), fmin(f32));
16760 try testArgs(f32, -fmin(f32), 1e-1);
16761 try testArgs(f32, -fmin(f32), 1e0);
16762 try testArgs(f32, -fmin(f32), 1e1);
16763 try testArgs(f32, -fmin(f32), fmax(f32));
16764 try testArgs(f32, -fmin(f32), inf(f32));
16765 try testArgs(f32, -fmin(f32), nan(f32));
16766
16767 try testArgs(f32, -tmin(f32), -nan(f32));
16768 try testArgs(f32, -tmin(f32), -inf(f32));
16769 try testArgs(f32, -tmin(f32), -fmax(f32));
16770 try testArgs(f32, -tmin(f32), -1e1);
16771 try testArgs(f32, -tmin(f32), -1e0);
16772 try testArgs(f32, -tmin(f32), -1e-1);
16773 try testArgs(f32, -tmin(f32), -fmin(f32));
16774 try testArgs(f32, -tmin(f32), -tmin(f32));
16775 try testArgs(f32, -tmin(f32), -0.0);
16776 try testArgs(f32, -tmin(f32), 0.0);
16777 try testArgs(f32, -tmin(f32), tmin(f32));
16778 try testArgs(f32, -tmin(f32), fmin(f32));
16779 try testArgs(f32, -tmin(f32), 1e-1);
16780 try testArgs(f32, -tmin(f32), 1e0);
16781 try testArgs(f32, -tmin(f32), 1e1);
16782 try testArgs(f32, -tmin(f32), fmax(f32));
16783 try testArgs(f32, -tmin(f32), inf(f32));
16784 try testArgs(f32, -tmin(f32), nan(f32));
16785
16786 try testArgs(f32, -0.0, -nan(f32));
16787 try testArgs(f32, -0.0, -inf(f32));
16788 try testArgs(f32, -0.0, -fmax(f32));
16789 try testArgs(f32, -0.0, -1e1);
16790 try testArgs(f32, -0.0, -1e0);
16791 try testArgs(f32, -0.0, -1e-1);
16792 try testArgs(f32, -0.0, -fmin(f32));
16793 try testArgs(f32, -0.0, -tmin(f32));
16794 try testArgs(f32, -0.0, -0.0);
16795 try testArgs(f32, -0.0, 0.0);
16796 try testArgs(f32, -0.0, tmin(f32));
16797 try testArgs(f32, -0.0, fmin(f32));
16798 try testArgs(f32, -0.0, 1e-1);
16799 try testArgs(f32, -0.0, 1e0);
16800 try testArgs(f32, -0.0, 1e1);
16801 try testArgs(f32, -0.0, fmax(f32));
16802 try testArgs(f32, -0.0, inf(f32));
16803 try testArgs(f32, -0.0, nan(f32));
16804
16805 try testArgs(f32, 0.0, -nan(f32));
16806 try testArgs(f32, 0.0, -inf(f32));
16807 try testArgs(f32, 0.0, -fmax(f32));
16808 try testArgs(f32, 0.0, -1e1);
16809 try testArgs(f32, 0.0, -1e0);
16810 try testArgs(f32, 0.0, -1e-1);
16811 try testArgs(f32, 0.0, -fmin(f32));
16812 try testArgs(f32, 0.0, -tmin(f32));
16813 try testArgs(f32, 0.0, -0.0);
16814 try testArgs(f32, 0.0, 0.0);
16815 try testArgs(f32, 0.0, tmin(f32));
16816 try testArgs(f32, 0.0, fmin(f32));
16817 try testArgs(f32, 0.0, 1e-1);
16818 try testArgs(f32, 0.0, 1e0);
16819 try testArgs(f32, 0.0, 1e1);
16820 try testArgs(f32, 0.0, fmax(f32));
16821 try testArgs(f32, 0.0, inf(f32));
16822 try testArgs(f32, 0.0, nan(f32));
16823
16824 try testArgs(f32, tmin(f32), -nan(f32));
16825 try testArgs(f32, tmin(f32), -inf(f32));
16826 try testArgs(f32, tmin(f32), -fmax(f32));
16827 try testArgs(f32, tmin(f32), -1e1);
16828 try testArgs(f32, tmin(f32), -1e0);
16829 try testArgs(f32, tmin(f32), -1e-1);
16830 try testArgs(f32, tmin(f32), -fmin(f32));
16831 try testArgs(f32, tmin(f32), -tmin(f32));
16832 try testArgs(f32, tmin(f32), -0.0);
16833 try testArgs(f32, tmin(f32), 0.0);
16834 try testArgs(f32, tmin(f32), tmin(f32));
16835 try testArgs(f32, tmin(f32), fmin(f32));
16836 try testArgs(f32, tmin(f32), 1e-1);
16837 try testArgs(f32, tmin(f32), 1e0);
16838 try testArgs(f32, tmin(f32), 1e1);
16839 try testArgs(f32, tmin(f32), fmax(f32));
16840 try testArgs(f32, tmin(f32), inf(f32));
16841 try testArgs(f32, tmin(f32), nan(f32));
16842
16843 try testArgs(f32, fmin(f32), -nan(f32));
16844 try testArgs(f32, fmin(f32), -inf(f32));
16845 try testArgs(f32, fmin(f32), -fmax(f32));
16846 try testArgs(f32, fmin(f32), -1e1);
16847 try testArgs(f32, fmin(f32), -1e0);
16848 try testArgs(f32, fmin(f32), -1e-1);
16849 try testArgs(f32, fmin(f32), -fmin(f32));
16850 try testArgs(f32, fmin(f32), -tmin(f32));
16851 try testArgs(f32, fmin(f32), -0.0);
16852 try testArgs(f32, fmin(f32), 0.0);
16853 try testArgs(f32, fmin(f32), tmin(f32));
16854 try testArgs(f32, fmin(f32), fmin(f32));
16855 try testArgs(f32, fmin(f32), 1e-1);
16856 try testArgs(f32, fmin(f32), 1e0);
16857 try testArgs(f32, fmin(f32), 1e1);
16858 try testArgs(f32, fmin(f32), fmax(f32));
16859 try testArgs(f32, fmin(f32), inf(f32));
16860 try testArgs(f32, fmin(f32), nan(f32));
16861
16862 try testArgs(f32, 1e-1, -nan(f32));
16863 try testArgs(f32, 1e-1, -inf(f32));
16864 try testArgs(f32, 1e-1, -fmax(f32));
16865 try testArgs(f32, 1e-1, -1e1);
16866 try testArgs(f32, 1e-1, -1e0);
16867 try testArgs(f32, 1e-1, -1e-1);
16868 try testArgs(f32, 1e-1, -fmin(f32));
16869 try testArgs(f32, 1e-1, -tmin(f32));
16870 try testArgs(f32, 1e-1, -0.0);
16871 try testArgs(f32, 1e-1, 0.0);
16872 try testArgs(f32, 1e-1, tmin(f32));
16873 try testArgs(f32, 1e-1, fmin(f32));
16874 try testArgs(f32, 1e-1, 1e-1);
16875 try testArgs(f32, 1e-1, 1e0);
16876 try testArgs(f32, 1e-1, 1e1);
16877 try testArgs(f32, 1e-1, fmax(f32));
16878 try testArgs(f32, 1e-1, inf(f32));
16879 try testArgs(f32, 1e-1, nan(f32));
16880
16881 try testArgs(f32, 1e0, -nan(f32));
16882 try testArgs(f32, 1e0, -inf(f32));
16883 try testArgs(f32, 1e0, -fmax(f32));
16884 try testArgs(f32, 1e0, -1e1);
16885 try testArgs(f32, 1e0, -1e0);
16886 try testArgs(f32, 1e0, -1e-1);
16887 try testArgs(f32, 1e0, -fmin(f32));
16888 try testArgs(f32, 1e0, -tmin(f32));
16889 try testArgs(f32, 1e0, -0.0);
16890 try testArgs(f32, 1e0, 0.0);
16891 try testArgs(f32, 1e0, tmin(f32));
16892 try testArgs(f32, 1e0, fmin(f32));
16893 try testArgs(f32, 1e0, 1e-1);
16894 try testArgs(f32, 1e0, 1e0);
16895 try testArgs(f32, 1e0, 1e1);
16896 try testArgs(f32, 1e0, fmax(f32));
16897 try testArgs(f32, 1e0, inf(f32));
16898 try testArgs(f32, 1e0, nan(f32));
16899
16900 try testArgs(f32, 1e1, -nan(f32));
16901 try testArgs(f32, 1e1, -inf(f32));
16902 try testArgs(f32, 1e1, -fmax(f32));
16903 try testArgs(f32, 1e1, -1e1);
16904 try testArgs(f32, 1e1, -1e0);
16905 try testArgs(f32, 1e1, -1e-1);
16906 try testArgs(f32, 1e1, -fmin(f32));
16907 try testArgs(f32, 1e1, -tmin(f32));
16908 try testArgs(f32, 1e1, -0.0);
16909 try testArgs(f32, 1e1, 0.0);
16910 try testArgs(f32, 1e1, tmin(f32));
16911 try testArgs(f32, 1e1, fmin(f32));
16912 try testArgs(f32, 1e1, 1e-1);
16913 try testArgs(f32, 1e1, 1e0);
16914 try testArgs(f32, 1e1, 1e1);
16915 try testArgs(f32, 1e1, fmax(f32));
16916 try testArgs(f32, 1e1, inf(f32));
16917 try testArgs(f32, 1e1, nan(f32));
16918
16919 try testArgs(f32, fmax(f32), -nan(f32));
16920 try testArgs(f32, fmax(f32), -inf(f32));
16921 try testArgs(f32, fmax(f32), -fmax(f32));
16922 try testArgs(f32, fmax(f32), -1e1);
16923 try testArgs(f32, fmax(f32), -1e0);
16924 try testArgs(f32, fmax(f32), -1e-1);
16925 try testArgs(f32, fmax(f32), -fmin(f32));
16926 try testArgs(f32, fmax(f32), -tmin(f32));
16927 try testArgs(f32, fmax(f32), -0.0);
16928 try testArgs(f32, fmax(f32), 0.0);
16929 try testArgs(f32, fmax(f32), tmin(f32));
16930 try testArgs(f32, fmax(f32), fmin(f32));
16931 try testArgs(f32, fmax(f32), 1e-1);
16932 try testArgs(f32, fmax(f32), 1e0);
16933 try testArgs(f32, fmax(f32), 1e1);
16934 try testArgs(f32, fmax(f32), fmax(f32));
16935 try testArgs(f32, fmax(f32), inf(f32));
16936 try testArgs(f32, fmax(f32), nan(f32));
16937
16938 try testArgs(f32, inf(f32), -nan(f32));
16939 try testArgs(f32, inf(f32), -inf(f32));
16940 try testArgs(f32, inf(f32), -fmax(f32));
16941 try testArgs(f32, inf(f32), -1e1);
16942 try testArgs(f32, inf(f32), -1e0);
16943 try testArgs(f32, inf(f32), -1e-1);
16944 try testArgs(f32, inf(f32), -fmin(f32));
16945 try testArgs(f32, inf(f32), -tmin(f32));
16946 try testArgs(f32, inf(f32), -0.0);
16947 try testArgs(f32, inf(f32), 0.0);
16948 try testArgs(f32, inf(f32), tmin(f32));
16949 try testArgs(f32, inf(f32), fmin(f32));
16950 try testArgs(f32, inf(f32), 1e-1);
16951 try testArgs(f32, inf(f32), 1e0);
16952 try testArgs(f32, inf(f32), 1e1);
16953 try testArgs(f32, inf(f32), fmax(f32));
16954 try testArgs(f32, inf(f32), inf(f32));
16955 try testArgs(f32, inf(f32), nan(f32));
16956
16957 try testArgs(f32, nan(f32), -nan(f32));
16958 try testArgs(f32, nan(f32), -inf(f32));
16959 try testArgs(f32, nan(f32), -fmax(f32));
16960 try testArgs(f32, nan(f32), -1e1);
16961 try testArgs(f32, nan(f32), -1e0);
16962 try testArgs(f32, nan(f32), -1e-1);
16963 try testArgs(f32, nan(f32), -fmin(f32));
16964 try testArgs(f32, nan(f32), -tmin(f32));
16965 try testArgs(f32, nan(f32), -0.0);
16966 try testArgs(f32, nan(f32), 0.0);
16967 try testArgs(f32, nan(f32), tmin(f32));
16968 try testArgs(f32, nan(f32), fmin(f32));
16969 try testArgs(f32, nan(f32), 1e-1);
16970 try testArgs(f32, nan(f32), 1e0);
16971 try testArgs(f32, nan(f32), 1e1);
16972 try testArgs(f32, nan(f32), fmax(f32));
16973 try testArgs(f32, nan(f32), inf(f32));
16974 try testArgs(f32, nan(f32), nan(f32));
16975
16976 try testArgs(f64, -nan(f64), -nan(f64));
16977 try testArgs(f64, -nan(f64), -inf(f64));
16978 try testArgs(f64, -nan(f64), -fmax(f64));
16979 try testArgs(f64, -nan(f64), -1e1);
16980 try testArgs(f64, -nan(f64), -1e0);
16981 try testArgs(f64, -nan(f64), -1e-1);
16982 try testArgs(f64, -nan(f64), -fmin(f64));
16983 try testArgs(f64, -nan(f64), -tmin(f64));
16984 try testArgs(f64, -nan(f64), -0.0);
16985 try testArgs(f64, -nan(f64), 0.0);
16986 try testArgs(f64, -nan(f64), tmin(f64));
16987 try testArgs(f64, -nan(f64), fmin(f64));
16988 try testArgs(f64, -nan(f64), 1e-1);
16989 try testArgs(f64, -nan(f64), 1e0);
16990 try testArgs(f64, -nan(f64), 1e1);
16991 try testArgs(f64, -nan(f64), fmax(f64));
16992 try testArgs(f64, -nan(f64), inf(f64));
16993 try testArgs(f64, -nan(f64), nan(f64));
16994
16995 try testArgs(f64, -inf(f64), -nan(f64));
16996 try testArgs(f64, -inf(f64), -inf(f64));
16997 try testArgs(f64, -inf(f64), -fmax(f64));
16998 try testArgs(f64, -inf(f64), -1e1);
16999 try testArgs(f64, -inf(f64), -1e0);
17000 try testArgs(f64, -inf(f64), -1e-1);
17001 try testArgs(f64, -inf(f64), -fmin(f64));
17002 try testArgs(f64, -inf(f64), -tmin(f64));
17003 try testArgs(f64, -inf(f64), -0.0);
17004 try testArgs(f64, -inf(f64), 0.0);
17005 try testArgs(f64, -inf(f64), tmin(f64));
17006 try testArgs(f64, -inf(f64), fmin(f64));
17007 try testArgs(f64, -inf(f64), 1e-1);
17008 try testArgs(f64, -inf(f64), 1e0);
17009 try testArgs(f64, -inf(f64), 1e1);
17010 try testArgs(f64, -inf(f64), fmax(f64));
17011 try testArgs(f64, -inf(f64), inf(f64));
17012 try testArgs(f64, -inf(f64), nan(f64));
17013
17014 try testArgs(f64, -fmax(f64), -nan(f64));
17015 try testArgs(f64, -fmax(f64), -inf(f64));
17016 try testArgs(f64, -fmax(f64), -fmax(f64));
17017 try testArgs(f64, -fmax(f64), -1e1);
17018 try testArgs(f64, -fmax(f64), -1e0);
17019 try testArgs(f64, -fmax(f64), -1e-1);
17020 try testArgs(f64, -fmax(f64), -fmin(f64));
17021 try testArgs(f64, -fmax(f64), -tmin(f64));
17022 try testArgs(f64, -fmax(f64), -0.0);
17023 try testArgs(f64, -fmax(f64), 0.0);
17024 try testArgs(f64, -fmax(f64), tmin(f64));
17025 try testArgs(f64, -fmax(f64), fmin(f64));
17026 try testArgs(f64, -fmax(f64), 1e-1);
17027 try testArgs(f64, -fmax(f64), 1e0);
17028 try testArgs(f64, -fmax(f64), 1e1);
17029 try testArgs(f64, -fmax(f64), fmax(f64));
17030 try testArgs(f64, -fmax(f64), inf(f64));
17031 try testArgs(f64, -fmax(f64), nan(f64));
17032
17033 try testArgs(f64, -1e1, -nan(f64));
17034 try testArgs(f64, -1e1, -inf(f64));
17035 try testArgs(f64, -1e1, -fmax(f64));
17036 try testArgs(f64, -1e1, -1e1);
17037 try testArgs(f64, -1e1, -1e0);
17038 try testArgs(f64, -1e1, -1e-1);
17039 try testArgs(f64, -1e1, -fmin(f64));
17040 try testArgs(f64, -1e1, -tmin(f64));
17041 try testArgs(f64, -1e1, -0.0);
17042 try testArgs(f64, -1e1, 0.0);
17043 try testArgs(f64, -1e1, tmin(f64));
17044 try testArgs(f64, -1e1, fmin(f64));
17045 try testArgs(f64, -1e1, 1e-1);
17046 try testArgs(f64, -1e1, 1e0);
17047 try testArgs(f64, -1e1, 1e1);
17048 try testArgs(f64, -1e1, fmax(f64));
17049 try testArgs(f64, -1e1, inf(f64));
17050 try testArgs(f64, -1e1, nan(f64));
17051
17052 try testArgs(f64, -1e0, -nan(f64));
17053 try testArgs(f64, -1e0, -inf(f64));
17054 try testArgs(f64, -1e0, -fmax(f64));
17055 try testArgs(f64, -1e0, -1e1);
17056 try testArgs(f64, -1e0, -1e0);
17057 try testArgs(f64, -1e0, -1e-1);
17058 try testArgs(f64, -1e0, -fmin(f64));
17059 try testArgs(f64, -1e0, -tmin(f64));
17060 try testArgs(f64, -1e0, -0.0);
17061 try testArgs(f64, -1e0, 0.0);
17062 try testArgs(f64, -1e0, tmin(f64));
17063 try testArgs(f64, -1e0, fmin(f64));
17064 try testArgs(f64, -1e0, 1e-1);
17065 try testArgs(f64, -1e0, 1e0);
17066 try testArgs(f64, -1e0, 1e1);
17067 try testArgs(f64, -1e0, fmax(f64));
17068 try testArgs(f64, -1e0, inf(f64));
17069 try testArgs(f64, -1e0, nan(f64));
17070
17071 try testArgs(f64, -1e-1, -nan(f64));
17072 try testArgs(f64, -1e-1, -inf(f64));
17073 try testArgs(f64, -1e-1, -fmax(f64));
17074 try testArgs(f64, -1e-1, -1e1);
17075 try testArgs(f64, -1e-1, -1e0);
17076 try testArgs(f64, -1e-1, -1e-1);
17077 try testArgs(f64, -1e-1, -fmin(f64));
17078 try testArgs(f64, -1e-1, -tmin(f64));
17079 try testArgs(f64, -1e-1, -0.0);
17080 try testArgs(f64, -1e-1, 0.0);
17081 try testArgs(f64, -1e-1, tmin(f64));
17082 try testArgs(f64, -1e-1, fmin(f64));
17083 try testArgs(f64, -1e-1, 1e-1);
17084 try testArgs(f64, -1e-1, 1e0);
17085 try testArgs(f64, -1e-1, 1e1);
17086 try testArgs(f64, -1e-1, fmax(f64));
17087 try testArgs(f64, -1e-1, inf(f64));
17088 try testArgs(f64, -1e-1, nan(f64));
17089
17090 try testArgs(f64, -fmin(f64), -nan(f64));
17091 try testArgs(f64, -fmin(f64), -inf(f64));
17092 try testArgs(f64, -fmin(f64), -fmax(f64));
17093 try testArgs(f64, -fmin(f64), -1e1);
17094 try testArgs(f64, -fmin(f64), -1e0);
17095 try testArgs(f64, -fmin(f64), -1e-1);
17096 try testArgs(f64, -fmin(f64), -fmin(f64));
17097 try testArgs(f64, -fmin(f64), -tmin(f64));
17098 try testArgs(f64, -fmin(f64), -0.0);
17099 try testArgs(f64, -fmin(f64), 0.0);
17100 try testArgs(f64, -fmin(f64), tmin(f64));
17101 try testArgs(f64, -fmin(f64), fmin(f64));
17102 try testArgs(f64, -fmin(f64), 1e-1);
17103 try testArgs(f64, -fmin(f64), 1e0);
17104 try testArgs(f64, -fmin(f64), 1e1);
17105 try testArgs(f64, -fmin(f64), fmax(f64));
17106 try testArgs(f64, -fmin(f64), inf(f64));
17107 try testArgs(f64, -fmin(f64), nan(f64));
17108
17109 try testArgs(f64, -tmin(f64), -nan(f64));
17110 try testArgs(f64, -tmin(f64), -inf(f64));
17111 try testArgs(f64, -tmin(f64), -fmax(f64));
17112 try testArgs(f64, -tmin(f64), -1e1);
17113 try testArgs(f64, -tmin(f64), -1e0);
17114 try testArgs(f64, -tmin(f64), -1e-1);
17115 try testArgs(f64, -tmin(f64), -fmin(f64));
17116 try testArgs(f64, -tmin(f64), -tmin(f64));
17117 try testArgs(f64, -tmin(f64), -0.0);
17118 try testArgs(f64, -tmin(f64), 0.0);
17119 try testArgs(f64, -tmin(f64), tmin(f64));
17120 try testArgs(f64, -tmin(f64), fmin(f64));
17121 try testArgs(f64, -tmin(f64), 1e-1);
17122 try testArgs(f64, -tmin(f64), 1e0);
17123 try testArgs(f64, -tmin(f64), 1e1);
17124 try testArgs(f64, -tmin(f64), fmax(f64));
17125 try testArgs(f64, -tmin(f64), inf(f64));
17126 try testArgs(f64, -tmin(f64), nan(f64));
17127
17128 try testArgs(f64, -0.0, -nan(f64));
17129 try testArgs(f64, -0.0, -inf(f64));
17130 try testArgs(f64, -0.0, -fmax(f64));
17131 try testArgs(f64, -0.0, -1e1);
17132 try testArgs(f64, -0.0, -1e0);
17133 try testArgs(f64, -0.0, -1e-1);
17134 try testArgs(f64, -0.0, -fmin(f64));
17135 try testArgs(f64, -0.0, -tmin(f64));
17136 try testArgs(f64, -0.0, -0.0);
17137 try testArgs(f64, -0.0, 0.0);
17138 try testArgs(f64, -0.0, tmin(f64));
17139 try testArgs(f64, -0.0, fmin(f64));
17140 try testArgs(f64, -0.0, 1e-1);
17141 try testArgs(f64, -0.0, 1e0);
17142 try testArgs(f64, -0.0, 1e1);
17143 try testArgs(f64, -0.0, fmax(f64));
17144 try testArgs(f64, -0.0, inf(f64));
17145 try testArgs(f64, -0.0, nan(f64));
17146
17147 try testArgs(f64, 0.0, -nan(f64));
17148 try testArgs(f64, 0.0, -inf(f64));
17149 try testArgs(f64, 0.0, -fmax(f64));
17150 try testArgs(f64, 0.0, -1e1);
17151 try testArgs(f64, 0.0, -1e0);
17152 try testArgs(f64, 0.0, -1e-1);
17153 try testArgs(f64, 0.0, -fmin(f64));
17154 try testArgs(f64, 0.0, -tmin(f64));
17155 try testArgs(f64, 0.0, -0.0);
17156 try testArgs(f64, 0.0, 0.0);
17157 try testArgs(f64, 0.0, tmin(f64));
17158 try testArgs(f64, 0.0, fmin(f64));
17159 try testArgs(f64, 0.0, 1e-1);
17160 try testArgs(f64, 0.0, 1e0);
17161 try testArgs(f64, 0.0, 1e1);
17162 try testArgs(f64, 0.0, fmax(f64));
17163 try testArgs(f64, 0.0, inf(f64));
17164 try testArgs(f64, 0.0, nan(f64));
17165
17166 try testArgs(f64, tmin(f64), -nan(f64));
17167 try testArgs(f64, tmin(f64), -inf(f64));
17168 try testArgs(f64, tmin(f64), -fmax(f64));
17169 try testArgs(f64, tmin(f64), -1e1);
17170 try testArgs(f64, tmin(f64), -1e0);
17171 try testArgs(f64, tmin(f64), -1e-1);
17172 try testArgs(f64, tmin(f64), -fmin(f64));
17173 try testArgs(f64, tmin(f64), -tmin(f64));
17174 try testArgs(f64, tmin(f64), -0.0);
17175 try testArgs(f64, tmin(f64), 0.0);
17176 try testArgs(f64, tmin(f64), tmin(f64));
17177 try testArgs(f64, tmin(f64), fmin(f64));
17178 try testArgs(f64, tmin(f64), 1e-1);
17179 try testArgs(f64, tmin(f64), 1e0);
17180 try testArgs(f64, tmin(f64), 1e1);
17181 try testArgs(f64, tmin(f64), fmax(f64));
17182 try testArgs(f64, tmin(f64), inf(f64));
17183 try testArgs(f64, tmin(f64), nan(f64));
17184
17185 try testArgs(f64, fmin(f64), -nan(f64));
17186 try testArgs(f64, fmin(f64), -inf(f64));
17187 try testArgs(f64, fmin(f64), -fmax(f64));
17188 try testArgs(f64, fmin(f64), -1e1);
17189 try testArgs(f64, fmin(f64), -1e0);
17190 try testArgs(f64, fmin(f64), -1e-1);
17191 try testArgs(f64, fmin(f64), -fmin(f64));
17192 try testArgs(f64, fmin(f64), -tmin(f64));
17193 try testArgs(f64, fmin(f64), -0.0);
17194 try testArgs(f64, fmin(f64), 0.0);
17195 try testArgs(f64, fmin(f64), tmin(f64));
17196 try testArgs(f64, fmin(f64), fmin(f64));
17197 try testArgs(f64, fmin(f64), 1e-1);
17198 try testArgs(f64, fmin(f64), 1e0);
17199 try testArgs(f64, fmin(f64), 1e1);
17200 try testArgs(f64, fmin(f64), fmax(f64));
17201 try testArgs(f64, fmin(f64), inf(f64));
17202 try testArgs(f64, fmin(f64), nan(f64));
17203
17204 try testArgs(f64, 1e-1, -nan(f64));
17205 try testArgs(f64, 1e-1, -inf(f64));
17206 try testArgs(f64, 1e-1, -fmax(f64));
17207 try testArgs(f64, 1e-1, -1e1);
17208 try testArgs(f64, 1e-1, -1e0);
17209 try testArgs(f64, 1e-1, -1e-1);
17210 try testArgs(f64, 1e-1, -fmin(f64));
17211 try testArgs(f64, 1e-1, -tmin(f64));
17212 try testArgs(f64, 1e-1, -0.0);
17213 try testArgs(f64, 1e-1, 0.0);
17214 try testArgs(f64, 1e-1, tmin(f64));
17215 try testArgs(f64, 1e-1, fmin(f64));
17216 try testArgs(f64, 1e-1, 1e-1);
17217 try testArgs(f64, 1e-1, 1e0);
17218 try testArgs(f64, 1e-1, 1e1);
17219 try testArgs(f64, 1e-1, fmax(f64));
17220 try testArgs(f64, 1e-1, inf(f64));
17221 try testArgs(f64, 1e-1, nan(f64));
17222
17223 try testArgs(f64, 1e0, -nan(f64));
17224 try testArgs(f64, 1e0, -inf(f64));
17225 try testArgs(f64, 1e0, -fmax(f64));
17226 try testArgs(f64, 1e0, -1e1);
17227 try testArgs(f64, 1e0, -1e0);
17228 try testArgs(f64, 1e0, -1e-1);
17229 try testArgs(f64, 1e0, -fmin(f64));
17230 try testArgs(f64, 1e0, -tmin(f64));
17231 try testArgs(f64, 1e0, -0.0);
17232 try testArgs(f64, 1e0, 0.0);
17233 try testArgs(f64, 1e0, tmin(f64));
17234 try testArgs(f64, 1e0, fmin(f64));
17235 try testArgs(f64, 1e0, 1e-1);
17236 try testArgs(f64, 1e0, 1e0);
17237 try testArgs(f64, 1e0, 1e1);
17238 try testArgs(f64, 1e0, fmax(f64));
17239 try testArgs(f64, 1e0, inf(f64));
17240 try testArgs(f64, 1e0, nan(f64));
17241
17242 try testArgs(f64, 1e1, -nan(f64));
17243 try testArgs(f64, 1e1, -inf(f64));
17244 try testArgs(f64, 1e1, -fmax(f64));
17245 try testArgs(f64, 1e1, -1e1);
17246 try testArgs(f64, 1e1, -1e0);
17247 try testArgs(f64, 1e1, -1e-1);
17248 try testArgs(f64, 1e1, -fmin(f64));
17249 try testArgs(f64, 1e1, -tmin(f64));
17250 try testArgs(f64, 1e1, -0.0);
17251 try testArgs(f64, 1e1, 0.0);
17252 try testArgs(f64, 1e1, tmin(f64));
17253 try testArgs(f64, 1e1, fmin(f64));
17254 try testArgs(f64, 1e1, 1e-1);
17255 try testArgs(f64, 1e1, 1e0);
17256 try testArgs(f64, 1e1, 1e1);
17257 try testArgs(f64, 1e1, fmax(f64));
17258 try testArgs(f64, 1e1, inf(f64));
17259 try testArgs(f64, 1e1, nan(f64));
17260
17261 try testArgs(f64, fmax(f64), -nan(f64));
17262 try testArgs(f64, fmax(f64), -inf(f64));
17263 try testArgs(f64, fmax(f64), -fmax(f64));
17264 try testArgs(f64, fmax(f64), -1e1);
17265 try testArgs(f64, fmax(f64), -1e0);
17266 try testArgs(f64, fmax(f64), -1e-1);
17267 try testArgs(f64, fmax(f64), -fmin(f64));
17268 try testArgs(f64, fmax(f64), -tmin(f64));
17269 try testArgs(f64, fmax(f64), -0.0);
17270 try testArgs(f64, fmax(f64), 0.0);
17271 try testArgs(f64, fmax(f64), tmin(f64));
17272 try testArgs(f64, fmax(f64), fmin(f64));
17273 try testArgs(f64, fmax(f64), 1e-1);
17274 try testArgs(f64, fmax(f64), 1e0);
17275 try testArgs(f64, fmax(f64), 1e1);
17276 try testArgs(f64, fmax(f64), fmax(f64));
17277 try testArgs(f64, fmax(f64), inf(f64));
17278 try testArgs(f64, fmax(f64), nan(f64));
17279
17280 try testArgs(f64, inf(f64), -nan(f64));
17281 try testArgs(f64, inf(f64), -inf(f64));
17282 try testArgs(f64, inf(f64), -fmax(f64));
17283 try testArgs(f64, inf(f64), -1e1);
17284 try testArgs(f64, inf(f64), -1e0);
17285 try testArgs(f64, inf(f64), -1e-1);
17286 try testArgs(f64, inf(f64), -fmin(f64));
17287 try testArgs(f64, inf(f64), -tmin(f64));
17288 try testArgs(f64, inf(f64), -0.0);
17289 try testArgs(f64, inf(f64), 0.0);
17290 try testArgs(f64, inf(f64), tmin(f64));
17291 try testArgs(f64, inf(f64), fmin(f64));
17292 try testArgs(f64, inf(f64), 1e-1);
17293 try testArgs(f64, inf(f64), 1e0);
17294 try testArgs(f64, inf(f64), 1e1);
17295 try testArgs(f64, inf(f64), fmax(f64));
17296 try testArgs(f64, inf(f64), inf(f64));
17297 try testArgs(f64, inf(f64), nan(f64));
17298
17299 try testArgs(f64, nan(f64), -nan(f64));
17300 try testArgs(f64, nan(f64), -inf(f64));
17301 try testArgs(f64, nan(f64), -fmax(f64));
17302 try testArgs(f64, nan(f64), -1e1);
17303 try testArgs(f64, nan(f64), -1e0);
17304 try testArgs(f64, nan(f64), -1e-1);
17305 try testArgs(f64, nan(f64), -fmin(f64));
17306 try testArgs(f64, nan(f64), -tmin(f64));
17307 try testArgs(f64, nan(f64), -0.0);
17308 try testArgs(f64, nan(f64), 0.0);
17309 try testArgs(f64, nan(f64), tmin(f64));
17310 try testArgs(f64, nan(f64), fmin(f64));
17311 try testArgs(f64, nan(f64), 1e-1);
17312 try testArgs(f64, nan(f64), 1e0);
17313 try testArgs(f64, nan(f64), 1e1);
17314 try testArgs(f64, nan(f64), fmax(f64));
17315 try testArgs(f64, nan(f64), inf(f64));
17316 try testArgs(f64, nan(f64), nan(f64));
17317
17318 try testArgs(f80, -nan(f80), -nan(f80));
17319 try testArgs(f80, -nan(f80), -inf(f80));
17320 try testArgs(f80, -nan(f80), -fmax(f80));
17321 try testArgs(f80, -nan(f80), -1e1);
17322 try testArgs(f80, -nan(f80), -1e0);
17323 try testArgs(f80, -nan(f80), -1e-1);
17324 try testArgs(f80, -nan(f80), -fmin(f80));
17325 try testArgs(f80, -nan(f80), -tmin(f80));
17326 try testArgs(f80, -nan(f80), -0.0);
17327 try testArgs(f80, -nan(f80), 0.0);
17328 try testArgs(f80, -nan(f80), tmin(f80));
17329 try testArgs(f80, -nan(f80), fmin(f80));
17330 try testArgs(f80, -nan(f80), 1e-1);
17331 try testArgs(f80, -nan(f80), 1e0);
17332 try testArgs(f80, -nan(f80), 1e1);
17333 try testArgs(f80, -nan(f80), fmax(f80));
17334 try testArgs(f80, -nan(f80), inf(f80));
17335 try testArgs(f80, -nan(f80), nan(f80));
17336
17337 try testArgs(f80, -inf(f80), -nan(f80));
17338 try testArgs(f80, -inf(f80), -inf(f80));
17339 try testArgs(f80, -inf(f80), -fmax(f80));
17340 try testArgs(f80, -inf(f80), -1e1);
17341 try testArgs(f80, -inf(f80), -1e0);
17342 try testArgs(f80, -inf(f80), -1e-1);
17343 try testArgs(f80, -inf(f80), -fmin(f80));
17344 try testArgs(f80, -inf(f80), -tmin(f80));
17345 try testArgs(f80, -inf(f80), -0.0);
17346 try testArgs(f80, -inf(f80), 0.0);
17347 try testArgs(f80, -inf(f80), tmin(f80));
17348 try testArgs(f80, -inf(f80), fmin(f80));
17349 try testArgs(f80, -inf(f80), 1e-1);
17350 try testArgs(f80, -inf(f80), 1e0);
17351 try testArgs(f80, -inf(f80), 1e1);
17352 try testArgs(f80, -inf(f80), fmax(f80));
17353 try testArgs(f80, -inf(f80), inf(f80));
17354 try testArgs(f80, -inf(f80), nan(f80));
17355
17356 try testArgs(f80, -fmax(f80), -nan(f80));
17357 try testArgs(f80, -fmax(f80), -inf(f80));
17358 try testArgs(f80, -fmax(f80), -fmax(f80));
17359 try testArgs(f80, -fmax(f80), -1e1);
17360 try testArgs(f80, -fmax(f80), -1e0);
17361 try testArgs(f80, -fmax(f80), -1e-1);
17362 try testArgs(f80, -fmax(f80), -fmin(f80));
17363 try testArgs(f80, -fmax(f80), -tmin(f80));
17364 try testArgs(f80, -fmax(f80), -0.0);
17365 try testArgs(f80, -fmax(f80), 0.0);
17366 try testArgs(f80, -fmax(f80), tmin(f80));
17367 try testArgs(f80, -fmax(f80), fmin(f80));
17368 try testArgs(f80, -fmax(f80), 1e-1);
17369 try testArgs(f80, -fmax(f80), 1e0);
17370 try testArgs(f80, -fmax(f80), 1e1);
17371 try testArgs(f80, -fmax(f80), fmax(f80));
17372 try testArgs(f80, -fmax(f80), inf(f80));
17373 try testArgs(f80, -fmax(f80), nan(f80));
17374
17375 try testArgs(f80, -1e1, -nan(f80));
17376 try testArgs(f80, -1e1, -inf(f80));
17377 try testArgs(f80, -1e1, -fmax(f80));
17378 try testArgs(f80, -1e1, -1e1);
17379 try testArgs(f80, -1e1, -1e0);
17380 try testArgs(f80, -1e1, -1e-1);
17381 try testArgs(f80, -1e1, -fmin(f80));
17382 try testArgs(f80, -1e1, -tmin(f80));
17383 try testArgs(f80, -1e1, -0.0);
17384 try testArgs(f80, -1e1, 0.0);
17385 try testArgs(f80, -1e1, tmin(f80));
17386 try testArgs(f80, -1e1, fmin(f80));
17387 try testArgs(f80, -1e1, 1e-1);
17388 try testArgs(f80, -1e1, 1e0);
17389 try testArgs(f80, -1e1, 1e1);
17390 try testArgs(f80, -1e1, fmax(f80));
17391 try testArgs(f80, -1e1, inf(f80));
17392 try testArgs(f80, -1e1, nan(f80));
17393
17394 try testArgs(f80, -1e0, -nan(f80));
17395 try testArgs(f80, -1e0, -inf(f80));
17396 try testArgs(f80, -1e0, -fmax(f80));
17397 try testArgs(f80, -1e0, -1e1);
17398 try testArgs(f80, -1e0, -1e0);
17399 try testArgs(f80, -1e0, -1e-1);
17400 try testArgs(f80, -1e0, -fmin(f80));
17401 try testArgs(f80, -1e0, -tmin(f80));
17402 try testArgs(f80, -1e0, -0.0);
17403 try testArgs(f80, -1e0, 0.0);
17404 try testArgs(f80, -1e0, tmin(f80));
17405 try testArgs(f80, -1e0, fmin(f80));
17406 try testArgs(f80, -1e0, 1e-1);
17407 try testArgs(f80, -1e0, 1e0);
17408 try testArgs(f80, -1e0, 1e1);
17409 try testArgs(f80, -1e0, fmax(f80));
17410 try testArgs(f80, -1e0, inf(f80));
17411 try testArgs(f80, -1e0, nan(f80));
17412
17413 try testArgs(f80, -1e-1, -nan(f80));
17414 try testArgs(f80, -1e-1, -inf(f80));
17415 try testArgs(f80, -1e-1, -fmax(f80));
17416 try testArgs(f80, -1e-1, -1e1);
17417 try testArgs(f80, -1e-1, -1e0);
17418 try testArgs(f80, -1e-1, -1e-1);
17419 try testArgs(f80, -1e-1, -fmin(f80));
17420 try testArgs(f80, -1e-1, -tmin(f80));
17421 try testArgs(f80, -1e-1, -0.0);
17422 try testArgs(f80, -1e-1, 0.0);
17423 try testArgs(f80, -1e-1, tmin(f80));
17424 try testArgs(f80, -1e-1, fmin(f80));
17425 try testArgs(f80, -1e-1, 1e-1);
17426 try testArgs(f80, -1e-1, 1e0);
17427 try testArgs(f80, -1e-1, 1e1);
17428 try testArgs(f80, -1e-1, fmax(f80));
17429 try testArgs(f80, -1e-1, inf(f80));
17430 try testArgs(f80, -1e-1, nan(f80));
17431
17432 try testArgs(f80, -fmin(f80), -nan(f80));
17433 try testArgs(f80, -fmin(f80), -inf(f80));
17434 try testArgs(f80, -fmin(f80), -fmax(f80));
17435 try testArgs(f80, -fmin(f80), -1e1);
17436 try testArgs(f80, -fmin(f80), -1e0);
17437 try testArgs(f80, -fmin(f80), -1e-1);
17438 try testArgs(f80, -fmin(f80), -fmin(f80));
17439 try testArgs(f80, -fmin(f80), -tmin(f80));
17440 try testArgs(f80, -fmin(f80), -0.0);
17441 try testArgs(f80, -fmin(f80), 0.0);
17442 try testArgs(f80, -fmin(f80), tmin(f80));
17443 try testArgs(f80, -fmin(f80), fmin(f80));
17444 try testArgs(f80, -fmin(f80), 1e-1);
17445 try testArgs(f80, -fmin(f80), 1e0);
17446 try testArgs(f80, -fmin(f80), 1e1);
17447 try testArgs(f80, -fmin(f80), fmax(f80));
17448 try testArgs(f80, -fmin(f80), inf(f80));
17449 try testArgs(f80, -fmin(f80), nan(f80));
17450
17451 try testArgs(f80, -tmin(f80), -nan(f80));
17452 try testArgs(f80, -tmin(f80), -inf(f80));
17453 try testArgs(f80, -tmin(f80), -fmax(f80));
17454 try testArgs(f80, -tmin(f80), -1e1);
17455 try testArgs(f80, -tmin(f80), -1e0);
17456 try testArgs(f80, -tmin(f80), -1e-1);
17457 try testArgs(f80, -tmin(f80), -fmin(f80));
17458 try testArgs(f80, -tmin(f80), -tmin(f80));
17459 try testArgs(f80, -tmin(f80), -0.0);
17460 try testArgs(f80, -tmin(f80), 0.0);
17461 try testArgs(f80, -tmin(f80), tmin(f80));
17462 try testArgs(f80, -tmin(f80), fmin(f80));
17463 try testArgs(f80, -tmin(f80), 1e-1);
17464 try testArgs(f80, -tmin(f80), 1e0);
17465 try testArgs(f80, -tmin(f80), 1e1);
17466 try testArgs(f80, -tmin(f80), fmax(f80));
17467 try testArgs(f80, -tmin(f80), inf(f80));
17468 try testArgs(f80, -tmin(f80), nan(f80));
17469
17470 try testArgs(f80, -0.0, -nan(f80));
17471 try testArgs(f80, -0.0, -inf(f80));
17472 try testArgs(f80, -0.0, -fmax(f80));
17473 try testArgs(f80, -0.0, -1e1);
17474 try testArgs(f80, -0.0, -1e0);
17475 try testArgs(f80, -0.0, -1e-1);
17476 try testArgs(f80, -0.0, -fmin(f80));
17477 try testArgs(f80, -0.0, -tmin(f80));
17478 try testArgs(f80, -0.0, -0.0);
17479 try testArgs(f80, -0.0, 0.0);
17480 try testArgs(f80, -0.0, tmin(f80));
17481 try testArgs(f80, -0.0, fmin(f80));
17482 try testArgs(f80, -0.0, 1e-1);
17483 try testArgs(f80, -0.0, 1e0);
17484 try testArgs(f80, -0.0, 1e1);
17485 try testArgs(f80, -0.0, fmax(f80));
17486 try testArgs(f80, -0.0, inf(f80));
17487 try testArgs(f80, -0.0, nan(f80));
17488
17489 try testArgs(f80, 0.0, -nan(f80));
17490 try testArgs(f80, 0.0, -inf(f80));
17491 try testArgs(f80, 0.0, -fmax(f80));
17492 try testArgs(f80, 0.0, -1e1);
17493 try testArgs(f80, 0.0, -1e0);
17494 try testArgs(f80, 0.0, -1e-1);
17495 try testArgs(f80, 0.0, -fmin(f80));
17496 try testArgs(f80, 0.0, -tmin(f80));
17497 try testArgs(f80, 0.0, -0.0);
17498 try testArgs(f80, 0.0, 0.0);
17499 try testArgs(f80, 0.0, tmin(f80));
17500 try testArgs(f80, 0.0, fmin(f80));
17501 try testArgs(f80, 0.0, 1e-1);
17502 try testArgs(f80, 0.0, 1e0);
17503 try testArgs(f80, 0.0, 1e1);
17504 try testArgs(f80, 0.0, fmax(f80));
17505 try testArgs(f80, 0.0, inf(f80));
17506 try testArgs(f80, 0.0, nan(f80));
17507
17508 try testArgs(f80, tmin(f80), -nan(f80));
17509 try testArgs(f80, tmin(f80), -inf(f80));
17510 try testArgs(f80, tmin(f80), -fmax(f80));
17511 try testArgs(f80, tmin(f80), -1e1);
17512 try testArgs(f80, tmin(f80), -1e0);
17513 try testArgs(f80, tmin(f80), -1e-1);
17514 try testArgs(f80, tmin(f80), -fmin(f80));
17515 try testArgs(f80, tmin(f80), -tmin(f80));
17516 try testArgs(f80, tmin(f80), -0.0);
17517 try testArgs(f80, tmin(f80), 0.0);
17518 try testArgs(f80, tmin(f80), tmin(f80));
17519 try testArgs(f80, tmin(f80), fmin(f80));
17520 try testArgs(f80, tmin(f80), 1e-1);
17521 try testArgs(f80, tmin(f80), 1e0);
17522 try testArgs(f80, tmin(f80), 1e1);
17523 try testArgs(f80, tmin(f80), fmax(f80));
17524 try testArgs(f80, tmin(f80), inf(f80));
17525 try testArgs(f80, tmin(f80), nan(f80));
17526
17527 try testArgs(f80, fmin(f80), -nan(f80));
17528 try testArgs(f80, fmin(f80), -inf(f80));
17529 try testArgs(f80, fmin(f80), -fmax(f80));
17530 try testArgs(f80, fmin(f80), -1e1);
17531 try testArgs(f80, fmin(f80), -1e0);
17532 try testArgs(f80, fmin(f80), -1e-1);
17533 try testArgs(f80, fmin(f80), -fmin(f80));
17534 try testArgs(f80, fmin(f80), -tmin(f80));
17535 try testArgs(f80, fmin(f80), -0.0);
17536 try testArgs(f80, fmin(f80), 0.0);
17537 try testArgs(f80, fmin(f80), tmin(f80));
17538 try testArgs(f80, fmin(f80), fmin(f80));
17539 try testArgs(f80, fmin(f80), 1e-1);
17540 try testArgs(f80, fmin(f80), 1e0);
17541 try testArgs(f80, fmin(f80), 1e1);
17542 try testArgs(f80, fmin(f80), fmax(f80));
17543 try testArgs(f80, fmin(f80), inf(f80));
17544 try testArgs(f80, fmin(f80), nan(f80));
17545
17546 try testArgs(f80, 1e-1, -nan(f80));
17547 try testArgs(f80, 1e-1, -inf(f80));
17548 try testArgs(f80, 1e-1, -fmax(f80));
17549 try testArgs(f80, 1e-1, -1e1);
17550 try testArgs(f80, 1e-1, -1e0);
17551 try testArgs(f80, 1e-1, -1e-1);
17552 try testArgs(f80, 1e-1, -fmin(f80));
17553 try testArgs(f80, 1e-1, -tmin(f80));
17554 try testArgs(f80, 1e-1, -0.0);
17555 try testArgs(f80, 1e-1, 0.0);
17556 try testArgs(f80, 1e-1, tmin(f80));
17557 try testArgs(f80, 1e-1, fmin(f80));
17558 try testArgs(f80, 1e-1, 1e-1);
17559 try testArgs(f80, 1e-1, 1e0);
17560 try testArgs(f80, 1e-1, 1e1);
17561 try testArgs(f80, 1e-1, fmax(f80));
17562 try testArgs(f80, 1e-1, inf(f80));
17563 try testArgs(f80, 1e-1, nan(f80));
17564
17565 try testArgs(f80, 1e0, -nan(f80));
17566 try testArgs(f80, 1e0, -inf(f80));
17567 try testArgs(f80, 1e0, -fmax(f80));
17568 try testArgs(f80, 1e0, -1e1);
17569 try testArgs(f80, 1e0, -1e0);
17570 try testArgs(f80, 1e0, -1e-1);
17571 try testArgs(f80, 1e0, -fmin(f80));
17572 try testArgs(f80, 1e0, -tmin(f80));
17573 try testArgs(f80, 1e0, -0.0);
17574 try testArgs(f80, 1e0, 0.0);
17575 try testArgs(f80, 1e0, tmin(f80));
17576 try testArgs(f80, 1e0, fmin(f80));
17577 try testArgs(f80, 1e0, 1e-1);
17578 try testArgs(f80, 1e0, 1e0);
17579 try testArgs(f80, 1e0, 1e1);
17580 try testArgs(f80, 1e0, fmax(f80));
17581 try testArgs(f80, 1e0, inf(f80));
17582 try testArgs(f80, 1e0, nan(f80));
17583
17584 try testArgs(f80, 1e1, -nan(f80));
17585 try testArgs(f80, 1e1, -inf(f80));
17586 try testArgs(f80, 1e1, -fmax(f80));
17587 try testArgs(f80, 1e1, -1e1);
17588 try testArgs(f80, 1e1, -1e0);
17589 try testArgs(f80, 1e1, -1e-1);
17590 try testArgs(f80, 1e1, -fmin(f80));
17591 try testArgs(f80, 1e1, -tmin(f80));
17592 try testArgs(f80, 1e1, -0.0);
17593 try testArgs(f80, 1e1, 0.0);
17594 try testArgs(f80, 1e1, tmin(f80));
17595 try testArgs(f80, 1e1, fmin(f80));
17596 try testArgs(f80, 1e1, 1e-1);
17597 try testArgs(f80, 1e1, 1e0);
17598 try testArgs(f80, 1e1, 1e1);
17599 try testArgs(f80, 1e1, fmax(f80));
17600 try testArgs(f80, 1e1, inf(f80));
17601 try testArgs(f80, 1e1, nan(f80));
17602
17603 try testArgs(f80, fmax(f80), -nan(f80));
17604 try testArgs(f80, fmax(f80), -inf(f80));
17605 try testArgs(f80, fmax(f80), -fmax(f80));
17606 try testArgs(f80, fmax(f80), -1e1);
17607 try testArgs(f80, fmax(f80), -1e0);
17608 try testArgs(f80, fmax(f80), -1e-1);
17609 try testArgs(f80, fmax(f80), -fmin(f80));
17610 try testArgs(f80, fmax(f80), -tmin(f80));
17611 try testArgs(f80, fmax(f80), -0.0);
17612 try testArgs(f80, fmax(f80), 0.0);
17613 try testArgs(f80, fmax(f80), tmin(f80));
17614 try testArgs(f80, fmax(f80), fmin(f80));
17615 try testArgs(f80, fmax(f80), 1e-1);
17616 try testArgs(f80, fmax(f80), 1e0);
17617 try testArgs(f80, fmax(f80), 1e1);
17618 try testArgs(f80, fmax(f80), fmax(f80));
17619 try testArgs(f80, fmax(f80), inf(f80));
17620 try testArgs(f80, fmax(f80), nan(f80));
17621
17622 try testArgs(f80, inf(f80), -nan(f80));
17623 try testArgs(f80, inf(f80), -inf(f80));
17624 try testArgs(f80, inf(f80), -fmax(f80));
17625 try testArgs(f80, inf(f80), -1e1);
17626 try testArgs(f80, inf(f80), -1e0);
17627 try testArgs(f80, inf(f80), -1e-1);
17628 try testArgs(f80, inf(f80), -fmin(f80));
17629 try testArgs(f80, inf(f80), -tmin(f80));
17630 try testArgs(f80, inf(f80), -0.0);
17631 try testArgs(f80, inf(f80), 0.0);
17632 try testArgs(f80, inf(f80), tmin(f80));
17633 try testArgs(f80, inf(f80), fmin(f80));
17634 try testArgs(f80, inf(f80), 1e-1);
17635 try testArgs(f80, inf(f80), 1e0);
17636 try testArgs(f80, inf(f80), 1e1);
17637 try testArgs(f80, inf(f80), fmax(f80));
17638 try testArgs(f80, inf(f80), inf(f80));
17639 try testArgs(f80, inf(f80), nan(f80));
17640
17641 try testArgs(f80, nan(f80), -nan(f80));
17642 try testArgs(f80, nan(f80), -inf(f80));
17643 try testArgs(f80, nan(f80), -fmax(f80));
17644 try testArgs(f80, nan(f80), -1e1);
17645 try testArgs(f80, nan(f80), -1e0);
17646 try testArgs(f80, nan(f80), -1e-1);
17647 try testArgs(f80, nan(f80), -fmin(f80));
17648 try testArgs(f80, nan(f80), -tmin(f80));
17649 try testArgs(f80, nan(f80), -0.0);
17650 try testArgs(f80, nan(f80), 0.0);
17651 try testArgs(f80, nan(f80), tmin(f80));
17652 try testArgs(f80, nan(f80), fmin(f80));
17653 try testArgs(f80, nan(f80), 1e-1);
17654 try testArgs(f80, nan(f80), 1e0);
17655 try testArgs(f80, nan(f80), 1e1);
17656 try testArgs(f80, nan(f80), fmax(f80));
17657 try testArgs(f80, nan(f80), inf(f80));
17658 try testArgs(f80, nan(f80), nan(f80));
17659
17660 try testArgs(f128, -nan(f128), -nan(f128));
17661 try testArgs(f128, -nan(f128), -inf(f128));
17662 try testArgs(f128, -nan(f128), -fmax(f128));
17663 try testArgs(f128, -nan(f128), -1e1);
17664 try testArgs(f128, -nan(f128), -1e0);
17665 try testArgs(f128, -nan(f128), -1e-1);
17666 try testArgs(f128, -nan(f128), -fmin(f128));
17667 try testArgs(f128, -nan(f128), -tmin(f128));
17668 try testArgs(f128, -nan(f128), -0.0);
17669 try testArgs(f128, -nan(f128), 0.0);
17670 try testArgs(f128, -nan(f128), tmin(f128));
17671 try testArgs(f128, -nan(f128), fmin(f128));
17672 try testArgs(f128, -nan(f128), 1e-1);
17673 try testArgs(f128, -nan(f128), 1e0);
17674 try testArgs(f128, -nan(f128), 1e1);
17675 try testArgs(f128, -nan(f128), fmax(f128));
17676 try testArgs(f128, -nan(f128), inf(f128));
17677 try testArgs(f128, -nan(f128), nan(f128));
17678
17679 try testArgs(f128, -inf(f128), -nan(f128));
17680 try testArgs(f128, -inf(f128), -inf(f128));
17681 try testArgs(f128, -inf(f128), -fmax(f128));
17682 try testArgs(f128, -inf(f128), -1e1);
17683 try testArgs(f128, -inf(f128), -1e0);
17684 try testArgs(f128, -inf(f128), -1e-1);
17685 try testArgs(f128, -inf(f128), -fmin(f128));
17686 try testArgs(f128, -inf(f128), -tmin(f128));
17687 try testArgs(f128, -inf(f128), -0.0);
17688 try testArgs(f128, -inf(f128), 0.0);
17689 try testArgs(f128, -inf(f128), tmin(f128));
17690 try testArgs(f128, -inf(f128), fmin(f128));
17691 try testArgs(f128, -inf(f128), 1e-1);
17692 try testArgs(f128, -inf(f128), 1e0);
17693 try testArgs(f128, -inf(f128), 1e1);
17694 try testArgs(f128, -inf(f128), fmax(f128));
17695 try testArgs(f128, -inf(f128), inf(f128));
17696 try testArgs(f128, -inf(f128), nan(f128));
17697
17698 try testArgs(f128, -fmax(f128), -nan(f128));
17699 try testArgs(f128, -fmax(f128), -inf(f128));
17700 try testArgs(f128, -fmax(f128), -fmax(f128));
17701 try testArgs(f128, -fmax(f128), -1e1);
17702 try testArgs(f128, -fmax(f128), -1e0);
17703 try testArgs(f128, -fmax(f128), -1e-1);
17704 try testArgs(f128, -fmax(f128), -fmin(f128));
17705 try testArgs(f128, -fmax(f128), -tmin(f128));
17706 try testArgs(f128, -fmax(f128), -0.0);
17707 try testArgs(f128, -fmax(f128), 0.0);
17708 try testArgs(f128, -fmax(f128), tmin(f128));
17709 try testArgs(f128, -fmax(f128), fmin(f128));
17710 try testArgs(f128, -fmax(f128), 1e-1);
17711 try testArgs(f128, -fmax(f128), 1e0);
17712 try testArgs(f128, -fmax(f128), 1e1);
17713 try testArgs(f128, -fmax(f128), fmax(f128));
17714 try testArgs(f128, -fmax(f128), inf(f128));
17715 try testArgs(f128, -fmax(f128), nan(f128));
17716
17717 try testArgs(f128, -1e1, -nan(f128));
17718 try testArgs(f128, -1e1, -inf(f128));
17719 try testArgs(f128, -1e1, -fmax(f128));
17720 try testArgs(f128, -1e1, -1e1);
17721 try testArgs(f128, -1e1, -1e0);
17722 try testArgs(f128, -1e1, -1e-1);
17723 try testArgs(f128, -1e1, -fmin(f128));
17724 try testArgs(f128, -1e1, -tmin(f128));
17725 try testArgs(f128, -1e1, -0.0);
17726 try testArgs(f128, -1e1, 0.0);
17727 try testArgs(f128, -1e1, tmin(f128));
17728 try testArgs(f128, -1e1, fmin(f128));
17729 try testArgs(f128, -1e1, 1e-1);
17730 try testArgs(f128, -1e1, 1e0);
17731 try testArgs(f128, -1e1, 1e1);
17732 try testArgs(f128, -1e1, fmax(f128));
17733 try testArgs(f128, -1e1, inf(f128));
17734 try testArgs(f128, -1e1, nan(f128));
17735
17736 try testArgs(f128, -1e0, -nan(f128));
17737 try testArgs(f128, -1e0, -inf(f128));
17738 try testArgs(f128, -1e0, -fmax(f128));
17739 try testArgs(f128, -1e0, -1e1);
17740 try testArgs(f128, -1e0, -1e0);
17741 try testArgs(f128, -1e0, -1e-1);
17742 try testArgs(f128, -1e0, -fmin(f128));
17743 try testArgs(f128, -1e0, -tmin(f128));
17744 try testArgs(f128, -1e0, -0.0);
17745 try testArgs(f128, -1e0, 0.0);
17746 try testArgs(f128, -1e0, tmin(f128));
17747 try testArgs(f128, -1e0, fmin(f128));
17748 try testArgs(f128, -1e0, 1e-1);
17749 try testArgs(f128, -1e0, 1e0);
17750 try testArgs(f128, -1e0, 1e1);
17751 try testArgs(f128, -1e0, fmax(f128));
17752 try testArgs(f128, -1e0, inf(f128));
17753 try testArgs(f128, -1e0, nan(f128));
17754
17755 try testArgs(f128, -1e-1, -nan(f128));
17756 try testArgs(f128, -1e-1, -inf(f128));
17757 try testArgs(f128, -1e-1, -fmax(f128));
17758 try testArgs(f128, -1e-1, -1e1);
17759 try testArgs(f128, -1e-1, -1e0);
17760 try testArgs(f128, -1e-1, -1e-1);
17761 try testArgs(f128, -1e-1, -fmin(f128));
17762 try testArgs(f128, -1e-1, -tmin(f128));
17763 try testArgs(f128, -1e-1, -0.0);
17764 try testArgs(f128, -1e-1, 0.0);
17765 try testArgs(f128, -1e-1, tmin(f128));
17766 try testArgs(f128, -1e-1, fmin(f128));
17767 try testArgs(f128, -1e-1, 1e-1);
17768 try testArgs(f128, -1e-1, 1e0);
17769 try testArgs(f128, -1e-1, 1e1);
17770 try testArgs(f128, -1e-1, fmax(f128));
17771 try testArgs(f128, -1e-1, inf(f128));
17772 try testArgs(f128, -1e-1, nan(f128));
17773
17774 try testArgs(f128, -fmin(f128), -nan(f128));
17775 try testArgs(f128, -fmin(f128), -inf(f128));
17776 try testArgs(f128, -fmin(f128), -fmax(f128));
17777 try testArgs(f128, -fmin(f128), -1e1);
17778 try testArgs(f128, -fmin(f128), -1e0);
17779 try testArgs(f128, -fmin(f128), -1e-1);
17780 try testArgs(f128, -fmin(f128), -fmin(f128));
17781 try testArgs(f128, -fmin(f128), -tmin(f128));
17782 try testArgs(f128, -fmin(f128), -0.0);
17783 try testArgs(f128, -fmin(f128), 0.0);
17784 try testArgs(f128, -fmin(f128), tmin(f128));
17785 try testArgs(f128, -fmin(f128), fmin(f128));
17786 try testArgs(f128, -fmin(f128), 1e-1);
17787 try testArgs(f128, -fmin(f128), 1e0);
17788 try testArgs(f128, -fmin(f128), 1e1);
17789 try testArgs(f128, -fmin(f128), fmax(f128));
17790 try testArgs(f128, -fmin(f128), inf(f128));
17791 try testArgs(f128, -fmin(f128), nan(f128));
17792
17793 try testArgs(f128, -tmin(f128), -nan(f128));
17794 try testArgs(f128, -tmin(f128), -inf(f128));
17795 try testArgs(f128, -tmin(f128), -fmax(f128));
17796 try testArgs(f128, -tmin(f128), -1e1);
17797 try testArgs(f128, -tmin(f128), -1e0);
17798 try testArgs(f128, -tmin(f128), -1e-1);
17799 try testArgs(f128, -tmin(f128), -fmin(f128));
17800 try testArgs(f128, -tmin(f128), -tmin(f128));
17801 try testArgs(f128, -tmin(f128), -0.0);
17802 try testArgs(f128, -tmin(f128), 0.0);
17803 try testArgs(f128, -tmin(f128), tmin(f128));
17804 try testArgs(f128, -tmin(f128), fmin(f128));
17805 try testArgs(f128, -tmin(f128), 1e-1);
17806 try testArgs(f128, -tmin(f128), 1e0);
17807 try testArgs(f128, -tmin(f128), 1e1);
17808 try testArgs(f128, -tmin(f128), fmax(f128));
17809 try testArgs(f128, -tmin(f128), inf(f128));
17810 try testArgs(f128, -tmin(f128), nan(f128));
17811
17812 try testArgs(f128, -0.0, -nan(f128));
17813 try testArgs(f128, -0.0, -inf(f128));
17814 try testArgs(f128, -0.0, -fmax(f128));
17815 try testArgs(f128, -0.0, -1e1);
17816 try testArgs(f128, -0.0, -1e0);
17817 try testArgs(f128, -0.0, -1e-1);
17818 try testArgs(f128, -0.0, -fmin(f128));
17819 try testArgs(f128, -0.0, -tmin(f128));
17820 try testArgs(f128, -0.0, -0.0);
17821 try testArgs(f128, -0.0, 0.0);
17822 try testArgs(f128, -0.0, tmin(f128));
17823 try testArgs(f128, -0.0, fmin(f128));
17824 try testArgs(f128, -0.0, 1e-1);
17825 try testArgs(f128, -0.0, 1e0);
17826 try testArgs(f128, -0.0, 1e1);
17827 try testArgs(f128, -0.0, fmax(f128));
17828 try testArgs(f128, -0.0, inf(f128));
17829 try testArgs(f128, -0.0, nan(f128));
17830
17831 try testArgs(f128, 0.0, -nan(f128));
17832 try testArgs(f128, 0.0, -inf(f128));
17833 try testArgs(f128, 0.0, -fmax(f128));
17834 try testArgs(f128, 0.0, -1e1);
17835 try testArgs(f128, 0.0, -1e0);
17836 try testArgs(f128, 0.0, -1e-1);
17837 try testArgs(f128, 0.0, -fmin(f128));
17838 try testArgs(f128, 0.0, -tmin(f128));
17839 try testArgs(f128, 0.0, -0.0);
17840 try testArgs(f128, 0.0, 0.0);
17841 try testArgs(f128, 0.0, tmin(f128));
17842 try testArgs(f128, 0.0, fmin(f128));
17843 try testArgs(f128, 0.0, 1e-1);
17844 try testArgs(f128, 0.0, 1e0);
17845 try testArgs(f128, 0.0, 1e1);
17846 try testArgs(f128, 0.0, fmax(f128));
17847 try testArgs(f128, 0.0, inf(f128));
17848 try testArgs(f128, 0.0, nan(f128));
17849
17850 try testArgs(f128, tmin(f128), -nan(f128));
17851 try testArgs(f128, tmin(f128), -inf(f128));
17852 try testArgs(f128, tmin(f128), -fmax(f128));
17853 try testArgs(f128, tmin(f128), -1e1);
17854 try testArgs(f128, tmin(f128), -1e0);
17855 try testArgs(f128, tmin(f128), -1e-1);
17856 try testArgs(f128, tmin(f128), -fmin(f128));
17857 try testArgs(f128, tmin(f128), -tmin(f128));
17858 try testArgs(f128, tmin(f128), -0.0);
17859 try testArgs(f128, tmin(f128), 0.0);
17860 try testArgs(f128, tmin(f128), tmin(f128));
17861 try testArgs(f128, tmin(f128), fmin(f128));
17862 try testArgs(f128, tmin(f128), 1e-1);
17863 try testArgs(f128, tmin(f128), 1e0);
17864 try testArgs(f128, tmin(f128), 1e1);
17865 try testArgs(f128, tmin(f128), fmax(f128));
17866 try testArgs(f128, tmin(f128), inf(f128));
17867 try testArgs(f128, tmin(f128), nan(f128));
17868
17869 try testArgs(f128, fmin(f128), -nan(f128));
17870 try testArgs(f128, fmin(f128), -inf(f128));
17871 try testArgs(f128, fmin(f128), -fmax(f128));
17872 try testArgs(f128, fmin(f128), -1e1);
17873 try testArgs(f128, fmin(f128), -1e0);
17874 try testArgs(f128, fmin(f128), -1e-1);
17875 try testArgs(f128, fmin(f128), -fmin(f128));
17876 try testArgs(f128, fmin(f128), -tmin(f128));
17877 try testArgs(f128, fmin(f128), -0.0);
17878 try testArgs(f128, fmin(f128), 0.0);
17879 try testArgs(f128, fmin(f128), tmin(f128));
17880 try testArgs(f128, fmin(f128), fmin(f128));
17881 try testArgs(f128, fmin(f128), 1e-1);
17882 try testArgs(f128, fmin(f128), 1e0);
17883 try testArgs(f128, fmin(f128), 1e1);
17884 try testArgs(f128, fmin(f128), fmax(f128));
17885 try testArgs(f128, fmin(f128), inf(f128));
17886 try testArgs(f128, fmin(f128), nan(f128));
17887
17888 try testArgs(f128, 1e-1, -nan(f128));
17889 try testArgs(f128, 1e-1, -inf(f128));
17890 try testArgs(f128, 1e-1, -fmax(f128));
17891 try testArgs(f128, 1e-1, -1e1);
17892 try testArgs(f128, 1e-1, -1e0);
17893 try testArgs(f128, 1e-1, -1e-1);
17894 try testArgs(f128, 1e-1, -fmin(f128));
17895 try testArgs(f128, 1e-1, -tmin(f128));
17896 try testArgs(f128, 1e-1, -0.0);
17897 try testArgs(f128, 1e-1, 0.0);
17898 try testArgs(f128, 1e-1, tmin(f128));
17899 try testArgs(f128, 1e-1, fmin(f128));
17900 try testArgs(f128, 1e-1, 1e-1);
17901 try testArgs(f128, 1e-1, 1e0);
17902 try testArgs(f128, 1e-1, 1e1);
17903 try testArgs(f128, 1e-1, fmax(f128));
17904 try testArgs(f128, 1e-1, inf(f128));
17905 try testArgs(f128, 1e-1, nan(f128));
17906
17907 try testArgs(f128, 1e0, -nan(f128));
17908 try testArgs(f128, 1e0, -inf(f128));
17909 try testArgs(f128, 1e0, -fmax(f128));
17910 try testArgs(f128, 1e0, -1e1);
17911 try testArgs(f128, 1e0, -1e0);
17912 try testArgs(f128, 1e0, -1e-1);
17913 try testArgs(f128, 1e0, -fmin(f128));
17914 try testArgs(f128, 1e0, -tmin(f128));
17915 try testArgs(f128, 1e0, -0.0);
17916 try testArgs(f128, 1e0, 0.0);
17917 try testArgs(f128, 1e0, tmin(f128));
17918 try testArgs(f128, 1e0, fmin(f128));
17919 try testArgs(f128, 1e0, 1e-1);
17920 try testArgs(f128, 1e0, 1e0);
17921 try testArgs(f128, 1e0, 1e1);
17922 try testArgs(f128, 1e0, fmax(f128));
17923 try testArgs(f128, 1e0, inf(f128));
17924 try testArgs(f128, 1e0, nan(f128));
17925
17926 try testArgs(f128, 1e1, -nan(f128));
17927 try testArgs(f128, 1e1, -inf(f128));
17928 try testArgs(f128, 1e1, -fmax(f128));
17929 try testArgs(f128, 1e1, -1e1);
17930 try testArgs(f128, 1e1, -1e0);
17931 try testArgs(f128, 1e1, -1e-1);
17932 try testArgs(f128, 1e1, -fmin(f128));
17933 try testArgs(f128, 1e1, -tmin(f128));
17934 try testArgs(f128, 1e1, -0.0);
17935 try testArgs(f128, 1e1, 0.0);
17936 try testArgs(f128, 1e1, tmin(f128));
17937 try testArgs(f128, 1e1, fmin(f128));
17938 try testArgs(f128, 1e1, 1e-1);
17939 try testArgs(f128, 1e1, 1e0);
17940 try testArgs(f128, 1e1, 1e1);
17941 try testArgs(f128, 1e1, fmax(f128));
17942 try testArgs(f128, 1e1, inf(f128));
17943 try testArgs(f128, 1e1, nan(f128));
17944
17945 try testArgs(f128, fmax(f128), -nan(f128));
17946 try testArgs(f128, fmax(f128), -inf(f128));
17947 try testArgs(f128, fmax(f128), -fmax(f128));
17948 try testArgs(f128, fmax(f128), -1e1);
17949 try testArgs(f128, fmax(f128), -1e0);
17950 try testArgs(f128, fmax(f128), -1e-1);
17951 try testArgs(f128, fmax(f128), -fmin(f128));
17952 try testArgs(f128, fmax(f128), -tmin(f128));
17953 try testArgs(f128, fmax(f128), -0.0);
17954 try testArgs(f128, fmax(f128), 0.0);
17955 try testArgs(f128, fmax(f128), tmin(f128));
17956 try testArgs(f128, fmax(f128), fmin(f128));
17957 try testArgs(f128, fmax(f128), 1e-1);
17958 try testArgs(f128, fmax(f128), 1e0);
17959 try testArgs(f128, fmax(f128), 1e1);
17960 try testArgs(f128, fmax(f128), fmax(f128));
17961 try testArgs(f128, fmax(f128), inf(f128));
17962 try testArgs(f128, fmax(f128), nan(f128));
17963
17964 try testArgs(f128, inf(f128), -nan(f128));
17965 try testArgs(f128, inf(f128), -inf(f128));
17966 try testArgs(f128, inf(f128), -fmax(f128));
17967 try testArgs(f128, inf(f128), -1e1);
17968 try testArgs(f128, inf(f128), -1e0);
17969 try testArgs(f128, inf(f128), -1e-1);
17970 try testArgs(f128, inf(f128), -fmin(f128));
17971 try testArgs(f128, inf(f128), -tmin(f128));
17972 try testArgs(f128, inf(f128), -0.0);
17973 try testArgs(f128, inf(f128), 0.0);
17974 try testArgs(f128, inf(f128), tmin(f128));
17975 try testArgs(f128, inf(f128), fmin(f128));
17976 try testArgs(f128, inf(f128), 1e-1);
17977 try testArgs(f128, inf(f128), 1e0);
17978 try testArgs(f128, inf(f128), 1e1);
17979 try testArgs(f128, inf(f128), fmax(f128));
17980 try testArgs(f128, inf(f128), inf(f128));
17981 try testArgs(f128, inf(f128), nan(f128));
17982
17983 try testArgs(f128, nan(f128), -nan(f128));
17984 try testArgs(f128, nan(f128), -inf(f128));
17985 try testArgs(f128, nan(f128), -fmax(f128));
17986 try testArgs(f128, nan(f128), -1e1);
17987 try testArgs(f128, nan(f128), -1e0);
17988 try testArgs(f128, nan(f128), -1e-1);
17989 try testArgs(f128, nan(f128), -fmin(f128));
17990 try testArgs(f128, nan(f128), -tmin(f128));
17991 try testArgs(f128, nan(f128), -0.0);
17992 try testArgs(f128, nan(f128), 0.0);
17993 try testArgs(f128, nan(f128), tmin(f128));
17994 try testArgs(f128, nan(f128), fmin(f128));
17995 try testArgs(f128, nan(f128), 1e-1);
17996 try testArgs(f128, nan(f128), 1e0);
17997 try testArgs(f128, nan(f128), 1e1);
17998 try testArgs(f128, nan(f128), fmax(f128));
17999 try testArgs(f128, nan(f128), inf(f128));
18000 try testArgs(f128, nan(f128), nan(f128));
18001 }
18002 fn testIntVectors() !void {
18003 try testArgs(@Vector(1, i1), .{
18004 0x0,
18005 }, .{
18006 -0x1,
18007 });
18008 try testArgs(@Vector(2, i1), .{
18009 0x0, 0x00,
18010 }, .{
18011 -0x1, -0x1,
18012 });
18013 try testArgs(@Vector(4, i1), .{
18014 0x0, 0x0, 0x0, 0x0,
18015 }, .{
18016 -0x1, -0x1, -0x1, -0x1,
18017 });
18018 try testArgs(@Vector(8, i1), .{
18019 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18020 }, .{
18021 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18022 });
18023 try testArgs(@Vector(16, i1), .{
18024 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18025 }, .{
18026 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18027 });
18028 try testArgs(@Vector(32, i1), .{
18029 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18030 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18031 }, .{
18032 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18033 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18034 });
18035 try testArgs(@Vector(64, i1), .{
18036 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18037 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18038 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18039 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18040 }, .{
18041 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18042 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18043 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18044 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18045 });
18046 try testArgs(@Vector(128, i1), .{
18047 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18048 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18049 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18050 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18051 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18052 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18053 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18054 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
18055 }, .{
18056 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18057 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18058 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18059 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18060 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18061 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18062 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18063 -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
18064 });
18065
18066 try testArgs(@Vector(1, u1), .{
18067 0x0,
18068 }, .{
18069 0x1,
18070 });
18071 try testArgs(@Vector(2, u1), .{
18072 0x0, 0x1,
18073 }, .{
18074 0x1, 0x1,
18075 });
18076 try testArgs(@Vector(4, u1), .{
18077 0x0, 0x0, 0x1, 0x0,
18078 }, .{
18079 0x1, 0x1, 0x1, 0x1,
18080 });
18081 try testArgs(@Vector(8, u1), .{
18082 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
18083 }, .{
18084 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18085 });
18086 try testArgs(@Vector(16, u1), .{
18087 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18088 }, .{
18089 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18090 });
18091 try testArgs(@Vector(32, u1), .{
18092 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
18093 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
18094 }, .{
18095 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18096 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18097 });
18098 try testArgs(@Vector(64, u1), .{
18099 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1,
18100 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1,
18101 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
18102 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0,
18103 }, .{
18104 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18105 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18106 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18107 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18108 });
18109 try testArgs(@Vector(128, u1), .{
18110 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
18111 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1,
18112 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1,
18113 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18114 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
18115 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1,
18116 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
18117 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
18118 }, .{
18119 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18120 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18121 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18122 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18123 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18124 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18125 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18126 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
18127 });
18128
18129 // workaround https://github.com/ziglang/zig/issues/22914
18130 // TODO: try testArgs(@Vector(1, i2), .{
18131 // 0x1,
18132 // }, .{
18133 // 0x1,
18134 // });
18135 // try testArgs(@Vector(2, i2), .{
18136 // 0x0, -0x2,
18137 // }, .{
18138 // -0x2, -0x2,
18139 // });
18140 // try testArgs(@Vector(4, i2), .{
18141 // -0x2, -0x1, 0x0, -0x2,
18142 // }, .{
18143 // -0x2, 0x1, -0x1, -0x2,
18144 // });
18145 // try testArgs(@Vector(8, i2), .{
18146 // -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2,
18147 // }, .{
18148 // -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1,
18149 // });
18150 // try testArgs(@Vector(16, i2), .{
18151 // 0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0,
18152 // }, .{
18153 // -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2,
18154 // });
18155 // try testArgs(@Vector(32, i2), .{
18156 // -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x1, 0x0, -0x2, -0x2, 0x0, 0x1,
18157 // -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2,
18158 // }, .{
18159 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1,
18160 // -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, 0x1, -0x2, -0x2,
18161 // });
18162 // try testArgs(@Vector(64, i2), .{
18163 // 0x1, -0x2, -0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1, 0x0, 0x1,
18164 // -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, 0x0, -0x2, -0x2,
18165 // 0x1, 0x0, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, 0x1, 0x0, 0x0, -0x1, 0x0, 0x1,
18166 // -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x2, 0x0, -0x2, 0x0, -0x2, 0x1, 0x0, -0x1, -0x1, 0x1,
18167 // }, .{
18168 // -0x2, -0x2, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1,
18169 // -0x2, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, 0x1, -0x1, -0x2, 0x1, -0x2, 0x1,
18170 // 0x1, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1,
18171 // -0x2, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x1, -0x2, -0x2,
18172 // });
18173 // try testArgs(@Vector(128, i2), .{
18174 // -0x1, -0x2, 0x0, -0x2, -0x2, 0x1, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1,
18175 // 0x0, -0x2, 0x1, 0x0, 0x1, 0x0, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x0, -0x1, 0x1, -0x1,
18176 // 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x0, 0x0, 0x1, 0x1, -0x2, -0x1,
18177 // 0x1, 0x0, 0x0, 0x1, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, 0x1, 0x0, 0x1, 0x0, 0x0, -0x2,
18178 // 0x0, 0x0, -0x1, 0x1, -0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, -0x2, 0x0, 0x0, 0x0,
18179 // -0x1, -0x1, -0x1, -0x1, -0x2, 0x0, -0x1, 0x1, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x1,
18180 // 0x1, -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x1, -0x2, 0x0, -0x1, -0x1, -0x2, -0x2, 0x0, 0x0,
18181 // -0x1, 0x0, 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x1,
18182 // }, .{
18183 // -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, -0x1,
18184 // -0x1, -0x2, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x2,
18185 // -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, -0x2,
18186 // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2,
18187 // -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2,
18188 // 0x1, -0x1, 0x1, -0x2, 0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2,
18189 // -0x2, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, 0x1,
18190 // 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, -0x2,
18191 // });
18192 try testArgs(@Vector(1, i2), .{
18193 -0x1,
18194 }, .{
18195 -0x2,
18196 });
18197 try testArgs(@Vector(2, i2), .{
18198 -0x1, -0x1,
18199 }, .{
18200 0x1, -0x1,
18201 });
18202 try testArgs(@Vector(4, i2), .{
18203 -0x1, 0x1, -0x1, -0x1,
18204 }, .{
18205 0x1, -0x1, -0x1, 0x1,
18206 });
18207 try testArgs(@Vector(8, i2), .{
18208 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x1,
18209 }, .{
18210 0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1,
18211 });
18212 try testArgs(@Vector(16, i2), .{
18213 0x1, 0x0, 0x0, -0x1, 0x1, 0x0, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x0,
18214 }, .{
18215 0x1, 0x1, 0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
18216 });
18217 try testArgs(@Vector(32, i2), .{
18218 0x0, 0x1, -0x1, -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, 0x1, -0x1, 0x0, -0x1, 0x0, -0x1,
18219 -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x0, 0x1,
18220 }, .{
18221 -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x2,
18222 -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1,
18223 });
18224 try testArgs(@Vector(64, i2), .{
18225 0x1, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0,
18226 -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, -0x1, 0x0, -0x1, 0x0,
18227 -0x1, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0,
18228 0x1, -0x1, -0x1, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
18229 }, .{
18230 -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1,
18231 -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2,
18232 -0x2, -0x1, -0x1, 0x1, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, 0x1, -0x1,
18233 -0x1, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2,
18234 });
18235 try testArgs(@Vector(128, i2), .{
18236 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0,
18237 0x0, 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, 0x0, -0x1,
18238 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, -0x1, 0x1,
18239 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x0, 0x1, 0x0, 0x1,
18240 0x0, -0x1, 0x0, 0x0, 0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1,
18241 0x0, -0x1, 0x1, -0x1, -0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x1, 0x0, -0x1, 0x1, 0x0, -0x1,
18242 0x1, 0x0, 0x1, -0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x0,
18243 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x1, 0x1, -0x1,
18244 }, .{
18245 -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1,
18246 -0x1, 0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, 0x1, -0x1,
18247 -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2, -0x1,
18248 -0x2, 0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1,
18249 -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, 0x1, -0x1, 0x1,
18250 -0x2, -0x2, 0x1, -0x2, -0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, 0x1, 0x1, -0x2,
18251 -0x1, -0x2, 0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, -0x1, -0x2, 0x1, -0x1, -0x2, -0x1, -0x2,
18252 -0x2, -0x2, -0x1, -0x1, -0x2, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1,
18253 });
18254
18255 try testArgs(@Vector(1, u2), .{
18256 0x2,
18257 }, .{
18258 0x2,
18259 });
18260 try testArgs(@Vector(2, u2), .{
18261 0x1, 0x0,
18262 }, .{
18263 0x2, 0x1,
18264 });
18265 try testArgs(@Vector(4, u2), .{
18266 0x3, 0x3, 0x0, 0x2,
18267 }, .{
18268 0x3, 0x1, 0x1, 0x3,
18269 });
18270 try testArgs(@Vector(8, u2), .{
18271 0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1,
18272 }, .{
18273 0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2,
18274 });
18275 try testArgs(@Vector(16, u2), .{
18276 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1,
18277 }, .{
18278 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1,
18279 });
18280 try testArgs(@Vector(32, u2), .{
18281 0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0,
18282 0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0,
18283 }, .{
18284 0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2,
18285 0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3,
18286 });
18287 try testArgs(@Vector(64, u2), .{
18288 0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0,
18289 0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3,
18290 0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0,
18291 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3,
18292 }, .{
18293 0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3,
18294 0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1,
18295 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2,
18296 0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1,
18297 });
18298 try testArgs(@Vector(128, u2), .{
18299 0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1,
18300 0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1,
18301 0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0,
18302 0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0,
18303 0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3,
18304 0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1,
18305 0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1,
18306 0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2,
18307 }, .{
18308 0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1,
18309 0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3,
18310 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3,
18311 0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2,
18312 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2,
18313 0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1,
18314 0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1,
18315 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1,
18316 });
18317
18318 // workaround https://github.com/ziglang/zig/issues/22914
18319 // TODO: try testArgs(@Vector(1, i3), .{
18320 // -0x3,
18321 // }, .{
18322 // -0x1,
18323 // });
18324 // try testArgs(@Vector(2, i3), .{
18325 // 0x2, -0x3,
18326 // }, .{
18327 // 0x1, 0x3,
18328 // });
18329 // try testArgs(@Vector(4, i3), .{
18330 // 0x1, -0x4, -0x2, -0x3,
18331 // }, .{
18332 // -0x2, -0x4, 0x2, 0x2,
18333 // });
18334 // try testArgs(@Vector(8, i3), .{
18335 // 0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3,
18336 // }, .{
18337 // -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2,
18338 // });
18339 // try testArgs(@Vector(16, i3), .{
18340 // -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4,
18341 // }, .{
18342 // 0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4,
18343 // });
18344 // try testArgs(@Vector(32, i3), .{
18345 // 0x1, -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3, -0x2, 0x3, 0x0, -0x3, 0x0,
18346 // -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2, -0x4, -0x4, -0x3, 0x1, -0x1, -0x2,
18347 // }, .{
18348 // -0x4, -0x2, 0x1, -0x1, 0x3, 0x1, 0x2, -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2,
18349 // -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3, 0x1, -0x3, 0x3, 0x3, -0x4, 0x3, 0x2, -0x2,
18350 // });
18351 // try testArgs(@Vector(64, i3), .{
18352 // 0x1, 0x2, 0x1, 0x2, -0x2, 0x2, 0x2, -0x1, -0x4, 0x1, 0x3, 0x0, -0x2, -0x2, 0x2, -0x2,
18353 // 0x0, -0x4, -0x3, -0x4, -0x1, -0x1, 0x2, 0x2, -0x2, -0x1, -0x1, 0x3, 0x3, -0x4, 0x2, 0x0,
18354 // 0x3, 0x2, -0x4, -0x1, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, -0x3, 0x1, -0x4, -0x2, 0x1, -0x3,
18355 // -0x3, -0x1, 0x1, -0x3, -0x1, 0x3, -0x4, -0x4, 0x0, 0x0, -0x4, -0x2, 0x3, -0x1, -0x3, -0x3,
18356 // }, .{
18357 // 0x3, -0x2, 0x1, -0x4, 0x1, 0x3, -0x3, 0x1, 0x3, 0x1, 0x1, -0x1, -0x2, 0x1, -0x3, 0x1,
18358 // -0x2, -0x2, 0x3, -0x3, -0x1, -0x3, 0x1, -0x1, -0x3, -0x3, 0x1, -0x2, 0x1, -0x2, 0x1, 0x2,
18359 // 0x3, -0x4, -0x4, -0x1, 0x1, 0x3, 0x1, 0x1, -0x4, 0x2, -0x3, 0x3, 0x3, -0x1, 0x1, -0x1,
18360 // -0x2, 0x2, 0x2, -0x4, -0x4, 0x3, -0x2, -0x4, -0x1, -0x2, -0x4, 0x1, 0x2, 0x1, -0x1, -0x2,
18361 // });
18362 // try testArgs(@Vector(128, i3), .{
18363 // -0x4, 0x1, 0x0, -0x4, -0x4, 0x1, -0x4, -0x2, 0x2, 0x2, -0x3, 0x1, 0x2, -0x2, 0x1, 0x1,
18364 // 0x3, 0x0, 0x3, -0x4, -0x1, 0x3, 0x3, -0x4, 0x0, -0x3, 0x2, -0x2, 0x0, 0x3, 0x1, -0x2,
18365 // -0x1, -0x1, 0x3, -0x1, -0x2, 0x3, 0x3, 0x1, -0x3, 0x1, -0x1, -0x2, -0x4, 0x2, -0x2, -0x1,
18366 // 0x1, 0x1, 0x1, 0x0, -0x1, 0x2, -0x1, 0x3, 0x2, -0x1, -0x2, 0x3, -0x2, 0x3, 0x3, 0x1,
18367 // 0x3, -0x3, -0x4, -0x1, 0x2, 0x2, -0x2, 0x3, -0x4, -0x2, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0,
18368 // -0x2, 0x3, 0x0, -0x3, -0x4, 0x2, -0x3, -0x2, -0x4, 0x0, -0x3, -0x4, -0x4, -0x2, -0x1, -0x3,
18369 // 0x0, -0x1, 0x0, -0x1, 0x2, -0x4, -0x3, 0x0, -0x4, 0x0, -0x2, 0x1, -0x2, -0x4, -0x1, -0x1,
18370 // -0x3, 0x3, -0x1, -0x1, -0x2, 0x1, 0x3, 0x1, -0x3, 0x1, -0x4, -0x2, 0x0, -0x1, -0x2, 0x2,
18371 // }, .{
18372 // -0x3, 0x2, -0x3, 0x1, -0x2, -0x1, -0x3, 0x1, 0x2, 0x2, -0x2, 0x2, 0x2, 0x1, 0x3, -0x1,
18373 // -0x4, -0x3, 0x2, -0x3, -0x2, 0x3, -0x3, 0x2, -0x1, -0x3, 0x1, 0x2, -0x4, 0x2, -0x2, -0x3,
18374 // 0x1, -0x1, 0x2, 0x2, -0x1, -0x3, -0x4, 0x2, 0x1, -0x4, 0x1, -0x4, 0x2, -0x1, 0x2, -0x2,
18375 // 0x2, 0x1, -0x4, 0x3, 0x1, -0x2, -0x3, -0x4, 0x3, -0x1, 0x3, -0x4, -0x2, 0x1, -0x2, 0x3,
18376 // 0x1, 0x1, 0x2, 0x1, -0x1, -0x2, 0x2, -0x1, 0x1, -0x1, -0x3, -0x1, 0x1, -0x4, -0x1, -0x1,
18377 // -0x3, -0x1, -0x4, 0x3, 0x1, -0x1, -0x1, -0x1, 0x1, -0x4, 0x1, -0x2, -0x4, 0x2, -0x4, -0x3,
18378 // 0x2, -0x4, -0x1, 0x1, 0x3, 0x2, -0x1, 0x3, 0x2, 0x2, 0x1, -0x4, -0x3, 0x1, -0x1, 0x1,
18379 // -0x2, -0x4, 0x1, 0x3, -0x1, 0x3, 0x1, 0x2, -0x4, 0x2, 0x2, -0x3, -0x3, -0x4, -0x2, 0x3,
18380 // });
18381 try testArgs(@Vector(1, i3), .{
18382 -0x1,
18383 }, .{
18384 -0x3,
18385 });
18386 try testArgs(@Vector(2, i3), .{
18387 0x2, -0x2,
18388 }, .{
18389 0x3, 0x3,
18390 });
18391 try testArgs(@Vector(4, i3), .{
18392 0x1, 0x0, -0x2, 0x0,
18393 }, .{
18394 0x2, -0x2, -0x4, 0x3,
18395 });
18396 try testArgs(@Vector(8, i3), .{
18397 0x3, -0x1, -0x3, -0x3, -0x3, -0x2, 0x2, -0x3,
18398 }, .{
18399 -0x1, 0x1, -0x2, 0x2, 0x1, -0x2, -0x3, -0x1,
18400 });
18401 try testArgs(@Vector(16, i3), .{
18402 -0x1, -0x1, 0x3, -0x2, -0x2, -0x2, -0x2, -0x1, 0x2, 0x1, -0x2, 0x2, -0x2, 0x1, 0x1, -0x3,
18403 }, .{
18404 0x1, -0x1, -0x1, -0x1, 0x1, 0x3, -0x1, -0x1, 0x1, 0x3, -0x1, -0x3, 0x1, 0x3, 0x1, -0x2,
18405 });
18406 try testArgs(@Vector(32, i3), .{
18407 0x3, -0x1, -0x3, 0x1, 0x0, 0x0, -0x3, -0x1, -0x3, 0x1, 0x1, 0x2, -0x1, 0x1, -0x1, -0x1,
18408 0x1, -0x3, 0x1, -0x1, 0x1, 0x0, -0x2, 0x3, -0x2, -0x3, 0x3, 0x1, -0x1, 0x0, 0x3, -0x1,
18409 }, .{
18410 0x1, -0x2, -0x4, -0x4, 0x2, 0x1, -0x4, -0x3, -0x4, 0x1, -0x3, -0x4, -0x1, 0x2, -0x1, 0x1,
18411 0x2, -0x2, -0x4, 0x3, -0x3, 0x1, 0x2, -0x2, -0x2, 0x3, 0x3, 0x2, -0x2, -0x4, -0x2, -0x3,
18412 });
18413 try testArgs(@Vector(64, i3), .{
18414 -0x2, 0x1, 0x3, -0x1, -0x3, -0x1, 0x1, -0x3, 0x1, -0x2, 0x0, 0x3, 0x0, -0x2, 0x1, -0x3,
18415 -0x2, 0x1, -0x2, 0x2, 0x0, 0x1, -0x3, 0x0, -0x3, 0x0, -0x3, -0x2, -0x2, -0x3, -0x2, 0x3,
18416 -0x1, 0x1, 0x1, 0x1, -0x1, 0x0, -0x3, -0x3, -0x3, -0x3, -0x2, 0x2, 0x3, 0x2, -0x3, 0x1,
18417 -0x3, -0x3, -0x1, -0x1, -0x1, -0x3, -0x2, -0x2, 0x2, 0x3, 0x3, -0x3, 0x0, 0x3, -0x3, -0x3,
18418 }, .{
18419 0x2, 0x1, -0x1, -0x3, -0x1, -0x4, -0x2, -0x3, 0x2, -0x2, -0x4, 0x2, 0x2, -0x2, 0x1, 0x1,
18420 0x1, -0x1, -0x3, 0x2, -0x2, 0x2, -0x1, 0x3, 0x3, -0x1, -0x1, -0x3, -0x1, 0x2, -0x2, 0x2,
18421 0x1, -0x4, -0x2, -0x4, 0x2, -0x1, -0x2, 0x3, 0x3, 0x3, -0x4, -0x2, 0x3, -0x4, 0x1, -0x2,
18422 -0x2, 0x2, -0x3, -0x3, 0x1, -0x3, 0x3, 0x2, 0x1, 0x3, -0x3, 0x3, 0x2, -0x2, -0x2, 0x2,
18423 });
18424 try testArgs(@Vector(128, i3), .{
18425 -0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x2, 0x1, -0x3, 0x1, -0x2, -0x1, 0x0, 0x2, 0x3, -0x3,
18426 -0x1, -0x1, -0x2, 0x3, 0x1, 0x2, 0x2, 0x3, -0x2, 0x3, -0x2, -0x3, 0x1, 0x0, -0x1, -0x2,
18427 -0x1, -0x1, 0x1, -0x1, 0x2, -0x3, 0x1, -0x2, -0x1, 0x2, -0x2, 0x1, 0x1, -0x3, -0x2, 0x3,
18428 -0x1, -0x1, 0x1, -0x3, -0x1, -0x2, 0x0, 0x1, -0x1, 0x0, -0x1, 0x2, 0x1, 0x2, 0x3, -0x1,
18429 0x0, 0x1, 0x2, 0x3, -0x2, 0x2, -0x3, 0x2, 0x0, -0x2, -0x3, -0x2, 0x0, 0x1, 0x2, 0x1,
18430 -0x3, 0x0, -0x2, -0x3, -0x1, 0x2, -0x3, 0x2, 0x3, 0x1, 0x1, -0x1, 0x2, 0x1, -0x1, 0x2,
18431 0x2, 0x0, 0x1, -0x3, -0x3, 0x1, 0x2, 0x0, 0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x3, 0x3,
18432 0x0, -0x2, -0x2, -0x2, 0x3, 0x0, -0x1, -0x2, 0x0, 0x3, -0x3, 0x1, 0x2, -0x1, 0x1, 0x1,
18433 }, .{
18434 0x3, 0x3, 0x2, 0x3, -0x3, -0x4, 0x1, -0x3, 0x2, 0x3, 0x3, -0x2, 0x2, -0x1, 0x1, 0x3,
18435 -0x4, -0x4, -0x1, -0x1, 0x2, -0x3, -0x3, -0x3, -0x2, -0x3, -0x2, -0x1, 0x1, 0x3, -0x4, -0x2,
18436 -0x3, 0x1, 0x3, 0x1, -0x2, 0x1, 0x1, 0x2, 0x1, 0x2, -0x4, -0x4, -0x3, -0x2, -0x1, -0x2,
18437 0x3, 0x2, -0x3, -0x2, -0x2, 0x3, -0x3, -0x4, 0x3, -0x3, 0x3, -0x1, 0x3, -0x1, -0x1, 0x2,
18438 0x3, -0x4, -0x4, -0x2, -0x4, 0x2, -0x2, -0x4, -0x2, -0x2, -0x3, 0x3, 0x2, 0x2, 0x2, -0x4,
18439 0x1, -0x4, -0x3, -0x2, -0x4, -0x4, 0x1, -0x4, -0x1, 0x3, -0x2, -0x4, 0x3, -0x4, 0x3, -0x1,
18440 0x3, 0x1, -0x1, 0x1, 0x1, 0x2, 0x1, -0x3, -0x4, -0x1, -0x1, -0x2, -0x3, -0x2, 0x3, -0x2,
18441 -0x1, 0x3, 0x3, -0x1, 0x3, 0x1, 0x1, 0x2, -0x3, 0x3, -0x1, 0x3, -0x3, -0x4, -0x4, 0x1,
18442 });
18443
18444 try testArgs(@Vector(1, u3), .{
18445 0x5,
18446 }, .{
18447 0x2,
18448 });
18449 try testArgs(@Vector(2, u3), .{
18450 0x4, 0x5,
18451 }, .{
18452 0x2, 0x4,
18453 });
18454 try testArgs(@Vector(4, u3), .{
18455 0x7, 0x7, 0x2, 0x3,
18456 }, .{
18457 0x4, 0x5, 0x7, 0x1,
18458 });
18459 try testArgs(@Vector(8, u3), .{
18460 0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7,
18461 }, .{
18462 0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1,
18463 });
18464 try testArgs(@Vector(16, u3), .{
18465 0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5,
18466 }, .{
18467 0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2,
18468 });
18469 try testArgs(@Vector(32, u3), .{
18470 0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2,
18471 0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2,
18472 }, .{
18473 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1,
18474 0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6,
18475 });
18476 try testArgs(@Vector(64, u3), .{
18477 0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5,
18478 0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7,
18479 0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2,
18480 0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6,
18481 }, .{
18482 0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4,
18483 0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5,
18484 0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4,
18485 0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3,
18486 });
18487 try testArgs(@Vector(128, u3), .{
18488 0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6,
18489 0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5,
18490 0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3,
18491 0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4,
18492 0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2,
18493 0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4,
18494 0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4,
18495 0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4,
18496 }, .{
18497 0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1,
18498 0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4,
18499 0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4,
18500 0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5,
18501 0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1,
18502 0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3,
18503 0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7,
18504 0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1,
18505 });
18506
18507 // workaround https://github.com/ziglang/zig/issues/22914
18508 // TODO: try testArgs(@Vector(1, i4), .{
18509 // 0x2,
18510 // }, .{
18511 // 0x1,
18512 // });
18513 // try testArgs(@Vector(2, i4), .{
18514 // -0x2, 0x5,
18515 // }, .{
18516 // -0x1, 0x2,
18517 // });
18518 // try testArgs(@Vector(4, i4), .{
18519 // -0x8, 0x5, 0x5, -0x2,
18520 // }, .{
18521 // -0x3, -0x7, -0x4, -0x5,
18522 // });
18523 // try testArgs(@Vector(8, i4), .{
18524 // 0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1,
18525 // }, .{
18526 // -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7,
18527 // });
18528 // try testArgs(@Vector(16, i4), .{
18529 // 0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0,
18530 // }, .{
18531 // 0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2,
18532 // });
18533 // try testArgs(@Vector(32, i4), .{
18534 // -0x1, -0x4, 0x6, 0x6, 0x5, 0x3, 0x4, 0x0, 0x3, 0x7, -0x6, 0x7, -0x2, -0x7, -0x4, 0x6,
18535 // 0x3, -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8,
18536 // }, .{
18537 // -0x4, -0x4, -0x4, 0x4, -0x5, 0x3, -0x1, 0x6, 0x1, -0x3, -0x1, 0x6, 0x5, -0x8, 0x1, -0x4,
18538 // -0x1, -0x4, 0x1, -0x3, 0x4, 0x6, -0x3, -0x8, -0x7, -0x4, 0x2, -0x3, -0x1, -0x2, 0x6, -0x6,
18539 // });
18540 // try testArgs(@Vector(64, i4), .{
18541 // 0x0, -0x3, -0x3, 0x5, 0x2, -0x1, 0x4, 0x5, 0x6, -0x2, 0x1, 0x5, -0x3, -0x1, -0x2, -0x1,
18542 // -0x8, 0x2, -0x1, -0x2, 0x7, -0x3, -0x2, -0x3, 0x1, -0x5, 0x5, 0x2, -0x1, -0x6, -0x2, -0x1,
18543 // -0x2, -0x5, 0x0, 0x6, 0x3, -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1, 0x0, -0x6, -0x7, -0x6,
18544 // 0x1, -0x6, 0x4, -0x4, -0x2, 0x6, -0x7, 0x4, 0x4, 0x5, 0x3, -0x6, -0x8, -0x5, 0x5, -0x7,
18545 // }, .{
18546 // -0x1, -0x5, 0x5, -0x2, 0x6, -0x6, -0x4, -0x5, -0x4, 0x7, -0x6, 0x7, 0x4, -0x5, 0x5, 0x7,
18547 // -0x6, 0x3, -0x4, 0x2, -0x8, 0x4, -0x2, 0x5, -0x5, -0x5, -0x8, 0x3, -0x1, -0x4, -0x8, -0x2,
18548 // -0x2, 0x5, -0x7, -0x3, 0x2, -0x5, -0x6, -0x7, -0x8, -0x2, 0x5, -0x3, 0x2, -0x1, -0x7, -0x4,
18549 // -0x3, -0x3, 0x6, -0x8, 0x3, -0x4, 0x7, 0x3, -0x2, 0x7, -0x1, 0x1, 0x1, 0x6, -0x2, -0x2,
18550 // });
18551 // try testArgs(@Vector(128, i4), .{
18552 // -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0, -0x4, 0x7, 0x3, 0x5, -0x4, -0x5, -0x4, -0x2, -0x7,
18553 // 0x2, 0x0, -0x4, 0x7, 0x3, -0x5, 0x4, 0x5, -0x2, -0x3, -0x4, 0x6, -0x7, -0x1, 0x1, -0x6,
18554 // 0x1, 0x5, 0x2, 0x5, 0x2, 0x2, -0x4, -0x4, 0x5, 0x2, -0x2, -0x8, -0x1, -0x2, 0x5, 0x3,
18555 // 0x0, -0x5, 0x5, 0x7, 0x6, -0x3, -0x2, 0x0, -0x7, -0x7, -0x4, 0x2, -0x4, 0x7, 0x1, -0x5,
18556 // -0x4, -0x8, 0x2, -0x7, 0x3, -0x4, 0x7, 0x6, -0x7, -0x3, -0x7, 0x2, 0x4, 0x2, -0x5, -0x6,
18557 // 0x3, 0x5, 0x1, 0x6, 0x5, 0x7, 0x7, -0x4, -0x7, -0x1, 0x0, -0x7, 0x6, 0x0, 0x6, 0x0,
18558 // 0x0, -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1, 0x1, -0x8, 0x2, 0x6, -0x1, -0x3,
18559 // -0x6, 0x5, -0x8, 0x3, 0x3, 0x1, -0x1, -0x3, -0x3, -0x6, 0x7, -0x6, -0x8, 0x1, -0x7, -0x8,
18560 // }, .{
18561 // 0x1, 0x3, 0x1, 0x3, -0x6, 0x6, 0x2, -0x3, 0x1, -0x7, 0x7, -0x3, -0x1, -0x1, 0x7, 0x2,
18562 // -0x8, 0x2, -0x3, -0x4, 0x4, -0x4, 0x7, 0x6, -0x5, -0x2, -0x1, 0x6, -0x7, 0x4, 0x7, -0x3,
18563 // -0x5, -0x8, -0x5, -0x6, -0x6, 0x2, 0x1, -0x8, 0x4, 0x3, -0x5, 0x7, -0x8, 0x3, -0x1, 0x7,
18564 // -0x3, 0x7, -0x3, -0x2, -0x6, 0x4, 0x2, -0x2, -0x2, -0x7, 0x5, -0x1, -0x6, 0x7, -0x5, 0x5,
18565 // 0x4, 0x5, -0x8, -0x5, 0x6, 0x1, -0x5, 0x7, -0x6, -0x3, -0x4, 0x6, -0x8, 0x7, 0x7, -0x6,
18566 // 0x6, -0x4, 0x2, -0x8, -0x8, -0x4, -0x8, -0x3, 0x6, 0x5, 0x7, -0x6, 0x1, 0x2, -0x7, -0x3,
18567 // -0x3, 0x1, -0x3, 0x3, -0x1, 0x3, -0x7, -0x8, 0x1, -0x3, -0x3, -0x3, -0x4, 0x5, 0x7, -0x7,
18568 // 0x3, 0x2, 0x6, -0x2, -0x4, -0x3, -0x1, 0x5, -0x6, 0x2, 0x3, -0x5, 0x5, -0x3, -0x2, -0x8,
18569 // });
18570 try testArgs(@Vector(1, i4), .{
18571 -0x1,
18572 }, .{
18573 -0x1,
18574 });
18575 try testArgs(@Vector(2, i4), .{
18576 0x7, 0x5,
18577 }, .{
18578 0x4, 0x1,
18579 });
18580 try testArgs(@Vector(4, i4), .{
18581 -0x2, -0x3, -0x6, 0x1,
18582 }, .{
18583 0x3, -0x5, -0x1, -0x3,
18584 });
18585 try testArgs(@Vector(8, i4), .{
18586 -0x5, -0x3, -0x2, 0x2, -0x4, -0x4, 0x0, 0x1,
18587 }, .{
18588 -0x7, -0x2, -0x7, 0x1, 0x6, 0x2, -0x7, 0x7,
18589 });
18590 try testArgs(@Vector(16, i4), .{
18591 -0x1, -0x1, 0x6, 0x3, -0x1, 0x2, -0x6, 0x6, 0x1, 0x5, -0x1, 0x7, 0x7, -0x3, -0x1, 0x4,
18592 }, .{
18593 0x1, -0x3, 0x4, -0x1, 0x2, 0x5, -0x3, -0x5, -0x5, 0x5, -0x7, 0x7, 0x1, 0x5, -0x5, -0x6,
18594 });
18595 try testArgs(@Vector(32, i4), .{
18596 -0x7, 0x4, -0x5, -0x5, -0x5, 0x1, 0x7, 0x3, -0x2, 0x7, -0x3, -0x7, -0x3, -0x2, -0x5, -0x7,
18597 0x5, 0x4, 0x3, 0x0, -0x6, -0x2, -0x4, -0x1, 0x5, 0x4, -0x7, -0x7, -0x5, 0x5, -0x5, -0x1,
18598 }, .{
18599 0x4, 0x4, 0x5, 0x2, 0x3, -0x4, 0x6, 0x2, -0x7, 0x3, 0x7, 0x2, 0x6, 0x2, 0x2, 0x3,
18600 0x7, -0x3, -0x7, -0x2, 0x3, -0x1, -0x4, 0x4, -0x8, 0x1, 0x6, -0x7, 0x5, 0x1, 0x7, -0x2,
18601 });
18602 try testArgs(@Vector(64, i4), .{
18603 0x0, 0x3, 0x7, -0x7, 0x1, -0x5, -0x4, 0x2, 0x2, 0x5, 0x4, 0x0, -0x3, -0x4, -0x4, -0x4,
18604 -0x7, 0x6, 0x2, 0x1, 0x0, 0x3, -0x6, 0x4, -0x4, 0x2, 0x7, 0x3, -0x4, -0x3, -0x3, -0x3,
18605 -0x4, 0x0, -0x3, -0x6, 0x0, 0x1, -0x5, -0x7, -0x2, -0x1, -0x1, -0x7, 0x3, -0x5, -0x4, -0x3,
18606 0x5, 0x1, -0x4, 0x7, 0x1, 0x7, -0x5, 0x4, 0x5, -0x4, 0x1, -0x4, 0x4, 0x5, 0x4, -0x2,
18607 }, .{
18608 0x2, -0x4, -0x1, 0x4, 0x4, -0x1, -0x3, 0x6, 0x4, 0x2, 0x4, 0x3, -0x6, -0x7, -0x4, 0x6,
18609 0x6, 0x4, 0x6, -0x7, 0x2, 0x4, -0x8, -0x1, -0x8, 0x3, -0x2, -0x7, 0x1, 0x5, -0x3, -0x6,
18610 -0x8, 0x2, -0x5, 0x7, 0x4, 0x7, -0x4, 0x3, 0x6, -0x7, -0x1, 0x1, -0x8, -0x2, -0x3, 0x3,
18611 0x3, -0x4, 0x4, -0x7, 0x5, -0x4, -0x1, 0x2, 0x6, -0x2, -0x5, 0x2, 0x7, 0x2, -0x8, -0x3,
18612 });
18613 try testArgs(@Vector(128, i4), .{
18614 0x3, 0x3, -0x6, 0x3, 0x2, 0x1, 0x5, -0x2, 0x0, -0x7, 0x4, 0x3, 0x0, -0x3, -0x7, -0x5,
18615 0x4, 0x0, 0x1, 0x6, 0x3, 0x3, -0x4, 0x7, -0x6, -0x6, 0x6, 0x1, 0x6, -0x5, -0x6, -0x6,
18616 0x4, -0x2, 0x3, -0x1, -0x4, -0x6, -0x1, 0x2, 0x4, 0x3, -0x2, 0x2, 0x3, 0x5, 0x0, -0x2,
18617 0x5, 0x6, -0x1, -0x5, 0x6, 0x7, 0x7, -0x6, -0x6, 0x0, 0x0, -0x6, -0x2, -0x7, -0x6, 0x3,
18618 -0x6, -0x6, 0x4, -0x4, 0x4, -0x5, 0x0, 0x6, 0x6, 0x7, 0x4, -0x5, 0x5, -0x7, -0x7, 0x6,
18619 -0x4, 0x4, -0x7, 0x4, 0x3, 0x2, -0x4, -0x1, -0x6, -0x2, 0x5, -0x2, 0x4, -0x7, -0x3, -0x3,
18620 0x4, 0x1, -0x1, 0x2, -0x1, 0x4, -0x5, -0x3, -0x1, -0x3, 0x3, 0x7, 0x5, -0x1, -0x1, -0x4,
18621 0x2, 0x1, -0x3, 0x7, -0x6, -0x7, -0x6, -0x4, -0x5, -0x2, 0x5, 0x0, -0x5, 0x7, -0x7, 0x5,
18622 }, .{
18623 -0x6, -0x5, -0x1, 0x4, 0x6, 0x4, -0x1, -0x7, -0x3, 0x4, -0x6, -0x2, -0x3, 0x1, 0x6, 0x2,
18624 -0x1, -0x3, -0x4, 0x2, 0x3, 0x6, -0x7, 0x3, 0x7, -0x6, 0x1, -0x7, -0x5, 0x6, 0x7, -0x4,
18625 0x7, -0x4, 0x2, -0x5, 0x4, 0x5, 0x5, -0x3, -0x1, 0x6, -0x6, -0x2, -0x4, 0x3, -0x4, -0x4,
18626 -0x5, 0x6, -0x6, 0x3, -0x6, -0x3, 0x6, 0x5, 0x6, -0x6, -0x3, 0x1, -0x4, -0x5, -0x8, -0x3,
18627 -0x4, 0x7, -0x2, -0x1, 0x4, 0x2, -0x3, 0x6, 0x4, 0x6, -0x3, 0x6, 0x5, -0x2, -0x1, 0x5,
18628 0x6, -0x6, -0x8, -0x2, -0x3, 0x6, -0x6, 0x5, -0x2, -0x6, 0x5, -0x6, 0x2, 0x1, 0x3, -0x3,
18629 0x7, 0x7, 0x3, -0x1, 0x5, -0x2, -0x3, 0x4, 0x7, -0x7, 0x7, 0x6, -0x2, -0x5, 0x4, -0x5,
18630 -0x1, -0x2, 0x1, 0x4, -0x2, 0x1, -0x3, 0x1, -0x4, 0x3, -0x2, -0x6, -0x4, -0x2, -0x8, 0x2,
18631 });
18632
18633 try testArgs(@Vector(1, u4), .{
18634 0x2,
18635 }, .{
18636 0xa,
18637 });
18638 try testArgs(@Vector(2, u4), .{
18639 0x0, 0xa,
18640 }, .{
18641 0xb, 0xa,
18642 });
18643 try testArgs(@Vector(4, u4), .{
18644 0xb, 0x7, 0x0, 0xd,
18645 }, .{
18646 0x4, 0x5, 0xf, 0x3,
18647 });
18648 try testArgs(@Vector(8, u4), .{
18649 0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7,
18650 }, .{
18651 0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2,
18652 });
18653 try testArgs(@Vector(16, u4), .{
18654 0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf,
18655 }, .{
18656 0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe,
18657 });
18658 try testArgs(@Vector(32, u4), .{
18659 0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6,
18660 0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0,
18661 }, .{
18662 0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3,
18663 0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6,
18664 });
18665 try testArgs(@Vector(64, u4), .{
18666 0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9,
18667 0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4,
18668 0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb,
18669 0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd,
18670 }, .{
18671 0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7,
18672 0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2,
18673 0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6,
18674 0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8,
18675 });
18676 try testArgs(@Vector(128, u4), .{
18677 0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6,
18678 0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3,
18679 0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4,
18680 0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa,
18681 0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7,
18682 0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc,
18683 0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8,
18684 0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1,
18685 }, .{
18686 0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4,
18687 0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6,
18688 0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe,
18689 0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5,
18690 0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7,
18691 0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa,
18692 0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8,
18693 0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4,
18694 });
18695
18696 // workaround https://github.com/ziglang/zig/issues/22914
18697 // TODO: try testArgs(@Vector(1, i5), .{
18698 // 0x03,
18699 // }, .{
18700 // 0x0a,
18701 // });
18702 // try testArgs(@Vector(2, i5), .{
18703 // 0x0c, -0x0e,
18704 // }, .{
18705 // -0x0f, -0x0e,
18706 // });
18707 // try testArgs(@Vector(4, i5), .{
18708 // -0x0a, 0x06, -0x05, 0x09,
18709 // }, .{
18710 // -0x0f, 0x05, 0x05, 0x09,
18711 // });
18712 // try testArgs(@Vector(8, i5), .{
18713 // -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e,
18714 // }, .{
18715 // -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03,
18716 // });
18717 // try testArgs(@Vector(16, i5), .{
18718 // -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10,
18719 // }, .{
18720 // 0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03,
18721 // });
18722 // try testArgs(@Vector(32, i5), .{
18723 // -0x08, -0x05, 0x09, -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f, -0x0b, 0x01, -0x03, 0x03, 0x08, 0x04,
18724 // 0x02, 0x0f, -0x0b, -0x0b, 0x0d, 0x00, 0x09, 0x00, -0x06, -0x08, -0x01, 0x0b, 0x05, 0x03, -0x05, -0x07,
18725 // }, .{
18726 // -0x0c, 0x07, 0x0d, -0x09, 0x0a, 0x06, -0x0b, -0x07, -0x0a, 0x08, 0x07, -0x0d, 0x08, 0x07, 0x09, -0x07,
18727 // 0x0b, -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a, -0x0a, 0x02, -0x07, -0x0a, 0x0d, -0x07, -0x05, -0x0e, 0x05,
18728 // });
18729 // try testArgs(@Vector(64, i5), .{
18730 // 0x04, -0x0d, 0x0d, -0x01, 0x07, 0x0c, 0x00, 0x01, -0x07, 0x0a, -0x01, -0x01, 0x08, -0x0b, -0x03, -0x06,
18731 // -0x03, -0x03, -0x0c, 0x0e, -0x0c, -0x02, 0x07, -0x03, 0x0e, -0x0a, -0x0e, -0x06, -0x08, 0x0a, -0x0c, -0x0c,
18732 // 0x06, -0x04, 0x04, 0x00, 0x05, 0x07, 0x04, 0x06, -0x01, 0x0a, 0x07, -0x08, 0x00, 0x0f, 0x0f, 0x0d,
18733 // -0x07, 0x0f, 0x05, -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e, 0x02, 0x06, 0x0d, 0x06, 0x00, 0x0a,
18734 // }, .{
18735 // 0x02, -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02, 0x0e, 0x07, -0x01, -0x0a, -0x0b, 0x05, -0x0e,
18736 // -0x09, 0x03, 0x08, -0x0d, 0x0d, 0x03, -0x02, 0x0e, 0x0c, 0x03, 0x0b, -0x0d, -0x04, -0x10, 0x0e, 0x0d,
18737 // 0x09, -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08, -0x06, 0x08, -0x0e, 0x02, -0x10, 0x01, 0x01, -0x0a,
18738 // 0x01, -0x09, 0x03, -0x01, 0x05, 0x09, 0x06, -0x03, -0x0a, 0x08, -0x0e, 0x0e, 0x07, -0x05, -0x0c, -0x10,
18739 // });
18740 // try testArgs(@Vector(128, i5), .{
18741 // 0x01, 0x0b, -0x01, -0x10, -0x05, 0x05, -0x09, 0x0e, -0x0e, 0x04, 0x0f, -0x06, 0x0f, 0x04, -0x02, 0x0a,
18742 // -0x08, -0x06, 0x08, -0x07, -0x08, 0x0e, 0x06, 0x0d, -0x07, -0x04, 0x04, -0x0b, 0x02, -0x06, 0x07, -0x10,
18743 // 0x0d, 0x09, 0x0b, -0x04, 0x0e, -0x06, -0x0a, 0x01, 0x06, 0x08, 0x01, -0x0b, -0x09, -0x08, -0x0c, -0x0b,
18744 // 0x07, 0x06, 0x0d, 0x0c, -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05, 0x0b, 0x08, -0x01, 0x00, 0x01, 0x0a,
18745 // 0x00, 0x0a, 0x06, 0x06, -0x10, -0x05, -0x05, -0x0f, 0x02, -0x06, -0x08, -0x08, 0x0f, 0x09, -0x07, -0x05,
18746 // 0x07, 0x06, 0x03, 0x05, 0x02, 0x0f, 0x0d, -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09, 0x05,
18747 // -0x07, -0x07, -0x08, 0x0c, -0x0e, 0x09, -0x0c, -0x0d, 0x07, 0x04, 0x07, -0x03, 0x09, 0x0e, 0x04, 0x02,
18748 // 0x0f, -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c, -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d, -0x0e, 0x04, 0x03,
18749 // }, .{
18750 // -0x08, -0x09, -0x04, 0x0f, -0x0f, -0x08, -0x04, 0x0b, 0x09, -0x0b, -0x02, 0x0f, 0x01, -0x01, -0x0a, -0x0a,
18751 // 0x08, 0x09, 0x0d, -0x06, 0x0f, -0x02, 0x0c, 0x01, 0x0c, 0x02, -0x04, 0x0b, 0x05, 0x02, -0x08, -0x09,
18752 // 0x01, 0x0f, -0x0b, 0x02, -0x06, 0x08, -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c, 0x09, -0x04, 0x08, -0x0a,
18753 // 0x09, -0x05, 0x08, 0x0e, 0x05, 0x03, -0x0a, 0x0d, -0x03, 0x06, 0x0f, -0x09, 0x0a, 0x03, 0x02, 0x0c,
18754 // 0x08, -0x0a, 0x06, 0x0e, 0x08, 0x02, 0x08, -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a, 0x0c, -0x03, 0x04,
18755 // 0x0b, -0x0c, -0x0e, 0x01, 0x07, -0x01, 0x09, 0x0f, -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a, -0x0a, -0x0d,
18756 // -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e, 0x04, -0x01, -0x0b,
18757 // -0x06, 0x0a, 0x0a, -0x0c, -0x0c, 0x0b, -0x02, 0x0c, -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b,
18758 // });
18759 try testArgs(@Vector(1, i5), .{
18760 -0x0f,
18761 }, .{
18762 -0x03,
18763 });
18764 try testArgs(@Vector(2, i5), .{
18765 0x0b, -0x04,
18766 }, .{
18767 -0x05, -0x08,
18768 });
18769 try testArgs(@Vector(4, i5), .{
18770 0x08, 0x0f, -0x06, -0x0d,
18771 }, .{
18772 -0x03, -0x0a, -0x05, -0x03,
18773 });
18774 try testArgs(@Vector(8, i5), .{
18775 0x08, 0x0c, 0x07, 0x00, -0x06, 0x08, 0x08, 0x0d,
18776 }, .{
18777 0x07, 0x09, 0x05, -0x08, 0x08, -0x0e, -0x0e, -0x0e,
18778 });
18779 try testArgs(@Vector(16, i5), .{
18780 0x06, 0x0b, 0x07, 0x0e, 0x0e, 0x02, -0x08, -0x0b, -0x03, 0x09, -0x08, 0x0e, -0x03, -0x0a, 0x01, 0x0b,
18781 }, .{
18782 -0x05, 0x0f, -0x08, -0x10, -0x07, 0x06, 0x08, 0x01, 0x0a, 0x06, 0x05, -0x0f, 0x03, 0x05, 0x0b, -0x06,
18783 });
18784 try testArgs(@Vector(32, i5), .{
18785 0x0e, 0x07, -0x08, 0x0b, 0x04, -0x05, 0x0f, 0x02, 0x04, -0x0c, 0x0d, 0x09, 0x0e, -0x02, -0x0f, 0x04,
18786 -0x03, -0x02, 0x09, -0x0d, 0x01, 0x00, -0x0e, -0x0a, 0x02, -0x06, 0x0c, 0x03, 0x06, 0x0e, 0x06, -0x07,
18787 }, .{
18788 -0x0a, 0x01, 0x0a, -0x10, 0x06, 0x09, 0x0e, 0x03, 0x0e, -0x09, 0x08, -0x08, 0x06, 0x0c, -0x0a, -0x07,
18789 0x04, -0x02, -0x09, 0x0b, 0x0e, -0x03, -0x01, -0x0d, 0x0e, -0x0a, -0x02, 0x08, 0x0e, 0x02, -0x04, -0x05,
18790 });
18791 try testArgs(@Vector(64, i5), .{
18792 0x04, 0x02, -0x04, -0x0a, -0x0b, -0x0b, -0x0c, -0x08, -0x0b, -0x05, 0x0c, 0x0b, 0x05, 0x02, -0x01, -0x06,
18793 -0x09, -0x06, 0x0a, 0x0f, -0x06, -0x0d, 0x0c, 0x05, 0x0b, -0x06, -0x02, 0x09, 0x0e, -0x09, 0x05, 0x0a,
18794 -0x0c, 0x0b, -0x01, -0x04, 0x01, 0x0c, 0x0f, -0x0f, -0x07, 0x0a, 0x04, 0x02, 0x08, -0x01, -0x03, 0x0a,
18795 -0x0e, -0x04, -0x03, -0x0b, -0x01, 0x02, -0x05, 0x08, -0x03, 0x02, -0x01, -0x05, 0x07, -0x09, 0x0f, 0x00,
18796 }, .{
18797 -0x09, -0x02, -0x0a, -0x05, -0x05, -0x0d, 0x04, -0x05, 0x0e, -0x01, -0x07, 0x04, 0x0d, -0x0f, -0x09, -0x04,
18798 -0x0b, -0x0b, 0x0e, 0x01, 0x06, -0x0f, -0x0b, 0x03, -0x04, 0x05, -0x03, -0x09, 0x0a, 0x04, 0x04, -0x06,
18799 -0x02, 0x01, 0x0e, 0x0c, -0x10, 0x0f, -0x09, -0x08, -0x10, -0x02, -0x07, -0x0d, 0x08, 0x07, -0x03, 0x01,
18800 -0x0d, -0x10, -0x07, 0x08, 0x0d, 0x07, 0x09, 0x0f, 0x04, 0x06, -0x05, -0x09, 0x04, -0x04, -0x04, 0x0d,
18801 });
18802 try testArgs(@Vector(128, i5), .{
18803 -0x02, -0x07, -0x03, 0x08, -0x0b, -0x09, -0x0c, 0x0d, -0x0e, 0x08, -0x03, -0x09, 0x0a, 0x02, -0x0d, 0x05,
18804 -0x04, -0x0c, -0x07, 0x08, -0x0a, 0x04, 0x08, -0x07, 0x0c, 0x03, 0x0e, 0x0f, 0x08, -0x08, -0x02, -0x0a,
18805 -0x08, 0x04, -0x0c, -0x09, 0x0a, -0x0e, -0x04, -0x05, 0x02, 0x0d, -0x04, -0x0f, -0x0d, -0x02, 0x05, -0x07,
18806 0x06, 0x0b, -0x0b, -0x04, -0x04, -0x0e, -0x0c, 0x09, 0x02, -0x0c, 0x0e, 0x09, 0x02, -0x04, 0x05, 0x04,
18807 -0x0e, -0x02, -0x08, 0x05, 0x00, 0x0f, -0x0a, 0x0a, 0x0b, 0x0b, 0x02, -0x02, -0x0d, -0x08, -0x0d, 0x03,
18808 0x0b, -0x0b, 0x02, 0x05, -0x06, -0x07, -0x08, -0x0a, -0x09, -0x03, -0x0e, -0x0f, -0x0b, 0x03, 0x00, 0x09,
18809 0x07, 0x0a, -0x0b, 0x06, 0x01, -0x03, -0x0a, -0x09, -0x07, -0x0d, 0x0a, -0x0c, 0x01, -0x09, -0x01, -0x01,
18810 -0x09, 0x00, 0x0f, 0x05, -0x0b, 0x0c, 0x04, 0x0c, 0x0b, -0x08, 0x01, -0x05, -0x04, 0x02, 0x0c, 0x04,
18811 }, .{
18812 -0x08, -0x05, -0x0a, 0x06, -0x06, -0x04, 0x01, 0x07, 0x0d, -0x0a, -0x02, 0x0b, -0x01, -0x0c, -0x04, 0x0c,
18813 -0x06, 0x0d, 0x04, 0x0b, 0x07, 0x0c, 0x02, 0x02, -0x02, 0x09, 0x0d, -0x07, -0x08, 0x07, -0x04, 0x06,
18814 -0x0a, 0x07, 0x01, 0x07, -0x0d, 0x02, 0x09, -0x02, 0x0e, -0x08, -0x03, -0x07, 0x07, 0x0a, -0x0e, -0x06,
18815 0x0b, -0x0d, 0x0c, -0x06, -0x07, 0x0a, 0x0b, -0x0a, 0x05, 0x01, -0x0d, -0x08, -0x0e, -0x08, -0x07, -0x01,
18816 -0x10, 0x07, 0x03, 0x06, 0x03, 0x0a, 0x08, -0x0a, 0x04, -0x09, 0x0c, 0x01, -0x10, 0x02, 0x09, 0x0d,
18817 0x0f, -0x01, -0x06, -0x0a, 0x04, 0x01, 0x07, 0x07, 0x0e, 0x0e, -0x04, -0x0a, -0x03, 0x07, 0x07, -0x10,
18818 -0x04, 0x0e, -0x09, -0x0f, -0x0b, -0x0e, 0x0c, -0x0d, 0x0b, -0x06, 0x0f, -0x0d, 0x0b, 0x04, -0x10, -0x10,
18819 -0x0e, 0x09, 0x0d, -0x02, -0x0e, -0x06, -0x0b, -0x0f, -0x08, -0x0f, -0x0d, -0x0a, -0x02, 0x03, 0x0b, -0x0a,
18820 });
18821
18822 try testArgs(@Vector(1, u5), .{
18823 0x0a,
18824 }, .{
18825 0x1c,
18826 });
18827 try testArgs(@Vector(2, u5), .{
18828 0x01, 0x07,
18829 }, .{
18830 0x03, 0x1d,
18831 });
18832 try testArgs(@Vector(4, u5), .{
18833 0x1c, 0x0d, 0x1f, 0x0a,
18834 }, .{
18835 0x14, 0x03, 0x07, 0x02,
18836 });
18837 try testArgs(@Vector(8, u5), .{
18838 0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10,
18839 }, .{
18840 0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a,
18841 });
18842 try testArgs(@Vector(16, u5), .{
18843 0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05,
18844 }, .{
18845 0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05,
18846 });
18847 try testArgs(@Vector(32, u5), .{
18848 0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00,
18849 0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16,
18850 }, .{
18851 0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b,
18852 0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e,
18853 });
18854 try testArgs(@Vector(64, u5), .{
18855 0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03,
18856 0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06,
18857 0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16,
18858 0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b,
18859 }, .{
18860 0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03,
18861 0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06,
18862 0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f,
18863 0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c,
18864 });
18865 try testArgs(@Vector(128, u5), .{
18866 0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b,
18867 0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f,
18868 0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01,
18869 0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05,
18870 0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d,
18871 0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02,
18872 0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10,
18873 0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01,
18874 }, .{
18875 0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12,
18876 0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07,
18877 0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f,
18878 0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07,
18879 0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a,
18880 0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04,
18881 0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c,
18882 0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09,
18883 });
18884
18885 try testArgs(@Vector(1, i7), .{
18886 0x3b,
18887 }, .{
18888 0x0d,
18889 });
18890 try testArgs(@Vector(2, i7), .{
18891 -0x3e, -0x06,
18892 }, .{
18893 -0x37, -0x0f,
18894 });
18895 try testArgs(@Vector(4, i7), .{
18896 0x35, 0x29, -0x17, 0x39,
18897 }, .{
18898 -0x2c, -0x02, -0x29, -0x1a,
18899 });
18900 try testArgs(@Vector(8, i7), .{
18901 0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c,
18902 }, .{
18903 0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05,
18904 });
18905 try testArgs(@Vector(16, i7), .{
18906 -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31,
18907 }, .{
18908 -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09,
18909 });
18910 try testArgs(@Vector(32, i7), .{
18911 0x04, 0x09, 0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11, -0x2a, 0x29, -0x16, -0x3b, -0x1e,
18912 0x3a, -0x0d, 0x11, 0x16, 0x27, 0x0f, 0x2f, 0x14, 0x3b, -0x2f, -0x3d, 0x1d, -0x08, -0x2e, -0x2a, -0x33,
18913 }, .{
18914 -0x09, 0x3c, 0x15, -0x25, -0x03, 0x0a, 0x11, 0x03, 0x12, -0x1d, -0x23, 0x29, -0x30, -0x35, -0x0e, -0x15,
18915 -0x1c, -0x14, 0x07, 0x29, -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22, -0x15, -0x2d, 0x04, 0x19, 0x14, -0x1d,
18916 });
18917 try testArgs(@Vector(64, i7), .{
18918 0x23, 0x09, -0x13, 0x03, 0x19, -0x35, -0x06, -0x3c, -0x31, 0x12, 0x09, 0x22, -0x15, -0x1c, -0x25, -0x31,
18919 0x3a, -0x31, 0x05, 0x0b, -0x14, 0x38, 0x39, 0x15, 0x15, -0x11, 0x11, -0x21, 0x2f, 0x3d, -0x2e, -0x33,
18920 -0x38, 0x1b, 0x14, 0x1d, 0x0d, -0x16, 0x10, -0x0a, 0x25, 0x0d, 0x1e, 0x1a, -0x15, 0x21, 0x3e, -0x0c,
18921 0x03, 0x3f, 0x1f, 0x17, 0x2c, -0x0a, -0x2b, 0x1f, 0x32, 0x09, 0x0f, -0x15, 0x24, -0x35, 0x27, -0x13,
18922 }, .{
18923 -0x20, 0x25, 0x38, -0x28, 0x06, -0x2f, -0x0b, -0x2b, 0x21, -0x23, -0x08, 0x06, -0x2a, -0x26, 0x33, -0x2f,
18924 0x06, -0x1b, 0x3c, -0x3d, 0x3e, 0x1f, 0x27, 0x28, -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e,
18925 0x0e, -0x2c, -0x0f, -0x3b, 0x1b, 0x17, 0x3f, -0x3a, 0x21, -0x16, 0x11, -0x0a, 0x1b, 0x2a, 0x27, 0x3e,
18926 -0x09, -0x34, 0x20, 0x3e, -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21, 0x13, 0x22, 0x0c, -0x1f, 0x38, 0x21,
18927 });
18928 try testArgs(@Vector(128, i7), .{
18929 -0x38, -0x10, 0x08, -0x2b, 0x3e, -0x19, 0x39, -0x1f, -0x27, -0x10, -0x0c, 0x02, 0x07, 0x10, -0x1a, 0x0b,
18930 0x3c, -0x2e, 0x1b, -0x17, 0x3e, -0x1b, -0x04, 0x35, 0x2d, 0x0d, 0x33, 0x0f, 0x18, 0x0b, 0x1a, -0x09,
18931 0x25, -0x0b, -0x21, 0x3a, -0x28, 0x12, 0x16, 0x03, -0x1f, 0x1d, -0x1c, -0x1a, -0x38, 0x32, 0x3d, -0x2a,
18932 -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02, -0x13, -0x23, 0x2f, 0x0a, -0x22, 0x15, 0x34, -0x06,
18933 -0x2e, -0x3b, 0x26, 0x38, 0x33, -0x29, -0x0c, 0x2e, 0x07, -0x19, 0x3c, -0x35, -0x33, 0x39, 0x3c, 0x37,
18934 -0x07, -0x13, 0x16, 0x05, -0x27, 0x28, -0x2b, -0x07, -0x25, -0x01, 0x1d, -0x0a, -0x01, 0x1d, -0x2a, -0x30,
18935 0x31, 0x0a, -0x24, 0x0c, 0x35, -0x1c, -0x04, 0x21, -0x35, 0x12, 0x19, 0x3d, -0x0c, 0x20, 0x28, -0x22,
18936 -0x3c, 0x09, 0x11, -0x0c, -0x14, -0x39, 0x0f, -0x40, -0x0a, 0x0f, 0x1b, 0x34, -0x27, 0x35, 0x0e, -0x3d,
18937 }, .{
18938 -0x1a, 0x06, 0x1f, -0x24, -0x21, -0x3d, 0x1f, -0x18, 0x2f, -0x38, 0x2f, -0x0f, 0x20, 0x2d, 0x31, -0x09,
18939 -0x1d, 0x3a, 0x24, -0x09, 0x0c, -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29, 0x23, -0x37, -0x05, 0x27, -0x12,
18940 0x23, -0x14, 0x26, 0x36, -0x33, -0x1d, -0x0f, 0x32, 0x2a, -0x34, -0x31, 0x0a, -0x33, -0x34, 0x30, 0x3d,
18941 -0x1a, 0x0f, 0x16, 0x07, 0x2d, -0x2b, 0x2c, -0x2d, 0x34, -0x07, 0x32, 0x3a, 0x2e, -0x1c, 0x2e, 0x0f,
18942 0x02, 0x33, -0x1e, -0x05, -0x40, -0x0a, 0x3d, -0x28, -0x21, -0x2b, -0x18, 0x02, 0x01, -0x2c, -0x16, -0x3b,
18943 0x27, 0x23, -0x19, 0x13, -0x2c, 0x3c, -0x1a, 0x0e, -0x25, -0x19, 0x06, 0x1b, -0x3f, 0x26, 0x30, 0x0d,
18944 -0x0e, -0x2f, -0x28, 0x3b, -0x0e, 0x2d, 0x3d, 0x03, 0x0d, -0x23, 0x02, 0x26, 0x0c, 0x31, -0x10, -0x10,
18945 0x37, -0x38, -0x0f, 0x20, -0x17, 0x02, 0x3e, -0x40, 0x37, 0x22, 0x06, 0x14, -0x31, -0x1e, -0x36, -0x2c,
18946 });
18947
18948 try testArgs(@Vector(1, u7), .{
18949 0x72,
18950 }, .{
18951 0x0c,
18952 });
18953 try testArgs(@Vector(2, u7), .{
18954 0x0c, 0x3a,
18955 }, .{
18956 0x72, 0x0b,
18957 });
18958 try testArgs(@Vector(4, u7), .{
18959 0x68, 0x2b, 0x52, 0x6e,
18960 }, .{
18961 0x74, 0x79, 0x10, 0x67,
18962 });
18963 try testArgs(@Vector(8, u7), .{
18964 0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b,
18965 }, .{
18966 0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c,
18967 });
18968 try testArgs(@Vector(16, u7), .{
18969 0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69,
18970 }, .{
18971 0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b,
18972 });
18973 try testArgs(@Vector(32, u7), .{
18974 0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73,
18975 0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b,
18976 }, .{
18977 0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68,
18978 0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c,
18979 });
18980 try testArgs(@Vector(64, u7), .{
18981 0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75,
18982 0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e,
18983 0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f,
18984 0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b,
18985 }, .{
18986 0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a,
18987 0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05,
18988 0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34,
18989 0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c,
18990 });
18991 try testArgs(@Vector(128, u7), .{
18992 0x5c,
18993 0x65,
18994 0x65,
18995 0x34,
18996 0x31,
18997 0x03,
18998 0x7a,
18999 0x56,
19000 0x16,
19001 0x74,
19002 0x5c,
19003 0x7f,
19004 0x2a,
19005 0x46,
19006 0x2a,
19007 0x5f,
19008 0x62,
19009 0x06,
19010 0x51,
19011 0x23,
19012 0x58,
19013 0x1f,
19014 0x5a,
19015 0x2d,
19016 0x29,
19017 0x21,
19018 0x26,
19019 0x5a,
19020 0x5a,
19021 0x13,
19022 0x13,
19023 0x46,
19024 0x26,
19025 0x1c,
19026 0x06,
19027 0x2d,
19028 0x08,
19029 0x52,
19030 0x5b,
19031 0x6f,
19032 0x2d,
19033 0x4a,
19034 0x00,
19035 0x40,
19036 0x68,
19037 0x27,
19038 0x00,
19039 0x4a,
19040 0x3a,
19041 0x22,
19042 0x2d,
19043 0x5b,
19044 0x05,
19045 0x26,
19046 0x4e,
19047 0x6f,
19048 0x46,
19049 0x4d,
19050 0x14,
19051 0x70,
19052 0x51,
19053 0x04,
19054 0x66,
19055 0x13,
19056 0x4c,
19057 0x7c,
19058 0x67,
19059 0x23,
19060 0x13,
19061 0x55,
19062 0x1b,
19063 0x30,
19064 0x7d,
19065 0x04,
19066 0x47,
19067 0x78,
19068 0x05,
19069 0x09,
19070 0x5a,
19071 0x20,
19072 0x2e,
19073 0x17,
19074 0x11,
19075 0x49,
19076 0x6c,
19077 0x5e,
19078 0x34,
19079 0x3e,
19080 0x66,
19081 0x60,
19082 0x5d,
19083 0x75,
19084 0x48,
19085 0x1d,
19086 0x69,
19087 0x67,
19088 0x40,
19089 0x2d,
19090 0x7b,
19091 0x31,
19092 0x13,
19093 0x60,
19094 0x19,
19095 0x2f,
19096 0x3e,
19097 0x7d,
19098 0x23,
19099 0x6a,
19100 0x0e,
19101 0x16,
19102 0x44,
19103 0x34,
19104 0x5d,
19105 0x5a,
19106 0x2a,
19107 0x0b,
19108 0x64,
19109 0x07,
19110 0x22,
19111 0x5b,
19112 0x24,
19113 0x22,
19114 0x3b,
19115 0x46,
19116 0x23,
19117 0x65,
19118 0x5d,
19119 0x34,
19120 }, .{
19121 0x4b,
19122 0x36,
19123 0x7a,
19124 0x13,
19125 0x5a,
19126 0x4b,
19127 0x69,
19128 0x4b,
19129 0x1d,
19130 0x02,
19131 0x1b,
19132 0x3f,
19133 0x61,
19134 0x21,
19135 0x45,
19136 0x48,
19137 0x44,
19138 0x61,
19139 0x25,
19140 0x42,
19141 0x57,
19142 0x7d,
19143 0x7a,
19144 0x45,
19145 0x22,
19146 0x2e,
19147 0x44,
19148 0x3f,
19149 0x3a,
19150 0x14,
19151 0x07,
19152 0x6e,
19153 0x68,
19154 0x51,
19155 0x03,
19156 0x6b,
19157 0x11,
19158 0x32,
19159 0x6d,
19160 0x6f,
19161 0x44,
19162 0x5a,
19163 0x61,
19164 0x6d,
19165 0x71,
19166 0x66,
19167 0x54,
19168 0x14,
19169 0x5d,
19170 0x56,
19171 0x22,
19172 0x5c,
19173 0x3a,
19174 0x72,
19175 0x16,
19176 0x39,
19177 0x59,
19178 0x3e,
19179 0x27,
19180 0x4d,
19181 0x3d,
19182 0x44,
19183 0x72,
19184 0x2c,
19185 0x71,
19186 0x74,
19187 0x3b,
19188 0x6c,
19189 0x70,
19190 0x39,
19191 0x0f,
19192 0x5c,
19193 0x71,
19194 0x04,
19195 0x67,
19196 0x02,
19197 0x2c,
19198 0x18,
19199 0x0f,
19200 0x14,
19201 0x2d,
19202 0x24,
19203 0x51,
19204 0x34,
19205 0x6d,
19206 0x0c,
19207 0x19,
19208 0x0f,
19209 0x73,
19210 0x79,
19211 0x3d,
19212 0x74,
19213 0x20,
19214 0x15,
19215 0x22,
19216 0x25,
19217 0x09,
19218 0x14,
19219 0x09,
19220 0x71,
19221 0x2d,
19222 0x6f,
19223 0x09,
19224 0x2e,
19225 0x27,
19226 0x75,
19227 0x57,
19228 0x62,
19229 0x4d,
19230 0x07,
19231 0x62,
19232 0x01,
19233 0x41,
19234 0x2d,
19235 0x5d,
19236 0x4c,
19237 0x77,
19238 0x10,
19239 0x7f,
19240 0x30,
19241 0x0f,
19242 0x50,
19243 0x15,
19244 0x39,
19245 0x34,
19246 0x7c,
19247 0x33,
19248 0x16,
19249 });
19250
19251 try testArgs(@Vector(1, i8), .{
19252 -0x54,
19253 }, .{
19254 0x0f,
19255 });
19256 try testArgs(@Vector(2, i8), .{
19257 -0x4d, 0x55,
19258 }, .{
19259 0x7d, -0x5d,
19260 });
19261 try testArgs(@Vector(4, i8), .{
19262 0x73, 0x6f, 0x6e, -0x49,
19263 }, .{
19264 -0x66, 0x23, 0x21, -0x56,
19265 });
19266 try testArgs(@Vector(8, i8), .{
19267 0x44, -0x37, 0x33, -0x2b, -0x1f, 0x3e, 0x50, -0x4d,
19268 }, .{
19269 0x6a, 0x1a, -0x0e, 0x4c, -0x46, 0x03, -0x17, 0x3e,
19270 });
19271 try testArgs(@Vector(16, i8), .{
19272 -0x52, 0x1a, -0x4b, 0x4e, -0x75, 0x33, -0x43, 0x30, 0x71, -0x30, -0x73, -0x53, 0x64, 0x1f, -0x27, 0x36,
19273 }, .{
19274 0x65, 0x77, -0x62, 0x0f, 0x15, 0x52, 0x5c, 0x12, -0x10, 0x36, 0x6d, 0x42, -0x24, -0x79, -0x32, -0x75,
19275 });
19276 try testArgs(@Vector(32, i8), .{
19277 -0x12, -0x1e, 0x18, 0x6e, 0x31, 0x53, -0x6a, -0x34, 0x13, 0x4d, 0x30, -0x7d, -0x31, 0x1e, -0x24, 0x32,
19278 -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b, -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06,
19279 }, .{
19280 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x01, 0x4a,
19281 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, -0x01, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67,
19282 });
19283 try testArgs(@Vector(64, i8), .{
19284 -0x05, 0x76, 0x4e, -0x5c, 0x7b, -0x1a, -0x38, -0x2e, 0x3d, 0x36, 0x01, 0x30, -0x02, -0x71, -0x24, 0x24,
19285 -0x2e, -0x6e, -0x60, 0x74, -0x80, -0x1c, -0x34, -0x08, -0x33, 0x77, 0x1c, -0x0f, 0x45, -0x51, -0x1d, 0x35,
19286 -0x45, 0x44, 0x27, -0x3c, 0x6b, 0x58, -0x6a, -0x26, 0x06, -0x30, -0x21, -0x0a, 0x60, -0x11, -0x05, 0x75,
19287 0x38, 0x72, -0x6d, -0x1f, -0x7f, 0x74, -0x6b, -0x14, -0x80, 0x35, -0x0f, -0x1e, 0x6a, 0x17, -0x74, -0x6c,
19288 }, .{
19289 -0x5d, 0x2d, 0x55, 0x40, -0x7c, 0x67, 0x61, 0x5f, 0x14, 0x5b, -0x0c, -0x4d, -0x5f, 0x25, 0x36, 0x3c,
19290 -0x75, -0x48, -0x2b, 0x76, -0x57, -0x4a, 0x1d, 0x65, -0x32, 0x18, -0x2a, -0x0a, -0x6e, -0x3c, -0x62, 0x4e,
19291 -0x24, -0x3c, 0x7d, -0x79, -0x1a, -0x14, -0x03, -0x56, 0x7a, 0x5f, 0x64, -0x68, 0x5f, -0x10, -0x63, -0x07,
19292 0x79, -0x44, 0x47, 0x7d, 0x6e, 0x77, 0x03, -0x4e, 0x67, 0x38, 0x46, -0x44, -0x41, 0x66, -0x16, -0x0a,
19293 });
19294 try testArgs(@Vector(128, i8), .{
19295 0x30, 0x70, -0x2a, -0x29, -0x35, -0x69, -0x18, 0x2b, 0x4a, -0x17, -0x5f, -0x36, 0x34, -0x26, 0x03, -0x2d,
19296 -0x75, -0x27, -0x07, -0x49, -0x58, 0x00, -0x45, 0x5d, -0x11, -0x68, 0x34, 0x73, -0x4d, 0x7f, -0x25, -0x6a,
19297 0x46, -0x1d, -0x68, 0x04, 0x64, -0x0d, 0x30, 0x27, -0x24, 0x67, 0x3c, -0x7c, -0x2e, -0x24, 0x24, 0x3e,
19298 -0x2c, -0x05, 0x4e, -0x17, 0x6d, 0x57, 0x76, 0x35, -0x3d, 0x51, 0x71, -0x4e, 0x50, 0x26, 0x4a, -0x42,
19299 0x73, -0x36, -0x5d, 0x2a, 0x55, 0x33, -0x2b, -0x76, 0x08, 0x43, 0x77, -0x73, -0x0a, 0x5c, -0x03, -0x50,
19300 -0x0a, -0x1c, -0x20, 0x3c, -0x7e, 0x60, 0x11, -0x77, 0x25, -0x71, 0x31, 0x2d, -0x4b, -0x26, -0x2a, 0x7f,
19301 -0x1f, 0x23, -0x34, -0x1f, 0x35, 0x0d, 0x3e, 0x76, -0x08, 0x2c, 0x12, 0x3e, -0x09, -0x3e, 0x4b, -0x52,
19302 -0x1a, -0x44, -0x53, -0x41, -0x6d, -0x5e, -0x06, -0x04, 0x3f, -0x2e, 0x01, 0x54, 0x19, -0x5a, -0x62, -0x3a,
19303 }, .{
19304 0x42, -0x11, -0x08, -0x64, -0x55, 0x31, 0x27, -0x66, 0x38, 0x5a, 0x25, -0x68, 0x0b, -0x41, -0x0d, 0x60,
19305 -0x17, -0x6d, 0x62, -0x65, -0x5e, -0x1c, -0x35, 0x28, 0x1c, -0x74, -0x7f, -0x1c, 0x3a, 0x4e, 0x05, -0x08,
19306 0x30, -0x77, 0x03, 0x68, -0x2c, 0x5c, 0x74, 0x6a, -0x21, 0x0a, 0x36, -0x55, 0x21, 0x29, -0x05, 0x70,
19307 0x23, 0x3b, 0x0a, 0x7a, 0x19, 0x14, 0x65, -0x1d, 0x2b, 0x65, 0x33, 0x2a, 0x52, -0x63, 0x57, 0x10,
19308 -0x1b, 0x26, -0x46, -0x7e, -0x25, 0x79, -0x01, -0x0d, -0x49, -0x4d, 0x74, 0x03, 0x77, 0x16, 0x03, -0x3d,
19309 0x1c, 0x25, 0x5a, -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b, -0x15, -0x1d, 0x32, 0x31,
19310 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, -0x02, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c,
19311 0x6d, -0x68, -0x71, -0x6b, -0x11, 0x44, -0x75, -0x55, -0x67, -0x52, 0x64, -0x3d, -0x05, -0x76, -0x6d, -0x44,
19312 });
19313
19314 try testArgs(@Vector(1, u8), .{
19315 0x1f,
19316 }, .{
19317 0x06,
19318 });
19319 try testArgs(@Vector(2, u8), .{
19320 0x80, 0x63,
19321 }, .{
19322 0xe4, 0x28,
19323 });
19324 try testArgs(@Vector(4, u8), .{
19325 0x83, 0x9e, 0x1e, 0xc1,
19326 }, .{
19327 0xf0, 0x5c, 0x46, 0x85,
19328 });
19329 try testArgs(@Vector(8, u8), .{
19330 0x1e, 0x4d, 0x9d, 0x2a, 0x4c, 0x74, 0x0a, 0x83,
19331 }, .{
19332 0x28, 0x60, 0xa9, 0xb5, 0xd9, 0xa6, 0xf1, 0xb6,
19333 });
19334 try testArgs(@Vector(16, u8), .{
19335 0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f,
19336 }, .{
19337 0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e,
19338 });
19339 try testArgs(@Vector(32, u8), .{
19340 0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a,
19341 0x4c, 0x05, 0x37, 0xc9, 0x8a, 0xcb, 0x91, 0x23, 0x09, 0x5f, 0xb8, 0x99, 0x4a, 0x75, 0x26, 0xe4,
19342 }, .{
19343 0xff, 0x0f, 0x99, 0x49, 0xa6, 0x25, 0xa7, 0xd4, 0xc9, 0x2f, 0x97, 0x6a, 0x01, 0xd6, 0x6e, 0x41,
19344 0xa4, 0xb5, 0x3c, 0x03, 0xea, 0x82, 0x9c, 0x5f, 0xac, 0x07, 0x16, 0x15, 0x1c, 0x64, 0x25, 0x2f,
19345 });
19346 try testArgs(@Vector(64, u8), .{
19347 0xaa, 0x08, 0xeb, 0xb2, 0xd7, 0x89, 0x0f, 0x98, 0xda, 0x9f, 0xa6, 0x4e, 0x3c, 0xce, 0x1b, 0x1b,
19348 0x9e, 0x5f, 0x2b, 0xd6, 0x59, 0x26, 0x47, 0x05, 0x2a, 0xb7, 0xd1, 0x10, 0xde, 0xd9, 0x84, 0x00,
19349 0x07, 0xc0, 0xaa, 0x6e, 0xfa, 0x3b, 0x97, 0x85, 0xa8, 0x42, 0xd7, 0xa5, 0x90, 0xe6, 0x10, 0x1a,
19350 0x47, 0x84, 0xe1, 0x3e, 0xb0, 0x70, 0x26, 0x3f, 0xea, 0x24, 0xb8, 0x5f, 0xe3, 0xe3, 0x4c, 0xed,
19351 }, .{
19352 0x3b, 0xc5, 0xe0, 0x3d, 0x4f, 0x2e, 0x1d, 0xa9, 0xf7, 0x7b, 0xc7, 0xc1, 0x48, 0xc6, 0xe5, 0x9e,
19353 0x4d, 0xa8, 0x21, 0x37, 0xa1, 0x1a, 0x95, 0x69, 0x89, 0x2f, 0x15, 0x07, 0x3d, 0x7b, 0x69, 0x89,
19354 0xea, 0x87, 0xf0, 0x94, 0x67, 0xf2, 0x3d, 0x04, 0x96, 0x8a, 0xd6, 0x70, 0x7c, 0x16, 0xe7, 0x62,
19355 0xf0, 0x8d, 0x96, 0x65, 0xd1, 0x4a, 0x35, 0x3e, 0x7a, 0x67, 0xa6, 0x1f, 0x37, 0x66, 0xe3, 0x45,
19356 });
19357 try testArgs(@Vector(128, u8), .{
19358 0xa1, 0xd0, 0x7b, 0xf9, 0x7b, 0x77, 0x7b, 0x3d, 0x2d, 0x68, 0xc2, 0x7b, 0xb0, 0xb8, 0xd4, 0x7c,
19359 0x1a, 0x1f, 0xd2, 0x92, 0x3e, 0xcb, 0xc1, 0x6b, 0xb9, 0x4d, 0xf1, 0x67, 0x58, 0x8e, 0x77, 0xa6,
19360 0xb9, 0xdf, 0x10, 0x6f, 0xbe, 0xe3, 0x33, 0xb6, 0x93, 0x77, 0x80, 0xef, 0x09, 0x9d, 0x61, 0x40,
19361 0xa2, 0xf4, 0x52, 0x18, 0x9d, 0xe4, 0xb0, 0xaf, 0x0a, 0xa7, 0x0b, 0x09, 0x67, 0x38, 0x71, 0x04,
19362 0x72, 0xa1, 0xd2, 0xfd, 0xf8, 0xf0, 0xa7, 0x23, 0x24, 0x5b, 0x7d, 0xfb, 0x43, 0xba, 0x6c, 0xc4,
19363 0x83, 0x46, 0x0e, 0x4d, 0x6c, 0x92, 0xab, 0x4f, 0xd2, 0x70, 0x9d, 0xfe, 0xce, 0xf8, 0x05, 0x9f,
19364 0x98, 0x36, 0x9c, 0x90, 0x9a, 0xd0, 0xb5, 0x76, 0x16, 0xe8, 0x25, 0xc2, 0xbd, 0x91, 0xab, 0xf9,
19365 0x6f, 0x6c, 0xc5, 0x60, 0xe5, 0x30, 0xf2, 0xb7, 0x59, 0xc4, 0x9c, 0xdd, 0xdf, 0x04, 0x65, 0xd9,
19366 }, .{
19367 0xed, 0xe1, 0x8a, 0xf6, 0xf3, 0x8b, 0xfd, 0x1d, 0x3c, 0x87, 0xbf, 0xfe, 0x04, 0x52, 0x15, 0x82,
19368 0x0b, 0xb0, 0xcf, 0xcf, 0xf8, 0x03, 0x9c, 0xef, 0xc1, 0x76, 0x7e, 0xe3, 0xe9, 0xa8, 0x18, 0x90,
19369 0xd4, 0xc4, 0x91, 0x15, 0x68, 0x7f, 0x65, 0xd8, 0xe1, 0xb3, 0x23, 0xc2, 0x7d, 0x84, 0x3b, 0xaf,
19370 0x74, 0x69, 0x07, 0x2a, 0x1b, 0x5f, 0x0e, 0x44, 0x0d, 0x2b, 0x9c, 0x82, 0x41, 0xf9, 0x7f, 0xb5,
19371 0xc4, 0xd9, 0xcb, 0xd3, 0xc5, 0x31, 0x8b, 0x5f, 0xda, 0x09, 0x9b, 0x29, 0xa3, 0xb7, 0x13, 0x0d,
19372 0x55, 0x9b, 0x59, 0x33, 0x2a, 0x59, 0x3a, 0x44, 0x1f, 0xd3, 0x40, 0x4e, 0xde, 0x2c, 0xe4, 0x16,
19373 0xfd, 0xc3, 0x02, 0x74, 0xaa, 0x65, 0xfd, 0xc8, 0x2a, 0x8a, 0xdb, 0xae, 0x44, 0x28, 0x62, 0xa4,
19374 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3,
19375 });
19376
19377 try testArgs(@Vector(1, i9), .{
19378 0x002,
19379 }, .{
19380 0x0bd,
19381 });
19382 try testArgs(@Vector(2, i9), .{
19383 0x00c, 0x0b1,
19384 }, .{
19385 -0x00b, -0x009,
19386 });
19387 try testArgs(@Vector(4, i9), .{
19388 0x0b2, 0x02b, -0x09d, -0x03c,
19389 }, .{
19390 0x031, 0x078, 0x016, -0x08a,
19391 });
19392 try testArgs(@Vector(8, i9), .{
19393 0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8,
19394 }, .{
19395 0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003,
19396 });
19397 try testArgs(@Vector(16, i9), .{
19398 0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a,
19399 }, .{
19400 0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0,
19401 });
19402 try testArgs(@Vector(32, i9), .{
19403 -0x003, 0x01b, 0x0b6, -0x009, 0x090, 0x047, -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf, 0x06a, -0x0e0, 0x03f, 0x007, 0x0a1,
19404 0x009, -0x0fb, 0x034, 0x0ba, 0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029, -0x076, 0x044, 0x0d4, 0x083, -0x002, 0x04e,
19405 }, .{
19406 -0x0cb, 0x0e3, 0x014, 0x02f, -0x0da, -0x06a, 0x07f, 0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017, -0x00d, 0x041, 0x03e,
19407 -0x096, -0x008, 0x075, -0x0bc, 0x0f9, -0x0fc, -0x0a7, 0x0ef, 0x0f9, 0x066, 0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6,
19408 });
19409 try testArgs(@Vector(64, i9), .{
19410 -0x016, -0x0ae, 0x08b, -0x0eb, -0x0b2, 0x02f, 0x039, -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb, 0x0ca, -0x049, 0x04e,
19411 -0x019, -0x0d9, -0x0bd, 0x0ae, -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9, 0x02c, 0x0cc, 0x093, -0x022, 0x07a, -0x093,
19412 0x0e5, -0x011, -0x003, 0x070, -0x042, -0x0ad, 0x0be, -0x038, -0x0bf, 0x098, 0x090, -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039,
19413 -0x035, -0x0e5, -0x054, 0x04c, 0x04b, -0x09f, 0x091, -0x039, 0x09b, -0x029, 0x014, -0x0d3, 0x06b, 0x0ae, 0x091, 0x082,
19414 }, .{
19415 -0x0bb, -0x0ec, 0x0fa, 0x055, 0x06f, 0x011, -0x09d, 0x083, -0x066, 0x014, 0x007, 0x002, -0x0ee, -0x0d9, 0x0c3, -0x087,
19416 0x03c, -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b, -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001, -0x0ba, 0x0c4, 0x0bb,
19417 0x032, 0x01e, -0x074, -0x058, -0x040, 0x0aa, 0x077, 0x028, -0x061, 0x076, -0x04e, 0x01a, -0x05f, -0x073, 0x0ea, 0x06e,
19418 -0x069, -0x0a1, -0x041, 0x013, -0x01c, -0x0f8, 0x053, 0x0f8, -0x0c3, 0x058, -0x02d, 0x0f1, -0x045, 0x04b, -0x0b1, -0x0f3,
19419 });
19420 try testArgs(@Vector(128, i9), .{
19421 0x0d4, 0x036, 0x0bd, -0x046, -0x0a7, 0x09e, 0x0dd, 0x043, 0x098, -0x09a, -0x06f, 0x0bb, -0x0b7, 0x021, 0x0a3, 0x0f0,
19422 0x069, -0x08b, 0x0da, 0x016, -0x049, 0x0d0, 0x07b, 0x004, 0x0ad, -0x07c, -0x04e, -0x011, 0x01f, -0x035, 0x028, -0x0c9,
19423 -0x0eb, 0x077, 0x08b, -0x009, 0x024, -0x058, 0x04e, -0x0c0, -0x01d, -0x0a7, 0x088, 0x01b, -0x0f3, -0x0c5, -0x08e, 0x0dc,
19424 0x07d, 0x086, -0x032, 0x0a9, -0x00c, -0x06a, 0x06c, 0x032, 0x083, 0x0ec, 0x0ec, -0x0a6, 0x029, 0x044, -0x07f, 0x068,
19425 -0x038, 0x0f6, 0x0b5, -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c, -0x037, 0x0cc, -0x033, 0x08a, -0x0b4, -0x039,
19426 0x01e, 0x06c, 0x015, -0x081, -0x029, 0x017, -0x080, -0x01e, -0x081, 0x04f, -0x071, -0x073, 0x0c3, 0x079, 0x0ad, 0x087,
19427 -0x072, 0x067, -0x064, -0x0d4, 0x0b4, 0x003, 0x0b1, 0x0bb, 0x0cc, -0x0e9, 0x0e7, 0x015, 0x07b, 0x0e4, -0x0ee, -0x07f,
19428 -0x0bf, 0x0cd, -0x056, 0x0ea, 0x0e5, 0x0fa, 0x0e1, -0x087, 0x0fe, 0x017, 0x071, -0x0d1, -0x053, -0x088, -0x0ef, 0x01b,
19429 }, .{
19430 0x0ea, -0x018, 0x0ab, 0x039, 0x0ec, 0x0cc, -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc, 0x099, -0x03c, -0x0b4,
19431 -0x0fe, -0x0ce, 0x0d6, -0x084, 0x08f, 0x04b, 0x0cc, -0x023, 0x01e, -0x09c, 0x058, 0x0f4, -0x0a7, 0x085, -0x049, -0x050,
19432 0x0f3, -0x036, -0x0fe, 0x070, -0x0a2, -0x081, -0x066, 0x057, -0x017, -0x0c8, 0x070, 0x09b, -0x0e4, -0x03b, -0x0d9, 0x081,
19433 0x041, 0x0ec, -0x062, 0x0b9, -0x0d2, -0x02a, 0x0ab, 0x072, 0x001, -0x082, -0x0cd, 0x0c8, 0x017, -0x09d, 0x094, -0x027,
19434 0x09c, 0x024, -0x0ec, 0x02f, 0x066, -0x08e, 0x0ee, 0x099, 0x08e, -0x0e5, -0x094, 0x0bb, 0x02f, -0x0fe, -0x07e, -0x0ad,
19435 0x05c, 0x066, 0x07e, -0x0a9, 0x0fe, -0x0e3, -0x068, 0x058, -0x007, 0x0d6, -0x0e8, -0x0d6, 0x038, 0x0b8, -0x0b2, 0x0c1,
19436 0x09a, 0x02f, 0x0d9, 0x07d, 0x0fc, 0x0f7, -0x005, -0x01c, 0x0c2, 0x066, 0x064, -0x096, -0x040, 0x065, -0x00d, -0x063,
19437 0x031, -0x088, 0x090, -0x077, 0x0e2, 0x0a8, -0x0e0, -0x077, 0x0eb, 0x0c3, -0x0ad, 0x008, 0x04e, -0x095, -0x041, -0x0a6,
19438 });
19439
19440 try testArgs(@Vector(1, u9), .{
19441 0x09e,
19442 }, .{
19443 0x171,
19444 });
19445 try testArgs(@Vector(2, u9), .{
19446 0x0bf, 0x042,
19447 }, .{
19448 0x154, 0x14b,
19449 });
19450 try testArgs(@Vector(4, u9), .{
19451 0x0a5, 0x1ba, 0x1ef, 0x0b3,
19452 }, .{
19453 0x15d, 0x1d3, 0x00e, 0x13b,
19454 });
19455 try testArgs(@Vector(8, u9), .{
19456 0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f,
19457 }, .{
19458 0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052,
19459 });
19460 try testArgs(@Vector(16, u9), .{
19461 0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c,
19462 }, .{
19463 0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d,
19464 });
19465 try testArgs(@Vector(32, u9), .{
19466 0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f,
19467 0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2,
19468 }, .{
19469 0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad,
19470 0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2,
19471 });
19472 try testArgs(@Vector(64, u9), .{
19473 0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066,
19474 0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e,
19475 0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170,
19476 0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a,
19477 }, .{
19478 0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e,
19479 0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d,
19480 0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe,
19481 0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b,
19482 });
19483 try testArgs(@Vector(128, u9), .{
19484 0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098,
19485 0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097,
19486 0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c,
19487 0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199,
19488 0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c,
19489 0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe,
19490 0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180,
19491 0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152,
19492 }, .{
19493 0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029,
19494 0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7,
19495 0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e,
19496 0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032,
19497 0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7,
19498 0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec,
19499 0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196,
19500 0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2,
19501 });
19502
19503 try testArgs(@Vector(1, i15), .{
19504 0x1309,
19505 }, .{
19506 0x1422,
19507 });
19508 try testArgs(@Vector(2, i15), .{
19509 0x32e8, 0x3d81,
19510 }, .{
19511 0x195c, 0x13e8,
19512 });
19513 try testArgs(@Vector(4, i15), .{
19514 -0x3485, 0x2320, -0x1725, 0x1e6e,
19515 }, .{
19516 0x2910, 0x3293, 0x3144, -0x3bbc,
19517 });
19518 try testArgs(@Vector(8, i15), .{
19519 0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace,
19520 }, .{
19521 -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f,
19522 });
19523 try testArgs(@Vector(16, i15), .{
19524 -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2,
19525 0x25ec, 0x3cf1, 0x07ea, 0x3972, 0x09d8, -0x18a6, 0x06dd, -0x1c34,
19526 }, .{
19527 -0x0ec7, 0x1144, -0x1a94, 0x255f, -0x1fbb, -0x1500, -0x0e4f, 0x0b67,
19528 0x1352, -0x0d6b, 0x2f3e, -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6,
19529 });
19530 try testArgs(@Vector(32, i15), .{
19531 -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778, 0x394a,
19532 -0x0383, -0x2fb7, 0x04cf, 0x033a, 0x2bff, 0x3997, -0x112c, 0x3a1a,
19533 0x1adf, 0x270b, 0x182e, -0x23f6, 0x1a33, 0x2644, -0x0b41, -0x1c48,
19534 0x1c2d, -0x2a40, 0x007c, 0x1a62, 0x30d9, 0x0e4b, 0x32ee, 0x2b46,
19535 }, .{
19536 0x1af0, 0x286f, -0x14fe, 0x2318, 0x002a, -0x26b2, 0x350b, 0x0884,
19537 0x3011, 0x276a, 0x2b2a, 0x22d3, -0x1ece, 0x0143, 0x2f5b, -0x0fa2,
19538 0x2412, -0x3d86, -0x3774, -0x09a5, 0x0fbf, 0x32f7, -0x0a23, -0x3d5a,
19539 -0x1523, -0x27c5, 0x097f, 0x2923, 0x3060, 0x113e, -0x0643, -0x1287,
19540 });
19541 try testArgs(@Vector(64, i15), .{
19542 0x0419, 0x1803, -0x3897, 0x2b0c, 0x08a3, -0x39d0, 0x174e, -0x29c6,
19543 0x0152, -0x1078, 0x1113, 0x23bf, 0x0990, -0x2777, 0x2ba4, -0x058b,
19544 -0x2d4a, -0x23ba, 0x3875, -0x1720, -0x2625, -0x1c8f, 0x1f7c, 0x3f73,
19545 0x3780, -0x3043, -0x0d8d, 0x2ced, 0x091a, 0x3481, -0x1917, -0x352f,
19546 0x34c7, 0x322f, -0x20ae, -0x0653, 0x1c82, 0x09a8, -0x1a0b, -0x1dff,
19547 -0x24c2, -0x2592, -0x3ff7, 0x1515, -0x3d32, 0x1e9e, -0x334d, 0x352b,
19548 -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c, -0x2bad, -0x2682, 0x32cf,
19549 0x31e4, -0x085c, -0x0c84, -0x2f11, 0x03ba, -0x0111, -0x2634, 0x344f,
19550 }, .{
19551 0x011a, 0x186c, -0x2d7e, 0x29b1, 0x2cfb, -0x077b, 0x3e8c, -0x3a62,
19552 0x3575, 0x35f0, -0x2529, -0x3040, 0x398e, -0x0c56, 0x2aa5, 0x0a72,
19553 -0x0c36, -0x2c53, 0x275b, -0x1155, 0x1a9d, -0x34af, -0x3d4f, 0x14a0,
19554 -0x0b88, 0x0b34, 0x2d60, 0x19ee, -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b,
19555 -0x23f4, 0x0472, 0x1977, -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f,
19556 -0x2dcb, 0x2e99, 0x0dd1, 0x0377, -0x3f91, -0x3719, 0x0248, 0x3c40,
19557 -0x08d4, -0x2f12, -0x12ee, 0x3bc0, 0x3c4a, 0x1ff3, -0x1096, -0x37e0,
19558 -0x0879, -0x354f, -0x2277, 0x1ced, 0x0833, -0x0f7e, 0x2070, 0x0d81,
19559 });
19560
19561 try testArgs(@Vector(1, u15), .{
19562 0x18c0,
19563 }, .{
19564 0x0c85,
19565 });
19566 try testArgs(@Vector(2, u15), .{
19567 0x3697, 0x744b,
19568 }, .{
19569 0x60d5, 0x4172,
19570 });
19571 try testArgs(@Vector(4, u15), .{
19572 0x7c31, 0x62c3, 0x7fe9, 0x4a52,
19573 }, .{
19574 0x28bf, 0x58a9, 0x09d5, 0x111f,
19575 });
19576 try testArgs(@Vector(8, u15), .{
19577 0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665,
19578 }, .{
19579 0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66,
19580 });
19581 try testArgs(@Vector(16, u15), .{
19582 0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43,
19583 0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f,
19584 }, .{
19585 0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2,
19586 0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3,
19587 });
19588 try testArgs(@Vector(32, u15), .{
19589 0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074,
19590 0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc,
19591 0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850,
19592 0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c,
19593 }, .{
19594 0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89,
19595 0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda,
19596 0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6,
19597 0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960,
19598 });
19599 try testArgs(@Vector(64, u15), .{
19600 0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a,
19601 0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7,
19602 0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0,
19603 0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6,
19604 0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98,
19605 0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2,
19606 0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e,
19607 0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d,
19608 }, .{
19609 0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1,
19610 0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849,
19611 0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f,
19612 0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97,
19613 0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3,
19614 0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2,
19615 0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc,
19616 0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29,
19617 });
19618
19619 try testArgs(@Vector(1, i16), .{
19620 -0x7b9c,
19621 }, .{
19622 0x600a,
19623 });
19624 try testArgs(@Vector(2, i16), .{
19625 0x43cc, -0x1421,
19626 }, .{
19627 -0x2b0e, 0x4d99,
19628 });
19629 try testArgs(@Vector(4, i16), .{
19630 0x558f, 0x6d92, 0x488f, 0x0a04,
19631 }, .{
19632 -0x01a9,
19633 0x2ee4,
19634 0x24a9,
19635 -0x5fee,
19636 });
19637 try testArgs(@Vector(8, i16), .{
19638 -0x7e5d, -0x02e4, -0x3a72, -0x2e30, 0x7c87, 0x3ea0, 0x4f02, 0x06e4,
19639 }, .{
19640 -0x417f, 0x5a13, -0x117b, 0x4c28, -0x3769, -0x56a8, 0x1656, -0x4431,
19641 });
19642 try testArgs(@Vector(16, i16), .{
19643 0x04be, 0x774a, 0x7395, -0x6ca2, -0x21a0, 0x35be, 0x186c, 0x5991,
19644 -0x1a82, 0x4527, -0x2278, -0x3554, 0x42c1, 0x7f53, -0x670d, 0x1fad,
19645 }, .{
19646 0x7a7d, 0x47dd, 0x1975, 0x4028, 0x26ef, -0x24f5, -0x77c9, -0x19a5,
19647 -0x4b04, -0x6939, -0x1b8d, 0x3718, -0x78e6, 0x0941, -0x1208, -0x392d,
19648 });
19649 try testArgs(@Vector(32, i16), .{
19650 0x4cde, 0x3ab0, 0x354e, 0x0bc0, -0x5333, 0x4857, -0x7ccf, -0x69da,
19651 0x6ab8, 0x2bf3, 0x1c5a, 0x7b11, -0x5653, 0x7bc5, 0x497e, -0x0b55,
19652 0x7aa8, -0x5a8c, -0x6d05, 0x6210, 0x1b64, 0x3f6f, 0x1a02, 0x65e4,
19653 -0x6795, 0x5867, -0x6faf, -0x07cb, -0x762c, -0x7500, 0x1f1c, -0x4348,
19654 }, .{
19655 0x72f6, -0x5405, -0x3aac, 0x2857, 0x34cd, -0x1dce, -0x56d8, 0x7150,
19656 -0x6549, 0x61bd, -0x3a9f, -0x1e02, -0x5a5a, -0x7910, -0x166d, 0x7c8e,
19657 -0x5292, -0x6c6e, -0x37e3, 0x1514, 0x1787, 0x58cb, -0x4d99, -0x6c15,
19658 0x592e, -0x045f, 0x7682, -0x1eef, 0x1fb2, -0x7117, -0x2a17, -0x2d8e,
19659 });
19660 try testArgs(@Vector(64, i16), .{
19661 0x29c3, -0x1b1f, -0x17ce, -0x50d0, -0x5de3, 0x5ffd, 0x184a, -0x7769,
19662 0x445e, 0x0d8a, 0x7844, -0x757d, 0x2b32, 0x5374, -0x6ab2, -0x71c4,
19663 0x38f9, 0x347f, 0x2d4c, 0x69a4, -0x2f92, -0x4479, 0x427b, -0x0c5f,
19664 0x15ae, 0x2c86, 0x1864, -0x0095, 0x6803, -0x3484, 0x1001, -0x0560,
19665 -0x0824, 0x7bf6, 0x7a3c, -0x458a, -0x65cc, -0x54b1, -0x75c6, 0x782e,
19666 0x35a7, -0x3188, -0x58ba, 0x40d0, -0x4a9c, 0x6b79, 0x1ef5, 0x67a2,
19667 -0x3fb8, 0x1885, -0x093d, -0x4802, 0x0379, 0x2f52, 0x7f1f, 0x256c,
19668 0x1052, 0x1b3b, -0x6146, 0x7e0d, 0x79ca, -0x79ee, 0x3d58, 0x7482,
19669 }, .{
19670 -0x0017, -0x3fdd, -0x6f93, 0x6178, 0x5c2b, 0x4eb3, 0x685b, 0x12c8,
19671 0x0290, -0x34f4, -0x6572, 0x3ab6, -0x3ed1, -0x5e5f, 0x3a90, -0x4540,
19672 -0x2098, 0x6bde, 0x1246, 0x2212, -0x4d6a, -0x2a5a, 0x5cc4, -0x240f,
19673 0x51b2, 0x5ec0, -0x5b5f, -0x1b6e, -0x57a5, -0x06bd, -0x5132, 0x7889,
19674 0x2817, 0x6ada, -0x6b46, -0x6a37, -0x6475, -0x5ff4, 0x5a27, 0x1dfa,
19675 0x6bd6, -0x49da, -0x09bf, -0x7c53, 0x2cd3, -0x6be0, -0x2dca, 0x44bd,
19676 -0x1b95, 0x7680, -0x5bb0, 0x7ad7, -0x1988, 0x149f, 0x631e, -0x1d2d,
19677 0x632b, 0x55c7, -0x3433, 0x0dde, -0x27a7, 0x560e, -0x2063, 0x4570,
19678 });
19679
19680 try testArgs(@Vector(1, u16), .{
19681 0x9d6f,
19682 }, .{
19683 0x44b1,
19684 });
19685 try testArgs(@Vector(2, u16), .{
19686 0xa0fa, 0xc365,
19687 }, .{
19688 0xe736, 0xc394,
19689 });
19690 try testArgs(@Vector(4, u16), .{
19691 0x9608, 0xa558, 0x161b, 0x206f,
19692 }, .{
19693 0x3088, 0xf25c, 0x7837, 0x9b3f,
19694 });
19695 try testArgs(@Vector(8, u16), .{
19696 0xcf61, 0xb121, 0x3cf1, 0x3e9f, 0x43a7, 0x8d69, 0x96f5, 0xc11e,
19697 }, .{
19698 0xee30, 0x82f0, 0x270b, 0x1498, 0x4c60, 0x6e72, 0x0b64, 0x02d4,
19699 });
19700 try testArgs(@Vector(16, u16), .{
19701 0x9191, 0xd23e, 0xf844, 0xd84a, 0xe907, 0xf1e8, 0x712d, 0x90af,
19702 0x6541, 0x3fa6, 0x92eb, 0xe35a, 0xc0c9, 0xcb47, 0xb790, 0x4453,
19703 }, .{
19704 0x21c3, 0x4039, 0x9b71, 0x60bd, 0xcd7f, 0x2ec8, 0x50ba, 0xe810,
19705 0xebd4, 0x06e5, 0xed18, 0x2f66, 0x7e31, 0xe282, 0xad63, 0xb25e,
19706 });
19707 try testArgs(@Vector(32, u16), .{
19708 0x6b6a, 0x30a9, 0xc267, 0x2231, 0xbf4c, 0x00bc, 0x9c2c, 0x2928,
19709 0xecad, 0x82df, 0xcfb0, 0xa4e5, 0x909b, 0x1b05, 0xaf40, 0x1fd9,
19710 0xcec6, 0xd8dc, 0xd4b5, 0x6d59, 0x8e3f, 0x4d8a, 0xb83a, 0x808e,
19711 0x47e2, 0x5782, 0x59bf, 0xcefc, 0x5179, 0x3f48, 0x93dc, 0x66d2,
19712 }, .{
19713 0x1be8, 0xe98c, 0xf9b3, 0xb008, 0x2f8d, 0xf087, 0xc9b9, 0x75aa,
19714 0xbd16, 0x9540, 0xc5bd, 0x2b2c, 0xd43f, 0x9394, 0x3e1d, 0xf695,
19715 0x167d, 0xff7a, 0xf09d, 0xdff8, 0xdfa2, 0xc779, 0x70b7, 0x01bd,
19716 0x46b3, 0x995a, 0xb7bc, 0xa79d, 0x5542, 0x961e, 0x37cd, 0x9c2a,
19717 });
19718 try testArgs(@Vector(64, u16), .{
19719 0x6b87, 0xfd84, 0x436b, 0xe345, 0xfb82, 0x81fc, 0x0992, 0x45f9,
19720 0x5527, 0x1f6d, 0xda46, 0x6a16, 0xf6e1, 0x8fb7, 0x3619, 0xdfe3,
19721 0x64ce, 0x8ac6, 0x3ae8, 0x30e3, 0xec3b, 0x4ba7, 0x02a4, 0xa694,
19722 0x8e68, 0x8f0c, 0x5e30, 0x0e55, 0x6538, 0x9852, 0xea35, 0x7be2,
19723 0xdabd, 0x57e6, 0x5b38, 0x0fb2, 0x2604, 0x85e7, 0x6595, 0x8de9,
19724 0x49b1, 0xe9a2, 0x3758, 0xa4d9, 0x505b, 0xc9d3, 0xddc5, 0x9a43,
19725 0xfd44, 0x50f5, 0x379e, 0x03b6, 0x6375, 0x692f, 0x5586, 0xc717,
19726 0x94dd, 0xee06, 0xb32d, 0x0bb9, 0x0e35, 0x5f8f, 0x0ba4, 0x19a8,
19727 }, .{
19728 0xbeeb, 0x3e54, 0x6486, 0x5167, 0xe432, 0x57cf, 0x9cac, 0x922e,
19729 0xd2f8, 0x5614, 0x2e7f, 0x19cf, 0x9a07, 0x0524, 0x168f, 0x4464,
19730 0x4def, 0x83ce, 0x97b4, 0xf269, 0xda5f, 0x28c1, 0x9cc3, 0xfa7c,
19731 0x25a0, 0x912d, 0x25b2, 0xd60d, 0xcd82, 0x0e03, 0x40cc, 0xc9dc,
19732 0x18eb, 0xc609, 0xb06d, 0x29e0, 0xf3c7, 0x997b, 0x8ca2, 0xa750,
19733 0xc9bc, 0x8f0e, 0x3916, 0xd905, 0x94f8, 0x397f, 0x98b5, 0xc61d,
19734 0x05db, 0x3e7a, 0xf750, 0xe8de, 0x3225, 0x81d9, 0x612e, 0x0a7e,
19735 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc,
19736 });
19737
19738 try testArgs(@Vector(1, i17), .{
19739 0x0538f,
19740 }, .{
19741 0x01de0,
19742 });
19743 try testArgs(@Vector(2, i17), .{
19744 0x0cb5d, 0x00c0b,
19745 }, .{
19746 -0x0ef1d, -0x0797c,
19747 });
19748 try testArgs(@Vector(4, i17), .{
19749 -0x06cbb, 0x08fcd, 0x05d91, -0x05824,
19750 }, .{
19751 0x0714b, 0x09218, -0x0c0d8, 0x000dd,
19752 });
19753 try testArgs(@Vector(8, i17), .{
19754 0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79,
19755 }, .{
19756 0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f,
19757 });
19758 try testArgs(@Vector(16, i17), .{
19759 -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d,
19760 0x042d2, 0x06121, 0x0241f, 0x06833, 0x0a33b, 0x0f526, 0x0671a, 0x0c2a3,
19761 }, .{
19762 0x02be2, -0x08589, 0x0d95c, -0x001cc, -0x03183, 0x08c1a, -0x001db, 0x07604,
19763 0x08d92, 0x094ad, -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e,
19764 });
19765 try testArgs(@Vector(32, i17), .{
19766 0x01222, 0x022bc, 0x042df, 0x02205, -0x06de8, -0x0aaaf, 0x0fa4c, -0x0c708,
19767 -0x06edd, -0x0acbe, 0x0b01f, 0x003f5, -0x0b82a, 0x0a189, -0x04f4b, 0x02122,
19768 -0x0debd, -0x0b05f, 0x091b6, -0x074ff, 0x054e5, -0x03355, 0x08ab0, 0x0c3c8,
19769 -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99, -0x0f096, 0x0e064,
19770 }, .{
19771 0x0d1c0, 0x02f93, 0x0e28c, 0x0862d, -0x09e1e, -0x02247, -0x01b56, 0x06633,
19772 0x0fdcc, -0x0731f, 0x0e084, 0x0b865, 0x089ac, -0x09e31, 0x0c730, 0x0af1d,
19773 0x0c9b2, -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593, -0x02c83, -0x04e28, 0x0f375,
19774 -0x0e805, 0x0390f, 0x042a3, -0x02aed, 0x03a5a, 0x070d3, -0x0ed6a, 0x02b14,
19775 });
19776 try testArgs(@Vector(64, i17), .{
19777 0x0be66, 0x0e4fb, -0x0b918, -0x029b8, 0x019e8, 0x00621, 0x0e380, 0x040f6,
19778 -0x0d095, 0x0b4d8, -0x0a3ad, -0x0eaf2, 0x03bd3, 0x0635c, 0x02444, -0x0830f,
19779 0x01239, -0x037ed, -0x071d1, 0x057e7, -0x02cdb, 0x0504c, 0x0612c, -0x005bf,
19780 -0x04793, 0x03909, 0x0061c, -0x06423, 0x040d6, 0x0bc6a, -0x09204, 0x0e890,
19781 0x04b98, 0x00257, 0x0dc85, -0x0af2b, -0x0a1e7, 0x04ff6, 0x0b680, -0x07c61,
19782 -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8, 0x06b52, -0x0d619, -0x09344,
19783 -0x09b96, 0x0b81e, 0x04df8, -0x012f6, -0x0c3bd, 0x067cc, -0x0fa47, -0x05e93,
19784 0x07d29, 0x00d87, 0x0de1f, 0x0d24f, -0x0aede, -0x03414, -0x09a6c, 0x094dc,
19785 }, .{
19786 0x03d8e, -0x0f297, -0x0d810, 0x05b8e, -0x0630e, -0x0656f, 0x02f56, 0x0190b,
19787 0x0a1e6, -0x0783a, -0x00bde, 0x01bb2, -0x093a5, -0x02b3f, 0x0198c, 0x0cc55,
19788 0x04ec1, -0x0ed31, -0x00a80, -0x0be6d, 0x0712b, 0x0451b, 0x067a4, 0x061cd,
19789 0x0e799, -0x06c74, -0x09b05, 0x0dc73, -0x0a87d, -0x0cf60, -0x00f07, 0x0b101,
19790 0x06d5b, 0x09d61, -0x01092, 0x002ee, 0x0f192, 0x0024b, 0x04778, 0x06d05,
19791 -0x0e460, 0x08524, -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5,
19792 0x071fe, 0x016d5, -0x076e2, -0x035d8, 0x02763, -0x0676f, -0x0a9aa, -0x0ab0b,
19793 0x012de, -0x00d05, 0x0f528, 0x07837, 0x0fc4e, -0x06304, 0x0616f, -0x0b10d,
19794 });
19795
19796 try testArgs(@Vector(1, u17), .{
19797 0x17ba6,
19798 }, .{
19799 0x1ac3a,
19800 });
19801 try testArgs(@Vector(2, u17), .{
19802 0x1d26d, 0x18548,
19803 }, .{
19804 0x0c0eb, 0x1bbc8,
19805 });
19806 try testArgs(@Vector(4, u17), .{
19807 0x1a01c, 0x12671, 0x175cc, 0x0ed36,
19808 }, .{
19809 0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18,
19810 });
19811 try testArgs(@Vector(8, u17), .{
19812 0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df,
19813 }, .{
19814 0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5,
19815 });
19816 try testArgs(@Vector(16, u17), .{
19817 0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254,
19818 0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38,
19819 }, .{
19820 0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6,
19821 0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a,
19822 });
19823 try testArgs(@Vector(32, u17), .{
19824 0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560,
19825 0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5,
19826 0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb,
19827 0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299,
19828 }, .{
19829 0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831,
19830 0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684,
19831 0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1,
19832 0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee,
19833 });
19834 try testArgs(@Vector(64, u17), .{
19835 0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc,
19836 0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c,
19837 0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355,
19838 0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388,
19839 0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136,
19840 0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428,
19841 0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7,
19842 0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7,
19843 }, .{
19844 0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6,
19845 0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18,
19846 0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884,
19847 0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43,
19848 0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791,
19849 0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1,
19850 0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146,
19851 0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5,
19852 });
19853
19854 try testArgs(@Vector(1, i31), .{
19855 0x2b94a60e,
19856 }, .{
19857 0x20451023,
19858 });
19859 try testArgs(@Vector(2, i31), .{
19860 0x21d4d18c, -0x1f73454a,
19861 }, .{
19862 -0x18dcc667, -0x2e81b7f1,
19863 });
19864 try testArgs(@Vector(4, i31), .{
19865 -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669,
19866 }, .{
19867 -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3,
19868 });
19869 try testArgs(@Vector(8, i31), .{
19870 0x0ffaa22c, 0x15914f94, -0x20cec195, -0x35e7b06a,
19871 -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e,
19872 }, .{
19873 -0x178ffdb4, -0x10934a93, 0x08c3b058, -0x1579a89f,
19874 0x2340c302, 0x00280e85, -0x38983c31, 0x0349891e,
19875 });
19876 try testArgs(@Vector(16, i31), .{
19877 -0x11bc6f72, 0x1ca1ca00, 0x0b49c711, -0x07fd7d21,
19878 0x20ab59d2, -0x07f45e94, -0x0d33151d, 0x065b8bff,
19879 0x2231354e, 0x21ff00a7, -0x35061bb0, -0x1135899e,
19880 0x2ed1c690, -0x1c1b598f, -0x19157726, -0x11c4d2c7,
19881 }, .{
19882 0x304dbbfb, -0x3e59fd39, 0x1029151a, -0x1e4d2063,
19883 -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749,
19884 0x380ae142, 0x357f1b30, -0x17ccaa0d, -0x32cd12b4,
19885 0x305256f7, -0x298ce473, 0x244faaf4, 0x23450241,
19886 });
19887 try testArgs(@Vector(32, i31), .{
19888 -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f, 0x2a4f2d06,
19889 -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7,
19890 0x357e8c45, 0x0434b6b9, 0x28a3c5f9, 0x2d5b9944,
19891 0x316614a1, 0x0c12a228, 0x0422665d, 0x33c0dec9,
19892 0x0a7ede17, -0x02e88ae9, -0x39e76560, 0x1e4b90af,
19893 0x0a1527bb, 0x3a9f0405, 0x163b6eae, -0x3ff84429,
19894 0x1eb85fcc, 0x265f1f44, 0x2536ec34, -0x30c952a2,
19895 -0x1f7864e5, 0x033737cd, -0x20b5718a, -0x0aad3a2f,
19896 }, .{
19897 -0x2455af85, 0x210b1040, 0x39915c7d, 0x2d56c08e,
19898 0x1f318b8d, -0x1e125926, -0x3faaabbb, -0x254d4da5,
19899 -0x1b2ded0f, -0x27fa4874, 0x02c0d73b, 0x123e9344,
19900 0x0351c023, 0x14cca255, -0x2072b9d7, 0x1e624059,
19901 -0x07d014a1, 0x2eda3228, -0x300ff9b4, 0x333f25ad,
19902 -0x3c653e21, 0x04b4a50e, -0x20f17e80, 0x29063cd1,
19903 0x2d52f6ad, -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c,
19904 0x397162ee, -0x2aa6708b, -0x0ef146b4, 0x04f36039,
19905 });
19906
19907 try testArgs(@Vector(1, u31), .{
19908 0x3ed1fb2d,
19909 }, .{
19910 0x1b75c3fd,
19911 });
19912 try testArgs(@Vector(2, u31), .{
19913 0x38754d45, 0x04a454d9,
19914 }, .{
19915 0x7d06646d, 0x228e6c44,
19916 });
19917 try testArgs(@Vector(4, u31), .{
19918 0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c,
19919 }, .{
19920 0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1,
19921 });
19922 try testArgs(@Vector(8, u31), .{
19923 0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682,
19924 0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e,
19925 }, .{
19926 0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd,
19927 0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78,
19928 });
19929 try testArgs(@Vector(16, u31), .{
19930 0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc,
19931 0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2,
19932 0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9,
19933 0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f,
19934 }, .{
19935 0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0,
19936 0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3,
19937 0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71,
19938 0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57,
19939 });
19940 try testArgs(@Vector(32, u31), .{
19941 0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477,
19942 0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc,
19943 0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27,
19944 0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994,
19945 0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be,
19946 0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0,
19947 0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73,
19948 0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737,
19949 }, .{
19950 0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42,
19951 0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53,
19952 0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77,
19953 0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b,
19954 0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d,
19955 0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db,
19956 0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4,
19957 0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338,
19958 });
19959
19960 try testArgs(@Vector(1, i32), .{
19961 0x7aef7b1e,
19962 }, .{
19963 0x60310858,
19964 });
19965 try testArgs(@Vector(2, i32), .{
19966 -0x21910ac9, 0x669f37ef,
19967 }, .{
19968 0x1a2a1681, 0x003b1fdf,
19969 });
19970 try testArgs(@Vector(4, i32), .{
19971 0x7906cf0d, 0x4818a45f, -0x0a2833b6, 0x51a018c9,
19972 }, .{
19973 -0x05a3e6a7, -0x47f4a500, 0x50d1141f, -0x264c85c2,
19974 });
19975 try testArgs(@Vector(8, i32), .{
19976 0x7566235a, -0x7720144f, -0x7d4f5489, 0x3cd736c8,
19977 -0x77388801, 0x4e7f955a, 0x4cdf52bc, 0x50b0b53f,
19978 }, .{
19979 0x00ed6fc5, 0x37320361, 0x70c563c2, -0x09acb495,
19980 0x0688e83f, 0x797295c4, -0x23bfbfdb, 0x38552096,
19981 });
19982 try testArgs(@Vector(16, i32), .{
19983 -0x0214589d, 0x74a7537f, 0x7a7dcb26, 0x3e2e4c44,
19984 -0x23bfc358, 0x60e8ef18, 0x5524a7bc, -0x3d88c153,
19985 -0x7dc8ff0f, 0x6e2698f6, 0x05641ab8, -0x45e9e405,
19986 -0x7c1a04d0, -0x4a8d1e91, 0x41d56723, 0x4ba924ab,
19987 }, .{
19988 -0x528dc756, -0x6bc217f4, 0x40789b06, 0x65f08d3a,
19989 -0x077140ea, -0x43bdaa79, 0x5d98f4e7, -0x2356a1ca,
19990 -0x36ef2b49, -0x7cd09b06, 0x71c8176e, 0x5b005860,
19991 0x6ce8cfab, -0x49fd7609, 0x6cbb4e33, 0x6c7c121d,
19992 });
19993 try testArgs(@Vector(32, i32), .{
19994 0x7d22905d, -0x354e4bbe, -0x68662618, -0x246e1858,
19995 -0x1c4285a9, -0x0338059c, -0x60f5bbf4, -0x04f06917,
19996 -0x55f837b6, -0x2fba5fe3, 0x092aabf4, -0x5f533b31,
19997 0x6e81a558, -0x7bcac358, 0x6c4d8d04, 0x3e2f9852,
19998 -0x78589b1a, -0x68a00fd4, -0x77d55e25, 0x7f79b51c,
19999 -0x66b88f45, 0x7f6dc8a5, -0x27299a82, -0x426c8e1c,
20000 0x0c288f16, 0x158f8c3f, 0x26708be1, -0x0b73626e,
20001 -0x32df1bee, 0x196330f4, -0x68bb9529, -0x26376ab6,
20002 }, .{
20003 0x63bd0bd4, 0x4e507611, -0x5e5222b8, -0x35d8e114,
20004 0x1feab77b, -0x20de7dfd, -0x0ed0b09f, -0x7fc3d585,
20005 -0x2d3018e9, -0x261d431b, 0x54451864, 0x1415288f,
20006 -0x3ab89593, -0x7060e4c1, -0x54fcd501, -0x26324630,
20007 0x53fc8294, 0x2d4aceef, -0x4ac8efd2, -0x2fec97b7,
20008 -0x4de3a2fc, 0x2269fe52, -0x58c8b473, -0x21026285,
20009 -0x23438776, 0x3d5c8c41, -0x1fc946b2, -0x161c7005,
20010 0x44913ff1, -0x76e2bfaa, -0x54636350, -0x6ec53870,
20011 });
20012
20013 try testArgs(@Vector(1, u32), .{
20014 0x1d0d9cc4,
20015 }, .{
20016 0xce2d0ab6,
20017 });
20018 try testArgs(@Vector(2, u32), .{
20019 0x5ab78c03, 0xd21bb513,
20020 }, .{
20021 0x8a6664eb, 0x79eac37d,
20022 });
20023 try testArgs(@Vector(4, u32), .{
20024 0x234d576e, 0x4151cc9c, 0x39f558e4, 0xba935a32,
20025 }, .{
20026 0x398f2a9d, 0x4540f093, 0x9225551c, 0x3bac865b,
20027 });
20028 try testArgs(@Vector(8, u32), .{
20029 0xb8336635, 0x2fc3182c, 0x27a00123, 0x71587fbe,
20030 0x9cbc65d2, 0x6f4bb0e6, 0x362594ce, 0x9971df38,
20031 }, .{
20032 0x5727e734, 0x972b0313, 0xff25f5dc, 0x924f8e55,
20033 0x04920a61, 0xa1c3b334, 0xf52df4b6, 0x5ef72ecc,
20034 });
20035 try testArgs(@Vector(16, u32), .{
20036 0xfb566f9e, 0x9ad4691a, 0x5b5f9ec0, 0x5a572d2a,
20037 0x8f2f226b, 0x2dfc7e33, 0x9fb07e32, 0x9d672a2e,
20038 0xbedc3cee, 0x6872428d, 0xbc73a9fd, 0xd4d5f055,
20039 0x69c1e9ee, 0x65038deb, 0x1449061a, 0x48412ec2,
20040 }, .{
20041 0x96cbe946, 0x3f24f60b, 0xaeacdc53, 0x7611a8b4,
20042 0x031a67a8, 0x52a26828, 0x75646f4b, 0xb75902c3,
20043 0x1f881f08, 0x834e02a4, 0x5e5b40eb, 0xc75c264d,
20044 0xa8251e09, 0x28e46bbd, 0x12cb1f31, 0x9a2af615,
20045 });
20046 try testArgs(@Vector(32, u32), .{
20047 0x131bbb7b, 0xa7311026, 0x9d5e59a0, 0x99b090d6,
20048 0xfe969e2e, 0x04547697, 0x357d3250, 0x43be6d7a,
20049 0x16ecf5c5, 0xf60febcc, 0x1d1e2602, 0x138a96d2,
20050 0x9117ba72, 0x9f185b32, 0xc10e23fd, 0x3e6b7fd8,
20051 0x4dc9be70, 0x2ee30047, 0xaffeab60, 0x7172d362,
20052 0x6154bfcf, 0x5388dc3e, 0xd6e5a76e, 0x8b782f2d,
20053 0xacbef4a2, 0x843aca71, 0x25d8ab5c, 0xe1a63a39,
20054 0xc26212e5, 0x0847b84b, 0xb53541e5, 0x0c8e44db,
20055 }, .{
20056 0x4ad92822, 0x715b623f, 0xa5bed8a7, 0x937447a9,
20057 0x7ecb38eb, 0x0a2f3dfc, 0x96f467a2, 0xec882793,
20058 0x41a8707f, 0xf7310656, 0x76217b80, 0x2058e5fc,
20059 0x26682154, 0x87313e31, 0x4bdc480a, 0x193572ff,
20060 0x60b03c75, 0x0fe45908, 0x56c73703, 0xdb86554c,
20061 0xdda2dd7d, 0x34371b27, 0xe4e6ad50, 0x422d1828,
20062 0x1de3801b, 0xdce268d3, 0x20af9ec8, 0x188a591f,
20063 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5,
20064 });
20065
20066 try testArgs(@Vector(1, i33), .{
20067 0x0a9a3088e,
20068 }, .{
20069 0x06c76b26e,
20070 });
20071 try testArgs(@Vector(2, i33), .{
20072 0x0a9bd1d56, 0x05b0b9015,
20073 }, .{
20074 -0x05af6217c, 0x0227b5d3a,
20075 });
20076 try testArgs(@Vector(4, i33), .{
20077 -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663,
20078 }, .{
20079 -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9,
20080 });
20081 try testArgs(@Vector(8, i33), .{
20082 0x09d4fea1c, 0x0cd4254ba, 0x008d5f732, 0x0566c6f55,
20083 -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146,
20084 }, .{
20085 0x02c01d901, 0x04407fcae, -0x0e6a223a6, -0x0bd9499f8,
20086 0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e,
20087 });
20088 try testArgs(@Vector(16, i33), .{
20089 -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d,
20090 -0x0d502b660, 0x0dd465278, 0x042a7e451, 0x03c1c3671,
20091 0x00eb6f4a9, 0x08982dbc4, 0x0421b8852, 0x015ee0e53,
20092 0x0e6924014, 0x0c6ddbc65, 0x00260ea59, 0x0d98aaedf,
20093 }, .{
20094 -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47,
20095 -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861,
20096 -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9, 0x0b0064ff1,
20097 -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd, -0x06af4f476,
20098 });
20099 try testArgs(@Vector(32, i33), .{
20100 0x07b887609, -0x004a23b00, 0x09b664a97, -0x0d4932ed0,
20101 -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a,
20102 0x03d12175b, -0x0463cd854, 0x0cf448f1d, 0x0d1d02e2e,
20103 -0x0da681c00, 0x0d1173267, 0x08faa4e2c, 0x0634c9df5,
20104 0x037e682e2, 0x0db055022, -0x0641f3daa, 0x053852c9b,
20105 0x035822a2b, -0x0b12bfe53, 0x084f704c9, 0x018cfacee,
20106 -0x07130725b, -0x0b301dece, 0x00e1765b3, -0x0e0f0c97c,
20107 0x0ccd5e7fd, -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3,
20108 }, .{
20109 0x0df3d6e88, 0x00b4748ff, -0x0d0381c05, -0x093d68cb5,
20110 -0x027834cc7, 0x05aa9ca20, -0x04bc88f40, 0x080f0d937,
20111 0x06699a6b8, -0x0fed64f1d, 0x0a79fe089, -0x016a9c385,
20112 0x0186e6b5b, -0x0a3c83fe6, 0x09a4f87ec, 0x011ce03bf,
20113 -0x0f742cb8c, 0x066be2e66, -0x03b0beb52, 0x059bfda10,
20114 0x04bc221c0, 0x07d8b0344, -0x0c6e34f34, -0x0de0338ce,
20115 -0x09571f80c, 0x0d36e8ea7, -0x052c44147, 0x0072ce503,
20116 -0x0ef8dec64, 0x0b5956cb3, -0x02b72b4b1, 0x0f2585167,
20117 });
20118
20119 try testArgs(@Vector(1, u33), .{
20120 0x197ead992,
20121 }, .{
20122 0x0be595917,
20123 });
20124 try testArgs(@Vector(2, u33), .{
20125 0x1485499a5, 0x1e12b23e3,
20126 }, .{
20127 0x1431cd300, 0x0762a7b51,
20128 });
20129 try testArgs(@Vector(4, u33), .{
20130 0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed,
20131 }, .{
20132 0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2,
20133 });
20134 try testArgs(@Vector(8, u33), .{
20135 0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f,
20136 0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a,
20137 }, .{
20138 0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c,
20139 0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e,
20140 });
20141 try testArgs(@Vector(16, u33), .{
20142 0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53,
20143 0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6,
20144 0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac,
20145 0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275,
20146 }, .{
20147 0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22,
20148 0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef,
20149 0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906,
20150 0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948,
20151 });
20152 try testArgs(@Vector(32, u33), .{
20153 0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99,
20154 0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4,
20155 0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01,
20156 0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218,
20157 0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333,
20158 0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9,
20159 0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d,
20160 0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079,
20161 }, .{
20162 0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c,
20163 0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6,
20164 0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b,
20165 0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58,
20166 0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1,
20167 0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22,
20168 0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33,
20169 0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97,
20170 });
20171
20172 try testArgs(@Vector(1, i63), .{
20173 -0x2d99033c3223ad4f,
20174 }, .{
20175 0x023c8c6807737a0e,
20176 });
20177 try testArgs(@Vector(2, i63), .{
20178 -0x08fe3255607ce099, -0x3bf678cfa16a59d2,
20179 }, .{
20180 -0x1b8733d130c49d54, 0x39deb4fe6c836b3f,
20181 });
20182 try testArgs(@Vector(4, i63), .{
20183 0x1e81cf3e0f9eae80, -0x0886f09bd1723b08,
20184 0x16e84b8d985e5b82, 0x0fa327538c09a281,
20185 }, .{
20186 -0x2594908bb49f963f, -0x29639632db767665,
20187 0x012d5330f966e1be, -0x1143fddd48bf9752,
20188 });
20189 try testArgs(@Vector(8, i63), .{
20190 -0x08e352cf330c1852, -0x17bc1f760120ff85,
20191 -0x0f180e5c748c0e20, 0x07ee9290e2d53335,
20192 -0x33945ea070fbb445, 0x104802af8984525d,
20193 0x36d27ad0f35fcfd8, 0x292141a0133227a0,
20194 }, .{
20195 0x2adad30092da2886, -0x1694bcdda9b82c45,
20196 0x1f5a019d638ba22c, -0x2e7853134888b613,
20197 -0x2bb77a420f280a6d, -0x377771e94e493751,
20198 0x1dd5373311160f2f, -0x02bb5248b7e0c55e,
20199 });
20200 try testArgs(@Vector(16, i63), .{
20201 0x2d930d47aa078416, 0x1edf9abe8d562bd5,
20202 0x3ef3a5266f822396, -0x102f82f23c5608e1,
20203 -0x38755dccf6c87ae1, 0x09f11b107d033f85,
20204 0x079829e968213db8, 0x17248ef600ddb53d,
20205 0x19e16a7a4e6aa0cc, 0x11e21ddfb7b5b946,
20206 0x26ad3768e80b1258, 0x3672a14b31cb7f1a,
20207 0x3235b83f829966b4, 0x3b4009ac38f728b8,
20208 -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42,
20209 }, .{
20210 -0x1428b8c4947715ea, -0x0a5626024843736e,
20211 0x075a1a0d0d47f0af, 0x0ea460d282e8dcc0,
20212 -0x124b2a6e2957dc53, -0x0d2602075af449d5,
20213 -0x0db76b825400293c, -0x17c13cd693d2db13,
20214 0x0ad907bb94e64687, -0x05fd33e10be897ad,
20215 -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510,
20216 0x0106683b57f2cf9e, 0x353bea8a4c199155,
20217 0x3942af4e40b65cb0, 0x3da0254a739aa17a,
20218 });
20219
20220 try testArgs(@Vector(1, u63), .{
20221 0x17beef25621255fb,
20222 }, .{
20223 0x79bc7e82d16c5e15,
20224 });
20225 try testArgs(@Vector(2, u63), .{
20226 0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659,
20227 }, .{
20228 0x5df7aae04a4a1126, 0x53568966decbd14f,
20229 });
20230 try testArgs(@Vector(4, u63), .{
20231 0x3d50a0f4755d87e3, 0x722e93c0b1355665,
20232 0x3c8325a3e3640be1, 0x34eef2706884b9ab,
20233 }, .{
20234 0x2671797fd253520d, 0x22f81938e525536e,
20235 0x08ca256b0b348d57, 0x1cdbe1867f422280,
20236 });
20237 try testArgs(@Vector(8, u63), .{
20238 0x49ab492d75830041, 0x28f4065197f361cf,
20239 0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803,
20240 0x7f517fcfc0451068, 0x05eaa5d2f93407b2,
20241 0x0fe06447fdbec4d6, 0x34862504232f73d8,
20242 }, .{
20243 0x64a1796fe76dcc4d, 0x159bd1a9228a8c41,
20244 0x093a4794b5759276, 0x40a740fa4d288585,
20245 0x5d2d1aede616f40e, 0x7e7af17ddce8e03e,
20246 0x7555fb4a1c18d5ff, 0x11b45e151e8724d0,
20247 });
20248 try testArgs(@Vector(16, u63), .{
20249 0x456de088589c1035, 0x23239ed26d0e198f,
20250 0x4f3c4ae380a12430, 0x1cb11ef73131a6f4,
20251 0x6e51a370969ec7ae, 0x38bed7b267bb163d,
20252 0x2fcfab012fb79669, 0x45e203406a43fe95,
20253 0x38468cff64a44f74, 0x3cc86f1d717e8c60,
20254 0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8,
20255 0x1a7493c9bb7b265c, 0x6e8536e5f32317d8,
20256 0x634701c32688fd34, 0x7a4e4a7f35ef9651,
20257 }, .{
20258 0x3da82f0beb7a091d, 0x040c9bbf428787fa,
20259 0x795418c55742e8d2, 0x700f9b62c01cdf30,
20260 0x78d567c18e7ce16d, 0x300da37dc14b6705,
20261 0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d,
20262 0x00e8c13b3acf4557, 0x19adb837145a0267,
20263 0x594889dd8e1ff4c2, 0x561da6bd7e2ba593,
20264 0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc,
20265 0x68ec40831cb6b863, 0x2862d922ed7a78eb,
20266 });
20267
20268 try testArgs(@Vector(1, i64), .{
20269 0x4a31679b316d8b59,
20270 }, .{
20271 0x34a583368386afde,
20272 });
20273 try testArgs(@Vector(2, i64), .{
20274 0x3bae373f9cb990b3, -0x7e8c6c876e8fd34a,
20275 }, .{
20276 0x09dbef6f7cb9c726, 0x48dfeca879b0df51,
20277 });
20278 try testArgs(@Vector(4, i64), .{
20279 -0x2bd24dd5f5da94bf, -0x144113bae33082c2,
20280 0x51e8cb7027ba4b12, -0x47b02168e2e22f13,
20281 }, .{
20282 0x769f113245641b91, -0x414d0e24ea97bc53,
20283 -0x0d2a570e7ef9e923, -0x070513d46d3b5a4c,
20284 });
20285 try testArgs(@Vector(8, i64), .{
20286 0x10bb6779b6a55ca9, 0x5f6ffd567a187af4,
20287 -0x6ba191b1168486b4, -0x441b92ce455870a1,
20288 0x2b6fdefbec9386ad, -0x6fdd3938d79217e4,
20289 0x6aa8fe1fb891501f, 0x20802f5bbdf6dc50,
20290 }, .{
20291 -0x7500319df437b479, 0x00ceb712d4fa62d4,
20292 0x67e715b9e99e660d, -0x17ae00e1f0009ec2,
20293 -0x5b700b948503acdf, -0x3ff61fb5cce5a530,
20294 0x55a3efac2e3694a4, 0x7f951a8d842f1670,
20295 });
20296 try testArgs(@Vector(16, i64), .{
20297 0x37a205109a685810, -0x50ff5d13134ccaa6,
20298 0x26813391c5505d5d, -0x502cdc01603a2f21,
20299 -0x6b1b44b1c850c7ea, 0x1f6db974ace9dd70,
20300 -0x47d15da8b519e328, 0x3ac0763abbf79d8d,
20301 0x5f12e0dc1aed4a4f, -0x46a973e16061e928,
20302 -0x3f59a3fa9699b4d5, -0x2f5012d390c78315,
20303 -0x40e510dea2c47e9c, 0x221c51defe0acc9a,
20304 -0x385fd6f1d390b84b, 0x35932fe2783fa6b9,
20305 }, .{
20306 0x0ba5202b71ad73dd, 0x65c8d2d5e2a14fe5,
20307 0x2e4d97cd66c41a3d, 0x14babbb47da51193,
20308 0x59d1d12b42ade3aa, -0x3c3617e556dfa8fb,
20309 -0x5a36602ba43279c4, -0x61f1ddda13665d9f,
20310 -0x50cd6128589ddd04, 0x135ae0dcc85674ae,
20311 -0x25e80592affc038d, 0x07e184c44fbe9b12,
20312 -0x70ede1b90964bbaa, 0x3ec48b32e8efd98e,
20313 -0x5267d41d85a29f46, 0x53099805f9116b60,
20314 });
20315
20316 try testArgs(@Vector(1, u64), .{
20317 0x333f593bf9d08546,
20318 }, .{
20319 0x6918bd767e730778,
20320 });
20321 try testArgs(@Vector(2, u64), .{
20322 0x4cd89a317b03d430, 0x28998f61842f63a9,
20323 }, .{
20324 0x6c34db64af0e217e, 0x57aa5d02cd45dceb,
20325 });
20326 try testArgs(@Vector(4, u64), .{
20327 0x946cf7e7484691c9, 0xf4fc5be2a762fcbf,
20328 0x71cc83bc25abaf14, 0xc69cef44c6f833a1,
20329 }, .{
20330 0x9f90cbd6c3ce1d4e, 0x182f65295dff4e84,
20331 0x4dfe62c59fed0040, 0x18402347c1db1999,
20332 });
20333 try testArgs(@Vector(8, u64), .{
20334 0x92c6281333943e2c, 0xa97750504668efb5,
20335 0x234be51057c0181f, 0xefbc1f407f3df4fb,
20336 0x8da6cc7c39cebb94, 0xb408f7e56feee497,
20337 0x2363f1f8821592ed, 0x01716e800c0619e1,
20338 }, .{
20339 0xa617426684147e7e, 0x7542da7ebe093a7b,
20340 0x3f21d99ac57606b7, 0x65cd36d697d22de4,
20341 0xed23d6bdf176c844, 0x2d4573f100ff7b58,
20342 0x4968f4d21b49f8ab, 0xf5d9a205d453e933,
20343 });
20344 try testArgs(@Vector(16, u64), .{
20345 0x2f61a4ee66177b4a, 0xf13b286b279f6a93,
20346 0x36b46beb63665318, 0x74294dbde0da98d2,
20347 0x3aa872ba60b936eb, 0xe8f698b36e62600b,
20348 0x9e8930c21a6a1a76, 0x876998b09b8eb03c,
20349 0xa0244771a2ec0adb, 0xb4c72bff3d3ac1a2,
20350 0xd70677210830eced, 0x6622abc1734dd72d,
20351 0x157e2bb0d57d6596, 0x2aac8192fb7ef973,
20352 0xc4a0ca92f34d7b13, 0x04300f8ad1845246,
20353 }, .{
20354 0xeaf71dcf0eb76f5d, 0x0e84b1b63dc97139,
20355 0x0f64cc38d23c94a1, 0x12775cf0816349b7,
20356 0xfdcf13387ba48d54, 0xf8d3c672cacd8779,
20357 0xe728c1f5eb56ab1e, 0x05931a34877f7a69,
20358 0x1861a763c8dafd1f, 0x4ac97573ecd5739f,
20359 0x3384414c9bf77b8c, 0x32c15bbd04a5ddc4,
20360 0xbfd88aee1d82ed32, 0x20e91c15b701059a,
20361 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957,
20362 });
20363
20364 try testArgs(@Vector(1, i65), .{
20365 0x0ca0853f57c0686c8,
20366 }, .{
20367 -0x05c79d7369ef879fd,
20368 });
20369 try testArgs(@Vector(2, i65), .{
20370 0x0c65f685f4839bc8d, -0x079057ad04859d897,
20371 }, .{
20372 -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa,
20373 });
20374 try testArgs(@Vector(4, i65), .{
20375 0x0d6a03163f101695e, -0x0ebe991e54e61156d,
20376 -0x0715adf48176985dc, 0x01e57dbe6ea50b22f,
20377 }, .{
20378 -0x0b308d8311a45a38d, 0x07c292cc15044b1f5,
20379 0x0e69e3eae81046bc8, 0x053b75d6a544ca0db,
20380 });
20381 try testArgs(@Vector(8, i65), .{
20382 0x0066315a88896ba00, 0x026c8109f087eb4e3,
20383 -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff,
20384 0x0dcdd248c4575dbb1, -0x09db7d03c38a83255,
20385 -0x097bc9d5397c57594, 0x0e6af866eed43b462,
20386 }, .{
20387 -0x06ac0448a06876866, 0x0f89dbafcbbb065d7,
20388 -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0,
20389 -0x085a4a7b09dcec260, -0x0068e92e14823a98a,
20390 -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71,
20391 });
20392 try testArgs(@Vector(16, i65), .{
20393 -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36,
20394 -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8,
20395 0x0dbebb830228d2945, -0x02133deab2ebd8699,
20396 -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc,
20397 -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a,
20398 -0x04e1094b79391df4a, 0x03b3fbc230416592d,
20399 0x08799db1379e6b1ba, -0x0fa7c7aed60863358,
20400 -0x0c44dd44a770610bd, -0x0349cdc54719b2e37,
20401 }, .{
20402 0x03146cdf203a80cfd, 0x0e22a03fe80f3e2ed,
20403 0x07fa7a66dbe252222, 0x000a3bc923a32648a,
20404 -0x078bac9e36d66da71, -0x03055804cd3b73168,
20405 0x0d9280808858f006d, -0x09415dfb2fd33fe5a,
20406 -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82,
20407 -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157,
20408 0x0ac0128bbf7a5200e, -0x009e0b2ab770e711b,
20409 0x05473b5629f372ee9, -0x02eda67313ff7fa47,
20410 });
20411
20412 try testArgs(@Vector(1, u65), .{
20413 0x1879059aca94dd383,
20414 }, .{
20415 0x0051da1f25078e919,
20416 });
20417 try testArgs(@Vector(2, u65), .{
20418 0x18f39bb41f03223f5, 0x16a59f6838a63e737,
20419 }, .{
20420 0x105aa15beae036a1a, 0x1b47ef7ef744b70fe,
20421 });
20422 try testArgs(@Vector(4, u65), .{
20423 0x18c685254b3c7170c, 0x0de8048a66902ebfd,
20424 0x02bc97f62163e7e31, 0x152b6eba67c1e76db,
20425 }, .{
20426 0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee,
20427 0x1db62793f956492ba, 0x0e4262599ec54c2a4,
20428 });
20429 try testArgs(@Vector(8, u65), .{
20430 0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b,
20431 0x1fd2f93384860df65, 0x01827fcdb6c715d64,
20432 0x03869c173a922b018, 0x0addd48a4671a2f6b,
20433 0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38,
20434 }, .{
20435 0x159e9494fc84ed452, 0x0834f6aaa7666a22b,
20436 0x066765389e84150b4, 0x1e722ae23908c7e96,
20437 0x0d64ec725397e6ee0, 0x19f3a147a355baa22,
20438 0x02f1b100538b6dbc3, 0x175885a34aefca91b,
20439 });
20440 try testArgs(@Vector(16, u65), .{
20441 0x105647e12b2b76daa, 0x04dcca29537263f6a,
20442 0x16c112620be731a4e, 0x0d6c088da3c158fa0,
20443 0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c,
20444 0x05703068045915d95, 0x07cc42e0bb216b310,
20445 0x08a15a16e4247ad98, 0x1c17b2292e34aa369,
20446 0x14c9808748fa615c3, 0x187449666c2f5375b,
20447 0x133fcb93a31d2f369, 0x047729af594c8c1c1,
20448 0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4,
20449 }, .{
20450 0x0d65b8b643703ef96, 0x1c55c2e0816c5d056,
20451 0x0390a06d3ec60e632, 0x0d543d346db055847,
20452 0x017e27c7d663d7005, 0x112f7b98a78014ea3,
20453 0x030136142f19042d7, 0x059f9b6e576f79ef7,
20454 0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde,
20455 0x1e26cd964c656292a, 0x0579c10261478da1d,
20456 0x0406f2849ab5ad15c, 0x024b15c729f2211b7,
20457 0x10f0505cc2f7f110c, 0x133cfa11f995e0afc,
20458 });
20459
20460 try testArgs(@Vector(1, i127), .{
20461 0x226b8faf65414a9a0ffcd438c7fa9eea,
20462 }, .{
20463 0x2c582610b08531ca208fef1c2b839bdc,
20464 });
20465 try testArgs(@Vector(2, i127), .{
20466 0x35e8caffc9fc8e1b3b6d3667cb6a128c,
20467 -0x070d99d51807ae2314ea61e4f0166145,
20468 }, .{
20469 -0x3a59d011c2a385a6dcf00a40efd85b77,
20470 0x3b5f506c3fa0c8552fba624d1b5debec,
20471 });
20472 try testArgs(@Vector(4, i127), .{
20473 0x191594cc2356ffeac739f1841b06adcf,
20474 0x1f45176996076de7c3891f14f831e192,
20475 0x1c9047002e0a4f00656556fffeb50349,
20476 -0x38049f47bcc36ab26600bc475295389f,
20477 }, .{
20478 -0x2f8c1618324c60c40f65d216943d59d2,
20479 -0x21429f90bd9dff7b5d49c9d7f2655928,
20480 0x3baeef72d0d168fb50564c9f6eb5d778,
20481 0x3affe6f2eddfc6a69206c357633d0eeb,
20482 });
20483 try testArgs(@Vector(8, i127), .{
20484 -0x00c48629a415129f66e74a1a215d683a,
20485 0x3920a425cbec4c9af649a00d5747136a,
20486 0x11f53b9db15a12814c948c6a809b96f8,
20487 -0x1f7e272db97efc88762dedf54978e795,
20488 0x13e56ca8ed41f64d04ef01019703f402,
20489 0x294014109f4313454d9994f1003b4572,
20490 0x0f3d6fe7adde96149ffcc5c0808b708f,
20491 0x2d9bcd407da37ff3d43cc5f6b64fd385,
20492 }, .{
20493 0x3f95f21d3bc39fe8e3fcc184d150a984,
20494 0x2a8c36a5986d8c245bbdd302737b7e29,
20495 0x37c61446e10efe6a94f797da05a28fae,
20496 -0x096b2f4e16aef099d623066e941d13d1,
20497 0x3df11d4af3229ed59c52628cac02f506,
20498 0x326f78cbf454566daa3bc235a1fb3fb8,
20499 -0x2cf6b4872dffea018c77892e433b6784,
20500 0x345dfdd52635c224c70949913255ab68,
20501 });
20502
20503 try testArgs(@Vector(1, u127), .{
20504 0x49a0cd1849f9adbed215770c6f97a584,
20505 }, .{
20506 0x5e10826a03aeb57d4a9a9ef2a8f02faa,
20507 });
20508 try testArgs(@Vector(2, u127), .{
20509 0x1c2544fbb76890de5c00f42c9a516846,
20510 0x324f292d72694d409152a311b5a0441c,
20511 }, .{
20512 0x01cc87106db8e357e85f875d46feac96,
20513 0x49e775cc0db88cf9725af13113d7d457,
20514 });
20515 try testArgs(@Vector(4, u127), .{
20516 0x3e82ddcd074646a0a489a4fd300c32c9,
20517 0x2a511ac041c17a68c5a71bc6d3cb3ba9,
20518 0x2dace4189083411634b753ae476579a8,
20519 0x4e1d5cb04d9681d806312d72d6dc5262,
20520 }, .{
20521 0x5f489e689ff15fcf38aad995b1796af2,
20522 0x49ee549bd8e20092c8ccebb992cde8b8,
20523 0x4e52d33281cba3fda6ae8d1f463c7a1f,
20524 0x0de0279b2dec3fffe44c1c7decc430f8,
20525 });
20526 try testArgs(@Vector(8, u127), .{
20527 0x636de193fbadb1984a0ed9969f88d38d,
20528 0x64426b7e468cb323b1d75656879fb9b2,
20529 0x48afb4cc5a11f2ca4b8609b057758312,
20530 0x176157ce93422bb4463d6f0dda275b94,
20531 0x746015d0e8cb5e36af43840a6df11aab,
20532 0x279b665776118bc2759134c19cbf1bb0,
20533 0x52cb4dc56d3935090fb7db710c8f9660,
20534 0x591884d8d8e2fe2f77b7f8508dddeaaa,
20535 }, .{
20536 0x42e00bc05d50ea63d546085642b8831b,
20537 0x4241ff07ce99ee055b48ed2939b8d6b7,
20538 0x45a5f53a5c5cb13f1a9e6621fec8cf4a,
20539 0x68d6938c1b348dc6cc98d4b6ab3a1c22,
20540 0x1f9448fc11e38500ec7ecf57a33a278b,
20541 0x7b331526d6fcfb958f3c88fc4656e123,
20542 0x4f1e8ddf41a7105cc1a1c815040a2693,
20543 0x31ac7bd68686d531d53ecca75e6d8b81,
20544 });
20545
20546 try testArgs(@Vector(1, i128), .{
20547 -0x3bb56309fcad13fc1011dc671cf57bdc,
20548 }, .{
20549 -0x05338bb517db516ee08c45d1408e5836,
20550 });
20551 try testArgs(@Vector(2, i128), .{
20552 0x295f2901e3837e5592b9435f8c4df8a7,
20553 -0x1f246b0ff2d02a6bf30a63392fc63371,
20554 }, .{
20555 -0x31060c09e29b545670c4cbc721a4e26b,
20556 -0x631eb286321325d51c617aa798195392,
20557 });
20558 try testArgs(@Vector(4, i128), .{
20559 0x47110102c74f620f08e5b7c5dbe193c2,
20560 -0x61d12d2650413ad3ffeeeab3ba57e1f0,
20561 0x449781e64b29dc8a17a88f4b7a5b0717,
20562 0x0d2170e9238d12a585dc5377566e1938,
20563 }, .{
20564 0x0bf948e19bd01823dcb3887937d97079,
20565 -0x16f933ab12bfba3560d0d39ffe69b64a,
20566 0x3d0bfce3907a5cd157348f0329e2548e,
20567 -0x3c2d182e2e238a4bebd7defbd7f9699a,
20568 });
20569 try testArgs(@Vector(8, i128), .{
20570 -0x775678727c721662f02480619acbfc82,
20571 -0x6f504fcbff673cb91e4706af4373665f,
20572 -0x670f888d4186387c3106d125b856c294,
20573 0x0641e7efdfdd924d126b446d874154f8,
20574 0x57d7aef0f82d3351917f43c8f677392b,
20575 -0x4077e745dede8367d145c94f20ab8810,
20576 -0x0344a74fb60e1f1f72ba8ec288b05939,
20577 -0x0be3ce9be461aca1d25ad8e74dcc36e1,
20578 }, .{
20579 -0x4a873d91e5a2331def0d34c008d33d83,
20580 0x2744cecfd4c683bdd12f3cfc11d7f520,
20581 -0x0cb8e468fc1de93a7c5ad2a5a61e8f50,
20582 -0x1a3be9e58e918d6586cc4948a54515d3,
20583 -0x512ec6f88c3a34950a8aaee47130120b,
20584 -0x2e772e4a8812e553bcf9b2754a493709,
20585 0x0c7b137937dc25f9f9cbaf4d7a88ee6b,
20586 -0x2ecdd5eb81eb0e98ed8d0aa9516c1617,
20587 });
20588
20589 try testArgs(@Vector(1, u128), .{
20590 0x5f11e16b0ca3392f907a857881455d2e,
20591 }, .{
20592 0xf9142d73b408fd6955922f9fc147f7d7,
20593 });
20594 try testArgs(@Vector(2, u128), .{
20595 0xee0fb41fabd805923fb21b5c658e3a87,
20596 0x2352e74aad6c58b3255ff0bba5aa6552,
20597 }, .{
20598 0x8d822f9fdd9cb9a5b43513b14419b224,
20599 0x1aef2a02704379e38ead4d53d69e4cc4,
20600 });
20601 try testArgs(@Vector(4, u128), .{
20602 0xc74437a4ea3bbbb193dbf0ea2f0c5281,
20603 0x039e4b1640868248780db1834a0027eb,
20604 0xb9e8bb34155b2b238da20331d08ff85b,
20605 0x863802d34a54c2e6aa71dd0f067c4904,
20606 }, .{
20607 0x7471bae24ff7b84ab107f86ba2b7d1e7,
20608 0x8f34c449d0576e682c20bda74aa6b6c9,
20609 0x1f34c3efa167b61c48c9d5ec01a1a93f,
20610 0x71c8318fcf3ddc7be058c73a52dce9e3,
20611 });
20612 try testArgs(@Vector(8, u128), .{
20613 0xbf2db71463037f55ee338431f902a906,
20614 0xb7ad317626655f38ab25ae30d8a1aa67,
20615 0x7d3c5a3ffaa607b5560d69ae3fcf7863,
20616 0x009a39a8badf8b628c686dc176aa1273,
20617 0x49dba3744c91304cc7bbbdab61b6c969,
20618 0x6ec664b624f7acf79ce69d80ed7bc85c,
20619 0xe02d7a303c0f00c39010f3b815547f1c,
20620 0xb13e1ee914616f58cffe6acd33d9b5c8,
20621 }, .{
20622 0x2f2d355a071942a7384f82ba72a945b8,
20623 0x61f151b3afec8cb7664f813cecf581d1,
20624 0x5bfbf5484f3a07f0eacc4739ff48af80,
20625 0x59c0abbf8d829cf525a87d5c9c41a38a,
20626 0xdad8b18eb680f0520ca49ebfb5842e22,
20627 0xa05adcaedd9057480b3ba0413d003cec,
20628 0x8b0b4a27fc94a0e90652d19bc755b63d,
20629 0xa858bce5ad0e48c13588a4e170e8667c,
20630 });
20631
20632 try testArgs(@Vector(1, i129), .{
20633 -0x09c126c4e31389b174cb2b45e76c086dd,
20634 }, .{
20635 0x0d023f2566c56400f4b7edb9c4f364ecb,
20636 });
20637 try testArgs(@Vector(2, i129), .{
20638 -0x072be32e116741732f9422d9b20777db5,
20639 -0x010829386cc3d93283a83591bd994ca58,
20640 }, .{
20641 0x004671167d0681d46945832d16f70cfba,
20642 0x098550137341cbadfe8378987e3a83265,
20643 });
20644 try testArgs(@Vector(4, i129), .{
20645 0x04167620c7f5e094208fb204f06b9792c,
20646 0x07a6690c0b5f9de6c8955873f19b98f23,
20647 -0x06505997d01e5a971f820742210c7adc6,
20648 -0x07013921eab8d92559f17ad9e3712bc61,
20649 }, .{
20650 -0x0bdbf7ce4079fa628feb05f5814402e15,
20651 -0x0e6ee5464de547ce92ee5a6037f175e52,
20652 -0x009d079b88cdc765ab72758854b753d98,
20653 -0x085af31dd5243f61b46e6dc950728ff49,
20654 });
20655 try testArgs(@Vector(8, i129), .{
20656 0x0d85f471bdc56611e9187113f1489bd38,
20657 0x06e1e9cae044bb17b63c380fd6f2652b5,
20658 0x0921d649288a16481f2ec69747f443e5e,
20659 0x0e8db24d1aefd91cfab20bac61f560274,
20660 0x0187abef7578e5e02a396e4ebd5859c23,
20661 0x0d2dec5a6bd72afe18288ca428ec2b94d,
20662 0x0c52c111a077bffb1fa4483523cd044c3,
20663 -0x0b6a90c79d6230f271bf625c9a6c0dfc5,
20664 }, .{
20665 0x0d47c566bdedae2e9485f7aa381a98d30,
20666 -0x0e5d9573c01a9e56361b202c47f0e51f8,
20667 -0x0bdcafb1f08db4920121521b2d2679931,
20668 0x08de42eec43f2a5175f928f8a1812575d,
20669 0x0c3f57e712a7f8494e51b62d11573d9a0,
20670 -0x09287910d439c9bafd56bc8a6faf50cb3,
20671 0x07b494af9634c8f95bed2f50fcaf08dda,
20672 -0x0a150693d83af2e823dcc0765e4e331e2,
20673 });
20674
20675 try testArgs(@Vector(1, u129), .{
20676 0x1e51bd13747df8fae52f0471e9f1ad3f2,
20677 }, .{
20678 0x00aba9f2c80c71b1ed07201486ea44d00,
20679 });
20680 try testArgs(@Vector(2, u129), .{
20681 0x0c7967a19d13d4bd3f6ebfa0f8fdeab92,
20682 0x01614ee2c32757cc92e2efd97e94321a7,
20683 }, .{
20684 0x175803a2c0bf888bd01e2a5bae28e4523,
20685 0x07d05a98ec8f4e7e72aac2712bc09a23a,
20686 });
20687 try testArgs(@Vector(4, u129), .{
20688 0x1b18b768c5852bb1f0a7b34ceaeac4a0c,
20689 0x038fc1f995d9378fcf1043598810d7a56,
20690 0x06eebd77f9920e79932decf0f29ef658d,
20691 0x1f31a766145022050d0b16a4f5d06f1e3,
20692 }, .{
20693 0x033b20a528a722b6704bf5c8aea497e68,
20694 0x0ea05276fb8de4e77e4a8d4ef55f64bba,
20695 0x1c632cf252683b00faae6dcb7d73d8b90,
20696 0x11a7e1e98bb34fc7f5ed36c327476b122,
20697 });
20698 try testArgs(@Vector(8, u129), .{
20699 0x1b85991584b26492938854a6f6953b766,
20700 0x119472b0f4b7199f1267639f601833e3d,
20701 0x130d19e6ccfebce09c61c8c8fb526fec0,
20702 0x1379f4fa9d25e18ef5138c193b7ec9ef3,
20703 0x15fc62d9e21c2c0c63f9cab5ab0a8cf36,
20704 0x123ceb2a65f200a0b3e559c801bdbfa58,
20705 0x0e740ae3c7ab0cd24c5ff94d9367e3ebb,
20706 0x008c7dd67796949390355d866e4f171ef,
20707 }, .{
20708 0x0ffdda009048cf61476610425d5e55560,
20709 0x061bcb9d024d015891b5666e7b317cc84,
20710 0x060c013386fb8c129a3bd65b7909f2bc5,
20711 0x01c8efdd7ea806b1dc984c6183da53d8f,
20712 0x02fae7cee43d7f97448e82b907335bd45,
20713 0x0365e7cadcbd0a64decc1377339967c53,
20714 0x1a52793ba8a9689e1d7f5036e8cb613e1,
20715 0x1257d7cdd8f04058d285a5bce173b5262,
20716 });
20717
20718 try testArgs(@Vector(1, i191), .{
20719 -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d,
20720 }, .{
20721 0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512,
20722 });
20723 try testArgs(@Vector(2, i191), .{
20724 -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3,
20725 0x3f298efedf4269276db60344c2bed556ee25d24c5f887000,
20726 }, .{
20727 0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7,
20728 -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7,
20729 });
20730 try testArgs(@Vector(4, i191), .{
20731 -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7,
20732 -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef,
20733 0x1783dc9f0afa815051e6d338ef35da013e807da475815af5,
20734 0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916,
20735 }, .{
20736 0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd,
20737 0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29,
20738 0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86,
20739 0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546,
20740 });
20741 try testArgs(@Vector(8, i191), .{
20742 -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225,
20743 0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed,
20744 -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232,
20745 -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d,
20746 -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17,
20747 -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70,
20748 -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085,
20749 0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35,
20750 }, .{
20751 0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95,
20752 -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9,
20753 -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02,
20754 -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980,
20755 -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c,
20756 -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae,
20757 -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31,
20758 0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3,
20759 });
20760
20761 try testArgs(@Vector(1, u191), .{
20762 0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83,
20763 }, .{
20764 0x020334928f4583d332043b7aef15e832047dfd01b2933038,
20765 });
20766 try testArgs(@Vector(2, u191), .{
20767 0x67074e5315030f5c1a4d035100736de691b5589f6d349162,
20768 0x0e655397f96e3fd66b317294a37975d36478242fd6392259,
20769 }, .{
20770 0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf,
20771 0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd,
20772 });
20773 try testArgs(@Vector(4, u191), .{
20774 0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57,
20775 0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1,
20776 0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457,
20777 0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc,
20778 }, .{
20779 0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c,
20780 0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7,
20781 0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9,
20782 0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693,
20783 });
20784 try testArgs(@Vector(8, u191), .{
20785 0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca,
20786 0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052,
20787 0x7841b17a1c38e4066376e5ae204959c02c524635740a9013,
20788 0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77,
20789 0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788,
20790 0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e,
20791 0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3,
20792 0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a,
20793 }, .{
20794 0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614,
20795 0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc,
20796 0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90,
20797 0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7,
20798 0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1,
20799 0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434,
20800 0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2,
20801 0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934,
20802 });
20803
20804 try testArgs(@Vector(1, i192), .{
20805 0x5348bc83a6f352c931d06b9817458273408470e8ce312bef,
20806 }, .{
20807 -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d,
20808 });
20809 try testArgs(@Vector(2, i192), .{
20810 0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869,
20811 -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b,
20812 }, .{
20813 0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be,
20814 0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2,
20815 });
20816 try testArgs(@Vector(4, i192), .{
20817 -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf,
20818 -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f,
20819 0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc,
20820 0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce,
20821 }, .{
20822 0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06,
20823 0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993,
20824 -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255,
20825 0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114,
20826 });
20827 try testArgs(@Vector(8, i192), .{
20828 -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9,
20829 0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7,
20830 0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c,
20831 -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3,
20832 -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32,
20833 -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297,
20834 -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574,
20835 -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464,
20836 }, .{
20837 -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6,
20838 -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a,
20839 -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113,
20840 -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525,
20841 0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67,
20842 -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732,
20843 -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5,
20844 0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21,
20845 });
20846
20847 try testArgs(@Vector(1, u192), .{
20848 0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d,
20849 }, .{
20850 0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb,
20851 });
20852 try testArgs(@Vector(2, u192), .{
20853 0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2,
20854 0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d,
20855 }, .{
20856 0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0,
20857 0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e,
20858 });
20859 try testArgs(@Vector(4, u192), .{
20860 0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be,
20861 0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd,
20862 0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256,
20863 0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74,
20864 }, .{
20865 0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294,
20866 0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5,
20867 0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134,
20868 0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec,
20869 });
20870 try testArgs(@Vector(8, u192), .{
20871 0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066,
20872 0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099,
20873 0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4,
20874 0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3,
20875 0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7,
20876 0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a,
20877 0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb,
20878 0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e,
20879 }, .{
20880 0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d,
20881 0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e,
20882 0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b,
20883 0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9,
20884 0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09,
20885 0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d,
20886 0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c,
20887 0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1,
20888 });
20889
20890 try testArgs(@Vector(1, i193), .{
20891 -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66,
20892 }, .{
20893 0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5,
20894 });
20895 try testArgs(@Vector(2, i193), .{
20896 0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f,
20897 -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6,
20898 }, .{
20899 -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a,
20900 0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9,
20901 });
20902 try testArgs(@Vector(4, i193), .{
20903 -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac,
20904 -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda,
20905 0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a,
20906 -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72,
20907 }, .{
20908 0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d,
20909 0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199,
20910 -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a,
20911 -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f,
20912 });
20913 try testArgs(@Vector(8, i193), .{
20914 -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec,
20915 -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233,
20916 -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5,
20917 -0x065c502be097b15379af566a20c4ee93893718330c9a258ce,
20918 0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9,
20919 0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6,
20920 0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973,
20921 -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0,
20922 }, .{
20923 0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257,
20924 0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb,
20925 -0x060f3874a6f65b46738d0117db38b749aff45725000c06213,
20926 0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353,
20927 0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68,
20928 -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29,
20929 0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e,
20930 -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae,
20931 });
20932
20933 try testArgs(@Vector(1, u193), .{
20934 0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a,
20935 }, .{
20936 0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e,
20937 });
20938 try testArgs(@Vector(2, u193), .{
20939 0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c,
20940 0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947,
20941 }, .{
20942 0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20,
20943 0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac,
20944 });
20945 try testArgs(@Vector(4, u193), .{
20946 0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360,
20947 0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699,
20948 0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852,
20949 0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa,
20950 }, .{
20951 0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c,
20952 0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45,
20953 0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11,
20954 0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9,
20955 });
20956 try testArgs(@Vector(8, u193), .{
20957 0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3,
20958 0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b,
20959 0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece,
20960 0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1,
20961 0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921,
20962 0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361,
20963 0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f,
20964 0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0,
20965 }, .{
20966 0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b,
20967 0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa,
20968 0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82,
20969 0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b,
20970 0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7,
20971 0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100,
20972 0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa,
20973 0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e,
20974 });
20975
20976 try testArgs(@Vector(1, i255), .{
20977 -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11,
20978 }, .{
20979 -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625,
20980 });
20981 try testArgs(@Vector(2, i255), .{
20982 -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2,
20983 -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486,
20984 }, .{
20985 0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47,
20986 0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f,
20987 });
20988 try testArgs(@Vector(4, i255), .{
20989 -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4,
20990 0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1,
20991 0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a,
20992 0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d,
20993 }, .{
20994 0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd,
20995 0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6,
20996 0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a,
20997 -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68,
20998 });
20999
21000 try testArgs(@Vector(1, u255), .{
21001 0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9,
21002 }, .{
21003 0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381,
21004 });
21005 try testArgs(@Vector(2, u255), .{
21006 0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff,
21007 0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef,
21008 }, .{
21009 0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8,
21010 0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b,
21011 });
21012 try testArgs(@Vector(4, u255), .{
21013 0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982,
21014 0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626,
21015 0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4,
21016 0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce,
21017 }, .{
21018 0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61,
21019 0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36,
21020 0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49,
21021 0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7,
21022 });
21023
21024 try testArgs(@Vector(1, i256), .{
21025 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce,
21026 }, .{
21027 0x6932f4faf261c45ecd701a4fe3015d4255e486b04c4ab448fe162980cead63fb,
21028 });
21029 try testArgs(@Vector(2, i256), .{
21030 -0x23daa9bab59dc1e685f4220c189930c3420a55784f0dec1028c2778d907ccfe2,
21031 0x521c992e4f46d61709d39e076ed94d5d884585f85ccbf71ca4d593da34f61bf5,
21032 }, .{
21033 0x2d880cb5aa793218a32411389db31e935932029645573a9625dd174099c9e5b2,
21034 0x2394a6cde7e8b2dc2995f07f22f815baa6c223d99c0b1ec4b2d8abd0094db853,
21035 });
21036 try testArgs(@Vector(4, i256), .{
21037 0x244e66ed932a4d970fd8735c10bfbd5f59bd4452c20fa0fcf873823b8c9e6321,
21038 -0x31577b747614b1ab83fd0178293cd80b3cb92e739459b2d038688a2471f6d659,
21039 -0x0dbdfc3d8bbd7cab6a33598cef29125aab7571fb0db9a528e42966963d6ce0e7,
21040 -0x72c58cce172d8a34019a44407a4baf1f8f8a4a611711bd5bb4daa2a2739dd67b,
21041 }, .{
21042 -0x2e88bc68893fc2d61af0e5ccb541f31fa6169504e8cfcbeab0b74a03b9e86c33,
21043 -0x7eba0783f3382b59a17ffbea57ba1dd8fa30e2d4f7eba7ed68d336d3c37b4561,
21044 -0x66d1463efd38e9e994e126d09b5c65c8efc932ffea9ec6cdf6042561ba05f801,
21045 0x2024bbacefbabbfd5b32a09be631451764a1f889a77918f9094382dc6d02aef2,
21046 });
21047
21048 try testArgs(@Vector(1, u256), .{
21049 0x28df37e1f57a56133ba3f5b5b2164ce24eb6c29a8973a597fd91fbee8ab4bafb,
21050 }, .{
21051 0x63f725028cab082b5b1e6cb474428c8c3655cf438f3bb05c7a87f8270198f357,
21052 });
21053 try testArgs(@Vector(2, u256), .{
21054 0xcc79740b85597ef411e6d7e92049dfaa2328781ea4911540a3dcb512b71c7f3c,
21055 0x51ae46d2f93cbecff1578481f6ddc633dacee94ecaf81597c752c5c5db0ae766,
21056 }, .{
21057 0x257f0107305cb71cef582a9a58612a019f335e390d7998f51f5898f245874a6e,
21058 0x0a95a17323a4d16a715720f122b752785e9877e3dd3d3f9b72cdac3d1139a81f,
21059 });
21060 try testArgs(@Vector(4, u256), .{
21061 0x19667a6e269342cba437a8904c7ba42a762358d32723723ae2637b01124e63c5,
21062 0x14f7d3599a7edc7bcc46874f68d4291793e6ef72bd1f3763bc5e923f54f2f781,
21063 0x1c939de0ae980b80de773a04088ba45813441336cdfdc281ee356c98d71f653b,
21064 0x39f5d755965382fe13d1b1d6690b8e3827f153f8166768c4ad8a28a963b781f2,
21065 }, .{
21066 0xbe03de37cdcb8126083b4e86cd8a9803121d31b186fd5ce555ad77ce624dd6c7,
21067 0xa0c0730f0d7f141cc959849d09730b049f00693361539f1bc4758270554a60c1,
21068 0x2664bdba8de4eaa36ecee72f6bfec5b4daa6b4e00272d8116f2cc532c29490cc,
21069 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b,
21070 });
21071
21072 try testArgs(@Vector(1, i257), .{
21073 -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12,
21074 }, .{
21075 0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a,
21076 });
21077 try testArgs(@Vector(2, i257), .{
21078 -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3,
21079 -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01,
21080 }, .{
21081 0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9,
21082 -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1,
21083 });
21084 try testArgs(@Vector(4, i257), .{
21085 -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa,
21086 0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85,
21087 0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66,
21088 -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42,
21089 }, .{
21090 0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8,
21091 0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a,
21092 -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c,
21093 -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5,
21094 });
21095
21096 try testArgs(@Vector(1, u257), .{
21097 0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11,
21098 }, .{
21099 0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68,
21100 });
21101 try testArgs(@Vector(2, u257), .{
21102 0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9,
21103 0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98,
21104 }, .{
21105 0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb,
21106 0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6,
21107 });
21108 try testArgs(@Vector(4, u257), .{
21109 0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909,
21110 0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974,
21111 0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4,
21112 0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0,
21113 }, .{
21114 0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab,
21115 0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140,
21116 0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556,
21117 0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b,
21118 });
21119
21120 try testArgs(@Vector(1, i511), .{
21121 0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed,
21122 }, .{
21123 0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577,
21124 });
21125 try testArgs(@Vector(2, i511), .{
21126 0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268,
21127 0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4,
21128 }, .{
21129 -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1,
21130 -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854,
21131 });
21132
21133 try testArgs(@Vector(1, u511), .{
21134 0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10,
21135 }, .{
21136 0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84,
21137 });
21138 try testArgs(@Vector(2, u511), .{
21139 0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb,
21140 0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1,
21141 }, .{
21142 0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601,
21143 0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074,
21144 });
21145
21146 try testArgs(@Vector(1, i512), .{
21147 -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2,
21148 }, .{
21149 0x18b1d3be5a03310d82859a4ab72f056a33d1a4b554522bcc062fb33eda3b8111045ee79e045dd1a665d250b897f6f2e12003a03313c2547698f8c1eab452eae1,
21150 });
21151 try testArgs(@Vector(2, i512), .{
21152 0x28e2ab84d87d5fb12be65d8650de67b992dd162fe563ca74b62f51f2f32e1084e03e32c8370930816445ac5052b4d345059c8ace582e3ef44377b160e265ec9b,
21153 -0x3a96548c707219326c42063997e71bc7a17b3067d402063843f84c86e747b71e09338079c28943d20601c0cde018bad57f5615fc89784bcb6232e45c54dff1db,
21154 }, .{
21155 0x64beecc90609b7156653b75a861e174c58fb42d5c7bf8d793efbb1cbe785c6b8cd52ce5f9aa859f174123c387820d40a2f93122b81396d739eb85c3ea33fcd37,
21156 -0x3632e347bc6d794940424ca0945dafa04328a924ec6b0ccdedcda6d296e09aa2dd5dca83b934cac752993238aa4fe826be8d62991c9347bae6f01bc0b1b4223d,
21157 });
21158
21159 try testArgs(@Vector(1, u512), .{
21160 0x651058c1d89a8f34cfc5e66b6d25294eecfcc4a7e1e4a356eb51ee7d7b2db25378e4afee51b7d18d16e520772a60c50a02d7966f40ced1870b32c658e5821397,
21161 }, .{
21162 0xd726e265ec80cb99510ba4f480ca64e959de5c528a7f54c386ecad22eeeefa845f0fd44b1bd64258a5f868197ee2d8fed59df9c9f0b72e74051a7ff20230880e,
21163 });
21164 try testArgs(@Vector(2, u512), .{
21165 0x22c8183c95cca8b09fdf541e431b73e9e4a1a5a00dff12381937fab52681d09d38ea25727d7025a2be08942cfa01535759e1644792e347c7901ec94b343c6337,
21166 0x292fdf644e75927e1aea9465ae2f60fb27550cd095f1afdea2cf7855286d26fbeed1c0b9c0474b73cb6b75621f7eadaa2f94ec358179ce2aaa0766df20da1ef3,
21167 }, .{
21168 0xe1cd8c0ca244c6626d4415e10b4ac43fa69e454c529c24fec4b13e6b945684d4ea833709c16c636ca78cffa5c5bf0fe945cd714a9ad695184a6bdad31dec9e31,
21169 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90,
21170 });
21171
21172 try testArgs(@Vector(1, i513), .{
21173 0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b,
21174 }, .{
21175 -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808,
21176 });
21177 try testArgs(@Vector(2, i513), .{
21178 0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c,
21179 -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711,
21180 }, .{
21181 -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0,
21182 0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33,
21183 });
21184
21185 try testArgs(@Vector(1, u513), .{
21186 0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78,
21187 }, .{
21188 0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8,
21189 });
21190 try testArgs(@Vector(2, u513), .{
21191 0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e,
21192 0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e,
21193 }, .{
21194 0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef,
21195 0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723,
21196 });
21197
21198 try testArgs(@Vector(1, i1023), .{
21199 -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4,
21200 }, .{
21201 0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1,
21202 });
21203
21204 try testArgs(@Vector(1, u1023), .{
21205 0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0,
21206 }, .{
21207 0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209,
21208 });
21209
21210 try testArgs(@Vector(1, i1024), .{
21211 -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394,
21212 }, .{
21213 -0x7cab2a053dfbf944cd342460350c989fd1b4469a6c7b54ddcacd54e605d29c03651b5c463495610d82269c9ac5b51bfd07816a0f7b1ab50cb598989ed64607b3faff79a190702eb285b0fedc050ec1a71537abc47ec590eb671d4f76b19567049ba4789d1a4348385607a0320fbff9b78260536a9b6030bddb0b09da689d1687,
21214 });
21215
21216 try testArgs(@Vector(1, u1024), .{
21217 0x0ca1a0dfaf8bb1da714b457d23c71aef948e66c7cd45c0aa941498a796fb18502ec32f34e885d0a107d44ae81595f8b52c2f0fb38e584b7139903a0e8a823ae20d01ca0662722dd474e7efc40f32d74cc065d97d8a09d0447f1ab6107fa0a57f3f8c866ae872506627ce82f18add79cee8dc69837f4ead3ca770c4d622d7e544,
21218 }, .{
21219 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc,
21220 });
21221
21222 try testArgs(@Vector(1, i1025), .{
21223 -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18,
21224 }, .{
21225 -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081,
21226 });
21227
21228 try testArgs(@Vector(1, u1025), .{
21229 0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb,
21230 }, .{
21231 0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f,
21232 });
21233 }
21234 fn testFloatVectors() !void {
21235 @setEvalBranchQuota(21_700);
21236
21237 try testArgs(@Vector(1, f16), .{
21238 -tmin(f16),
21239 }, .{
21240 fmax(f16),
21241 });
21242 try testArgs(@Vector(2, f16), .{
21243 1e-1, 1e0,
21244 }, .{
21245 -nan(f16), -fmin(f16),
21246 });
21247 try testArgs(@Vector(4, f16), .{
21248 1e-1, -fmax(f16), 0.0, 1e-1,
21249 }, .{
21250 -fmin(f16), -1e1, 1e0, -tmin(f16),
21251 });
21252 try testArgs(@Vector(8, f16), .{
21253 -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1,
21254 }, .{
21255 -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1,
21256 });
21257 try testArgs(@Vector(16, f16), .{
21258 1e-1, fmax(f16), -1e1, fmax(f16), -1e1, 1e-1, -tmin(f16), -inf(f16), -tmin(f16), -1e0, -fmin(f16), tmin(f16), 1e1, -fmax(f16), 0.0, -fmin(f16),
21259 }, .{
21260 inf(f16), -1e1, -fmax(f16), fmax(f16), -tmin(f16), 0.0, -1e0, -1e0, 1e-1, -nan(f16), -tmin(f16), 1e0, 1e-1, fmax(f16), -0.0, inf(f16),
21261 });
21262 try testArgs(@Vector(32, f16), .{
21263 -inf(f16), tmin(f16), fmin(f16), -nan(f16), nan(f16), 1e-1, 0.0, 1e1, -tmin(f16), inf(f16), 1e0, -1e1, fmin(f16), -0.0, 1e0, -fmax(f16),
21264 1e1, -0.0, -1e1, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), -1e0, 0.0, -1e1, -nan(f16), 1e0, -tmin(f16), -0.0, nan(f16), 1e1,
21265 }, .{
21266 0.0, 1e1, -nan(f16), -0.0, tmin(f16), fmax(f16), nan(f16), tmin(f16), -1e1, 1e-1, 1e1, fmin(f16), -fmax(f16), inf(f16), inf(f16), -tmin(f16),
21267 inf(f16), -0.0, 1e-1, 0.0, -fmin(f16), -0.0, -nan(f16), -inf(f16), -fmin(f16), fmax(f16), 1e0, fmin(f16), -0.0, -tmin(f16), -fmax(f16), -1e1,
21268 });
21269 try testArgs(@Vector(64, f16), .{
21270 -nan(f16), fmin(f16), -inf(f16), inf(f16), -tmin(f16), inf(f16), 1e-1, -1e0, -inf(f16), nan(f16), -fmin(f16), 1e-1, -tmin(f16), -fmax(f16), -1e1, inf(f16),
21271 0.0, -fmin(f16), -fmax(f16), 1e1, -fmax(f16), fmax(f16), 1e1, fmin(f16), -inf(f16), -nan(f16), -tmin(f16), nan(f16), -0.0, 0.0, 1e-1, -fmin(f16),
21272 0.0, nan(f16), inf(f16), fmax(f16), nan(f16), tmin(f16), 1e0, tmin(f16), fmin(f16), -1e1, 0.0, 1e-1, inf(f16), -1e1, inf(f16), 1e0,
21273 1e-1, -inf(f16), 1e1, -0.0, -1e0, -tmin(f16), -nan(f16), 1e-1, 1e-1, -nan(f16), -0.0, -1e1, -0.0, -nan(f16), 1e-1, fmin(f16),
21274 }, .{
21275 1e1, 0.0, fmax(f16), -inf(f16), -fmax(f16), -fmax(f16), tmin(f16), -1e0, -tmin(f16), -1e1, nan(f16), -nan(f16), tmin(f16), -fmin(f16), nan(f16), -1e1,
21276 1e1, fmax(f16), 1e-1, 0.0, 1e-1, -fmax(f16), -0.0, -fmin(f16), inf(f16), -1e0, inf(f16), fmin(f16), -inf(f16), -tmin(f16), 1e1, 1e1,
21277 1e-1, 1e-1, 1e-1, 1e1, -fmin(f16), inf(f16), 1e-1, fmax(f16), inf(f16), -0.0, -1e1, tmin(f16), -fmin(f16), 0.0, 1e1, 0.0,
21278 -tmin(f16), -inf(f16), 1e0, -fmax(f16), inf(f16), 1e1, fmax(f16), -1e0, 0.0, 1e-1, -1e0, -inf(f16), 1e-1, 0.0, -1e1, fmax(f16),
21279 });
21280 try testArgs(@Vector(128, f16), .{
21281 -fmin(f16), 1e0, 0.0, 1e-1, nan(f16), 1e-1, 1e-1, -inf(f16), -tmin(f16), 1e0, -fmin(f16), -fmax(f16), -1e0, -fmin(f16), 1e1, -nan(f16),
21282 inf(f16), -inf(f16), tmin(f16), -1e1, -1e0, -0.0, -0.0, 1e0, nan(f16), -1e1, fmin(f16), -tmin(f16), tmin(f16), 1e-1, -fmax(f16), fmax(f16),
21283 tmin(f16), -fmin(f16), nan(f16), 1e1, 1e0, -fmin(f16), 1e-1, 1e1, fmax(f16), fmax(f16), fmax(f16), -1e0, -nan(f16), 1e1, tmin(f16), -nan(f16),
21284 -nan(f16), -inf(f16), -0.0, -inf(f16), nan(f16), -1e0, 1e-1, -fmax(f16), -1e1, nan(f16), 1e0, -1e1, tmin(f16), 1e0, 1e-1, 1e0,
21285 1e1, 1e-1, tmin(f16), nan(f16), -inf(f16), -1e0, -1e0, -fmax(f16), -inf(f16), 1e-1, 1e-1, -0.0, 1e1, fmin(f16), -1e0, inf(f16),
21286 1e-1, -1e1, inf(f16), -0.0, 1e-1, 0.0, inf(f16), 1e0, tmin(f16), -tmin(f16), 1e-1, inf(f16), tmin(f16), -inf(f16), 1e1, 1e0,
21287 -inf(f16), 1e-1, 1e0, fmax(f16), -fmin(f16), nan(f16), -nan(f16), fmin(f16), -1e0, -fmax(f16), inf(f16), -fmax(f16), 0.0, -1e1, fmin(f16), -fmax(f16),
21288 -0.0, -1e0, 1e-1, 1e1, inf(f16), fmax(f16), inf(f16), 1e1, fmax(f16), -0.0, -tmin(f16), fmin(f16), inf(f16), nan(f16), -fmin(f16), -1e0,
21289 }, .{
21290 -fmax(f16), fmax(f16), inf(f16), 1e0, nan(f16), 1e-1, -fmax(f16), 1e1, -fmin(f16), 1e-1, fmin(f16), -0.0, 1e-1, -0.0, -nan(f16), -nan(f16),
21291 inf(f16), 1e0, -1e0, 1e-1, 1e-1, 1e-1, 0.0, -tmin(f16), -1e0, -1e1, -tmin(f16), 1e0, -1e1, fmin(f16), -fmax(f16), -nan(f16),
21292 -tmin(f16), -inf(f16), inf(f16), -fmin(f16), -nan(f16), 0.0, -inf(f16), -fmax(f16), 1e-1, -inf(f16), tmin(f16), nan(f16), tmin(f16), fmin(f16), -0.0, 1e-1,
21293 fmin(f16), fmin(f16), 1e0, tmin(f16), 0.0, 1e1, 1e-1, inf(f16), 1e1, -tmin(f16), tmin(f16), -1e0, -fmin(f16), 1e0, nan(f16), -fmax(f16),
21294 nan(f16), -fmin(f16), 1e-1, 1e1, -1e1, 1e0, -0.0, tmin(f16), nan(f16), inf(f16), -fmax(f16), tmin(f16), -tmin(f16), 1e1, fmin(f16), -tmin(f16),
21295 -0.0, 1e0, tmin(f16), fmax(f16), 1e0, -inf(f16), -nan(f16), -0.0, 1e-1, -inf(f16), 1e-1, fmax(f16), -inf(f16), -nan(f16), -1e0, -inf(f16),
21296 1e-1, fmin(f16), -1e1, -tmin(f16), 1e0, -nan(f16), -fmax(f16), -1e1, -tmin(f16), 1e1, nan(f16), fmin(f16), fmax(f16), tmin(f16), -inf(f16), 1e0,
21297 -fmin(f16), tmin(f16), -1e0, 1e-1, 0.0, nan(f16), 1e0, fmax(f16), -1e0, 1e1, nan(f16), 1e0, fmin(f16), 1e0, -1e1, -1e1,
21298 });
21299 try testArgs(@Vector(69, f16), .{
21300 -nan(f16), -1e0, -fmin(f16), fmin(f16), inf(f16), 1e-1, 0.0, fmax(f16), tmin(f16), 1e-1, 0.0, -tmin(f16), 0.0, 0.0, 1e0, -inf(f16),
21301 tmin(f16), -inf(f16), -tmin(f16), fmin(f16), -inf(f16), -nan(f16), tmin(f16), -tmin(f16), 1e-1, -1e0, -tmin(f16), fmax(f16), nan(f16), -fmin(f16), fmin(f16), 1e1,
21302 fmin(f16), -1e1, 0.0, fmin(f16), fmax(f16), -nan(f16), fmax(f16), -fmax(f16), nan(f16), -nan(f16), fmin(f16), -1e1, -fmin(f16), fmin(f16), -fmin(f16), -nan(f16),
21303 0.0, -1e0, fmax(f16), 1e-1, inf(f16), 1e0, -1e0, -0.0, 1e1, 1e-1, -fmax(f16), tmin(f16), -inf(f16), tmin(f16), -fmax(f16), 1e-1,
21304 -1e1, -0.0, -fmax(f16), nan(f16), fmax(f16),
21305 }, .{
21306 inf(f16), -fmin(f16), 1e-1, 1e-1, -0.0, fmax(f16), 1e-1, -0.0, 0.0, -0.0, 0.0, -tmin(f16), tmin(f16), -1e0, nan(f16), -fmin(f16),
21307 fmin(f16), 1e-1, 1e-1, nan(f16), -fmax(f16), -inf(f16), -nan(f16), -nan(f16), 1e-1, -fmax(f16), fmin(f16), 1e-1, 1e-1, 1e-1, -0.0, 1e1,
21308 tmin(f16), -nan(f16), fmin(f16), -1e0, 1e0, -tmin(f16), 0.0, nan(f16), fmax(f16), -1e1, fmin(f16), -fmin(f16), -1e0, 1e-1, -fmin(f16), -fmin(f16),
21309 -fmax(f16), 0.0, fmin(f16), -1e1, -1e0, -1e0, fmax(f16), -nan(f16), -inf(f16), -inf(f16), 0.0, tmin(f16), -0.0, nan(f16), -inf(f16), nan(f16),
21310 inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16),
21311 });
21312
21313 try testArgs(@Vector(1, f32), .{
21314 fmin(f32),
21315 }, .{
21316 -tmin(f32),
21317 });
21318 try testArgs(@Vector(2, f32), .{
21319 nan(f32), -1e1,
21320 }, .{
21321 -tmin(f32), fmin(f32),
21322 });
21323 try testArgs(@Vector(4, f32), .{
21324 fmax(f32), -fmax(f32), -1e1, 0.0,
21325 }, .{
21326 inf(f32), inf(f32), -1e1, inf(f32),
21327 });
21328 try testArgs(@Vector(8, f32), .{
21329 -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1,
21330 }, .{
21331 1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1,
21332 });
21333 try testArgs(@Vector(16, f32), .{
21334 1e-1, 1e-1, -nan(f32), -1e1, -nan(f32), 0.0, fmin(f32), fmin(f32), -1e1, 1e0, -fmax(f32), -0.0, inf(f32), -0.0, fmax(f32), -fmin(f32),
21335 }, .{
21336 nan(f32), 0.0, tmin(f32), -1e0, -1e1, -tmin(f32), fmin(f32), -fmax(f32), 1e-1, 1e-1, -inf(f32), tmin(f32), -0.0, 1e1, -0.0, -inf(f32),
21337 });
21338 try testArgs(@Vector(32, f32), .{
21339 1e-1, tmin(f32), -1e0, 1e0, tmin(f32), -1e1, fmax(f32), 0.0, tmin(f32), 1e-1, -1e0, fmax(f32), -nan(f32), -0.0, fmin(f32), 0.0,
21340 -fmax(f32), fmax(f32), -fmin(f32), -inf(f32), tmin(f32), -nan(f32), -1e0, tmin(f32), -fmin(f32), -inf(f32), nan(f32), -tmin(f32), inf(f32), -inf(f32), -nan(f32), 1e-1,
21341 }, .{
21342 -fmin(f32), -1e0, fmax(f32), inf(f32), -fmin(f32), fmax(f32), 0.0, -1e1, 0.0, 1e-1, fmin(f32), -inf(f32), 1e0, -nan(f32), -nan(f32),
21343 -inf(f32), -0.0, nan(f32), -fmax(f32), 1e1, -tmin(f32), fmax(f32), -1e1, 1e-1, tmin(f32), 1e-1, -fmax(f32), 0.0, 1e-1, -nan(f32),
21344 -fmin(f32), fmax(f32),
21345 });
21346 try testArgs(@Vector(64, f32), .{
21347 fmin(f32), 0.0, -inf(f32), 1e-1, -1e1, -fmin(f32), 1e1, nan(f32), 1e-1, 1e0, -1e0, 1e1, 1e1, 1e-1, -fmax(f32), -1e0,
21348 -fmin(f32), 1e-1, -inf(f32), -inf(f32), 1e-1, 1e-1, 0.0, -1e0, nan(f32), -0.0, -0.0, -fmin(f32), -inf(f32), inf(f32), tmin(f32), -nan(f32),
21349 1e-1, 0.0, 1e0, tmin(f32), 1e1, fmin(f32), -fmin(f32), fmax(f32), nan(f32), 1e0, -nan(f32), -nan(f32), 1e0, nan(f32), 1e0, fmax(f32),
21350 -0.0, 0.0, inf(f32), nan(f32), tmin(f32), 0.0, fmin(f32), -0.0, -fmin(f32), tmin(f32), -1e0, -1e1, 1e-1, -tmin(f32), -inf(f32), -1e0,
21351 }, .{
21352 nan(f32), -nan(f32), -tmin(f32), inf(f32), -inf(f32), 1e-1, 1e-1, 1e-1, -1e0, -inf(f32), -0.0, fmax(f32), tmin(f32), -nan(f32), -fmax(f32), -1e0,
21353 -fmin(f32), -0.0, fmax(f32), -fmax(f32), 1e0, -0.0, 0.0, 1e1, -1e0, -fmin(f32), 0.0, fmax(f32), 1e-1, 1e0, 1e1, 1e-1,
21354 1e-1, fmin(f32), -nan(f32), -inf(f32), -0.0, -inf(f32), 1e-1, -fmax(f32), -1e1, -1e1, nan(f32), 1e1, -1e0, -fmin(f32), 1e1, fmin(f32),
21355 1e0, -fmax(f32), nan(f32), inf(f32), fmax(f32), fmax(f32), -fmin(f32), -inf(f32), -tmin(f32), -nan(f32), nan(f32), nan(f32), 1e-1, 1e-1, -1e0, inf(f32),
21356 });
21357 try testArgs(@Vector(128, f32), .{
21358 -1e1, -nan(f32), inf(f32), inf(f32), -tmin(f32), -0.0, 0.0, 1e-1, -0.0, fmin(f32), nan(f32), -1e0, nan(f32), -fmax(f32), nan(f32), 0.0,
21359 1e0, -tmin(f32), 0.0, -nan(f32), 1e-1, 1e-1, -1e0, 1e1, -fmax(f32), -fmin(f32), 1e-1, nan(f32), 1e-1, -fmax(f32), -tmin(f32), -inf(f32),
21360 inf(f32), tmin(f32), -tmin(f32), nan(f32), -inf(f32), -1e1, 1e0, -nan(f32), 1e-1, nan(f32), -1e0, tmin(f32), -fmin(f32), -0.0, -0.0, 1e0,
21361 fmin(f32), -fmin(f32), 1e-1, 1e-1, 1e-1, -1e1, -1e1, -tmin(f32), 1e0, -0.0, 1e1, -fmax(f32), 1e1, -fmax(f32), inf(f32), -1e0,
21362 -fmax(f32), fmin(f32), fmin(f32), fmin(f32), -1e0, -nan(f32), fmax(f32), -nan(f32), 1e-1, -1e0, -fmax(f32), -tmin(f32), -0.0, fmax(f32), -1e1, inf(f32),
21363 1e1, -inf(f32), 1e-1, fmin(f32), nan(f32), -fmax(f32), -tmin(f32), inf(f32), tmin(f32), -fmin(f32), fmax(f32), 1e0, fmin(f32), -0.0, 1e-1, fmin(f32),
21364 1e-1, inf(f32), -1e1, inf(f32), 1e1, tmin(f32), 0.0, 1e0, inf(f32), -1e1, -fmin(f32), tmin(f32), 1e0, 1e-1, 1e-1, -fmin(f32),
21365 1e1, 1e-1, fmax(f32), fmin(f32), 1e0, -1e1, -inf(f32), -1e1, 0.0, -fmax(f32), -inf(f32), -1e0, fmax(f32), -tmin(f32), inf(f32), nan(f32),
21366 }, .{
21367 -tmin(f32), -fmax(f32), -fmax(f32), 1e1, inf(f32), 1e-1, 1e0, fmin(f32), 1e-1, 1e1, fmin(f32), -fmax(f32), 1e0, fmax(f32), 1e-1, -fmin(f32),
21368 0.0, -0.0, -0.0, -1e0, -nan(f32), nan(f32), -tmin(f32), 1e1, -tmin(f32), -1e1, inf(f32), 0.0, tmin(f32), 0.0, -fmax(f32), inf(f32),
21369 fmin(f32), 1e-1, -1e1, tmin(f32), tmin(f32), 1e-1, fmin(f32), -tmin(f32), fmin(f32), nan(f32), 1e-1, -fmax(f32), -1e0, -0.0, fmin(f32), -0.0,
21370 -1e0, -0.0, -inf(f32), fmax(f32), -1e1, 1e0, inf(f32), -1e0, -tmin(f32), -tmin(f32), 1e-1, -1e1, -fmin(f32), 1e1, -1e1, -inf(f32),
21371 -1e0, inf(f32), 1e-1, 1e0, -nan(f32), 1e-1, -1e1, -nan(f32), -tmin(f32), 0.0, fmin(f32), -nan(f32), fmax(f32), -tmin(f32), 0.0, 0.0,
21372 -fmax(f32), -inf(f32), -1e0, -0.0, 1e1, nan(f32), 1e-1, tmin(f32), -1e1, 1e1, tmin(f32), -fmax(f32), 1e-1, -1e1, -tmin(f32), fmax(f32),
21373 -fmax(f32), 1e-1, -nan(f32), -fmin(f32), inf(f32), inf(f32), tmin(f32), tmin(f32), -tmin(f32), tmin(f32), 0.0, -0.0, 1e0, 1e1, -1e1, inf(f32),
21374 0.0, -fmin(f32), fmax(f32), -1e1, fmax(f32), -0.0, 0.0, -fmin(f32), 1e1, -fmin(f32), -fmin(f32), -fmin(f32), 1e1, fmin(f32), -inf(f32), fmax(f32),
21375 });
21376 try testArgs(@Vector(69, f32), .{
21377 nan(f32), 1e-1, -tmin(f32), fmax(f32), nan(f32), -fmax(f32), 1e-1, fmax(f32), 1e1, inf(f32), -fmin(f32), -fmax(f32), inf(f32), -nan(f32), 1e-1, 1e0,
21378 fmax(f32), 1e-1, 1e1, 0.0, -1e1, fmax(f32), 1e1, 0.0, 1e0, 1e1, -fmax(f32), 0.0, -tmin(f32), -fmin(f32), 1e-1, 1e0,
21379 fmin(f32), tmin(f32), -fmin(f32), -tmin(f32), tmin(f32), -inf(f32), -fmax(f32), -0.0, -1e0, -0.0, -fmax(f32), fmax(f32), fmin(f32), -0.0, 0.0, -inf(f32),
21380 -tmin(f32), inf(f32), -nan(f32), tmin(f32), -1e0, -tmin(f32), 1e1, -inf(f32), -fmin(f32), 1e-1, -inf(f32), -1e0, nan(f32), -inf(f32), -tmin(f32), 1e1,
21381 1e1, -nan(f32), -nan(f32), tmin(f32), -nan(f32),
21382 }, .{
21383 -nan(f32), 1e0, fmax(f32), 1e-1, -0.0, 1e0, -inf(f32), -fmin(f32), -nan(f32), inf(f32), 1e0, -nan(f32), -nan(f32), -inf(f32), tmin(f32), -fmin(f32),
21384 -nan(f32), 1e-1, fmin(f32), -1e0, -fmax(f32), 1e-1, -1e0, 1e-1, 1e-1, -tmin(f32), 1e-1, 1e-1, 1e1, fmin(f32), 0.0, nan(f32),
21385 tmin(f32), 1e0, nan(f32), -fmin(f32), tmin(f32), nan(f32), 1e-1, nan(f32), 1e0, -fmax(f32), tmin(f32), 1e0, 0.0, -1e0, nan(f32), fmin(f32),
21386 -inf(f32), fmax(f32), -0.0, nan(f32), tmin(f32), tmin(f32), -inf(f32), -1e1, -nan(f32), -fmax(f32), -0.0, 1e-1, -inf(f32), 1e0, nan(f32), 1e0,
21387 -1e1, fmin(f32), inf(f32), fmin(f32), 0.0,
21388 });
21389
21390 try testArgs(@Vector(1, f64), .{
21391 -0.0,
21392 }, .{
21393 1e0,
21394 });
21395 try testArgs(@Vector(2, f64), .{
21396 -1e0, 0.0,
21397 }, .{
21398 -inf(f64), -fmax(f64),
21399 });
21400 try testArgs(@Vector(4, f64), .{
21401 -inf(f64), inf(f64), 1e1, 0.0,
21402 }, .{
21403 -tmin(f64), 1e0, nan(f64), 0.0,
21404 });
21405 try testArgs(@Vector(8, f64), .{
21406 1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1,
21407 }, .{
21408 tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0,
21409 });
21410 try testArgs(@Vector(16, f64), .{
21411 1e-1, -nan(f64), 1e0, tmin(f64), fmax(f64), -fmax(f64), -tmin(f64), -0.0, -fmin(f64), -1e0, -fmax(f64), -nan(f64), -fmax(f64), nan(f64), -0.0, 1e-1,
21412 }, .{
21413 -1e0, -tmin(f64), -fmin(f64), 1e-1, 1e-1, -0.0, -nan(f64), -inf(f64), -inf(f64), -0.0, nan(f64), tmin(f64), 1e0, 1e-1, tmin(f64), fmin(f64),
21414 });
21415 try testArgs(@Vector(32, f64), .{
21416 -fmax(f64), fmin(f64), 1e-1, 1e-1, 0.0, 1e0, -0.0, -tmin(f64), tmin(f64), inf(f64), -tmin(f64), -tmin(f64), -tmin(f64), -fmax(f64), fmin(f64), 1e0,
21417 -fmin(f64), -nan(f64), 1e0, -inf(f64), -nan(f64), -1e0, 0.0, 0.0, nan(f64), -nan(f64), -fmin(f64), fmin(f64), 1e-1, nan(f64), tmin(f64), -fmax(f64),
21418 }, .{
21419 -tmin(f64), -fmax(f64), -inf(f64), -nan(f64), fmin(f64), -inf(f64), 1e-1, -fmax(f64), -inf(f64), fmin(f64), inf(f64), -1e0, -tmin(f64), inf(f64), 1e-1, nan(f64),
21420 fmin(f64), 1e1, -tmin(f64), -nan(f64), -inf(f64), 1e0, nan(f64), -fmin(f64), -1e0, nan(f64), -1e0, 0.0, 1e0, nan(f64), -1e0, -fmin(f64),
21421 });
21422 try testArgs(@Vector(64, f64), .{
21423 -1e1, fmax(f64), -nan(f64), tmin(f64), 1e-1, -1e0, 1e0, -0.0, -fmin(f64), 1e-1, -fmin(f64), -0.0, -0.0, tmin(f64), -1e1, 1e-1,
21424 -1e1, -fmax(f64), -1e1, -fmin(f64), 0.0, -1e1, nan(f64), 1e0, inf(f64), inf(f64), -inf(f64), tmin(f64), tmin(f64), 1e-1, -0.0, 1e-1,
21425 -0.0, 1e-1, -1e1, 1e1, fmax(f64), -fmin(f64), 1e0, fmax(f64), 1e0, -1e1, fmin(f64), fmax(f64), -1e0, -0.0, -0.0, fmax(f64),
21426 -inf(f64), -inf(f64), -tmin(f64), -fmax(f64), -nan(f64), tmin(f64), -1e0, 0.0, -inf(f64), fmax(f64), nan(f64), -inf(f64), fmin(f64), -nan(f64), -nan(f64), -1e1,
21427 }, .{
21428 nan(f64), -1e0, 0.0, -1e1, -fmax(f64), -fmin(f64), -nan(f64), -tmin(f64), 1e-1, -1e0, -nan(f64), -fmax(f64), 0.0, 0.0, 1e1, inf(f64),
21429 fmin(f64), 0.0, -1e1, 1e0, -tmin(f64), -inf(f64), -fmax(f64), 0.0, -fmin(f64), -1e0, -fmin(f64), tmin(f64), 1e0, -1e1, fmin(f64), 1e-1,
21430 inf(f64), -0.0, tmin(f64), -fmax(f64), -tmin(f64), -fmax(f64), fmin(f64), -fmax(f64), 1e-1, 1e0, 1e0, 0.0, fmin(f64), nan(f64), -1e1, tmin(f64),
21431 inf(f64), 1e-1, 1e0, -nan(f64), 1e0, -fmin(f64), fmax(f64), inf(f64), fmin(f64), -inf(f64), -0.0, 0.0, -1e0, -0.0, 1e-1, 1e-1,
21432 });
21433 try testArgs(@Vector(128, f64), .{
21434 nan(f64), -fmin(f64), fmax(f64), fmin(f64), -1e1, nan(f64), tmin(f64), fmax(f64), inf(f64), -nan(f64), tmin(f64), -nan(f64), -0.0, fmin(f64), fmax(f64),
21435 -inf(f64), inf(f64), -1e0, 0.0, 1e-1, fmin(f64), 0.0, 1e-1, -1e0, -inf(f64), 1e-1, fmax(f64), fmin(f64), fmax(f64), -fmax(f64),
21436 fmin(f64), inf(f64), -fmin(f64), -1e1, -0.0, 1e-1, nan(f64), -fmax(f64), -fmax(f64), -1e0, 1e1, 1e1, -1e0, -inf(f64), inf(f64),
21437 -fmin(f64), 1e0, -inf(f64), -1e1, 1e-1, 1e0, 1e1, 1e1, tmin(f64), nan(f64), inf(f64), 0.0, -1e0, -1e1, 1e0,
21438 -tmin(f64), -fmax(f64), -nan(f64), 1e1, 1e-1, tmin(f64), 0.0, 1e1, 1e-1, -tmin(f64), -tmin(f64), 1e0, -fmax(f64), nan(f64), -fmin(f64),
21439 nan(f64), 1e1, -1e0, -0.0, -tmin(f64), nan(f64), 1e1, 1e1, -inf(f64), 1e-1, -nan(f64), -1e1, -tmin(f64), -fmax(f64), -fmax(f64),
21440 inf(f64), -inf(f64), tmin(f64), 1e0, -inf(f64), -1e1, inf(f64), 1e-1, -nan(f64), -inf(f64), fmax(f64), 1e-1, -inf(f64), 1e-1, 1e0,
21441 1e-1, 1e-1, 1e-1, inf(f64), -inf(f64), 1e0, 1e1, 1e1, nan(f64), 1e1, -tmin(f64), 1e0, -fmin(f64), -1e0, -fmax(f64),
21442 -fmin(f64), -fmin(f64), -1e0, inf(f64), nan(f64), tmin(f64), 1e-1, -1e0,
21443 }, .{
21444 0.0, 0.0, inf(f64), -0.0, 1e-1, -nan(f64), 1e1, -nan(f64), tmin(f64), -1e1, -0.0, inf(f64), -fmin(f64), 1e-1, fmax(f64),
21445 nan(f64), -tmin(f64), tmin(f64), 1e0, 1e-1, -1e1, -nan(f64), 1e0, inf(f64), -1e1, fmin(f64), 1e-1, 1e1, -1e1, 1e1,
21446 -nan(f64), -nan(f64), 1e-1, 0.0, 1e1, -fmax(f64), -tmin(f64), tmin(f64), -1e0, -tmin(f64), -1e1, 1e-1, -fmax(f64), 1e1, nan(f64),
21447 fmax(f64), -1e0, -1e0, -tmin(f64), fmax(f64), -1e1, 1e-1, 1e0, fmin(f64), inf(f64), 1e-1, tmin(f64), 1e-1, -fmax(f64), fmax(f64),
21448 -1e1, -fmax(f64), fmax(f64), tmin(f64), -fmin(f64), inf(f64), 1e-1, -0.0, fmax(f64), tmin(f64), 1e-1, 1e0, -inf(f64), 1e0, 1e1,
21449 1e-1, 0.0, -1e1, -nan(f64), 1e1, -fmin(f64), -tmin(f64), 1e1, 1e0, -tmin(f64), -1e0, -fmin(f64), -0.0, -1e1, 1e-1,
21450 inf(f64), -fmax(f64), 1e-1, tmin(f64), -0.0, fmax(f64), 0.0, -nan(f64), -fmin(f64), fmax(f64), -0.0, nan(f64), -inf(f64), tmin(f64), 1e-1,
21451 inf(f64), 0.0, 1e1, -fmax(f64), tmin(f64), -0.0, fmin(f64), -nan(f64), -1e1, -inf(f64), nan(f64), inf(f64), -0.0, 1e1, fmax(f64),
21452 tmin(f64), -1e1, -nan(f64), 1e1, -inf(f64), -fmax(f64), -inf(f64), -1e0,
21453 });
21454 try testArgs(@Vector(69, f64), .{
21455 inf(f64), -0.0, -fmax(f64), fmax(f64), fmax(f64), 0.0, fmin(f64), -nan(f64), 1e-1, 1e-1, 1e-1, -fmin(f64), inf(f64), 1e-1, fmax(f64), nan(f64),
21456 tmin(f64), -1e1, 1e1, -tmin(f64), -0.0, nan(f64), -1e1, fmin(f64), 0.0, -0.0, 1e-1, inf(f64), -tmin(f64), -nan(f64), inf(f64), -nan(f64),
21457 -inf(f64), fmax(f64), 1e-1, -fmin(f64), 1e-1, -1e0, fmin(f64), fmin(f64), fmin(f64), 1e1, -fmin(f64), nan(f64), 0.0, 0.0, 1e1, nan(f64),
21458 -tmin(f64), tmin(f64), tmin(f64), fmin(f64), -0.0, -1e0, 1e-1, 1e0, fmax(f64), tmin(f64), fmin(f64), 0.0, -fmin(f64), fmin(f64), -tmin(f64), 0.0,
21459 -nan(f64), 1e1, -1e0, 1e-1, 0.0,
21460 }, .{
21461 -1e1, -0.0, fmin(f64), -fmin(f64), nan(f64), 1e1, -tmin(f64), -fmax(f64), 1e1, 1e-1, -fmin(f64), inf(f64), -inf(f64), -tmin(f64), 1e0, tmin(f64),
21462 -tmin(f64), -nan(f64), fmax(f64), 0.0, -1e0, 1e1, inf(f64), fmin(f64), fmax(f64), 1e-1, 1e-1, fmax(f64), -inf(f64), 1e-1, 1e-1, fmin(f64),
21463 1e-1, fmin(f64), -1e1, nan(f64), 0.0, 0.0, fmax(f64), -inf(f64), tmin(f64), inf(f64), -tmin(f64), fmax(f64), -inf(f64), -1e1, -1e0, fmin(f64),
21464 1e-1, -nan(f64), fmax(f64), -fmin(f64), fmax(f64), nan(f64), -0.0, -fmax(f64), 1e1, nan(f64), inf(f64), -1e0, -fmin(f64), nan(f64), -fmin(f64), -0.0,
21465 -nan(f64), -fmin(f64), 1e-1, nan(f64), 1e-1,
21466 });
21467
21468 try testArgs(@Vector(1, f80), .{
21469 -nan(f80),
21470 }, .{
21471 -1e0,
21472 });
21473 try testArgs(@Vector(2, f80), .{
21474 -fmax(f80), -inf(f80),
21475 }, .{
21476 1e-1, 1e1,
21477 });
21478 try testArgs(@Vector(4, f80), .{
21479 -0.0, -inf(f80), 1e-1, 1e1,
21480 }, .{
21481 -1e0, 0.0, 1e-1, -1e1,
21482 });
21483 try testArgs(@Vector(8, f80), .{
21484 1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1,
21485 }, .{
21486 -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1,
21487 });
21488 try testArgs(@Vector(16, f80), .{
21489 1e1, inf(f80), -fmin(f80), 1e-1, -tmin(f80), -0.0, -inf(f80), -1e0, -fmax(f80), -nan(f80), -tmin(f80), 1e1, 1e1, -inf(f80), -fmax(f80), fmax(f80),
21490 }, .{
21491 -inf(f80), nan(f80), -fmax(f80), fmin(f80), 1e0, 1e-1, -inf(f80), nan(f80), 1e-1, nan(f80), -inf(f80), nan(f80), tmin(f80), 1e-1, -tmin(f80), -1e1,
21492 });
21493 try testArgs(@Vector(32, f80), .{
21494 inf(f80), -0.0, 1e-1, -0.0, 1e-1, -fmin(f80), -0.0, fmax(f80), nan(f80), -tmin(f80), nan(f80), -1e1, 0.0, 1e0, 1e1, -fmin(f80),
21495 fmin(f80), 1e-1, inf(f80), -0.0, nan(f80), tmin(f80), -tmin(f80), fmin(f80), tmin(f80), -0.0, nan(f80), -fmax(f80), tmin(f80), -fmin(f80), 1e0, tmin(f80),
21496 }, .{
21497 0.0, -1e1, fmax(f80), -inf(f80), 1e-1, -inf(f80), inf(f80), 1e1, -1e0, -1e1, -fmin(f80), 0.0, inf(f80), 1e0, -nan(f80), 0.0,
21498 1e-1, nan(f80), 1e0, -fmax(f80), fmin(f80), -inf(f80), -fmax(f80), 1e-1, -1e1, tmin(f80), fmax(f80), -0.0, -fmin(f80), -fmin(f80), fmin(f80), -tmin(f80),
21499 });
21500 try testArgs(@Vector(64, f80), .{
21501 -fmax(f80), 1e-1, -1e0, 1e0, inf(f80), 1e-1, -1e1, 1e-1, fmin(f80), -fmin(f80), -1e1, -fmax(f80), 0.0, -1e1, -1e0, -nan(f80),
21502 0.0, 1e-1, -1e0, -tmin(f80), 1e0, tmin(f80), fmax(f80), 0.0, -1e1, -tmin(f80), fmax(f80), -0.0, 1e-1, -inf(f80), -fmax(f80), -1e0,
21503 -nan(f80), tmin(f80), -tmin(f80), -0.0, -0.0, -1e0, -0.0, fmax(f80), inf(f80), -nan(f80), 1e-1, -inf(f80), -tmin(f80), nan(f80), 1e-1, 1e1,
21504 nan(f80), -inf(f80), 1e-1, tmin(f80), -fmin(f80), 1e1, -1e1, tmin(f80), fmin(f80), nan(f80), 1e-1, -nan(f80), tmin(f80), nan(f80), fmax(f80), -fmax(f80),
21505 }, .{
21506 -nan(f80), -fmax(f80), tmin(f80), -inf(f80), -tmin(f80), fmin(f80), -nan(f80), -fmin(f80), fmax(f80), inf(f80), -0.0, -1e0, 1e-1, -fmax(f80), 1e0, -inf(f80),
21507 0.0, -nan(f80), -1e1, -1e0, -nan(f80), inf(f80), 1e0, -nan(f80), 1e1, inf(f80), tmin(f80), 1e-1, tmin(f80), -tmin(f80), -inf(f80), -fmin(f80),
21508 fmax(f80), fmax(f80), 1e-1, -tmin(f80), -nan(f80), -1e0, fmin(f80), -nan(f80), -nan(f80), inf(f80), -1e0, 1e-1, -fmin(f80), -tmin(f80), 0.0, -0.0,
21509 1e-1, -fmin(f80), -inf(f80), -1e0, -tmin(f80), 1e0, -inf(f80), -0.0, 0.0, 1e0, tmin(f80), 0.0, 1e-1, -nan(f80), fmax(f80), 1e0,
21510 });
21511 try testArgs(@Vector(128, f80), .{
21512 1e-1, -0.0, 1e-1, 0.0, fmin(f80), -1e0, 1e0, -inf(f80), fmax(f80), -fmin(f80), nan(f80), 1e1, 1e-1, 1e-1, -fmin(f80), -inf(f80),
21513 -1e0, -inf(f80), 1e0, -fmin(f80), inf(f80), -nan(f80), 1e1, inf(f80), tmin(f80), nan(f80), -1e1, inf(f80), 1e1, inf(f80), -1e1, 0.0,
21514 -1e1, fmin(f80), -tmin(f80), 1e0, -fmax(f80), nan(f80), 0.0, fmax(f80), 1e-1, -1e0, -fmin(f80), inf(f80), -tmin(f80), nan(f80), -tmin(f80), 1e1,
21515 -1e1, -tmin(f80), -1e0, -tmin(f80), -fmax(f80), 1e1, -1e0, -inf(f80), -nan(f80), 0.0, 1e0, fmax(f80), -tmin(f80), -fmin(f80), fmin(f80), fmin(f80),
21516 -1e1, -fmax(f80), -tmin(f80), inf(f80), 1e0, 0.0, tmin(f80), -nan(f80), -fmin(f80), 1e-1, -nan(f80), 0.0, 1e-1, -1e1, -0.0, -nan(f80),
21517 1e0, 1e1, -1e1, fmin(f80), -nan(f80), fmax(f80), -0.0, 1e0, inf(f80), 1e0, -fmin(f80), -fmin(f80), 0.0, 1e-1, inf(f80), 1e1,
21518 tmin(f80), -1e0, fmax(f80), -0.0, fmax(f80), fmax(f80), 1e-1, -fmin(f80), -1e1, 1e0, -fmin(f80), -fmax(f80), fmin(f80), -fmax(f80), -0.0, -1e0,
21519 -nan(f80), -inf(f80), nan(f80), -fmax(f80), inf(f80), -inf(f80), -nan(f80), fmin(f80), nan(f80), -1e0, tmin(f80), tmin(f80), 1e-1, 1e1, -tmin(f80), -nan(f80),
21520 }, .{
21521 -1e0, -0.0, 0.0, fmax(f80), -1e0, -0.0, 1e-1, tmin(f80), -inf(f80), 1e1, -0.0, 1e-1, -tmin(f80), -fmax(f80), tmin(f80), inf(f80),
21522 1e-1, 1e0, tmin(f80), nan(f80), -fmax(f80), 1e1, fmin(f80), -1e0, -fmax(f80), nan(f80), -fmin(f80), 1e1, -1e0, tmin(f80), inf(f80), -0.0,
21523 tmin(f80), 1e0, 0.0, -fmin(f80), 0.0, 1e1, -fmax(f80), -0.0, -inf(f80), fmin(f80), -0.0, -0.0, -0.0, -fmax(f80), 1e-1, fmax(f80),
21524 -tmin(f80), tmin(f80), -fmax(f80), 1e1, -fmax(f80), 1e-1, fmax(f80), -1e1, 1e-1, 1e0, -1e0, -1e0, nan(f80), -nan(f80), 1e1, -nan(f80),
21525 nan(f80), -1e1, -tmin(f80), fmin(f80), -tmin(f80), -fmin(f80), tmin(f80), -0.0, 1e-1, fmax(f80), tmin(f80), tmin(f80), nan(f80), 1e-1, 1e1, 1e-1,
21526 inf(f80), inf(f80), 1e0, -inf(f80), -fmax(f80), 0.0, 1e0, -fmax(f80), fmax(f80), nan(f80), fmin(f80), 1e-1, -1e0, 1e0, 1e-1, -tmin(f80),
21527 1e1, 1e-1, -fmax(f80), 0.0, nan(f80), -tmin(f80), 1e-1, fmax(f80), fmax(f80), 1e-1, -1e0, inf(f80), nan(f80), 1e1, fmax(f80), -nan(f80),
21528 -1e1, -1e0, tmin(f80), fmin(f80), inf(f80), fmax(f80), -fmin(f80), fmin(f80), -inf(f80), -tmin(f80), 1e0, nan(f80), -fmin(f80), -fmin(f80), fmax(f80), 1e0,
21529 });
21530 try testArgs(@Vector(69, f80), .{
21531 -1e1, tmin(f80), 1e-1, -nan(f80), -inf(f80), -nan(f80), fmin(f80), -0.0, 1e1, fmax(f80), -fmin(f80), 1e-1, -nan(f80), inf(f80), 1e0, -1e0,
21532 inf(f80), fmin(f80), -fmax(f80), 1e-1, nan(f80), 0.0, 0.0, nan(f80), -1e1, fmax(f80), fmin(f80), -fmax(f80), 1e0, 1e-1, 0.0, -fmin(f80),
21533 -tmin(f80), 0.0, -1e1, fmin(f80), 1e0, 1e1, 1e-1, nan(f80), -1e1, fmax(f80), 1e-1, fmin(f80), -inf(f80), 0.0, tmin(f80), inf(f80),
21534 fmax(f80), 1e0, 1e-1, nan(f80), inf(f80), tmin(f80), tmin(f80), -fmax(f80), 0.0, fmin(f80), -inf(f80), 1e-1, -tmin(f80), 1e-1, -1e0, 1e-1,
21535 -fmax(f80), -1e0, 1e-1, -1e0, fmax(f80),
21536 }, .{
21537 -1e0, fmin(f80), inf(f80), -nan(f80), -0.0, fmin(f80), -0.0, nan(f80), -fmax(f80), 1e-1, 1e0, -1e1, -tmin(f80), -fmin(f80), 1e1, inf(f80),
21538 -1e1, -tmin(f80), -fmin(f80), 1e1, 0.0, -tmin(f80), 1e1, -1e1, 1e-1, 1e-1, tmin(f80), fmax(f80), 0.0, 1e-1, 1e-1, -1e1,
21539 fmin(f80), nan(f80), -1e1, -1e1, -1e1, 0.0, -0.0, 1e-1, fmin(f80), fmin(f80), -0.0, -fmin(f80), -nan(f80), -inf(f80), 0.0, -inf(f80),
21540 inf(f80), fmax(f80), -tmin(f80), inf(f80), 1e-1, -nan(f80), 1e-1, tmin(f80), -1e1, -fmax(f80), -fmax(f80), inf(f80), -nan(f80), 1e0, -inf(f80), 1e1,
21541 nan(f80), 1e1, -1e1, 0.0, -fmin(f80),
21542 });
21543
21544 try testArgs(@Vector(1, f128), .{
21545 -nan(f128),
21546 }, .{
21547 -0.0,
21548 });
21549 try testArgs(@Vector(2, f128), .{
21550 0.0, -inf(f128),
21551 }, .{
21552 1e-1, -fmin(f128),
21553 });
21554 try testArgs(@Vector(4, f128), .{
21555 1e-1, fmax(f128), 1e1, -fmax(f128),
21556 }, .{
21557 -tmin(f128), fmax(f128), -0.0, -0.0,
21558 });
21559 try testArgs(@Vector(8, f128), .{
21560 1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128),
21561 }, .{
21562 fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1,
21563 });
21564 try testArgs(@Vector(16, f128), .{
21565 -fmin(f128), -1e1, -fmin(f128), 1e-1, -1e1, 1e0, -fmax(f128), tmin(f128), -nan(f128), -tmin(f128), 1e1, -inf(f128), -1e0, tmin(f128), -0.0, nan(f128),
21566 }, .{
21567 -fmax(f128), fmin(f128), inf(f128), tmin(f128), -1e1, 1e1, fmax(f128), 1e0, -inf(f128), -inf(f128), -fmax(f128), -nan(f128), 1e0, -inf(f128), tmin(f128), tmin(f128),
21568 });
21569 try testArgs(@Vector(32, f128), .{
21570 -0.0, -1e0, 1e0, -fmax(f128), -fmax(f128), 1e-1, -fmin(f128), -fmin(f128), -1e0, -tmin(f128), -0.0, -fmax(f128), tmin(f128), inf(f128), 0.0, fmax(f128),
21571 -nan(f128), -0.0, -inf(f128), -1e0, 1e-1, -fmin(f128), tmin(f128), -1e1, fmax(f128), -nan(f128), -nan(f128), -fmax(f128), 1e-1, inf(f128), -0.0, tmin(f128),
21572 }, .{
21573 -1e0, -1e1, -fmin(f128), -fmin(f128), inf(f128), tmin(f128), nan(f128), 0.0, -fmin(f128), 1e-1, -nan(f128), 1e-1, -0.0, tmin(f128), 1e0, 0.0,
21574 fmin(f128), fmax(f128), -fmax(f128), -tmin(f128), fmin(f128), -0.0, -1e0, -nan(f128), -inf(f128), 1e0, nan(f128), 1e0, 1e-1, -0.0, -fmax(f128), -1e1,
21575 });
21576 try testArgs(@Vector(64, f128), .{
21577 -1e0, -0.0, nan(f128), 1e-1, -1e1, 0.0, 1e0, 1e0, -inf(f128), fmin(f128), fmax(f128), nan(f128), -nan(f128), inf(f128), -0.0,
21578 1e-1, -inf(f128), -fmax(f128), 1e1, -tmin(f128), -tmin(f128), -fmax(f128), 1e0, 1e-1, 1e-1, nan(f128), 1e1, 1e0, -tmin(f128), 1e1,
21579 -nan(f128), fmax(f128), fmax(f128), 0.0, fmax(f128), inf(f128), 1e0, -0.0, 1e-1, -tmin(f128), fmin(f128), fmax(f128), tmin(f128), inf(f128), -1e1,
21580 -1e0, -1e0, -1e0, -inf(f128), 1e1, -tmin(f128), nan(f128), nan(f128), 1e-1, fmin(f128), 1e-1, tmin(f128), -1e1, 1e-1, 1e1,
21581 fmax(f128), fmax(f128), 1e-1, -fmax(f128),
21582 }, .{
21583 -0.0, 1e-1, -0.0, -fmin(f128), 1e1, 0.0, 1e0, -inf(f128), tmin(f128), -1e0, fmin(f128), -nan(f128), -1e1, 1e-1, -1e1, 1e-1,
21584 1e-1, tmin(f128), nan(f128), -1e0, 0.0, -1e1, -1e1, fmax(f128), -fmax(f128), inf(f128), -nan(f128), 1e-1, -nan(f128), 1e0, fmax(f128), inf(f128),
21585 nan(f128), fmin(f128), 1e1, inf(f128), 0.0, -inf(f128), 1e-1, 1e-1, 1e-1, -1e0, 1e-1, -1e1, inf(f128), -nan(f128), 1e-1, inf(f128),
21586 inf(f128), inf(f128), -1e1, -tmin(f128), 1e-1, -inf(f128), -fmin(f128), 1e0, -tmin(f128), 1e0, -tmin(f128), -inf(f128), -0.0, -nan(f128), -1e0, -fmax(f128),
21587 });
21588 try testArgs(@Vector(128, f128), .{
21589 -inf(f128), tmin(f128), -fmax(f128), 1e0, fmin(f128), -fmax(f128), -1e0, 1e-1, -fmax(f128), -fmin(f128), -1e1, nan(f128), 1e-1, nan(f128),
21590 inf(f128), -1e0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -1e1, -fmin(f128), -1e1, 1e0, -nan(f128),
21591 -inf(f128), fmin(f128), inf(f128), -tmin(f128), 1e-1, 0.0, 1e1, 1e0, -tmin(f128), -tmin(f128), tmin(f128), 1e0, fmin(f128), 1e-1,
21592 1e-1, 1e-1, fmax(f128), 1e-1, inf(f128), 0.0, fmin(f128), -fmin(f128), 1e1, 1e1, -1e1, tmin(f128), inf(f128), inf(f128),
21593 -fmin(f128), 0.0, 1e-1, -nan(f128), 1e-1, -inf(f128), -nan(f128), -1e0, fmin(f128), -0.0, 1e1, -tmin(f128), 1e1, 1e0,
21594 1e-1, -0.0, -tmin(f128), 1e-1, -1e0, -tmin(f128), -fmin(f128), tmin(f128), 1e-1, -tmin(f128), -nan(f128), -1e1, -inf(f128), 0.0,
21595 1e-1, 0.0, -fmin(f128), 0.0, 1e1, 1e1, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1e0, -fmin(f128), -1e1, -fmin(f128),
21596 -inf(f128), -fmax(f128), tmin(f128), tmin(f128), -fmin(f128), 1e-1, fmin(f128), fmin(f128), -fmin(f128), nan(f128), -1e0, -0.0, -0.0, 1e-1,
21597 fmax(f128), 0.0, -fmax(f128), nan(f128), nan(f128), nan(f128), nan(f128), -nan(f128), fmin(f128), -inf(f128), inf(f128), -fmax(f128), -1e1, fmin(f128),
21598 1e-1, fmax(f128),
21599 }, .{
21600 0.0, 1e1, 1e-1, inf(f128), -0.0, -1e0, nan(f128), -1e1, -inf(f128), 1e-1, -tmin(f128), 1e0, inf(f128), 1e-1, -1e0,
21601 1e1, 0.0, 1e0, nan(f128), tmin(f128), fmax(f128), 1e1, 1e-1, 1e-1, -fmin(f128), -inf(f128), -nan(f128), -fmin(f128), -0.0, -inf(f128),
21602 -nan(f128), fmax(f128), -fmin(f128), -tmin(f128), -fmin(f128), -fmax(f128), nan(f128), fmin(f128), -fmax(f128), fmax(f128), 1e0, 1e1, -fmax(f128), nan(f128), -fmax(f128),
21603 -inf(f128), nan(f128), -nan(f128), tmin(f128), -1e0, 1e-1, 1e-1, -1e0, -nan(f128), fmax(f128), 1e1, -inf(f128), 1e1, -0.0, -1e0,
21604 -0.0, -tmin(f128), 1e1, -1e0, -fmax(f128), fmin(f128), fmax(f128), tmin(f128), 1e1, fmin(f128), -nan(f128), 1e0, -tmin(f128), -1e0, fmax(f128),
21605 1e0, -tmin(f128), 1e-1, -nan(f128), inf(f128), 1e-1, 1e-1, fmax(f128), -fmin(f128), fmin(f128), -0.0, fmax(f128), -fmax(f128), -tmin(f128), tmin(f128),
21606 nan(f128), 1e-1, tmin(f128), -1e0, fmin(f128), -nan(f128), fmax(f128), 1e0, nan(f128), -nan(f128), inf(f128), -fmin(f128), fmin(f128), 1e-1, 1e1,
21607 -tmin(f128), -1e1, 0.0, 1e-1, -fmin(f128), -0.0, 0.0, -1e1, fmax(f128), nan(f128), nan(f128), -fmin(f128), -fmax(f128), 1e1, 0.0,
21608 fmin(f128), 1e1, -tmin(f128), -tmin(f128), 0.0, -1e1, 1e0, -fmin(f128),
21609 });
21610 try testArgs(@Vector(69, f128), .{
21611 -1e0, nan(f128), 1e-1, 1e-1, 1e-1, -1e0, -1e1, inf(f128), -0.0, inf(f128), tmin(f128), 0.0, -fmax(f128), -tmin(f128), -1e1, -fmax(f128),
21612 -0.0, 0.0, nan(f128), inf(f128), 1e0, -1e0, 1e-1, -0.0, 1e0, fmax(f128), -fmax(f128), 0.0, inf(f128), -inf(f128), -tmin(f128), -inf(f128),
21613 1e1, fmin(f128), 1e1, -1e1, 1e-1, 1e0, -0.0, nan(f128), tmin(f128), inf(f128), inf(f128), -nan(f128), -nan(f128), 1e0, -tmin(f128), 0.0,
21614 fmin(f128), fmax(f128), fmin(f128), -1e1, nan(f128), 0.0, -nan(f128), -0.0, -nan(f128), 1e-1, -1e1, -tmin(f128), fmax(f128), 1e0, fmin(f128), fmax(f128),
21615 nan(f128), -inf(f128), 1e0, fmin(f128), -nan(f128),
21616 }, .{
21617 -inf(f128), fmax(f128), 0.0, nan(f128), -1e1, tmin(f128), nan(f128), 1e0, 1e1, -fmin(f128), fmin(f128), tmin(f128), 0.0, -fmin(f128), -0.0, fmin(f128),
21618 inf(f128), inf(f128), fmin(f128), fmin(f128), -tmin(f128), -fmax(f128), 1e1, nan(f128), -0.0, 1e0, 1e1, -1e1, -inf(f128), fmin(f128), -fmax(f128), 1e-1,
21619 -1e0, -nan(f128), -1e1, tmin(f128), inf(f128), nan(f128), 0.0, -1e1, tmin(f128), 0.0, -fmax(f128), -tmin(f128), 1e-1, 1e-1, 1e1, 1e-1,
21620 fmax(f128), 1e-1, 0.0, -fmin(f128), -inf(f128), -inf(f128), -nan(f128), 1e-1, -fmax(f128), fmax(f128), -fmax(f128), -0.0, -tmin(f128), -1e0, nan(f128), 1e-1,
21621 -1e0, -inf(f128), tmin(f128), inf(f128), inf(f128),
21622 });
21623 }
21624 };
21625}
21626
21627inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
21628 @setRuntimeSafety(false);
21629 return @as(AddOneBit(Type), lhs) + rhs;
21630}
21631test addUnsafe {
21632 const test_add_unsafe = binary(addUnsafe, .{});
21633 try test_add_unsafe.testInts();
21634 try test_add_unsafe.testIntVectors();
21635 try test_add_unsafe.testFloats();
21636 try test_add_unsafe.testFloatVectors();
21637}
21638
21639inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
21640 return lhs +% rhs;
21641}
21642test addWrap {
21643 const test_add_wrap = binary(addWrap, .{});
21644 try test_add_wrap.testInts();
21645 try test_add_wrap.testIntVectors();
21646}
21647
21648inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
21649 @setRuntimeSafety(false);
21650 switch (@typeInfo(Scalar(Type))) {
21651 else => @compileError(@typeName(Type)),
21652 .int => |int| switch (int.signedness) {
21653 .signed => {},
21654 .unsigned => return @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs),
21655 },
21656 .float => {},
21657 }
21658 return @as(AddOneBit(Type), lhs) - rhs;
21659}
21660test subUnsafe {
21661 const test_sub_unsafe = binary(subUnsafe, .{});
21662 try test_sub_unsafe.testInts();
21663 try test_sub_unsafe.testIntVectors();
21664 try test_sub_unsafe.testFloats();
21665 try test_sub_unsafe.testFloatVectors();
21666}
21667
21668inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
21669 return lhs -% rhs;
21670}
21671test subWrap {
21672 const test_sub_wrap = binary(subWrap, .{});
21673 try test_sub_wrap.testInts();
21674 try test_sub_wrap.testIntVectors();
21675}
21676
21677inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
21678 @setRuntimeSafety(false);
21679 return @as(DoubleBits(Type), lhs) * rhs;
21680}
21681test mulUnsafe {
21682 const test_mul_unsafe = binary(mulUnsafe, .{});
21683 try test_mul_unsafe.testInts();
21684 try test_mul_unsafe.testIntVectors();
21685}
21686
21687inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) {
21688 return lhs * rhs;
21689}
21690test multiply {
21691 const test_multiply = binary(multiply, .{});
21692 try test_multiply.testFloats();
21693 try test_multiply.testFloatVectors();
21694}
21695
21696inline fn divide(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) {
21697 return lhs / rhs;
21698}
21699test divide {
21700 const test_divide = binary(divide, .{ .compare = .approx });
21701 try test_divide.testFloats();
21702 try test_divide.testFloatVectors();
21703}
21704
21705inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divTrunc(lhs, rhs)) {
21706 return @divTrunc(lhs, rhs);
21707}
21708test divTrunc {
21709 const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int });
21710 try test_div_trunc.testInts();
21711 try test_div_trunc.testIntVectors();
21712 try test_div_trunc.testFloats();
21713 try test_div_trunc.testFloatVectors();
21714}
21715
21716inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divFloor(lhs, rhs)) {
21717 return @divFloor(lhs, rhs);
21718}
21719test divFloor {
21720 const test_div_floor = binary(divFloor, .{ .compare = .approx_int });
21721 try test_div_floor.testFloats();
21722 try test_div_floor.testFloatVectors();
21723}
21724
21725inline fn rem(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@rem(lhs, rhs)) {
21726 return @rem(lhs, rhs);
21727}
21728test rem {
21729 const test_rem = binary(rem, .{});
21730 try test_rem.testInts();
21731 try test_rem.testIntVectors();
21732 try test_rem.testFloats();
21733 try test_rem.testFloatVectors();
21734}
21735
21736inline fn mod(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mod(lhs, rhs)) {
21737 // workaround llvm backend bugs
21738 if (@inComptime()) {
21739 const scalarMod = struct {
21740 fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) {
21741 const scalar_rem = @rem(scalar_lhs, scalar_rhs);
21742 return if (scalar_rem == 0 or math.signbit(scalar_rem) == math.signbit(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs;
21743 }
21744 }.scalarMod;
21745 switch (@typeInfo(Type)) {
21746 else => return scalarMod(lhs, rhs),
21747 .vector => |info| {
21748 var res: Type = undefined;
21749 inline for (0..info.len) |i| res[i] = scalarMod(lhs[i], rhs[i]);
21750 return res;
21751 },
21752 }
21753 }
21754 return @mod(lhs, rhs);
21755}
21756test mod {
21757 const test_mod = binary(mod, .{});
21758 try test_mod.testFloats();
21759 try test_mod.testFloatVectors();
21760}
21761
21762inline fn bitNot(comptime Type: type, rhs: Type) @TypeOf(~rhs) {
21763 return ~rhs;
21764}
21765test bitNot {
21766 const test_bit_not = unary(bitNot, .{});
21767 try test_bit_not.testInts();
21768 try test_bit_not.testIntVectors();
21769}
21770
21771inline fn clz(comptime Type: type, rhs: Type) @TypeOf(@clz(rhs)) {
21772 return @clz(rhs);
21773}
21774test clz {
21775 const test_clz = unary(clz, .{});
21776 try test_clz.testInts();
21777 try test_clz.testIntVectors();
21778}
21779
21780inline fn ctz(comptime Type: type, rhs: Type) @TypeOf(@ctz(rhs)) {
21781 return @ctz(rhs);
21782}
21783test ctz {
21784 const test_ctz = unary(ctz, .{});
21785 try test_ctz.testInts();
21786}
21787
21788inline fn popCount(comptime Type: type, rhs: Type) @TypeOf(@popCount(rhs)) {
21789 return @popCount(rhs);
21790}
21791test popCount {
21792 const test_pop_count = unary(popCount, .{});
21793 try test_pop_count.testInts();
21794}
21795
21796inline fn byteSwap(comptime Type: type, rhs: Type) RoundBitsUp(Type, 8) {
21797 return @byteSwap(@as(RoundBitsUp(Type, 8), rhs));
21798}
21799test byteSwap {
21800 const test_byte_swap = unary(byteSwap, .{});
21801 try test_byte_swap.testInts();
21802}
21803
21804inline fn bitReverse(comptime Type: type, rhs: Type) @TypeOf(@bitReverse(rhs)) {
21805 return @bitReverse(rhs);
21806}
21807test bitReverse {
21808 const test_bit_reverse = unary(bitReverse, .{});
21809 try test_bit_reverse.testInts();
21810}
21811
21812inline fn sqrt(comptime Type: type, rhs: Type) @TypeOf(@sqrt(rhs)) {
21813 return @sqrt(rhs);
21814}
21815test sqrt {
21816 const test_sqrt = unary(sqrt, .{ .libc_name = "sqrt", .compare = .approx });
21817 try test_sqrt.testFloats();
21818 try test_sqrt.testFloatVectors();
21819}
21820
21821inline fn sin(comptime Type: type, rhs: Type) @TypeOf(@sin(rhs)) {
21822 return @sin(rhs);
21823}
21824test sin {
21825 const test_sin = unary(sin, .{ .libc_name = "sin", .compare = .strict });
21826 try test_sin.testFloats();
21827 try test_sin.testFloatVectors();
21828}
21829
21830inline fn cos(comptime Type: type, rhs: Type) @TypeOf(@cos(rhs)) {
21831 return @cos(rhs);
21832}
21833test cos {
21834 const test_cos = unary(cos, .{ .libc_name = "cos", .compare = .strict });
21835 try test_cos.testFloats();
21836 try test_cos.testFloatVectors();
21837}
21838
21839inline fn tan(comptime Type: type, rhs: Type) @TypeOf(@tan(rhs)) {
21840 return @tan(rhs);
21841}
21842test tan {
21843 const test_tan = unary(tan, .{ .libc_name = "tan", .compare = .strict });
21844 try test_tan.testFloats();
21845 try test_tan.testFloatVectors();
21846}
21847
21848inline fn exp(comptime Type: type, rhs: Type) @TypeOf(@exp(rhs)) {
21849 return @exp(rhs);
21850}
21851test exp {
21852 const test_exp = unary(exp, .{ .libc_name = "exp", .compare = .strict });
21853 try test_exp.testFloats();
21854 try test_exp.testFloatVectors();
21855}
21856
21857inline fn exp2(comptime Type: type, rhs: Type) @TypeOf(@exp2(rhs)) {
21858 return @exp2(rhs);
21859}
21860test exp2 {
21861 const test_exp2 = unary(exp2, .{ .libc_name = "exp2", .compare = .strict });
21862 try test_exp2.testFloats();
21863 try test_exp2.testFloatVectors();
21864}
21865
21866inline fn log(comptime Type: type, rhs: Type) @TypeOf(@log(rhs)) {
21867 return @log(rhs);
21868}
21869test log {
21870 const test_log = unary(log, .{ .libc_name = "log", .compare = .strict });
21871 try test_log.testFloats();
21872 try test_log.testFloatVectors();
21873}
21874
21875inline fn log2(comptime Type: type, rhs: Type) @TypeOf(@log2(rhs)) {
21876 return @log2(rhs);
21877}
21878test log2 {
21879 const test_log2 = unary(log2, .{ .libc_name = "log2", .compare = .strict });
21880 try test_log2.testFloats();
21881 try test_log2.testFloatVectors();
21882}
21883
21884inline fn log10(comptime Type: type, rhs: Type) @TypeOf(@log10(rhs)) {
21885 return @log10(rhs);
21886}
21887test log10 {
21888 const test_log10 = unary(log10, .{ .libc_name = "log10", .compare = .strict });
21889 try test_log10.testFloats();
21890 try test_log10.testFloatVectors();
21891}
21892
21893inline fn abs(comptime Type: type, rhs: Type) @TypeOf(@abs(rhs)) {
21894 return @abs(rhs);
21895}
21896test abs {
21897 const test_abs = unary(abs, .{ .compare = .strict });
21898 try test_abs.testInts();
21899 try test_abs.testIntVectors();
21900 try test_abs.testFloats();
21901 try test_abs.testFloatVectors();
21902}
21903
21904inline fn floor(comptime Type: type, rhs: Type) @TypeOf(@floor(rhs)) {
21905 return @floor(rhs);
21906}
21907test floor {
21908 const test_floor = unary(floor, .{ .libc_name = "floor", .compare = .strict });
21909 try test_floor.testFloats();
21910 try test_floor.testFloatVectors();
21911}
21912
21913inline fn ceil(comptime Type: type, rhs: Type) @TypeOf(@ceil(rhs)) {
21914 return @ceil(rhs);
21915}
21916test ceil {
21917 const test_ceil = unary(ceil, .{ .libc_name = "ceil", .compare = .strict });
21918 try test_ceil.testFloats();
21919 try test_ceil.testFloatVectors();
21920}
21921
21922inline fn round(comptime Type: type, rhs: Type) @TypeOf(@round(rhs)) {
21923 return @round(rhs);
21924}
21925test round {
21926 const test_round = unary(round, .{ .libc_name = "round", .compare = .strict });
21927 try test_round.testFloats();
21928 try test_round.testFloatVectors();
21929}
21930
21931inline fn trunc(comptime Type: type, rhs: Type) @TypeOf(@trunc(rhs)) {
21932 return @trunc(rhs);
21933}
21934test trunc {
21935 const test_trunc = unary(trunc, .{ .libc_name = "trunc", .compare = .strict });
21936 try test_trunc.testFloats();
21937 try test_trunc.testFloatVectors();
21938}
21939
21940inline fn negate(comptime Type: type, rhs: Type) @TypeOf(-rhs) {
21941 return -rhs;
21942}
21943test negate {
21944 const test_negate = unary(negate, .{ .compare = .strict });
21945 try test_negate.testFloats();
21946 try test_negate.testFloatVectors();
21947}
21948
21949inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type, comptime ct_rhs: Type) Result {
21950 @setRuntimeSafety(false); // TODO
21951 const res_info = switch (@typeInfo(Result)) {
21952 .int => |info| info,
21953 .vector => |info| @typeInfo(info.child).int,
21954 else => @compileError(@typeName(Result)),
21955 };
21956 const rhs_info = @typeInfo(Scalar(Type)).int;
21957 const min_bits = @min(res_info.bits, rhs_info.bits);
21958 return @intCast(switch (@as(union(enum) {
21959 shift: std.math.Log2Int(Scalar(Type)),
21960 mask: std.math.Log2IntCeil(Scalar(Type)),
21961 }, switch (res_info.signedness) {
21962 .signed => switch (rhs_info.signedness) {
21963 .signed => .{ .shift = rhs_info.bits - min_bits },
21964 .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) },
21965 },
21966 .unsigned => switch (rhs_info.signedness) {
21967 .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) },
21968 .unsigned => .{ .mask = min_bits },
21969 },
21970 })) {
21971 // TODO: if (bits == 0) rhs else rhs >> bits,
21972 .shift => |bits| if (bits == 0) rhs else switch (@typeInfo(Type)) {
21973 .int => if (ct_rhs < 0)
21974 rhs | std.math.minInt(Type) >> bits
21975 else
21976 rhs & std.math.maxInt(Type) >> bits,
21977 .vector => rhs | @select(
21978 Scalar(Type),
21979 ct_rhs < splat(Type, 0),
21980 splat(Type, std.math.minInt(Scalar(Type)) >> bits),
21981 splat(Type, 0),
21982 ) & ~@select(
21983 Scalar(Type),
21984 ct_rhs >= splat(Type, 0),
21985 splat(Type, std.math.minInt(Scalar(Type)) >> bits),
21986 splat(Type, 0),
21987 ),
21988 else => comptime unreachable,
21989 },
21990 .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & splat(Type, (1 << bits) - 1),
21991 });
21992}
21993test intCast {
21994 const test_int_cast = cast(intCast, .{});
21995 try test_int_cast.testInts();
21996 try test_int_cast.testIntVectors();
21997}
21998
21999inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
22000 return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs;
22001}
22002test truncate {
22003 const test_truncate = cast(truncate, .{});
22004 try test_truncate.testSameSignednessInts();
22005 try test_truncate.testSameSignednessIntVectors();
22006}
22007
22008inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
22009 return @floatCast(rhs);
22010}
22011test floatCast {
22012 const test_float_cast = cast(floatCast, .{ .compare = .strict });
22013 try test_float_cast.testFloats();
22014 try test_float_cast.testFloatVectors();
22015}
22016
22017inline fn intFromFloat(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
22018 return @intFromFloat(rhs);
22019}
22020test intFromFloat {
22021 const test_int_from_float = cast(intFromFloat, .{ .compare = .strict });
22022 try test_int_from_float.testIntsFromFloats();
22023 try test_int_from_float.testIntVectorsFromFloatVectors();
22024}
22025
22026inline fn floatFromInt(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result {
22027 return @floatFromInt(rhs);
22028}
22029test floatFromInt {
22030 const test_float_from_int = cast(floatFromInt, .{ .compare = .strict });
22031 try test_float_from_int.testFloatsFromInts();
22032 try test_float_from_int.testFloatVectorsFromIntVectors();
22033}
22034
22035inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) {
22036 return lhs == rhs;
22037}
22038test equal {
22039 const test_equal = binary(equal, .{});
22040 try test_equal.testInts();
22041 try test_equal.testFloats();
22042}
22043
22044inline fn notEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs != rhs) {
22045 return lhs != rhs;
22046}
22047test notEqual {
22048 const test_not_equal = binary(notEqual, .{});
22049 try test_not_equal.testInts();
22050 try test_not_equal.testFloats();
22051}
22052
22053inline fn lessThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs < rhs) {
22054 return lhs < rhs;
22055}
22056test lessThan {
22057 const test_less_than = binary(lessThan, .{});
22058 try test_less_than.testInts();
22059 try test_less_than.testFloats();
22060}
22061
22062inline fn lessThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs <= rhs) {
22063 return lhs <= rhs;
22064}
22065test lessThanOrEqual {
22066 const test_less_than_or_equal = binary(lessThanOrEqual, .{});
22067 try test_less_than_or_equal.testInts();
22068 try test_less_than_or_equal.testFloats();
22069}
22070
22071inline fn greaterThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs > rhs) {
22072 return lhs > rhs;
22073}
22074test greaterThan {
22075 const test_greater_than = binary(greaterThan, .{});
22076 try test_greater_than.testInts();
22077 try test_greater_than.testFloats();
22078}
22079
22080inline fn greaterThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs >= rhs) {
22081 return lhs >= rhs;
22082}
22083test greaterThanOrEqual {
22084 const test_greater_than_or_equal = binary(greaterThanOrEqual, .{});
22085 try test_greater_than_or_equal.testInts();
22086 try test_greater_than_or_equal.testFloats();
22087}
22088
22089inline fn bitAnd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs & rhs) {
22090 return lhs & rhs;
22091}
22092test bitAnd {
22093 const test_bit_and = binary(bitAnd, .{});
22094 try test_bit_and.testInts();
22095 try test_bit_and.testIntVectors();
22096}
22097
22098inline fn bitOr(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs | rhs) {
22099 return lhs | rhs;
22100}
22101test bitOr {
22102 const test_bit_or = binary(bitOr, .{});
22103 try test_bit_or.testInts();
22104 try test_bit_or.testIntVectors();
22105}
22106
22107inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs ^ rhs) {
22108 return lhs ^ rhs;
22109}
22110test bitXor {
22111 const test_bit_xor = binary(bitXor, .{});
22112 try test_bit_xor.testInts();
22113 try test_bit_xor.testIntVectors();
22114}
22115
22116inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type {
22117 return @min(lhs, rhs);
22118}
22119test min {
22120 const test_min = binary(min, .{});
22121 try test_min.testInts();
22122 try test_min.testIntVectors();
22123 try test_min.testFloats();
22124 try test_min.testFloatVectors();
22125}
22126
22127inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type {
22128 return @max(lhs, rhs);
22129}
22130test max {
22131 const test_max = binary(max, .{});
22132 try test_max.testInts();
22133 try test_max.testIntVectors();
22134 try test_max.testFloats();
22135 try test_max.testFloatVectors();
22136}
22137
22138inline fn nullIsNull(comptime Type: type, _: Type) bool {
22139 return runtime(?Type, null) == null;
22140}
22141test nullIsNull {
22142 const test_null_is_null = unary(nullIsNull, .{});
22143 try test_null_is_null.testIntTypes();
22144 try test_null_is_null.testIntVectorTypes();
22145 try test_null_is_null.testFloatTypes();
22146 try test_null_is_null.testFloatVectorTypes();
22147}
22148
22149inline fn nullIsNotNull(comptime Type: type, _: Type) bool {
22150 return runtime(?Type, null) != null;
22151}
22152test nullIsNotNull {
22153 const test_null_is_not_null = unary(nullIsNotNull, .{});
22154 try test_null_is_not_null.testIntTypes();
22155 try test_null_is_not_null.testIntVectorTypes();
22156 try test_null_is_not_null.testFloatTypes();
22157 try test_null_is_not_null.testFloatVectorTypes();
22158}
22159
22160inline fn optionalIsNull(comptime Type: type, lhs: Type) bool {
22161 return @as(?Type, lhs) == null;
22162}
22163test optionalIsNull {
22164 const test_optional_is_null = unary(optionalIsNull, .{});
22165 try test_optional_is_null.testInts();
22166 try test_optional_is_null.testFloats();
22167}
22168
22169inline fn optionalIsNotNull(comptime Type: type, lhs: Type) bool {
22170 return @as(?Type, lhs) != null;
22171}
22172test optionalIsNotNull {
22173 const test_optional_is_not_null = unary(optionalIsNotNull, .{});
22174 try test_optional_is_not_null.testInts();
22175 try test_optional_is_not_null.testFloats();
22176}
22177
22178inline fn nullEqualNull(comptime Type: type, _: Type) bool {
22179 return runtime(?Type, null) == runtime(?Type, null);
22180}
22181test nullEqualNull {
22182 const test_null_equal_null = unary(nullEqualNull, .{});
22183 try test_null_equal_null.testIntTypes();
22184 try test_null_equal_null.testFloatTypes();
22185}
22186
22187inline fn nullNotEqualNull(comptime Type: type, _: Type) bool {
22188 return runtime(?Type, null) != runtime(?Type, null);
22189}
22190test nullNotEqualNull {
22191 const test_null_not_equal_null = unary(nullNotEqualNull, .{});
22192 try test_null_not_equal_null.testIntTypes();
22193 try test_null_not_equal_null.testFloatTypes();
22194}
22195
22196inline fn optionalEqualNull(comptime Type: type, lhs: Type) bool {
22197 return lhs == runtime(?Type, null);
22198}
22199test optionalEqualNull {
22200 const test_optional_equal_null = unary(optionalEqualNull, .{});
22201 try test_optional_equal_null.testInts();
22202 try test_optional_equal_null.testFloats();
22203}
22204
22205inline fn optionalNotEqualNull(comptime Type: type, lhs: Type) bool {
22206 return lhs != runtime(?Type, null);
22207}
22208test optionalNotEqualNull {
22209 const test_optional_not_equal_null = unary(optionalIsNotNull, .{});
22210 try test_optional_not_equal_null.testInts();
22211 try test_optional_not_equal_null.testFloats();
22212}
22213
22214inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
22215 if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636
22216 return @as(?Type, lhs) == rhs;
22217}
22218test optionalsEqual {
22219 const test_optionals_equal = binary(optionalsEqual, .{});
22220 try test_optionals_equal.testInts();
22221 try test_optionals_equal.testFloats();
22222}
22223
22224inline fn optionalsNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
22225 if (@inComptime()) return lhs != rhs; // workaround https://github.com/ziglang/zig/issues/22636
22226 return lhs != @as(?Type, rhs);
22227}
22228test optionalsNotEqual {
22229 const test_optionals_not_equal = binary(optionalsNotEqual, .{});
22230 try test_optionals_not_equal.testInts();
22231 try test_optionals_not_equal.testFloats();
22232}
22233
22234inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) {
22235 return @mulAdd(Type, lhs, rhs, rhs);
22236}
22237test mulAdd {
22238 const test_mul_add = binary(mulAdd, .{ .compare = .approx });
22239 try test_mul_add.testFloats();
22240 try test_mul_add.testFloatVectors();
22241}
test/behavior/x86_64/unary.zig created+1820
...@@ -0,0 +1,1820 @@
1const checkExpected = math.checkExpected;
2const Compare = math.Compare;
3const fmax = math.fmax;
4const fmin = math.fmin;
5const Gpr = math.Gpr;
6const inf = math.inf;
7const math = @import("math.zig");
8const nan = math.nan;
9const RoundBitsUp = math.RoundBitsUp;
10const Scalar = math.Scalar;
11const Sse = math.Sse;
12const tmin = math.tmin;
13
14inline fn runtime(comptime Type: type, comptime value: Type) Type {
15 if (@inComptime()) return value;
16 return struct {
17 var variable: Type = value;
18 }.variable;
19}
20
21fn unary(comptime op: anytype, comptime opts: struct {
22 libc_name: ?[]const u8 = null,
23 compare: Compare = .relaxed,
24}) type {
25 return struct {
26 // noinline so that `mem_arg` is on the stack
27 noinline fn testArgKinds(
28 _: Gpr,
29 _: Gpr,
30 _: Gpr,
31 _: Gpr,
32 _: Gpr,
33 _: Gpr,
34 _: Gpr,
35 _: Gpr,
36 _: Sse,
37 _: Sse,
38 _: Sse,
39 _: Sse,
40 _: Sse,
41 _: Sse,
42 _: Sse,
43 _: Sse,
44 comptime Type: type,
45 comptime imm_arg: Type,
46 mem_arg: Type,
47 ) !void {
48 const expected = expected: {
49 if (opts.libc_name) |libc_name| libc: {
50 const libc_func = @extern(*const fn (Scalar(Type)) callconv(.c) Scalar(Type), .{
51 .name = switch (Scalar(Type)) {
52 f16 => "__" ++ libc_name ++ "h",
53 f32 => libc_name ++ "f",
54 f64 => libc_name,
55 f80 => "__" ++ libc_name ++ "x",
56 f128 => libc_name ++ "q",
57 else => break :libc,
58 },
59 });
60 switch (@typeInfo(Type)) {
61 else => break :expected libc_func(imm_arg),
62 .vector => |vector| {
63 var res: Type = undefined;
64 inline for (0..vector.len) |i| res[i] = libc_func(imm_arg[i]);
65 break :expected res;
66 },
67 }
68 }
69 break :expected comptime op(Type, imm_arg);
70 };
71 var reg_arg = mem_arg;
72 _ = .{&reg_arg};
73 try checkExpected(expected, op(Type, reg_arg), opts.compare);
74 try checkExpected(expected, op(Type, mem_arg), opts.compare);
75 if (opts.libc_name == null) try checkExpected(expected, op(Type, imm_arg), opts.compare);
76 }
77 // noinline for a more helpful stack trace
78 noinline fn testArgs(comptime Type: type, comptime imm_arg: Type) !void {
79 try testArgKinds(
80 undefined,
81 undefined,
82 undefined,
83 undefined,
84 undefined,
85 undefined,
86 undefined,
87 undefined,
88 undefined,
89 undefined,
90 undefined,
91 undefined,
92 undefined,
93 undefined,
94 undefined,
95 undefined,
96 Type,
97 imm_arg,
98 imm_arg,
99 );
100 }
101 fn testIntTypes() !void {
102 try testArgs(i1, undefined);
103 try testArgs(u1, undefined);
104 try testArgs(i2, undefined);
105 try testArgs(u2, undefined);
106 try testArgs(i3, undefined);
107 try testArgs(u3, undefined);
108 try testArgs(i4, undefined);
109 try testArgs(u4, undefined);
110 try testArgs(i5, undefined);
111 try testArgs(u5, undefined);
112 try testArgs(i7, undefined);
113 try testArgs(u7, undefined);
114 try testArgs(i8, undefined);
115 try testArgs(u8, undefined);
116 try testArgs(i9, undefined);
117 try testArgs(u9, undefined);
118 try testArgs(i15, undefined);
119 try testArgs(u15, undefined);
120 try testArgs(i16, undefined);
121 try testArgs(u16, undefined);
122 try testArgs(i17, undefined);
123 try testArgs(u17, undefined);
124 try testArgs(i31, undefined);
125 try testArgs(u31, undefined);
126 try testArgs(i32, undefined);
127 try testArgs(u32, undefined);
128 try testArgs(i33, undefined);
129 try testArgs(u33, undefined);
130 try testArgs(i63, undefined);
131 try testArgs(u63, undefined);
132 try testArgs(i64, undefined);
133 try testArgs(u64, undefined);
134 try testArgs(i65, undefined);
135 try testArgs(u65, undefined);
136 try testArgs(i95, undefined);
137 try testArgs(u95, undefined);
138 try testArgs(i96, undefined);
139 try testArgs(u96, undefined);
140 try testArgs(i97, undefined);
141 try testArgs(u97, undefined);
142 try testArgs(i127, undefined);
143 try testArgs(u127, undefined);
144 try testArgs(i128, undefined);
145 try testArgs(u128, undefined);
146 try testArgs(i129, undefined);
147 try testArgs(u129, undefined);
148 try testArgs(i159, undefined);
149 try testArgs(u159, undefined);
150 try testArgs(i160, undefined);
151 try testArgs(u160, undefined);
152 try testArgs(i161, undefined);
153 try testArgs(u161, undefined);
154 try testArgs(i191, undefined);
155 try testArgs(u191, undefined);
156 try testArgs(i192, undefined);
157 try testArgs(u192, undefined);
158 try testArgs(i193, undefined);
159 try testArgs(u193, undefined);
160 try testArgs(i223, undefined);
161 try testArgs(u223, undefined);
162 try testArgs(i224, undefined);
163 try testArgs(u224, undefined);
164 try testArgs(i225, undefined);
165 try testArgs(u225, undefined);
166 try testArgs(i255, undefined);
167 try testArgs(u255, undefined);
168 try testArgs(i256, undefined);
169 try testArgs(u256, undefined);
170 try testArgs(i257, undefined);
171 try testArgs(u257, undefined);
172 try testArgs(i511, undefined);
173 try testArgs(u511, undefined);
174 try testArgs(i512, undefined);
175 try testArgs(u512, undefined);
176 try testArgs(i513, undefined);
177 try testArgs(u513, undefined);
178 try testArgs(i1023, undefined);
179 try testArgs(u1023, undefined);
180 try testArgs(i1024, undefined);
181 try testArgs(u1024, undefined);
182 try testArgs(i1025, undefined);
183 try testArgs(u1025, undefined);
184 }
185 fn testInts() !void {
186 try testArgs(i1, -1);
187 try testArgs(i1, 0);
188 try testArgs(u1, 0);
189 try testArgs(u1, 1 << 0);
190
191 try testArgs(i2, -1 << 1);
192 try testArgs(i2, -1);
193 try testArgs(i2, 0);
194 try testArgs(u2, 0);
195 try testArgs(u2, 1 << 0);
196 try testArgs(u2, 1 << 1);
197
198 try testArgs(i3, -1 << 2);
199 try testArgs(i3, -1);
200 try testArgs(i3, 0);
201 try testArgs(u3, 0);
202 try testArgs(u3, 1 << 0);
203 try testArgs(u3, 1 << 1);
204 try testArgs(u3, 1 << 2);
205
206 try testArgs(i4, -1 << 3);
207 try testArgs(i4, -1);
208 try testArgs(i4, 0);
209 try testArgs(u4, 0);
210 try testArgs(u4, 1 << 0);
211 try testArgs(u4, 1 << 1);
212 try testArgs(u4, 1 << 2);
213 try testArgs(u4, 1 << 3);
214
215 try testArgs(i5, -1 << 4);
216 try testArgs(i5, -1);
217 try testArgs(i5, 0);
218 try testArgs(u5, 0);
219 try testArgs(u5, 1 << 0);
220 try testArgs(u5, 1 << 1);
221 try testArgs(u5, 1 << 3);
222 try testArgs(u5, 1 << 4);
223
224 try testArgs(i7, -1 << 6);
225 try testArgs(i7, -1);
226 try testArgs(i7, 0);
227 try testArgs(u7, 0);
228 try testArgs(u7, 1 << 0);
229 try testArgs(u7, 1 << 1);
230 try testArgs(u7, 1 << 5);
231 try testArgs(u7, 1 << 6);
232
233 try testArgs(i8, -1 << 7);
234 try testArgs(i8, -1);
235 try testArgs(i8, 0);
236 try testArgs(u8, 0);
237 try testArgs(u8, 1 << 0);
238 try testArgs(u8, 1 << 1);
239 try testArgs(u8, 1 << 6);
240 try testArgs(u8, 1 << 7);
241
242 try testArgs(i9, -1 << 8);
243 try testArgs(i9, -1);
244 try testArgs(i9, 0);
245 try testArgs(u9, 0);
246 try testArgs(u9, 1 << 0);
247 try testArgs(u9, 1 << 1);
248 try testArgs(u9, 1 << 7);
249 try testArgs(u9, 1 << 8);
250
251 try testArgs(i15, -1 << 14);
252 try testArgs(i15, -1);
253 try testArgs(i15, 0);
254 try testArgs(u15, 0);
255 try testArgs(u15, 1 << 0);
256 try testArgs(u15, 1 << 1);
257 try testArgs(u15, 1 << 13);
258 try testArgs(u15, 1 << 14);
259
260 try testArgs(i16, -1 << 15);
261 try testArgs(i16, -1);
262 try testArgs(i16, 0);
263 try testArgs(u16, 0);
264 try testArgs(u16, 1 << 0);
265 try testArgs(u16, 1 << 1);
266 try testArgs(u16, 1 << 14);
267 try testArgs(u16, 1 << 15);
268
269 try testArgs(i17, -1 << 16);
270 try testArgs(i17, -1);
271 try testArgs(i17, 0);
272 try testArgs(u17, 0);
273 try testArgs(u17, 1 << 0);
274 try testArgs(u17, 1 << 1);
275 try testArgs(u17, 1 << 15);
276 try testArgs(u17, 1 << 16);
277
278 try testArgs(i31, -1 << 30);
279 try testArgs(i31, -1);
280 try testArgs(i31, 0);
281 try testArgs(u31, 0);
282 try testArgs(u31, 1 << 0);
283 try testArgs(u31, 1 << 1);
284 try testArgs(u31, 1 << 29);
285 try testArgs(u31, 1 << 30);
286
287 try testArgs(i32, -1 << 31);
288 try testArgs(i32, -1);
289 try testArgs(i32, 0);
290 try testArgs(u32, 0);
291 try testArgs(u32, 1 << 0);
292 try testArgs(u32, 1 << 1);
293 try testArgs(u32, 1 << 30);
294 try testArgs(u32, 1 << 31);
295
296 try testArgs(i33, -1 << 32);
297 try testArgs(i33, -1);
298 try testArgs(i33, 0);
299 try testArgs(u33, 0);
300 try testArgs(u33, 1 << 0);
301 try testArgs(u33, 1 << 1);
302 try testArgs(u33, 1 << 31);
303 try testArgs(u33, 1 << 32);
304
305 try testArgs(i63, -1 << 62);
306 try testArgs(i63, -1);
307 try testArgs(i63, 0);
308 try testArgs(u63, 0);
309 try testArgs(u63, 1 << 0);
310 try testArgs(u63, 1 << 1);
311 try testArgs(u63, 1 << 61);
312 try testArgs(u63, 1 << 62);
313
314 try testArgs(i64, -1 << 63);
315 try testArgs(i64, -1);
316 try testArgs(i64, 0);
317 try testArgs(u64, 0);
318 try testArgs(u64, 1 << 0);
319 try testArgs(u64, 1 << 1);
320 try testArgs(u64, 1 << 62);
321 try testArgs(u64, 1 << 63);
322
323 try testArgs(i65, -1 << 64);
324 try testArgs(i65, -1);
325 try testArgs(i65, 0);
326 try testArgs(u65, 0);
327 try testArgs(u65, 1 << 0);
328 try testArgs(u65, 1 << 1);
329 try testArgs(u65, 1 << 63);
330 try testArgs(u65, 1 << 64);
331
332 try testArgs(i95, -1 << 94);
333 try testArgs(i95, -1);
334 try testArgs(i95, 0);
335 try testArgs(u95, 0);
336 try testArgs(u95, 1 << 0);
337 try testArgs(u95, 1 << 1);
338 try testArgs(u95, 1 << 93);
339 try testArgs(u95, 1 << 94);
340
341 try testArgs(i96, -1 << 95);
342 try testArgs(i96, -1);
343 try testArgs(i96, 0);
344 try testArgs(u96, 0);
345 try testArgs(u96, 1 << 0);
346 try testArgs(u96, 1 << 1);
347 try testArgs(u96, 1 << 94);
348 try testArgs(u96, 1 << 95);
349
350 try testArgs(i97, -1 << 96);
351 try testArgs(i97, -1);
352 try testArgs(i97, 0);
353 try testArgs(u97, 0);
354 try testArgs(u97, 1 << 0);
355 try testArgs(u97, 1 << 1);
356 try testArgs(u97, 1 << 95);
357 try testArgs(u97, 1 << 96);
358
359 try testArgs(i127, -1 << 126);
360 try testArgs(i127, -1);
361 try testArgs(i127, 0);
362 try testArgs(u127, 0);
363 try testArgs(u127, 1 << 0);
364 try testArgs(u127, 1 << 1);
365 try testArgs(u127, 1 << 125);
366 try testArgs(u127, 1 << 126);
367
368 try testArgs(i128, -1 << 127);
369 try testArgs(i128, -1);
370 try testArgs(i128, 0);
371 try testArgs(u128, 0);
372 try testArgs(u128, 1 << 0);
373 try testArgs(u128, 1 << 1);
374 try testArgs(u128, 1 << 126);
375 try testArgs(u128, 1 << 127);
376
377 try testArgs(i129, -1 << 128);
378 try testArgs(i129, -1);
379 try testArgs(i129, 0);
380 try testArgs(u129, 0);
381 try testArgs(u129, 1 << 0);
382 try testArgs(u129, 1 << 1);
383 try testArgs(u129, 1 << 127);
384 try testArgs(u129, 1 << 128);
385
386 try testArgs(i159, -1 << 158);
387 try testArgs(i159, -1);
388 try testArgs(i159, 0);
389 try testArgs(u159, 0);
390 try testArgs(u159, 1 << 0);
391 try testArgs(u159, 1 << 1);
392 try testArgs(u159, 1 << 157);
393 try testArgs(u159, 1 << 158);
394
395 try testArgs(i160, -1 << 159);
396 try testArgs(i160, -1);
397 try testArgs(i160, 0);
398 try testArgs(u160, 0);
399 try testArgs(u160, 1 << 0);
400 try testArgs(u160, 1 << 1);
401 try testArgs(u160, 1 << 158);
402 try testArgs(u160, 1 << 159);
403
404 try testArgs(i161, -1 << 160);
405 try testArgs(i161, -1);
406 try testArgs(i161, 0);
407 try testArgs(u161, 0);
408 try testArgs(u161, 1 << 0);
409 try testArgs(u161, 1 << 1);
410 try testArgs(u161, 1 << 159);
411 try testArgs(u161, 1 << 160);
412
413 try testArgs(i191, -1 << 190);
414 try testArgs(i191, -1);
415 try testArgs(i191, 0);
416 try testArgs(u191, 0);
417 try testArgs(u191, 1 << 0);
418 try testArgs(u191, 1 << 1);
419 try testArgs(u191, 1 << 189);
420 try testArgs(u191, 1 << 190);
421
422 try testArgs(i192, -1 << 191);
423 try testArgs(i192, -1);
424 try testArgs(i192, 0);
425 try testArgs(u192, 0);
426 try testArgs(u192, 1 << 0);
427 try testArgs(u192, 1 << 1);
428 try testArgs(u192, 1 << 190);
429 try testArgs(u192, 1 << 191);
430
431 try testArgs(i193, -1 << 192);
432 try testArgs(i193, -1);
433 try testArgs(i193, 0);
434 try testArgs(u193, 0);
435 try testArgs(u193, 1 << 0);
436 try testArgs(u193, 1 << 1);
437 try testArgs(u193, 1 << 191);
438 try testArgs(u193, 1 << 192);
439
440 try testArgs(i223, -1 << 222);
441 try testArgs(i223, -1);
442 try testArgs(i223, 0);
443 try testArgs(u223, 0);
444 try testArgs(u223, 1 << 0);
445 try testArgs(u223, 1 << 1);
446 try testArgs(u223, 1 << 221);
447 try testArgs(u223, 1 << 222);
448
449 try testArgs(i224, -1 << 223);
450 try testArgs(i224, -1);
451 try testArgs(i224, 0);
452 try testArgs(u224, 0);
453 try testArgs(u224, 1 << 0);
454 try testArgs(u224, 1 << 1);
455 try testArgs(u224, 1 << 222);
456 try testArgs(u224, 1 << 223);
457
458 try testArgs(i225, -1 << 224);
459 try testArgs(i225, -1);
460 try testArgs(i225, 0);
461 try testArgs(u225, 0);
462 try testArgs(u225, 1 << 0);
463 try testArgs(u225, 1 << 1);
464 try testArgs(u225, 1 << 223);
465 try testArgs(u225, 1 << 224);
466
467 try testArgs(i255, -1 << 254);
468 try testArgs(i255, -1);
469 try testArgs(i255, 0);
470 try testArgs(u255, 0);
471 try testArgs(u255, 1 << 0);
472 try testArgs(u255, 1 << 1);
473 try testArgs(u255, 1 << 253);
474 try testArgs(u255, 1 << 254);
475
476 try testArgs(i256, -1 << 255);
477 try testArgs(i256, -1);
478 try testArgs(i256, 0);
479 try testArgs(u256, 0);
480 try testArgs(u256, 1 << 0);
481 try testArgs(u256, 1 << 1);
482 try testArgs(u256, 1 << 254);
483 try testArgs(u256, 1 << 255);
484
485 try testArgs(i257, -1 << 256);
486 try testArgs(i257, -1);
487 try testArgs(i257, 0);
488 try testArgs(u257, 0);
489 try testArgs(u257, 1 << 0);
490 try testArgs(u257, 1 << 1);
491 try testArgs(u257, 1 << 255);
492 try testArgs(u257, 1 << 256);
493
494 try testArgs(i383, -1 << 382);
495 try testArgs(i383, -1);
496 try testArgs(i383, 0);
497 try testArgs(u383, 0);
498 try testArgs(u383, 1 << 0);
499 try testArgs(u383, 1 << 1);
500 try testArgs(u383, 1 << 381);
501 try testArgs(u383, 1 << 382);
502
503 try testArgs(i384, -1 << 383);
504 try testArgs(i384, -1);
505 try testArgs(i384, 0);
506 try testArgs(u384, 0);
507 try testArgs(u384, 1 << 0);
508 try testArgs(u384, 1 << 1);
509 try testArgs(u384, 1 << 382);
510 try testArgs(u384, 1 << 383);
511
512 try testArgs(i385, -1 << 384);
513 try testArgs(i385, -1);
514 try testArgs(i385, 0);
515 try testArgs(u385, 0);
516 try testArgs(u385, 1 << 0);
517 try testArgs(u385, 1 << 1);
518 try testArgs(u385, 1 << 383);
519 try testArgs(u385, 1 << 384);
520
521 try testArgs(i511, -1 << 510);
522 try testArgs(i511, -1);
523 try testArgs(i511, 0);
524 try testArgs(u511, 0);
525 try testArgs(u511, 1 << 0);
526 try testArgs(u511, 1 << 1);
527 try testArgs(u511, 1 << 509);
528 try testArgs(u511, 1 << 510);
529
530 try testArgs(i512, -1 << 511);
531 try testArgs(i512, -1);
532 try testArgs(i512, 0);
533 try testArgs(u512, 0);
534 try testArgs(u512, 1 << 0);
535 try testArgs(u512, 1 << 1);
536 try testArgs(u512, 1 << 510);
537 try testArgs(u512, 1 << 511);
538
539 try testArgs(i513, -1 << 512);
540 try testArgs(i513, -1);
541 try testArgs(i513, 0);
542 try testArgs(u513, 0);
543 try testArgs(u513, 1 << 0);
544 try testArgs(u513, 1 << 1);
545 try testArgs(u513, 1 << 511);
546 try testArgs(u513, 1 << 512);
547
548 try testArgs(i1023, -1 << 1022);
549 try testArgs(i1023, -1);
550 try testArgs(i1023, 0);
551 try testArgs(u1023, 0);
552 try testArgs(u1023, 1 << 0);
553 try testArgs(u1023, 1 << 1);
554 try testArgs(u1023, 1 << 1021);
555 try testArgs(u1023, 1 << 1022);
556
557 try testArgs(i1024, -1 << 1023);
558 try testArgs(i1024, -1);
559 try testArgs(i1024, 0);
560 try testArgs(u1024, 0);
561 try testArgs(u1024, 1 << 0);
562 try testArgs(u1024, 1 << 1);
563 try testArgs(u1024, 1 << 1022);
564 try testArgs(u1024, 1 << 1023);
565
566 try testArgs(i1025, -1 << 1024);
567 try testArgs(i1025, -1);
568 try testArgs(i1025, 0);
569 try testArgs(u1025, 0);
570 try testArgs(u1025, 1 << 0);
571 try testArgs(u1025, 1 << 1);
572 try testArgs(u1025, 1 << 1023);
573 try testArgs(u1025, 1 << 1024);
574 }
575 fn testFloatTypes() !void {
576 try testArgs(f16, undefined);
577 try testArgs(f32, undefined);
578 try testArgs(f64, undefined);
579 try testArgs(f80, undefined);
580 try testArgs(f128, undefined);
581 }
582 fn testFloats() !void {
583 try testArgs(f16, -nan(f16));
584 try testArgs(f16, -inf(f16));
585 try testArgs(f16, -fmax(f16));
586 try testArgs(f16, -1e1);
587 try testArgs(f16, -1e0);
588 try testArgs(f16, -1e-1);
589 try testArgs(f16, -fmin(f16));
590 try testArgs(f16, -tmin(f16));
591 try testArgs(f16, -0.0);
592 try testArgs(f16, 0.0);
593 try testArgs(f16, tmin(f16));
594 try testArgs(f16, fmin(f16));
595 try testArgs(f16, 1e-1);
596 try testArgs(f16, 1e0);
597 try testArgs(f16, 1e1);
598 try testArgs(f16, fmax(f16));
599 try testArgs(f16, inf(f16));
600 try testArgs(f16, nan(f16));
601
602 try testArgs(f32, -nan(f32));
603 try testArgs(f32, -inf(f32));
604 try testArgs(f32, -fmax(f32));
605 try testArgs(f32, -1e1);
606 try testArgs(f32, -1e0);
607 try testArgs(f32, -1e-1);
608 try testArgs(f32, -fmin(f32));
609 try testArgs(f32, -tmin(f32));
610 try testArgs(f32, -0.0);
611 try testArgs(f32, 0.0);
612 try testArgs(f32, tmin(f32));
613 try testArgs(f32, fmin(f32));
614 try testArgs(f32, 1e-1);
615 try testArgs(f32, 1e0);
616 try testArgs(f32, 1e1);
617 try testArgs(f32, fmax(f32));
618 try testArgs(f32, inf(f32));
619 try testArgs(f32, nan(f32));
620
621 try testArgs(f64, -nan(f64));
622 try testArgs(f64, -inf(f64));
623 try testArgs(f64, -fmax(f64));
624 try testArgs(f64, -1e1);
625 try testArgs(f64, -1e0);
626 try testArgs(f64, -1e-1);
627 try testArgs(f64, -fmin(f64));
628 try testArgs(f64, -tmin(f64));
629 try testArgs(f64, -0.0);
630 try testArgs(f64, 0.0);
631 try testArgs(f64, tmin(f64));
632 try testArgs(f64, fmin(f64));
633 try testArgs(f64, 1e-1);
634 try testArgs(f64, 1e0);
635 try testArgs(f64, 1e1);
636 try testArgs(f64, fmax(f64));
637 try testArgs(f64, inf(f64));
638 try testArgs(f64, nan(f64));
639
640 try testArgs(f80, -nan(f80));
641 try testArgs(f80, -inf(f80));
642 try testArgs(f80, -fmax(f80));
643 try testArgs(f80, -1e1);
644 try testArgs(f80, -1e0);
645 try testArgs(f80, -1e-1);
646 try testArgs(f80, -fmin(f80));
647 try testArgs(f80, -tmin(f80));
648 try testArgs(f80, -0.0);
649 try testArgs(f80, 0.0);
650 try testArgs(f80, tmin(f80));
651 try testArgs(f80, fmin(f80));
652 try testArgs(f80, 1e-1);
653 try testArgs(f80, 1e0);
654 try testArgs(f80, 1e1);
655 try testArgs(f80, fmax(f80));
656 try testArgs(f80, inf(f80));
657 try testArgs(f80, nan(f80));
658
659 try testArgs(f128, -nan(f128));
660 try testArgs(f128, -inf(f128));
661 try testArgs(f128, -fmax(f128));
662 try testArgs(f128, -1e1);
663 try testArgs(f128, -1e0);
664 try testArgs(f128, -1e-1);
665 try testArgs(f128, -fmin(f128));
666 try testArgs(f128, -tmin(f128));
667 try testArgs(f128, -0.0);
668 try testArgs(f128, 0.0);
669 try testArgs(f128, tmin(f128));
670 try testArgs(f128, fmin(f128));
671 try testArgs(f128, 1e-1);
672 try testArgs(f128, 1e0);
673 try testArgs(f128, 1e1);
674 try testArgs(f128, fmax(f128));
675 try testArgs(f128, inf(f128));
676 try testArgs(f128, nan(f128));
677 }
678 fn testIntVectorTypes() !void {
679 try testArgs(@Vector(3, i1), undefined);
680 try testArgs(@Vector(3, u1), undefined);
681 try testArgs(@Vector(3, i2), undefined);
682 try testArgs(@Vector(3, u2), undefined);
683 try testArgs(@Vector(3, i3), undefined);
684 try testArgs(@Vector(3, u3), undefined);
685 try testArgs(@Vector(3, i4), undefined);
686 try testArgs(@Vector(1, i4), undefined);
687 try testArgs(@Vector(2, i4), undefined);
688 try testArgs(@Vector(4, i4), undefined);
689 try testArgs(@Vector(8, i4), undefined);
690 try testArgs(@Vector(16, i4), undefined);
691 try testArgs(@Vector(32, i4), undefined);
692 try testArgs(@Vector(64, i4), undefined);
693 try testArgs(@Vector(128, i4), undefined);
694 try testArgs(@Vector(256, i4), undefined);
695 try testArgs(@Vector(3, u4), undefined);
696 try testArgs(@Vector(1, u4), undefined);
697 try testArgs(@Vector(2, u4), undefined);
698 try testArgs(@Vector(4, u4), undefined);
699 try testArgs(@Vector(8, u4), undefined);
700 try testArgs(@Vector(16, u4), undefined);
701 try testArgs(@Vector(32, u4), undefined);
702 try testArgs(@Vector(64, u4), undefined);
703 try testArgs(@Vector(128, u4), undefined);
704 try testArgs(@Vector(256, u4), undefined);
705 try testArgs(@Vector(3, i5), undefined);
706 try testArgs(@Vector(3, u5), undefined);
707 try testArgs(@Vector(3, i7), undefined);
708 try testArgs(@Vector(3, u7), undefined);
709 try testArgs(@Vector(3, i8), undefined);
710 try testArgs(@Vector(1, i8), undefined);
711 try testArgs(@Vector(2, i8), undefined);
712 try testArgs(@Vector(4, i8), undefined);
713 try testArgs(@Vector(8, i8), undefined);
714 try testArgs(@Vector(16, i8), undefined);
715 try testArgs(@Vector(32, i8), undefined);
716 try testArgs(@Vector(64, i8), undefined);
717 try testArgs(@Vector(128, i8), undefined);
718 try testArgs(@Vector(3, u8), undefined);
719 try testArgs(@Vector(1, u8), undefined);
720 try testArgs(@Vector(2, u8), undefined);
721 try testArgs(@Vector(4, u8), undefined);
722 try testArgs(@Vector(8, u8), undefined);
723 try testArgs(@Vector(16, u8), undefined);
724 try testArgs(@Vector(32, u8), undefined);
725 try testArgs(@Vector(64, u8), undefined);
726 try testArgs(@Vector(128, u8), undefined);
727 try testArgs(@Vector(3, i9), undefined);
728 try testArgs(@Vector(3, u9), undefined);
729 try testArgs(@Vector(3, i15), undefined);
730 try testArgs(@Vector(3, u15), undefined);
731 try testArgs(@Vector(3, i16), undefined);
732 try testArgs(@Vector(1, i16), undefined);
733 try testArgs(@Vector(2, i16), undefined);
734 try testArgs(@Vector(4, i16), undefined);
735 try testArgs(@Vector(8, i16), undefined);
736 try testArgs(@Vector(16, i16), undefined);
737 try testArgs(@Vector(32, i16), undefined);
738 try testArgs(@Vector(64, i16), undefined);
739 try testArgs(@Vector(3, u16), undefined);
740 try testArgs(@Vector(1, u16), undefined);
741 try testArgs(@Vector(2, u16), undefined);
742 try testArgs(@Vector(4, u16), undefined);
743 try testArgs(@Vector(8, u16), undefined);
744 try testArgs(@Vector(16, u16), undefined);
745 try testArgs(@Vector(32, u16), undefined);
746 try testArgs(@Vector(64, u16), undefined);
747 try testArgs(@Vector(3, i17), undefined);
748 try testArgs(@Vector(3, u17), undefined);
749 try testArgs(@Vector(3, i31), undefined);
750 try testArgs(@Vector(3, u31), undefined);
751 try testArgs(@Vector(3, i32), undefined);
752 try testArgs(@Vector(1, i32), undefined);
753 try testArgs(@Vector(2, i32), undefined);
754 try testArgs(@Vector(4, i32), undefined);
755 try testArgs(@Vector(8, i32), undefined);
756 try testArgs(@Vector(16, i32), undefined);
757 try testArgs(@Vector(32, i32), undefined);
758 try testArgs(@Vector(3, u32), undefined);
759 try testArgs(@Vector(1, u32), undefined);
760 try testArgs(@Vector(2, u32), undefined);
761 try testArgs(@Vector(4, u32), undefined);
762 try testArgs(@Vector(8, u32), undefined);
763 try testArgs(@Vector(16, u32), undefined);
764 try testArgs(@Vector(32, u32), undefined);
765 try testArgs(@Vector(3, i33), undefined);
766 try testArgs(@Vector(3, u33), undefined);
767 try testArgs(@Vector(3, i63), undefined);
768 try testArgs(@Vector(3, u63), undefined);
769 try testArgs(@Vector(3, i64), undefined);
770 try testArgs(@Vector(1, i64), undefined);
771 try testArgs(@Vector(2, i64), undefined);
772 try testArgs(@Vector(4, i64), undefined);
773 try testArgs(@Vector(8, i64), undefined);
774 try testArgs(@Vector(16, i64), undefined);
775 try testArgs(@Vector(3, u64), undefined);
776 try testArgs(@Vector(1, u64), undefined);
777 try testArgs(@Vector(2, u64), undefined);
778 try testArgs(@Vector(4, u64), undefined);
779 try testArgs(@Vector(8, u64), undefined);
780 try testArgs(@Vector(16, u64), undefined);
781 try testArgs(@Vector(3, i65), undefined);
782 try testArgs(@Vector(3, u65), undefined);
783 try testArgs(@Vector(3, i127), undefined);
784 try testArgs(@Vector(3, u127), undefined);
785 try testArgs(@Vector(3, i128), undefined);
786 try testArgs(@Vector(1, i128), undefined);
787 try testArgs(@Vector(2, i128), undefined);
788 try testArgs(@Vector(4, i128), undefined);
789 try testArgs(@Vector(8, i128), undefined);
790 try testArgs(@Vector(3, u128), undefined);
791 try testArgs(@Vector(1, u128), undefined);
792 try testArgs(@Vector(2, u128), undefined);
793 try testArgs(@Vector(4, u128), undefined);
794 try testArgs(@Vector(8, u128), undefined);
795 try testArgs(@Vector(3, i129), undefined);
796 try testArgs(@Vector(3, u129), undefined);
797 try testArgs(@Vector(3, i191), undefined);
798 try testArgs(@Vector(3, u191), undefined);
799 try testArgs(@Vector(3, i192), undefined);
800 try testArgs(@Vector(1, i192), undefined);
801 try testArgs(@Vector(2, i192), undefined);
802 try testArgs(@Vector(4, i192), undefined);
803 try testArgs(@Vector(3, u192), undefined);
804 try testArgs(@Vector(1, u192), undefined);
805 try testArgs(@Vector(2, u192), undefined);
806 try testArgs(@Vector(4, u192), undefined);
807 try testArgs(@Vector(3, i193), undefined);
808 try testArgs(@Vector(3, u193), undefined);
809 try testArgs(@Vector(3, i255), undefined);
810 try testArgs(@Vector(3, u255), undefined);
811 try testArgs(@Vector(3, i256), undefined);
812 try testArgs(@Vector(1, i256), undefined);
813 try testArgs(@Vector(2, i256), undefined);
814 try testArgs(@Vector(4, i256), undefined);
815 try testArgs(@Vector(3, u256), undefined);
816 try testArgs(@Vector(1, u256), undefined);
817 try testArgs(@Vector(2, u256), undefined);
818 try testArgs(@Vector(4, u256), undefined);
819 try testArgs(@Vector(3, i257), undefined);
820 try testArgs(@Vector(3, u257), undefined);
821 try testArgs(@Vector(3, i511), undefined);
822 try testArgs(@Vector(3, u511), undefined);
823 try testArgs(@Vector(3, i512), undefined);
824 try testArgs(@Vector(1, i512), undefined);
825 try testArgs(@Vector(2, i512), undefined);
826 try testArgs(@Vector(3, u512), undefined);
827 try testArgs(@Vector(1, u512), undefined);
828 try testArgs(@Vector(2, u512), undefined);
829 try testArgs(@Vector(3, i513), undefined);
830 try testArgs(@Vector(3, u513), undefined);
831 try testArgs(@Vector(3, i1023), undefined);
832 try testArgs(@Vector(3, u1023), undefined);
833 try testArgs(@Vector(3, i1024), undefined);
834 try testArgs(@Vector(1, i1024), undefined);
835 try testArgs(@Vector(3, u1024), undefined);
836 try testArgs(@Vector(1, u1024), undefined);
837 try testArgs(@Vector(3, i1025), undefined);
838 try testArgs(@Vector(3, u1025), undefined);
839 }
840 fn testIntVectors() !void {
841 try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 });
842 try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 });
843
844 try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 });
845 try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 });
846
847 try testArgs(@Vector(3, i3), .{ -1 << 2, -1, 0 });
848 try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 });
849
850 try testArgs(@Vector(3, i4), .{ -1 << 3, -1, 0 });
851 try testArgs(@Vector(1, i4), .{
852 -0x2,
853 });
854 try testArgs(@Vector(2, i4), .{
855 -0x7, 0x4,
856 });
857 try testArgs(@Vector(4, i4), .{
858 -0x3, 0x4, 0x2, -0x2,
859 });
860 try testArgs(@Vector(8, i4), .{
861 -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5,
862 });
863 try testArgs(@Vector(16, i4), .{
864 -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7,
865 });
866 try testArgs(@Vector(32, i4), .{
867 -0x4, -0x2, 0x6, 0x6, -0x5, -0x8, -0x8, 0x7, -0x5, -0x5, 0x4, 0x5, -0x6, -0x1, 0x2, 0x0, -0x1, 0x3, 0x5, 0x1, -0x4, 0x2, -0x8, -0x6, -0x1, 0x3, 0x1, -0x8, 0x5, -0x6, 0x0, 0x2,
868 });
869 try testArgs(@Vector(64, i4), .{
870 -0x2, 0x6, -0x5, 0x2, 0x6, -0x5, 0x1, -0x6, -0x6, 0x3, -0x5, 0x5, 0x0, 0x3, -0x6, -0x2, 0x0, -0x5, -0x2, -0x7, 0x6, 0x6, -0x6, 0x5, -0x1, 0x1, -0x5, 0x4, -0x1, 0x2, 0x5, 0x0,
871 0x6, -0x1, -0x3, -0x1, 0x0, 0x0, -0x2, -0x5, 0x7, 0x4, -0x7, 0x4, -0x8, 0x2, -0x1, -0x5, 0x4, -0x6, -0x3, 0x6, -0x6, 0x5, 0x0, 0x6, -0x3, 0x3, -0x4, -0x4, 0x3, -0x6, -0x5, -0x3,
872 });
873 try testArgs(@Vector(128, i4), .{
874 -0x2, 0x7, -0x7, 0x5, 0x4, -0x8, -0x4, 0x2, -0x6, 0x6, 0x3, 0x4, -0x6, -0x3, 0x1, -0x3, 0x4, -0x4, 0x0, -0x5, 0x4, -0x2, 0x4, -0x6, 0x4, 0x7, -0x6, 0x3, -0x6, 0x5, 0x7, -0x7,
875 -0x8, 0x0, 0x2, -0x6, -0x4, 0x5, -0x2, -0x6, 0x2, -0x3, -0x8, -0x3, -0x1, 0x4, 0x7, -0x2, 0x7, -0x3, 0x5, 0x3, -0x6, 0x5, -0x2, -0x5, -0x1, 0x5, -0x6, -0x2, -0x5, -0x4, -0x7, -0x3,
876 -0x4, -0x4, 0x6, -0x8, -0x2, 0x3, 0x1, 0x7, 0x1, -0x2, -0x7, -0x2, -0x8, -0x6, -0x6, 0x0, -0x3, -0x4, 0x3, -0x5, -0x3, -0x5, 0x6, 0x5, -0x7, -0x8, -0x5, -0x6, -0x2, -0x5, 0x5, -0x5,
877 0x0, -0x6, -0x3, 0x0, 0x7, 0x6, -0x6, -0x7, -0x4, -0x5, 0x3, 0x2, 0x7, -0x3, -0x2, 0x4, -0x4, -0x5, 0x6, 0x1, 0x7, -0x5, -0x6, 0x0, 0x0, -0x8, 0x4, -0x1, -0x7, 0x0, 0x0, 0x5,
878 });
879 try testArgs(@Vector(256, i4), .{
880 -0x7, 0x4, 0x7, -0x5, 0x6, -0x2, 0x6, -0x5, 0x5, 0x5, 0x3, -0x3, -0x5, 0x0, 0x5, 0x1, 0x4, -0x1, 0x4, -0x8, -0x4, -0x8, 0x2, -0x8, 0x3, 0x1, -0x7, -0x3, -0x1, 0x5, -0x5, -0x8,
881 -0x3, -0x3, -0x5, 0x6, 0x0, 0x4, -0x3, -0x5, 0x0, 0x5, -0x1, -0x3, -0x4, -0x3, 0x6, -0x3, -0x1, 0x5, -0x3, -0x3, 0x0, 0x3, -0x2, -0x1, -0x5, 0x3, 0x2, -0x8, 0x7, -0x8, 0x6, 0x4,
882 -0x5, -0x4, 0x5, 0x5, 0x6, -0x3, 0x2, -0x4, 0x3, 0x7, 0x6, -0x2, -0x8, -0x1, -0x8, 0x2, 0x4, 0x1, 0x2, -0x1, 0x5, 0x1, 0x3, 0x1, 0x3, -0x5, 0x3, -0x5, -0x5, 0x5, -0x6, -0x7,
883 0x0, 0x0, -0x3, 0x6, 0x0, 0x5, 0x3, 0x0, 0x0, -0x1, -0x6, -0x4, 0x5, -0x8, -0x4, -0x3, -0x3, 0x2, -0x5, -0x4, 0x4, 0x5, -0x6, -0x3, 0x2, 0x5, -0x7, -0x6, 0x3, 0x7, -0x2, 0x6,
884 0x2, 0x3, 0x7, 0x3, 0x2, -0x5, 0x4, 0x5, -0x4, -0x7, 0x2, 0x2, -0x5, 0x7, -0x3, -0x8, 0x2, -0x4, 0x2, 0x4, 0x5, -0x7, 0x7, -0x6, 0x4, -0x8, -0x1, 0x7, 0x0, -0x4, 0x6, -0x8,
885 -0x5, 0x4, -0x5, 0x1, 0x6, -0x8, -0x1, -0x3, -0x5, 0x7, 0x1, 0x0, -0x3, 0x4, -0x5, -0x7, -0x5, 0x2, 0x0, -0x1, -0x4, 0x0, 0x5, 0x6, -0x3, -0x4, -0x2, 0x4, -0x1, -0x8, 0x0, 0x6,
886 0x7, 0x1, 0x5, 0x2, -0x4, -0x7, -0x3, -0x3, -0x8, -0x8, -0x3, -0x4, 0x5, -0x5, -0x2, -0x2, 0x1, 0x1, 0x1, -0x8, 0x5, 0x4, 0x5, 0x6, 0x3, 0x0, -0x2, -0x1, 0x4, -0x4, -0x5, 0x0,
887 -0x7, -0x8, -0x2, 0x1, 0x5, 0x4, 0x5, -0x7, 0x3, 0x2, 0x2, 0x5, -0x3, 0x7, -0x4, 0x0, -0x3, -0x2, -0x5, 0x1, 0x1, -0x4, -0x4, 0x1, -0x8, -0x3, 0x6, -0x8, -0x2, 0x5, 0x7, -0x3,
888 });
889
890 try testArgs(@Vector(3, u4), .{ 0, 1, 1 << 3 });
891 try testArgs(@Vector(1, u4), .{
892 0xb,
893 });
894 try testArgs(@Vector(2, u4), .{
895 0x3, 0x4,
896 });
897 try testArgs(@Vector(4, u4), .{
898 0x9, 0x2, 0xf, 0xe,
899 });
900 try testArgs(@Vector(8, u4), .{
901 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6,
902 });
903 try testArgs(@Vector(16, u4), .{
904 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc,
905 });
906 try testArgs(@Vector(32, u4), .{
907 0xe, 0x6, 0xe, 0xa, 0xb, 0x4, 0xa, 0xb, 0x1, 0x3, 0xb, 0xc, 0x0, 0xb, 0x9, 0x4, 0xd, 0xa, 0xd, 0xd, 0x4, 0x8, 0x8, 0x6, 0xb, 0xe, 0x9, 0x6, 0xc, 0xd, 0x5, 0xd,
908 });
909 try testArgs(@Vector(64, u4), .{
910 0x1, 0xc, 0xe, 0x9, 0x9, 0xf, 0x3, 0xf, 0x9, 0x9, 0x5, 0x3, 0xb, 0xd, 0xd, 0xf, 0x1, 0x2, 0xf, 0x9, 0x4, 0x4, 0x8, 0x9, 0x2, 0x9, 0x8, 0xe, 0x8, 0xa, 0x4, 0x3,
911 0x4, 0xc, 0xb, 0x6, 0x4, 0x0, 0xa, 0x5, 0x1, 0xa, 0x4, 0xe, 0xa, 0x7, 0xd, 0x0, 0x4, 0xe, 0xe, 0x7, 0x7, 0xa, 0x4, 0x5, 0x6, 0xc, 0x6, 0x2, 0x6, 0xa, 0xe, 0xa,
912 });
913 try testArgs(@Vector(128, u4), .{
914 0xd, 0x5, 0x6, 0xe, 0x3, 0x3, 0x3, 0xe, 0xd, 0xd, 0x9, 0x0, 0x0, 0xe, 0xa, 0x9, 0x8, 0x7, 0xb, 0x5, 0x7, 0xf, 0xb, 0x8, 0x0, 0xf, 0xb, 0x3, 0xa, 0x2, 0xb, 0xc,
915 0x1, 0x1, 0xc, 0x8, 0x8, 0x6, 0x9, 0x1, 0xb, 0x0, 0x2, 0xb, 0x2, 0x2, 0x7, 0x6, 0x1, 0x1, 0xb, 0x4, 0x6, 0x4, 0x7, 0xc, 0xd, 0xc, 0xa, 0x8, 0x1, 0x7, 0x8, 0xa,
916 0x9, 0xa, 0x1, 0x8, 0x1, 0x7, 0x9, 0x4, 0x5, 0x9, 0xd, 0x0, 0xa, 0xf, 0x3, 0x3, 0x9, 0x2, 0xf, 0x5, 0xb, 0x8, 0x6, 0xb, 0xf, 0x5, 0x8, 0x3, 0x9, 0xf, 0x6, 0x8,
917 0xc, 0x8, 0x3, 0x4, 0xa, 0xe, 0xc, 0x1, 0xe, 0x9, 0x1, 0x8, 0xf, 0x6, 0xc, 0xc, 0x6, 0xf, 0x6, 0xd, 0xb, 0x9, 0xc, 0x3, 0xd, 0xa, 0x6, 0x8, 0x4, 0xa, 0x6, 0x9,
918 });
919 try testArgs(@Vector(256, u4), .{
920 0x6, 0xc, 0xe, 0x3, 0x8, 0x2, 0xb, 0xd, 0x3, 0xa, 0x3, 0x8, 0xb, 0x8, 0x3, 0x0, 0xb, 0x5, 0x1, 0x3, 0x2, 0x2, 0xf, 0xc, 0x5, 0x1, 0x3, 0xb, 0x1, 0xc, 0x2, 0xd,
921 0xa, 0x8, 0x1, 0xc, 0xb, 0xa, 0x3, 0x1, 0xe, 0x4, 0xf, 0xb, 0xd, 0x8, 0xf, 0xa, 0xc, 0xb, 0xb, 0x0, 0xa, 0xc, 0xf, 0xe, 0x8, 0xd, 0x9, 0x3, 0xa, 0xe, 0x8, 0x7,
922 0x5, 0xa, 0x0, 0xe, 0x0, 0xd, 0x2, 0x2, 0x9, 0x4, 0x8, 0x9, 0x0, 0x4, 0x4, 0x8, 0xe, 0x1, 0xf, 0x1, 0x9, 0x3, 0xf, 0xc, 0xa, 0x0, 0x3, 0x2, 0x4, 0x1, 0x2, 0x3,
923 0xf, 0x2, 0x7, 0xb, 0x5, 0x0, 0xd, 0x3, 0x4, 0xf, 0xa, 0x3, 0xc, 0x2, 0x5, 0xe, 0x7, 0x5, 0xd, 0x7, 0x9, 0x0, 0xd, 0x7, 0x9, 0xd, 0x5, 0x7, 0xf, 0xd, 0xb, 0x4,
924 0x9, 0x6, 0xf, 0xb, 0x1, 0xb, 0x6, 0xb, 0xf, 0x7, 0xf, 0x0, 0x4, 0x7, 0x5, 0xa, 0x8, 0x1, 0xf, 0x9, 0x9, 0x0, 0x6, 0xb, 0x1, 0x2, 0x4, 0x3, 0x2, 0x0, 0x7, 0x0,
925 0x6, 0x7, 0xf, 0x1, 0xe, 0xa, 0x8, 0x2, 0x9, 0xc, 0x1, 0x5, 0x7, 0x1, 0xb, 0x0, 0x1, 0x3, 0xd, 0x3, 0x0, 0x1, 0xa, 0x0, 0x3, 0x7, 0x1, 0x2, 0xb, 0xc, 0x2, 0x9,
926 0x8, 0x8, 0x7, 0x0, 0xd, 0x5, 0x1, 0x5, 0x7, 0x7, 0x2, 0x3, 0x8, 0x7, 0xc, 0x8, 0xf, 0xa, 0xf, 0xf, 0x3, 0x2, 0x0, 0x4, 0x7, 0x5, 0x6, 0xd, 0x6, 0x3, 0xa, 0x4,
927 0x1, 0x1, 0x2, 0xc, 0x3, 0xe, 0x2, 0xc, 0x7, 0x6, 0xe, 0xf, 0xb, 0x8, 0x6, 0x6, 0x9, 0x0, 0x4, 0xb, 0xe, 0x4, 0x2, 0x7, 0xf, 0xc, 0x0, 0x6, 0xd, 0xa, 0xe, 0xc,
928 });
929
930 try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 });
931 try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 });
932
933 try testArgs(@Vector(3, i7), .{ -1 << 6, -1, 0 });
934 try testArgs(@Vector(3, u7), .{ 0, 1, 1 << 6 });
935
936 try testArgs(@Vector(3, i8), .{ -1 << 7, -1, 0 });
937 try testArgs(@Vector(1, i8), .{
938 0x71,
939 });
940 try testArgs(@Vector(2, i8), .{
941 -0x50, -0x43,
942 });
943 try testArgs(@Vector(4, i8), .{
944 -0x09, -0x19, -0x15, -0x5d,
945 });
946 try testArgs(@Vector(8, i8), .{
947 -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63,
948 });
949 try testArgs(@Vector(16, i8), .{
950 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45,
951 });
952 try testArgs(@Vector(32, i8), .{
953 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a,
954 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39,
955 });
956 try testArgs(@Vector(64, i8), .{
957 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f,
958 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44,
959 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02,
960 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57,
961 });
962 try testArgs(@Vector(128, i8), .{
963 -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a,
964 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f,
965 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64,
966 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55,
967 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f,
968 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60,
969 -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03,
970 -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19,
971 });
972
973 try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 });
974 try testArgs(@Vector(1, u8), .{
975 0x33,
976 });
977 try testArgs(@Vector(2, u8), .{
978 0x66, 0x87,
979 });
980 try testArgs(@Vector(4, u8), .{
981 0x9d, 0xcb, 0x30, 0x7b,
982 });
983 try testArgs(@Vector(8, u8), .{
984 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d,
985 });
986 try testArgs(@Vector(16, u8), .{
987 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37,
988 });
989 try testArgs(@Vector(32, u8), .{
990 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae,
991 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6,
992 });
993 try testArgs(@Vector(64, u8), .{
994 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72,
995 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3,
996 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c,
997 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72,
998 });
999 try testArgs(@Vector(128, u8), .{
1000 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11,
1001 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21,
1002 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67,
1003 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea,
1004 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86,
1005 0xfb, 0x29, 0xfe, 0xc7, 0xff, 0x62, 0x1a, 0x6f, 0xf8, 0xbd, 0xfe, 0xa4, 0xac, 0x24, 0xcf, 0x56,
1006 0x82, 0x69, 0x81, 0x0d, 0xc1, 0x51, 0x8d, 0x85, 0xf4, 0x00, 0xe7, 0x25, 0xab, 0xa5, 0x33, 0x45,
1007 0x66, 0x2e, 0x33, 0xc8, 0xf3, 0x35, 0x16, 0x7d, 0x1f, 0xc9, 0xf7, 0x44, 0xab, 0x66, 0x28, 0x0d,
1008 });
1009
1010 try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 });
1011 try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 });
1012
1013 try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 });
1014 try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 });
1015
1016 try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 });
1017 try testArgs(@Vector(1, i16), .{
1018 -0x015a,
1019 });
1020 try testArgs(@Vector(2, i16), .{
1021 -0x1c2f, 0x5ce8,
1022 });
1023 try testArgs(@Vector(4, i16), .{
1024 0x1212, 0x5bfc, -0x20ea, 0x0993,
1025 });
1026 try testArgs(@Vector(8, i16), .{
1027 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23,
1028 });
1029 try testArgs(@Vector(16, i16), .{
1030 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377,
1031 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5,
1032 });
1033 try testArgs(@Vector(32, i16), .{
1034 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0,
1035 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078,
1036 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d,
1037 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3,
1038 });
1039 try testArgs(@Vector(64, i16), .{
1040 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb,
1041 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e,
1042 0x2fab, -0x2b96, 0x7474, -0x6644, -0x5484, -0x278e, -0x6a0e, -0x5210,
1043 0x1adf, -0x2799, 0x61e0, -0x733c, -0x6bcc, -0x6fe2, -0x4e91, 0x5d01,
1044 0x3745, 0x24eb, 0x6c89, 0x4a94, -0x7339, 0x4907, -0x4f8f, -0x7e39,
1045 0x1a32, 0x65ca, -0x6c27, -0x3269, 0x107b, 0x1c53, -0x5529, 0x5232,
1046 -0x26ec, 0x4442, -0x63f5, -0x174a, 0x3033, -0x7363, 0x58be, 0x239f,
1047 0x7f7b, -0x437d, -0x6df6, 0x0a7b, 0x3faa, -0x1d75, -0x7426, 0x1274,
1048 });
1049
1050 try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 });
1051 try testArgs(@Vector(1, u16), .{
1052 0x4da6,
1053 });
1054 try testArgs(@Vector(2, u16), .{
1055 0x04d7, 0x50c6,
1056 });
1057 try testArgs(@Vector(4, u16), .{
1058 0x4c06, 0xd71f, 0x4d8f, 0xe0a4,
1059 });
1060 try testArgs(@Vector(8, u16), .{
1061 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7,
1062 });
1063 try testArgs(@Vector(16, u16), .{
1064 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a,
1065 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01,
1066 });
1067 try testArgs(@Vector(32, u16), .{
1068 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd,
1069 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71,
1070 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229,
1071 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2,
1072 });
1073 try testArgs(@Vector(64, u16), .{
1074 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f,
1075 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead,
1076 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387,
1077 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803,
1078 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853,
1079 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0,
1080 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed,
1081 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f,
1082 });
1083
1084 try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 });
1085 try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 });
1086
1087 try testArgs(@Vector(3, i31), .{ -1 << 30, -1, 0 });
1088 try testArgs(@Vector(3, u31), .{ 0, 1, 1 << 30 });
1089
1090 try testArgs(@Vector(3, i32), .{ -1 << 31, -1, 0 });
1091 try testArgs(@Vector(1, i32), .{
1092 -0x27f49dce,
1093 });
1094 try testArgs(@Vector(2, i32), .{
1095 0x24641ec7, 0x436c5bd2,
1096 });
1097 try testArgs(@Vector(4, i32), .{
1098 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73,
1099 });
1100 try testArgs(@Vector(8, i32), .{
1101 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8,
1102 -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966,
1103 });
1104 try testArgs(@Vector(16, i32), .{
1105 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400,
1106 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf,
1107 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a,
1108 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8,
1109 });
1110 try testArgs(@Vector(32, i32), .{
1111 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d,
1112 -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2,
1113 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287,
1114 -0x7cf56523, -0x3c98e2e4, 0x1e7db6c0, -0x7e668ad2,
1115 -0x6c245ecf, -0x09842450, -0x403a4335, -0x7a68e9b7,
1116 0x0036cf57, -0x251edb4e, -0x67ec3abf, -0x183f0333,
1117 -0x4b46723c, -0x1e5383d6, 0x188c1de3, 0x400b3648,
1118 -0x4b21d9d3, 0x61635257, 0x179eb187, 0x31cd8376,
1119 });
1120
1121 try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 });
1122 try testArgs(@Vector(1, u32), .{
1123 0x17e2805c,
1124 });
1125 try testArgs(@Vector(2, u32), .{
1126 0xdb6aadc5, 0xb1ff3754,
1127 });
1128 try testArgs(@Vector(4, u32), .{
1129 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374,
1130 });
1131 try testArgs(@Vector(8, u32), .{
1132 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7,
1133 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c,
1134 });
1135 try testArgs(@Vector(16, u32), .{
1136 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13,
1137 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc,
1138 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a,
1139 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54,
1140 });
1141 try testArgs(@Vector(32, u32), .{
1142 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72,
1143 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7,
1144 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c,
1145 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37,
1146 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d,
1147 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785,
1148 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa,
1149 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f,
1150 });
1151
1152 try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 });
1153 try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 });
1154
1155 try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 });
1156 try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 });
1157
1158 try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 });
1159 try testArgs(@Vector(1, i64), .{
1160 0x29113011488d8b65,
1161 });
1162 try testArgs(@Vector(2, i64), .{
1163 -0x3f865dcdfd831d03, -0x35512d15095445d6,
1164 });
1165 try testArgs(@Vector(4, i64), .{
1166 0x6f37a9484440251e, 0x2757e5e2b77e6ef3,
1167 0x4903a91bd2993d0b, 0x162244ba22371f62,
1168 });
1169 try testArgs(@Vector(8, i64), .{
1170 -0x46e2340c765175c1, -0x031ee2297e6cc8b3,
1171 -0x2627434d4b4fb796, 0x525e1ef31b6daa46,
1172 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448,
1173 -0x5419ebf5cd514cde, -0x618c56a881057ac4,
1174 });
1175 try testArgs(@Vector(16, i64), .{
1176 0x36b4a703d084c774, 0x07a500f0d603a4d5,
1177 -0x27387989d2450cdd, 0x02073880984d74c8,
1178 -0x18d1593e36724417, -0x79df283cc6f403d8,
1179 0x36838a7c54da5f2b, -0x2bf76c1666a1b768,
1180 -0x6ace0d64a2757edc, 0x41442e9979a0ab64,
1181 0x002612bfdf419826, 0x1128ba5648d22fe8,
1182 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3,
1183 -0x5c89f516258c7e77, 0x6b345f04e60d2e56,
1184 });
1185
1186 try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 });
1187 try testArgs(@Vector(1, u64), .{
1188 0x7d2e439abb0edba7,
1189 });
1190 try testArgs(@Vector(2, u64), .{
1191 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389,
1192 });
1193 try testArgs(@Vector(4, u64), .{
1194 0x03c127040e10d52b, 0xa86fe019072e27eb,
1195 0x0a554a47b709cdba, 0xf4342cc597e196c3,
1196 });
1197 try testArgs(@Vector(8, u64), .{
1198 0xea455c104375a055, 0x5c35d9d945edb2fa,
1199 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b,
1200 0xed6603f1f5d574b3, 0x2f37b354c81c1e56,
1201 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f,
1202 });
1203 try testArgs(@Vector(16, u64), .{
1204 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8,
1205 0xebf24b31c0460510, 0x15d5b4c09b53ffa5,
1206 0x05abf6e744b17cc6, 0x9747b483f2d159fe,
1207 0x4616d8b2c8673125, 0x8ae3f91d422447eb,
1208 0x18da2f101a9e9776, 0x77a1197fb0441007,
1209 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278,
1210 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515,
1211 0x0901c59a9a6a408b, 0x7c77ca72e25df033,
1212 });
1213
1214 try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 });
1215 try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 });
1216
1217 try testArgs(@Vector(3, i127), .{ -1 << 126, -1, 0 });
1218 try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 });
1219
1220 try testArgs(@Vector(3, i128), .{ -1 << 127, -1, 0 });
1221 try testArgs(@Vector(1, i128), .{
1222 -0x2b0b1462b44785f39d1b7d763ec7bdb2,
1223 });
1224 try testArgs(@Vector(2, i128), .{
1225 -0x2faebe898a6fe60fbc6aadc3623431b7,
1226 0x5e596259e7b2588860d2b470ba751ace,
1227 });
1228 try testArgs(@Vector(4, i128), .{
1229 -0x624cb7e74cf789c06121809a3a5b51ba,
1230 0x23af4553d4d64672795c2b949635426f,
1231 -0x0b598b1f94876757fb13f2198e902b13,
1232 0x1daf732f50654d8211d464fda4fc030c,
1233 });
1234 try testArgs(@Vector(8, i128), .{
1235 -0x03c7df38daee9bc9a2c659a1a124ef10,
1236 0x657a590c91905c4021c28b0d6e42304a,
1237 -0x3f5176206dadc974d10e6fcbd67f3d29,
1238 0x066310ace384b1bc3549c71113b96b8a,
1239 -0x6c0201f66583206fcea7b7fe11889644,
1240 -0x5cc4d2a368002b380b25415be83f8218,
1241 0x11156c91b97a6a93427009efebcb2c31,
1242 -0x4221b5249ed0686c2ff2d5cab9f1c362,
1243 });
1244
1245 try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 });
1246 try testArgs(@Vector(1, u128), .{
1247 0x809f29e7fbafadc01145e1732590e7d9,
1248 });
1249 try testArgs(@Vector(2, u128), .{
1250 0x5150ac3438aacd0d51132cc2723b2995,
1251 0x151be9c47ad29cf719cf8358dd40165c,
1252 });
1253 try testArgs(@Vector(4, u128), .{
1254 0x4bae22df929f2f7cb9bd84deaad3e7a8,
1255 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb,
1256 0xae93ea459d2ccfd5fb794e6d5c31aabb,
1257 0xb1177136acf099f550b70949ac202ec4,
1258 });
1259 try testArgs(@Vector(8, u128), .{
1260 0x7cd78db6baed6bfdf8c5265136c4e0fd,
1261 0xa41b8984c6bbde84640068194b7eba98,
1262 0xd33102778f2ae1a48d1e9bf8801bbbf0,
1263 0x0d59f6de003513a60055c86cbce2c200,
1264 0x825579d90012afddfbf04851c0748561,
1265 0xc2647c885e9d6f0ee1f5fac5da8ef7f5,
1266 0xcb4bbc1f81aa8ee68aa4dc140745687b,
1267 0x4ff10f914f74b46c694407f5bf7c7836,
1268 });
1269
1270 try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 });
1271 try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 });
1272
1273 try testArgs(@Vector(3, i191), .{ -1 << 190, -1, 0 });
1274 try testArgs(@Vector(3, u191), .{ 0, 1, 1 << 190 });
1275
1276 try testArgs(@Vector(3, i192), .{ -1 << 191, -1, 0 });
1277 try testArgs(@Vector(1, i192), .{
1278 0x0206223e53631dfaf431066cf5ac30dd203bb8c7baa0cec7,
1279 });
1280 try testArgs(@Vector(2, i192), .{
1281 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b,
1282 -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3,
1283 });
1284 try testArgs(@Vector(4, i192), .{
1285 -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41,
1286 -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33,
1287 -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073,
1288 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd,
1289 });
1290
1291 try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 });
1292 try testArgs(@Vector(1, u192), .{
1293 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b,
1294 });
1295 try testArgs(@Vector(2, u192), .{
1296 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83,
1297 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65,
1298 });
1299 try testArgs(@Vector(4, u192), .{
1300 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202,
1301 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d,
1302 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d,
1303 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a,
1304 });
1305
1306 try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 });
1307 try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 });
1308
1309 try testArgs(@Vector(3, i255), .{ -1 << 254, -1, 0 });
1310 try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 });
1311
1312 try testArgs(@Vector(3, i256), .{ -1 << 255, -1, 0 });
1313 try testArgs(@Vector(1, i256), .{
1314 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3,
1315 });
1316 try testArgs(@Vector(2, i256), .{
1317 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb,
1318 -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832,
1319 });
1320 try testArgs(@Vector(4, i256), .{
1321 -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5,
1322 -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b,
1323 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311,
1324 -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111,
1325 });
1326
1327 try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 });
1328 try testArgs(@Vector(1, u256), .{
1329 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda,
1330 });
1331 try testArgs(@Vector(2, u256), .{
1332 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d,
1333 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7,
1334 });
1335 try testArgs(@Vector(4, u256), .{
1336 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97,
1337 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa,
1338 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce,
1339 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07,
1340 });
1341
1342 try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 });
1343 try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 });
1344
1345 try testArgs(@Vector(3, i511), .{ -1 << 510, -1, 0 });
1346 try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 });
1347
1348 try testArgs(@Vector(3, i512), .{ -1 << 511, -1, 0 });
1349 try testArgs(@Vector(1, i512), .{
1350 -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5,
1351 });
1352 try testArgs(@Vector(2, i512), .{
1353 -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1,
1354 -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845,
1355 });
1356
1357 try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 });
1358 try testArgs(@Vector(1, u512), .{
1359 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6,
1360 });
1361 try testArgs(@Vector(2, u512), .{
1362 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53,
1363 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e,
1364 });
1365
1366 try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 });
1367 try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 });
1368
1369 try testArgs(@Vector(3, i1023), .{ -1 << 1022, -1, 0 });
1370 try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 });
1371
1372 try testArgs(@Vector(3, i1024), .{ -1 << 1023, -1, 0 });
1373 try testArgs(@Vector(1, i1024), .{
1374 0x10eee350e115375812126750b24255ca76fdee619b64261c354af58bd4a29af6e2448ccda4d84e1b2fbf76d3710cf1b5e62b1360c3b63e104d0755fa264d6c171f8f7a3292d7859b08a5dff60e9ad8ba9dcdd7e6098eb70be7a27a0cbcc6480661330c21299b2960fac954ee4480f3a2cc1ca5a492e1e75084c079ba701cd7ab,
1375 });
1376
1377 try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 });
1378 try testArgs(@Vector(1, u1024), .{
1379 0xc6cfaa6571139552e1f067402dfc131d9b9a58aafda97198a78764b05138fb68cf26f085b7652f3d5ae0e56aa21732f296a581bb411d4a73795c213de793489fa49b173b9f5c089aa6295ff1fcdc14d491a05035b45d08fc35cd67a83d887a02b8db512f07518132e0ba56533c7d6fbe958255eddf5649bd8aba288c0dd84a25,
1380 });
1381
1382 try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 });
1383 try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 });
1384 }
1385 fn testFloatVectorTypes() !void {
1386 try testArgs(@Vector(1, f16), undefined);
1387 try testArgs(@Vector(2, f16), undefined);
1388 try testArgs(@Vector(4, f16), undefined);
1389 try testArgs(@Vector(8, f16), undefined);
1390 try testArgs(@Vector(16, f16), undefined);
1391 try testArgs(@Vector(32, f16), undefined);
1392 try testArgs(@Vector(64, f16), undefined);
1393
1394 try testArgs(@Vector(1, f32), undefined);
1395 try testArgs(@Vector(2, f32), undefined);
1396 try testArgs(@Vector(4, f32), undefined);
1397 try testArgs(@Vector(8, f32), undefined);
1398 try testArgs(@Vector(16, f32), undefined);
1399 try testArgs(@Vector(32, f32), undefined);
1400
1401 try testArgs(@Vector(1, f64), undefined);
1402 try testArgs(@Vector(2, f64), undefined);
1403 try testArgs(@Vector(4, f64), undefined);
1404 try testArgs(@Vector(8, f64), undefined);
1405 try testArgs(@Vector(16, f64), undefined);
1406
1407 try testArgs(@Vector(1, f80), undefined);
1408 try testArgs(@Vector(2, f80), undefined);
1409 try testArgs(@Vector(4, f80), undefined);
1410 try testArgs(@Vector(8, f80), undefined);
1411
1412 try testArgs(@Vector(1, f128), undefined);
1413 try testArgs(@Vector(2, f128), undefined);
1414 try testArgs(@Vector(4, f128), undefined);
1415 try testArgs(@Vector(8, f128), undefined);
1416 }
1417 fn testFloatVectors() !void {
1418 try testArgs(@Vector(1, f16), .{
1419 -0x1.17cp-12,
1420 });
1421 try testArgs(@Vector(2, f16), .{
1422 0x1.47cp9, 0x1.3acp9,
1423 });
1424 try testArgs(@Vector(4, f16), .{
1425 0x1.ab4p0, -0x1.7fcp-7, -0x1.1cp0, -0x1.f14p12,
1426 });
1427 try testArgs(@Vector(8, f16), .{
1428 -0x1.8d8p8, 0x1.83p10, -0x1.5ap-1, -0x1.d78p13, -0x1.608p12, 0x1.e8p-9, -0x1.688p-10, -0x1.738p9,
1429 });
1430 try testArgs(@Vector(16, f16), .{
1431 0x1.da8p-1, -0x1.ed4p-10, -0x1.dc8p1, 0x1.b78p-14, nan(f16), 0x1.9d8p8, nan(f16), 0x1.d5p13,
1432 -0x1.2dp13, 0x1.6c4p12, 0x1.a9cp-11, -0x1.0ecp8, 0x0.4ccp-14, -0x1.0a8p-6, -0x1.5bcp-14, 0x1.6d8p-9,
1433 });
1434 try testArgs(@Vector(32, f16), .{
1435 0x1.d5cp-6, -0x1.a98p5, 0x1.49cp5, -0x1.e4p-1, -0x1.21p-13, -0x1.c94p-1, -0x1.adcp-5, -0x1.524p-1,
1436 -0x1.0d8p-3, -0x1.5c4p-2, 0x1.f84p-2, 0x1.664p1, -0x1.f64p13, -0x1.bf4p4, -0x1.4b8p0, -0x0.f64p-14,
1437 -0x1.3f8p1, 0x1.098p2, -0x1.a44p8, 0x1.048p13, 0x1.fd4p-11, 0x1.18p-9, -0x1.504p2, 0x1.d04p7,
1438 -nan(f16), 0x1.a94p2, 0x0.5e8p-14, -0x1.7acp-7, 0x1.4c8p-3, 0x1.518p-4, nan(f16), 0x1.8f8p10,
1439 });
1440 try testArgs(@Vector(64, f16), .{
1441 -0x1.c2p2, 0x0.2fcp-14, 0x1.de8p0, -0x1.714p2, 0x1.f9p-7, -0x1.11cp-13, -0x1.558p10, -0x1.2acp-7,
1442 0x1.348p14, 0x1.2dcp7, -0x1.8acp-12, -0x1.2cp2, 0x1.868p1, -0x1.1f8p-14, 0x1.638p7, -0x1.734p-5,
1443 0x0.b98p-14, -0x1.7f4p-12, -0x1.38cp15, 0x1.50cp15, 0x1.91cp8, 0x1.cb4p-1, 0x1.fc4p-13, 0x1.9a4p0,
1444 0x1.18p-4, 0x1.60cp10, 0x1.6fp-12, 0x1.b48p6, 0x1.37cp-11, 0x1.424p7, 0x1.44cp13, 0x1.aep5,
1445 0x1.968p14, 0x1.e8p13, -0x1.bp2, -0x1.644p5, 0x1.de4p-8, -0x1.5b4p-14, -0x1.4ap1, -0x1.868p9,
1446 -0x1.d14p0, 0x1.d7cp15, 0x1.3c8p14, 0x1.2ccp-14, -0x1.ee4p8, 0x1.49p-3, 0x1.35cp12, 0x1.d34p6,
1447 0x1.7acp3, -0x1.fa4p2, 0x1.7b4p13, -0x1.cf4p-12, -0x1.ebcp-10, -0x1.5p-3, 0x1.4bp-6, 0x1.83p12,
1448 -0x1.f9cp-8, -0x1.43p-8, -0x1.99p-1, -0x1.dacp3, -0x1.728p-4, -0x1.03cp4, 0x1.604p-2, -0x1.0ep13,
1449 });
1450
1451 try testArgs(@Vector(1, f32), .{
1452 -0x1.17cp-12,
1453 });
1454 try testArgs(@Vector(2, f32), .{
1455 -0x1.a3123ap90, -0x1.4a2ec6p-54,
1456 });
1457 try testArgs(@Vector(4, f32), .{
1458 -0x1.8a41p77, -0x1.7c54e2p-61, -0x1.498556p-41, 0x1.d77c22p-20,
1459 });
1460 try testArgs(@Vector(8, f32), .{
1461 0x1.943da4p-86, 0x1.528792p95, -0x1.9c9bfap-26, -0x1.8df936p-90,
1462 -0x1.6a70cep56, 0x1.626638p-48, 0x1.7bb2bap-57, -0x1.ac5104p94,
1463 });
1464 try testArgs(@Vector(16, f32), .{
1465 0x1.157044p115, -0x1.416c04p-111, 0x1.a8f164p-104, 0x1.9b6678p84,
1466 -0x1.9d065cp9, -0x1.e8c4b4p126, -0x1.ddb968p84, -0x1.fec8c8p74,
1467 0x1.64ffb2p59, 0x1.548922p20, 0x1.7270fcp22, -0x1.abac68p33,
1468 0x1.faabfp33, -0x1.8aee82p55, 0x1.1bf8fp75, 0x1.33c46ap-66,
1469 });
1470 try testArgs(@Vector(32, f32), .{
1471 -0x1.039b68p37, -0x1.34de4ap-74, -0x1.05d78ap-76, -0x1.be0f5ap-47,
1472 0x1.032204p-38, 0x1.ef8e2ap-78, -0x1.b013ecp-80, 0x1.71fe4cp99,
1473 0x1.abdadap-14, 0x1.56a9a8p-48, -0x1.8bbd7ep9, 0x1.edd308p-72,
1474 -0x1.92fafcp-121, -0x1.50812p19, 0x1.f4ddc4p28, -0x1.6f0b12p-50,
1475 -0x1.12ab02p127, 0x1.24df48p21, -0x1.993c3p-14, -0x1.4cc476p-112,
1476 0x1.13d9a8p-40, 0x1.a6e652p-9, -0x1.9c730cp-21, -0x1.a75aaap-70,
1477 -0x1.39e632p-111, 0x1.8e8da8p-45, 0x1.b5652cp31, 0x1.258366p44,
1478 0x1.d473aap92, -0x1.951b64p9, 0x1.542edp15, -0x0.f6222ap-126,
1479 });
1480
1481 try testArgs(@Vector(1, f64), .{
1482 -0x1.0114613df6f97p816,
1483 });
1484 try testArgs(@Vector(2, f64), .{
1485 -0x1.8404dad72003cp720, -0x1.6b14b40bcf3b7p-176,
1486 });
1487 try testArgs(@Vector(4, f64), .{
1488 -0x1.04e1acbfddd9cp681, -0x1.ed553cc056da7p-749,
1489 0x1.3d3f703a0c893p-905, 0x1.0b35633fa78fp691,
1490 });
1491 try testArgs(@Vector(8, f64), .{
1492 -0x1.901a2a60f0562p-301, -0x1.2516175ad61ecp-447,
1493 0x1.e7b12124846bfp564, 0x1.9291384bd7259p209,
1494 -0x1.a7bf62f803c98p900, 0x1.4e2e26257bb3p987,
1495 -0x1.413ca9a32d894p811, 0x1.61b1dd9432e95p479,
1496 });
1497 try testArgs(@Vector(16, f64), .{
1498 -0x1.8fc7286d95f54p-235, -0x1.796a7ea8372b6p-837,
1499 -0x1.8c0f930539acbp-98, -0x1.ec80dfbf0b931p-430,
1500 -0x1.e3d80c640652fp-1019, 0x1.8241238fb542fp161,
1501 -0x1.e1f1a79d50263p137, -0x1.9ac5cb2771c28p-791,
1502 0x1.4d8f00fe881e7p-401, -0x1.87fbd7bfd99d7p346,
1503 -0x1.a8a7cc575335ep1017, 0x1.37bb88dc3fd8bp-355,
1504 0x1.9d53d346c0e65p929, -0x1.bbae3d0229c34p289,
1505 -0x1.cb8ef994d5ce5p25, 0x1.ba20af512616ap50,
1506 });
1507
1508 try testArgs(@Vector(1, f80), .{
1509 -0x1.a2e9410a7dfedabp-2324,
1510 });
1511 try testArgs(@Vector(2, f80), .{
1512 -0x1.a2e9410a7dfedabp-2324,
1513 0x1.2b17da3b9746885p-8665,
1514 });
1515 try testArgs(@Vector(4, f80), .{
1516 -0x1.c488fedb7ab646cep-13007,
1517 0x1.e914deaccaa50016p2073,
1518 -0x1.d1c7ae8ec3c9df86p10642,
1519 -0x1.2da1658f337fa01p9893,
1520 });
1521 try testArgs(@Vector(8, f80), .{
1522 -0x1.bed8a74c43750656p890,
1523 -0x1.7bf57f38004ac976p8481,
1524 -0x1.9cdc10ac0657d328p7884,
1525 0x1.c86f61883da149fp12293,
1526 -0x1.528d6957df6bfdd8p14125,
1527 -0x1.5ebb4006d0243bfep14530,
1528 -0x1.94b9b18636d12402p-1845,
1529 -0x1.25439a6d68add188p5962,
1530 });
1531
1532 try testArgs(@Vector(1, f128), .{
1533 -0x1.d1e6fc3b1e66632e7b79051a47dap14300,
1534 });
1535 try testArgs(@Vector(2, f128), .{
1536 0x1.84b3ac8ffe5893b2c6af8d68de9dp-83,
1537 -0x1.438ca2c8a0d8e3ee9062d351c46ep-10235,
1538 });
1539 try testArgs(@Vector(4, f128), .{
1540 0x1.04eb03882d4fd1b090e714d3e5ep806,
1541 -0x1.4082b29f7c26e701764c915642ffp-6182,
1542 -0x1.b6f1e8565e5040415110f18b519ap13383,
1543 0x1.1c29f8c162cead9061c5797ea15ap11957,
1544 });
1545 try testArgs(@Vector(8, f128), .{
1546 -0x1.53d7f00cd204d80e5ff5bb665773p11218,
1547 -0x1.4daa1c81cffe28e8fa5cd703c287p2362,
1548 -0x1.cc6a71c3ad4560871efdbd025cd7p-8116,
1549 -0x1.87f8553cf8772fb6b78e7df3e3bap14523,
1550 -0x1.14b6880f6678f86dfb543dde1c6ep2105,
1551 0x1.9d2d4398414da9d857e76e8fd7ccp-13668,
1552 0x1.a37f07af240ded458d103c022064p-1158,
1553 0x1.425d53e6bd6070b847e5da1ed593p1394,
1554 });
1555 }
1556 };
1557}
1558
1559inline fn bitNot(comptime Type: type, rhs: Type) @TypeOf(~rhs) {
1560 return ~rhs;
1561}
1562test bitNot {
1563 const test_bit_not = unary(bitNot, .{});
1564 try test_bit_not.testInts();
1565 try test_bit_not.testIntVectors();
1566}
1567
1568inline fn clz(comptime Type: type, rhs: Type) @TypeOf(@clz(rhs)) {
1569 return @clz(rhs);
1570}
1571test clz {
1572 const test_clz = unary(clz, .{});
1573 try test_clz.testInts();
1574 try test_clz.testIntVectors();
1575}
1576
1577inline fn ctz(comptime Type: type, rhs: Type) @TypeOf(@ctz(rhs)) {
1578 return @ctz(rhs);
1579}
1580test ctz {
1581 const test_ctz = unary(ctz, .{});
1582 try test_ctz.testInts();
1583}
1584
1585inline fn popCount(comptime Type: type, rhs: Type) @TypeOf(@popCount(rhs)) {
1586 return @popCount(rhs);
1587}
1588test popCount {
1589 const test_pop_count = unary(popCount, .{});
1590 try test_pop_count.testInts();
1591}
1592
1593inline fn byteSwap(comptime Type: type, rhs: Type) RoundBitsUp(Type, 8) {
1594 return @byteSwap(@as(RoundBitsUp(Type, 8), rhs));
1595}
1596test byteSwap {
1597 const test_byte_swap = unary(byteSwap, .{});
1598 try test_byte_swap.testInts();
1599}
1600
1601inline fn bitReverse(comptime Type: type, rhs: Type) @TypeOf(@bitReverse(rhs)) {
1602 return @bitReverse(rhs);
1603}
1604test bitReverse {
1605 const test_bit_reverse = unary(bitReverse, .{});
1606 try test_bit_reverse.testInts();
1607}
1608
1609inline fn sqrt(comptime Type: type, rhs: Type) @TypeOf(@sqrt(rhs)) {
1610 return @sqrt(rhs);
1611}
1612test sqrt {
1613 const test_sqrt = unary(sqrt, .{ .libc_name = "sqrt", .compare = .approx });
1614 try test_sqrt.testFloats();
1615 try test_sqrt.testFloatVectors();
1616}
1617
1618inline fn sin(comptime Type: type, rhs: Type) @TypeOf(@sin(rhs)) {
1619 return @sin(rhs);
1620}
1621test sin {
1622 const test_sin = unary(sin, .{ .libc_name = "sin", .compare = .strict });
1623 try test_sin.testFloats();
1624 try test_sin.testFloatVectors();
1625}
1626
1627inline fn cos(comptime Type: type, rhs: Type) @TypeOf(@cos(rhs)) {
1628 return @cos(rhs);
1629}
1630test cos {
1631 const test_cos = unary(cos, .{ .libc_name = "cos", .compare = .strict });
1632 try test_cos.testFloats();
1633 try test_cos.testFloatVectors();
1634}
1635
1636inline fn tan(comptime Type: type, rhs: Type) @TypeOf(@tan(rhs)) {
1637 return @tan(rhs);
1638}
1639test tan {
1640 const test_tan = unary(tan, .{ .libc_name = "tan", .compare = .strict });
1641 try test_tan.testFloats();
1642 try test_tan.testFloatVectors();
1643}
1644
1645inline fn exp(comptime Type: type, rhs: Type) @TypeOf(@exp(rhs)) {
1646 return @exp(rhs);
1647}
1648test exp {
1649 const test_exp = unary(exp, .{ .libc_name = "exp", .compare = .strict });
1650 try test_exp.testFloats();
1651 try test_exp.testFloatVectors();
1652}
1653
1654inline fn exp2(comptime Type: type, rhs: Type) @TypeOf(@exp2(rhs)) {
1655 return @exp2(rhs);
1656}
1657test exp2 {
1658 const test_exp2 = unary(exp2, .{ .libc_name = "exp2", .compare = .strict });
1659 try test_exp2.testFloats();
1660 try test_exp2.testFloatVectors();
1661}
1662
1663inline fn log(comptime Type: type, rhs: Type) @TypeOf(@log(rhs)) {
1664 return @log(rhs);
1665}
1666test log {
1667 const test_log = unary(log, .{ .libc_name = "log", .compare = .strict });
1668 try test_log.testFloats();
1669 try test_log.testFloatVectors();
1670}
1671
1672inline fn log2(comptime Type: type, rhs: Type) @TypeOf(@log2(rhs)) {
1673 return @log2(rhs);
1674}
1675test log2 {
1676 const test_log2 = unary(log2, .{ .libc_name = "log2", .compare = .strict });
1677 try test_log2.testFloats();
1678 try test_log2.testFloatVectors();
1679}
1680
1681inline fn log10(comptime Type: type, rhs: Type) @TypeOf(@log10(rhs)) {
1682 return @log10(rhs);
1683}
1684test log10 {
1685 const test_log10 = unary(log10, .{ .libc_name = "log10", .compare = .strict });
1686 try test_log10.testFloats();
1687 try test_log10.testFloatVectors();
1688}
1689
1690inline fn abs(comptime Type: type, rhs: Type) @TypeOf(@abs(rhs)) {
1691 return @abs(rhs);
1692}
1693test abs {
1694 const test_abs = unary(abs, .{ .compare = .strict });
1695 try test_abs.testInts();
1696 try test_abs.testIntVectors();
1697 try test_abs.testFloats();
1698 try test_abs.testFloatVectors();
1699}
1700
1701inline fn floor(comptime Type: type, rhs: Type) @TypeOf(@floor(rhs)) {
1702 return @floor(rhs);
1703}
1704test floor {
1705 const test_floor = unary(floor, .{ .libc_name = "floor", .compare = .strict });
1706 try test_floor.testFloats();
1707 try test_floor.testFloatVectors();
1708}
1709
1710inline fn ceil(comptime Type: type, rhs: Type) @TypeOf(@ceil(rhs)) {
1711 return @ceil(rhs);
1712}
1713test ceil {
1714 const test_ceil = unary(ceil, .{ .libc_name = "ceil", .compare = .strict });
1715 try test_ceil.testFloats();
1716 try test_ceil.testFloatVectors();
1717}
1718
1719inline fn round(comptime Type: type, rhs: Type) @TypeOf(@round(rhs)) {
1720 return @round(rhs);
1721}
1722test round {
1723 const test_round = unary(round, .{ .libc_name = "round", .compare = .strict });
1724 try test_round.testFloats();
1725 try test_round.testFloatVectors();
1726}
1727
1728inline fn trunc(comptime Type: type, rhs: Type) @TypeOf(@trunc(rhs)) {
1729 return @trunc(rhs);
1730}
1731test trunc {
1732 const test_trunc = unary(trunc, .{ .libc_name = "trunc", .compare = .strict });
1733 try test_trunc.testFloats();
1734 try test_trunc.testFloatVectors();
1735}
1736
1737inline fn negate(comptime Type: type, rhs: Type) @TypeOf(-rhs) {
1738 return -rhs;
1739}
1740test negate {
1741 const test_negate = unary(negate, .{ .compare = .strict });
1742 try test_negate.testFloats();
1743 try test_negate.testFloatVectors();
1744}
1745
1746inline fn nullIsNull(comptime Type: type, _: Type) bool {
1747 return runtime(?Type, null) == null;
1748}
1749test nullIsNull {
1750 const test_null_is_null = unary(nullIsNull, .{});
1751 try test_null_is_null.testIntTypes();
1752 try test_null_is_null.testIntVectorTypes();
1753 try test_null_is_null.testFloatTypes();
1754 try test_null_is_null.testFloatVectorTypes();
1755}
1756
1757inline fn nullIsNotNull(comptime Type: type, _: Type) bool {
1758 return runtime(?Type, null) != null;
1759}
1760test nullIsNotNull {
1761 const test_null_is_not_null = unary(nullIsNotNull, .{});
1762 try test_null_is_not_null.testIntTypes();
1763 try test_null_is_not_null.testIntVectorTypes();
1764 try test_null_is_not_null.testFloatTypes();
1765 try test_null_is_not_null.testFloatVectorTypes();
1766}
1767
1768inline fn optionalIsNull(comptime Type: type, lhs: Type) bool {
1769 return @as(?Type, lhs) == null;
1770}
1771test optionalIsNull {
1772 const test_optional_is_null = unary(optionalIsNull, .{});
1773 try test_optional_is_null.testInts();
1774 try test_optional_is_null.testFloats();
1775}
1776
1777inline fn optionalIsNotNull(comptime Type: type, lhs: Type) bool {
1778 return @as(?Type, lhs) != null;
1779}
1780test optionalIsNotNull {
1781 const test_optional_is_not_null = unary(optionalIsNotNull, .{});
1782 try test_optional_is_not_null.testInts();
1783 try test_optional_is_not_null.testFloats();
1784}
1785
1786inline fn nullEqualNull(comptime Type: type, _: Type) bool {
1787 return runtime(?Type, null) == runtime(?Type, null);
1788}
1789test nullEqualNull {
1790 const test_null_equal_null = unary(nullEqualNull, .{});
1791 try test_null_equal_null.testIntTypes();
1792 try test_null_equal_null.testFloatTypes();
1793}
1794
1795inline fn nullNotEqualNull(comptime Type: type, _: Type) bool {
1796 return runtime(?Type, null) != runtime(?Type, null);
1797}
1798test nullNotEqualNull {
1799 const test_null_not_equal_null = unary(nullNotEqualNull, .{});
1800 try test_null_not_equal_null.testIntTypes();
1801 try test_null_not_equal_null.testFloatTypes();
1802}
1803
1804inline fn optionalEqualNull(comptime Type: type, lhs: Type) bool {
1805 return lhs == runtime(?Type, null);
1806}
1807test optionalEqualNull {
1808 const test_optional_equal_null = unary(optionalEqualNull, .{});
1809 try test_optional_equal_null.testInts();
1810 try test_optional_equal_null.testFloats();
1811}
1812
1813inline fn optionalNotEqualNull(comptime Type: type, lhs: Type) bool {
1814 return lhs != runtime(?Type, null);
1815}
1816test optionalNotEqualNull {
1817 const test_optional_not_equal_null = unary(optionalIsNotNull, .{});
1818 try test_optional_not_equal_null.testInts();
1819 try test_optional_not_equal_null.testFloats();
1820}
test/cases/compile_errors/@import_zon_bad_type.zig+3-3
...@@ -117,9 +117,9 @@ export fn testMutablePointer() void {...@@ -117,9 +117,9 @@ export fn testMutablePointer() void {
117// tmp.zig:37:38: note: imported here117// tmp.zig:37:38: note: imported here
118// neg_inf.zon:1:1: error: expected type '?u8'118// neg_inf.zon:1:1: error: expected type '?u8'
119// tmp.zig:57:28: note: imported here119// tmp.zig:57:28: note: imported here
120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_487'120// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_491'
121// tmp.zig:62:39: note: imported here121// tmp.zig:62:39: note: imported here
122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_489'122// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_493'
123// tmp.zig:67:44: note: imported here123// tmp.zig:67:44: note: imported here
124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_492'124// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_496'
125// tmp.zig:72:50: note: imported here125// tmp.zig:72:50: note: imported here
test/cases/compile_errors/anytype_param_requires_comptime.zig+1-1
...@@ -15,6 +15,6 @@ pub export fn entry() void {...@@ -15,6 +15,6 @@ pub export fn entry() void {
15// error15// error
16//16//
17// :7:25: error: unable to resolve comptime value17// :7:25: error: unable to resolve comptime value
18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_461.C' must be comptime-known18// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_465.C' must be comptime-known
19// :4:16: note: struct requires comptime because of this field19// :4:16: note: struct requires comptime because of this field
20// :4:16: note: types are not available at runtime20// :4:16: note: types are not available at runtime
test/cases/compile_errors/bogus_method_call_on_slice.zig+1-1
...@@ -16,5 +16,5 @@ pub export fn entry2() void {...@@ -16,5 +16,5 @@ pub export fn entry2() void {
16//16//
17// :3:6: error: no field or member function named 'copy' in '[]const u8'17// :3:6: error: no field or member function named 'copy' in '[]const u8'
18// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'18// :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})'
19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_465'19// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_469'
20// :12:6: note: struct declared here20// :12:6: note: struct declared here
test/cases/compile_errors/coerce_anon_struct.zig+1-1
...@@ -6,6 +6,6 @@ export fn foo() void {...@@ -6,6 +6,6 @@ export fn foo() void {
66
7// error7// error
8//8//
9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_454'9// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_458'
10// :3:16: note: struct declared here10// :3:16: note: struct declared here
11// :1:11: note: struct declared here11// :1:11: note: struct declared here
test/cases/compile_errors/redundant_try.zig+2-2
...@@ -44,9 +44,9 @@ comptime {...@@ -44,9 +44,9 @@ comptime {
44//44//
45// :5:23: error: expected error union type, found 'comptime_int'45// :5:23: error: expected error union type, found 'comptime_int'
46// :10:23: error: expected error union type, found '@TypeOf(.{})'46// :10:23: error: expected error union type, found '@TypeOf(.{})'
47// :15:23: error: expected error union type, found 'tmp.test2__struct_491'47// :15:23: error: expected error union type, found 'tmp.test2__struct_495'
48// :15:23: note: struct declared here48// :15:23: note: struct declared here
49// :20:27: error: expected error union type, found 'tmp.test3__struct_493'49// :20:27: error: expected error union type, found 'tmp.test3__struct_497'
50// :20:27: note: struct declared here50// :20:27: note: struct declared here
51// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'51// :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }'
52// :31:13: error: expected error union type, found 'u32'52// :31:13: error: expected error union type, found 'u32'