From ed284c1f98ae08a36a7ef0776e22a4cfb2527fee Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 11 Mar 2025 08:56:45 -0400 Subject: [PATCH 1/6] big.int: fix yet another truncate bug Too many bugs have been found with `truncate` at this point, so it was rewritten from scratch. Based on the doc comment, the utility of `convertToTwosComplement` over `r.truncate(a, .unsigned, bit_count)` is unclear and it has a subtle behavior difference that is almost certainly a bug, so it was deleted. --- lib/std/math/big/int.zig | 141 ++++++++++------------------------ lib/std/math/big/int_test.zig | 77 ++++++++++++++++--- src/codegen/c.zig | 3 +- 3 files changed, 108 insertions(+), 113 deletions(-) diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig index a4ab9b2f48..5e7214b7d9 100644 --- a/lib/std/math/big/int.zig +++ b/lib/std/math/big/int.zig @@ -1755,119 +1755,60 @@ pub const Mutable = struct { y.shiftRight(y.toConst(), norm_shift); } - /// If a is positive, this passes through to truncate. - /// If a is negative, then r is set to positive with the bit pattern ~(a - 1). - /// r may alias a. - /// - /// Asserts `r` has enough storage to store the result. - /// The upper bound is `calcTwosCompLimbCount(a.len)`. - pub fn convertToTwosComplement(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void { - if (a.positive) { - r.truncate(a, signedness, bit_count); - return; - } - - const req_limbs = calcTwosCompLimbCount(bit_count); - if (req_limbs == 0 or a.eqlZero()) { - r.set(0); - return; - } - - const bit = @as(Log2Limb, @truncate(bit_count - 1)); - const signmask = @as(Limb, 1) << bit; - const mask = (signmask << 1) -% 1; - - r.addScalar(a.abs(), -1); - if (req_limbs > r.len) { - @memset(r.limbs[r.len..req_limbs], 0); - } - - assert(r.limbs.len >= req_limbs); - r.len = req_limbs; - - llnot(r.limbs[0..r.len]); - r.limbs[r.len - 1] &= mask; - r.normalize(r.len); - } - /// Truncate an integer to a number of bits, following 2s-complement semantics. - /// r may alias a. + /// `r` may alias `a`. /// - /// Asserts `r` has enough storage to store the result. + /// Asserts `r` has enough storage to compute the result. /// The upper bound is `calcTwosCompLimbCount(a.len)`. pub fn truncate(r: *Mutable, a: Const, signedness: Signedness, bit_count: usize) void { - const req_limbs = calcTwosCompLimbCount(bit_count); - const abs_trunc_a: Const = .{ - .positive = true, - .limbs = a.limbs[0..@min(a.limbs.len, req_limbs)], - }; - // Handle 0-bit integers. - if (req_limbs == 0 or abs_trunc_a.eqlZero()) { + if (bit_count == 0) { + @branchHint(.unlikely); r.set(0); return; } - const bit = @as(Log2Limb, @truncate(bit_count - 1)); - const signmask = @as(Limb, 1) << bit; // 0b0..010...0 where 1 is the sign bit. - const mask = (signmask << 1) -% 1; // 0b0..01..1 where the leftmost 1 is the sign bit. + const max_limbs = calcTwosCompLimbCount(bit_count); + const sign_bit = @as(Limb, 1) << @truncate(bit_count - 1); + const mask = @as(Limb, maxInt(Limb)) >> @truncate(-%bit_count); - if (!a.positive) { - // Convert the integer from sign-magnitude into twos-complement. - // -x = ~(x - 1) - // Note, we simply take req_limbs * @bitSizeOf(Limb) as the - // target bit count. + // Guess whether the result will have the same sign as `a`. + // * If the result will be signed zero, the guess is `true`. + // * If the result will be the minimum signed integer, the guess is `false`. + // * If the result will be unsigned zero, the guess is `a.positive`. + // * Otherwise the guess is correct. + const same_sign_guess = switch (signedness) { + .signed => max_limbs > a.limbs.len or a.limbs[max_limbs - 1] & sign_bit == 0, + .unsigned => a.positive, + }; - r.addScalar(abs_trunc_a, -1); - - // Zero-extend the result - @memset(r.limbs[r.len..req_limbs], 0); - r.len = req_limbs; - - // Without truncating, we can already peek at the sign bit of the result here. - // Note that it will be 0 if the result is negative, as we did not apply the flip here. - // If the result is negative, we have - // -(-x & mask) - // = ~(~(x - 1) & mask) + 1 - // = ~(~((x - 1) | ~mask)) + 1 - // = ((x - 1) | ~mask)) + 1 - // Note, this is only valid for the target bits and not the upper bits - // of the most significant limb. Those still need to be cleared. - // Also note that `mask` is zero for all other bits, reducing to the identity. - // This means that we still need to use & mask to clear off the upper bits. - - if (signedness == .signed and r.limbs[r.len - 1] & signmask == 0) { - // Re-add the one and negate to get the result. - r.limbs[r.len - 1] &= mask; - // Note, addition cannot require extra limbs here as we did a subtraction before. - r.addScalar(r.toConst(), 1); - r.normalize(r.len); - r.positive = false; - } else { - llnot(r.limbs[0..r.len]); - r.limbs[r.len - 1] &= mask; - r.normalize(r.len); - } - } else { + const abs_trunc_a: Const = .{ + .positive = true, + .limbs = a.limbs[0..llnormalize(a.limbs[0..@min(a.limbs.len, max_limbs)])], + }; + if (same_sign_guess or abs_trunc_a.eqlZero()) { + // One of the following is true: + // * The result is zero. + // * The result is non-zero and has the same sign as `a`. r.copy(abs_trunc_a); - // If the integer fits within target bits, no wrapping is required. - if (r.len < req_limbs) return; - - r.limbs[r.len - 1] &= mask; + if (max_limbs <= r.len) r.limbs[max_limbs - 1] &= mask; r.normalize(r.len); - - if (signedness == .signed and r.limbs[r.len - 1] & signmask != 0) { - // Convert 2s-complement back to sign-magnitude. - // Sign-extend the upper bits so that they are inverted correctly. - r.limbs[r.len - 1] |= ~mask; - llnot(r.limbs[0..r.len]); - - // Note, can only overflow if r holds 0xFFF...F which can only happen if - // a holds 0. - r.addScalar(r.toConst(), 1); - - r.positive = false; - } + r.positive = a.positive or r.eqlZero(); + } else { + // One of the following is true: + // * The result is the minimum signed integer. + // * The result is unsigned zero. + // * The result is non-zero and has the opposite sign as `a`. + r.addScalar(abs_trunc_a, -1); + llnot(r.limbs[0..r.len]); + @memset(r.limbs[r.len..max_limbs], maxInt(Limb)); + r.limbs[max_limbs - 1] &= mask; + r.normalize(max_limbs); + r.positive = switch (signedness) { + // The only value with the sign bit still set is the minimum signed integer. + .signed => !a.positive and r.limbs[max_limbs - 1] & sign_bit == 0, + .unsigned => !a.positive or r.eqlZero(), + }; } } diff --git a/lib/std/math/big/int_test.zig b/lib/std/math/big/int_test.zig index 6ff9861fc1..009bef7ef3 100644 --- a/lib/std/math/big/int_test.zig +++ b/lib/std/math/big/int_test.zig @@ -1020,7 +1020,7 @@ test "mul large" { // Generate a number that's large enough to cross the thresholds for the use // of subquadratic algorithms for (a.limbs) |*p| { - p.* = std.math.maxInt(Limb); + p.* = maxInt(Limb); } a.setMetadata(true, 50); @@ -1104,7 +1104,7 @@ test "mulWrap large" { // Generate a number that's large enough to cross the thresholds for the use // of subquadratic algorithms for (a.limbs) |*p| { - p.* = std.math.maxInt(Limb); + p.* = maxInt(Limb); } a.setMetadata(true, 50); @@ -1961,23 +1961,78 @@ test "truncate to mutable with fewer limbs" { .positive = undefined, }; res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb)); - try testing.expect(res.eqlZero()); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb)); - try testing.expect(res.eqlZero()); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb)); - try testing.expect(res.eqlZero()); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb)); - try testing.expect(res.eqlZero()); - res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb)); - try testing.expect(res.toConst().orderAgainstScalar(std.math.maxInt(Limb)).compare(.eq)); - res.truncate(.{ .positive = true, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = true, .limbs = &.{ maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(maxInt(Limb)).compare(.eq)); + res.truncate(.{ .positive = true, .limbs = &.{ maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb)); try testing.expect(res.toConst().orderAgainstScalar(-1).compare(.eq)); - res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb)); + res.truncate(.{ .positive = false, .limbs = &.{ maxInt(Limb), 1 } }, .unsigned, @bitSizeOf(Limb)); try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq)); - res.truncate(.{ .positive = false, .limbs = &.{ std.math.maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb)); + res.truncate(.{ .positive = false, .limbs = &.{ maxInt(Limb), 1 } }, .signed, @bitSizeOf(Limb)); try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq)); } +test "truncate value that normalizes after being masked" { + var res_limbs: [2]Limb = undefined; + var res: Mutable = .{ + .limbs = &res_limbs, + .len = undefined, + .positive = undefined, + }; + res.truncate(.{ .positive = true, .limbs = &.{ 0, 2 } }, .signed, 1 + @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = true, .limbs = &.{ 1, 2 } }, .signed, 1 + @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(1).compare(.eq)); +} + +test "truncate to zero" { + var res_limbs: [1]Limb = undefined; + var res: Mutable = .{ + .limbs = &res_limbs, + .len = undefined, + .positive = undefined, + }; + res.truncate(.{ .positive = true, .limbs = &.{0} }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = false, .limbs = &.{0} }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = true, .limbs = &.{0} }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = false, .limbs = &.{0} }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = true, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); + res.truncate(.{ .positive = false, .limbs = &.{ 0, 1 } }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.positive and res.len == 1 and res.limbs[0] == 0); +} + +test "truncate to minimum signed integer" { + var res_limbs: [1]Limb = undefined; + var res: Mutable = .{ + .limbs = &res_limbs, + .len = undefined, + .positive = undefined, + }; + res.truncate(.{ .positive = true, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(-1 << @bitSizeOf(Limb) - 1).compare(.eq)); + res.truncate(.{ .positive = false, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .signed, @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(-1 << @bitSizeOf(Limb) - 1).compare(.eq)); + res.truncate(.{ .positive = true, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(1 << @bitSizeOf(Limb) - 1).compare(.eq)); + res.truncate(.{ .positive = false, .limbs = &.{1 << @bitSizeOf(Limb) - 1} }, .unsigned, @bitSizeOf(Limb)); + try testing.expect(res.toConst().orderAgainstScalar(1 << @bitSizeOf(Limb) - 1).compare(.eq)); +} + test "saturate single signed positive" { var a = try Managed.initSet(testing.allocator, 0xBBBB_BBBB); defer a.deinit(); diff --git a/src/codegen/c.zig b/src/codegen/c.zig index cd4573375d..2aee078b11 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -8175,7 +8175,7 @@ fn formatIntLiteral( try writer.writeAll(string); } else { try data.ctype.renderLiteralPrefix(writer, data.kind, ctype_pool); - wrap.convertToTwosComplement(int, data.int_info.signedness, c_bits); + wrap.truncate(int, .unsigned, c_bits); @memset(wrap.limbs[wrap.len..], 0); wrap.len = wrap.limbs.len; const limbs_per_c_limb = @divExact(wrap.len, c_limb_info.count); @@ -8207,7 +8207,6 @@ fn formatIntLiteral( c_limb_int_info.signedness = .signed; c_limb_ctype = c_limb_info.ctype.toSigned(); - c_limb_mut.positive = wrap.positive; c_limb_mut.truncate( c_limb_mut.toConst(), .signed, From c5c1c8538dc047bc7df9acd685791c4ba3e20ffb Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Tue, 11 Mar 2025 18:24:37 -0400 Subject: [PATCH 2/6] x86_64: rewrite wrapping multiplication --- lib/std/zig/Zir.zig | 6 +- src/Air.zig | 4 + src/InternPool.zig | 20 + src/Sema.zig | 4 + src/Type.zig | 4 + src/arch/x86_64/CodeGen.zig | 2886 ++++++++++++++++- src/arch/x86_64/Lower.zig | 2 +- src/codegen/c/Type.zig | 60 + test/behavior/x86_64/math.zig | 9 + .../compile_errors/@import_zon_bad_type.zig | 6 +- .../anytype_param_requires_comptime.zig | 2 +- .../bogus_method_call_on_slice.zig | 2 +- .../compile_errors/coerce_anon_struct.zig | 2 +- test/cases/compile_errors/redundant_try.zig | 4 +- 14 files changed, 2917 insertions(+), 94 deletions(-) diff --git a/lib/std/zig/Zir.zig b/lib/std/zig/Zir.zig index 638d734107..089bc5e2ae 100644 --- a/lib/std/zig/Zir.zig +++ b/lib/std/zig/Zir.zig @@ -2136,7 +2136,7 @@ pub const Inst = struct { ref_start_index = static_len, _, - pub const static_len = 93; + pub const static_len = 97; pub fn toRef(i: Index) Inst.Ref { return @enumFromInt(@intFromEnum(Index.ref_start_index) + @intFromEnum(i)); @@ -2221,6 +2221,10 @@ pub const Inst = struct { slice_const_u8_sentinel_0_type, vector_16_i8_type, vector_32_i8_type, + vector_1_u8_type, + vector_2_u8_type, + vector_4_u8_type, + vector_8_u8_type, vector_16_u8_type, vector_32_u8_type, vector_8_i16_type, diff --git a/src/Air.zig b/src/Air.zig index e323259cbe..a4567c8c0d 100644 --- a/src/Air.zig +++ b/src/Air.zig @@ -985,6 +985,10 @@ pub const Inst = struct { slice_const_u8_sentinel_0_type = @intFromEnum(InternPool.Index.slice_const_u8_sentinel_0_type), vector_16_i8_type = @intFromEnum(InternPool.Index.vector_16_i8_type), vector_32_i8_type = @intFromEnum(InternPool.Index.vector_32_i8_type), + vector_1_u8_type = @intFromEnum(InternPool.Index.vector_1_u8_type), + vector_2_u8_type = @intFromEnum(InternPool.Index.vector_2_u8_type), + vector_4_u8_type = @intFromEnum(InternPool.Index.vector_4_u8_type), + vector_8_u8_type = @intFromEnum(InternPool.Index.vector_8_u8_type), vector_16_u8_type = @intFromEnum(InternPool.Index.vector_16_u8_type), vector_32_u8_type = @intFromEnum(InternPool.Index.vector_32_u8_type), vector_8_i16_type = @intFromEnum(InternPool.Index.vector_8_i16_type), diff --git a/src/InternPool.zig b/src/InternPool.zig index ab264d0e86..04eb4854e7 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -4573,6 +4573,10 @@ pub const Index = enum(u32) { vector_16_i8_type, vector_32_i8_type, + vector_1_u8_type, + vector_2_u8_type, + vector_4_u8_type, + vector_8_u8_type, vector_16_u8_type, vector_32_u8_type, vector_8_i16_type, @@ -5089,6 +5093,14 @@ pub const static_keys = [_]Key{ .{ .vector_type = .{ .len = 16, .child = .i8_type } }, // @Vector(32, i8) .{ .vector_type = .{ .len = 32, .child = .i8_type } }, + // @Vector(1, u8) + .{ .vector_type = .{ .len = 1, .child = .u8_type } }, + // @Vector(2, u8) + .{ .vector_type = .{ .len = 2, .child = .u8_type } }, + // @Vector(4, u8) + .{ .vector_type = .{ .len = 4, .child = .u8_type } }, + // @Vector(8, u8) + .{ .vector_type = .{ .len = 8, .child = .u8_type } }, // @Vector(16, u8) .{ .vector_type = .{ .len = 16, .child = .u8_type } }, // @Vector(32, u8) @@ -11766,6 +11778,10 @@ pub fn typeOf(ip: *const InternPool, index: Index) Index { .slice_const_u8_sentinel_0_type, .vector_16_i8_type, .vector_32_i8_type, + .vector_1_u8_type, + .vector_2_u8_type, + .vector_4_u8_type, + .vector_8_u8_type, .vector_16_u8_type, .vector_32_u8_type, .vector_8_i16_type, @@ -12106,6 +12122,10 @@ pub fn zigTypeTag(ip: *const InternPool, index: Index) std.builtin.TypeId { .vector_16_i8_type, .vector_32_i8_type, + .vector_1_u8_type, + .vector_2_u8_type, + .vector_4_u8_type, + .vector_8_u8_type, .vector_16_u8_type, .vector_32_u8_type, .vector_8_i16_type, diff --git a/src/Sema.zig b/src/Sema.zig index 99e23e6f5a..2a914adcb5 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -36377,6 +36377,10 @@ pub fn typeHasOnePossibleValue(sema: *Sema, ty: Type) CompileError!?Value { .slice_const_u8_sentinel_0_type, .vector_16_i8_type, .vector_32_i8_type, + .vector_1_u8_type, + .vector_2_u8_type, + .vector_4_u8_type, + .vector_8_u8_type, .vector_16_u8_type, .vector_32_u8_type, .vector_8_i16_type, diff --git a/src/Type.zig b/src/Type.zig index 925f65106d..3b31337587 100644 --- a/src/Type.zig +++ b/src/Type.zig @@ -4201,6 +4201,10 @@ pub const slice_const_u8_sentinel_0: Type = .{ .ip_index = .slice_const_u8_senti pub const vector_16_i8: Type = .{ .ip_index = .vector_16_i8_type }; pub const vector_32_i8: Type = .{ .ip_index = .vector_32_i8_type }; +pub const vector_1_u8: Type = .{ .ip_index = .vector_1_u8_type }; +pub const vector_2_u8: Type = .{ .ip_index = .vector_2_u8_type }; +pub const vector_4_u8: Type = .{ .ip_index = .vector_4_u8_type }; +pub const vector_8_u8: Type = .{ .ip_index = .vector_8_u8_type }; pub const vector_16_u8: Type = .{ .ip_index = .vector_16_u8_type }; pub const vector_32_u8: Type = .{ .ip_index = .vector_32_u8_type }; pub const vector_8_i16: Type = .{ .ip_index = .vector_8_i16_type }; diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 2a9e25500c..77b4c46e1e 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -2069,7 +2069,7 @@ fn asmRegisterMemoryImmediate( } else { const payload = try self.addExtra(Mir.Imm32{ .imm = switch (imm) { .signed => |s| @bitCast(s), - .unsigned => unreachable, + .unsigned => |u| @as(u32, @intCast(u)), .reloc => unreachable, } }); 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 { } fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { - @setEvalBranchQuota(13_600); + @setEvalBranchQuota(13_800); const pt = cg.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -2457,9 +2457,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .shr, .shr_exact => try cg.airShlShrBinOp(inst), .shl, .shl_exact => try cg.airShlShrBinOp(inst), - .mul_wrap, - => |air_tag| try cg.airMulDivBinOp(inst, air_tag), - .add_sat => try cg.airAddSat(inst), .sub_sat => try cg.airSubSat(inst), .mul_sat => try cg.airMulSat(inst), @@ -8896,6 +8893,2703 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, .mul_safe => unreachable, + .mul_wrap => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, air_tag) else { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + const ty = cg.typeOf(bin_op.lhs); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{ty}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .signed_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .al }, .mem, .none } }, + .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .al }, .mem, .none } }, + .{ .src = .{ .mem, .{ .to_reg = .al }, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .{ .to_reg = .al }, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mul, .src1b, ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .imm16, .none } }, + .{ .src = .{ .imm16, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .imm16, .none } }, + .{ .src = .{ .imm16, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0w, .src0w, .src1w, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .word }, .{ .int = .word }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0w, .src1w, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .imm32, .none } }, + .{ .src = .{ .imm32, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .imm32, .none } }, + .{ .src = .{ .imm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0d, .src0d, .src1d, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .int = .dword }, .{ .int = .dword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0d, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .simm32, .none } }, + .{ .src = .{ .simm32, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_gpr, .simm32, .none } }, + .{ .src = .{ .simm32, .to_gpr, .none }, .commute = .{ 0, 1 } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0q, .src0q, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .int = .qword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mut_gpr, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_gpr, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, .i_, .mul, .dst0q, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .int = .xword }, .{ .int = .xword }, .any }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, + .{ ._, ._, .mul, .src1q, ._, ._, ._ }, + .{ ._, ._, .mov, .dst0q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .tmp0q, .src0q, ._, ._ }, + .{ ._, .i_, .mul, .tmp0q, .memd(.src1q, 8), ._, ._ }, + .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .tmp0q, .src1q, ._, ._ }, + .{ ._, .i_, .mul, .tmp0q, .memd(.src0q, 8), ._, ._ }, + .{ ._, ._, .add, .tmp1q, .tmp0q, ._, ._ }, + .{ ._, ._, .mov, .memd(.dst0q, 8), .tmp1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .adx, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .isize, .kind = .{ .reg = .rcx } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-8, .src0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .mem(.src1), ._, ._ }, + .{ .@"0:", ._, .xor, .tmp2d, .tmp2d, ._, ._ }, + .{ ._, ._, .@"or", .tmp2q, .memi(.src0q, .tmp0), ._, ._ }, + .{ ._, ._z, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .leaad(.tmp0, .sub_src0_size, 8), ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ .@"1:", ._x, .mul, .tmp6q, .tmp5q, .leai(.tmp1q, .tmp3), ._ }, + .{ ._, ._x, .adc, .tmp5q, .tmp4q, ._, ._ }, + .{ ._, ._, .mov, .memiad(.dst0q, .tmp3, .add_size, -8), .tmp5q, ._, ._ }, + .{ ._, ._rcxz, .j, .@"1f", ._, ._, ._ }, + .{ ._, ._x, .ado, .tmp6q, .memia(.dst0q, .tmp3, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4q, .tmp6q, ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .lead(.tmp3, 8), ._, ._ }, + .{ ._, ._mp, .j, .@"1b", ._, ._, ._ }, + .{ .@"2:", ._, .mov, .memi(.dst0q, .tmp0), .tmp2q, ._, ._ }, + .{ .@"1:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(8), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ .@"2:", ._x, .mul, .tmp7q, .tmp6q, .leasi(.tmp1q, .@"8", .tmp2), ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .memd(.src1, 8), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp2p, .leaa(.tmp0, .sub_src0_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .xor, .tmp4d, .tmp4d, ._, ._ }, + .{ ._, ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp3q, .memsi(.src0q, .@"8", .tmp0), ._, ._ }, + .{ ._, ._nz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._mp, .j, .@"3f", ._, ._, ._ }, + .{ .@"1:", ._, .adc, .tmp7q, .memsia(.dst0q, .@"8", .tmp2, .add_size), ._, ._ }, + .{ ._, ._, .adc, .tmp4b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp5q, .tmp7q, ._, ._ }, + .{ .@"2:", ._, .mov, .tmp6q, .tmp3q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp1q, .@"8", .tmp2), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp4b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp6q, .tmp5q, ._, ._ }, + .{ ._, ._, .mov, .memsia(.dst0q, .@"8", .tmp2, .add_size), .tmp6q, ._, ._ }, + .{ ._, ._c, .in, .tmp2p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"1b", ._, ._, ._ }, + .{ .@"3:", ._, .lea, .tmp1p, .lead(.tmp1, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .vp_w, .movsxb, .dst0x, .src0q, ._, ._ }, + .{ ._, .vp_w, .movsxb, .tmp2x, .src1q, ._, ._ }, + .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ }, + .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp1x), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .{ .scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .p_w, .movsxb, .dst0x, .src0q, ._, ._ }, + .{ ._, .p_w, .movsxb, .tmp2x, .src1q, ._, ._ }, + .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ }, + .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp1x), ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .qword, .is = .byte } }, + .{ .scalar_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .to_mut_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_16_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .p_, .unpcklbw, .dst0x, .dst0x, ._, ._ }, + .{ ._, .p_, .unpcklbw, .src1x, .src1x, ._, ._ }, + .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ }, + .{ ._, .p_, .@"and", .dst0x, .lea(.tmp1x), ._, ._ }, + .{ ._, .p_b, .ackusw, .dst0x, .dst0x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_signed_int = .{ .of = .xword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_32_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_16_i16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .vp_w, .movsxb, .dst0y, .src0x, ._, ._ }, + .{ ._, .vp_w, .movsxb, .tmp2y, .src1x, ._, ._ }, + .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ }, + .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp1y), ._ }, + .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .vp_w, .movzxb, .dst0x, .src0q, ._, ._ }, + .{ ._, .vp_w, .movzxb, .tmp2x, .src1q, ._, ._ }, + .{ ._, .vp_w, .mull, .dst0x, .dst0x, .tmp2x, ._ }, + .{ ._, .vp_b, .shuf, .dst0x, .dst0x, .lea(.tmp1x), ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .{ .scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_16_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .p_w, .movzxb, .dst0x, .src0q, ._, ._ }, + .{ ._, .p_w, .movzxb, .tmp2x, .src1q, ._, ._ }, + .{ ._, .p_w, .mull, .dst0x, .tmp2x, ._, ._ }, + .{ ._, .p_b, .shuf, .dst0x, .lea(.tmp1x), ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, + .{ .scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_32_u8, .kind = .{ .pshufb_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_16_u16, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp1p, .mem(.tmp0), ._, ._ }, + .{ ._, .vp_w, .movzxb, .dst0y, .src0x, ._, ._ }, + .{ ._, .vp_w, .movzxb, .tmp2y, .src1x, ._, ._ }, + .{ ._, .vp_w, .mull, .dst0y, .dst0y, .tmp2y, ._ }, + .{ ._, .vp_b, .shuf, .dst0y, .dst0y, .lea(.tmp1y), ._ }, + .{ ._, .v_q, .perm, .dst0y, .dst0y, .ui(0b10_00_10_00), ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .xword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_16_i16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_w, .movsxb, .tmp3y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .movsxb, .tmp4y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp3y, .tmp3y, .tmp4y, ._ }, + .{ ._, .vp_b, .shuf, .tmp3y, .tmp3y, .tmp2y, ._ }, + .{ ._, .v_q, .perm, .tmp3y, .tmp3y, .ui(0b10_00_10_00), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_w, .movsxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .movsxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp3x, .tmp3x, .tmp4x, ._ }, + .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, + .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_i16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_w, .movsxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .movsxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ }, + .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, + .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .ssse3, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ }, + .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ }, + .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ }, + .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, + .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse3, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ }, + .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ }, + .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ }, + .{ ._, .p_, .@"and", .tmp3x, .tmp2x, ._, ._ }, + .{ ._, .p_b, .ackusw, .tmp3x, .tmp3x, ._, ._ }, + .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_16_u8, .kind = .{ .pand_trunc_mem = .{ .from = .word, .to = .byte } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .lea(.tmp0x), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._q, .mov, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp3x, .tmp3x, ._, ._ }, + .{ ._, ._q, .mov, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_, .unpcklbw, .tmp4x, .tmp4x, ._, ._ }, + .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ }, + .{ ._, .p_, .@"and", .tmp3x, .tmp2x, ._, ._ }, + .{ ._, .p_b, .ackusw, .tmp3x, .tmp3x, ._, ._ }, + .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_signed_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .xword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, .vp_q, .broadcast, .tmp2y, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_w, .movzxb, .tmp3y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .movzxb, .tmp4y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp3y, .tmp3y, .tmp4y, ._ }, + .{ ._, .vp_b, .shuf, .tmp3y, .tmp3y, .tmp2y, ._ }, + .{ ._, .v_q, .perm, .tmp3y, .tmp3y, .ui(0b10_00_10_00), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, .v_, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_w, .movzxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .movzxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp3x, .tmp3x, .tmp4x, ._ }, + .{ ._, .vp_b, .shuf, .tmp3x, .tmp3x, .tmp2x, ._ }, + .{ ._, .v_q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .qword, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u8, .kind = .{ .pshufb_trunc_mem = .{ .of = .xword, .from = .word, .to = .byte } } }, + .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .lea, .tmp0p, .mem(.tmp1), ._, ._ }, + .{ ._, ._, .movddup, .tmp2x, .lea(.tmp0q), ._, ._ }, + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_w, .movzxb, .tmp3x, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .movzxb, .tmp4x, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .mull, .tmp3x, .tmp4x, ._, ._ }, + .{ ._, .p_b, .shuf, .tmp3x, .tmp2x, ._, ._ }, + .{ ._, ._q, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp3x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .slow_incdec, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .byte, .is = .byte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .reg = .al } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0b, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mul, .memia(.src1b, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0b, .tmp0, .add_unaligned_size), .tmp1b, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_w, .mull, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .{ .scalar_int = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .p_w, .mull, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .yword, .is = .word } }, + .{ .scalar_int = .{ .of = .yword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_w, .mull, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_16_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_w, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u16, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_w, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_signed_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .i16, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movsx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_unsigned_int = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u16, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .tmp1w, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_d, .mull, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .scalar_int = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .p_d, .mull, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .scalar_int = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .vp_d, .mull, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_u32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .mull, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .vp_d, .mull, .tmp1x, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_u32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .p_d, .mull, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, + .{ .multiple_scalar_int = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1d, .memia(.src0d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .tmp1d, .memia(.src1d, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0d, .tmp0, .add_unaligned_size), .tmp1d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(4), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .mov, .tmp1q, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .i_, .mul, .tmp1q, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0q, .tmp0, .add_unaligned_size), .tmp1q, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .adx, null }, + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .isize, .kind = .{ .reg = .rcx } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memia(.src1, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sia(-8, .src0, .add_elem_size), ._, ._ }, + .{ .@"1:", ._, .xor, .tmp5d, .tmp5d, ._, ._ }, + .{ ._, ._, .@"or", .tmp5q, .leai(.tmp1q, .tmp4), ._, ._ }, + .{ ._, ._z, .j, .@"3f", ._, ._, ._ }, + .{ ._, ._, .lea, .tmp6p, .leaad(.tmp4, .sub_src0_elem_size, 8), ._, ._ }, + .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, + .{ .@"2:", ._x, .mul, .tmp9q, .tmp8q, .leai(.tmp2q, .tmp6), ._ }, + .{ ._, ._x, .adc, .tmp8q, .tmp7q, ._, ._ }, + .{ ._, ._, .mov, .leaiad(.tmp3q, .tmp6, .add_dst0_elem_size, -8), .tmp8q, ._, ._ }, + .{ ._, ._rcxz, .j, .@"2f", ._, ._, ._ }, + .{ ._, ._x, .ado, .tmp9q, .leaia(.tmp3q, .tmp6, .add_dst0_elem_size), ._, ._ }, + .{ ._, ._, .mov, .tmp7q, .tmp9q, ._, ._ }, + .{ ._, ._, .lea, .tmp6p, .lead(.tmp6, 8), ._, ._ }, + .{ ._, ._mp, .j, .@"2b", ._, ._, ._ }, + .{ .@"3:", ._, .mov, .leai(.tmp3q, .tmp4), .tmp5q, ._, ._ }, + .{ .@"2:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp4d, .si(8), ._, ._ }, + .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, .slow_incdec, null }, + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, + .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, + .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, + .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, + .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._nz, .j, .@"3f", ._, ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ }, + .{ ._, ._mp, .j, .@"4f", ._, ._, ._ }, + .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ }, + .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ }, + .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ }, + .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ }, + .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ }, + .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ }, + .{ ._, ._c, .in, .tmp5p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"2b", ._, ._, ._ }, + .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, + .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, + .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, + .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, + .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._nz, .j, .@"3f", ._, ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ }, + .{ ._, ._mp, .j, .@"4f", ._, ._, ._ }, + .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ }, + .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ }, + .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ }, + .{ .@"3:", ._x, .mul, .tmp10q, .tmp9q, .leasi(.tmp2q, .@"8", .tmp5), ._ }, + .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ }, + .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ }, + .{ ._, ._c, .in, .tmp5p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"2b", ._, ._, ._ }, + .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp4d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, + .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, + .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, + .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, + .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._nz, .j, .@"3f", ._, ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ }, + .{ ._, ._mp, .j, .@"4f", ._, ._, ._ }, + .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ }, + .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ }, + .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ }, + .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ }, + .{ ._, ._c, .in, .tmp5p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"2b", ._, ._, ._ }, + .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ }, + .{ ._, ._, .sub, .tmp4d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .scalar_remainder_int = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u8, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .reg = .rax } }, + .{ .type = .u64, .kind = .{ .reg = .rdx } }, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_size), ._, ._ }, + .{ .@"0:", ._, .lea, .tmp1p, .memia(.src0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memiad(.src1, .tmp0, .add_size, 8), ._, ._ }, + .{ ._, ._, .lea, .tmp3p, .memia(.dst0, .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp4d, .sia(-1, .src0, .add_elem_size_div_8), ._, ._ }, + .{ .@"1:", ._, .lea, .tmp5p, .leaa(.tmp4, .sub_src0_elem_size_div_8), ._, ._ }, + .{ ._, ._, .xor, .tmp6d, .tmp6d, ._, ._ }, + .{ ._, ._, .xor, .tmp7d, .tmp7d, ._, ._ }, + .{ ._, ._, .xor, .tmp8d, .tmp8d, ._, ._ }, + .{ ._, ._, .@"or", .tmp6q, .leasi(.tmp1q, .@"8", .tmp4), ._, ._ }, + .{ ._, ._nz, .j, .@"3f", ._, ._, ._ }, + .{ ._, ._, .mov, .leasi(.tmp3q, .@"8", .tmp4), .tmp6q, ._, ._ }, + .{ ._, ._mp, .j, .@"4f", ._, ._, ._ }, + .{ .@"2:", ._, .adc, .tmp10q, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), ._, ._ }, + .{ ._, ._, .adc, .tmp7b, .si(0), ._, ._ }, + .{ ._, ._, .mov, .tmp8q, .tmp10q, ._, ._ }, + .{ .@"3:", ._, .mov, .tmp9q, .tmp6q, ._, ._ }, + .{ ._, ._, .mul, .leasi(.tmp2q, .@"8", .tmp5), ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp7b, .ui(4), ._, ._ }, + .{ ._, ._, .adc, .tmp9q, .tmp8q, ._, ._ }, + .{ ._, ._, .mov, .leasia(.tmp3q, .@"8", .tmp5, .add_src0_elem_size), .tmp9q, ._, ._ }, + .{ ._, ._c, .in, .tmp5p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"2b", ._, ._, ._ }, + .{ .@"4:", ._, .lea, .tmp2p, .lead(.tmp2, 8), ._, ._ }, + .{ ._, ._c, .de, .tmp4d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"1b", ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .sa(.src0, .add_elem_size), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ss, .mul, .dst0x, .dst0x, .tmp0d, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .{ .scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .{ .scalar_float = .{ .of = .qword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_4_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0x, .src0q, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0x, .src1q, ._, ._ }, + .{ ._, .v_ps, .mul, .dst0x, .dst0x, .tmp0x, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0q, .dst0x, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .{ .scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .extra_temps = .{ + .{ .type = .vector_8_f32, .kind = .{ .mut_rc = .{ .ref = .src1, .rc = .sse } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .cvtph2, .dst0y, .src0x, ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp0y, .src1x, ._, ._ }, + .{ ._, .v_ps, .mul, .dst0y, .dst0y, .tmp0y, ._ }, + .{ ._, .v_, .cvtps2ph, .dst0x, .dst0y, .rm(.{}), ._ }, + } }, + }, .{ + .required_features = .{ .f16c, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .cvtph2, .tmp1y, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .cvtph2, .tmp2y, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .tmp2y, ._ }, + .{ ._, .v_, .cvtps2ph, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1y, .rm(.{}), ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .vp_, .xor, .tmp2x, .tmp2x, .tmp2x, ._ }, + .{ ._, .vp_w, .insr, .tmp1x, .tmp2x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, .vp_w, .insr, .tmp2x, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0) }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .vp_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse4_1, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1x, .ui(0), ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .p_, .xor, .tmp1x, .tmp1x, ._, ._ }, + .{ ._, .p_, .xor, .tmp2x, .tmp2x, ._, ._ }, + .{ ._, .p_w, .insr, .tmp1x, .memia(.src0w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, .p_w, .insr, .tmp2x, .memia(.src1w, .tmp0, .add_unaligned_size), .ui(0), ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .p_w, .extr, .tmp4d, .tmp1x, .ui(0), ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp4w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .{ .multiple_scalar_float = .{ .of = .word, .is = .word } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f16, .kind = .{ .reg = .ax } }, + .{ .type = .f32, .kind = .mem }, + .{ .type = .f16, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f16, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__mulhf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._, .movzx, .tmp1d, .memia(.src0w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp3x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .movzx, .tmp1d, .memia(.src1w, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .mov, .mem(.tmp2d), .tmp1d, ._, ._ }, + .{ ._, ._ss, .mov, .tmp4x, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .call, .tmp5d, ._, ._, ._ }, + .{ ._, ._ss, .mov, .mem(.tmp2d), .tmp3x, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .mem(.tmp2d), ._, ._ }, + .{ ._, ._, .mov, .memia(.dst0w, .tmp0, .add_unaligned_size), .tmp1w, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(2), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ss, .mul, .dst0x, .src0x, .src1d, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .{ .scalar_float = .{ .of = .dword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ss, .mul, .dst0x, .src1d, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .mul, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._ps, .mul, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_ps, .mul, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_8_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_ps, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_ps, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_ps, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .dword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f32, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_sd, .mul, .dst0x, .src0x, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._sd, .mul, .dst0x, .src1q, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0q, ._, ._, ._ }, + .{ ._, .f_, .mul, .src1q, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0q, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .mul, .dst0x, .src0x, .src1x, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mut_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_mut_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_mut_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._pd, .mul, .dst0x, .src1x, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_sse, .mem, .none } }, + .{ .src = .{ .mem, .to_sse, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .to_sse, .to_sse, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .sse } }, .unused }, + .each = .{ .once = &.{ + .{ ._, .v_pd, .mul, .dst0y, .src0y, .src1y, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .yword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_4_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_pd, .mova, .tmp1y, .memia(.src0y, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_pd, .mul, .tmp1y, .tmp1y, .memia(.src1y, .tmp0, .add_unaligned_size), ._ }, + .{ ._, .v_pd, .mova, .memia(.dst0y, .tmp0, .add_unaligned_size), .tmp1y, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(32), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .vector_2_f64, .kind = .{ .rc = .sse } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._pd, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .mul, .tmp1x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._pd, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .{ .multiple_scalar_float = .{ .of = .qword, .is = .qword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f64, .kind = .{ .reg = .st6 } }, + .{ .type = .f64, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .mul, .memia(.src1q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0q, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .mem, .mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .ld, .src1t, ._, ._, ._ }, + .{ ._, .f_p, .mul, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_x87, .mem, .none }, .commute = .{ 0, 1 } }, + .{ .src = .{ .mem, .to_x87, .none } }, + .{ .src = .{ .to_x87, .to_x87, .none } }, + }, + .extra_temps = .{ + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .rc = .x87 }, .unused }, + .each = .{ .once = &.{ + .{ ._, .f_, .ld, .src0t, ._, ._, ._ }, + .{ ._, .f_, .mul, .tmp0t, .src1t, ._, ._ }, + .{ ._, .f_p, .st, .dst0t, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .x87, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .tbyte } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f80, .kind = .{ .reg = .st6 } }, + .{ .type = .f80, .kind = .{ .reg = .st7 } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .f_, .ld, .memia(.src0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_, .ld, .memia(.src1t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, .f_p, .mul, ._, ._, ._, ._ }, + .{ ._, .f_p, .st, .memia(.dst0t, .tmp0, .add_unaligned_size), ._, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .{ .to_reg = .xmm0 }, .{ .to_reg = .xmm1 }, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .call, .tmp0d, ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .avx, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", .v_dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, .v_dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, .v_dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse2, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._dqa, .mov, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._dqa, .mov, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._dqa, .mov, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .sse, null, null, null }, + .src_constraints = .{ + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .{ .multiple_scalar_float = .{ .of = .xword, .is = .xword } }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .to_mem, .none } }, + }, + .call_frame = .{ .alignment = .@"16" }, + .extra_temps = .{ + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .f128, .kind = .{ .reg = .xmm0 } }, + .{ .type = .f128, .kind = .{ .reg = .xmm1 } }, + .{ .type = .usize, .kind = .{ .symbol = &.{ .name = "__multf3" } } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true, .caller_preserved = .ccc }, + .each = .{ .once = &.{ + .{ ._, ._, .mov, .tmp0p, .sa(.src0, .sub_unaligned_size), ._, ._ }, + .{ .@"0:", ._ps, .mova, .tmp1x, .memia(.src0x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._ps, .mova, .tmp2x, .memia(.src1x, .tmp0, .add_unaligned_size), ._, ._ }, + .{ ._, ._, .call, .tmp3d, ._, ._, ._ }, + .{ ._, ._ps, .mova, .memia(.dst0x, .tmp0, .add_unaligned_size), .tmp1x, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(16), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {}", .{ + @tagName(air_tag), + ty.fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + res[0].wrapInt(cg) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select wrap {} {} {}", .{ + cg.typeOf(bin_op.lhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, .div_float, .div_float_optimized, .div_exact, .div_exact_optimized => |air_tag| if (use_old) try cg.airMulDivBinOp(inst, switch (air_tag) { else => unreachable, .div_float, .div_float_optimized => .div_float, @@ -32065,7 +34759,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32089,7 +34783,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32113,7 +34807,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32141,7 +34835,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32170,7 +34864,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32199,7 +34893,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32266,7 +34960,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32292,7 +34986,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32318,7 +35012,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32348,7 +35042,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32379,7 +35073,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32410,7 +35104,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32480,7 +35174,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32506,7 +35200,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32532,7 +35226,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32562,7 +35256,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32593,7 +35287,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32624,7 +35318,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32694,7 +35388,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -32720,7 +35414,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -32746,7 +35440,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32773,7 +35467,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32802,7 +35496,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -32871,7 +35565,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -32898,7 +35592,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -32925,7 +35619,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -32953,7 +35647,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -32984,7 +35678,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -33056,7 +35750,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33083,7 +35777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33110,7 +35804,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -33139,7 +35833,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, @@ -33170,7 +35864,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .word, .smear = 8 } } }, - .{ .type = .vector_16_u8, .kind = .reverse_bits }, + .{ .type = .vector_16_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .unused, .unused, @@ -33242,7 +35936,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33268,7 +35962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33294,7 +35988,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -33322,7 +36016,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, - .{ .type = .vector_32_u8, .kind = .reverse_bits }, + .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, .unused, @@ -33392,7 +36086,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33419,7 +36113,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33446,7 +36140,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -33475,7 +36169,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, - .{ .type = .vector_32_u8, .kind = .reverse_bits }, + .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, .unused, @@ -33548,7 +36242,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33575,7 +36269,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33602,7 +36296,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, .unused, @@ -33631,7 +36325,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }, .extra_temps = .{ .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .dword, .smear = 8 } } }, - .{ .type = .vector_32_u8, .kind = .reverse_bits }, + .{ .type = .vector_32_u8, .kind = .reverse_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, .unused, @@ -33704,7 +36398,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33730,7 +36424,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33756,7 +36450,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .unused, .unused, .unused, @@ -33827,7 +36521,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, .unused, .unused, @@ -33855,7 +36549,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .unused, .unused, .unused, @@ -33929,7 +36623,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33956,7 +36650,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .qword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -33983,7 +36677,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .unused, .unused, .unused, @@ -34057,7 +36751,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -34083,7 +36777,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -34109,7 +36803,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, @@ -34142,7 +36836,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, @@ -34175,7 +36869,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .vector_16_u8, .kind = .{ .mut_rc = .{ .ref = .src0, .rc = .sse } } }, @@ -34208,7 +36902,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_mut_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, @@ -34241,7 +36935,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_32_u8, .kind = .forward_bits }, + .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -34268,7 +36962,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .{ .src = .{ .to_sse, .none, .none } }, }, .extra_temps = .{ - .{ .type = .vector_32_u8, .kind = .forward_bits }, + .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .unused, @@ -34297,7 +36991,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .extra_temps = .{ .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_32_u8, .kind = .forward_bits }, + .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, @@ -34333,7 +37027,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .extra_temps = .{ .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_32_u8, .kind = .forward_bits }, + .{ .type = .vector_32_u8, .kind = .forward_bits_mem }, .{ .type = .vector_32_u8, .kind = .{ .pshufb_bswap_mem = .{ .repeat = 2, .size = .xword } } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, .{ .type = .vector_32_u8, .kind = .{ .rc = .sse } }, @@ -34369,7 +37063,7 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { .extra_temps = .{ .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, - .{ .type = .vector_16_u8, .kind = .forward_bits }, + .{ .type = .vector_16_u8, .kind = .forward_bits_mem }, .{ .type = .vector_16_u8, .kind = .{ .pshufb_bswap_mem = .{ .size = .xword } } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, .{ .type = .vector_16_u8, .kind = .{ .rc = .sse } }, @@ -106842,10 +109536,11 @@ const Select = struct { f64_0x1p52_0x1p84_mem, u32_0x1p52_hi_0x1p84_hi_0_0_mem, f32_0_0x1p64_mem, - pshufb_trunc_mem: struct { from: Memory.Size, to: Memory.Size }, + pshufb_trunc_mem: struct { of: Memory.Size = .none, from: Memory.Size, to: Memory.Size }, + pand_trunc_mem: struct { from: Memory.Size, to: Memory.Size }, pshufb_bswap_mem: struct { repeat: u4 = 1, size: Memory.Size, smear: u4 = 1 }, - forward_bits, - reverse_bits, + forward_bits_mem, + reverse_bits_mem, frame: FrameIndex, lazy_symbol: struct { kind: link.File.LazySymbol.Kind, ref: Select.Operand.Ref = .none }, symbol: *const struct { lib: ?[]const u8 = null, name: []const u8 }, @@ -107061,17 +109756,40 @@ const Select = struct { const zcu = pt.zcu; assert(spec.type.isVector(zcu)); assert(spec.type.childType(zcu).toIntern() == .u8_type); - var bytes: [16]u8 = @splat(1 << 7); + var elem_buf: [32]u8 = @splat(1 << 7); + const elems = elem_buf[0..spec.type.vectorLen(zcu)]; + const of_bytes: u32 = @intCast(switch (trunc_spec.of) { + .none => elems.len, + else => |of| @divExact(of.bitSize(cg.target), 8), + }); const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8)); const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8)); var from_index: u32 = 0; var to_index: u32 = 0; - while (from_index < bytes.len) { - for (0..to_bytes) |byte_off| bytes[to_index + byte_off] = @intCast(from_index + byte_off); + while (from_index < of_bytes) : ({ from_index += from_bytes; - to_index += to_bytes; - } - const elems = bytes[0..spec.type.vectorLen(zcu)]; + switch (from_index % 16) { + 0 => to_index = from_index, + else => to_index += to_bytes, + } + }) for (0..to_bytes) |byte_off| { + elems[to_index + byte_off] = @as(u4, @truncate(from_index + byte_off)); + }; + return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ + .ty = spec.type.toIntern(), + .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, + } }))), true }; + }, + .pand_trunc_mem => |trunc_spec| { + const zcu = pt.zcu; + assert(spec.type.isVector(zcu)); + assert(spec.type.childType(zcu).toIntern() == .u8_type); + var elem_buf: [32]u8 = @splat(0); + const elems = elem_buf[0..spec.type.vectorLen(zcu)]; + const from_bytes: u32 = @intCast(@divExact(trunc_spec.from.bitSize(cg.target), 8)); + const to_bytes: u32 = @intCast(@divExact(trunc_spec.to.bitSize(cg.target), 8)); + var index: u32 = 0; + while (index < elems.len) : (index += from_bytes) @memset(elems[index..][0..to_bytes], std.math.maxInt(u8)); return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ .ty = spec.type.toIntern(), .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, @@ -107081,20 +109799,20 @@ const Select = struct { const zcu = pt.zcu; assert(spec.type.isVector(zcu)); assert(spec.type.childType(zcu).toIntern() == .u8_type); - var bytes: [32]u8 = @splat(1 << 7); + var elem_buf: [32]u8 = @splat(1 << 7); + const elems = elem_buf[0..spec.type.vectorLen(zcu)]; const len: usize = @intCast(@divExact(bswap_spec.size.bitSize(cg.target), 8)); var to_index: u32 = 0; for (0..bswap_spec.repeat) |_| for (0..len) |from_index| { - @memset(bytes[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index)); + @memset(elems[to_index..][0..bswap_spec.smear], @intCast(len - 1 - from_index)); to_index += bswap_spec.smear; }; - const elems = bytes[0..spec.type.vectorLen(zcu)]; return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ .ty = spec.type.toIntern(), .storage = .{ .bytes = try zcu.intern_pool.getOrPutString(zcu.gpa, pt.tid, elems, .maybe_embedded_nulls) }, } }))), true }; }, - .forward_bits, .reverse_bits => { + .forward_bits_mem, .reverse_bits_mem => { const zcu = pt.zcu; assert(spec.type.isVector(zcu)); assert(spec.type.childType(zcu).toIntern() == .u8_type); @@ -107102,8 +109820,8 @@ const Select = struct { const elems = bytes[0..spec.type.vectorLen(zcu)]; for (elems, 0..) |*elem, index| elem.* = switch (spec.kind) { else => unreachable, - .forward_bits => @as(u8, 1 << 0) << @truncate(index), - .reverse_bits => @as(u8, 1 << 7) >> @truncate(index), + .forward_bits_mem => @as(u8, 1 << 0) << @truncate(index), + .reverse_bits_mem => @as(u8, 1 << 7) >> @truncate(index), }; return .{ try cg.tempMemFromValue(.fromInterned(try pt.intern(.{ .aggregate = .{ .ty = spec.type.toIntern(), diff --git a/src/arch/x86_64/Lower.zig b/src/arch/x86_64/Lower.zig index 6a8b5efcf8..ae0e3dc48d 100644 --- a/src/arch/x86_64/Lower.zig +++ b/src/arch/x86_64/Lower.zig @@ -579,7 +579,7 @@ fn generic(lower: *Lower, inst: Mir.Inst) Error!void { .rrri => inst.data.rrri.fixes, .rri_s, .rri_u => inst.data.rri.fixes, .ri_s, .ri_u, .ri_64, .ir => inst.data.ri.fixes, - .rm, .rmi_s, .mr => inst.data.rx.fixes, + .rm, .rmi_s, .rmi_u, .mr => inst.data.rx.fixes, .mrr, .rrm, .rmr => inst.data.rrx.fixes, .rmi, .mri => inst.data.rix.fixes, .rrmr => inst.data.rrrx.fixes, diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig index ec1bf40e0c..451bbc7818 100644 --- a/src/codegen/c/Type.zig +++ b/src/codegen/c/Type.zig @@ -1474,6 +1474,66 @@ pub const Pool = struct { }; return pool.fromFields(allocator, .@"struct", &fields, kind); }, + .vector_1_u8_type => { + const vector_ctype = try pool.getVector(allocator, .{ + .elem_ctype = .u8, + .len = 1, + }); + if (!kind.isParameter()) return vector_ctype; + var fields = [_]Info.Field{ + .{ + .name = .{ .index = .array }, + .ctype = vector_ctype, + .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .vector_2_u8_type => { + const vector_ctype = try pool.getVector(allocator, .{ + .elem_ctype = .u8, + .len = 2, + }); + if (!kind.isParameter()) return vector_ctype; + var fields = [_]Info.Field{ + .{ + .name = .{ .index = .array }, + .ctype = vector_ctype, + .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .vector_4_u8_type => { + const vector_ctype = try pool.getVector(allocator, .{ + .elem_ctype = .u8, + .len = 4, + }); + if (!kind.isParameter()) return vector_ctype; + var fields = [_]Info.Field{ + .{ + .name = .{ .index = .array }, + .ctype = vector_ctype, + .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, + .vector_8_u8_type => { + const vector_ctype = try pool.getVector(allocator, .{ + .elem_ctype = .u8, + .len = 8, + }); + if (!kind.isParameter()) return vector_ctype; + var fields = [_]Info.Field{ + .{ + .name = .{ .index = .array }, + .ctype = vector_ctype, + .alignas = AlignAs.fromAbiAlignment(Type.u8.abiAlignment(zcu)), + }, + }; + return pool.fromFields(allocator, .@"struct", &fields, kind); + }, .vector_16_u8_type => { const vector_ctype = try pool.getVector(allocator, .{ .elem_ctype = .u8, diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index 36b0717bf0..515cb3b922 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -21684,6 +21684,15 @@ test mulUnsafe { try test_mul_unsafe.testIntVectors(); } +inline fn mulWrap(comptime Type: type, lhs: Type, rhs: Type) Type { + return lhs *% rhs; +} +test mulWrap { + const test_mul_wrap = binary(mulWrap, .{}); + try test_mul_wrap.testInts(); + try test_mul_wrap.testIntVectors(); +} + inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) { return lhs * rhs; } diff --git a/test/cases/compile_errors/@import_zon_bad_type.zig b/test/cases/compile_errors/@import_zon_bad_type.zig index 93529f4951..edbacf7cb1 100644 --- a/test/cases/compile_errors/@import_zon_bad_type.zig +++ b/test/cases/compile_errors/@import_zon_bad_type.zig @@ -117,9 +117,9 @@ export fn testMutablePointer() void { // tmp.zig:37:38: note: imported here // neg_inf.zon:1:1: error: expected type '?u8' // tmp.zig:57:28: note: imported here -// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_487' +// neg_inf.zon:1:1: error: expected type 'tmp.testNonExhaustiveEnum__enum_491' // tmp.zig:62:39: note: imported here -// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_489' +// neg_inf.zon:1:1: error: expected type 'tmp.testUntaggedUnion__union_493' // tmp.zig:67:44: note: imported here -// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_492' +// neg_inf.zon:1:1: error: expected type 'tmp.testTaggedUnionVoid__union_496' // tmp.zig:72:50: note: imported here diff --git a/test/cases/compile_errors/anytype_param_requires_comptime.zig b/test/cases/compile_errors/anytype_param_requires_comptime.zig index abe4d95790..637bdb9be2 100644 --- a/test/cases/compile_errors/anytype_param_requires_comptime.zig +++ b/test/cases/compile_errors/anytype_param_requires_comptime.zig @@ -15,6 +15,6 @@ pub export fn entry() void { // error // // :7:25: error: unable to resolve comptime value -// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_461.C' must be comptime-known +// :7:25: note: initializer of comptime-only struct 'tmp.S.foo__anon_465.C' must be comptime-known // :4:16: note: struct requires comptime because of this field // :4:16: note: types are not available at runtime diff --git a/test/cases/compile_errors/bogus_method_call_on_slice.zig b/test/cases/compile_errors/bogus_method_call_on_slice.zig index bfc1c48893..ee758f2755 100644 --- a/test/cases/compile_errors/bogus_method_call_on_slice.zig +++ b/test/cases/compile_errors/bogus_method_call_on_slice.zig @@ -16,5 +16,5 @@ pub export fn entry2() void { // // :3:6: error: no field or member function named 'copy' in '[]const u8' // :9:8: error: no field or member function named 'bar' in '@TypeOf(.{})' -// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_465' +// :12:18: error: no field or member function named 'bar' in 'tmp.entry2__struct_469' // :12:6: note: struct declared here diff --git a/test/cases/compile_errors/coerce_anon_struct.zig b/test/cases/compile_errors/coerce_anon_struct.zig index 596f7c13ec..af8d949500 100644 --- a/test/cases/compile_errors/coerce_anon_struct.zig +++ b/test/cases/compile_errors/coerce_anon_struct.zig @@ -6,6 +6,6 @@ export fn foo() void { // error // -// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_454' +// :4:16: error: expected type 'tmp.T', found 'tmp.foo__struct_458' // :3:16: note: struct declared here // :1:11: note: struct declared here diff --git a/test/cases/compile_errors/redundant_try.zig b/test/cases/compile_errors/redundant_try.zig index 832ef24894..4127a36a1d 100644 --- a/test/cases/compile_errors/redundant_try.zig +++ b/test/cases/compile_errors/redundant_try.zig @@ -44,9 +44,9 @@ comptime { // // :5:23: error: expected error union type, found 'comptime_int' // :10:23: error: expected error union type, found '@TypeOf(.{})' -// :15:23: error: expected error union type, found 'tmp.test2__struct_491' +// :15:23: error: expected error union type, found 'tmp.test2__struct_495' // :15:23: note: struct declared here -// :20:27: error: expected error union type, found 'tmp.test3__struct_493' +// :20:27: error: expected error union type, found 'tmp.test3__struct_497' // :20:27: note: struct declared here // :25:23: error: expected error union type, found 'struct { comptime *const [5:0]u8 = "hello" }' // :31:13: error: expected error union type, found 'u32' From 8e15321c7cd2386dd63533fd3cbc31ec32873d83 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Wed, 12 Mar 2025 08:31:12 -0400 Subject: [PATCH 3/6] behavior: split up x86_64 math tests --- test/behavior/x86_64/binary.zig | 5715 ++++++++ test/behavior/x86_64/build.zig | 4 +- test/behavior/x86_64/cast.zig | 14565 ++++++++++++++++++++ test/behavior/x86_64/math.zig | 22096 +----------------------------- test/behavior/x86_64/unary.zig | 1820 +++ 5 files changed, 22124 insertions(+), 22076 deletions(-) create mode 100644 test/behavior/x86_64/binary.zig create mode 100644 test/behavior/x86_64/cast.zig create mode 100644 test/behavior/x86_64/unary.zig diff --git a/test/behavior/x86_64/binary.zig b/test/behavior/x86_64/binary.zig new file mode 100644 index 0000000000..9a8a946edb --- /dev/null +++ b/test/behavior/x86_64/binary.zig @@ -0,0 +1,5715 @@ +const AddOneBit = math.AddOneBit; +const checkExpected = math.checkExpected; +const Compare = math.Compare; +const DoubleBits = math.DoubleBits; +const fmax = math.fmax; +const fmin = math.fmin; +const Gpr = math.Gpr; +const inf = math.inf; +const math = @import("math.zig"); +const nan = math.nan; +const Scalar = math.Scalar; +const sign = math.sign; +const Sse = math.Sse; +const tmin = math.tmin; + +fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type { + return struct { + // noinline so that `mem_lhs` and `mem_rhs` are on the stack + noinline fn testArgKinds( + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + comptime Type: type, + comptime imm_lhs: Type, + mem_lhs: Type, + comptime imm_rhs: Type, + mem_rhs: Type, + ) !void { + const expected = comptime op(Type, imm_lhs, imm_rhs); + var reg_lhs = mem_lhs; + var reg_rhs = mem_rhs; + _ = .{ ®_lhs, ®_rhs }; + try checkExpected(expected, op(Type, reg_lhs, reg_rhs), opts.compare); + try checkExpected(expected, op(Type, reg_lhs, mem_rhs), opts.compare); + try checkExpected(expected, op(Type, reg_lhs, imm_rhs), opts.compare); + try checkExpected(expected, op(Type, mem_lhs, reg_rhs), opts.compare); + try checkExpected(expected, op(Type, mem_lhs, mem_rhs), opts.compare); + try checkExpected(expected, op(Type, mem_lhs, imm_rhs), opts.compare); + try checkExpected(expected, op(Type, imm_lhs, reg_rhs), opts.compare); + try checkExpected(expected, op(Type, imm_lhs, mem_rhs), opts.compare); + } + // noinline for a more helpful stack trace + noinline fn testArgs(comptime Type: type, comptime imm_lhs: Type, comptime imm_rhs: Type) !void { + try testArgKinds( + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + Type, + imm_lhs, + imm_lhs, + imm_rhs, + imm_rhs, + ); + } + fn testInts() !void { + try testArgs(i4, 0x3, 0x2); + try testArgs(u4, 0xe, 0x6); + try testArgs(i8, 0x48, 0x6c); + try testArgs(u8, 0xbb, 0x43); + try testArgs(i16, -0x0fdf, 0x302e); + try testArgs(u16, 0xb8bf, 0x626d); + try testArgs(i32, -0x6280178f, 0x6802c034); + try testArgs(u32, 0x80d7a2c6, 0xbff6a402); + try testArgs(i64, 0x0365a53b8ee0c987, -0x1bb6d3013500a7d2); + try testArgs(u64, 0x71138bc6b4a38898, 0x1bc4043de9438c7b); + try testArgs(i128, 0x76d428c46cdeaa2ac43de8abffb22f6d, 0x427f7545abe434a12544fdbe2a012889); + try testArgs(u128, 0xe05fc132ef2cd8affee00a907f0a851f, 0x29f912a72cfc6a7c6973426a9636da9a); + try testArgs(i256, -0x53d4148cee74ea43477a65b3daa7b8fdadcbf4508e793f4af113b8d8da5a7eb6, -0x30dcbaf7b9b7a3df033694e6795444d842fb0b8f79bc18b3ea8a6b7ccad3ea91); + try testArgs(u256, 0xb7935f5c2f3b1ae7a422c0a7c446884294b7d5370bada307d2fe5a4c4284a999, 0x310e6e196ba4f143b8d285ca6addf7f3bb3344224aff221b27607a31e148be08); + try testArgs(i258, -0x0eee283365108dbeea0bec82f5147418d8ffe86f9eed00e414b4eccd65c21239a, -0x122c730073fc29a24cd6e3e6263566879bc5325d8566b8db31fcb4a76f7ab95eb); + try testArgs(u258, 0x186d5ddaab8cb8cb04e5b41e36f812e039d008baf49f12894c39e29a07796d800, 0x2072daba6ffad168826163eb136f6d28ca4360c8e7e5e41e29755e19e4753a4f5); + try testArgs(i495, 0x2fe6bc5448c55ce18252e2c9d44777505dfe63ff249a8027a6626c7d8dd9893fd5731e51474727be556f757facb586a4e04bbc0148c6c7ad692302f46fbd, -0x016a358821ef8240172f3a08e8830c06e6bcf2225f5f4d41ed42b44d249385f55cc594e1278ecac31c73faed890e5054af1a561483bb1bb6fb1f753514cf); + try testArgs(u495, 0x6eaf4e252b3bf74b75bac59e0b43ca5326bad2a25b3fdb74a67ef132ac5e47d72eebc3316fb2351ee66c50dc5afb92a75cea9b0e35160652c7db39eeb158, 0x49fbed744a92b549d8c05bb3512c617d24dd824f3f69bdf3923bc326a75674b85f5b828d2566fab9c86f571d12c2a63c9164feb0d191d27905533d09622a); + try testArgs(i512, -0x3a6876ca92775286c6e1504a64a9b8d56985bebf4a1b66539d404e0e96f24b226f70c4bcff295fdc2043b82513b2052dc45fd78f7e9e80e5b3e101757289f054, 0x5080c516a819bd32a0a5f0976441bbfbcf89e77684f1f10eb326aeb28e1f8d593278cff60fc99b8ffc87d8696882c64728dd3c322b7142803f4341f85a03bc10); + try testArgs(u512, 0xe5b1fedca3c77db765e517aabd05ffc524a3a8aff1784bbf67c45b894447ede32b65b9940e78173c591e56e078932d465f235aece7ad47b7f229df7ba8f12295, 0x8b4bb7c2969e3b121cc1082c442f8b4330f0a50058438fed56447175bb10178607ecfe425cb54dacc25ef26810f3e04681de1844f1aa8d029aca75d658634806); + } + fn testFloats() !void { + @setEvalBranchQuota(21_700); + + try testArgs(f16, -nan(f16), -nan(f16)); + try testArgs(f16, -nan(f16), -inf(f16)); + try testArgs(f16, -nan(f16), -fmax(f16)); + try testArgs(f16, -nan(f16), -1e1); + try testArgs(f16, -nan(f16), -1e0); + try testArgs(f16, -nan(f16), -1e-1); + try testArgs(f16, -nan(f16), -fmin(f16)); + try testArgs(f16, -nan(f16), -tmin(f16)); + try testArgs(f16, -nan(f16), -0.0); + try testArgs(f16, -nan(f16), 0.0); + try testArgs(f16, -nan(f16), tmin(f16)); + try testArgs(f16, -nan(f16), fmin(f16)); + try testArgs(f16, -nan(f16), 1e-1); + try testArgs(f16, -nan(f16), 1e0); + try testArgs(f16, -nan(f16), 1e1); + try testArgs(f16, -nan(f16), fmax(f16)); + try testArgs(f16, -nan(f16), inf(f16)); + try testArgs(f16, -nan(f16), nan(f16)); + + try testArgs(f16, -inf(f16), -nan(f16)); + try testArgs(f16, -inf(f16), -inf(f16)); + try testArgs(f16, -inf(f16), -fmax(f16)); + try testArgs(f16, -inf(f16), -1e1); + try testArgs(f16, -inf(f16), -1e0); + try testArgs(f16, -inf(f16), -1e-1); + try testArgs(f16, -inf(f16), -fmin(f16)); + try testArgs(f16, -inf(f16), -tmin(f16)); + try testArgs(f16, -inf(f16), -0.0); + try testArgs(f16, -inf(f16), 0.0); + try testArgs(f16, -inf(f16), tmin(f16)); + try testArgs(f16, -inf(f16), fmin(f16)); + try testArgs(f16, -inf(f16), 1e-1); + try testArgs(f16, -inf(f16), 1e0); + try testArgs(f16, -inf(f16), 1e1); + try testArgs(f16, -inf(f16), fmax(f16)); + try testArgs(f16, -inf(f16), inf(f16)); + try testArgs(f16, -inf(f16), nan(f16)); + + try testArgs(f16, -fmax(f16), -nan(f16)); + try testArgs(f16, -fmax(f16), -inf(f16)); + try testArgs(f16, -fmax(f16), -fmax(f16)); + try testArgs(f16, -fmax(f16), -1e1); + try testArgs(f16, -fmax(f16), -1e0); + try testArgs(f16, -fmax(f16), -1e-1); + try testArgs(f16, -fmax(f16), -fmin(f16)); + try testArgs(f16, -fmax(f16), -tmin(f16)); + try testArgs(f16, -fmax(f16), -0.0); + try testArgs(f16, -fmax(f16), 0.0); + try testArgs(f16, -fmax(f16), tmin(f16)); + try testArgs(f16, -fmax(f16), fmin(f16)); + try testArgs(f16, -fmax(f16), 1e-1); + try testArgs(f16, -fmax(f16), 1e0); + try testArgs(f16, -fmax(f16), 1e1); + try testArgs(f16, -fmax(f16), fmax(f16)); + try testArgs(f16, -fmax(f16), inf(f16)); + try testArgs(f16, -fmax(f16), nan(f16)); + + try testArgs(f16, -1e1, -nan(f16)); + try testArgs(f16, -1e1, -inf(f16)); + try testArgs(f16, -1e1, -fmax(f16)); + try testArgs(f16, -1e1, -1e1); + try testArgs(f16, -1e1, -1e0); + try testArgs(f16, -1e1, -1e-1); + try testArgs(f16, -1e1, -fmin(f16)); + try testArgs(f16, -1e1, -tmin(f16)); + try testArgs(f16, -1e1, -0.0); + try testArgs(f16, -1e1, 0.0); + try testArgs(f16, -1e1, tmin(f16)); + try testArgs(f16, -1e1, fmin(f16)); + try testArgs(f16, -1e1, 1e-1); + try testArgs(f16, -1e1, 1e0); + try testArgs(f16, -1e1, 1e1); + try testArgs(f16, -1e1, fmax(f16)); + try testArgs(f16, -1e1, inf(f16)); + try testArgs(f16, -1e1, nan(f16)); + + try testArgs(f16, -1e0, -nan(f16)); + try testArgs(f16, -1e0, -inf(f16)); + try testArgs(f16, -1e0, -fmax(f16)); + try testArgs(f16, -1e0, -1e1); + try testArgs(f16, -1e0, -1e0); + try testArgs(f16, -1e0, -1e-1); + try testArgs(f16, -1e0, -fmin(f16)); + try testArgs(f16, -1e0, -tmin(f16)); + try testArgs(f16, -1e0, -0.0); + try testArgs(f16, -1e0, 0.0); + try testArgs(f16, -1e0, tmin(f16)); + try testArgs(f16, -1e0, fmin(f16)); + try testArgs(f16, -1e0, 1e-1); + try testArgs(f16, -1e0, 1e0); + try testArgs(f16, -1e0, 1e1); + try testArgs(f16, -1e0, fmax(f16)); + try testArgs(f16, -1e0, inf(f16)); + try testArgs(f16, -1e0, nan(f16)); + + try testArgs(f16, -1e-1, -nan(f16)); + try testArgs(f16, -1e-1, -inf(f16)); + try testArgs(f16, -1e-1, -fmax(f16)); + try testArgs(f16, -1e-1, -1e1); + try testArgs(f16, -1e-1, -1e0); + try testArgs(f16, -1e-1, -1e-1); + try testArgs(f16, -1e-1, -fmin(f16)); + try testArgs(f16, -1e-1, -tmin(f16)); + try testArgs(f16, -1e-1, -0.0); + try testArgs(f16, -1e-1, 0.0); + try testArgs(f16, -1e-1, tmin(f16)); + try testArgs(f16, -1e-1, fmin(f16)); + try testArgs(f16, -1e-1, 1e-1); + try testArgs(f16, -1e-1, 1e0); + try testArgs(f16, -1e-1, 1e1); + try testArgs(f16, -1e-1, fmax(f16)); + try testArgs(f16, -1e-1, inf(f16)); + try testArgs(f16, -1e-1, nan(f16)); + + try testArgs(f16, -fmin(f16), -nan(f16)); + try testArgs(f16, -fmin(f16), -inf(f16)); + try testArgs(f16, -fmin(f16), -fmax(f16)); + try testArgs(f16, -fmin(f16), -1e1); + try testArgs(f16, -fmin(f16), -1e0); + try testArgs(f16, -fmin(f16), -1e-1); + try testArgs(f16, -fmin(f16), -fmin(f16)); + try testArgs(f16, -fmin(f16), -tmin(f16)); + try testArgs(f16, -fmin(f16), -0.0); + try testArgs(f16, -fmin(f16), 0.0); + try testArgs(f16, -fmin(f16), tmin(f16)); + try testArgs(f16, -fmin(f16), fmin(f16)); + try testArgs(f16, -fmin(f16), 1e-1); + try testArgs(f16, -fmin(f16), 1e0); + try testArgs(f16, -fmin(f16), 1e1); + try testArgs(f16, -fmin(f16), fmax(f16)); + try testArgs(f16, -fmin(f16), inf(f16)); + try testArgs(f16, -fmin(f16), nan(f16)); + + try testArgs(f16, -tmin(f16), -nan(f16)); + try testArgs(f16, -tmin(f16), -inf(f16)); + try testArgs(f16, -tmin(f16), -fmax(f16)); + try testArgs(f16, -tmin(f16), -1e1); + try testArgs(f16, -tmin(f16), -1e0); + try testArgs(f16, -tmin(f16), -1e-1); + try testArgs(f16, -tmin(f16), -fmin(f16)); + try testArgs(f16, -tmin(f16), -tmin(f16)); + try testArgs(f16, -tmin(f16), -0.0); + try testArgs(f16, -tmin(f16), 0.0); + try testArgs(f16, -tmin(f16), tmin(f16)); + try testArgs(f16, -tmin(f16), fmin(f16)); + try testArgs(f16, -tmin(f16), 1e-1); + try testArgs(f16, -tmin(f16), 1e0); + try testArgs(f16, -tmin(f16), 1e1); + try testArgs(f16, -tmin(f16), fmax(f16)); + try testArgs(f16, -tmin(f16), inf(f16)); + try testArgs(f16, -tmin(f16), nan(f16)); + + try testArgs(f16, -0.0, -nan(f16)); + try testArgs(f16, -0.0, -inf(f16)); + try testArgs(f16, -0.0, -fmax(f16)); + try testArgs(f16, -0.0, -1e1); + try testArgs(f16, -0.0, -1e0); + try testArgs(f16, -0.0, -1e-1); + try testArgs(f16, -0.0, -fmin(f16)); + try testArgs(f16, -0.0, -tmin(f16)); + try testArgs(f16, -0.0, -0.0); + try testArgs(f16, -0.0, 0.0); + try testArgs(f16, -0.0, tmin(f16)); + try testArgs(f16, -0.0, fmin(f16)); + try testArgs(f16, -0.0, 1e-1); + try testArgs(f16, -0.0, 1e0); + try testArgs(f16, -0.0, 1e1); + try testArgs(f16, -0.0, fmax(f16)); + try testArgs(f16, -0.0, inf(f16)); + try testArgs(f16, -0.0, nan(f16)); + + try testArgs(f16, 0.0, -nan(f16)); + try testArgs(f16, 0.0, -inf(f16)); + try testArgs(f16, 0.0, -fmax(f16)); + try testArgs(f16, 0.0, -1e1); + try testArgs(f16, 0.0, -1e0); + try testArgs(f16, 0.0, -1e-1); + try testArgs(f16, 0.0, -fmin(f16)); + try testArgs(f16, 0.0, -tmin(f16)); + try testArgs(f16, 0.0, -0.0); + try testArgs(f16, 0.0, 0.0); + try testArgs(f16, 0.0, tmin(f16)); + try testArgs(f16, 0.0, fmin(f16)); + try testArgs(f16, 0.0, 1e-1); + try testArgs(f16, 0.0, 1e0); + try testArgs(f16, 0.0, 1e1); + try testArgs(f16, 0.0, fmax(f16)); + try testArgs(f16, 0.0, inf(f16)); + try testArgs(f16, 0.0, nan(f16)); + + try testArgs(f16, tmin(f16), -nan(f16)); + try testArgs(f16, tmin(f16), -inf(f16)); + try testArgs(f16, tmin(f16), -fmax(f16)); + try testArgs(f16, tmin(f16), -1e1); + try testArgs(f16, tmin(f16), -1e0); + try testArgs(f16, tmin(f16), -1e-1); + try testArgs(f16, tmin(f16), -fmin(f16)); + try testArgs(f16, tmin(f16), -tmin(f16)); + try testArgs(f16, tmin(f16), -0.0); + try testArgs(f16, tmin(f16), 0.0); + try testArgs(f16, tmin(f16), tmin(f16)); + try testArgs(f16, tmin(f16), fmin(f16)); + try testArgs(f16, tmin(f16), 1e-1); + try testArgs(f16, tmin(f16), 1e0); + try testArgs(f16, tmin(f16), 1e1); + try testArgs(f16, tmin(f16), fmax(f16)); + try testArgs(f16, tmin(f16), inf(f16)); + try testArgs(f16, tmin(f16), nan(f16)); + + try testArgs(f16, fmin(f16), -nan(f16)); + try testArgs(f16, fmin(f16), -inf(f16)); + try testArgs(f16, fmin(f16), -fmax(f16)); + try testArgs(f16, fmin(f16), -1e1); + try testArgs(f16, fmin(f16), -1e0); + try testArgs(f16, fmin(f16), -1e-1); + try testArgs(f16, fmin(f16), -fmin(f16)); + try testArgs(f16, fmin(f16), -tmin(f16)); + try testArgs(f16, fmin(f16), -0.0); + try testArgs(f16, fmin(f16), 0.0); + try testArgs(f16, fmin(f16), tmin(f16)); + try testArgs(f16, fmin(f16), fmin(f16)); + try testArgs(f16, fmin(f16), 1e-1); + try testArgs(f16, fmin(f16), 1e0); + try testArgs(f16, fmin(f16), 1e1); + try testArgs(f16, fmin(f16), fmax(f16)); + try testArgs(f16, fmin(f16), inf(f16)); + try testArgs(f16, fmin(f16), nan(f16)); + + try testArgs(f16, 1e-1, -nan(f16)); + try testArgs(f16, 1e-1, -inf(f16)); + try testArgs(f16, 1e-1, -fmax(f16)); + try testArgs(f16, 1e-1, -1e1); + try testArgs(f16, 1e-1, -1e0); + try testArgs(f16, 1e-1, -1e-1); + try testArgs(f16, 1e-1, -fmin(f16)); + try testArgs(f16, 1e-1, -tmin(f16)); + try testArgs(f16, 1e-1, -0.0); + try testArgs(f16, 1e-1, 0.0); + try testArgs(f16, 1e-1, tmin(f16)); + try testArgs(f16, 1e-1, fmin(f16)); + try testArgs(f16, 1e-1, 1e-1); + try testArgs(f16, 1e-1, 1e0); + try testArgs(f16, 1e-1, 1e1); + try testArgs(f16, 1e-1, fmax(f16)); + try testArgs(f16, 1e-1, inf(f16)); + try testArgs(f16, 1e-1, nan(f16)); + + try testArgs(f16, 1e0, -nan(f16)); + try testArgs(f16, 1e0, -inf(f16)); + try testArgs(f16, 1e0, -fmax(f16)); + try testArgs(f16, 1e0, -1e1); + try testArgs(f16, 1e0, -1e0); + try testArgs(f16, 1e0, -1e-1); + try testArgs(f16, 1e0, -fmin(f16)); + try testArgs(f16, 1e0, -tmin(f16)); + try testArgs(f16, 1e0, -0.0); + try testArgs(f16, 1e0, 0.0); + try testArgs(f16, 1e0, tmin(f16)); + try testArgs(f16, 1e0, fmin(f16)); + try testArgs(f16, 1e0, 1e-1); + try testArgs(f16, 1e0, 1e0); + try testArgs(f16, 1e0, 1e1); + try testArgs(f16, 1e0, fmax(f16)); + try testArgs(f16, 1e0, inf(f16)); + try testArgs(f16, 1e0, nan(f16)); + + try testArgs(f16, 1e1, -nan(f16)); + try testArgs(f16, 1e1, -inf(f16)); + try testArgs(f16, 1e1, -fmax(f16)); + try testArgs(f16, 1e1, -1e1); + try testArgs(f16, 1e1, -1e0); + try testArgs(f16, 1e1, -1e-1); + try testArgs(f16, 1e1, -fmin(f16)); + try testArgs(f16, 1e1, -tmin(f16)); + try testArgs(f16, 1e1, -0.0); + try testArgs(f16, 1e1, 0.0); + try testArgs(f16, 1e1, tmin(f16)); + try testArgs(f16, 1e1, fmin(f16)); + try testArgs(f16, 1e1, 1e-1); + try testArgs(f16, 1e1, 1e0); + try testArgs(f16, 1e1, 1e1); + try testArgs(f16, 1e1, fmax(f16)); + try testArgs(f16, 1e1, inf(f16)); + try testArgs(f16, 1e1, nan(f16)); + + try testArgs(f16, fmax(f16), -nan(f16)); + try testArgs(f16, fmax(f16), -inf(f16)); + try testArgs(f16, fmax(f16), -fmax(f16)); + try testArgs(f16, fmax(f16), -1e1); + try testArgs(f16, fmax(f16), -1e0); + try testArgs(f16, fmax(f16), -1e-1); + try testArgs(f16, fmax(f16), -fmin(f16)); + try testArgs(f16, fmax(f16), -tmin(f16)); + try testArgs(f16, fmax(f16), -0.0); + try testArgs(f16, fmax(f16), 0.0); + try testArgs(f16, fmax(f16), tmin(f16)); + try testArgs(f16, fmax(f16), fmin(f16)); + try testArgs(f16, fmax(f16), 1e-1); + try testArgs(f16, fmax(f16), 1e0); + try testArgs(f16, fmax(f16), 1e1); + try testArgs(f16, fmax(f16), fmax(f16)); + try testArgs(f16, fmax(f16), inf(f16)); + try testArgs(f16, fmax(f16), nan(f16)); + + try testArgs(f16, inf(f16), -nan(f16)); + try testArgs(f16, inf(f16), -inf(f16)); + try testArgs(f16, inf(f16), -fmax(f16)); + try testArgs(f16, inf(f16), -1e1); + try testArgs(f16, inf(f16), -1e0); + try testArgs(f16, inf(f16), -1e-1); + try testArgs(f16, inf(f16), -fmin(f16)); + try testArgs(f16, inf(f16), -tmin(f16)); + try testArgs(f16, inf(f16), -0.0); + try testArgs(f16, inf(f16), 0.0); + try testArgs(f16, inf(f16), tmin(f16)); + try testArgs(f16, inf(f16), fmin(f16)); + try testArgs(f16, inf(f16), 1e-1); + try testArgs(f16, inf(f16), 1e0); + try testArgs(f16, inf(f16), 1e1); + try testArgs(f16, inf(f16), fmax(f16)); + try testArgs(f16, inf(f16), inf(f16)); + try testArgs(f16, inf(f16), nan(f16)); + + try testArgs(f16, nan(f16), -nan(f16)); + try testArgs(f16, nan(f16), -inf(f16)); + try testArgs(f16, nan(f16), -fmax(f16)); + try testArgs(f16, nan(f16), -1e1); + try testArgs(f16, nan(f16), -1e0); + try testArgs(f16, nan(f16), -1e-1); + try testArgs(f16, nan(f16), -fmin(f16)); + try testArgs(f16, nan(f16), -tmin(f16)); + try testArgs(f16, nan(f16), -0.0); + try testArgs(f16, nan(f16), 0.0); + try testArgs(f16, nan(f16), tmin(f16)); + try testArgs(f16, nan(f16), fmin(f16)); + try testArgs(f16, nan(f16), 1e-1); + try testArgs(f16, nan(f16), 1e0); + try testArgs(f16, nan(f16), 1e1); + try testArgs(f16, nan(f16), fmax(f16)); + try testArgs(f16, nan(f16), inf(f16)); + try testArgs(f16, nan(f16), nan(f16)); + + try testArgs(f32, -nan(f32), -nan(f32)); + try testArgs(f32, -nan(f32), -inf(f32)); + try testArgs(f32, -nan(f32), -fmax(f32)); + try testArgs(f32, -nan(f32), -1e1); + try testArgs(f32, -nan(f32), -1e0); + try testArgs(f32, -nan(f32), -1e-1); + try testArgs(f32, -nan(f32), -fmin(f32)); + try testArgs(f32, -nan(f32), -tmin(f32)); + try testArgs(f32, -nan(f32), -0.0); + try testArgs(f32, -nan(f32), 0.0); + try testArgs(f32, -nan(f32), tmin(f32)); + try testArgs(f32, -nan(f32), fmin(f32)); + try testArgs(f32, -nan(f32), 1e-1); + try testArgs(f32, -nan(f32), 1e0); + try testArgs(f32, -nan(f32), 1e1); + try testArgs(f32, -nan(f32), fmax(f32)); + try testArgs(f32, -nan(f32), inf(f32)); + try testArgs(f32, -nan(f32), nan(f32)); + + try testArgs(f32, -inf(f32), -nan(f32)); + try testArgs(f32, -inf(f32), -inf(f32)); + try testArgs(f32, -inf(f32), -fmax(f32)); + try testArgs(f32, -inf(f32), -1e1); + try testArgs(f32, -inf(f32), -1e0); + try testArgs(f32, -inf(f32), -1e-1); + try testArgs(f32, -inf(f32), -fmin(f32)); + try testArgs(f32, -inf(f32), -tmin(f32)); + try testArgs(f32, -inf(f32), -0.0); + try testArgs(f32, -inf(f32), 0.0); + try testArgs(f32, -inf(f32), tmin(f32)); + try testArgs(f32, -inf(f32), fmin(f32)); + try testArgs(f32, -inf(f32), 1e-1); + try testArgs(f32, -inf(f32), 1e0); + try testArgs(f32, -inf(f32), 1e1); + try testArgs(f32, -inf(f32), fmax(f32)); + try testArgs(f32, -inf(f32), inf(f32)); + try testArgs(f32, -inf(f32), nan(f32)); + + try testArgs(f32, -fmax(f32), -nan(f32)); + try testArgs(f32, -fmax(f32), -inf(f32)); + try testArgs(f32, -fmax(f32), -fmax(f32)); + try testArgs(f32, -fmax(f32), -1e1); + try testArgs(f32, -fmax(f32), -1e0); + try testArgs(f32, -fmax(f32), -1e-1); + try testArgs(f32, -fmax(f32), -fmin(f32)); + try testArgs(f32, -fmax(f32), -tmin(f32)); + try testArgs(f32, -fmax(f32), -0.0); + try testArgs(f32, -fmax(f32), 0.0); + try testArgs(f32, -fmax(f32), tmin(f32)); + try testArgs(f32, -fmax(f32), fmin(f32)); + try testArgs(f32, -fmax(f32), 1e-1); + try testArgs(f32, -fmax(f32), 1e0); + try testArgs(f32, -fmax(f32), 1e1); + try testArgs(f32, -fmax(f32), fmax(f32)); + try testArgs(f32, -fmax(f32), inf(f32)); + try testArgs(f32, -fmax(f32), nan(f32)); + + try testArgs(f32, -1e1, -nan(f32)); + try testArgs(f32, -1e1, -inf(f32)); + try testArgs(f32, -1e1, -fmax(f32)); + try testArgs(f32, -1e1, -1e1); + try testArgs(f32, -1e1, -1e0); + try testArgs(f32, -1e1, -1e-1); + try testArgs(f32, -1e1, -fmin(f32)); + try testArgs(f32, -1e1, -tmin(f32)); + try testArgs(f32, -1e1, -0.0); + try testArgs(f32, -1e1, 0.0); + try testArgs(f32, -1e1, tmin(f32)); + try testArgs(f32, -1e1, fmin(f32)); + try testArgs(f32, -1e1, 1e-1); + try testArgs(f32, -1e1, 1e0); + try testArgs(f32, -1e1, 1e1); + try testArgs(f32, -1e1, fmax(f32)); + try testArgs(f32, -1e1, inf(f32)); + try testArgs(f32, -1e1, nan(f32)); + + try testArgs(f32, -1e0, -nan(f32)); + try testArgs(f32, -1e0, -inf(f32)); + try testArgs(f32, -1e0, -fmax(f32)); + try testArgs(f32, -1e0, -1e1); + try testArgs(f32, -1e0, -1e0); + try testArgs(f32, -1e0, -1e-1); + try testArgs(f32, -1e0, -fmin(f32)); + try testArgs(f32, -1e0, -tmin(f32)); + try testArgs(f32, -1e0, -0.0); + try testArgs(f32, -1e0, 0.0); + try testArgs(f32, -1e0, tmin(f32)); + try testArgs(f32, -1e0, fmin(f32)); + try testArgs(f32, -1e0, 1e-1); + try testArgs(f32, -1e0, 1e0); + try testArgs(f32, -1e0, 1e1); + try testArgs(f32, -1e0, fmax(f32)); + try testArgs(f32, -1e0, inf(f32)); + try testArgs(f32, -1e0, nan(f32)); + + try testArgs(f32, -1e-1, -nan(f32)); + try testArgs(f32, -1e-1, -inf(f32)); + try testArgs(f32, -1e-1, -fmax(f32)); + try testArgs(f32, -1e-1, -1e1); + try testArgs(f32, -1e-1, -1e0); + try testArgs(f32, -1e-1, -1e-1); + try testArgs(f32, -1e-1, -fmin(f32)); + try testArgs(f32, -1e-1, -tmin(f32)); + try testArgs(f32, -1e-1, -0.0); + try testArgs(f32, -1e-1, 0.0); + try testArgs(f32, -1e-1, tmin(f32)); + try testArgs(f32, -1e-1, fmin(f32)); + try testArgs(f32, -1e-1, 1e-1); + try testArgs(f32, -1e-1, 1e0); + try testArgs(f32, -1e-1, 1e1); + try testArgs(f32, -1e-1, fmax(f32)); + try testArgs(f32, -1e-1, inf(f32)); + try testArgs(f32, -1e-1, nan(f32)); + + try testArgs(f32, -fmin(f32), -nan(f32)); + try testArgs(f32, -fmin(f32), -inf(f32)); + try testArgs(f32, -fmin(f32), -fmax(f32)); + try testArgs(f32, -fmin(f32), -1e1); + try testArgs(f32, -fmin(f32), -1e0); + try testArgs(f32, -fmin(f32), -1e-1); + try testArgs(f32, -fmin(f32), -fmin(f32)); + try testArgs(f32, -fmin(f32), -tmin(f32)); + try testArgs(f32, -fmin(f32), -0.0); + try testArgs(f32, -fmin(f32), 0.0); + try testArgs(f32, -fmin(f32), tmin(f32)); + try testArgs(f32, -fmin(f32), fmin(f32)); + try testArgs(f32, -fmin(f32), 1e-1); + try testArgs(f32, -fmin(f32), 1e0); + try testArgs(f32, -fmin(f32), 1e1); + try testArgs(f32, -fmin(f32), fmax(f32)); + try testArgs(f32, -fmin(f32), inf(f32)); + try testArgs(f32, -fmin(f32), nan(f32)); + + try testArgs(f32, -tmin(f32), -nan(f32)); + try testArgs(f32, -tmin(f32), -inf(f32)); + try testArgs(f32, -tmin(f32), -fmax(f32)); + try testArgs(f32, -tmin(f32), -1e1); + try testArgs(f32, -tmin(f32), -1e0); + try testArgs(f32, -tmin(f32), -1e-1); + try testArgs(f32, -tmin(f32), -fmin(f32)); + try testArgs(f32, -tmin(f32), -tmin(f32)); + try testArgs(f32, -tmin(f32), -0.0); + try testArgs(f32, -tmin(f32), 0.0); + try testArgs(f32, -tmin(f32), tmin(f32)); + try testArgs(f32, -tmin(f32), fmin(f32)); + try testArgs(f32, -tmin(f32), 1e-1); + try testArgs(f32, -tmin(f32), 1e0); + try testArgs(f32, -tmin(f32), 1e1); + try testArgs(f32, -tmin(f32), fmax(f32)); + try testArgs(f32, -tmin(f32), inf(f32)); + try testArgs(f32, -tmin(f32), nan(f32)); + + try testArgs(f32, -0.0, -nan(f32)); + try testArgs(f32, -0.0, -inf(f32)); + try testArgs(f32, -0.0, -fmax(f32)); + try testArgs(f32, -0.0, -1e1); + try testArgs(f32, -0.0, -1e0); + try testArgs(f32, -0.0, -1e-1); + try testArgs(f32, -0.0, -fmin(f32)); + try testArgs(f32, -0.0, -tmin(f32)); + try testArgs(f32, -0.0, -0.0); + try testArgs(f32, -0.0, 0.0); + try testArgs(f32, -0.0, tmin(f32)); + try testArgs(f32, -0.0, fmin(f32)); + try testArgs(f32, -0.0, 1e-1); + try testArgs(f32, -0.0, 1e0); + try testArgs(f32, -0.0, 1e1); + try testArgs(f32, -0.0, fmax(f32)); + try testArgs(f32, -0.0, inf(f32)); + try testArgs(f32, -0.0, nan(f32)); + + try testArgs(f32, 0.0, -nan(f32)); + try testArgs(f32, 0.0, -inf(f32)); + try testArgs(f32, 0.0, -fmax(f32)); + try testArgs(f32, 0.0, -1e1); + try testArgs(f32, 0.0, -1e0); + try testArgs(f32, 0.0, -1e-1); + try testArgs(f32, 0.0, -fmin(f32)); + try testArgs(f32, 0.0, -tmin(f32)); + try testArgs(f32, 0.0, -0.0); + try testArgs(f32, 0.0, 0.0); + try testArgs(f32, 0.0, tmin(f32)); + try testArgs(f32, 0.0, fmin(f32)); + try testArgs(f32, 0.0, 1e-1); + try testArgs(f32, 0.0, 1e0); + try testArgs(f32, 0.0, 1e1); + try testArgs(f32, 0.0, fmax(f32)); + try testArgs(f32, 0.0, inf(f32)); + try testArgs(f32, 0.0, nan(f32)); + + try testArgs(f32, tmin(f32), -nan(f32)); + try testArgs(f32, tmin(f32), -inf(f32)); + try testArgs(f32, tmin(f32), -fmax(f32)); + try testArgs(f32, tmin(f32), -1e1); + try testArgs(f32, tmin(f32), -1e0); + try testArgs(f32, tmin(f32), -1e-1); + try testArgs(f32, tmin(f32), -fmin(f32)); + try testArgs(f32, tmin(f32), -tmin(f32)); + try testArgs(f32, tmin(f32), -0.0); + try testArgs(f32, tmin(f32), 0.0); + try testArgs(f32, tmin(f32), tmin(f32)); + try testArgs(f32, tmin(f32), fmin(f32)); + try testArgs(f32, tmin(f32), 1e-1); + try testArgs(f32, tmin(f32), 1e0); + try testArgs(f32, tmin(f32), 1e1); + try testArgs(f32, tmin(f32), fmax(f32)); + try testArgs(f32, tmin(f32), inf(f32)); + try testArgs(f32, tmin(f32), nan(f32)); + + try testArgs(f32, fmin(f32), -nan(f32)); + try testArgs(f32, fmin(f32), -inf(f32)); + try testArgs(f32, fmin(f32), -fmax(f32)); + try testArgs(f32, fmin(f32), -1e1); + try testArgs(f32, fmin(f32), -1e0); + try testArgs(f32, fmin(f32), -1e-1); + try testArgs(f32, fmin(f32), -fmin(f32)); + try testArgs(f32, fmin(f32), -tmin(f32)); + try testArgs(f32, fmin(f32), -0.0); + try testArgs(f32, fmin(f32), 0.0); + try testArgs(f32, fmin(f32), tmin(f32)); + try testArgs(f32, fmin(f32), fmin(f32)); + try testArgs(f32, fmin(f32), 1e-1); + try testArgs(f32, fmin(f32), 1e0); + try testArgs(f32, fmin(f32), 1e1); + try testArgs(f32, fmin(f32), fmax(f32)); + try testArgs(f32, fmin(f32), inf(f32)); + try testArgs(f32, fmin(f32), nan(f32)); + + try testArgs(f32, 1e-1, -nan(f32)); + try testArgs(f32, 1e-1, -inf(f32)); + try testArgs(f32, 1e-1, -fmax(f32)); + try testArgs(f32, 1e-1, -1e1); + try testArgs(f32, 1e-1, -1e0); + try testArgs(f32, 1e-1, -1e-1); + try testArgs(f32, 1e-1, -fmin(f32)); + try testArgs(f32, 1e-1, -tmin(f32)); + try testArgs(f32, 1e-1, -0.0); + try testArgs(f32, 1e-1, 0.0); + try testArgs(f32, 1e-1, tmin(f32)); + try testArgs(f32, 1e-1, fmin(f32)); + try testArgs(f32, 1e-1, 1e-1); + try testArgs(f32, 1e-1, 1e0); + try testArgs(f32, 1e-1, 1e1); + try testArgs(f32, 1e-1, fmax(f32)); + try testArgs(f32, 1e-1, inf(f32)); + try testArgs(f32, 1e-1, nan(f32)); + + try testArgs(f32, 1e0, -nan(f32)); + try testArgs(f32, 1e0, -inf(f32)); + try testArgs(f32, 1e0, -fmax(f32)); + try testArgs(f32, 1e0, -1e1); + try testArgs(f32, 1e0, -1e0); + try testArgs(f32, 1e0, -1e-1); + try testArgs(f32, 1e0, -fmin(f32)); + try testArgs(f32, 1e0, -tmin(f32)); + try testArgs(f32, 1e0, -0.0); + try testArgs(f32, 1e0, 0.0); + try testArgs(f32, 1e0, tmin(f32)); + try testArgs(f32, 1e0, fmin(f32)); + try testArgs(f32, 1e0, 1e-1); + try testArgs(f32, 1e0, 1e0); + try testArgs(f32, 1e0, 1e1); + try testArgs(f32, 1e0, fmax(f32)); + try testArgs(f32, 1e0, inf(f32)); + try testArgs(f32, 1e0, nan(f32)); + + try testArgs(f32, 1e1, -nan(f32)); + try testArgs(f32, 1e1, -inf(f32)); + try testArgs(f32, 1e1, -fmax(f32)); + try testArgs(f32, 1e1, -1e1); + try testArgs(f32, 1e1, -1e0); + try testArgs(f32, 1e1, -1e-1); + try testArgs(f32, 1e1, -fmin(f32)); + try testArgs(f32, 1e1, -tmin(f32)); + try testArgs(f32, 1e1, -0.0); + try testArgs(f32, 1e1, 0.0); + try testArgs(f32, 1e1, tmin(f32)); + try testArgs(f32, 1e1, fmin(f32)); + try testArgs(f32, 1e1, 1e-1); + try testArgs(f32, 1e1, 1e0); + try testArgs(f32, 1e1, 1e1); + try testArgs(f32, 1e1, fmax(f32)); + try testArgs(f32, 1e1, inf(f32)); + try testArgs(f32, 1e1, nan(f32)); + + try testArgs(f32, fmax(f32), -nan(f32)); + try testArgs(f32, fmax(f32), -inf(f32)); + try testArgs(f32, fmax(f32), -fmax(f32)); + try testArgs(f32, fmax(f32), -1e1); + try testArgs(f32, fmax(f32), -1e0); + try testArgs(f32, fmax(f32), -1e-1); + try testArgs(f32, fmax(f32), -fmin(f32)); + try testArgs(f32, fmax(f32), -tmin(f32)); + try testArgs(f32, fmax(f32), -0.0); + try testArgs(f32, fmax(f32), 0.0); + try testArgs(f32, fmax(f32), tmin(f32)); + try testArgs(f32, fmax(f32), fmin(f32)); + try testArgs(f32, fmax(f32), 1e-1); + try testArgs(f32, fmax(f32), 1e0); + try testArgs(f32, fmax(f32), 1e1); + try testArgs(f32, fmax(f32), fmax(f32)); + try testArgs(f32, fmax(f32), inf(f32)); + try testArgs(f32, fmax(f32), nan(f32)); + + try testArgs(f32, inf(f32), -nan(f32)); + try testArgs(f32, inf(f32), -inf(f32)); + try testArgs(f32, inf(f32), -fmax(f32)); + try testArgs(f32, inf(f32), -1e1); + try testArgs(f32, inf(f32), -1e0); + try testArgs(f32, inf(f32), -1e-1); + try testArgs(f32, inf(f32), -fmin(f32)); + try testArgs(f32, inf(f32), -tmin(f32)); + try testArgs(f32, inf(f32), -0.0); + try testArgs(f32, inf(f32), 0.0); + try testArgs(f32, inf(f32), tmin(f32)); + try testArgs(f32, inf(f32), fmin(f32)); + try testArgs(f32, inf(f32), 1e-1); + try testArgs(f32, inf(f32), 1e0); + try testArgs(f32, inf(f32), 1e1); + try testArgs(f32, inf(f32), fmax(f32)); + try testArgs(f32, inf(f32), inf(f32)); + try testArgs(f32, inf(f32), nan(f32)); + + try testArgs(f32, nan(f32), -nan(f32)); + try testArgs(f32, nan(f32), -inf(f32)); + try testArgs(f32, nan(f32), -fmax(f32)); + try testArgs(f32, nan(f32), -1e1); + try testArgs(f32, nan(f32), -1e0); + try testArgs(f32, nan(f32), -1e-1); + try testArgs(f32, nan(f32), -fmin(f32)); + try testArgs(f32, nan(f32), -tmin(f32)); + try testArgs(f32, nan(f32), -0.0); + try testArgs(f32, nan(f32), 0.0); + try testArgs(f32, nan(f32), tmin(f32)); + try testArgs(f32, nan(f32), fmin(f32)); + try testArgs(f32, nan(f32), 1e-1); + try testArgs(f32, nan(f32), 1e0); + try testArgs(f32, nan(f32), 1e1); + try testArgs(f32, nan(f32), fmax(f32)); + try testArgs(f32, nan(f32), inf(f32)); + try testArgs(f32, nan(f32), nan(f32)); + + try testArgs(f64, -nan(f64), -nan(f64)); + try testArgs(f64, -nan(f64), -inf(f64)); + try testArgs(f64, -nan(f64), -fmax(f64)); + try testArgs(f64, -nan(f64), -1e1); + try testArgs(f64, -nan(f64), -1e0); + try testArgs(f64, -nan(f64), -1e-1); + try testArgs(f64, -nan(f64), -fmin(f64)); + try testArgs(f64, -nan(f64), -tmin(f64)); + try testArgs(f64, -nan(f64), -0.0); + try testArgs(f64, -nan(f64), 0.0); + try testArgs(f64, -nan(f64), tmin(f64)); + try testArgs(f64, -nan(f64), fmin(f64)); + try testArgs(f64, -nan(f64), 1e-1); + try testArgs(f64, -nan(f64), 1e0); + try testArgs(f64, -nan(f64), 1e1); + try testArgs(f64, -nan(f64), fmax(f64)); + try testArgs(f64, -nan(f64), inf(f64)); + try testArgs(f64, -nan(f64), nan(f64)); + + try testArgs(f64, -inf(f64), -nan(f64)); + try testArgs(f64, -inf(f64), -inf(f64)); + try testArgs(f64, -inf(f64), -fmax(f64)); + try testArgs(f64, -inf(f64), -1e1); + try testArgs(f64, -inf(f64), -1e0); + try testArgs(f64, -inf(f64), -1e-1); + try testArgs(f64, -inf(f64), -fmin(f64)); + try testArgs(f64, -inf(f64), -tmin(f64)); + try testArgs(f64, -inf(f64), -0.0); + try testArgs(f64, -inf(f64), 0.0); + try testArgs(f64, -inf(f64), tmin(f64)); + try testArgs(f64, -inf(f64), fmin(f64)); + try testArgs(f64, -inf(f64), 1e-1); + try testArgs(f64, -inf(f64), 1e0); + try testArgs(f64, -inf(f64), 1e1); + try testArgs(f64, -inf(f64), fmax(f64)); + try testArgs(f64, -inf(f64), inf(f64)); + try testArgs(f64, -inf(f64), nan(f64)); + + try testArgs(f64, -fmax(f64), -nan(f64)); + try testArgs(f64, -fmax(f64), -inf(f64)); + try testArgs(f64, -fmax(f64), -fmax(f64)); + try testArgs(f64, -fmax(f64), -1e1); + try testArgs(f64, -fmax(f64), -1e0); + try testArgs(f64, -fmax(f64), -1e-1); + try testArgs(f64, -fmax(f64), -fmin(f64)); + try testArgs(f64, -fmax(f64), -tmin(f64)); + try testArgs(f64, -fmax(f64), -0.0); + try testArgs(f64, -fmax(f64), 0.0); + try testArgs(f64, -fmax(f64), tmin(f64)); + try testArgs(f64, -fmax(f64), fmin(f64)); + try testArgs(f64, -fmax(f64), 1e-1); + try testArgs(f64, -fmax(f64), 1e0); + try testArgs(f64, -fmax(f64), 1e1); + try testArgs(f64, -fmax(f64), fmax(f64)); + try testArgs(f64, -fmax(f64), inf(f64)); + try testArgs(f64, -fmax(f64), nan(f64)); + + try testArgs(f64, -1e1, -nan(f64)); + try testArgs(f64, -1e1, -inf(f64)); + try testArgs(f64, -1e1, -fmax(f64)); + try testArgs(f64, -1e1, -1e1); + try testArgs(f64, -1e1, -1e0); + try testArgs(f64, -1e1, -1e-1); + try testArgs(f64, -1e1, -fmin(f64)); + try testArgs(f64, -1e1, -tmin(f64)); + try testArgs(f64, -1e1, -0.0); + try testArgs(f64, -1e1, 0.0); + try testArgs(f64, -1e1, tmin(f64)); + try testArgs(f64, -1e1, fmin(f64)); + try testArgs(f64, -1e1, 1e-1); + try testArgs(f64, -1e1, 1e0); + try testArgs(f64, -1e1, 1e1); + try testArgs(f64, -1e1, fmax(f64)); + try testArgs(f64, -1e1, inf(f64)); + try testArgs(f64, -1e1, nan(f64)); + + try testArgs(f64, -1e0, -nan(f64)); + try testArgs(f64, -1e0, -inf(f64)); + try testArgs(f64, -1e0, -fmax(f64)); + try testArgs(f64, -1e0, -1e1); + try testArgs(f64, -1e0, -1e0); + try testArgs(f64, -1e0, -1e-1); + try testArgs(f64, -1e0, -fmin(f64)); + try testArgs(f64, -1e0, -tmin(f64)); + try testArgs(f64, -1e0, -0.0); + try testArgs(f64, -1e0, 0.0); + try testArgs(f64, -1e0, tmin(f64)); + try testArgs(f64, -1e0, fmin(f64)); + try testArgs(f64, -1e0, 1e-1); + try testArgs(f64, -1e0, 1e0); + try testArgs(f64, -1e0, 1e1); + try testArgs(f64, -1e0, fmax(f64)); + try testArgs(f64, -1e0, inf(f64)); + try testArgs(f64, -1e0, nan(f64)); + + try testArgs(f64, -1e-1, -nan(f64)); + try testArgs(f64, -1e-1, -inf(f64)); + try testArgs(f64, -1e-1, -fmax(f64)); + try testArgs(f64, -1e-1, -1e1); + try testArgs(f64, -1e-1, -1e0); + try testArgs(f64, -1e-1, -1e-1); + try testArgs(f64, -1e-1, -fmin(f64)); + try testArgs(f64, -1e-1, -tmin(f64)); + try testArgs(f64, -1e-1, -0.0); + try testArgs(f64, -1e-1, 0.0); + try testArgs(f64, -1e-1, tmin(f64)); + try testArgs(f64, -1e-1, fmin(f64)); + try testArgs(f64, -1e-1, 1e-1); + try testArgs(f64, -1e-1, 1e0); + try testArgs(f64, -1e-1, 1e1); + try testArgs(f64, -1e-1, fmax(f64)); + try testArgs(f64, -1e-1, inf(f64)); + try testArgs(f64, -1e-1, nan(f64)); + + try testArgs(f64, -fmin(f64), -nan(f64)); + try testArgs(f64, -fmin(f64), -inf(f64)); + try testArgs(f64, -fmin(f64), -fmax(f64)); + try testArgs(f64, -fmin(f64), -1e1); + try testArgs(f64, -fmin(f64), -1e0); + try testArgs(f64, -fmin(f64), -1e-1); + try testArgs(f64, -fmin(f64), -fmin(f64)); + try testArgs(f64, -fmin(f64), -tmin(f64)); + try testArgs(f64, -fmin(f64), -0.0); + try testArgs(f64, -fmin(f64), 0.0); + try testArgs(f64, -fmin(f64), tmin(f64)); + try testArgs(f64, -fmin(f64), fmin(f64)); + try testArgs(f64, -fmin(f64), 1e-1); + try testArgs(f64, -fmin(f64), 1e0); + try testArgs(f64, -fmin(f64), 1e1); + try testArgs(f64, -fmin(f64), fmax(f64)); + try testArgs(f64, -fmin(f64), inf(f64)); + try testArgs(f64, -fmin(f64), nan(f64)); + + try testArgs(f64, -tmin(f64), -nan(f64)); + try testArgs(f64, -tmin(f64), -inf(f64)); + try testArgs(f64, -tmin(f64), -fmax(f64)); + try testArgs(f64, -tmin(f64), -1e1); + try testArgs(f64, -tmin(f64), -1e0); + try testArgs(f64, -tmin(f64), -1e-1); + try testArgs(f64, -tmin(f64), -fmin(f64)); + try testArgs(f64, -tmin(f64), -tmin(f64)); + try testArgs(f64, -tmin(f64), -0.0); + try testArgs(f64, -tmin(f64), 0.0); + try testArgs(f64, -tmin(f64), tmin(f64)); + try testArgs(f64, -tmin(f64), fmin(f64)); + try testArgs(f64, -tmin(f64), 1e-1); + try testArgs(f64, -tmin(f64), 1e0); + try testArgs(f64, -tmin(f64), 1e1); + try testArgs(f64, -tmin(f64), fmax(f64)); + try testArgs(f64, -tmin(f64), inf(f64)); + try testArgs(f64, -tmin(f64), nan(f64)); + + try testArgs(f64, -0.0, -nan(f64)); + try testArgs(f64, -0.0, -inf(f64)); + try testArgs(f64, -0.0, -fmax(f64)); + try testArgs(f64, -0.0, -1e1); + try testArgs(f64, -0.0, -1e0); + try testArgs(f64, -0.0, -1e-1); + try testArgs(f64, -0.0, -fmin(f64)); + try testArgs(f64, -0.0, -tmin(f64)); + try testArgs(f64, -0.0, -0.0); + try testArgs(f64, -0.0, 0.0); + try testArgs(f64, -0.0, tmin(f64)); + try testArgs(f64, -0.0, fmin(f64)); + try testArgs(f64, -0.0, 1e-1); + try testArgs(f64, -0.0, 1e0); + try testArgs(f64, -0.0, 1e1); + try testArgs(f64, -0.0, fmax(f64)); + try testArgs(f64, -0.0, inf(f64)); + try testArgs(f64, -0.0, nan(f64)); + + try testArgs(f64, 0.0, -nan(f64)); + try testArgs(f64, 0.0, -inf(f64)); + try testArgs(f64, 0.0, -fmax(f64)); + try testArgs(f64, 0.0, -1e1); + try testArgs(f64, 0.0, -1e0); + try testArgs(f64, 0.0, -1e-1); + try testArgs(f64, 0.0, -fmin(f64)); + try testArgs(f64, 0.0, -tmin(f64)); + try testArgs(f64, 0.0, -0.0); + try testArgs(f64, 0.0, 0.0); + try testArgs(f64, 0.0, tmin(f64)); + try testArgs(f64, 0.0, fmin(f64)); + try testArgs(f64, 0.0, 1e-1); + try testArgs(f64, 0.0, 1e0); + try testArgs(f64, 0.0, 1e1); + try testArgs(f64, 0.0, fmax(f64)); + try testArgs(f64, 0.0, inf(f64)); + try testArgs(f64, 0.0, nan(f64)); + + try testArgs(f64, tmin(f64), -nan(f64)); + try testArgs(f64, tmin(f64), -inf(f64)); + try testArgs(f64, tmin(f64), -fmax(f64)); + try testArgs(f64, tmin(f64), -1e1); + try testArgs(f64, tmin(f64), -1e0); + try testArgs(f64, tmin(f64), -1e-1); + try testArgs(f64, tmin(f64), -fmin(f64)); + try testArgs(f64, tmin(f64), -tmin(f64)); + try testArgs(f64, tmin(f64), -0.0); + try testArgs(f64, tmin(f64), 0.0); + try testArgs(f64, tmin(f64), tmin(f64)); + try testArgs(f64, tmin(f64), fmin(f64)); + try testArgs(f64, tmin(f64), 1e-1); + try testArgs(f64, tmin(f64), 1e0); + try testArgs(f64, tmin(f64), 1e1); + try testArgs(f64, tmin(f64), fmax(f64)); + try testArgs(f64, tmin(f64), inf(f64)); + try testArgs(f64, tmin(f64), nan(f64)); + + try testArgs(f64, fmin(f64), -nan(f64)); + try testArgs(f64, fmin(f64), -inf(f64)); + try testArgs(f64, fmin(f64), -fmax(f64)); + try testArgs(f64, fmin(f64), -1e1); + try testArgs(f64, fmin(f64), -1e0); + try testArgs(f64, fmin(f64), -1e-1); + try testArgs(f64, fmin(f64), -fmin(f64)); + try testArgs(f64, fmin(f64), -tmin(f64)); + try testArgs(f64, fmin(f64), -0.0); + try testArgs(f64, fmin(f64), 0.0); + try testArgs(f64, fmin(f64), tmin(f64)); + try testArgs(f64, fmin(f64), fmin(f64)); + try testArgs(f64, fmin(f64), 1e-1); + try testArgs(f64, fmin(f64), 1e0); + try testArgs(f64, fmin(f64), 1e1); + try testArgs(f64, fmin(f64), fmax(f64)); + try testArgs(f64, fmin(f64), inf(f64)); + try testArgs(f64, fmin(f64), nan(f64)); + + try testArgs(f64, 1e-1, -nan(f64)); + try testArgs(f64, 1e-1, -inf(f64)); + try testArgs(f64, 1e-1, -fmax(f64)); + try testArgs(f64, 1e-1, -1e1); + try testArgs(f64, 1e-1, -1e0); + try testArgs(f64, 1e-1, -1e-1); + try testArgs(f64, 1e-1, -fmin(f64)); + try testArgs(f64, 1e-1, -tmin(f64)); + try testArgs(f64, 1e-1, -0.0); + try testArgs(f64, 1e-1, 0.0); + try testArgs(f64, 1e-1, tmin(f64)); + try testArgs(f64, 1e-1, fmin(f64)); + try testArgs(f64, 1e-1, 1e-1); + try testArgs(f64, 1e-1, 1e0); + try testArgs(f64, 1e-1, 1e1); + try testArgs(f64, 1e-1, fmax(f64)); + try testArgs(f64, 1e-1, inf(f64)); + try testArgs(f64, 1e-1, nan(f64)); + + try testArgs(f64, 1e0, -nan(f64)); + try testArgs(f64, 1e0, -inf(f64)); + try testArgs(f64, 1e0, -fmax(f64)); + try testArgs(f64, 1e0, -1e1); + try testArgs(f64, 1e0, -1e0); + try testArgs(f64, 1e0, -1e-1); + try testArgs(f64, 1e0, -fmin(f64)); + try testArgs(f64, 1e0, -tmin(f64)); + try testArgs(f64, 1e0, -0.0); + try testArgs(f64, 1e0, 0.0); + try testArgs(f64, 1e0, tmin(f64)); + try testArgs(f64, 1e0, fmin(f64)); + try testArgs(f64, 1e0, 1e-1); + try testArgs(f64, 1e0, 1e0); + try testArgs(f64, 1e0, 1e1); + try testArgs(f64, 1e0, fmax(f64)); + try testArgs(f64, 1e0, inf(f64)); + try testArgs(f64, 1e0, nan(f64)); + + try testArgs(f64, 1e1, -nan(f64)); + try testArgs(f64, 1e1, -inf(f64)); + try testArgs(f64, 1e1, -fmax(f64)); + try testArgs(f64, 1e1, -1e1); + try testArgs(f64, 1e1, -1e0); + try testArgs(f64, 1e1, -1e-1); + try testArgs(f64, 1e1, -fmin(f64)); + try testArgs(f64, 1e1, -tmin(f64)); + try testArgs(f64, 1e1, -0.0); + try testArgs(f64, 1e1, 0.0); + try testArgs(f64, 1e1, tmin(f64)); + try testArgs(f64, 1e1, fmin(f64)); + try testArgs(f64, 1e1, 1e-1); + try testArgs(f64, 1e1, 1e0); + try testArgs(f64, 1e1, 1e1); + try testArgs(f64, 1e1, fmax(f64)); + try testArgs(f64, 1e1, inf(f64)); + try testArgs(f64, 1e1, nan(f64)); + + try testArgs(f64, fmax(f64), -nan(f64)); + try testArgs(f64, fmax(f64), -inf(f64)); + try testArgs(f64, fmax(f64), -fmax(f64)); + try testArgs(f64, fmax(f64), -1e1); + try testArgs(f64, fmax(f64), -1e0); + try testArgs(f64, fmax(f64), -1e-1); + try testArgs(f64, fmax(f64), -fmin(f64)); + try testArgs(f64, fmax(f64), -tmin(f64)); + try testArgs(f64, fmax(f64), -0.0); + try testArgs(f64, fmax(f64), 0.0); + try testArgs(f64, fmax(f64), tmin(f64)); + try testArgs(f64, fmax(f64), fmin(f64)); + try testArgs(f64, fmax(f64), 1e-1); + try testArgs(f64, fmax(f64), 1e0); + try testArgs(f64, fmax(f64), 1e1); + try testArgs(f64, fmax(f64), fmax(f64)); + try testArgs(f64, fmax(f64), inf(f64)); + try testArgs(f64, fmax(f64), nan(f64)); + + try testArgs(f64, inf(f64), -nan(f64)); + try testArgs(f64, inf(f64), -inf(f64)); + try testArgs(f64, inf(f64), -fmax(f64)); + try testArgs(f64, inf(f64), -1e1); + try testArgs(f64, inf(f64), -1e0); + try testArgs(f64, inf(f64), -1e-1); + try testArgs(f64, inf(f64), -fmin(f64)); + try testArgs(f64, inf(f64), -tmin(f64)); + try testArgs(f64, inf(f64), -0.0); + try testArgs(f64, inf(f64), 0.0); + try testArgs(f64, inf(f64), tmin(f64)); + try testArgs(f64, inf(f64), fmin(f64)); + try testArgs(f64, inf(f64), 1e-1); + try testArgs(f64, inf(f64), 1e0); + try testArgs(f64, inf(f64), 1e1); + try testArgs(f64, inf(f64), fmax(f64)); + try testArgs(f64, inf(f64), inf(f64)); + try testArgs(f64, inf(f64), nan(f64)); + + try testArgs(f64, nan(f64), -nan(f64)); + try testArgs(f64, nan(f64), -inf(f64)); + try testArgs(f64, nan(f64), -fmax(f64)); + try testArgs(f64, nan(f64), -1e1); + try testArgs(f64, nan(f64), -1e0); + try testArgs(f64, nan(f64), -1e-1); + try testArgs(f64, nan(f64), -fmin(f64)); + try testArgs(f64, nan(f64), -tmin(f64)); + try testArgs(f64, nan(f64), -0.0); + try testArgs(f64, nan(f64), 0.0); + try testArgs(f64, nan(f64), tmin(f64)); + try testArgs(f64, nan(f64), fmin(f64)); + try testArgs(f64, nan(f64), 1e-1); + try testArgs(f64, nan(f64), 1e0); + try testArgs(f64, nan(f64), 1e1); + try testArgs(f64, nan(f64), fmax(f64)); + try testArgs(f64, nan(f64), inf(f64)); + try testArgs(f64, nan(f64), nan(f64)); + + try testArgs(f80, -nan(f80), -nan(f80)); + try testArgs(f80, -nan(f80), -inf(f80)); + try testArgs(f80, -nan(f80), -fmax(f80)); + try testArgs(f80, -nan(f80), -1e1); + try testArgs(f80, -nan(f80), -1e0); + try testArgs(f80, -nan(f80), -1e-1); + try testArgs(f80, -nan(f80), -fmin(f80)); + try testArgs(f80, -nan(f80), -tmin(f80)); + try testArgs(f80, -nan(f80), -0.0); + try testArgs(f80, -nan(f80), 0.0); + try testArgs(f80, -nan(f80), tmin(f80)); + try testArgs(f80, -nan(f80), fmin(f80)); + try testArgs(f80, -nan(f80), 1e-1); + try testArgs(f80, -nan(f80), 1e0); + try testArgs(f80, -nan(f80), 1e1); + try testArgs(f80, -nan(f80), fmax(f80)); + try testArgs(f80, -nan(f80), inf(f80)); + try testArgs(f80, -nan(f80), nan(f80)); + + try testArgs(f80, -inf(f80), -nan(f80)); + try testArgs(f80, -inf(f80), -inf(f80)); + try testArgs(f80, -inf(f80), -fmax(f80)); + try testArgs(f80, -inf(f80), -1e1); + try testArgs(f80, -inf(f80), -1e0); + try testArgs(f80, -inf(f80), -1e-1); + try testArgs(f80, -inf(f80), -fmin(f80)); + try testArgs(f80, -inf(f80), -tmin(f80)); + try testArgs(f80, -inf(f80), -0.0); + try testArgs(f80, -inf(f80), 0.0); + try testArgs(f80, -inf(f80), tmin(f80)); + try testArgs(f80, -inf(f80), fmin(f80)); + try testArgs(f80, -inf(f80), 1e-1); + try testArgs(f80, -inf(f80), 1e0); + try testArgs(f80, -inf(f80), 1e1); + try testArgs(f80, -inf(f80), fmax(f80)); + try testArgs(f80, -inf(f80), inf(f80)); + try testArgs(f80, -inf(f80), nan(f80)); + + try testArgs(f80, -fmax(f80), -nan(f80)); + try testArgs(f80, -fmax(f80), -inf(f80)); + try testArgs(f80, -fmax(f80), -fmax(f80)); + try testArgs(f80, -fmax(f80), -1e1); + try testArgs(f80, -fmax(f80), -1e0); + try testArgs(f80, -fmax(f80), -1e-1); + try testArgs(f80, -fmax(f80), -fmin(f80)); + try testArgs(f80, -fmax(f80), -tmin(f80)); + try testArgs(f80, -fmax(f80), -0.0); + try testArgs(f80, -fmax(f80), 0.0); + try testArgs(f80, -fmax(f80), tmin(f80)); + try testArgs(f80, -fmax(f80), fmin(f80)); + try testArgs(f80, -fmax(f80), 1e-1); + try testArgs(f80, -fmax(f80), 1e0); + try testArgs(f80, -fmax(f80), 1e1); + try testArgs(f80, -fmax(f80), fmax(f80)); + try testArgs(f80, -fmax(f80), inf(f80)); + try testArgs(f80, -fmax(f80), nan(f80)); + + try testArgs(f80, -1e1, -nan(f80)); + try testArgs(f80, -1e1, -inf(f80)); + try testArgs(f80, -1e1, -fmax(f80)); + try testArgs(f80, -1e1, -1e1); + try testArgs(f80, -1e1, -1e0); + try testArgs(f80, -1e1, -1e-1); + try testArgs(f80, -1e1, -fmin(f80)); + try testArgs(f80, -1e1, -tmin(f80)); + try testArgs(f80, -1e1, -0.0); + try testArgs(f80, -1e1, 0.0); + try testArgs(f80, -1e1, tmin(f80)); + try testArgs(f80, -1e1, fmin(f80)); + try testArgs(f80, -1e1, 1e-1); + try testArgs(f80, -1e1, 1e0); + try testArgs(f80, -1e1, 1e1); + try testArgs(f80, -1e1, fmax(f80)); + try testArgs(f80, -1e1, inf(f80)); + try testArgs(f80, -1e1, nan(f80)); + + try testArgs(f80, -1e0, -nan(f80)); + try testArgs(f80, -1e0, -inf(f80)); + try testArgs(f80, -1e0, -fmax(f80)); + try testArgs(f80, -1e0, -1e1); + try testArgs(f80, -1e0, -1e0); + try testArgs(f80, -1e0, -1e-1); + try testArgs(f80, -1e0, -fmin(f80)); + try testArgs(f80, -1e0, -tmin(f80)); + try testArgs(f80, -1e0, -0.0); + try testArgs(f80, -1e0, 0.0); + try testArgs(f80, -1e0, tmin(f80)); + try testArgs(f80, -1e0, fmin(f80)); + try testArgs(f80, -1e0, 1e-1); + try testArgs(f80, -1e0, 1e0); + try testArgs(f80, -1e0, 1e1); + try testArgs(f80, -1e0, fmax(f80)); + try testArgs(f80, -1e0, inf(f80)); + try testArgs(f80, -1e0, nan(f80)); + + try testArgs(f80, -1e-1, -nan(f80)); + try testArgs(f80, -1e-1, -inf(f80)); + try testArgs(f80, -1e-1, -fmax(f80)); + try testArgs(f80, -1e-1, -1e1); + try testArgs(f80, -1e-1, -1e0); + try testArgs(f80, -1e-1, -1e-1); + try testArgs(f80, -1e-1, -fmin(f80)); + try testArgs(f80, -1e-1, -tmin(f80)); + try testArgs(f80, -1e-1, -0.0); + try testArgs(f80, -1e-1, 0.0); + try testArgs(f80, -1e-1, tmin(f80)); + try testArgs(f80, -1e-1, fmin(f80)); + try testArgs(f80, -1e-1, 1e-1); + try testArgs(f80, -1e-1, 1e0); + try testArgs(f80, -1e-1, 1e1); + try testArgs(f80, -1e-1, fmax(f80)); + try testArgs(f80, -1e-1, inf(f80)); + try testArgs(f80, -1e-1, nan(f80)); + + try testArgs(f80, -fmin(f80), -nan(f80)); + try testArgs(f80, -fmin(f80), -inf(f80)); + try testArgs(f80, -fmin(f80), -fmax(f80)); + try testArgs(f80, -fmin(f80), -1e1); + try testArgs(f80, -fmin(f80), -1e0); + try testArgs(f80, -fmin(f80), -1e-1); + try testArgs(f80, -fmin(f80), -fmin(f80)); + try testArgs(f80, -fmin(f80), -tmin(f80)); + try testArgs(f80, -fmin(f80), -0.0); + try testArgs(f80, -fmin(f80), 0.0); + try testArgs(f80, -fmin(f80), tmin(f80)); + try testArgs(f80, -fmin(f80), fmin(f80)); + try testArgs(f80, -fmin(f80), 1e-1); + try testArgs(f80, -fmin(f80), 1e0); + try testArgs(f80, -fmin(f80), 1e1); + try testArgs(f80, -fmin(f80), fmax(f80)); + try testArgs(f80, -fmin(f80), inf(f80)); + try testArgs(f80, -fmin(f80), nan(f80)); + + try testArgs(f80, -tmin(f80), -nan(f80)); + try testArgs(f80, -tmin(f80), -inf(f80)); + try testArgs(f80, -tmin(f80), -fmax(f80)); + try testArgs(f80, -tmin(f80), -1e1); + try testArgs(f80, -tmin(f80), -1e0); + try testArgs(f80, -tmin(f80), -1e-1); + try testArgs(f80, -tmin(f80), -fmin(f80)); + try testArgs(f80, -tmin(f80), -tmin(f80)); + try testArgs(f80, -tmin(f80), -0.0); + try testArgs(f80, -tmin(f80), 0.0); + try testArgs(f80, -tmin(f80), tmin(f80)); + try testArgs(f80, -tmin(f80), fmin(f80)); + try testArgs(f80, -tmin(f80), 1e-1); + try testArgs(f80, -tmin(f80), 1e0); + try testArgs(f80, -tmin(f80), 1e1); + try testArgs(f80, -tmin(f80), fmax(f80)); + try testArgs(f80, -tmin(f80), inf(f80)); + try testArgs(f80, -tmin(f80), nan(f80)); + + try testArgs(f80, -0.0, -nan(f80)); + try testArgs(f80, -0.0, -inf(f80)); + try testArgs(f80, -0.0, -fmax(f80)); + try testArgs(f80, -0.0, -1e1); + try testArgs(f80, -0.0, -1e0); + try testArgs(f80, -0.0, -1e-1); + try testArgs(f80, -0.0, -fmin(f80)); + try testArgs(f80, -0.0, -tmin(f80)); + try testArgs(f80, -0.0, -0.0); + try testArgs(f80, -0.0, 0.0); + try testArgs(f80, -0.0, tmin(f80)); + try testArgs(f80, -0.0, fmin(f80)); + try testArgs(f80, -0.0, 1e-1); + try testArgs(f80, -0.0, 1e0); + try testArgs(f80, -0.0, 1e1); + try testArgs(f80, -0.0, fmax(f80)); + try testArgs(f80, -0.0, inf(f80)); + try testArgs(f80, -0.0, nan(f80)); + + try testArgs(f80, 0.0, -nan(f80)); + try testArgs(f80, 0.0, -inf(f80)); + try testArgs(f80, 0.0, -fmax(f80)); + try testArgs(f80, 0.0, -1e1); + try testArgs(f80, 0.0, -1e0); + try testArgs(f80, 0.0, -1e-1); + try testArgs(f80, 0.0, -fmin(f80)); + try testArgs(f80, 0.0, -tmin(f80)); + try testArgs(f80, 0.0, -0.0); + try testArgs(f80, 0.0, 0.0); + try testArgs(f80, 0.0, tmin(f80)); + try testArgs(f80, 0.0, fmin(f80)); + try testArgs(f80, 0.0, 1e-1); + try testArgs(f80, 0.0, 1e0); + try testArgs(f80, 0.0, 1e1); + try testArgs(f80, 0.0, fmax(f80)); + try testArgs(f80, 0.0, inf(f80)); + try testArgs(f80, 0.0, nan(f80)); + + try testArgs(f80, tmin(f80), -nan(f80)); + try testArgs(f80, tmin(f80), -inf(f80)); + try testArgs(f80, tmin(f80), -fmax(f80)); + try testArgs(f80, tmin(f80), -1e1); + try testArgs(f80, tmin(f80), -1e0); + try testArgs(f80, tmin(f80), -1e-1); + try testArgs(f80, tmin(f80), -fmin(f80)); + try testArgs(f80, tmin(f80), -tmin(f80)); + try testArgs(f80, tmin(f80), -0.0); + try testArgs(f80, tmin(f80), 0.0); + try testArgs(f80, tmin(f80), tmin(f80)); + try testArgs(f80, tmin(f80), fmin(f80)); + try testArgs(f80, tmin(f80), 1e-1); + try testArgs(f80, tmin(f80), 1e0); + try testArgs(f80, tmin(f80), 1e1); + try testArgs(f80, tmin(f80), fmax(f80)); + try testArgs(f80, tmin(f80), inf(f80)); + try testArgs(f80, tmin(f80), nan(f80)); + + try testArgs(f80, fmin(f80), -nan(f80)); + try testArgs(f80, fmin(f80), -inf(f80)); + try testArgs(f80, fmin(f80), -fmax(f80)); + try testArgs(f80, fmin(f80), -1e1); + try testArgs(f80, fmin(f80), -1e0); + try testArgs(f80, fmin(f80), -1e-1); + try testArgs(f80, fmin(f80), -fmin(f80)); + try testArgs(f80, fmin(f80), -tmin(f80)); + try testArgs(f80, fmin(f80), -0.0); + try testArgs(f80, fmin(f80), 0.0); + try testArgs(f80, fmin(f80), tmin(f80)); + try testArgs(f80, fmin(f80), fmin(f80)); + try testArgs(f80, fmin(f80), 1e-1); + try testArgs(f80, fmin(f80), 1e0); + try testArgs(f80, fmin(f80), 1e1); + try testArgs(f80, fmin(f80), fmax(f80)); + try testArgs(f80, fmin(f80), inf(f80)); + try testArgs(f80, fmin(f80), nan(f80)); + + try testArgs(f80, 1e-1, -nan(f80)); + try testArgs(f80, 1e-1, -inf(f80)); + try testArgs(f80, 1e-1, -fmax(f80)); + try testArgs(f80, 1e-1, -1e1); + try testArgs(f80, 1e-1, -1e0); + try testArgs(f80, 1e-1, -1e-1); + try testArgs(f80, 1e-1, -fmin(f80)); + try testArgs(f80, 1e-1, -tmin(f80)); + try testArgs(f80, 1e-1, -0.0); + try testArgs(f80, 1e-1, 0.0); + try testArgs(f80, 1e-1, tmin(f80)); + try testArgs(f80, 1e-1, fmin(f80)); + try testArgs(f80, 1e-1, 1e-1); + try testArgs(f80, 1e-1, 1e0); + try testArgs(f80, 1e-1, 1e1); + try testArgs(f80, 1e-1, fmax(f80)); + try testArgs(f80, 1e-1, inf(f80)); + try testArgs(f80, 1e-1, nan(f80)); + + try testArgs(f80, 1e0, -nan(f80)); + try testArgs(f80, 1e0, -inf(f80)); + try testArgs(f80, 1e0, -fmax(f80)); + try testArgs(f80, 1e0, -1e1); + try testArgs(f80, 1e0, -1e0); + try testArgs(f80, 1e0, -1e-1); + try testArgs(f80, 1e0, -fmin(f80)); + try testArgs(f80, 1e0, -tmin(f80)); + try testArgs(f80, 1e0, -0.0); + try testArgs(f80, 1e0, 0.0); + try testArgs(f80, 1e0, tmin(f80)); + try testArgs(f80, 1e0, fmin(f80)); + try testArgs(f80, 1e0, 1e-1); + try testArgs(f80, 1e0, 1e0); + try testArgs(f80, 1e0, 1e1); + try testArgs(f80, 1e0, fmax(f80)); + try testArgs(f80, 1e0, inf(f80)); + try testArgs(f80, 1e0, nan(f80)); + + try testArgs(f80, 1e1, -nan(f80)); + try testArgs(f80, 1e1, -inf(f80)); + try testArgs(f80, 1e1, -fmax(f80)); + try testArgs(f80, 1e1, -1e1); + try testArgs(f80, 1e1, -1e0); + try testArgs(f80, 1e1, -1e-1); + try testArgs(f80, 1e1, -fmin(f80)); + try testArgs(f80, 1e1, -tmin(f80)); + try testArgs(f80, 1e1, -0.0); + try testArgs(f80, 1e1, 0.0); + try testArgs(f80, 1e1, tmin(f80)); + try testArgs(f80, 1e1, fmin(f80)); + try testArgs(f80, 1e1, 1e-1); + try testArgs(f80, 1e1, 1e0); + try testArgs(f80, 1e1, 1e1); + try testArgs(f80, 1e1, fmax(f80)); + try testArgs(f80, 1e1, inf(f80)); + try testArgs(f80, 1e1, nan(f80)); + + try testArgs(f80, fmax(f80), -nan(f80)); + try testArgs(f80, fmax(f80), -inf(f80)); + try testArgs(f80, fmax(f80), -fmax(f80)); + try testArgs(f80, fmax(f80), -1e1); + try testArgs(f80, fmax(f80), -1e0); + try testArgs(f80, fmax(f80), -1e-1); + try testArgs(f80, fmax(f80), -fmin(f80)); + try testArgs(f80, fmax(f80), -tmin(f80)); + try testArgs(f80, fmax(f80), -0.0); + try testArgs(f80, fmax(f80), 0.0); + try testArgs(f80, fmax(f80), tmin(f80)); + try testArgs(f80, fmax(f80), fmin(f80)); + try testArgs(f80, fmax(f80), 1e-1); + try testArgs(f80, fmax(f80), 1e0); + try testArgs(f80, fmax(f80), 1e1); + try testArgs(f80, fmax(f80), fmax(f80)); + try testArgs(f80, fmax(f80), inf(f80)); + try testArgs(f80, fmax(f80), nan(f80)); + + try testArgs(f80, inf(f80), -nan(f80)); + try testArgs(f80, inf(f80), -inf(f80)); + try testArgs(f80, inf(f80), -fmax(f80)); + try testArgs(f80, inf(f80), -1e1); + try testArgs(f80, inf(f80), -1e0); + try testArgs(f80, inf(f80), -1e-1); + try testArgs(f80, inf(f80), -fmin(f80)); + try testArgs(f80, inf(f80), -tmin(f80)); + try testArgs(f80, inf(f80), -0.0); + try testArgs(f80, inf(f80), 0.0); + try testArgs(f80, inf(f80), tmin(f80)); + try testArgs(f80, inf(f80), fmin(f80)); + try testArgs(f80, inf(f80), 1e-1); + try testArgs(f80, inf(f80), 1e0); + try testArgs(f80, inf(f80), 1e1); + try testArgs(f80, inf(f80), fmax(f80)); + try testArgs(f80, inf(f80), inf(f80)); + try testArgs(f80, inf(f80), nan(f80)); + + try testArgs(f80, nan(f80), -nan(f80)); + try testArgs(f80, nan(f80), -inf(f80)); + try testArgs(f80, nan(f80), -fmax(f80)); + try testArgs(f80, nan(f80), -1e1); + try testArgs(f80, nan(f80), -1e0); + try testArgs(f80, nan(f80), -1e-1); + try testArgs(f80, nan(f80), -fmin(f80)); + try testArgs(f80, nan(f80), -tmin(f80)); + try testArgs(f80, nan(f80), -0.0); + try testArgs(f80, nan(f80), 0.0); + try testArgs(f80, nan(f80), tmin(f80)); + try testArgs(f80, nan(f80), fmin(f80)); + try testArgs(f80, nan(f80), 1e-1); + try testArgs(f80, nan(f80), 1e0); + try testArgs(f80, nan(f80), 1e1); + try testArgs(f80, nan(f80), fmax(f80)); + try testArgs(f80, nan(f80), inf(f80)); + try testArgs(f80, nan(f80), nan(f80)); + + try testArgs(f128, -nan(f128), -nan(f128)); + try testArgs(f128, -nan(f128), -inf(f128)); + try testArgs(f128, -nan(f128), -fmax(f128)); + try testArgs(f128, -nan(f128), -1e1); + try testArgs(f128, -nan(f128), -1e0); + try testArgs(f128, -nan(f128), -1e-1); + try testArgs(f128, -nan(f128), -fmin(f128)); + try testArgs(f128, -nan(f128), -tmin(f128)); + try testArgs(f128, -nan(f128), -0.0); + try testArgs(f128, -nan(f128), 0.0); + try testArgs(f128, -nan(f128), tmin(f128)); + try testArgs(f128, -nan(f128), fmin(f128)); + try testArgs(f128, -nan(f128), 1e-1); + try testArgs(f128, -nan(f128), 1e0); + try testArgs(f128, -nan(f128), 1e1); + try testArgs(f128, -nan(f128), fmax(f128)); + try testArgs(f128, -nan(f128), inf(f128)); + try testArgs(f128, -nan(f128), nan(f128)); + + try testArgs(f128, -inf(f128), -nan(f128)); + try testArgs(f128, -inf(f128), -inf(f128)); + try testArgs(f128, -inf(f128), -fmax(f128)); + try testArgs(f128, -inf(f128), -1e1); + try testArgs(f128, -inf(f128), -1e0); + try testArgs(f128, -inf(f128), -1e-1); + try testArgs(f128, -inf(f128), -fmin(f128)); + try testArgs(f128, -inf(f128), -tmin(f128)); + try testArgs(f128, -inf(f128), -0.0); + try testArgs(f128, -inf(f128), 0.0); + try testArgs(f128, -inf(f128), tmin(f128)); + try testArgs(f128, -inf(f128), fmin(f128)); + try testArgs(f128, -inf(f128), 1e-1); + try testArgs(f128, -inf(f128), 1e0); + try testArgs(f128, -inf(f128), 1e1); + try testArgs(f128, -inf(f128), fmax(f128)); + try testArgs(f128, -inf(f128), inf(f128)); + try testArgs(f128, -inf(f128), nan(f128)); + + try testArgs(f128, -fmax(f128), -nan(f128)); + try testArgs(f128, -fmax(f128), -inf(f128)); + try testArgs(f128, -fmax(f128), -fmax(f128)); + try testArgs(f128, -fmax(f128), -1e1); + try testArgs(f128, -fmax(f128), -1e0); + try testArgs(f128, -fmax(f128), -1e-1); + try testArgs(f128, -fmax(f128), -fmin(f128)); + try testArgs(f128, -fmax(f128), -tmin(f128)); + try testArgs(f128, -fmax(f128), -0.0); + try testArgs(f128, -fmax(f128), 0.0); + try testArgs(f128, -fmax(f128), tmin(f128)); + try testArgs(f128, -fmax(f128), fmin(f128)); + try testArgs(f128, -fmax(f128), 1e-1); + try testArgs(f128, -fmax(f128), 1e0); + try testArgs(f128, -fmax(f128), 1e1); + try testArgs(f128, -fmax(f128), fmax(f128)); + try testArgs(f128, -fmax(f128), inf(f128)); + try testArgs(f128, -fmax(f128), nan(f128)); + + try testArgs(f128, -1e1, -nan(f128)); + try testArgs(f128, -1e1, -inf(f128)); + try testArgs(f128, -1e1, -fmax(f128)); + try testArgs(f128, -1e1, -1e1); + try testArgs(f128, -1e1, -1e0); + try testArgs(f128, -1e1, -1e-1); + try testArgs(f128, -1e1, -fmin(f128)); + try testArgs(f128, -1e1, -tmin(f128)); + try testArgs(f128, -1e1, -0.0); + try testArgs(f128, -1e1, 0.0); + try testArgs(f128, -1e1, tmin(f128)); + try testArgs(f128, -1e1, fmin(f128)); + try testArgs(f128, -1e1, 1e-1); + try testArgs(f128, -1e1, 1e0); + try testArgs(f128, -1e1, 1e1); + try testArgs(f128, -1e1, fmax(f128)); + try testArgs(f128, -1e1, inf(f128)); + try testArgs(f128, -1e1, nan(f128)); + + try testArgs(f128, -1e0, -nan(f128)); + try testArgs(f128, -1e0, -inf(f128)); + try testArgs(f128, -1e0, -fmax(f128)); + try testArgs(f128, -1e0, -1e1); + try testArgs(f128, -1e0, -1e0); + try testArgs(f128, -1e0, -1e-1); + try testArgs(f128, -1e0, -fmin(f128)); + try testArgs(f128, -1e0, -tmin(f128)); + try testArgs(f128, -1e0, -0.0); + try testArgs(f128, -1e0, 0.0); + try testArgs(f128, -1e0, tmin(f128)); + try testArgs(f128, -1e0, fmin(f128)); + try testArgs(f128, -1e0, 1e-1); + try testArgs(f128, -1e0, 1e0); + try testArgs(f128, -1e0, 1e1); + try testArgs(f128, -1e0, fmax(f128)); + try testArgs(f128, -1e0, inf(f128)); + try testArgs(f128, -1e0, nan(f128)); + + try testArgs(f128, -1e-1, -nan(f128)); + try testArgs(f128, -1e-1, -inf(f128)); + try testArgs(f128, -1e-1, -fmax(f128)); + try testArgs(f128, -1e-1, -1e1); + try testArgs(f128, -1e-1, -1e0); + try testArgs(f128, -1e-1, -1e-1); + try testArgs(f128, -1e-1, -fmin(f128)); + try testArgs(f128, -1e-1, -tmin(f128)); + try testArgs(f128, -1e-1, -0.0); + try testArgs(f128, -1e-1, 0.0); + try testArgs(f128, -1e-1, tmin(f128)); + try testArgs(f128, -1e-1, fmin(f128)); + try testArgs(f128, -1e-1, 1e-1); + try testArgs(f128, -1e-1, 1e0); + try testArgs(f128, -1e-1, 1e1); + try testArgs(f128, -1e-1, fmax(f128)); + try testArgs(f128, -1e-1, inf(f128)); + try testArgs(f128, -1e-1, nan(f128)); + + try testArgs(f128, -fmin(f128), -nan(f128)); + try testArgs(f128, -fmin(f128), -inf(f128)); + try testArgs(f128, -fmin(f128), -fmax(f128)); + try testArgs(f128, -fmin(f128), -1e1); + try testArgs(f128, -fmin(f128), -1e0); + try testArgs(f128, -fmin(f128), -1e-1); + try testArgs(f128, -fmin(f128), -fmin(f128)); + try testArgs(f128, -fmin(f128), -tmin(f128)); + try testArgs(f128, -fmin(f128), -0.0); + try testArgs(f128, -fmin(f128), 0.0); + try testArgs(f128, -fmin(f128), tmin(f128)); + try testArgs(f128, -fmin(f128), fmin(f128)); + try testArgs(f128, -fmin(f128), 1e-1); + try testArgs(f128, -fmin(f128), 1e0); + try testArgs(f128, -fmin(f128), 1e1); + try testArgs(f128, -fmin(f128), fmax(f128)); + try testArgs(f128, -fmin(f128), inf(f128)); + try testArgs(f128, -fmin(f128), nan(f128)); + + try testArgs(f128, -tmin(f128), -nan(f128)); + try testArgs(f128, -tmin(f128), -inf(f128)); + try testArgs(f128, -tmin(f128), -fmax(f128)); + try testArgs(f128, -tmin(f128), -1e1); + try testArgs(f128, -tmin(f128), -1e0); + try testArgs(f128, -tmin(f128), -1e-1); + try testArgs(f128, -tmin(f128), -fmin(f128)); + try testArgs(f128, -tmin(f128), -tmin(f128)); + try testArgs(f128, -tmin(f128), -0.0); + try testArgs(f128, -tmin(f128), 0.0); + try testArgs(f128, -tmin(f128), tmin(f128)); + try testArgs(f128, -tmin(f128), fmin(f128)); + try testArgs(f128, -tmin(f128), 1e-1); + try testArgs(f128, -tmin(f128), 1e0); + try testArgs(f128, -tmin(f128), 1e1); + try testArgs(f128, -tmin(f128), fmax(f128)); + try testArgs(f128, -tmin(f128), inf(f128)); + try testArgs(f128, -tmin(f128), nan(f128)); + + try testArgs(f128, -0.0, -nan(f128)); + try testArgs(f128, -0.0, -inf(f128)); + try testArgs(f128, -0.0, -fmax(f128)); + try testArgs(f128, -0.0, -1e1); + try testArgs(f128, -0.0, -1e0); + try testArgs(f128, -0.0, -1e-1); + try testArgs(f128, -0.0, -fmin(f128)); + try testArgs(f128, -0.0, -tmin(f128)); + try testArgs(f128, -0.0, -0.0); + try testArgs(f128, -0.0, 0.0); + try testArgs(f128, -0.0, tmin(f128)); + try testArgs(f128, -0.0, fmin(f128)); + try testArgs(f128, -0.0, 1e-1); + try testArgs(f128, -0.0, 1e0); + try testArgs(f128, -0.0, 1e1); + try testArgs(f128, -0.0, fmax(f128)); + try testArgs(f128, -0.0, inf(f128)); + try testArgs(f128, -0.0, nan(f128)); + + try testArgs(f128, 0.0, -nan(f128)); + try testArgs(f128, 0.0, -inf(f128)); + try testArgs(f128, 0.0, -fmax(f128)); + try testArgs(f128, 0.0, -1e1); + try testArgs(f128, 0.0, -1e0); + try testArgs(f128, 0.0, -1e-1); + try testArgs(f128, 0.0, -fmin(f128)); + try testArgs(f128, 0.0, -tmin(f128)); + try testArgs(f128, 0.0, -0.0); + try testArgs(f128, 0.0, 0.0); + try testArgs(f128, 0.0, tmin(f128)); + try testArgs(f128, 0.0, fmin(f128)); + try testArgs(f128, 0.0, 1e-1); + try testArgs(f128, 0.0, 1e0); + try testArgs(f128, 0.0, 1e1); + try testArgs(f128, 0.0, fmax(f128)); + try testArgs(f128, 0.0, inf(f128)); + try testArgs(f128, 0.0, nan(f128)); + + try testArgs(f128, tmin(f128), -nan(f128)); + try testArgs(f128, tmin(f128), -inf(f128)); + try testArgs(f128, tmin(f128), -fmax(f128)); + try testArgs(f128, tmin(f128), -1e1); + try testArgs(f128, tmin(f128), -1e0); + try testArgs(f128, tmin(f128), -1e-1); + try testArgs(f128, tmin(f128), -fmin(f128)); + try testArgs(f128, tmin(f128), -tmin(f128)); + try testArgs(f128, tmin(f128), -0.0); + try testArgs(f128, tmin(f128), 0.0); + try testArgs(f128, tmin(f128), tmin(f128)); + try testArgs(f128, tmin(f128), fmin(f128)); + try testArgs(f128, tmin(f128), 1e-1); + try testArgs(f128, tmin(f128), 1e0); + try testArgs(f128, tmin(f128), 1e1); + try testArgs(f128, tmin(f128), fmax(f128)); + try testArgs(f128, tmin(f128), inf(f128)); + try testArgs(f128, tmin(f128), nan(f128)); + + try testArgs(f128, fmin(f128), -nan(f128)); + try testArgs(f128, fmin(f128), -inf(f128)); + try testArgs(f128, fmin(f128), -fmax(f128)); + try testArgs(f128, fmin(f128), -1e1); + try testArgs(f128, fmin(f128), -1e0); + try testArgs(f128, fmin(f128), -1e-1); + try testArgs(f128, fmin(f128), -fmin(f128)); + try testArgs(f128, fmin(f128), -tmin(f128)); + try testArgs(f128, fmin(f128), -0.0); + try testArgs(f128, fmin(f128), 0.0); + try testArgs(f128, fmin(f128), tmin(f128)); + try testArgs(f128, fmin(f128), fmin(f128)); + try testArgs(f128, fmin(f128), 1e-1); + try testArgs(f128, fmin(f128), 1e0); + try testArgs(f128, fmin(f128), 1e1); + try testArgs(f128, fmin(f128), fmax(f128)); + try testArgs(f128, fmin(f128), inf(f128)); + try testArgs(f128, fmin(f128), nan(f128)); + + try testArgs(f128, 1e-1, -nan(f128)); + try testArgs(f128, 1e-1, -inf(f128)); + try testArgs(f128, 1e-1, -fmax(f128)); + try testArgs(f128, 1e-1, -1e1); + try testArgs(f128, 1e-1, -1e0); + try testArgs(f128, 1e-1, -1e-1); + try testArgs(f128, 1e-1, -fmin(f128)); + try testArgs(f128, 1e-1, -tmin(f128)); + try testArgs(f128, 1e-1, -0.0); + try testArgs(f128, 1e-1, 0.0); + try testArgs(f128, 1e-1, tmin(f128)); + try testArgs(f128, 1e-1, fmin(f128)); + try testArgs(f128, 1e-1, 1e-1); + try testArgs(f128, 1e-1, 1e0); + try testArgs(f128, 1e-1, 1e1); + try testArgs(f128, 1e-1, fmax(f128)); + try testArgs(f128, 1e-1, inf(f128)); + try testArgs(f128, 1e-1, nan(f128)); + + try testArgs(f128, 1e0, -nan(f128)); + try testArgs(f128, 1e0, -inf(f128)); + try testArgs(f128, 1e0, -fmax(f128)); + try testArgs(f128, 1e0, -1e1); + try testArgs(f128, 1e0, -1e0); + try testArgs(f128, 1e0, -1e-1); + try testArgs(f128, 1e0, -fmin(f128)); + try testArgs(f128, 1e0, -tmin(f128)); + try testArgs(f128, 1e0, -0.0); + try testArgs(f128, 1e0, 0.0); + try testArgs(f128, 1e0, tmin(f128)); + try testArgs(f128, 1e0, fmin(f128)); + try testArgs(f128, 1e0, 1e-1); + try testArgs(f128, 1e0, 1e0); + try testArgs(f128, 1e0, 1e1); + try testArgs(f128, 1e0, fmax(f128)); + try testArgs(f128, 1e0, inf(f128)); + try testArgs(f128, 1e0, nan(f128)); + + try testArgs(f128, 1e1, -nan(f128)); + try testArgs(f128, 1e1, -inf(f128)); + try testArgs(f128, 1e1, -fmax(f128)); + try testArgs(f128, 1e1, -1e1); + try testArgs(f128, 1e1, -1e0); + try testArgs(f128, 1e1, -1e-1); + try testArgs(f128, 1e1, -fmin(f128)); + try testArgs(f128, 1e1, -tmin(f128)); + try testArgs(f128, 1e1, -0.0); + try testArgs(f128, 1e1, 0.0); + try testArgs(f128, 1e1, tmin(f128)); + try testArgs(f128, 1e1, fmin(f128)); + try testArgs(f128, 1e1, 1e-1); + try testArgs(f128, 1e1, 1e0); + try testArgs(f128, 1e1, 1e1); + try testArgs(f128, 1e1, fmax(f128)); + try testArgs(f128, 1e1, inf(f128)); + try testArgs(f128, 1e1, nan(f128)); + + try testArgs(f128, fmax(f128), -nan(f128)); + try testArgs(f128, fmax(f128), -inf(f128)); + try testArgs(f128, fmax(f128), -fmax(f128)); + try testArgs(f128, fmax(f128), -1e1); + try testArgs(f128, fmax(f128), -1e0); + try testArgs(f128, fmax(f128), -1e-1); + try testArgs(f128, fmax(f128), -fmin(f128)); + try testArgs(f128, fmax(f128), -tmin(f128)); + try testArgs(f128, fmax(f128), -0.0); + try testArgs(f128, fmax(f128), 0.0); + try testArgs(f128, fmax(f128), tmin(f128)); + try testArgs(f128, fmax(f128), fmin(f128)); + try testArgs(f128, fmax(f128), 1e-1); + try testArgs(f128, fmax(f128), 1e0); + try testArgs(f128, fmax(f128), 1e1); + try testArgs(f128, fmax(f128), fmax(f128)); + try testArgs(f128, fmax(f128), inf(f128)); + try testArgs(f128, fmax(f128), nan(f128)); + + try testArgs(f128, inf(f128), -nan(f128)); + try testArgs(f128, inf(f128), -inf(f128)); + try testArgs(f128, inf(f128), -fmax(f128)); + try testArgs(f128, inf(f128), -1e1); + try testArgs(f128, inf(f128), -1e0); + try testArgs(f128, inf(f128), -1e-1); + try testArgs(f128, inf(f128), -fmin(f128)); + try testArgs(f128, inf(f128), -tmin(f128)); + try testArgs(f128, inf(f128), -0.0); + try testArgs(f128, inf(f128), 0.0); + try testArgs(f128, inf(f128), tmin(f128)); + try testArgs(f128, inf(f128), fmin(f128)); + try testArgs(f128, inf(f128), 1e-1); + try testArgs(f128, inf(f128), 1e0); + try testArgs(f128, inf(f128), 1e1); + try testArgs(f128, inf(f128), fmax(f128)); + try testArgs(f128, inf(f128), inf(f128)); + try testArgs(f128, inf(f128), nan(f128)); + + try testArgs(f128, nan(f128), -nan(f128)); + try testArgs(f128, nan(f128), -inf(f128)); + try testArgs(f128, nan(f128), -fmax(f128)); + try testArgs(f128, nan(f128), -1e1); + try testArgs(f128, nan(f128), -1e0); + try testArgs(f128, nan(f128), -1e-1); + try testArgs(f128, nan(f128), -fmin(f128)); + try testArgs(f128, nan(f128), -tmin(f128)); + try testArgs(f128, nan(f128), -0.0); + try testArgs(f128, nan(f128), 0.0); + try testArgs(f128, nan(f128), tmin(f128)); + try testArgs(f128, nan(f128), fmin(f128)); + try testArgs(f128, nan(f128), 1e-1); + try testArgs(f128, nan(f128), 1e0); + try testArgs(f128, nan(f128), 1e1); + try testArgs(f128, nan(f128), fmax(f128)); + try testArgs(f128, nan(f128), inf(f128)); + try testArgs(f128, nan(f128), nan(f128)); + } + fn testIntVectors() !void { + try testArgs(@Vector(1, i1), .{ + 0x0, + }, .{ + -0x1, + }); + try testArgs(@Vector(2, i1), .{ + 0x0, 0x00, + }, .{ + -0x1, -0x1, + }); + try testArgs(@Vector(4, i1), .{ + 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, + }); + try testArgs(@Vector(8, i1), .{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + }); + try testArgs(@Vector(16, i1), .{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + }); + try testArgs(@Vector(32, i1), .{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + }); + try testArgs(@Vector(64, i1), .{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + }); + try testArgs(@Vector(128, i1), .{ + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + }, .{ + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, + }); + + try testArgs(@Vector(1, u1), .{ + 0x0, + }, .{ + 0x1, + }); + try testArgs(@Vector(2, u1), .{ + 0x0, 0x1, + }, .{ + 0x1, 0x1, + }); + try testArgs(@Vector(4, u1), .{ + 0x0, 0x0, 0x1, 0x0, + }, .{ + 0x1, 0x1, 0x1, 0x1, + }); + try testArgs(@Vector(8, u1), .{ + 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, + }, .{ + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + }); + try testArgs(@Vector(16, u1), .{ + 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, + }, .{ + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + }); + try testArgs(@Vector(32, u1), .{ + 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, + }, .{ + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + }); + try testArgs(@Vector(64, u1), .{ + 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, + 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, + 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, + }, .{ + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + }); + try testArgs(@Vector(128, u1), .{ + 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, + 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, + 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, + 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, + 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, + 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, + }, .{ + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, + }); + + // workaround https://github.com/ziglang/zig/issues/22914 + // TODO: try testArgs(@Vector(1, i2), .{ + // 0x1, + // }, .{ + // 0x1, + // }); + // try testArgs(@Vector(2, i2), .{ + // 0x0, -0x2, + // }, .{ + // -0x2, -0x2, + // }); + // try testArgs(@Vector(4, i2), .{ + // -0x2, -0x1, 0x0, -0x2, + // }, .{ + // -0x2, 0x1, -0x1, -0x2, + // }); + // try testArgs(@Vector(8, i2), .{ + // -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2, + // }, .{ + // -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, + // }); + // try testArgs(@Vector(16, i2), .{ + // 0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0, + // }, .{ + // -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, + // }); + // try testArgs(@Vector(32, i2), .{ + // -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x1, 0x0, -0x2, -0x2, 0x0, 0x1, + // -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2, + // }, .{ + // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, + // -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, 0x1, -0x2, -0x2, + // }); + // try testArgs(@Vector(64, i2), .{ + // 0x1, -0x2, -0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1, 0x0, 0x1, + // -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, 0x0, -0x2, -0x2, + // 0x1, 0x0, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, 0x1, 0x0, 0x0, -0x1, 0x0, 0x1, + // -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x2, 0x0, -0x2, 0x0, -0x2, 0x1, 0x0, -0x1, -0x1, 0x1, + // }, .{ + // -0x2, -0x2, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, + // -0x2, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, 0x1, -0x1, -0x2, 0x1, -0x2, 0x1, + // 0x1, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, + // -0x2, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x1, -0x2, -0x2, + // }); + // try testArgs(@Vector(128, i2), .{ + // -0x1, -0x2, 0x0, -0x2, -0x2, 0x1, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1, + // 0x0, -0x2, 0x1, 0x0, 0x1, 0x0, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x0, -0x1, 0x1, -0x1, + // 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x0, 0x0, 0x1, 0x1, -0x2, -0x1, + // 0x1, 0x0, 0x0, 0x1, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, 0x1, 0x0, 0x1, 0x0, 0x0, -0x2, + // 0x0, 0x0, -0x1, 0x1, -0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, -0x2, 0x0, 0x0, 0x0, + // -0x1, -0x1, -0x1, -0x1, -0x2, 0x0, -0x1, 0x1, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x1, + // 0x1, -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x1, -0x2, 0x0, -0x1, -0x1, -0x2, -0x2, 0x0, 0x0, + // -0x1, 0x0, 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x1, + // }, .{ + // -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, -0x1, + // -0x1, -0x2, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x2, + // -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, -0x2, + // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2, + // -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2, + // 0x1, -0x1, 0x1, -0x2, 0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, + // -0x2, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, 0x1, + // 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, + // }); + try testArgs(@Vector(1, i2), .{ + -0x1, + }, .{ + -0x2, + }); + try testArgs(@Vector(2, i2), .{ + -0x1, -0x1, + }, .{ + 0x1, -0x1, + }); + try testArgs(@Vector(4, i2), .{ + -0x1, 0x1, -0x1, -0x1, + }, .{ + 0x1, -0x1, -0x1, 0x1, + }); + try testArgs(@Vector(8, i2), .{ + 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x1, + }, .{ + 0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, + }); + try testArgs(@Vector(16, i2), .{ + 0x1, 0x0, 0x0, -0x1, 0x1, 0x0, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x0, + }, .{ + 0x1, 0x1, 0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, + }); + try testArgs(@Vector(32, i2), .{ + 0x0, 0x1, -0x1, -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, 0x1, -0x1, 0x0, -0x1, 0x0, -0x1, + -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x0, 0x1, + }, .{ + -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x2, + -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, + }); + try testArgs(@Vector(64, i2), .{ + 0x1, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, + -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, -0x1, 0x0, -0x1, 0x0, + -0x1, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, + 0x1, -0x1, -0x1, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, + }, .{ + -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, + -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, + -0x2, -0x1, -0x1, 0x1, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, 0x1, -0x1, + -0x1, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, + }); + try testArgs(@Vector(128, i2), .{ + 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, 0x0, -0x1, + 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, -0x1, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x0, 0x1, 0x0, 0x1, + 0x0, -0x1, 0x0, 0x0, 0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, + 0x0, -0x1, 0x1, -0x1, -0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x1, 0x0, -0x1, 0x1, 0x0, -0x1, + 0x1, 0x0, 0x1, -0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x0, + 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x1, 0x1, -0x1, + }, .{ + -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, + -0x1, 0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, 0x1, -0x1, + -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2, -0x1, + -0x2, 0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, + -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, 0x1, -0x1, 0x1, + -0x2, -0x2, 0x1, -0x2, -0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, 0x1, 0x1, -0x2, + -0x1, -0x2, 0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, -0x1, -0x2, 0x1, -0x1, -0x2, -0x1, -0x2, + -0x2, -0x2, -0x1, -0x1, -0x2, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1, + }); + + try testArgs(@Vector(1, u2), .{ + 0x2, + }, .{ + 0x2, + }); + try testArgs(@Vector(2, u2), .{ + 0x1, 0x0, + }, .{ + 0x2, 0x1, + }); + try testArgs(@Vector(4, u2), .{ + 0x3, 0x3, 0x0, 0x2, + }, .{ + 0x3, 0x1, 0x1, 0x3, + }); + try testArgs(@Vector(8, u2), .{ + 0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, + }, .{ + 0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, + }); + try testArgs(@Vector(16, u2), .{ + 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, + }, .{ + 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1, + }); + try testArgs(@Vector(32, u2), .{ + 0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0, + 0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, + }, .{ + 0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2, + 0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3, + }); + try testArgs(@Vector(64, u2), .{ + 0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0, + 0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3, + 0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0, + 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3, + }, .{ + 0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3, + 0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, + 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2, + 0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1, + }); + try testArgs(@Vector(128, u2), .{ + 0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, + 0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1, + 0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0, + 0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0, + 0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3, + 0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1, + 0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1, + 0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2, + }, .{ + 0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1, + 0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, + 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, + 0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2, + 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2, + 0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, + 0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1, + 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1, + }); + + // workaround https://github.com/ziglang/zig/issues/22914 + // TODO: try testArgs(@Vector(1, i3), .{ + // -0x3, + // }, .{ + // -0x1, + // }); + // try testArgs(@Vector(2, i3), .{ + // 0x2, -0x3, + // }, .{ + // 0x1, 0x3, + // }); + // try testArgs(@Vector(4, i3), .{ + // 0x1, -0x4, -0x2, -0x3, + // }, .{ + // -0x2, -0x4, 0x2, 0x2, + // }); + // try testArgs(@Vector(8, i3), .{ + // 0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3, + // }, .{ + // -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2, + // }); + // try testArgs(@Vector(16, i3), .{ + // -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4, + // }, .{ + // 0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4, + // }); + // try testArgs(@Vector(32, i3), .{ + // 0x1, -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3, -0x2, 0x3, 0x0, -0x3, 0x0, + // -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2, -0x4, -0x4, -0x3, 0x1, -0x1, -0x2, + // }, .{ + // -0x4, -0x2, 0x1, -0x1, 0x3, 0x1, 0x2, -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2, + // -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3, 0x1, -0x3, 0x3, 0x3, -0x4, 0x3, 0x2, -0x2, + // }); + // try testArgs(@Vector(64, i3), .{ + // 0x1, 0x2, 0x1, 0x2, -0x2, 0x2, 0x2, -0x1, -0x4, 0x1, 0x3, 0x0, -0x2, -0x2, 0x2, -0x2, + // 0x0, -0x4, -0x3, -0x4, -0x1, -0x1, 0x2, 0x2, -0x2, -0x1, -0x1, 0x3, 0x3, -0x4, 0x2, 0x0, + // 0x3, 0x2, -0x4, -0x1, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, -0x3, 0x1, -0x4, -0x2, 0x1, -0x3, + // -0x3, -0x1, 0x1, -0x3, -0x1, 0x3, -0x4, -0x4, 0x0, 0x0, -0x4, -0x2, 0x3, -0x1, -0x3, -0x3, + // }, .{ + // 0x3, -0x2, 0x1, -0x4, 0x1, 0x3, -0x3, 0x1, 0x3, 0x1, 0x1, -0x1, -0x2, 0x1, -0x3, 0x1, + // -0x2, -0x2, 0x3, -0x3, -0x1, -0x3, 0x1, -0x1, -0x3, -0x3, 0x1, -0x2, 0x1, -0x2, 0x1, 0x2, + // 0x3, -0x4, -0x4, -0x1, 0x1, 0x3, 0x1, 0x1, -0x4, 0x2, -0x3, 0x3, 0x3, -0x1, 0x1, -0x1, + // -0x2, 0x2, 0x2, -0x4, -0x4, 0x3, -0x2, -0x4, -0x1, -0x2, -0x4, 0x1, 0x2, 0x1, -0x1, -0x2, + // }); + // try testArgs(@Vector(128, i3), .{ + // -0x4, 0x1, 0x0, -0x4, -0x4, 0x1, -0x4, -0x2, 0x2, 0x2, -0x3, 0x1, 0x2, -0x2, 0x1, 0x1, + // 0x3, 0x0, 0x3, -0x4, -0x1, 0x3, 0x3, -0x4, 0x0, -0x3, 0x2, -0x2, 0x0, 0x3, 0x1, -0x2, + // -0x1, -0x1, 0x3, -0x1, -0x2, 0x3, 0x3, 0x1, -0x3, 0x1, -0x1, -0x2, -0x4, 0x2, -0x2, -0x1, + // 0x1, 0x1, 0x1, 0x0, -0x1, 0x2, -0x1, 0x3, 0x2, -0x1, -0x2, 0x3, -0x2, 0x3, 0x3, 0x1, + // 0x3, -0x3, -0x4, -0x1, 0x2, 0x2, -0x2, 0x3, -0x4, -0x2, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, + // -0x2, 0x3, 0x0, -0x3, -0x4, 0x2, -0x3, -0x2, -0x4, 0x0, -0x3, -0x4, -0x4, -0x2, -0x1, -0x3, + // 0x0, -0x1, 0x0, -0x1, 0x2, -0x4, -0x3, 0x0, -0x4, 0x0, -0x2, 0x1, -0x2, -0x4, -0x1, -0x1, + // -0x3, 0x3, -0x1, -0x1, -0x2, 0x1, 0x3, 0x1, -0x3, 0x1, -0x4, -0x2, 0x0, -0x1, -0x2, 0x2, + // }, .{ + // -0x3, 0x2, -0x3, 0x1, -0x2, -0x1, -0x3, 0x1, 0x2, 0x2, -0x2, 0x2, 0x2, 0x1, 0x3, -0x1, + // -0x4, -0x3, 0x2, -0x3, -0x2, 0x3, -0x3, 0x2, -0x1, -0x3, 0x1, 0x2, -0x4, 0x2, -0x2, -0x3, + // 0x1, -0x1, 0x2, 0x2, -0x1, -0x3, -0x4, 0x2, 0x1, -0x4, 0x1, -0x4, 0x2, -0x1, 0x2, -0x2, + // 0x2, 0x1, -0x4, 0x3, 0x1, -0x2, -0x3, -0x4, 0x3, -0x1, 0x3, -0x4, -0x2, 0x1, -0x2, 0x3, + // 0x1, 0x1, 0x2, 0x1, -0x1, -0x2, 0x2, -0x1, 0x1, -0x1, -0x3, -0x1, 0x1, -0x4, -0x1, -0x1, + // -0x3, -0x1, -0x4, 0x3, 0x1, -0x1, -0x1, -0x1, 0x1, -0x4, 0x1, -0x2, -0x4, 0x2, -0x4, -0x3, + // 0x2, -0x4, -0x1, 0x1, 0x3, 0x2, -0x1, 0x3, 0x2, 0x2, 0x1, -0x4, -0x3, 0x1, -0x1, 0x1, + // -0x2, -0x4, 0x1, 0x3, -0x1, 0x3, 0x1, 0x2, -0x4, 0x2, 0x2, -0x3, -0x3, -0x4, -0x2, 0x3, + // }); + try testArgs(@Vector(1, i3), .{ + -0x1, + }, .{ + -0x3, + }); + try testArgs(@Vector(2, i3), .{ + 0x2, -0x2, + }, .{ + 0x3, 0x3, + }); + try testArgs(@Vector(4, i3), .{ + 0x1, 0x0, -0x2, 0x0, + }, .{ + 0x2, -0x2, -0x4, 0x3, + }); + try testArgs(@Vector(8, i3), .{ + 0x3, -0x1, -0x3, -0x3, -0x3, -0x2, 0x2, -0x3, + }, .{ + -0x1, 0x1, -0x2, 0x2, 0x1, -0x2, -0x3, -0x1, + }); + try testArgs(@Vector(16, i3), .{ + -0x1, -0x1, 0x3, -0x2, -0x2, -0x2, -0x2, -0x1, 0x2, 0x1, -0x2, 0x2, -0x2, 0x1, 0x1, -0x3, + }, .{ + 0x1, -0x1, -0x1, -0x1, 0x1, 0x3, -0x1, -0x1, 0x1, 0x3, -0x1, -0x3, 0x1, 0x3, 0x1, -0x2, + }); + try testArgs(@Vector(32, i3), .{ + 0x3, -0x1, -0x3, 0x1, 0x0, 0x0, -0x3, -0x1, -0x3, 0x1, 0x1, 0x2, -0x1, 0x1, -0x1, -0x1, + 0x1, -0x3, 0x1, -0x1, 0x1, 0x0, -0x2, 0x3, -0x2, -0x3, 0x3, 0x1, -0x1, 0x0, 0x3, -0x1, + }, .{ + 0x1, -0x2, -0x4, -0x4, 0x2, 0x1, -0x4, -0x3, -0x4, 0x1, -0x3, -0x4, -0x1, 0x2, -0x1, 0x1, + 0x2, -0x2, -0x4, 0x3, -0x3, 0x1, 0x2, -0x2, -0x2, 0x3, 0x3, 0x2, -0x2, -0x4, -0x2, -0x3, + }); + try testArgs(@Vector(64, i3), .{ + -0x2, 0x1, 0x3, -0x1, -0x3, -0x1, 0x1, -0x3, 0x1, -0x2, 0x0, 0x3, 0x0, -0x2, 0x1, -0x3, + -0x2, 0x1, -0x2, 0x2, 0x0, 0x1, -0x3, 0x0, -0x3, 0x0, -0x3, -0x2, -0x2, -0x3, -0x2, 0x3, + -0x1, 0x1, 0x1, 0x1, -0x1, 0x0, -0x3, -0x3, -0x3, -0x3, -0x2, 0x2, 0x3, 0x2, -0x3, 0x1, + -0x3, -0x3, -0x1, -0x1, -0x1, -0x3, -0x2, -0x2, 0x2, 0x3, 0x3, -0x3, 0x0, 0x3, -0x3, -0x3, + }, .{ + 0x2, 0x1, -0x1, -0x3, -0x1, -0x4, -0x2, -0x3, 0x2, -0x2, -0x4, 0x2, 0x2, -0x2, 0x1, 0x1, + 0x1, -0x1, -0x3, 0x2, -0x2, 0x2, -0x1, 0x3, 0x3, -0x1, -0x1, -0x3, -0x1, 0x2, -0x2, 0x2, + 0x1, -0x4, -0x2, -0x4, 0x2, -0x1, -0x2, 0x3, 0x3, 0x3, -0x4, -0x2, 0x3, -0x4, 0x1, -0x2, + -0x2, 0x2, -0x3, -0x3, 0x1, -0x3, 0x3, 0x2, 0x1, 0x3, -0x3, 0x3, 0x2, -0x2, -0x2, 0x2, + }); + try testArgs(@Vector(128, i3), .{ + -0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x2, 0x1, -0x3, 0x1, -0x2, -0x1, 0x0, 0x2, 0x3, -0x3, + -0x1, -0x1, -0x2, 0x3, 0x1, 0x2, 0x2, 0x3, -0x2, 0x3, -0x2, -0x3, 0x1, 0x0, -0x1, -0x2, + -0x1, -0x1, 0x1, -0x1, 0x2, -0x3, 0x1, -0x2, -0x1, 0x2, -0x2, 0x1, 0x1, -0x3, -0x2, 0x3, + -0x1, -0x1, 0x1, -0x3, -0x1, -0x2, 0x0, 0x1, -0x1, 0x0, -0x1, 0x2, 0x1, 0x2, 0x3, -0x1, + 0x0, 0x1, 0x2, 0x3, -0x2, 0x2, -0x3, 0x2, 0x0, -0x2, -0x3, -0x2, 0x0, 0x1, 0x2, 0x1, + -0x3, 0x0, -0x2, -0x3, -0x1, 0x2, -0x3, 0x2, 0x3, 0x1, 0x1, -0x1, 0x2, 0x1, -0x1, 0x2, + 0x2, 0x0, 0x1, -0x3, -0x3, 0x1, 0x2, 0x0, 0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x3, 0x3, + 0x0, -0x2, -0x2, -0x2, 0x3, 0x0, -0x1, -0x2, 0x0, 0x3, -0x3, 0x1, 0x2, -0x1, 0x1, 0x1, + }, .{ + 0x3, 0x3, 0x2, 0x3, -0x3, -0x4, 0x1, -0x3, 0x2, 0x3, 0x3, -0x2, 0x2, -0x1, 0x1, 0x3, + -0x4, -0x4, -0x1, -0x1, 0x2, -0x3, -0x3, -0x3, -0x2, -0x3, -0x2, -0x1, 0x1, 0x3, -0x4, -0x2, + -0x3, 0x1, 0x3, 0x1, -0x2, 0x1, 0x1, 0x2, 0x1, 0x2, -0x4, -0x4, -0x3, -0x2, -0x1, -0x2, + 0x3, 0x2, -0x3, -0x2, -0x2, 0x3, -0x3, -0x4, 0x3, -0x3, 0x3, -0x1, 0x3, -0x1, -0x1, 0x2, + 0x3, -0x4, -0x4, -0x2, -0x4, 0x2, -0x2, -0x4, -0x2, -0x2, -0x3, 0x3, 0x2, 0x2, 0x2, -0x4, + 0x1, -0x4, -0x3, -0x2, -0x4, -0x4, 0x1, -0x4, -0x1, 0x3, -0x2, -0x4, 0x3, -0x4, 0x3, -0x1, + 0x3, 0x1, -0x1, 0x1, 0x1, 0x2, 0x1, -0x3, -0x4, -0x1, -0x1, -0x2, -0x3, -0x2, 0x3, -0x2, + -0x1, 0x3, 0x3, -0x1, 0x3, 0x1, 0x1, 0x2, -0x3, 0x3, -0x1, 0x3, -0x3, -0x4, -0x4, 0x1, + }); + + try testArgs(@Vector(1, u3), .{ + 0x5, + }, .{ + 0x2, + }); + try testArgs(@Vector(2, u3), .{ + 0x4, 0x5, + }, .{ + 0x2, 0x4, + }); + try testArgs(@Vector(4, u3), .{ + 0x7, 0x7, 0x2, 0x3, + }, .{ + 0x4, 0x5, 0x7, 0x1, + }); + try testArgs(@Vector(8, u3), .{ + 0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7, + }, .{ + 0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1, + }); + try testArgs(@Vector(16, u3), .{ + 0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5, + }, .{ + 0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2, + }); + try testArgs(@Vector(32, u3), .{ + 0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2, + 0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2, + }, .{ + 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1, + 0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6, + }); + try testArgs(@Vector(64, u3), .{ + 0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5, + 0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7, + 0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2, + 0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6, + }, .{ + 0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4, + 0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5, + 0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4, + 0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3, + }); + try testArgs(@Vector(128, u3), .{ + 0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6, + 0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5, + 0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3, + 0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4, + 0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2, + 0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4, + 0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4, + 0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4, + }, .{ + 0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1, + 0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4, + 0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4, + 0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5, + 0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1, + 0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3, + 0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7, + 0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1, + }); + + // workaround https://github.com/ziglang/zig/issues/22914 + // TODO: try testArgs(@Vector(1, i4), .{ + // 0x2, + // }, .{ + // 0x1, + // }); + // try testArgs(@Vector(2, i4), .{ + // -0x2, 0x5, + // }, .{ + // -0x1, 0x2, + // }); + // try testArgs(@Vector(4, i4), .{ + // -0x8, 0x5, 0x5, -0x2, + // }, .{ + // -0x3, -0x7, -0x4, -0x5, + // }); + // try testArgs(@Vector(8, i4), .{ + // 0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1, + // }, .{ + // -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7, + // }); + // try testArgs(@Vector(16, i4), .{ + // 0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0, + // }, .{ + // 0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2, + // }); + // try testArgs(@Vector(32, i4), .{ + // -0x1, -0x4, 0x6, 0x6, 0x5, 0x3, 0x4, 0x0, 0x3, 0x7, -0x6, 0x7, -0x2, -0x7, -0x4, 0x6, + // 0x3, -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8, + // }, .{ + // -0x4, -0x4, -0x4, 0x4, -0x5, 0x3, -0x1, 0x6, 0x1, -0x3, -0x1, 0x6, 0x5, -0x8, 0x1, -0x4, + // -0x1, -0x4, 0x1, -0x3, 0x4, 0x6, -0x3, -0x8, -0x7, -0x4, 0x2, -0x3, -0x1, -0x2, 0x6, -0x6, + // }); + // try testArgs(@Vector(64, i4), .{ + // 0x0, -0x3, -0x3, 0x5, 0x2, -0x1, 0x4, 0x5, 0x6, -0x2, 0x1, 0x5, -0x3, -0x1, -0x2, -0x1, + // -0x8, 0x2, -0x1, -0x2, 0x7, -0x3, -0x2, -0x3, 0x1, -0x5, 0x5, 0x2, -0x1, -0x6, -0x2, -0x1, + // -0x2, -0x5, 0x0, 0x6, 0x3, -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1, 0x0, -0x6, -0x7, -0x6, + // 0x1, -0x6, 0x4, -0x4, -0x2, 0x6, -0x7, 0x4, 0x4, 0x5, 0x3, -0x6, -0x8, -0x5, 0x5, -0x7, + // }, .{ + // -0x1, -0x5, 0x5, -0x2, 0x6, -0x6, -0x4, -0x5, -0x4, 0x7, -0x6, 0x7, 0x4, -0x5, 0x5, 0x7, + // -0x6, 0x3, -0x4, 0x2, -0x8, 0x4, -0x2, 0x5, -0x5, -0x5, -0x8, 0x3, -0x1, -0x4, -0x8, -0x2, + // -0x2, 0x5, -0x7, -0x3, 0x2, -0x5, -0x6, -0x7, -0x8, -0x2, 0x5, -0x3, 0x2, -0x1, -0x7, -0x4, + // -0x3, -0x3, 0x6, -0x8, 0x3, -0x4, 0x7, 0x3, -0x2, 0x7, -0x1, 0x1, 0x1, 0x6, -0x2, -0x2, + // }); + // try testArgs(@Vector(128, i4), .{ + // -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0, -0x4, 0x7, 0x3, 0x5, -0x4, -0x5, -0x4, -0x2, -0x7, + // 0x2, 0x0, -0x4, 0x7, 0x3, -0x5, 0x4, 0x5, -0x2, -0x3, -0x4, 0x6, -0x7, -0x1, 0x1, -0x6, + // 0x1, 0x5, 0x2, 0x5, 0x2, 0x2, -0x4, -0x4, 0x5, 0x2, -0x2, -0x8, -0x1, -0x2, 0x5, 0x3, + // 0x0, -0x5, 0x5, 0x7, 0x6, -0x3, -0x2, 0x0, -0x7, -0x7, -0x4, 0x2, -0x4, 0x7, 0x1, -0x5, + // -0x4, -0x8, 0x2, -0x7, 0x3, -0x4, 0x7, 0x6, -0x7, -0x3, -0x7, 0x2, 0x4, 0x2, -0x5, -0x6, + // 0x3, 0x5, 0x1, 0x6, 0x5, 0x7, 0x7, -0x4, -0x7, -0x1, 0x0, -0x7, 0x6, 0x0, 0x6, 0x0, + // 0x0, -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1, 0x1, -0x8, 0x2, 0x6, -0x1, -0x3, + // -0x6, 0x5, -0x8, 0x3, 0x3, 0x1, -0x1, -0x3, -0x3, -0x6, 0x7, -0x6, -0x8, 0x1, -0x7, -0x8, + // }, .{ + // 0x1, 0x3, 0x1, 0x3, -0x6, 0x6, 0x2, -0x3, 0x1, -0x7, 0x7, -0x3, -0x1, -0x1, 0x7, 0x2, + // -0x8, 0x2, -0x3, -0x4, 0x4, -0x4, 0x7, 0x6, -0x5, -0x2, -0x1, 0x6, -0x7, 0x4, 0x7, -0x3, + // -0x5, -0x8, -0x5, -0x6, -0x6, 0x2, 0x1, -0x8, 0x4, 0x3, -0x5, 0x7, -0x8, 0x3, -0x1, 0x7, + // -0x3, 0x7, -0x3, -0x2, -0x6, 0x4, 0x2, -0x2, -0x2, -0x7, 0x5, -0x1, -0x6, 0x7, -0x5, 0x5, + // 0x4, 0x5, -0x8, -0x5, 0x6, 0x1, -0x5, 0x7, -0x6, -0x3, -0x4, 0x6, -0x8, 0x7, 0x7, -0x6, + // 0x6, -0x4, 0x2, -0x8, -0x8, -0x4, -0x8, -0x3, 0x6, 0x5, 0x7, -0x6, 0x1, 0x2, -0x7, -0x3, + // -0x3, 0x1, -0x3, 0x3, -0x1, 0x3, -0x7, -0x8, 0x1, -0x3, -0x3, -0x3, -0x4, 0x5, 0x7, -0x7, + // 0x3, 0x2, 0x6, -0x2, -0x4, -0x3, -0x1, 0x5, -0x6, 0x2, 0x3, -0x5, 0x5, -0x3, -0x2, -0x8, + // }); + try testArgs(@Vector(1, i4), .{ + -0x1, + }, .{ + -0x1, + }); + try testArgs(@Vector(2, i4), .{ + 0x7, 0x5, + }, .{ + 0x4, 0x1, + }); + try testArgs(@Vector(4, i4), .{ + -0x2, -0x3, -0x6, 0x1, + }, .{ + 0x3, -0x5, -0x1, -0x3, + }); + try testArgs(@Vector(8, i4), .{ + -0x5, -0x3, -0x2, 0x2, -0x4, -0x4, 0x0, 0x1, + }, .{ + -0x7, -0x2, -0x7, 0x1, 0x6, 0x2, -0x7, 0x7, + }); + try testArgs(@Vector(16, i4), .{ + -0x1, -0x1, 0x6, 0x3, -0x1, 0x2, -0x6, 0x6, 0x1, 0x5, -0x1, 0x7, 0x7, -0x3, -0x1, 0x4, + }, .{ + 0x1, -0x3, 0x4, -0x1, 0x2, 0x5, -0x3, -0x5, -0x5, 0x5, -0x7, 0x7, 0x1, 0x5, -0x5, -0x6, + }); + try testArgs(@Vector(32, i4), .{ + -0x7, 0x4, -0x5, -0x5, -0x5, 0x1, 0x7, 0x3, -0x2, 0x7, -0x3, -0x7, -0x3, -0x2, -0x5, -0x7, + 0x5, 0x4, 0x3, 0x0, -0x6, -0x2, -0x4, -0x1, 0x5, 0x4, -0x7, -0x7, -0x5, 0x5, -0x5, -0x1, + }, .{ + 0x4, 0x4, 0x5, 0x2, 0x3, -0x4, 0x6, 0x2, -0x7, 0x3, 0x7, 0x2, 0x6, 0x2, 0x2, 0x3, + 0x7, -0x3, -0x7, -0x2, 0x3, -0x1, -0x4, 0x4, -0x8, 0x1, 0x6, -0x7, 0x5, 0x1, 0x7, -0x2, + }); + try testArgs(@Vector(64, i4), .{ + 0x0, 0x3, 0x7, -0x7, 0x1, -0x5, -0x4, 0x2, 0x2, 0x5, 0x4, 0x0, -0x3, -0x4, -0x4, -0x4, + -0x7, 0x6, 0x2, 0x1, 0x0, 0x3, -0x6, 0x4, -0x4, 0x2, 0x7, 0x3, -0x4, -0x3, -0x3, -0x3, + -0x4, 0x0, -0x3, -0x6, 0x0, 0x1, -0x5, -0x7, -0x2, -0x1, -0x1, -0x7, 0x3, -0x5, -0x4, -0x3, + 0x5, 0x1, -0x4, 0x7, 0x1, 0x7, -0x5, 0x4, 0x5, -0x4, 0x1, -0x4, 0x4, 0x5, 0x4, -0x2, + }, .{ + 0x2, -0x4, -0x1, 0x4, 0x4, -0x1, -0x3, 0x6, 0x4, 0x2, 0x4, 0x3, -0x6, -0x7, -0x4, 0x6, + 0x6, 0x4, 0x6, -0x7, 0x2, 0x4, -0x8, -0x1, -0x8, 0x3, -0x2, -0x7, 0x1, 0x5, -0x3, -0x6, + -0x8, 0x2, -0x5, 0x7, 0x4, 0x7, -0x4, 0x3, 0x6, -0x7, -0x1, 0x1, -0x8, -0x2, -0x3, 0x3, + 0x3, -0x4, 0x4, -0x7, 0x5, -0x4, -0x1, 0x2, 0x6, -0x2, -0x5, 0x2, 0x7, 0x2, -0x8, -0x3, + }); + try testArgs(@Vector(128, i4), .{ + 0x3, 0x3, -0x6, 0x3, 0x2, 0x1, 0x5, -0x2, 0x0, -0x7, 0x4, 0x3, 0x0, -0x3, -0x7, -0x5, + 0x4, 0x0, 0x1, 0x6, 0x3, 0x3, -0x4, 0x7, -0x6, -0x6, 0x6, 0x1, 0x6, -0x5, -0x6, -0x6, + 0x4, -0x2, 0x3, -0x1, -0x4, -0x6, -0x1, 0x2, 0x4, 0x3, -0x2, 0x2, 0x3, 0x5, 0x0, -0x2, + 0x5, 0x6, -0x1, -0x5, 0x6, 0x7, 0x7, -0x6, -0x6, 0x0, 0x0, -0x6, -0x2, -0x7, -0x6, 0x3, + -0x6, -0x6, 0x4, -0x4, 0x4, -0x5, 0x0, 0x6, 0x6, 0x7, 0x4, -0x5, 0x5, -0x7, -0x7, 0x6, + -0x4, 0x4, -0x7, 0x4, 0x3, 0x2, -0x4, -0x1, -0x6, -0x2, 0x5, -0x2, 0x4, -0x7, -0x3, -0x3, + 0x4, 0x1, -0x1, 0x2, -0x1, 0x4, -0x5, -0x3, -0x1, -0x3, 0x3, 0x7, 0x5, -0x1, -0x1, -0x4, + 0x2, 0x1, -0x3, 0x7, -0x6, -0x7, -0x6, -0x4, -0x5, -0x2, 0x5, 0x0, -0x5, 0x7, -0x7, 0x5, + }, .{ + -0x6, -0x5, -0x1, 0x4, 0x6, 0x4, -0x1, -0x7, -0x3, 0x4, -0x6, -0x2, -0x3, 0x1, 0x6, 0x2, + -0x1, -0x3, -0x4, 0x2, 0x3, 0x6, -0x7, 0x3, 0x7, -0x6, 0x1, -0x7, -0x5, 0x6, 0x7, -0x4, + 0x7, -0x4, 0x2, -0x5, 0x4, 0x5, 0x5, -0x3, -0x1, 0x6, -0x6, -0x2, -0x4, 0x3, -0x4, -0x4, + -0x5, 0x6, -0x6, 0x3, -0x6, -0x3, 0x6, 0x5, 0x6, -0x6, -0x3, 0x1, -0x4, -0x5, -0x8, -0x3, + -0x4, 0x7, -0x2, -0x1, 0x4, 0x2, -0x3, 0x6, 0x4, 0x6, -0x3, 0x6, 0x5, -0x2, -0x1, 0x5, + 0x6, -0x6, -0x8, -0x2, -0x3, 0x6, -0x6, 0x5, -0x2, -0x6, 0x5, -0x6, 0x2, 0x1, 0x3, -0x3, + 0x7, 0x7, 0x3, -0x1, 0x5, -0x2, -0x3, 0x4, 0x7, -0x7, 0x7, 0x6, -0x2, -0x5, 0x4, -0x5, + -0x1, -0x2, 0x1, 0x4, -0x2, 0x1, -0x3, 0x1, -0x4, 0x3, -0x2, -0x6, -0x4, -0x2, -0x8, 0x2, + }); + + try testArgs(@Vector(1, u4), .{ + 0x2, + }, .{ + 0xa, + }); + try testArgs(@Vector(2, u4), .{ + 0x0, 0xa, + }, .{ + 0xb, 0xa, + }); + try testArgs(@Vector(4, u4), .{ + 0xb, 0x7, 0x0, 0xd, + }, .{ + 0x4, 0x5, 0xf, 0x3, + }); + try testArgs(@Vector(8, u4), .{ + 0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7, + }, .{ + 0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2, + }); + try testArgs(@Vector(16, u4), .{ + 0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf, + }, .{ + 0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe, + }); + try testArgs(@Vector(32, u4), .{ + 0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6, + 0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0, + }, .{ + 0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3, + 0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6, + }); + try testArgs(@Vector(64, u4), .{ + 0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9, + 0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4, + 0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb, + 0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd, + }, .{ + 0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7, + 0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2, + 0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6, + 0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8, + }); + try testArgs(@Vector(128, u4), .{ + 0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6, + 0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3, + 0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4, + 0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa, + 0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7, + 0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc, + 0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8, + 0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1, + }, .{ + 0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4, + 0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6, + 0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe, + 0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5, + 0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7, + 0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa, + 0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8, + 0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4, + }); + + // workaround https://github.com/ziglang/zig/issues/22914 + // TODO: try testArgs(@Vector(1, i5), .{ + // 0x03, + // }, .{ + // 0x0a, + // }); + // try testArgs(@Vector(2, i5), .{ + // 0x0c, -0x0e, + // }, .{ + // -0x0f, -0x0e, + // }); + // try testArgs(@Vector(4, i5), .{ + // -0x0a, 0x06, -0x05, 0x09, + // }, .{ + // -0x0f, 0x05, 0x05, 0x09, + // }); + // try testArgs(@Vector(8, i5), .{ + // -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e, + // }, .{ + // -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03, + // }); + // try testArgs(@Vector(16, i5), .{ + // -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10, + // }, .{ + // 0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03, + // }); + // try testArgs(@Vector(32, i5), .{ + // -0x08, -0x05, 0x09, -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f, -0x0b, 0x01, -0x03, 0x03, 0x08, 0x04, + // 0x02, 0x0f, -0x0b, -0x0b, 0x0d, 0x00, 0x09, 0x00, -0x06, -0x08, -0x01, 0x0b, 0x05, 0x03, -0x05, -0x07, + // }, .{ + // -0x0c, 0x07, 0x0d, -0x09, 0x0a, 0x06, -0x0b, -0x07, -0x0a, 0x08, 0x07, -0x0d, 0x08, 0x07, 0x09, -0x07, + // 0x0b, -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a, -0x0a, 0x02, -0x07, -0x0a, 0x0d, -0x07, -0x05, -0x0e, 0x05, + // }); + // try testArgs(@Vector(64, i5), .{ + // 0x04, -0x0d, 0x0d, -0x01, 0x07, 0x0c, 0x00, 0x01, -0x07, 0x0a, -0x01, -0x01, 0x08, -0x0b, -0x03, -0x06, + // -0x03, -0x03, -0x0c, 0x0e, -0x0c, -0x02, 0x07, -0x03, 0x0e, -0x0a, -0x0e, -0x06, -0x08, 0x0a, -0x0c, -0x0c, + // 0x06, -0x04, 0x04, 0x00, 0x05, 0x07, 0x04, 0x06, -0x01, 0x0a, 0x07, -0x08, 0x00, 0x0f, 0x0f, 0x0d, + // -0x07, 0x0f, 0x05, -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e, 0x02, 0x06, 0x0d, 0x06, 0x00, 0x0a, + // }, .{ + // 0x02, -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02, 0x0e, 0x07, -0x01, -0x0a, -0x0b, 0x05, -0x0e, + // -0x09, 0x03, 0x08, -0x0d, 0x0d, 0x03, -0x02, 0x0e, 0x0c, 0x03, 0x0b, -0x0d, -0x04, -0x10, 0x0e, 0x0d, + // 0x09, -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08, -0x06, 0x08, -0x0e, 0x02, -0x10, 0x01, 0x01, -0x0a, + // 0x01, -0x09, 0x03, -0x01, 0x05, 0x09, 0x06, -0x03, -0x0a, 0x08, -0x0e, 0x0e, 0x07, -0x05, -0x0c, -0x10, + // }); + // try testArgs(@Vector(128, i5), .{ + // 0x01, 0x0b, -0x01, -0x10, -0x05, 0x05, -0x09, 0x0e, -0x0e, 0x04, 0x0f, -0x06, 0x0f, 0x04, -0x02, 0x0a, + // -0x08, -0x06, 0x08, -0x07, -0x08, 0x0e, 0x06, 0x0d, -0x07, -0x04, 0x04, -0x0b, 0x02, -0x06, 0x07, -0x10, + // 0x0d, 0x09, 0x0b, -0x04, 0x0e, -0x06, -0x0a, 0x01, 0x06, 0x08, 0x01, -0x0b, -0x09, -0x08, -0x0c, -0x0b, + // 0x07, 0x06, 0x0d, 0x0c, -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05, 0x0b, 0x08, -0x01, 0x00, 0x01, 0x0a, + // 0x00, 0x0a, 0x06, 0x06, -0x10, -0x05, -0x05, -0x0f, 0x02, -0x06, -0x08, -0x08, 0x0f, 0x09, -0x07, -0x05, + // 0x07, 0x06, 0x03, 0x05, 0x02, 0x0f, 0x0d, -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09, 0x05, + // -0x07, -0x07, -0x08, 0x0c, -0x0e, 0x09, -0x0c, -0x0d, 0x07, 0x04, 0x07, -0x03, 0x09, 0x0e, 0x04, 0x02, + // 0x0f, -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c, -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d, -0x0e, 0x04, 0x03, + // }, .{ + // -0x08, -0x09, -0x04, 0x0f, -0x0f, -0x08, -0x04, 0x0b, 0x09, -0x0b, -0x02, 0x0f, 0x01, -0x01, -0x0a, -0x0a, + // 0x08, 0x09, 0x0d, -0x06, 0x0f, -0x02, 0x0c, 0x01, 0x0c, 0x02, -0x04, 0x0b, 0x05, 0x02, -0x08, -0x09, + // 0x01, 0x0f, -0x0b, 0x02, -0x06, 0x08, -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c, 0x09, -0x04, 0x08, -0x0a, + // 0x09, -0x05, 0x08, 0x0e, 0x05, 0x03, -0x0a, 0x0d, -0x03, 0x06, 0x0f, -0x09, 0x0a, 0x03, 0x02, 0x0c, + // 0x08, -0x0a, 0x06, 0x0e, 0x08, 0x02, 0x08, -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a, 0x0c, -0x03, 0x04, + // 0x0b, -0x0c, -0x0e, 0x01, 0x07, -0x01, 0x09, 0x0f, -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a, -0x0a, -0x0d, + // -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e, 0x04, -0x01, -0x0b, + // -0x06, 0x0a, 0x0a, -0x0c, -0x0c, 0x0b, -0x02, 0x0c, -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b, + // }); + try testArgs(@Vector(1, i5), .{ + -0x0f, + }, .{ + -0x03, + }); + try testArgs(@Vector(2, i5), .{ + 0x0b, -0x04, + }, .{ + -0x05, -0x08, + }); + try testArgs(@Vector(4, i5), .{ + 0x08, 0x0f, -0x06, -0x0d, + }, .{ + -0x03, -0x0a, -0x05, -0x03, + }); + try testArgs(@Vector(8, i5), .{ + 0x08, 0x0c, 0x07, 0x00, -0x06, 0x08, 0x08, 0x0d, + }, .{ + 0x07, 0x09, 0x05, -0x08, 0x08, -0x0e, -0x0e, -0x0e, + }); + try testArgs(@Vector(16, i5), .{ + 0x06, 0x0b, 0x07, 0x0e, 0x0e, 0x02, -0x08, -0x0b, -0x03, 0x09, -0x08, 0x0e, -0x03, -0x0a, 0x01, 0x0b, + }, .{ + -0x05, 0x0f, -0x08, -0x10, -0x07, 0x06, 0x08, 0x01, 0x0a, 0x06, 0x05, -0x0f, 0x03, 0x05, 0x0b, -0x06, + }); + try testArgs(@Vector(32, i5), .{ + 0x0e, 0x07, -0x08, 0x0b, 0x04, -0x05, 0x0f, 0x02, 0x04, -0x0c, 0x0d, 0x09, 0x0e, -0x02, -0x0f, 0x04, + -0x03, -0x02, 0x09, -0x0d, 0x01, 0x00, -0x0e, -0x0a, 0x02, -0x06, 0x0c, 0x03, 0x06, 0x0e, 0x06, -0x07, + }, .{ + -0x0a, 0x01, 0x0a, -0x10, 0x06, 0x09, 0x0e, 0x03, 0x0e, -0x09, 0x08, -0x08, 0x06, 0x0c, -0x0a, -0x07, + 0x04, -0x02, -0x09, 0x0b, 0x0e, -0x03, -0x01, -0x0d, 0x0e, -0x0a, -0x02, 0x08, 0x0e, 0x02, -0x04, -0x05, + }); + try testArgs(@Vector(64, i5), .{ + 0x04, 0x02, -0x04, -0x0a, -0x0b, -0x0b, -0x0c, -0x08, -0x0b, -0x05, 0x0c, 0x0b, 0x05, 0x02, -0x01, -0x06, + -0x09, -0x06, 0x0a, 0x0f, -0x06, -0x0d, 0x0c, 0x05, 0x0b, -0x06, -0x02, 0x09, 0x0e, -0x09, 0x05, 0x0a, + -0x0c, 0x0b, -0x01, -0x04, 0x01, 0x0c, 0x0f, -0x0f, -0x07, 0x0a, 0x04, 0x02, 0x08, -0x01, -0x03, 0x0a, + -0x0e, -0x04, -0x03, -0x0b, -0x01, 0x02, -0x05, 0x08, -0x03, 0x02, -0x01, -0x05, 0x07, -0x09, 0x0f, 0x00, + }, .{ + -0x09, -0x02, -0x0a, -0x05, -0x05, -0x0d, 0x04, -0x05, 0x0e, -0x01, -0x07, 0x04, 0x0d, -0x0f, -0x09, -0x04, + -0x0b, -0x0b, 0x0e, 0x01, 0x06, -0x0f, -0x0b, 0x03, -0x04, 0x05, -0x03, -0x09, 0x0a, 0x04, 0x04, -0x06, + -0x02, 0x01, 0x0e, 0x0c, -0x10, 0x0f, -0x09, -0x08, -0x10, -0x02, -0x07, -0x0d, 0x08, 0x07, -0x03, 0x01, + -0x0d, -0x10, -0x07, 0x08, 0x0d, 0x07, 0x09, 0x0f, 0x04, 0x06, -0x05, -0x09, 0x04, -0x04, -0x04, 0x0d, + }); + try testArgs(@Vector(128, i5), .{ + -0x02, -0x07, -0x03, 0x08, -0x0b, -0x09, -0x0c, 0x0d, -0x0e, 0x08, -0x03, -0x09, 0x0a, 0x02, -0x0d, 0x05, + -0x04, -0x0c, -0x07, 0x08, -0x0a, 0x04, 0x08, -0x07, 0x0c, 0x03, 0x0e, 0x0f, 0x08, -0x08, -0x02, -0x0a, + -0x08, 0x04, -0x0c, -0x09, 0x0a, -0x0e, -0x04, -0x05, 0x02, 0x0d, -0x04, -0x0f, -0x0d, -0x02, 0x05, -0x07, + 0x06, 0x0b, -0x0b, -0x04, -0x04, -0x0e, -0x0c, 0x09, 0x02, -0x0c, 0x0e, 0x09, 0x02, -0x04, 0x05, 0x04, + -0x0e, -0x02, -0x08, 0x05, 0x00, 0x0f, -0x0a, 0x0a, 0x0b, 0x0b, 0x02, -0x02, -0x0d, -0x08, -0x0d, 0x03, + 0x0b, -0x0b, 0x02, 0x05, -0x06, -0x07, -0x08, -0x0a, -0x09, -0x03, -0x0e, -0x0f, -0x0b, 0x03, 0x00, 0x09, + 0x07, 0x0a, -0x0b, 0x06, 0x01, -0x03, -0x0a, -0x09, -0x07, -0x0d, 0x0a, -0x0c, 0x01, -0x09, -0x01, -0x01, + -0x09, 0x00, 0x0f, 0x05, -0x0b, 0x0c, 0x04, 0x0c, 0x0b, -0x08, 0x01, -0x05, -0x04, 0x02, 0x0c, 0x04, + }, .{ + -0x08, -0x05, -0x0a, 0x06, -0x06, -0x04, 0x01, 0x07, 0x0d, -0x0a, -0x02, 0x0b, -0x01, -0x0c, -0x04, 0x0c, + -0x06, 0x0d, 0x04, 0x0b, 0x07, 0x0c, 0x02, 0x02, -0x02, 0x09, 0x0d, -0x07, -0x08, 0x07, -0x04, 0x06, + -0x0a, 0x07, 0x01, 0x07, -0x0d, 0x02, 0x09, -0x02, 0x0e, -0x08, -0x03, -0x07, 0x07, 0x0a, -0x0e, -0x06, + 0x0b, -0x0d, 0x0c, -0x06, -0x07, 0x0a, 0x0b, -0x0a, 0x05, 0x01, -0x0d, -0x08, -0x0e, -0x08, -0x07, -0x01, + -0x10, 0x07, 0x03, 0x06, 0x03, 0x0a, 0x08, -0x0a, 0x04, -0x09, 0x0c, 0x01, -0x10, 0x02, 0x09, 0x0d, + 0x0f, -0x01, -0x06, -0x0a, 0x04, 0x01, 0x07, 0x07, 0x0e, 0x0e, -0x04, -0x0a, -0x03, 0x07, 0x07, -0x10, + -0x04, 0x0e, -0x09, -0x0f, -0x0b, -0x0e, 0x0c, -0x0d, 0x0b, -0x06, 0x0f, -0x0d, 0x0b, 0x04, -0x10, -0x10, + -0x0e, 0x09, 0x0d, -0x02, -0x0e, -0x06, -0x0b, -0x0f, -0x08, -0x0f, -0x0d, -0x0a, -0x02, 0x03, 0x0b, -0x0a, + }); + + try testArgs(@Vector(1, u5), .{ + 0x0a, + }, .{ + 0x1c, + }); + try testArgs(@Vector(2, u5), .{ + 0x01, 0x07, + }, .{ + 0x03, 0x1d, + }); + try testArgs(@Vector(4, u5), .{ + 0x1c, 0x0d, 0x1f, 0x0a, + }, .{ + 0x14, 0x03, 0x07, 0x02, + }); + try testArgs(@Vector(8, u5), .{ + 0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10, + }, .{ + 0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a, + }); + try testArgs(@Vector(16, u5), .{ + 0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05, + }, .{ + 0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05, + }); + try testArgs(@Vector(32, u5), .{ + 0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00, + 0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16, + }, .{ + 0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b, + 0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e, + }); + try testArgs(@Vector(64, u5), .{ + 0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03, + 0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06, + 0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16, + 0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b, + }, .{ + 0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03, + 0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06, + 0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f, + 0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c, + }); + try testArgs(@Vector(128, u5), .{ + 0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b, + 0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f, + 0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01, + 0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05, + 0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d, + 0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02, + 0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10, + 0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01, + }, .{ + 0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12, + 0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07, + 0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f, + 0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07, + 0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a, + 0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04, + 0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c, + 0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09, + }); + + try testArgs(@Vector(1, i7), .{ + 0x3b, + }, .{ + 0x0d, + }); + try testArgs(@Vector(2, i7), .{ + -0x3e, -0x06, + }, .{ + -0x37, -0x0f, + }); + try testArgs(@Vector(4, i7), .{ + 0x35, 0x29, -0x17, 0x39, + }, .{ + -0x2c, -0x02, -0x29, -0x1a, + }); + try testArgs(@Vector(8, i7), .{ + 0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c, + }, .{ + 0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05, + }); + try testArgs(@Vector(16, i7), .{ + -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31, + }, .{ + -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09, + }); + try testArgs(@Vector(32, i7), .{ + 0x04, 0x09, 0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11, -0x2a, 0x29, -0x16, -0x3b, -0x1e, + 0x3a, -0x0d, 0x11, 0x16, 0x27, 0x0f, 0x2f, 0x14, 0x3b, -0x2f, -0x3d, 0x1d, -0x08, -0x2e, -0x2a, -0x33, + }, .{ + -0x09, 0x3c, 0x15, -0x25, -0x03, 0x0a, 0x11, 0x03, 0x12, -0x1d, -0x23, 0x29, -0x30, -0x35, -0x0e, -0x15, + -0x1c, -0x14, 0x07, 0x29, -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22, -0x15, -0x2d, 0x04, 0x19, 0x14, -0x1d, + }); + try testArgs(@Vector(64, i7), .{ + 0x23, 0x09, -0x13, 0x03, 0x19, -0x35, -0x06, -0x3c, -0x31, 0x12, 0x09, 0x22, -0x15, -0x1c, -0x25, -0x31, + 0x3a, -0x31, 0x05, 0x0b, -0x14, 0x38, 0x39, 0x15, 0x15, -0x11, 0x11, -0x21, 0x2f, 0x3d, -0x2e, -0x33, + -0x38, 0x1b, 0x14, 0x1d, 0x0d, -0x16, 0x10, -0x0a, 0x25, 0x0d, 0x1e, 0x1a, -0x15, 0x21, 0x3e, -0x0c, + 0x03, 0x3f, 0x1f, 0x17, 0x2c, -0x0a, -0x2b, 0x1f, 0x32, 0x09, 0x0f, -0x15, 0x24, -0x35, 0x27, -0x13, + }, .{ + -0x20, 0x25, 0x38, -0x28, 0x06, -0x2f, -0x0b, -0x2b, 0x21, -0x23, -0x08, 0x06, -0x2a, -0x26, 0x33, -0x2f, + 0x06, -0x1b, 0x3c, -0x3d, 0x3e, 0x1f, 0x27, 0x28, -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e, + 0x0e, -0x2c, -0x0f, -0x3b, 0x1b, 0x17, 0x3f, -0x3a, 0x21, -0x16, 0x11, -0x0a, 0x1b, 0x2a, 0x27, 0x3e, + -0x09, -0x34, 0x20, 0x3e, -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21, 0x13, 0x22, 0x0c, -0x1f, 0x38, 0x21, + }); + try testArgs(@Vector(128, i7), .{ + -0x38, -0x10, 0x08, -0x2b, 0x3e, -0x19, 0x39, -0x1f, -0x27, -0x10, -0x0c, 0x02, 0x07, 0x10, -0x1a, 0x0b, + 0x3c, -0x2e, 0x1b, -0x17, 0x3e, -0x1b, -0x04, 0x35, 0x2d, 0x0d, 0x33, 0x0f, 0x18, 0x0b, 0x1a, -0x09, + 0x25, -0x0b, -0x21, 0x3a, -0x28, 0x12, 0x16, 0x03, -0x1f, 0x1d, -0x1c, -0x1a, -0x38, 0x32, 0x3d, -0x2a, + -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02, -0x13, -0x23, 0x2f, 0x0a, -0x22, 0x15, 0x34, -0x06, + -0x2e, -0x3b, 0x26, 0x38, 0x33, -0x29, -0x0c, 0x2e, 0x07, -0x19, 0x3c, -0x35, -0x33, 0x39, 0x3c, 0x37, + -0x07, -0x13, 0x16, 0x05, -0x27, 0x28, -0x2b, -0x07, -0x25, -0x01, 0x1d, -0x0a, -0x01, 0x1d, -0x2a, -0x30, + 0x31, 0x0a, -0x24, 0x0c, 0x35, -0x1c, -0x04, 0x21, -0x35, 0x12, 0x19, 0x3d, -0x0c, 0x20, 0x28, -0x22, + -0x3c, 0x09, 0x11, -0x0c, -0x14, -0x39, 0x0f, -0x40, -0x0a, 0x0f, 0x1b, 0x34, -0x27, 0x35, 0x0e, -0x3d, + }, .{ + -0x1a, 0x06, 0x1f, -0x24, -0x21, -0x3d, 0x1f, -0x18, 0x2f, -0x38, 0x2f, -0x0f, 0x20, 0x2d, 0x31, -0x09, + -0x1d, 0x3a, 0x24, -0x09, 0x0c, -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29, 0x23, -0x37, -0x05, 0x27, -0x12, + 0x23, -0x14, 0x26, 0x36, -0x33, -0x1d, -0x0f, 0x32, 0x2a, -0x34, -0x31, 0x0a, -0x33, -0x34, 0x30, 0x3d, + -0x1a, 0x0f, 0x16, 0x07, 0x2d, -0x2b, 0x2c, -0x2d, 0x34, -0x07, 0x32, 0x3a, 0x2e, -0x1c, 0x2e, 0x0f, + 0x02, 0x33, -0x1e, -0x05, -0x40, -0x0a, 0x3d, -0x28, -0x21, -0x2b, -0x18, 0x02, 0x01, -0x2c, -0x16, -0x3b, + 0x27, 0x23, -0x19, 0x13, -0x2c, 0x3c, -0x1a, 0x0e, -0x25, -0x19, 0x06, 0x1b, -0x3f, 0x26, 0x30, 0x0d, + -0x0e, -0x2f, -0x28, 0x3b, -0x0e, 0x2d, 0x3d, 0x03, 0x0d, -0x23, 0x02, 0x26, 0x0c, 0x31, -0x10, -0x10, + 0x37, -0x38, -0x0f, 0x20, -0x17, 0x02, 0x3e, -0x40, 0x37, 0x22, 0x06, 0x14, -0x31, -0x1e, -0x36, -0x2c, + }); + + try testArgs(@Vector(1, u7), .{ + 0x72, + }, .{ + 0x0c, + }); + try testArgs(@Vector(2, u7), .{ + 0x0c, 0x3a, + }, .{ + 0x72, 0x0b, + }); + try testArgs(@Vector(4, u7), .{ + 0x68, 0x2b, 0x52, 0x6e, + }, .{ + 0x74, 0x79, 0x10, 0x67, + }); + try testArgs(@Vector(8, u7), .{ + 0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b, + }, .{ + 0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c, + }); + try testArgs(@Vector(16, u7), .{ + 0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69, + }, .{ + 0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b, + }); + try testArgs(@Vector(32, u7), .{ + 0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73, + 0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b, + }, .{ + 0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68, + 0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c, + }); + try testArgs(@Vector(64, u7), .{ + 0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75, + 0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e, + 0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f, + 0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b, + }, .{ + 0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a, + 0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05, + 0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34, + 0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c, + }); + try testArgs(@Vector(128, u7), .{ + 0x5c, + 0x65, + 0x65, + 0x34, + 0x31, + 0x03, + 0x7a, + 0x56, + 0x16, + 0x74, + 0x5c, + 0x7f, + 0x2a, + 0x46, + 0x2a, + 0x5f, + 0x62, + 0x06, + 0x51, + 0x23, + 0x58, + 0x1f, + 0x5a, + 0x2d, + 0x29, + 0x21, + 0x26, + 0x5a, + 0x5a, + 0x13, + 0x13, + 0x46, + 0x26, + 0x1c, + 0x06, + 0x2d, + 0x08, + 0x52, + 0x5b, + 0x6f, + 0x2d, + 0x4a, + 0x00, + 0x40, + 0x68, + 0x27, + 0x00, + 0x4a, + 0x3a, + 0x22, + 0x2d, + 0x5b, + 0x05, + 0x26, + 0x4e, + 0x6f, + 0x46, + 0x4d, + 0x14, + 0x70, + 0x51, + 0x04, + 0x66, + 0x13, + 0x4c, + 0x7c, + 0x67, + 0x23, + 0x13, + 0x55, + 0x1b, + 0x30, + 0x7d, + 0x04, + 0x47, + 0x78, + 0x05, + 0x09, + 0x5a, + 0x20, + 0x2e, + 0x17, + 0x11, + 0x49, + 0x6c, + 0x5e, + 0x34, + 0x3e, + 0x66, + 0x60, + 0x5d, + 0x75, + 0x48, + 0x1d, + 0x69, + 0x67, + 0x40, + 0x2d, + 0x7b, + 0x31, + 0x13, + 0x60, + 0x19, + 0x2f, + 0x3e, + 0x7d, + 0x23, + 0x6a, + 0x0e, + 0x16, + 0x44, + 0x34, + 0x5d, + 0x5a, + 0x2a, + 0x0b, + 0x64, + 0x07, + 0x22, + 0x5b, + 0x24, + 0x22, + 0x3b, + 0x46, + 0x23, + 0x65, + 0x5d, + 0x34, + }, .{ + 0x4b, + 0x36, + 0x7a, + 0x13, + 0x5a, + 0x4b, + 0x69, + 0x4b, + 0x1d, + 0x02, + 0x1b, + 0x3f, + 0x61, + 0x21, + 0x45, + 0x48, + 0x44, + 0x61, + 0x25, + 0x42, + 0x57, + 0x7d, + 0x7a, + 0x45, + 0x22, + 0x2e, + 0x44, + 0x3f, + 0x3a, + 0x14, + 0x07, + 0x6e, + 0x68, + 0x51, + 0x03, + 0x6b, + 0x11, + 0x32, + 0x6d, + 0x6f, + 0x44, + 0x5a, + 0x61, + 0x6d, + 0x71, + 0x66, + 0x54, + 0x14, + 0x5d, + 0x56, + 0x22, + 0x5c, + 0x3a, + 0x72, + 0x16, + 0x39, + 0x59, + 0x3e, + 0x27, + 0x4d, + 0x3d, + 0x44, + 0x72, + 0x2c, + 0x71, + 0x74, + 0x3b, + 0x6c, + 0x70, + 0x39, + 0x0f, + 0x5c, + 0x71, + 0x04, + 0x67, + 0x02, + 0x2c, + 0x18, + 0x0f, + 0x14, + 0x2d, + 0x24, + 0x51, + 0x34, + 0x6d, + 0x0c, + 0x19, + 0x0f, + 0x73, + 0x79, + 0x3d, + 0x74, + 0x20, + 0x15, + 0x22, + 0x25, + 0x09, + 0x14, + 0x09, + 0x71, + 0x2d, + 0x6f, + 0x09, + 0x2e, + 0x27, + 0x75, + 0x57, + 0x62, + 0x4d, + 0x07, + 0x62, + 0x01, + 0x41, + 0x2d, + 0x5d, + 0x4c, + 0x77, + 0x10, + 0x7f, + 0x30, + 0x0f, + 0x50, + 0x15, + 0x39, + 0x34, + 0x7c, + 0x33, + 0x16, + }); + + try testArgs(@Vector(1, i8), .{ + -0x54, + }, .{ + 0x0f, + }); + try testArgs(@Vector(2, i8), .{ + -0x4d, 0x55, + }, .{ + 0x7d, -0x5d, + }); + try testArgs(@Vector(4, i8), .{ + 0x73, 0x6f, 0x6e, -0x49, + }, .{ + -0x66, 0x23, 0x21, -0x56, + }); + try testArgs(@Vector(8, i8), .{ + 0x44, -0x37, 0x33, -0x2b, -0x1f, 0x3e, 0x50, -0x4d, + }, .{ + 0x6a, 0x1a, -0x0e, 0x4c, -0x46, 0x03, -0x17, 0x3e, + }); + try testArgs(@Vector(16, i8), .{ + -0x52, 0x1a, -0x4b, 0x4e, -0x75, 0x33, -0x43, 0x30, 0x71, -0x30, -0x73, -0x53, 0x64, 0x1f, -0x27, 0x36, + }, .{ + 0x65, 0x77, -0x62, 0x0f, 0x15, 0x52, 0x5c, 0x12, -0x10, 0x36, 0x6d, 0x42, -0x24, -0x79, -0x32, -0x75, + }); + try testArgs(@Vector(32, i8), .{ + -0x12, -0x1e, 0x18, 0x6e, 0x31, 0x53, -0x6a, -0x34, 0x13, 0x4d, 0x30, -0x7d, -0x31, 0x1e, -0x24, 0x32, + -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b, -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06, + }, .{ + 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x01, 0x4a, + 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, -0x01, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67, + }); + try testArgs(@Vector(64, i8), .{ + -0x05, 0x76, 0x4e, -0x5c, 0x7b, -0x1a, -0x38, -0x2e, 0x3d, 0x36, 0x01, 0x30, -0x02, -0x71, -0x24, 0x24, + -0x2e, -0x6e, -0x60, 0x74, -0x80, -0x1c, -0x34, -0x08, -0x33, 0x77, 0x1c, -0x0f, 0x45, -0x51, -0x1d, 0x35, + -0x45, 0x44, 0x27, -0x3c, 0x6b, 0x58, -0x6a, -0x26, 0x06, -0x30, -0x21, -0x0a, 0x60, -0x11, -0x05, 0x75, + 0x38, 0x72, -0x6d, -0x1f, -0x7f, 0x74, -0x6b, -0x14, -0x80, 0x35, -0x0f, -0x1e, 0x6a, 0x17, -0x74, -0x6c, + }, .{ + -0x5d, 0x2d, 0x55, 0x40, -0x7c, 0x67, 0x61, 0x5f, 0x14, 0x5b, -0x0c, -0x4d, -0x5f, 0x25, 0x36, 0x3c, + -0x75, -0x48, -0x2b, 0x76, -0x57, -0x4a, 0x1d, 0x65, -0x32, 0x18, -0x2a, -0x0a, -0x6e, -0x3c, -0x62, 0x4e, + -0x24, -0x3c, 0x7d, -0x79, -0x1a, -0x14, -0x03, -0x56, 0x7a, 0x5f, 0x64, -0x68, 0x5f, -0x10, -0x63, -0x07, + 0x79, -0x44, 0x47, 0x7d, 0x6e, 0x77, 0x03, -0x4e, 0x67, 0x38, 0x46, -0x44, -0x41, 0x66, -0x16, -0x0a, + }); + try testArgs(@Vector(128, i8), .{ + 0x30, 0x70, -0x2a, -0x29, -0x35, -0x69, -0x18, 0x2b, 0x4a, -0x17, -0x5f, -0x36, 0x34, -0x26, 0x03, -0x2d, + -0x75, -0x27, -0x07, -0x49, -0x58, 0x00, -0x45, 0x5d, -0x11, -0x68, 0x34, 0x73, -0x4d, 0x7f, -0x25, -0x6a, + 0x46, -0x1d, -0x68, 0x04, 0x64, -0x0d, 0x30, 0x27, -0x24, 0x67, 0x3c, -0x7c, -0x2e, -0x24, 0x24, 0x3e, + -0x2c, -0x05, 0x4e, -0x17, 0x6d, 0x57, 0x76, 0x35, -0x3d, 0x51, 0x71, -0x4e, 0x50, 0x26, 0x4a, -0x42, + 0x73, -0x36, -0x5d, 0x2a, 0x55, 0x33, -0x2b, -0x76, 0x08, 0x43, 0x77, -0x73, -0x0a, 0x5c, -0x03, -0x50, + -0x0a, -0x1c, -0x20, 0x3c, -0x7e, 0x60, 0x11, -0x77, 0x25, -0x71, 0x31, 0x2d, -0x4b, -0x26, -0x2a, 0x7f, + -0x1f, 0x23, -0x34, -0x1f, 0x35, 0x0d, 0x3e, 0x76, -0x08, 0x2c, 0x12, 0x3e, -0x09, -0x3e, 0x4b, -0x52, + -0x1a, -0x44, -0x53, -0x41, -0x6d, -0x5e, -0x06, -0x04, 0x3f, -0x2e, 0x01, 0x54, 0x19, -0x5a, -0x62, -0x3a, + }, .{ + 0x42, -0x11, -0x08, -0x64, -0x55, 0x31, 0x27, -0x66, 0x38, 0x5a, 0x25, -0x68, 0x0b, -0x41, -0x0d, 0x60, + -0x17, -0x6d, 0x62, -0x65, -0x5e, -0x1c, -0x35, 0x28, 0x1c, -0x74, -0x7f, -0x1c, 0x3a, 0x4e, 0x05, -0x08, + 0x30, -0x77, 0x03, 0x68, -0x2c, 0x5c, 0x74, 0x6a, -0x21, 0x0a, 0x36, -0x55, 0x21, 0x29, -0x05, 0x70, + 0x23, 0x3b, 0x0a, 0x7a, 0x19, 0x14, 0x65, -0x1d, 0x2b, 0x65, 0x33, 0x2a, 0x52, -0x63, 0x57, 0x10, + -0x1b, 0x26, -0x46, -0x7e, -0x25, 0x79, -0x01, -0x0d, -0x49, -0x4d, 0x74, 0x03, 0x77, 0x16, 0x03, -0x3d, + 0x1c, 0x25, 0x5a, -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b, -0x15, -0x1d, 0x32, 0x31, + 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, -0x02, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c, + 0x6d, -0x68, -0x71, -0x6b, -0x11, 0x44, -0x75, -0x55, -0x67, -0x52, 0x64, -0x3d, -0x05, -0x76, -0x6d, -0x44, + }); + + try testArgs(@Vector(1, u8), .{ + 0x1f, + }, .{ + 0x06, + }); + try testArgs(@Vector(2, u8), .{ + 0x80, 0x63, + }, .{ + 0xe4, 0x28, + }); + try testArgs(@Vector(4, u8), .{ + 0x83, 0x9e, 0x1e, 0xc1, + }, .{ + 0xf0, 0x5c, 0x46, 0x85, + }); + try testArgs(@Vector(8, u8), .{ + 0x1e, 0x4d, 0x9d, 0x2a, 0x4c, 0x74, 0x0a, 0x83, + }, .{ + 0x28, 0x60, 0xa9, 0xb5, 0xd9, 0xa6, 0xf1, 0xb6, + }); + try testArgs(@Vector(16, u8), .{ + 0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f, + }, .{ + 0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e, + }); + try testArgs(@Vector(32, u8), .{ + 0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a, + 0x4c, 0x05, 0x37, 0xc9, 0x8a, 0xcb, 0x91, 0x23, 0x09, 0x5f, 0xb8, 0x99, 0x4a, 0x75, 0x26, 0xe4, + }, .{ + 0xff, 0x0f, 0x99, 0x49, 0xa6, 0x25, 0xa7, 0xd4, 0xc9, 0x2f, 0x97, 0x6a, 0x01, 0xd6, 0x6e, 0x41, + 0xa4, 0xb5, 0x3c, 0x03, 0xea, 0x82, 0x9c, 0x5f, 0xac, 0x07, 0x16, 0x15, 0x1c, 0x64, 0x25, 0x2f, + }); + try testArgs(@Vector(64, u8), .{ + 0xaa, 0x08, 0xeb, 0xb2, 0xd7, 0x89, 0x0f, 0x98, 0xda, 0x9f, 0xa6, 0x4e, 0x3c, 0xce, 0x1b, 0x1b, + 0x9e, 0x5f, 0x2b, 0xd6, 0x59, 0x26, 0x47, 0x05, 0x2a, 0xb7, 0xd1, 0x10, 0xde, 0xd9, 0x84, 0x00, + 0x07, 0xc0, 0xaa, 0x6e, 0xfa, 0x3b, 0x97, 0x85, 0xa8, 0x42, 0xd7, 0xa5, 0x90, 0xe6, 0x10, 0x1a, + 0x47, 0x84, 0xe1, 0x3e, 0xb0, 0x70, 0x26, 0x3f, 0xea, 0x24, 0xb8, 0x5f, 0xe3, 0xe3, 0x4c, 0xed, + }, .{ + 0x3b, 0xc5, 0xe0, 0x3d, 0x4f, 0x2e, 0x1d, 0xa9, 0xf7, 0x7b, 0xc7, 0xc1, 0x48, 0xc6, 0xe5, 0x9e, + 0x4d, 0xa8, 0x21, 0x37, 0xa1, 0x1a, 0x95, 0x69, 0x89, 0x2f, 0x15, 0x07, 0x3d, 0x7b, 0x69, 0x89, + 0xea, 0x87, 0xf0, 0x94, 0x67, 0xf2, 0x3d, 0x04, 0x96, 0x8a, 0xd6, 0x70, 0x7c, 0x16, 0xe7, 0x62, + 0xf0, 0x8d, 0x96, 0x65, 0xd1, 0x4a, 0x35, 0x3e, 0x7a, 0x67, 0xa6, 0x1f, 0x37, 0x66, 0xe3, 0x45, + }); + try testArgs(@Vector(128, u8), .{ + 0xa1, 0xd0, 0x7b, 0xf9, 0x7b, 0x77, 0x7b, 0x3d, 0x2d, 0x68, 0xc2, 0x7b, 0xb0, 0xb8, 0xd4, 0x7c, + 0x1a, 0x1f, 0xd2, 0x92, 0x3e, 0xcb, 0xc1, 0x6b, 0xb9, 0x4d, 0xf1, 0x67, 0x58, 0x8e, 0x77, 0xa6, + 0xb9, 0xdf, 0x10, 0x6f, 0xbe, 0xe3, 0x33, 0xb6, 0x93, 0x77, 0x80, 0xef, 0x09, 0x9d, 0x61, 0x40, + 0xa2, 0xf4, 0x52, 0x18, 0x9d, 0xe4, 0xb0, 0xaf, 0x0a, 0xa7, 0x0b, 0x09, 0x67, 0x38, 0x71, 0x04, + 0x72, 0xa1, 0xd2, 0xfd, 0xf8, 0xf0, 0xa7, 0x23, 0x24, 0x5b, 0x7d, 0xfb, 0x43, 0xba, 0x6c, 0xc4, + 0x83, 0x46, 0x0e, 0x4d, 0x6c, 0x92, 0xab, 0x4f, 0xd2, 0x70, 0x9d, 0xfe, 0xce, 0xf8, 0x05, 0x9f, + 0x98, 0x36, 0x9c, 0x90, 0x9a, 0xd0, 0xb5, 0x76, 0x16, 0xe8, 0x25, 0xc2, 0xbd, 0x91, 0xab, 0xf9, + 0x6f, 0x6c, 0xc5, 0x60, 0xe5, 0x30, 0xf2, 0xb7, 0x59, 0xc4, 0x9c, 0xdd, 0xdf, 0x04, 0x65, 0xd9, + }, .{ + 0xed, 0xe1, 0x8a, 0xf6, 0xf3, 0x8b, 0xfd, 0x1d, 0x3c, 0x87, 0xbf, 0xfe, 0x04, 0x52, 0x15, 0x82, + 0x0b, 0xb0, 0xcf, 0xcf, 0xf8, 0x03, 0x9c, 0xef, 0xc1, 0x76, 0x7e, 0xe3, 0xe9, 0xa8, 0x18, 0x90, + 0xd4, 0xc4, 0x91, 0x15, 0x68, 0x7f, 0x65, 0xd8, 0xe1, 0xb3, 0x23, 0xc2, 0x7d, 0x84, 0x3b, 0xaf, + 0x74, 0x69, 0x07, 0x2a, 0x1b, 0x5f, 0x0e, 0x44, 0x0d, 0x2b, 0x9c, 0x82, 0x41, 0xf9, 0x7f, 0xb5, + 0xc4, 0xd9, 0xcb, 0xd3, 0xc5, 0x31, 0x8b, 0x5f, 0xda, 0x09, 0x9b, 0x29, 0xa3, 0xb7, 0x13, 0x0d, + 0x55, 0x9b, 0x59, 0x33, 0x2a, 0x59, 0x3a, 0x44, 0x1f, 0xd3, 0x40, 0x4e, 0xde, 0x2c, 0xe4, 0x16, + 0xfd, 0xc3, 0x02, 0x74, 0xaa, 0x65, 0xfd, 0xc8, 0x2a, 0x8a, 0xdb, 0xae, 0x44, 0x28, 0x62, 0xa4, + 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3, + }); + + try testArgs(@Vector(1, i9), .{ + 0x002, + }, .{ + 0x0bd, + }); + try testArgs(@Vector(2, i9), .{ + 0x00c, 0x0b1, + }, .{ + -0x00b, -0x009, + }); + try testArgs(@Vector(4, i9), .{ + 0x0b2, 0x02b, -0x09d, -0x03c, + }, .{ + 0x031, 0x078, 0x016, -0x08a, + }); + try testArgs(@Vector(8, i9), .{ + 0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8, + }, .{ + 0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003, + }); + try testArgs(@Vector(16, i9), .{ + 0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a, + }, .{ + 0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0, + }); + try testArgs(@Vector(32, i9), .{ + -0x003, 0x01b, 0x0b6, -0x009, 0x090, 0x047, -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf, 0x06a, -0x0e0, 0x03f, 0x007, 0x0a1, + 0x009, -0x0fb, 0x034, 0x0ba, 0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029, -0x076, 0x044, 0x0d4, 0x083, -0x002, 0x04e, + }, .{ + -0x0cb, 0x0e3, 0x014, 0x02f, -0x0da, -0x06a, 0x07f, 0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017, -0x00d, 0x041, 0x03e, + -0x096, -0x008, 0x075, -0x0bc, 0x0f9, -0x0fc, -0x0a7, 0x0ef, 0x0f9, 0x066, 0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6, + }); + try testArgs(@Vector(64, i9), .{ + -0x016, -0x0ae, 0x08b, -0x0eb, -0x0b2, 0x02f, 0x039, -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb, 0x0ca, -0x049, 0x04e, + -0x019, -0x0d9, -0x0bd, 0x0ae, -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9, 0x02c, 0x0cc, 0x093, -0x022, 0x07a, -0x093, + 0x0e5, -0x011, -0x003, 0x070, -0x042, -0x0ad, 0x0be, -0x038, -0x0bf, 0x098, 0x090, -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039, + -0x035, -0x0e5, -0x054, 0x04c, 0x04b, -0x09f, 0x091, -0x039, 0x09b, -0x029, 0x014, -0x0d3, 0x06b, 0x0ae, 0x091, 0x082, + }, .{ + -0x0bb, -0x0ec, 0x0fa, 0x055, 0x06f, 0x011, -0x09d, 0x083, -0x066, 0x014, 0x007, 0x002, -0x0ee, -0x0d9, 0x0c3, -0x087, + 0x03c, -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b, -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001, -0x0ba, 0x0c4, 0x0bb, + 0x032, 0x01e, -0x074, -0x058, -0x040, 0x0aa, 0x077, 0x028, -0x061, 0x076, -0x04e, 0x01a, -0x05f, -0x073, 0x0ea, 0x06e, + -0x069, -0x0a1, -0x041, 0x013, -0x01c, -0x0f8, 0x053, 0x0f8, -0x0c3, 0x058, -0x02d, 0x0f1, -0x045, 0x04b, -0x0b1, -0x0f3, + }); + try testArgs(@Vector(128, i9), .{ + 0x0d4, 0x036, 0x0bd, -0x046, -0x0a7, 0x09e, 0x0dd, 0x043, 0x098, -0x09a, -0x06f, 0x0bb, -0x0b7, 0x021, 0x0a3, 0x0f0, + 0x069, -0x08b, 0x0da, 0x016, -0x049, 0x0d0, 0x07b, 0x004, 0x0ad, -0x07c, -0x04e, -0x011, 0x01f, -0x035, 0x028, -0x0c9, + -0x0eb, 0x077, 0x08b, -0x009, 0x024, -0x058, 0x04e, -0x0c0, -0x01d, -0x0a7, 0x088, 0x01b, -0x0f3, -0x0c5, -0x08e, 0x0dc, + 0x07d, 0x086, -0x032, 0x0a9, -0x00c, -0x06a, 0x06c, 0x032, 0x083, 0x0ec, 0x0ec, -0x0a6, 0x029, 0x044, -0x07f, 0x068, + -0x038, 0x0f6, 0x0b5, -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c, -0x037, 0x0cc, -0x033, 0x08a, -0x0b4, -0x039, + 0x01e, 0x06c, 0x015, -0x081, -0x029, 0x017, -0x080, -0x01e, -0x081, 0x04f, -0x071, -0x073, 0x0c3, 0x079, 0x0ad, 0x087, + -0x072, 0x067, -0x064, -0x0d4, 0x0b4, 0x003, 0x0b1, 0x0bb, 0x0cc, -0x0e9, 0x0e7, 0x015, 0x07b, 0x0e4, -0x0ee, -0x07f, + -0x0bf, 0x0cd, -0x056, 0x0ea, 0x0e5, 0x0fa, 0x0e1, -0x087, 0x0fe, 0x017, 0x071, -0x0d1, -0x053, -0x088, -0x0ef, 0x01b, + }, .{ + 0x0ea, -0x018, 0x0ab, 0x039, 0x0ec, 0x0cc, -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc, 0x099, -0x03c, -0x0b4, + -0x0fe, -0x0ce, 0x0d6, -0x084, 0x08f, 0x04b, 0x0cc, -0x023, 0x01e, -0x09c, 0x058, 0x0f4, -0x0a7, 0x085, -0x049, -0x050, + 0x0f3, -0x036, -0x0fe, 0x070, -0x0a2, -0x081, -0x066, 0x057, -0x017, -0x0c8, 0x070, 0x09b, -0x0e4, -0x03b, -0x0d9, 0x081, + 0x041, 0x0ec, -0x062, 0x0b9, -0x0d2, -0x02a, 0x0ab, 0x072, 0x001, -0x082, -0x0cd, 0x0c8, 0x017, -0x09d, 0x094, -0x027, + 0x09c, 0x024, -0x0ec, 0x02f, 0x066, -0x08e, 0x0ee, 0x099, 0x08e, -0x0e5, -0x094, 0x0bb, 0x02f, -0x0fe, -0x07e, -0x0ad, + 0x05c, 0x066, 0x07e, -0x0a9, 0x0fe, -0x0e3, -0x068, 0x058, -0x007, 0x0d6, -0x0e8, -0x0d6, 0x038, 0x0b8, -0x0b2, 0x0c1, + 0x09a, 0x02f, 0x0d9, 0x07d, 0x0fc, 0x0f7, -0x005, -0x01c, 0x0c2, 0x066, 0x064, -0x096, -0x040, 0x065, -0x00d, -0x063, + 0x031, -0x088, 0x090, -0x077, 0x0e2, 0x0a8, -0x0e0, -0x077, 0x0eb, 0x0c3, -0x0ad, 0x008, 0x04e, -0x095, -0x041, -0x0a6, + }); + + try testArgs(@Vector(1, u9), .{ + 0x09e, + }, .{ + 0x171, + }); + try testArgs(@Vector(2, u9), .{ + 0x0bf, 0x042, + }, .{ + 0x154, 0x14b, + }); + try testArgs(@Vector(4, u9), .{ + 0x0a5, 0x1ba, 0x1ef, 0x0b3, + }, .{ + 0x15d, 0x1d3, 0x00e, 0x13b, + }); + try testArgs(@Vector(8, u9), .{ + 0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f, + }, .{ + 0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052, + }); + try testArgs(@Vector(16, u9), .{ + 0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c, + }, .{ + 0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d, + }); + try testArgs(@Vector(32, u9), .{ + 0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f, + 0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2, + }, .{ + 0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad, + 0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2, + }); + try testArgs(@Vector(64, u9), .{ + 0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066, + 0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e, + 0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170, + 0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a, + }, .{ + 0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e, + 0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d, + 0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe, + 0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b, + }); + try testArgs(@Vector(128, u9), .{ + 0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098, + 0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097, + 0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c, + 0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199, + 0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c, + 0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe, + 0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180, + 0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152, + }, .{ + 0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029, + 0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7, + 0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e, + 0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032, + 0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7, + 0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec, + 0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196, + 0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2, + }); + + try testArgs(@Vector(1, i15), .{ + 0x1309, + }, .{ + 0x1422, + }); + try testArgs(@Vector(2, i15), .{ + 0x32e8, 0x3d81, + }, .{ + 0x195c, 0x13e8, + }); + try testArgs(@Vector(4, i15), .{ + -0x3485, 0x2320, -0x1725, 0x1e6e, + }, .{ + 0x2910, 0x3293, 0x3144, -0x3bbc, + }); + try testArgs(@Vector(8, i15), .{ + 0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace, + }, .{ + -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f, + }); + try testArgs(@Vector(16, i15), .{ + -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2, + 0x25ec, 0x3cf1, 0x07ea, 0x3972, 0x09d8, -0x18a6, 0x06dd, -0x1c34, + }, .{ + -0x0ec7, 0x1144, -0x1a94, 0x255f, -0x1fbb, -0x1500, -0x0e4f, 0x0b67, + 0x1352, -0x0d6b, 0x2f3e, -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6, + }); + try testArgs(@Vector(32, i15), .{ + -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778, 0x394a, + -0x0383, -0x2fb7, 0x04cf, 0x033a, 0x2bff, 0x3997, -0x112c, 0x3a1a, + 0x1adf, 0x270b, 0x182e, -0x23f6, 0x1a33, 0x2644, -0x0b41, -0x1c48, + 0x1c2d, -0x2a40, 0x007c, 0x1a62, 0x30d9, 0x0e4b, 0x32ee, 0x2b46, + }, .{ + 0x1af0, 0x286f, -0x14fe, 0x2318, 0x002a, -0x26b2, 0x350b, 0x0884, + 0x3011, 0x276a, 0x2b2a, 0x22d3, -0x1ece, 0x0143, 0x2f5b, -0x0fa2, + 0x2412, -0x3d86, -0x3774, -0x09a5, 0x0fbf, 0x32f7, -0x0a23, -0x3d5a, + -0x1523, -0x27c5, 0x097f, 0x2923, 0x3060, 0x113e, -0x0643, -0x1287, + }); + try testArgs(@Vector(64, i15), .{ + 0x0419, 0x1803, -0x3897, 0x2b0c, 0x08a3, -0x39d0, 0x174e, -0x29c6, + 0x0152, -0x1078, 0x1113, 0x23bf, 0x0990, -0x2777, 0x2ba4, -0x058b, + -0x2d4a, -0x23ba, 0x3875, -0x1720, -0x2625, -0x1c8f, 0x1f7c, 0x3f73, + 0x3780, -0x3043, -0x0d8d, 0x2ced, 0x091a, 0x3481, -0x1917, -0x352f, + 0x34c7, 0x322f, -0x20ae, -0x0653, 0x1c82, 0x09a8, -0x1a0b, -0x1dff, + -0x24c2, -0x2592, -0x3ff7, 0x1515, -0x3d32, 0x1e9e, -0x334d, 0x352b, + -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c, -0x2bad, -0x2682, 0x32cf, + 0x31e4, -0x085c, -0x0c84, -0x2f11, 0x03ba, -0x0111, -0x2634, 0x344f, + }, .{ + 0x011a, 0x186c, -0x2d7e, 0x29b1, 0x2cfb, -0x077b, 0x3e8c, -0x3a62, + 0x3575, 0x35f0, -0x2529, -0x3040, 0x398e, -0x0c56, 0x2aa5, 0x0a72, + -0x0c36, -0x2c53, 0x275b, -0x1155, 0x1a9d, -0x34af, -0x3d4f, 0x14a0, + -0x0b88, 0x0b34, 0x2d60, 0x19ee, -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b, + -0x23f4, 0x0472, 0x1977, -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f, + -0x2dcb, 0x2e99, 0x0dd1, 0x0377, -0x3f91, -0x3719, 0x0248, 0x3c40, + -0x08d4, -0x2f12, -0x12ee, 0x3bc0, 0x3c4a, 0x1ff3, -0x1096, -0x37e0, + -0x0879, -0x354f, -0x2277, 0x1ced, 0x0833, -0x0f7e, 0x2070, 0x0d81, + }); + + try testArgs(@Vector(1, u15), .{ + 0x18c0, + }, .{ + 0x0c85, + }); + try testArgs(@Vector(2, u15), .{ + 0x3697, 0x744b, + }, .{ + 0x60d5, 0x4172, + }); + try testArgs(@Vector(4, u15), .{ + 0x7c31, 0x62c3, 0x7fe9, 0x4a52, + }, .{ + 0x28bf, 0x58a9, 0x09d5, 0x111f, + }); + try testArgs(@Vector(8, u15), .{ + 0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665, + }, .{ + 0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66, + }); + try testArgs(@Vector(16, u15), .{ + 0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43, + 0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f, + }, .{ + 0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2, + 0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3, + }); + try testArgs(@Vector(32, u15), .{ + 0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074, + 0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc, + 0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850, + 0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c, + }, .{ + 0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89, + 0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda, + 0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6, + 0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960, + }); + try testArgs(@Vector(64, u15), .{ + 0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a, + 0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7, + 0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0, + 0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6, + 0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98, + 0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2, + 0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e, + 0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d, + }, .{ + 0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1, + 0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849, + 0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f, + 0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97, + 0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3, + 0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2, + 0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc, + 0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29, + }); + + try testArgs(@Vector(1, i16), .{ + -0x7b9c, + }, .{ + 0x600a, + }); + try testArgs(@Vector(2, i16), .{ + 0x43cc, -0x1421, + }, .{ + -0x2b0e, 0x4d99, + }); + try testArgs(@Vector(4, i16), .{ + 0x558f, 0x6d92, 0x488f, 0x0a04, + }, .{ + -0x01a9, + 0x2ee4, + 0x24a9, + -0x5fee, + }); + try testArgs(@Vector(8, i16), .{ + -0x7e5d, -0x02e4, -0x3a72, -0x2e30, 0x7c87, 0x3ea0, 0x4f02, 0x06e4, + }, .{ + -0x417f, 0x5a13, -0x117b, 0x4c28, -0x3769, -0x56a8, 0x1656, -0x4431, + }); + try testArgs(@Vector(16, i16), .{ + 0x04be, 0x774a, 0x7395, -0x6ca2, -0x21a0, 0x35be, 0x186c, 0x5991, + -0x1a82, 0x4527, -0x2278, -0x3554, 0x42c1, 0x7f53, -0x670d, 0x1fad, + }, .{ + 0x7a7d, 0x47dd, 0x1975, 0x4028, 0x26ef, -0x24f5, -0x77c9, -0x19a5, + -0x4b04, -0x6939, -0x1b8d, 0x3718, -0x78e6, 0x0941, -0x1208, -0x392d, + }); + try testArgs(@Vector(32, i16), .{ + 0x4cde, 0x3ab0, 0x354e, 0x0bc0, -0x5333, 0x4857, -0x7ccf, -0x69da, + 0x6ab8, 0x2bf3, 0x1c5a, 0x7b11, -0x5653, 0x7bc5, 0x497e, -0x0b55, + 0x7aa8, -0x5a8c, -0x6d05, 0x6210, 0x1b64, 0x3f6f, 0x1a02, 0x65e4, + -0x6795, 0x5867, -0x6faf, -0x07cb, -0x762c, -0x7500, 0x1f1c, -0x4348, + }, .{ + 0x72f6, -0x5405, -0x3aac, 0x2857, 0x34cd, -0x1dce, -0x56d8, 0x7150, + -0x6549, 0x61bd, -0x3a9f, -0x1e02, -0x5a5a, -0x7910, -0x166d, 0x7c8e, + -0x5292, -0x6c6e, -0x37e3, 0x1514, 0x1787, 0x58cb, -0x4d99, -0x6c15, + 0x592e, -0x045f, 0x7682, -0x1eef, 0x1fb2, -0x7117, -0x2a17, -0x2d8e, + }); + try testArgs(@Vector(64, i16), .{ + 0x29c3, -0x1b1f, -0x17ce, -0x50d0, -0x5de3, 0x5ffd, 0x184a, -0x7769, + 0x445e, 0x0d8a, 0x7844, -0x757d, 0x2b32, 0x5374, -0x6ab2, -0x71c4, + 0x38f9, 0x347f, 0x2d4c, 0x69a4, -0x2f92, -0x4479, 0x427b, -0x0c5f, + 0x15ae, 0x2c86, 0x1864, -0x0095, 0x6803, -0x3484, 0x1001, -0x0560, + -0x0824, 0x7bf6, 0x7a3c, -0x458a, -0x65cc, -0x54b1, -0x75c6, 0x782e, + 0x35a7, -0x3188, -0x58ba, 0x40d0, -0x4a9c, 0x6b79, 0x1ef5, 0x67a2, + -0x3fb8, 0x1885, -0x093d, -0x4802, 0x0379, 0x2f52, 0x7f1f, 0x256c, + 0x1052, 0x1b3b, -0x6146, 0x7e0d, 0x79ca, -0x79ee, 0x3d58, 0x7482, + }, .{ + -0x0017, -0x3fdd, -0x6f93, 0x6178, 0x5c2b, 0x4eb3, 0x685b, 0x12c8, + 0x0290, -0x34f4, -0x6572, 0x3ab6, -0x3ed1, -0x5e5f, 0x3a90, -0x4540, + -0x2098, 0x6bde, 0x1246, 0x2212, -0x4d6a, -0x2a5a, 0x5cc4, -0x240f, + 0x51b2, 0x5ec0, -0x5b5f, -0x1b6e, -0x57a5, -0x06bd, -0x5132, 0x7889, + 0x2817, 0x6ada, -0x6b46, -0x6a37, -0x6475, -0x5ff4, 0x5a27, 0x1dfa, + 0x6bd6, -0x49da, -0x09bf, -0x7c53, 0x2cd3, -0x6be0, -0x2dca, 0x44bd, + -0x1b95, 0x7680, -0x5bb0, 0x7ad7, -0x1988, 0x149f, 0x631e, -0x1d2d, + 0x632b, 0x55c7, -0x3433, 0x0dde, -0x27a7, 0x560e, -0x2063, 0x4570, + }); + + try testArgs(@Vector(1, u16), .{ + 0x9d6f, + }, .{ + 0x44b1, + }); + try testArgs(@Vector(2, u16), .{ + 0xa0fa, 0xc365, + }, .{ + 0xe736, 0xc394, + }); + try testArgs(@Vector(4, u16), .{ + 0x9608, 0xa558, 0x161b, 0x206f, + }, .{ + 0x3088, 0xf25c, 0x7837, 0x9b3f, + }); + try testArgs(@Vector(8, u16), .{ + 0xcf61, 0xb121, 0x3cf1, 0x3e9f, 0x43a7, 0x8d69, 0x96f5, 0xc11e, + }, .{ + 0xee30, 0x82f0, 0x270b, 0x1498, 0x4c60, 0x6e72, 0x0b64, 0x02d4, + }); + try testArgs(@Vector(16, u16), .{ + 0x9191, 0xd23e, 0xf844, 0xd84a, 0xe907, 0xf1e8, 0x712d, 0x90af, + 0x6541, 0x3fa6, 0x92eb, 0xe35a, 0xc0c9, 0xcb47, 0xb790, 0x4453, + }, .{ + 0x21c3, 0x4039, 0x9b71, 0x60bd, 0xcd7f, 0x2ec8, 0x50ba, 0xe810, + 0xebd4, 0x06e5, 0xed18, 0x2f66, 0x7e31, 0xe282, 0xad63, 0xb25e, + }); + try testArgs(@Vector(32, u16), .{ + 0x6b6a, 0x30a9, 0xc267, 0x2231, 0xbf4c, 0x00bc, 0x9c2c, 0x2928, + 0xecad, 0x82df, 0xcfb0, 0xa4e5, 0x909b, 0x1b05, 0xaf40, 0x1fd9, + 0xcec6, 0xd8dc, 0xd4b5, 0x6d59, 0x8e3f, 0x4d8a, 0xb83a, 0x808e, + 0x47e2, 0x5782, 0x59bf, 0xcefc, 0x5179, 0x3f48, 0x93dc, 0x66d2, + }, .{ + 0x1be8, 0xe98c, 0xf9b3, 0xb008, 0x2f8d, 0xf087, 0xc9b9, 0x75aa, + 0xbd16, 0x9540, 0xc5bd, 0x2b2c, 0xd43f, 0x9394, 0x3e1d, 0xf695, + 0x167d, 0xff7a, 0xf09d, 0xdff8, 0xdfa2, 0xc779, 0x70b7, 0x01bd, + 0x46b3, 0x995a, 0xb7bc, 0xa79d, 0x5542, 0x961e, 0x37cd, 0x9c2a, + }); + try testArgs(@Vector(64, u16), .{ + 0x6b87, 0xfd84, 0x436b, 0xe345, 0xfb82, 0x81fc, 0x0992, 0x45f9, + 0x5527, 0x1f6d, 0xda46, 0x6a16, 0xf6e1, 0x8fb7, 0x3619, 0xdfe3, + 0x64ce, 0x8ac6, 0x3ae8, 0x30e3, 0xec3b, 0x4ba7, 0x02a4, 0xa694, + 0x8e68, 0x8f0c, 0x5e30, 0x0e55, 0x6538, 0x9852, 0xea35, 0x7be2, + 0xdabd, 0x57e6, 0x5b38, 0x0fb2, 0x2604, 0x85e7, 0x6595, 0x8de9, + 0x49b1, 0xe9a2, 0x3758, 0xa4d9, 0x505b, 0xc9d3, 0xddc5, 0x9a43, + 0xfd44, 0x50f5, 0x379e, 0x03b6, 0x6375, 0x692f, 0x5586, 0xc717, + 0x94dd, 0xee06, 0xb32d, 0x0bb9, 0x0e35, 0x5f8f, 0x0ba4, 0x19a8, + }, .{ + 0xbeeb, 0x3e54, 0x6486, 0x5167, 0xe432, 0x57cf, 0x9cac, 0x922e, + 0xd2f8, 0x5614, 0x2e7f, 0x19cf, 0x9a07, 0x0524, 0x168f, 0x4464, + 0x4def, 0x83ce, 0x97b4, 0xf269, 0xda5f, 0x28c1, 0x9cc3, 0xfa7c, + 0x25a0, 0x912d, 0x25b2, 0xd60d, 0xcd82, 0x0e03, 0x40cc, 0xc9dc, + 0x18eb, 0xc609, 0xb06d, 0x29e0, 0xf3c7, 0x997b, 0x8ca2, 0xa750, + 0xc9bc, 0x8f0e, 0x3916, 0xd905, 0x94f8, 0x397f, 0x98b5, 0xc61d, + 0x05db, 0x3e7a, 0xf750, 0xe8de, 0x3225, 0x81d9, 0x612e, 0x0a7e, + 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc, + }); + + try testArgs(@Vector(1, i17), .{ + 0x0538f, + }, .{ + 0x01de0, + }); + try testArgs(@Vector(2, i17), .{ + 0x0cb5d, 0x00c0b, + }, .{ + -0x0ef1d, -0x0797c, + }); + try testArgs(@Vector(4, i17), .{ + -0x06cbb, 0x08fcd, 0x05d91, -0x05824, + }, .{ + 0x0714b, 0x09218, -0x0c0d8, 0x000dd, + }); + try testArgs(@Vector(8, i17), .{ + 0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79, + }, .{ + 0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f, + }); + try testArgs(@Vector(16, i17), .{ + -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d, + 0x042d2, 0x06121, 0x0241f, 0x06833, 0x0a33b, 0x0f526, 0x0671a, 0x0c2a3, + }, .{ + 0x02be2, -0x08589, 0x0d95c, -0x001cc, -0x03183, 0x08c1a, -0x001db, 0x07604, + 0x08d92, 0x094ad, -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e, + }); + try testArgs(@Vector(32, i17), .{ + 0x01222, 0x022bc, 0x042df, 0x02205, -0x06de8, -0x0aaaf, 0x0fa4c, -0x0c708, + -0x06edd, -0x0acbe, 0x0b01f, 0x003f5, -0x0b82a, 0x0a189, -0x04f4b, 0x02122, + -0x0debd, -0x0b05f, 0x091b6, -0x074ff, 0x054e5, -0x03355, 0x08ab0, 0x0c3c8, + -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99, -0x0f096, 0x0e064, + }, .{ + 0x0d1c0, 0x02f93, 0x0e28c, 0x0862d, -0x09e1e, -0x02247, -0x01b56, 0x06633, + 0x0fdcc, -0x0731f, 0x0e084, 0x0b865, 0x089ac, -0x09e31, 0x0c730, 0x0af1d, + 0x0c9b2, -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593, -0x02c83, -0x04e28, 0x0f375, + -0x0e805, 0x0390f, 0x042a3, -0x02aed, 0x03a5a, 0x070d3, -0x0ed6a, 0x02b14, + }); + try testArgs(@Vector(64, i17), .{ + 0x0be66, 0x0e4fb, -0x0b918, -0x029b8, 0x019e8, 0x00621, 0x0e380, 0x040f6, + -0x0d095, 0x0b4d8, -0x0a3ad, -0x0eaf2, 0x03bd3, 0x0635c, 0x02444, -0x0830f, + 0x01239, -0x037ed, -0x071d1, 0x057e7, -0x02cdb, 0x0504c, 0x0612c, -0x005bf, + -0x04793, 0x03909, 0x0061c, -0x06423, 0x040d6, 0x0bc6a, -0x09204, 0x0e890, + 0x04b98, 0x00257, 0x0dc85, -0x0af2b, -0x0a1e7, 0x04ff6, 0x0b680, -0x07c61, + -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8, 0x06b52, -0x0d619, -0x09344, + -0x09b96, 0x0b81e, 0x04df8, -0x012f6, -0x0c3bd, 0x067cc, -0x0fa47, -0x05e93, + 0x07d29, 0x00d87, 0x0de1f, 0x0d24f, -0x0aede, -0x03414, -0x09a6c, 0x094dc, + }, .{ + 0x03d8e, -0x0f297, -0x0d810, 0x05b8e, -0x0630e, -0x0656f, 0x02f56, 0x0190b, + 0x0a1e6, -0x0783a, -0x00bde, 0x01bb2, -0x093a5, -0x02b3f, 0x0198c, 0x0cc55, + 0x04ec1, -0x0ed31, -0x00a80, -0x0be6d, 0x0712b, 0x0451b, 0x067a4, 0x061cd, + 0x0e799, -0x06c74, -0x09b05, 0x0dc73, -0x0a87d, -0x0cf60, -0x00f07, 0x0b101, + 0x06d5b, 0x09d61, -0x01092, 0x002ee, 0x0f192, 0x0024b, 0x04778, 0x06d05, + -0x0e460, 0x08524, -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5, + 0x071fe, 0x016d5, -0x076e2, -0x035d8, 0x02763, -0x0676f, -0x0a9aa, -0x0ab0b, + 0x012de, -0x00d05, 0x0f528, 0x07837, 0x0fc4e, -0x06304, 0x0616f, -0x0b10d, + }); + + try testArgs(@Vector(1, u17), .{ + 0x17ba6, + }, .{ + 0x1ac3a, + }); + try testArgs(@Vector(2, u17), .{ + 0x1d26d, 0x18548, + }, .{ + 0x0c0eb, 0x1bbc8, + }); + try testArgs(@Vector(4, u17), .{ + 0x1a01c, 0x12671, 0x175cc, 0x0ed36, + }, .{ + 0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18, + }); + try testArgs(@Vector(8, u17), .{ + 0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df, + }, .{ + 0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5, + }); + try testArgs(@Vector(16, u17), .{ + 0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254, + 0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38, + }, .{ + 0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6, + 0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a, + }); + try testArgs(@Vector(32, u17), .{ + 0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560, + 0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5, + 0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb, + 0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299, + }, .{ + 0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831, + 0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684, + 0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1, + 0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee, + }); + try testArgs(@Vector(64, u17), .{ + 0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc, + 0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c, + 0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355, + 0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388, + 0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136, + 0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428, + 0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7, + 0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7, + }, .{ + 0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6, + 0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18, + 0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884, + 0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43, + 0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791, + 0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1, + 0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146, + 0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5, + }); + + try testArgs(@Vector(1, i31), .{ + 0x2b94a60e, + }, .{ + 0x20451023, + }); + try testArgs(@Vector(2, i31), .{ + 0x21d4d18c, -0x1f73454a, + }, .{ + -0x18dcc667, -0x2e81b7f1, + }); + try testArgs(@Vector(4, i31), .{ + -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669, + }, .{ + -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3, + }); + try testArgs(@Vector(8, i31), .{ + 0x0ffaa22c, 0x15914f94, -0x20cec195, -0x35e7b06a, + -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e, + }, .{ + -0x178ffdb4, -0x10934a93, 0x08c3b058, -0x1579a89f, + 0x2340c302, 0x00280e85, -0x38983c31, 0x0349891e, + }); + try testArgs(@Vector(16, i31), .{ + -0x11bc6f72, 0x1ca1ca00, 0x0b49c711, -0x07fd7d21, + 0x20ab59d2, -0x07f45e94, -0x0d33151d, 0x065b8bff, + 0x2231354e, 0x21ff00a7, -0x35061bb0, -0x1135899e, + 0x2ed1c690, -0x1c1b598f, -0x19157726, -0x11c4d2c7, + }, .{ + 0x304dbbfb, -0x3e59fd39, 0x1029151a, -0x1e4d2063, + -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749, + 0x380ae142, 0x357f1b30, -0x17ccaa0d, -0x32cd12b4, + 0x305256f7, -0x298ce473, 0x244faaf4, 0x23450241, + }); + try testArgs(@Vector(32, i31), .{ + -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f, 0x2a4f2d06, + -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7, + 0x357e8c45, 0x0434b6b9, 0x28a3c5f9, 0x2d5b9944, + 0x316614a1, 0x0c12a228, 0x0422665d, 0x33c0dec9, + 0x0a7ede17, -0x02e88ae9, -0x39e76560, 0x1e4b90af, + 0x0a1527bb, 0x3a9f0405, 0x163b6eae, -0x3ff84429, + 0x1eb85fcc, 0x265f1f44, 0x2536ec34, -0x30c952a2, + -0x1f7864e5, 0x033737cd, -0x20b5718a, -0x0aad3a2f, + }, .{ + -0x2455af85, 0x210b1040, 0x39915c7d, 0x2d56c08e, + 0x1f318b8d, -0x1e125926, -0x3faaabbb, -0x254d4da5, + -0x1b2ded0f, -0x27fa4874, 0x02c0d73b, 0x123e9344, + 0x0351c023, 0x14cca255, -0x2072b9d7, 0x1e624059, + -0x07d014a1, 0x2eda3228, -0x300ff9b4, 0x333f25ad, + -0x3c653e21, 0x04b4a50e, -0x20f17e80, 0x29063cd1, + 0x2d52f6ad, -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c, + 0x397162ee, -0x2aa6708b, -0x0ef146b4, 0x04f36039, + }); + + try testArgs(@Vector(1, u31), .{ + 0x3ed1fb2d, + }, .{ + 0x1b75c3fd, + }); + try testArgs(@Vector(2, u31), .{ + 0x38754d45, 0x04a454d9, + }, .{ + 0x7d06646d, 0x228e6c44, + }); + try testArgs(@Vector(4, u31), .{ + 0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c, + }, .{ + 0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1, + }); + try testArgs(@Vector(8, u31), .{ + 0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682, + 0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e, + }, .{ + 0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd, + 0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78, + }); + try testArgs(@Vector(16, u31), .{ + 0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc, + 0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2, + 0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9, + 0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f, + }, .{ + 0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0, + 0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3, + 0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71, + 0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57, + }); + try testArgs(@Vector(32, u31), .{ + 0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477, + 0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc, + 0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27, + 0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994, + 0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be, + 0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0, + 0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73, + 0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737, + }, .{ + 0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42, + 0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53, + 0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77, + 0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b, + 0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d, + 0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db, + 0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4, + 0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338, + }); + + try testArgs(@Vector(1, i32), .{ + 0x7aef7b1e, + }, .{ + 0x60310858, + }); + try testArgs(@Vector(2, i32), .{ + -0x21910ac9, 0x669f37ef, + }, .{ + 0x1a2a1681, 0x003b1fdf, + }); + try testArgs(@Vector(4, i32), .{ + 0x7906cf0d, 0x4818a45f, -0x0a2833b6, 0x51a018c9, + }, .{ + -0x05a3e6a7, -0x47f4a500, 0x50d1141f, -0x264c85c2, + }); + try testArgs(@Vector(8, i32), .{ + 0x7566235a, -0x7720144f, -0x7d4f5489, 0x3cd736c8, + -0x77388801, 0x4e7f955a, 0x4cdf52bc, 0x50b0b53f, + }, .{ + 0x00ed6fc5, 0x37320361, 0x70c563c2, -0x09acb495, + 0x0688e83f, 0x797295c4, -0x23bfbfdb, 0x38552096, + }); + try testArgs(@Vector(16, i32), .{ + -0x0214589d, 0x74a7537f, 0x7a7dcb26, 0x3e2e4c44, + -0x23bfc358, 0x60e8ef18, 0x5524a7bc, -0x3d88c153, + -0x7dc8ff0f, 0x6e2698f6, 0x05641ab8, -0x45e9e405, + -0x7c1a04d0, -0x4a8d1e91, 0x41d56723, 0x4ba924ab, + }, .{ + -0x528dc756, -0x6bc217f4, 0x40789b06, 0x65f08d3a, + -0x077140ea, -0x43bdaa79, 0x5d98f4e7, -0x2356a1ca, + -0x36ef2b49, -0x7cd09b06, 0x71c8176e, 0x5b005860, + 0x6ce8cfab, -0x49fd7609, 0x6cbb4e33, 0x6c7c121d, + }); + try testArgs(@Vector(32, i32), .{ + 0x7d22905d, -0x354e4bbe, -0x68662618, -0x246e1858, + -0x1c4285a9, -0x0338059c, -0x60f5bbf4, -0x04f06917, + -0x55f837b6, -0x2fba5fe3, 0x092aabf4, -0x5f533b31, + 0x6e81a558, -0x7bcac358, 0x6c4d8d04, 0x3e2f9852, + -0x78589b1a, -0x68a00fd4, -0x77d55e25, 0x7f79b51c, + -0x66b88f45, 0x7f6dc8a5, -0x27299a82, -0x426c8e1c, + 0x0c288f16, 0x158f8c3f, 0x26708be1, -0x0b73626e, + -0x32df1bee, 0x196330f4, -0x68bb9529, -0x26376ab6, + }, .{ + 0x63bd0bd4, 0x4e507611, -0x5e5222b8, -0x35d8e114, + 0x1feab77b, -0x20de7dfd, -0x0ed0b09f, -0x7fc3d585, + -0x2d3018e9, -0x261d431b, 0x54451864, 0x1415288f, + -0x3ab89593, -0x7060e4c1, -0x54fcd501, -0x26324630, + 0x53fc8294, 0x2d4aceef, -0x4ac8efd2, -0x2fec97b7, + -0x4de3a2fc, 0x2269fe52, -0x58c8b473, -0x21026285, + -0x23438776, 0x3d5c8c41, -0x1fc946b2, -0x161c7005, + 0x44913ff1, -0x76e2bfaa, -0x54636350, -0x6ec53870, + }); + + try testArgs(@Vector(1, u32), .{ + 0x1d0d9cc4, + }, .{ + 0xce2d0ab6, + }); + try testArgs(@Vector(2, u32), .{ + 0x5ab78c03, 0xd21bb513, + }, .{ + 0x8a6664eb, 0x79eac37d, + }); + try testArgs(@Vector(4, u32), .{ + 0x234d576e, 0x4151cc9c, 0x39f558e4, 0xba935a32, + }, .{ + 0x398f2a9d, 0x4540f093, 0x9225551c, 0x3bac865b, + }); + try testArgs(@Vector(8, u32), .{ + 0xb8336635, 0x2fc3182c, 0x27a00123, 0x71587fbe, + 0x9cbc65d2, 0x6f4bb0e6, 0x362594ce, 0x9971df38, + }, .{ + 0x5727e734, 0x972b0313, 0xff25f5dc, 0x924f8e55, + 0x04920a61, 0xa1c3b334, 0xf52df4b6, 0x5ef72ecc, + }); + try testArgs(@Vector(16, u32), .{ + 0xfb566f9e, 0x9ad4691a, 0x5b5f9ec0, 0x5a572d2a, + 0x8f2f226b, 0x2dfc7e33, 0x9fb07e32, 0x9d672a2e, + 0xbedc3cee, 0x6872428d, 0xbc73a9fd, 0xd4d5f055, + 0x69c1e9ee, 0x65038deb, 0x1449061a, 0x48412ec2, + }, .{ + 0x96cbe946, 0x3f24f60b, 0xaeacdc53, 0x7611a8b4, + 0x031a67a8, 0x52a26828, 0x75646f4b, 0xb75902c3, + 0x1f881f08, 0x834e02a4, 0x5e5b40eb, 0xc75c264d, + 0xa8251e09, 0x28e46bbd, 0x12cb1f31, 0x9a2af615, + }); + try testArgs(@Vector(32, u32), .{ + 0x131bbb7b, 0xa7311026, 0x9d5e59a0, 0x99b090d6, + 0xfe969e2e, 0x04547697, 0x357d3250, 0x43be6d7a, + 0x16ecf5c5, 0xf60febcc, 0x1d1e2602, 0x138a96d2, + 0x9117ba72, 0x9f185b32, 0xc10e23fd, 0x3e6b7fd8, + 0x4dc9be70, 0x2ee30047, 0xaffeab60, 0x7172d362, + 0x6154bfcf, 0x5388dc3e, 0xd6e5a76e, 0x8b782f2d, + 0xacbef4a2, 0x843aca71, 0x25d8ab5c, 0xe1a63a39, + 0xc26212e5, 0x0847b84b, 0xb53541e5, 0x0c8e44db, + }, .{ + 0x4ad92822, 0x715b623f, 0xa5bed8a7, 0x937447a9, + 0x7ecb38eb, 0x0a2f3dfc, 0x96f467a2, 0xec882793, + 0x41a8707f, 0xf7310656, 0x76217b80, 0x2058e5fc, + 0x26682154, 0x87313e31, 0x4bdc480a, 0x193572ff, + 0x60b03c75, 0x0fe45908, 0x56c73703, 0xdb86554c, + 0xdda2dd7d, 0x34371b27, 0xe4e6ad50, 0x422d1828, + 0x1de3801b, 0xdce268d3, 0x20af9ec8, 0x188a591f, + 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5, + }); + + try testArgs(@Vector(1, i33), .{ + 0x0a9a3088e, + }, .{ + 0x06c76b26e, + }); + try testArgs(@Vector(2, i33), .{ + 0x0a9bd1d56, 0x05b0b9015, + }, .{ + -0x05af6217c, 0x0227b5d3a, + }); + try testArgs(@Vector(4, i33), .{ + -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663, + }, .{ + -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9, + }); + try testArgs(@Vector(8, i33), .{ + 0x09d4fea1c, 0x0cd4254ba, 0x008d5f732, 0x0566c6f55, + -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146, + }, .{ + 0x02c01d901, 0x04407fcae, -0x0e6a223a6, -0x0bd9499f8, + 0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e, + }); + try testArgs(@Vector(16, i33), .{ + -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d, + -0x0d502b660, 0x0dd465278, 0x042a7e451, 0x03c1c3671, + 0x00eb6f4a9, 0x08982dbc4, 0x0421b8852, 0x015ee0e53, + 0x0e6924014, 0x0c6ddbc65, 0x00260ea59, 0x0d98aaedf, + }, .{ + -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47, + -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861, + -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9, 0x0b0064ff1, + -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd, -0x06af4f476, + }); + try testArgs(@Vector(32, i33), .{ + 0x07b887609, -0x004a23b00, 0x09b664a97, -0x0d4932ed0, + -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a, + 0x03d12175b, -0x0463cd854, 0x0cf448f1d, 0x0d1d02e2e, + -0x0da681c00, 0x0d1173267, 0x08faa4e2c, 0x0634c9df5, + 0x037e682e2, 0x0db055022, -0x0641f3daa, 0x053852c9b, + 0x035822a2b, -0x0b12bfe53, 0x084f704c9, 0x018cfacee, + -0x07130725b, -0x0b301dece, 0x00e1765b3, -0x0e0f0c97c, + 0x0ccd5e7fd, -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3, + }, .{ + 0x0df3d6e88, 0x00b4748ff, -0x0d0381c05, -0x093d68cb5, + -0x027834cc7, 0x05aa9ca20, -0x04bc88f40, 0x080f0d937, + 0x06699a6b8, -0x0fed64f1d, 0x0a79fe089, -0x016a9c385, + 0x0186e6b5b, -0x0a3c83fe6, 0x09a4f87ec, 0x011ce03bf, + -0x0f742cb8c, 0x066be2e66, -0x03b0beb52, 0x059bfda10, + 0x04bc221c0, 0x07d8b0344, -0x0c6e34f34, -0x0de0338ce, + -0x09571f80c, 0x0d36e8ea7, -0x052c44147, 0x0072ce503, + -0x0ef8dec64, 0x0b5956cb3, -0x02b72b4b1, 0x0f2585167, + }); + + try testArgs(@Vector(1, u33), .{ + 0x197ead992, + }, .{ + 0x0be595917, + }); + try testArgs(@Vector(2, u33), .{ + 0x1485499a5, 0x1e12b23e3, + }, .{ + 0x1431cd300, 0x0762a7b51, + }); + try testArgs(@Vector(4, u33), .{ + 0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed, + }, .{ + 0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2, + }); + try testArgs(@Vector(8, u33), .{ + 0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f, + 0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a, + }, .{ + 0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c, + 0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e, + }); + try testArgs(@Vector(16, u33), .{ + 0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53, + 0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6, + 0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac, + 0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275, + }, .{ + 0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22, + 0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef, + 0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906, + 0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948, + }); + try testArgs(@Vector(32, u33), .{ + 0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99, + 0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4, + 0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01, + 0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218, + 0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333, + 0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9, + 0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d, + 0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079, + }, .{ + 0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c, + 0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6, + 0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b, + 0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58, + 0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1, + 0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22, + 0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33, + 0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97, + }); + + try testArgs(@Vector(1, i63), .{ + -0x2d99033c3223ad4f, + }, .{ + 0x023c8c6807737a0e, + }); + try testArgs(@Vector(2, i63), .{ + -0x08fe3255607ce099, -0x3bf678cfa16a59d2, + }, .{ + -0x1b8733d130c49d54, 0x39deb4fe6c836b3f, + }); + try testArgs(@Vector(4, i63), .{ + 0x1e81cf3e0f9eae80, -0x0886f09bd1723b08, + 0x16e84b8d985e5b82, 0x0fa327538c09a281, + }, .{ + -0x2594908bb49f963f, -0x29639632db767665, + 0x012d5330f966e1be, -0x1143fddd48bf9752, + }); + try testArgs(@Vector(8, i63), .{ + -0x08e352cf330c1852, -0x17bc1f760120ff85, + -0x0f180e5c748c0e20, 0x07ee9290e2d53335, + -0x33945ea070fbb445, 0x104802af8984525d, + 0x36d27ad0f35fcfd8, 0x292141a0133227a0, + }, .{ + 0x2adad30092da2886, -0x1694bcdda9b82c45, + 0x1f5a019d638ba22c, -0x2e7853134888b613, + -0x2bb77a420f280a6d, -0x377771e94e493751, + 0x1dd5373311160f2f, -0x02bb5248b7e0c55e, + }); + try testArgs(@Vector(16, i63), .{ + 0x2d930d47aa078416, 0x1edf9abe8d562bd5, + 0x3ef3a5266f822396, -0x102f82f23c5608e1, + -0x38755dccf6c87ae1, 0x09f11b107d033f85, + 0x079829e968213db8, 0x17248ef600ddb53d, + 0x19e16a7a4e6aa0cc, 0x11e21ddfb7b5b946, + 0x26ad3768e80b1258, 0x3672a14b31cb7f1a, + 0x3235b83f829966b4, 0x3b4009ac38f728b8, + -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42, + }, .{ + -0x1428b8c4947715ea, -0x0a5626024843736e, + 0x075a1a0d0d47f0af, 0x0ea460d282e8dcc0, + -0x124b2a6e2957dc53, -0x0d2602075af449d5, + -0x0db76b825400293c, -0x17c13cd693d2db13, + 0x0ad907bb94e64687, -0x05fd33e10be897ad, + -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510, + 0x0106683b57f2cf9e, 0x353bea8a4c199155, + 0x3942af4e40b65cb0, 0x3da0254a739aa17a, + }); + + try testArgs(@Vector(1, u63), .{ + 0x17beef25621255fb, + }, .{ + 0x79bc7e82d16c5e15, + }); + try testArgs(@Vector(2, u63), .{ + 0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659, + }, .{ + 0x5df7aae04a4a1126, 0x53568966decbd14f, + }); + try testArgs(@Vector(4, u63), .{ + 0x3d50a0f4755d87e3, 0x722e93c0b1355665, + 0x3c8325a3e3640be1, 0x34eef2706884b9ab, + }, .{ + 0x2671797fd253520d, 0x22f81938e525536e, + 0x08ca256b0b348d57, 0x1cdbe1867f422280, + }); + try testArgs(@Vector(8, u63), .{ + 0x49ab492d75830041, 0x28f4065197f361cf, + 0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803, + 0x7f517fcfc0451068, 0x05eaa5d2f93407b2, + 0x0fe06447fdbec4d6, 0x34862504232f73d8, + }, .{ + 0x64a1796fe76dcc4d, 0x159bd1a9228a8c41, + 0x093a4794b5759276, 0x40a740fa4d288585, + 0x5d2d1aede616f40e, 0x7e7af17ddce8e03e, + 0x7555fb4a1c18d5ff, 0x11b45e151e8724d0, + }); + try testArgs(@Vector(16, u63), .{ + 0x456de088589c1035, 0x23239ed26d0e198f, + 0x4f3c4ae380a12430, 0x1cb11ef73131a6f4, + 0x6e51a370969ec7ae, 0x38bed7b267bb163d, + 0x2fcfab012fb79669, 0x45e203406a43fe95, + 0x38468cff64a44f74, 0x3cc86f1d717e8c60, + 0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8, + 0x1a7493c9bb7b265c, 0x6e8536e5f32317d8, + 0x634701c32688fd34, 0x7a4e4a7f35ef9651, + }, .{ + 0x3da82f0beb7a091d, 0x040c9bbf428787fa, + 0x795418c55742e8d2, 0x700f9b62c01cdf30, + 0x78d567c18e7ce16d, 0x300da37dc14b6705, + 0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d, + 0x00e8c13b3acf4557, 0x19adb837145a0267, + 0x594889dd8e1ff4c2, 0x561da6bd7e2ba593, + 0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc, + 0x68ec40831cb6b863, 0x2862d922ed7a78eb, + }); + + try testArgs(@Vector(1, i64), .{ + 0x4a31679b316d8b59, + }, .{ + 0x34a583368386afde, + }); + try testArgs(@Vector(2, i64), .{ + 0x3bae373f9cb990b3, -0x7e8c6c876e8fd34a, + }, .{ + 0x09dbef6f7cb9c726, 0x48dfeca879b0df51, + }); + try testArgs(@Vector(4, i64), .{ + -0x2bd24dd5f5da94bf, -0x144113bae33082c2, + 0x51e8cb7027ba4b12, -0x47b02168e2e22f13, + }, .{ + 0x769f113245641b91, -0x414d0e24ea97bc53, + -0x0d2a570e7ef9e923, -0x070513d46d3b5a4c, + }); + try testArgs(@Vector(8, i64), .{ + 0x10bb6779b6a55ca9, 0x5f6ffd567a187af4, + -0x6ba191b1168486b4, -0x441b92ce455870a1, + 0x2b6fdefbec9386ad, -0x6fdd3938d79217e4, + 0x6aa8fe1fb891501f, 0x20802f5bbdf6dc50, + }, .{ + -0x7500319df437b479, 0x00ceb712d4fa62d4, + 0x67e715b9e99e660d, -0x17ae00e1f0009ec2, + -0x5b700b948503acdf, -0x3ff61fb5cce5a530, + 0x55a3efac2e3694a4, 0x7f951a8d842f1670, + }); + try testArgs(@Vector(16, i64), .{ + 0x37a205109a685810, -0x50ff5d13134ccaa6, + 0x26813391c5505d5d, -0x502cdc01603a2f21, + -0x6b1b44b1c850c7ea, 0x1f6db974ace9dd70, + -0x47d15da8b519e328, 0x3ac0763abbf79d8d, + 0x5f12e0dc1aed4a4f, -0x46a973e16061e928, + -0x3f59a3fa9699b4d5, -0x2f5012d390c78315, + -0x40e510dea2c47e9c, 0x221c51defe0acc9a, + -0x385fd6f1d390b84b, 0x35932fe2783fa6b9, + }, .{ + 0x0ba5202b71ad73dd, 0x65c8d2d5e2a14fe5, + 0x2e4d97cd66c41a3d, 0x14babbb47da51193, + 0x59d1d12b42ade3aa, -0x3c3617e556dfa8fb, + -0x5a36602ba43279c4, -0x61f1ddda13665d9f, + -0x50cd6128589ddd04, 0x135ae0dcc85674ae, + -0x25e80592affc038d, 0x07e184c44fbe9b12, + -0x70ede1b90964bbaa, 0x3ec48b32e8efd98e, + -0x5267d41d85a29f46, 0x53099805f9116b60, + }); + + try testArgs(@Vector(1, u64), .{ + 0x333f593bf9d08546, + }, .{ + 0x6918bd767e730778, + }); + try testArgs(@Vector(2, u64), .{ + 0x4cd89a317b03d430, 0x28998f61842f63a9, + }, .{ + 0x6c34db64af0e217e, 0x57aa5d02cd45dceb, + }); + try testArgs(@Vector(4, u64), .{ + 0x946cf7e7484691c9, 0xf4fc5be2a762fcbf, + 0x71cc83bc25abaf14, 0xc69cef44c6f833a1, + }, .{ + 0x9f90cbd6c3ce1d4e, 0x182f65295dff4e84, + 0x4dfe62c59fed0040, 0x18402347c1db1999, + }); + try testArgs(@Vector(8, u64), .{ + 0x92c6281333943e2c, 0xa97750504668efb5, + 0x234be51057c0181f, 0xefbc1f407f3df4fb, + 0x8da6cc7c39cebb94, 0xb408f7e56feee497, + 0x2363f1f8821592ed, 0x01716e800c0619e1, + }, .{ + 0xa617426684147e7e, 0x7542da7ebe093a7b, + 0x3f21d99ac57606b7, 0x65cd36d697d22de4, + 0xed23d6bdf176c844, 0x2d4573f100ff7b58, + 0x4968f4d21b49f8ab, 0xf5d9a205d453e933, + }); + try testArgs(@Vector(16, u64), .{ + 0x2f61a4ee66177b4a, 0xf13b286b279f6a93, + 0x36b46beb63665318, 0x74294dbde0da98d2, + 0x3aa872ba60b936eb, 0xe8f698b36e62600b, + 0x9e8930c21a6a1a76, 0x876998b09b8eb03c, + 0xa0244771a2ec0adb, 0xb4c72bff3d3ac1a2, + 0xd70677210830eced, 0x6622abc1734dd72d, + 0x157e2bb0d57d6596, 0x2aac8192fb7ef973, + 0xc4a0ca92f34d7b13, 0x04300f8ad1845246, + }, .{ + 0xeaf71dcf0eb76f5d, 0x0e84b1b63dc97139, + 0x0f64cc38d23c94a1, 0x12775cf0816349b7, + 0xfdcf13387ba48d54, 0xf8d3c672cacd8779, + 0xe728c1f5eb56ab1e, 0x05931a34877f7a69, + 0x1861a763c8dafd1f, 0x4ac97573ecd5739f, + 0x3384414c9bf77b8c, 0x32c15bbd04a5ddc4, + 0xbfd88aee1d82ed32, 0x20e91c15b701059a, + 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957, + }); + + try testArgs(@Vector(1, i65), .{ + 0x0ca0853f57c0686c8, + }, .{ + -0x05c79d7369ef879fd, + }); + try testArgs(@Vector(2, i65), .{ + 0x0c65f685f4839bc8d, -0x079057ad04859d897, + }, .{ + -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa, + }); + try testArgs(@Vector(4, i65), .{ + 0x0d6a03163f101695e, -0x0ebe991e54e61156d, + -0x0715adf48176985dc, 0x01e57dbe6ea50b22f, + }, .{ + -0x0b308d8311a45a38d, 0x07c292cc15044b1f5, + 0x0e69e3eae81046bc8, 0x053b75d6a544ca0db, + }); + try testArgs(@Vector(8, i65), .{ + 0x0066315a88896ba00, 0x026c8109f087eb4e3, + -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff, + 0x0dcdd248c4575dbb1, -0x09db7d03c38a83255, + -0x097bc9d5397c57594, 0x0e6af866eed43b462, + }, .{ + -0x06ac0448a06876866, 0x0f89dbafcbbb065d7, + -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0, + -0x085a4a7b09dcec260, -0x0068e92e14823a98a, + -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71, + }); + try testArgs(@Vector(16, i65), .{ + -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36, + -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8, + 0x0dbebb830228d2945, -0x02133deab2ebd8699, + -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc, + -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a, + -0x04e1094b79391df4a, 0x03b3fbc230416592d, + 0x08799db1379e6b1ba, -0x0fa7c7aed60863358, + -0x0c44dd44a770610bd, -0x0349cdc54719b2e37, + }, .{ + 0x03146cdf203a80cfd, 0x0e22a03fe80f3e2ed, + 0x07fa7a66dbe252222, 0x000a3bc923a32648a, + -0x078bac9e36d66da71, -0x03055804cd3b73168, + 0x0d9280808858f006d, -0x09415dfb2fd33fe5a, + -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82, + -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157, + 0x0ac0128bbf7a5200e, -0x009e0b2ab770e711b, + 0x05473b5629f372ee9, -0x02eda67313ff7fa47, + }); + + try testArgs(@Vector(1, u65), .{ + 0x1879059aca94dd383, + }, .{ + 0x0051da1f25078e919, + }); + try testArgs(@Vector(2, u65), .{ + 0x18f39bb41f03223f5, 0x16a59f6838a63e737, + }, .{ + 0x105aa15beae036a1a, 0x1b47ef7ef744b70fe, + }); + try testArgs(@Vector(4, u65), .{ + 0x18c685254b3c7170c, 0x0de8048a66902ebfd, + 0x02bc97f62163e7e31, 0x152b6eba67c1e76db, + }, .{ + 0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee, + 0x1db62793f956492ba, 0x0e4262599ec54c2a4, + }); + try testArgs(@Vector(8, u65), .{ + 0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b, + 0x1fd2f93384860df65, 0x01827fcdb6c715d64, + 0x03869c173a922b018, 0x0addd48a4671a2f6b, + 0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38, + }, .{ + 0x159e9494fc84ed452, 0x0834f6aaa7666a22b, + 0x066765389e84150b4, 0x1e722ae23908c7e96, + 0x0d64ec725397e6ee0, 0x19f3a147a355baa22, + 0x02f1b100538b6dbc3, 0x175885a34aefca91b, + }); + try testArgs(@Vector(16, u65), .{ + 0x105647e12b2b76daa, 0x04dcca29537263f6a, + 0x16c112620be731a4e, 0x0d6c088da3c158fa0, + 0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c, + 0x05703068045915d95, 0x07cc42e0bb216b310, + 0x08a15a16e4247ad98, 0x1c17b2292e34aa369, + 0x14c9808748fa615c3, 0x187449666c2f5375b, + 0x133fcb93a31d2f369, 0x047729af594c8c1c1, + 0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4, + }, .{ + 0x0d65b8b643703ef96, 0x1c55c2e0816c5d056, + 0x0390a06d3ec60e632, 0x0d543d346db055847, + 0x017e27c7d663d7005, 0x112f7b98a78014ea3, + 0x030136142f19042d7, 0x059f9b6e576f79ef7, + 0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde, + 0x1e26cd964c656292a, 0x0579c10261478da1d, + 0x0406f2849ab5ad15c, 0x024b15c729f2211b7, + 0x10f0505cc2f7f110c, 0x133cfa11f995e0afc, + }); + + try testArgs(@Vector(1, i127), .{ + 0x226b8faf65414a9a0ffcd438c7fa9eea, + }, .{ + 0x2c582610b08531ca208fef1c2b839bdc, + }); + try testArgs(@Vector(2, i127), .{ + 0x35e8caffc9fc8e1b3b6d3667cb6a128c, + -0x070d99d51807ae2314ea61e4f0166145, + }, .{ + -0x3a59d011c2a385a6dcf00a40efd85b77, + 0x3b5f506c3fa0c8552fba624d1b5debec, + }); + try testArgs(@Vector(4, i127), .{ + 0x191594cc2356ffeac739f1841b06adcf, + 0x1f45176996076de7c3891f14f831e192, + 0x1c9047002e0a4f00656556fffeb50349, + -0x38049f47bcc36ab26600bc475295389f, + }, .{ + -0x2f8c1618324c60c40f65d216943d59d2, + -0x21429f90bd9dff7b5d49c9d7f2655928, + 0x3baeef72d0d168fb50564c9f6eb5d778, + 0x3affe6f2eddfc6a69206c357633d0eeb, + }); + try testArgs(@Vector(8, i127), .{ + -0x00c48629a415129f66e74a1a215d683a, + 0x3920a425cbec4c9af649a00d5747136a, + 0x11f53b9db15a12814c948c6a809b96f8, + -0x1f7e272db97efc88762dedf54978e795, + 0x13e56ca8ed41f64d04ef01019703f402, + 0x294014109f4313454d9994f1003b4572, + 0x0f3d6fe7adde96149ffcc5c0808b708f, + 0x2d9bcd407da37ff3d43cc5f6b64fd385, + }, .{ + 0x3f95f21d3bc39fe8e3fcc184d150a984, + 0x2a8c36a5986d8c245bbdd302737b7e29, + 0x37c61446e10efe6a94f797da05a28fae, + -0x096b2f4e16aef099d623066e941d13d1, + 0x3df11d4af3229ed59c52628cac02f506, + 0x326f78cbf454566daa3bc235a1fb3fb8, + -0x2cf6b4872dffea018c77892e433b6784, + 0x345dfdd52635c224c70949913255ab68, + }); + + try testArgs(@Vector(1, u127), .{ + 0x49a0cd1849f9adbed215770c6f97a584, + }, .{ + 0x5e10826a03aeb57d4a9a9ef2a8f02faa, + }); + try testArgs(@Vector(2, u127), .{ + 0x1c2544fbb76890de5c00f42c9a516846, + 0x324f292d72694d409152a311b5a0441c, + }, .{ + 0x01cc87106db8e357e85f875d46feac96, + 0x49e775cc0db88cf9725af13113d7d457, + }); + try testArgs(@Vector(4, u127), .{ + 0x3e82ddcd074646a0a489a4fd300c32c9, + 0x2a511ac041c17a68c5a71bc6d3cb3ba9, + 0x2dace4189083411634b753ae476579a8, + 0x4e1d5cb04d9681d806312d72d6dc5262, + }, .{ + 0x5f489e689ff15fcf38aad995b1796af2, + 0x49ee549bd8e20092c8ccebb992cde8b8, + 0x4e52d33281cba3fda6ae8d1f463c7a1f, + 0x0de0279b2dec3fffe44c1c7decc430f8, + }); + try testArgs(@Vector(8, u127), .{ + 0x636de193fbadb1984a0ed9969f88d38d, + 0x64426b7e468cb323b1d75656879fb9b2, + 0x48afb4cc5a11f2ca4b8609b057758312, + 0x176157ce93422bb4463d6f0dda275b94, + 0x746015d0e8cb5e36af43840a6df11aab, + 0x279b665776118bc2759134c19cbf1bb0, + 0x52cb4dc56d3935090fb7db710c8f9660, + 0x591884d8d8e2fe2f77b7f8508dddeaaa, + }, .{ + 0x42e00bc05d50ea63d546085642b8831b, + 0x4241ff07ce99ee055b48ed2939b8d6b7, + 0x45a5f53a5c5cb13f1a9e6621fec8cf4a, + 0x68d6938c1b348dc6cc98d4b6ab3a1c22, + 0x1f9448fc11e38500ec7ecf57a33a278b, + 0x7b331526d6fcfb958f3c88fc4656e123, + 0x4f1e8ddf41a7105cc1a1c815040a2693, + 0x31ac7bd68686d531d53ecca75e6d8b81, + }); + + try testArgs(@Vector(1, i128), .{ + -0x3bb56309fcad13fc1011dc671cf57bdc, + }, .{ + -0x05338bb517db516ee08c45d1408e5836, + }); + try testArgs(@Vector(2, i128), .{ + 0x295f2901e3837e5592b9435f8c4df8a7, + -0x1f246b0ff2d02a6bf30a63392fc63371, + }, .{ + -0x31060c09e29b545670c4cbc721a4e26b, + -0x631eb286321325d51c617aa798195392, + }); + try testArgs(@Vector(4, i128), .{ + 0x47110102c74f620f08e5b7c5dbe193c2, + -0x61d12d2650413ad3ffeeeab3ba57e1f0, + 0x449781e64b29dc8a17a88f4b7a5b0717, + 0x0d2170e9238d12a585dc5377566e1938, + }, .{ + 0x0bf948e19bd01823dcb3887937d97079, + -0x16f933ab12bfba3560d0d39ffe69b64a, + 0x3d0bfce3907a5cd157348f0329e2548e, + -0x3c2d182e2e238a4bebd7defbd7f9699a, + }); + try testArgs(@Vector(8, i128), .{ + -0x775678727c721662f02480619acbfc82, + -0x6f504fcbff673cb91e4706af4373665f, + -0x670f888d4186387c3106d125b856c294, + 0x0641e7efdfdd924d126b446d874154f8, + 0x57d7aef0f82d3351917f43c8f677392b, + -0x4077e745dede8367d145c94f20ab8810, + -0x0344a74fb60e1f1f72ba8ec288b05939, + -0x0be3ce9be461aca1d25ad8e74dcc36e1, + }, .{ + -0x4a873d91e5a2331def0d34c008d33d83, + 0x2744cecfd4c683bdd12f3cfc11d7f520, + -0x0cb8e468fc1de93a7c5ad2a5a61e8f50, + -0x1a3be9e58e918d6586cc4948a54515d3, + -0x512ec6f88c3a34950a8aaee47130120b, + -0x2e772e4a8812e553bcf9b2754a493709, + 0x0c7b137937dc25f9f9cbaf4d7a88ee6b, + -0x2ecdd5eb81eb0e98ed8d0aa9516c1617, + }); + + try testArgs(@Vector(1, u128), .{ + 0x5f11e16b0ca3392f907a857881455d2e, + }, .{ + 0xf9142d73b408fd6955922f9fc147f7d7, + }); + try testArgs(@Vector(2, u128), .{ + 0xee0fb41fabd805923fb21b5c658e3a87, + 0x2352e74aad6c58b3255ff0bba5aa6552, + }, .{ + 0x8d822f9fdd9cb9a5b43513b14419b224, + 0x1aef2a02704379e38ead4d53d69e4cc4, + }); + try testArgs(@Vector(4, u128), .{ + 0xc74437a4ea3bbbb193dbf0ea2f0c5281, + 0x039e4b1640868248780db1834a0027eb, + 0xb9e8bb34155b2b238da20331d08ff85b, + 0x863802d34a54c2e6aa71dd0f067c4904, + }, .{ + 0x7471bae24ff7b84ab107f86ba2b7d1e7, + 0x8f34c449d0576e682c20bda74aa6b6c9, + 0x1f34c3efa167b61c48c9d5ec01a1a93f, + 0x71c8318fcf3ddc7be058c73a52dce9e3, + }); + try testArgs(@Vector(8, u128), .{ + 0xbf2db71463037f55ee338431f902a906, + 0xb7ad317626655f38ab25ae30d8a1aa67, + 0x7d3c5a3ffaa607b5560d69ae3fcf7863, + 0x009a39a8badf8b628c686dc176aa1273, + 0x49dba3744c91304cc7bbbdab61b6c969, + 0x6ec664b624f7acf79ce69d80ed7bc85c, + 0xe02d7a303c0f00c39010f3b815547f1c, + 0xb13e1ee914616f58cffe6acd33d9b5c8, + }, .{ + 0x2f2d355a071942a7384f82ba72a945b8, + 0x61f151b3afec8cb7664f813cecf581d1, + 0x5bfbf5484f3a07f0eacc4739ff48af80, + 0x59c0abbf8d829cf525a87d5c9c41a38a, + 0xdad8b18eb680f0520ca49ebfb5842e22, + 0xa05adcaedd9057480b3ba0413d003cec, + 0x8b0b4a27fc94a0e90652d19bc755b63d, + 0xa858bce5ad0e48c13588a4e170e8667c, + }); + + try testArgs(@Vector(1, i129), .{ + -0x09c126c4e31389b174cb2b45e76c086dd, + }, .{ + 0x0d023f2566c56400f4b7edb9c4f364ecb, + }); + try testArgs(@Vector(2, i129), .{ + -0x072be32e116741732f9422d9b20777db5, + -0x010829386cc3d93283a83591bd994ca58, + }, .{ + 0x004671167d0681d46945832d16f70cfba, + 0x098550137341cbadfe8378987e3a83265, + }); + try testArgs(@Vector(4, i129), .{ + 0x04167620c7f5e094208fb204f06b9792c, + 0x07a6690c0b5f9de6c8955873f19b98f23, + -0x06505997d01e5a971f820742210c7adc6, + -0x07013921eab8d92559f17ad9e3712bc61, + }, .{ + -0x0bdbf7ce4079fa628feb05f5814402e15, + -0x0e6ee5464de547ce92ee5a6037f175e52, + -0x009d079b88cdc765ab72758854b753d98, + -0x085af31dd5243f61b46e6dc950728ff49, + }); + try testArgs(@Vector(8, i129), .{ + 0x0d85f471bdc56611e9187113f1489bd38, + 0x06e1e9cae044bb17b63c380fd6f2652b5, + 0x0921d649288a16481f2ec69747f443e5e, + 0x0e8db24d1aefd91cfab20bac61f560274, + 0x0187abef7578e5e02a396e4ebd5859c23, + 0x0d2dec5a6bd72afe18288ca428ec2b94d, + 0x0c52c111a077bffb1fa4483523cd044c3, + -0x0b6a90c79d6230f271bf625c9a6c0dfc5, + }, .{ + 0x0d47c566bdedae2e9485f7aa381a98d30, + -0x0e5d9573c01a9e56361b202c47f0e51f8, + -0x0bdcafb1f08db4920121521b2d2679931, + 0x08de42eec43f2a5175f928f8a1812575d, + 0x0c3f57e712a7f8494e51b62d11573d9a0, + -0x09287910d439c9bafd56bc8a6faf50cb3, + 0x07b494af9634c8f95bed2f50fcaf08dda, + -0x0a150693d83af2e823dcc0765e4e331e2, + }); + + try testArgs(@Vector(1, u129), .{ + 0x1e51bd13747df8fae52f0471e9f1ad3f2, + }, .{ + 0x00aba9f2c80c71b1ed07201486ea44d00, + }); + try testArgs(@Vector(2, u129), .{ + 0x0c7967a19d13d4bd3f6ebfa0f8fdeab92, + 0x01614ee2c32757cc92e2efd97e94321a7, + }, .{ + 0x175803a2c0bf888bd01e2a5bae28e4523, + 0x07d05a98ec8f4e7e72aac2712bc09a23a, + }); + try testArgs(@Vector(4, u129), .{ + 0x1b18b768c5852bb1f0a7b34ceaeac4a0c, + 0x038fc1f995d9378fcf1043598810d7a56, + 0x06eebd77f9920e79932decf0f29ef658d, + 0x1f31a766145022050d0b16a4f5d06f1e3, + }, .{ + 0x033b20a528a722b6704bf5c8aea497e68, + 0x0ea05276fb8de4e77e4a8d4ef55f64bba, + 0x1c632cf252683b00faae6dcb7d73d8b90, + 0x11a7e1e98bb34fc7f5ed36c327476b122, + }); + try testArgs(@Vector(8, u129), .{ + 0x1b85991584b26492938854a6f6953b766, + 0x119472b0f4b7199f1267639f601833e3d, + 0x130d19e6ccfebce09c61c8c8fb526fec0, + 0x1379f4fa9d25e18ef5138c193b7ec9ef3, + 0x15fc62d9e21c2c0c63f9cab5ab0a8cf36, + 0x123ceb2a65f200a0b3e559c801bdbfa58, + 0x0e740ae3c7ab0cd24c5ff94d9367e3ebb, + 0x008c7dd67796949390355d866e4f171ef, + }, .{ + 0x0ffdda009048cf61476610425d5e55560, + 0x061bcb9d024d015891b5666e7b317cc84, + 0x060c013386fb8c129a3bd65b7909f2bc5, + 0x01c8efdd7ea806b1dc984c6183da53d8f, + 0x02fae7cee43d7f97448e82b907335bd45, + 0x0365e7cadcbd0a64decc1377339967c53, + 0x1a52793ba8a9689e1d7f5036e8cb613e1, + 0x1257d7cdd8f04058d285a5bce173b5262, + }); + + try testArgs(@Vector(1, i191), .{ + -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d, + }, .{ + 0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512, + }); + try testArgs(@Vector(2, i191), .{ + -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3, + 0x3f298efedf4269276db60344c2bed556ee25d24c5f887000, + }, .{ + 0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7, + -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7, + }); + try testArgs(@Vector(4, i191), .{ + -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7, + -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef, + 0x1783dc9f0afa815051e6d338ef35da013e807da475815af5, + 0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916, + }, .{ + 0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd, + 0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29, + 0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86, + 0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546, + }); + try testArgs(@Vector(8, i191), .{ + -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225, + 0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed, + -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232, + -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d, + -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17, + -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70, + -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085, + 0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35, + }, .{ + 0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95, + -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9, + -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02, + -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980, + -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c, + -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae, + -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31, + 0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3, + }); + + try testArgs(@Vector(1, u191), .{ + 0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83, + }, .{ + 0x020334928f4583d332043b7aef15e832047dfd01b2933038, + }); + try testArgs(@Vector(2, u191), .{ + 0x67074e5315030f5c1a4d035100736de691b5589f6d349162, + 0x0e655397f96e3fd66b317294a37975d36478242fd6392259, + }, .{ + 0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf, + 0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd, + }); + try testArgs(@Vector(4, u191), .{ + 0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57, + 0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1, + 0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457, + 0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc, + }, .{ + 0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c, + 0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7, + 0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9, + 0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693, + }); + try testArgs(@Vector(8, u191), .{ + 0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca, + 0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052, + 0x7841b17a1c38e4066376e5ae204959c02c524635740a9013, + 0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77, + 0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788, + 0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e, + 0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3, + 0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a, + }, .{ + 0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614, + 0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc, + 0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90, + 0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7, + 0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1, + 0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434, + 0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2, + 0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934, + }); + + try testArgs(@Vector(1, i192), .{ + 0x5348bc83a6f352c931d06b9817458273408470e8ce312bef, + }, .{ + -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d, + }); + try testArgs(@Vector(2, i192), .{ + 0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869, + -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b, + }, .{ + 0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be, + 0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2, + }); + try testArgs(@Vector(4, i192), .{ + -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf, + -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f, + 0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc, + 0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce, + }, .{ + 0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06, + 0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993, + -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255, + 0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114, + }); + try testArgs(@Vector(8, i192), .{ + -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9, + 0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7, + 0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c, + -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3, + -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32, + -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297, + -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574, + -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464, + }, .{ + -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6, + -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a, + -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113, + -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525, + 0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67, + -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732, + -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5, + 0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21, + }); + + try testArgs(@Vector(1, u192), .{ + 0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d, + }, .{ + 0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb, + }); + try testArgs(@Vector(2, u192), .{ + 0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2, + 0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d, + }, .{ + 0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0, + 0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e, + }); + try testArgs(@Vector(4, u192), .{ + 0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be, + 0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd, + 0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256, + 0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74, + }, .{ + 0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294, + 0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5, + 0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134, + 0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec, + }); + try testArgs(@Vector(8, u192), .{ + 0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066, + 0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099, + 0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4, + 0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3, + 0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7, + 0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a, + 0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb, + 0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e, + }, .{ + 0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d, + 0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e, + 0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b, + 0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9, + 0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09, + 0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d, + 0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c, + 0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1, + }); + + try testArgs(@Vector(1, i193), .{ + -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66, + }, .{ + 0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5, + }); + try testArgs(@Vector(2, i193), .{ + 0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f, + -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6, + }, .{ + -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a, + 0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9, + }); + try testArgs(@Vector(4, i193), .{ + -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac, + -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda, + 0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a, + -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72, + }, .{ + 0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d, + 0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199, + -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a, + -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f, + }); + try testArgs(@Vector(8, i193), .{ + -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec, + -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233, + -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5, + -0x065c502be097b15379af566a20c4ee93893718330c9a258ce, + 0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9, + 0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6, + 0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973, + -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0, + }, .{ + 0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257, + 0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb, + -0x060f3874a6f65b46738d0117db38b749aff45725000c06213, + 0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353, + 0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68, + -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29, + 0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e, + -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae, + }); + + try testArgs(@Vector(1, u193), .{ + 0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a, + }, .{ + 0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e, + }); + try testArgs(@Vector(2, u193), .{ + 0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c, + 0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947, + }, .{ + 0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20, + 0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac, + }); + try testArgs(@Vector(4, u193), .{ + 0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360, + 0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699, + 0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852, + 0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa, + }, .{ + 0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c, + 0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45, + 0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11, + 0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9, + }); + try testArgs(@Vector(8, u193), .{ + 0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3, + 0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b, + 0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece, + 0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1, + 0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921, + 0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361, + 0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f, + 0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0, + }, .{ + 0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b, + 0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa, + 0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82, + 0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b, + 0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7, + 0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100, + 0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa, + 0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e, + }); + + try testArgs(@Vector(1, i255), .{ + -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11, + }, .{ + -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625, + }); + try testArgs(@Vector(2, i255), .{ + -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2, + -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486, + }, .{ + 0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47, + 0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f, + }); + try testArgs(@Vector(4, i255), .{ + -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4, + 0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1, + 0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a, + 0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d, + }, .{ + 0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd, + 0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6, + 0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a, + -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68, + }); + + try testArgs(@Vector(1, u255), .{ + 0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9, + }, .{ + 0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381, + }); + try testArgs(@Vector(2, u255), .{ + 0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff, + 0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef, + }, .{ + 0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8, + 0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b, + }); + try testArgs(@Vector(4, u255), .{ + 0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982, + 0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626, + 0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4, + 0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce, + }, .{ + 0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61, + 0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36, + 0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49, + 0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7, + }); + + try testArgs(@Vector(1, i256), .{ + 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce, + }, .{ + 0x6932f4faf261c45ecd701a4fe3015d4255e486b04c4ab448fe162980cead63fb, + }); + try testArgs(@Vector(2, i256), .{ + -0x23daa9bab59dc1e685f4220c189930c3420a55784f0dec1028c2778d907ccfe2, + 0x521c992e4f46d61709d39e076ed94d5d884585f85ccbf71ca4d593da34f61bf5, + }, .{ + 0x2d880cb5aa793218a32411389db31e935932029645573a9625dd174099c9e5b2, + 0x2394a6cde7e8b2dc2995f07f22f815baa6c223d99c0b1ec4b2d8abd0094db853, + }); + try testArgs(@Vector(4, i256), .{ + 0x244e66ed932a4d970fd8735c10bfbd5f59bd4452c20fa0fcf873823b8c9e6321, + -0x31577b747614b1ab83fd0178293cd80b3cb92e739459b2d038688a2471f6d659, + -0x0dbdfc3d8bbd7cab6a33598cef29125aab7571fb0db9a528e42966963d6ce0e7, + -0x72c58cce172d8a34019a44407a4baf1f8f8a4a611711bd5bb4daa2a2739dd67b, + }, .{ + -0x2e88bc68893fc2d61af0e5ccb541f31fa6169504e8cfcbeab0b74a03b9e86c33, + -0x7eba0783f3382b59a17ffbea57ba1dd8fa30e2d4f7eba7ed68d336d3c37b4561, + -0x66d1463efd38e9e994e126d09b5c65c8efc932ffea9ec6cdf6042561ba05f801, + 0x2024bbacefbabbfd5b32a09be631451764a1f889a77918f9094382dc6d02aef2, + }); + + try testArgs(@Vector(1, u256), .{ + 0x28df37e1f57a56133ba3f5b5b2164ce24eb6c29a8973a597fd91fbee8ab4bafb, + }, .{ + 0x63f725028cab082b5b1e6cb474428c8c3655cf438f3bb05c7a87f8270198f357, + }); + try testArgs(@Vector(2, u256), .{ + 0xcc79740b85597ef411e6d7e92049dfaa2328781ea4911540a3dcb512b71c7f3c, + 0x51ae46d2f93cbecff1578481f6ddc633dacee94ecaf81597c752c5c5db0ae766, + }, .{ + 0x257f0107305cb71cef582a9a58612a019f335e390d7998f51f5898f245874a6e, + 0x0a95a17323a4d16a715720f122b752785e9877e3dd3d3f9b72cdac3d1139a81f, + }); + try testArgs(@Vector(4, u256), .{ + 0x19667a6e269342cba437a8904c7ba42a762358d32723723ae2637b01124e63c5, + 0x14f7d3599a7edc7bcc46874f68d4291793e6ef72bd1f3763bc5e923f54f2f781, + 0x1c939de0ae980b80de773a04088ba45813441336cdfdc281ee356c98d71f653b, + 0x39f5d755965382fe13d1b1d6690b8e3827f153f8166768c4ad8a28a963b781f2, + }, .{ + 0xbe03de37cdcb8126083b4e86cd8a9803121d31b186fd5ce555ad77ce624dd6c7, + 0xa0c0730f0d7f141cc959849d09730b049f00693361539f1bc4758270554a60c1, + 0x2664bdba8de4eaa36ecee72f6bfec5b4daa6b4e00272d8116f2cc532c29490cc, + 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b, + }); + + try testArgs(@Vector(1, i257), .{ + -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12, + }, .{ + 0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a, + }); + try testArgs(@Vector(2, i257), .{ + -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3, + -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01, + }, .{ + 0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9, + -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1, + }); + try testArgs(@Vector(4, i257), .{ + -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa, + 0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85, + 0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66, + -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42, + }, .{ + 0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8, + 0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a, + -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c, + -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5, + }); + + try testArgs(@Vector(1, u257), .{ + 0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11, + }, .{ + 0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68, + }); + try testArgs(@Vector(2, u257), .{ + 0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9, + 0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98, + }, .{ + 0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb, + 0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6, + }); + try testArgs(@Vector(4, u257), .{ + 0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909, + 0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974, + 0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4, + 0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0, + }, .{ + 0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab, + 0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140, + 0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556, + 0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b, + }); + + try testArgs(@Vector(1, i511), .{ + 0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed, + }, .{ + 0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577, + }); + try testArgs(@Vector(2, i511), .{ + 0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268, + 0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4, + }, .{ + -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1, + -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854, + }); + + try testArgs(@Vector(1, u511), .{ + 0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10, + }, .{ + 0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84, + }); + try testArgs(@Vector(2, u511), .{ + 0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb, + 0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1, + }, .{ + 0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601, + 0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074, + }); + + try testArgs(@Vector(1, i512), .{ + -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2, + }, .{ + 0x18b1d3be5a03310d82859a4ab72f056a33d1a4b554522bcc062fb33eda3b8111045ee79e045dd1a665d250b897f6f2e12003a03313c2547698f8c1eab452eae1, + }); + try testArgs(@Vector(2, i512), .{ + 0x28e2ab84d87d5fb12be65d8650de67b992dd162fe563ca74b62f51f2f32e1084e03e32c8370930816445ac5052b4d345059c8ace582e3ef44377b160e265ec9b, + -0x3a96548c707219326c42063997e71bc7a17b3067d402063843f84c86e747b71e09338079c28943d20601c0cde018bad57f5615fc89784bcb6232e45c54dff1db, + }, .{ + 0x64beecc90609b7156653b75a861e174c58fb42d5c7bf8d793efbb1cbe785c6b8cd52ce5f9aa859f174123c387820d40a2f93122b81396d739eb85c3ea33fcd37, + -0x3632e347bc6d794940424ca0945dafa04328a924ec6b0ccdedcda6d296e09aa2dd5dca83b934cac752993238aa4fe826be8d62991c9347bae6f01bc0b1b4223d, + }); + + try testArgs(@Vector(1, u512), .{ + 0x651058c1d89a8f34cfc5e66b6d25294eecfcc4a7e1e4a356eb51ee7d7b2db25378e4afee51b7d18d16e520772a60c50a02d7966f40ced1870b32c658e5821397, + }, .{ + 0xd726e265ec80cb99510ba4f480ca64e959de5c528a7f54c386ecad22eeeefa845f0fd44b1bd64258a5f868197ee2d8fed59df9c9f0b72e74051a7ff20230880e, + }); + try testArgs(@Vector(2, u512), .{ + 0x22c8183c95cca8b09fdf541e431b73e9e4a1a5a00dff12381937fab52681d09d38ea25727d7025a2be08942cfa01535759e1644792e347c7901ec94b343c6337, + 0x292fdf644e75927e1aea9465ae2f60fb27550cd095f1afdea2cf7855286d26fbeed1c0b9c0474b73cb6b75621f7eadaa2f94ec358179ce2aaa0766df20da1ef3, + }, .{ + 0xe1cd8c0ca244c6626d4415e10b4ac43fa69e454c529c24fec4b13e6b945684d4ea833709c16c636ca78cffa5c5bf0fe945cd714a9ad695184a6bdad31dec9e31, + 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90, + }); + + try testArgs(@Vector(1, i513), .{ + 0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b, + }, .{ + -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808, + }); + try testArgs(@Vector(2, i513), .{ + 0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c, + -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711, + }, .{ + -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0, + 0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33, + }); + + try testArgs(@Vector(1, u513), .{ + 0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78, + }, .{ + 0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8, + }); + try testArgs(@Vector(2, u513), .{ + 0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e, + 0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e, + }, .{ + 0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef, + 0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723, + }); + + try testArgs(@Vector(1, i1023), .{ + -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4, + }, .{ + 0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1, + }); + + try testArgs(@Vector(1, u1023), .{ + 0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0, + }, .{ + 0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209, + }); + + try testArgs(@Vector(1, i1024), .{ + -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394, + }, .{ + -0x7cab2a053dfbf944cd342460350c989fd1b4469a6c7b54ddcacd54e605d29c03651b5c463495610d82269c9ac5b51bfd07816a0f7b1ab50cb598989ed64607b3faff79a190702eb285b0fedc050ec1a71537abc47ec590eb671d4f76b19567049ba4789d1a4348385607a0320fbff9b78260536a9b6030bddb0b09da689d1687, + }); + + try testArgs(@Vector(1, u1024), .{ + 0x0ca1a0dfaf8bb1da714b457d23c71aef948e66c7cd45c0aa941498a796fb18502ec32f34e885d0a107d44ae81595f8b52c2f0fb38e584b7139903a0e8a823ae20d01ca0662722dd474e7efc40f32d74cc065d97d8a09d0447f1ab6107fa0a57f3f8c866ae872506627ce82f18add79cee8dc69837f4ead3ca770c4d622d7e544, + }, .{ + 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc, + }); + + try testArgs(@Vector(1, i1025), .{ + -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18, + }, .{ + -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081, + }); + + try testArgs(@Vector(1, u1025), .{ + 0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb, + }, .{ + 0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f, + }); + } + fn testFloatVectors() !void { + @setEvalBranchQuota(21_700); + + try testArgs(@Vector(1, f16), .{ + -tmin(f16), + }, .{ + fmax(f16), + }); + try testArgs(@Vector(2, f16), .{ + 1e-1, 1e0, + }, .{ + -nan(f16), -fmin(f16), + }); + try testArgs(@Vector(4, f16), .{ + 1e-1, -fmax(f16), 0.0, 1e-1, + }, .{ + -fmin(f16), -1e1, 1e0, -tmin(f16), + }); + try testArgs(@Vector(8, f16), .{ + -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1, + }, .{ + -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1, + }); + try testArgs(@Vector(16, f16), .{ + 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), + }, .{ + 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), + }); + try testArgs(@Vector(32, f16), .{ + -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), + 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, + }, .{ + 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), + 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, + }); + try testArgs(@Vector(64, f16), .{ + -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), + 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), + 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, + 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), + }, .{ + 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, + 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, + 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, + -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), + }); + try testArgs(@Vector(128, f16), .{ + -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), + 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), + 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), + -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, + 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), + 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, + -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), + -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, + }, .{ + -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), + 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), + -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, + 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), + 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), + -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), + 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, + -fmin(f16), tmin(f16), -1e0, 1e-1, 0.0, nan(f16), 1e0, fmax(f16), -1e0, 1e1, nan(f16), 1e0, fmin(f16), 1e0, -1e1, -1e1, + }); + try testArgs(@Vector(69, f16), .{ + -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), + 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, + 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), + 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, + -1e1, -0.0, -fmax(f16), nan(f16), fmax(f16), + }, .{ + 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), + 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, + 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), + -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), + inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16), + }); + + try testArgs(@Vector(1, f32), .{ + fmin(f32), + }, .{ + -tmin(f32), + }); + try testArgs(@Vector(2, f32), .{ + nan(f32), -1e1, + }, .{ + -tmin(f32), fmin(f32), + }); + try testArgs(@Vector(4, f32), .{ + fmax(f32), -fmax(f32), -1e1, 0.0, + }, .{ + inf(f32), inf(f32), -1e1, inf(f32), + }); + try testArgs(@Vector(8, f32), .{ + -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1, + }, .{ + 1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1, + }); + try testArgs(@Vector(16, f32), .{ + 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), + }, .{ + 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), + }); + try testArgs(@Vector(32, f32), .{ + 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, + -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, + }, .{ + -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), + -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), + -fmin(f32), fmax(f32), + }); + try testArgs(@Vector(64, f32), .{ + 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, + -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), + 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), + -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, + }, .{ + 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, + -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, + 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), + 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), + }); + try testArgs(@Vector(128, f32), .{ + -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, + 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), + 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, + 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, + -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), + 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), + 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), + 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), + }, .{ + -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), + 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), + 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, + -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), + -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, + -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), + -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), + 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), + }); + try testArgs(@Vector(69, f32), .{ + 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, + 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, + 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), + -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, + 1e1, -nan(f32), -nan(f32), tmin(f32), -nan(f32), + }, .{ + -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), + -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), + 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), + -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, + -1e1, fmin(f32), inf(f32), fmin(f32), 0.0, + }); + + try testArgs(@Vector(1, f64), .{ + -0.0, + }, .{ + 1e0, + }); + try testArgs(@Vector(2, f64), .{ + -1e0, 0.0, + }, .{ + -inf(f64), -fmax(f64), + }); + try testArgs(@Vector(4, f64), .{ + -inf(f64), inf(f64), 1e1, 0.0, + }, .{ + -tmin(f64), 1e0, nan(f64), 0.0, + }); + try testArgs(@Vector(8, f64), .{ + 1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1, + }, .{ + tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0, + }); + try testArgs(@Vector(16, f64), .{ + 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, + }, .{ + -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), + }); + try testArgs(@Vector(32, f64), .{ + -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, + -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), + }, .{ + -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), + 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), + }); + try testArgs(@Vector(64, f64), .{ + -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, + -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, + -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), + -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, + }, .{ + 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), + 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, + 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), + 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, + }); + try testArgs(@Vector(128, f64), .{ + 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), + -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), + 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), + -fmin(f64), 1e0, -inf(f64), -1e1, 1e-1, 1e0, 1e1, 1e1, tmin(f64), nan(f64), inf(f64), 0.0, -1e0, -1e1, 1e0, + -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), + 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), + 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, + 1e-1, 1e-1, 1e-1, inf(f64), -inf(f64), 1e0, 1e1, 1e1, nan(f64), 1e1, -tmin(f64), 1e0, -fmin(f64), -1e0, -fmax(f64), + -fmin(f64), -fmin(f64), -1e0, inf(f64), nan(f64), tmin(f64), 1e-1, -1e0, + }, .{ + 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), + nan(f64), -tmin(f64), tmin(f64), 1e0, 1e-1, -1e1, -nan(f64), 1e0, inf(f64), -1e1, fmin(f64), 1e-1, 1e1, -1e1, 1e1, + -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), + 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), + -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, + 1e-1, 0.0, -1e1, -nan(f64), 1e1, -fmin(f64), -tmin(f64), 1e1, 1e0, -tmin(f64), -1e0, -fmin(f64), -0.0, -1e1, 1e-1, + 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, + 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), + tmin(f64), -1e1, -nan(f64), 1e1, -inf(f64), -fmax(f64), -inf(f64), -1e0, + }); + try testArgs(@Vector(69, f64), .{ + 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), + 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), + -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), + -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, + -nan(f64), 1e1, -1e0, 1e-1, 0.0, + }, .{ + -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), + -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), + 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), + 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, + -nan(f64), -fmin(f64), 1e-1, nan(f64), 1e-1, + }); + + try testArgs(@Vector(1, f80), .{ + -nan(f80), + }, .{ + -1e0, + }); + try testArgs(@Vector(2, f80), .{ + -fmax(f80), -inf(f80), + }, .{ + 1e-1, 1e1, + }); + try testArgs(@Vector(4, f80), .{ + -0.0, -inf(f80), 1e-1, 1e1, + }, .{ + -1e0, 0.0, 1e-1, -1e1, + }); + try testArgs(@Vector(8, f80), .{ + 1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1, + }, .{ + -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1, + }); + try testArgs(@Vector(16, f80), .{ + 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), + }, .{ + -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, + }); + try testArgs(@Vector(32, f80), .{ + 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), + 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), + }, .{ + 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, + 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), + }); + try testArgs(@Vector(64, f80), .{ + -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), + 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, + -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, + 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), + }, .{ + -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), + 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), + 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, + 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, + }); + try testArgs(@Vector(128, f80), .{ + 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), + -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, + -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, + -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), + -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), + 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, + 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, + -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), + }, .{ + -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), + 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, + 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), + -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), + 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, + 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), + 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), + -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, + }); + try testArgs(@Vector(69, f80), .{ + -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, + 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), + -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), + 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, + -fmax(f80), -1e0, 1e-1, -1e0, fmax(f80), + }, .{ + -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), + -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, + 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), + 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, + nan(f80), 1e1, -1e1, 0.0, -fmin(f80), + }); + + try testArgs(@Vector(1, f128), .{ + -nan(f128), + }, .{ + -0.0, + }); + try testArgs(@Vector(2, f128), .{ + 0.0, -inf(f128), + }, .{ + 1e-1, -fmin(f128), + }); + try testArgs(@Vector(4, f128), .{ + 1e-1, fmax(f128), 1e1, -fmax(f128), + }, .{ + -tmin(f128), fmax(f128), -0.0, -0.0, + }); + try testArgs(@Vector(8, f128), .{ + 1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128), + }, .{ + fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1, + }); + try testArgs(@Vector(16, f128), .{ + -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), + }, .{ + -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), + }); + try testArgs(@Vector(32, f128), .{ + -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), + -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), + }, .{ + -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, + 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, + }); + try testArgs(@Vector(64, f128), .{ + -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, + 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, + -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, + -1e0, -1e0, -1e0, -inf(f128), 1e1, -tmin(f128), nan(f128), nan(f128), 1e-1, fmin(f128), 1e-1, tmin(f128), -1e1, 1e-1, 1e1, + fmax(f128), fmax(f128), 1e-1, -fmax(f128), + }, .{ + -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, + 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), + 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), + 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), + }); + try testArgs(@Vector(128, f128), .{ + -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), + inf(f128), -1e0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -1e1, -fmin(f128), -1e1, 1e0, -nan(f128), + -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, + 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), + -fmin(f128), 0.0, 1e-1, -nan(f128), 1e-1, -inf(f128), -nan(f128), -1e0, fmin(f128), -0.0, 1e1, -tmin(f128), 1e1, 1e0, + 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, + 1e-1, 0.0, -fmin(f128), 0.0, 1e1, 1e1, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1e0, -fmin(f128), -1e1, -fmin(f128), + -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, + 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), + 1e-1, fmax(f128), + }, .{ + 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, + 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), + -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), + -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, + -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), + 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), + 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, + -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, + fmin(f128), 1e1, -tmin(f128), -tmin(f128), 0.0, -1e1, 1e0, -fmin(f128), + }); + try testArgs(@Vector(69, f128), .{ + -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), + -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), + 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, + 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), + nan(f128), -inf(f128), 1e0, fmin(f128), -nan(f128), + }, .{ + -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), + 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, + -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, + 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, + -1e0, -inf(f128), tmin(f128), inf(f128), inf(f128), + }); + } + }; +} + +inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { + @setRuntimeSafety(false); + return @as(AddOneBit(Type), lhs) + rhs; +} +test addUnsafe { + const test_add_unsafe = binary(addUnsafe, .{}); + try test_add_unsafe.testInts(); + try test_add_unsafe.testIntVectors(); + try test_add_unsafe.testFloats(); + try test_add_unsafe.testFloatVectors(); +} + +inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type { + return lhs +% rhs; +} +test addWrap { + const test_add_wrap = binary(addWrap, .{}); + try test_add_wrap.testInts(); + try test_add_wrap.testIntVectors(); +} + +inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { + @setRuntimeSafety(false); + switch (@typeInfo(Scalar(Type))) { + else => @compileError(@typeName(Type)), + .int => |int| switch (int.signedness) { + .signed => {}, + .unsigned => return @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs), + }, + .float => {}, + } + return @as(AddOneBit(Type), lhs) - rhs; +} +test subUnsafe { + const test_sub_unsafe = binary(subUnsafe, .{}); + try test_sub_unsafe.testInts(); + try test_sub_unsafe.testIntVectors(); + try test_sub_unsafe.testFloats(); + try test_sub_unsafe.testFloatVectors(); +} + +inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type { + return lhs -% rhs; +} +test subWrap { + const test_sub_wrap = binary(subWrap, .{}); + try test_sub_wrap.testInts(); + try test_sub_wrap.testIntVectors(); +} + +inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) { + @setRuntimeSafety(false); + return @as(DoubleBits(Type), lhs) * rhs; +} +test mulUnsafe { + const test_mul_unsafe = binary(mulUnsafe, .{}); + try test_mul_unsafe.testInts(); + try test_mul_unsafe.testIntVectors(); +} + +inline fn mulWrap(comptime Type: type, lhs: Type, rhs: Type) Type { + return lhs *% rhs; +} +test mulWrap { + const test_mul_wrap = binary(mulWrap, .{}); + try test_mul_wrap.testInts(); + try test_mul_wrap.testIntVectors(); +} + +inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) { + return lhs * rhs; +} +test multiply { + const test_multiply = binary(multiply, .{}); + try test_multiply.testFloats(); + try test_multiply.testFloatVectors(); +} + +inline fn divide(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) { + return lhs / rhs; +} +test divide { + const test_divide = binary(divide, .{ .compare = .approx }); + try test_divide.testFloats(); + try test_divide.testFloatVectors(); +} + +inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divTrunc(lhs, rhs)) { + return @divTrunc(lhs, rhs); +} +test divTrunc { + const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int }); + try test_div_trunc.testInts(); + try test_div_trunc.testIntVectors(); + try test_div_trunc.testFloats(); + try test_div_trunc.testFloatVectors(); +} + +inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divFloor(lhs, rhs)) { + return @divFloor(lhs, rhs); +} +test divFloor { + const test_div_floor = binary(divFloor, .{ .compare = .approx_int }); + try test_div_floor.testFloats(); + try test_div_floor.testFloatVectors(); +} + +inline fn rem(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@rem(lhs, rhs)) { + return @rem(lhs, rhs); +} +test rem { + const test_rem = binary(rem, .{}); + try test_rem.testInts(); + try test_rem.testIntVectors(); + try test_rem.testFloats(); + try test_rem.testFloatVectors(); +} + +inline fn mod(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mod(lhs, rhs)) { + // workaround llvm backend bugs + if (@inComptime()) { + const scalarMod = struct { + fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) { + const scalar_rem = @rem(scalar_lhs, scalar_rhs); + return if (scalar_rem == 0 or sign(scalar_rem) == sign(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs; + } + }.scalarMod; + switch (@typeInfo(Type)) { + else => return scalarMod(lhs, rhs), + .vector => |info| { + var res: Type = undefined; + inline for (0..info.len) |i| res[i] = scalarMod(lhs[i], rhs[i]); + return res; + }, + } + } + return @mod(lhs, rhs); +} +test mod { + const test_mod = binary(mod, .{}); + try test_mod.testFloats(); + try test_mod.testFloatVectors(); +} + +inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) { + return lhs == rhs; +} +test equal { + const test_equal = binary(equal, .{}); + try test_equal.testInts(); + try test_equal.testFloats(); +} + +inline fn notEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs != rhs) { + return lhs != rhs; +} +test notEqual { + const test_not_equal = binary(notEqual, .{}); + try test_not_equal.testInts(); + try test_not_equal.testFloats(); +} + +inline fn lessThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs < rhs) { + return lhs < rhs; +} +test lessThan { + const test_less_than = binary(lessThan, .{}); + try test_less_than.testInts(); + try test_less_than.testFloats(); +} + +inline fn lessThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs <= rhs) { + return lhs <= rhs; +} +test lessThanOrEqual { + const test_less_than_or_equal = binary(lessThanOrEqual, .{}); + try test_less_than_or_equal.testInts(); + try test_less_than_or_equal.testFloats(); +} + +inline fn greaterThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs > rhs) { + return lhs > rhs; +} +test greaterThan { + const test_greater_than = binary(greaterThan, .{}); + try test_greater_than.testInts(); + try test_greater_than.testFloats(); +} + +inline fn greaterThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs >= rhs) { + return lhs >= rhs; +} +test greaterThanOrEqual { + const test_greater_than_or_equal = binary(greaterThanOrEqual, .{}); + try test_greater_than_or_equal.testInts(); + try test_greater_than_or_equal.testFloats(); +} + +inline fn bitAnd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs & rhs) { + return lhs & rhs; +} +test bitAnd { + const test_bit_and = binary(bitAnd, .{}); + try test_bit_and.testInts(); + try test_bit_and.testIntVectors(); +} + +inline fn bitOr(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs | rhs) { + return lhs | rhs; +} +test bitOr { + const test_bit_or = binary(bitOr, .{}); + try test_bit_or.testInts(); + try test_bit_or.testIntVectors(); +} + +inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs ^ rhs) { + return lhs ^ rhs; +} +test bitXor { + const test_bit_xor = binary(bitXor, .{}); + try test_bit_xor.testInts(); + try test_bit_xor.testIntVectors(); +} + +inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type { + return @min(lhs, rhs); +} +test min { + const test_min = binary(min, .{}); + try test_min.testInts(); + try test_min.testIntVectors(); + try test_min.testFloats(); + try test_min.testFloatVectors(); +} + +inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type { + return @max(lhs, rhs); +} +test max { + const test_max = binary(max, .{}); + try test_max.testInts(); + try test_max.testIntVectors(); + try test_max.testFloats(); + try test_max.testFloatVectors(); +} + +inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool { + if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636 + return @as(?Type, lhs) == rhs; +} +test optionalsEqual { + const test_optionals_equal = binary(optionalsEqual, .{}); + try test_optionals_equal.testInts(); + try test_optionals_equal.testFloats(); +} + +inline fn optionalsNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool { + if (@inComptime()) return lhs != rhs; // workaround https://github.com/ziglang/zig/issues/22636 + return lhs != @as(?Type, rhs); +} +test optionalsNotEqual { + const test_optionals_not_equal = binary(optionalsNotEqual, .{}); + try test_optionals_not_equal.testInts(); + try test_optionals_not_equal.testFloats(); +} + +inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) { + return @mulAdd(Type, lhs, rhs, rhs); +} +test mulAdd { + const test_mul_add = binary(mulAdd, .{ .compare = .approx }); + try test_mul_add.testFloats(); + try test_mul_add.testFloatVectors(); +} diff --git a/test/behavior/x86_64/build.zig b/test/behavior/x86_64/build.zig index 65f8b17569..a63fba6922 100644 --- a/test/behavior/x86_64/build.zig +++ b/test/behavior/x86_64/build.zig @@ -116,8 +116,10 @@ pub fn build(b: *std.Build) void { const target = b.resolveTargetQuery(query); const cpu = query.serializeCpuAlloc(b.allocator) catch @panic("OOM"); for ([_][]const u8{ - "math.zig", + "binary.zig", + "cast.zig", "mem.zig", + "unary.zig", }) |path| { const test_mod = b.createModule(.{ .root_source_file = b.path(path), diff --git a/test/behavior/x86_64/cast.zig b/test/behavior/x86_64/cast.zig new file mode 100644 index 0000000000..6e52dc33a2 --- /dev/null +++ b/test/behavior/x86_64/cast.zig @@ -0,0 +1,14565 @@ +const checkExpected = math.checkExpected; +const Compare = math.Compare; +const fmax = math.fmax; +const fmin = math.fmin; +const Gpr = math.Gpr; +const imax = math.imax; +const imin = math.imin; +const inf = math.inf; +const Log2Int = math.Log2Int; +const Log2IntCeil = math.Log2IntCeil; +const math = @import("math.zig"); +const nan = math.nan; +const next = math.next; +const Scalar = math.Scalar; +const splat = math.splat; +const Sse = math.Sse; +const tmin = math.tmin; + +fn cast(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type { + return struct { + // noinline so that `mem_arg` is on the stack + noinline fn testArgKinds( + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + comptime Result: type, + comptime Type: type, + comptime imm_arg: Type, + mem_arg: Type, + ) !void { + const expected = comptime op(Result, Type, imm_arg, imm_arg); + var reg_arg = mem_arg; + _ = .{®_arg}; + try checkExpected(expected, op(Result, Type, reg_arg, imm_arg), opts.compare); + try checkExpected(expected, op(Result, Type, mem_arg, imm_arg), opts.compare); + try checkExpected(expected, op(Result, Type, imm_arg, imm_arg), opts.compare); + } + // noinline for a more helpful stack trace + noinline fn testArgs(comptime Result: type, comptime Type: type, comptime imm_arg: Type) !void { + try testArgKinds( + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + Result, + Type, + imm_arg, + imm_arg, + ); + } + fn testSameSignednessInts() !void { + try testArgs(i8, i1, -1); + try testArgs(i8, i1, 0); + try testArgs(i16, i1, -1); + try testArgs(i16, i1, 0); + try testArgs(i32, i1, -1); + try testArgs(i32, i1, 0); + try testArgs(i64, i1, -1); + try testArgs(i64, i1, 0); + try testArgs(i128, i1, -1); + try testArgs(i128, i1, 0); + try testArgs(i256, i1, -1); + try testArgs(i256, i1, 0); + try testArgs(i512, i1, -1); + try testArgs(i512, i1, 0); + try testArgs(i1024, i1, -1); + try testArgs(i1024, i1, 0); + try testArgs(u8, u1, 0); + try testArgs(u8, u1, 1 << 0); + try testArgs(u16, u1, 0); + try testArgs(u16, u1, 1 << 0); + try testArgs(u32, u1, 0); + try testArgs(u32, u1, 1 << 0); + try testArgs(u64, u1, 0); + try testArgs(u64, u1, 1 << 0); + try testArgs(u128, u1, 0); + try testArgs(u128, u1, 1 << 0); + try testArgs(u256, u1, 0); + try testArgs(u256, u1, 1 << 0); + try testArgs(u512, u1, 0); + try testArgs(u512, u1, 1 << 0); + try testArgs(u1024, u1, 0); + try testArgs(u1024, u1, 1 << 0); + + try testArgs(i8, i2, -1 << 1); + try testArgs(i8, i2, -1); + try testArgs(i8, i2, 0); + try testArgs(i16, i2, -1 << 1); + try testArgs(i16, i2, -1); + try testArgs(i16, i2, 0); + try testArgs(i32, i2, -1 << 1); + try testArgs(i32, i2, -1); + try testArgs(i32, i2, 0); + try testArgs(i64, i2, -1 << 1); + try testArgs(i64, i2, -1); + try testArgs(i64, i2, 0); + try testArgs(i128, i2, -1 << 1); + try testArgs(i128, i2, -1); + try testArgs(i128, i2, 0); + try testArgs(i256, i2, -1 << 1); + try testArgs(i256, i2, -1); + try testArgs(i256, i2, 0); + try testArgs(i512, i2, -1 << 1); + try testArgs(i512, i2, -1); + try testArgs(i512, i2, 0); + try testArgs(i1024, i2, -1 << 1); + try testArgs(i1024, i2, -1); + try testArgs(i1024, i2, 0); + try testArgs(u8, u2, 0); + try testArgs(u8, u2, 1 << 0); + try testArgs(u8, u2, 1 << 1); + try testArgs(u16, u2, 0); + try testArgs(u16, u2, 1 << 0); + try testArgs(u16, u2, 1 << 1); + try testArgs(u32, u2, 0); + try testArgs(u32, u2, 1 << 0); + try testArgs(u32, u2, 1 << 1); + try testArgs(u64, u2, 0); + try testArgs(u64, u2, 1 << 0); + try testArgs(u64, u2, 1 << 1); + try testArgs(u128, u2, 0); + try testArgs(u128, u2, 1 << 0); + try testArgs(u128, u2, 1 << 1); + try testArgs(u256, u2, 0); + try testArgs(u256, u2, 1 << 0); + try testArgs(u256, u2, 1 << 1); + try testArgs(u512, u2, 0); + try testArgs(u512, u2, 1 << 0); + try testArgs(u512, u2, 1 << 1); + try testArgs(u1024, u2, 0); + try testArgs(u1024, u2, 1 << 0); + try testArgs(u1024, u2, 1 << 1); + + try testArgs(i8, i3, -1 << 2); + try testArgs(i8, i3, -1); + try testArgs(i8, i3, 0); + try testArgs(i16, i3, -1 << 2); + try testArgs(i16, i3, -1); + try testArgs(i16, i3, 0); + try testArgs(i32, i3, -1 << 2); + try testArgs(i32, i3, -1); + try testArgs(i32, i3, 0); + try testArgs(i64, i3, -1 << 2); + try testArgs(i64, i3, -1); + try testArgs(i64, i3, 0); + try testArgs(i128, i3, -1 << 2); + try testArgs(i128, i3, -1); + try testArgs(i128, i3, 0); + try testArgs(i256, i3, -1 << 2); + try testArgs(i256, i3, -1); + try testArgs(i256, i3, 0); + try testArgs(i512, i3, -1 << 2); + try testArgs(i512, i3, -1); + try testArgs(i512, i3, 0); + try testArgs(i1024, i3, -1 << 2); + try testArgs(i1024, i3, -1); + try testArgs(i1024, i3, 0); + try testArgs(u8, u3, 0); + try testArgs(u8, u3, 1 << 0); + try testArgs(u8, u3, 1 << 2); + try testArgs(u16, u3, 0); + try testArgs(u16, u3, 1 << 0); + try testArgs(u16, u3, 1 << 2); + try testArgs(u32, u3, 0); + try testArgs(u32, u3, 1 << 0); + try testArgs(u32, u3, 1 << 2); + try testArgs(u64, u3, 0); + try testArgs(u64, u3, 1 << 0); + try testArgs(u64, u3, 1 << 2); + try testArgs(u128, u3, 0); + try testArgs(u128, u3, 1 << 0); + try testArgs(u128, u3, 1 << 2); + try testArgs(u256, u3, 0); + try testArgs(u256, u3, 1 << 0); + try testArgs(u256, u3, 1 << 2); + try testArgs(u512, u3, 0); + try testArgs(u512, u3, 1 << 0); + try testArgs(u512, u3, 1 << 2); + try testArgs(u1024, u3, 0); + try testArgs(u1024, u3, 1 << 0); + try testArgs(u1024, u3, 1 << 2); + + try testArgs(i8, i4, -1 << 3); + try testArgs(i8, i4, -1); + try testArgs(i8, i4, 0); + try testArgs(i16, i4, -1 << 3); + try testArgs(i16, i4, -1); + try testArgs(i16, i4, 0); + try testArgs(i32, i4, -1 << 3); + try testArgs(i32, i4, -1); + try testArgs(i32, i4, 0); + try testArgs(i64, i4, -1 << 3); + try testArgs(i64, i4, -1); + try testArgs(i64, i4, 0); + try testArgs(i128, i4, -1 << 3); + try testArgs(i128, i4, -1); + try testArgs(i128, i4, 0); + try testArgs(i256, i4, -1 << 3); + try testArgs(i256, i4, -1); + try testArgs(i256, i4, 0); + try testArgs(i512, i4, -1 << 3); + try testArgs(i512, i4, -1); + try testArgs(i512, i4, 0); + try testArgs(i1024, i4, -1 << 3); + try testArgs(i1024, i4, -1); + try testArgs(i1024, i4, 0); + try testArgs(u8, u4, 0); + try testArgs(u8, u4, 1 << 0); + try testArgs(u8, u4, 1 << 3); + try testArgs(u16, u4, 0); + try testArgs(u16, u4, 1 << 0); + try testArgs(u16, u4, 1 << 3); + try testArgs(u32, u4, 0); + try testArgs(u32, u4, 1 << 0); + try testArgs(u32, u4, 1 << 3); + try testArgs(u64, u4, 0); + try testArgs(u64, u4, 1 << 0); + try testArgs(u64, u4, 1 << 3); + try testArgs(u128, u4, 0); + try testArgs(u128, u4, 1 << 0); + try testArgs(u128, u4, 1 << 3); + try testArgs(u256, u4, 0); + try testArgs(u256, u4, 1 << 0); + try testArgs(u256, u4, 1 << 3); + try testArgs(u512, u4, 0); + try testArgs(u512, u4, 1 << 0); + try testArgs(u512, u4, 1 << 3); + try testArgs(u1024, u4, 0); + try testArgs(u1024, u4, 1 << 0); + try testArgs(u1024, u4, 1 << 3); + + try testArgs(i8, i5, -1 << 4); + try testArgs(i8, i5, -1); + try testArgs(i8, i5, 0); + try testArgs(i16, i5, -1 << 4); + try testArgs(i16, i5, -1); + try testArgs(i16, i5, 0); + try testArgs(i32, i5, -1 << 4); + try testArgs(i32, i5, -1); + try testArgs(i32, i5, 0); + try testArgs(i64, i5, -1 << 4); + try testArgs(i64, i5, -1); + try testArgs(i64, i5, 0); + try testArgs(i128, i5, -1 << 4); + try testArgs(i128, i5, -1); + try testArgs(i128, i5, 0); + try testArgs(i256, i5, -1 << 4); + try testArgs(i256, i5, -1); + try testArgs(i256, i5, 0); + try testArgs(i512, i5, -1 << 4); + try testArgs(i512, i5, -1); + try testArgs(i512, i5, 0); + try testArgs(i1024, i5, -1 << 4); + try testArgs(i1024, i5, -1); + try testArgs(i1024, i5, 0); + try testArgs(u8, u5, 0); + try testArgs(u8, u5, 1 << 0); + try testArgs(u8, u5, 1 << 4); + try testArgs(u16, u5, 0); + try testArgs(u16, u5, 1 << 0); + try testArgs(u16, u5, 1 << 4); + try testArgs(u32, u5, 0); + try testArgs(u32, u5, 1 << 0); + try testArgs(u32, u5, 1 << 4); + try testArgs(u64, u5, 0); + try testArgs(u64, u5, 1 << 0); + try testArgs(u64, u5, 1 << 4); + try testArgs(u128, u5, 0); + try testArgs(u128, u5, 1 << 0); + try testArgs(u128, u5, 1 << 4); + try testArgs(u256, u5, 0); + try testArgs(u256, u5, 1 << 0); + try testArgs(u256, u5, 1 << 4); + try testArgs(u512, u5, 0); + try testArgs(u512, u5, 1 << 0); + try testArgs(u512, u5, 1 << 4); + try testArgs(u1024, u5, 0); + try testArgs(u1024, u5, 1 << 0); + try testArgs(u1024, u5, 1 << 4); + + try testArgs(i8, i7, -1 << 6); + try testArgs(i8, i7, -1); + try testArgs(i8, i7, 0); + try testArgs(i16, i7, -1 << 6); + try testArgs(i16, i7, -1); + try testArgs(i16, i7, 0); + try testArgs(i32, i7, -1 << 6); + try testArgs(i32, i7, -1); + try testArgs(i32, i7, 0); + try testArgs(i64, i7, -1 << 6); + try testArgs(i64, i7, -1); + try testArgs(i64, i7, 0); + try testArgs(i128, i7, -1 << 6); + try testArgs(i128, i7, -1); + try testArgs(i128, i7, 0); + try testArgs(i256, i7, -1 << 6); + try testArgs(i256, i7, -1); + try testArgs(i256, i7, 0); + try testArgs(i512, i7, -1 << 6); + try testArgs(i512, i7, -1); + try testArgs(i512, i7, 0); + try testArgs(i1024, i7, -1 << 6); + try testArgs(i1024, i7, -1); + try testArgs(i1024, i7, 0); + try testArgs(u8, u7, 0); + try testArgs(u8, u7, 1 << 0); + try testArgs(u8, u7, 1 << 6); + try testArgs(u16, u7, 0); + try testArgs(u16, u7, 1 << 0); + try testArgs(u16, u7, 1 << 6); + try testArgs(u32, u7, 0); + try testArgs(u32, u7, 1 << 0); + try testArgs(u32, u7, 1 << 6); + try testArgs(u64, u7, 0); + try testArgs(u64, u7, 1 << 0); + try testArgs(u64, u7, 1 << 6); + try testArgs(u128, u7, 0); + try testArgs(u128, u7, 1 << 0); + try testArgs(u128, u7, 1 << 6); + try testArgs(u256, u7, 0); + try testArgs(u256, u7, 1 << 0); + try testArgs(u256, u7, 1 << 6); + try testArgs(u512, u7, 0); + try testArgs(u512, u7, 1 << 0); + try testArgs(u512, u7, 1 << 6); + try testArgs(u1024, u7, 0); + try testArgs(u1024, u7, 1 << 0); + try testArgs(u1024, u7, 1 << 6); + + try testArgs(i8, i8, -1 << 7); + try testArgs(i8, i8, -1); + try testArgs(i8, i8, 0); + try testArgs(i16, i8, -1 << 7); + try testArgs(i16, i8, -1); + try testArgs(i16, i8, 0); + try testArgs(i32, i8, -1 << 7); + try testArgs(i32, i8, -1); + try testArgs(i32, i8, 0); + try testArgs(i64, i8, -1 << 7); + try testArgs(i64, i8, -1); + try testArgs(i64, i8, 0); + try testArgs(i128, i8, -1 << 7); + try testArgs(i128, i8, -1); + try testArgs(i128, i8, 0); + try testArgs(i256, i8, -1 << 7); + try testArgs(i256, i8, -1); + try testArgs(i256, i8, 0); + try testArgs(i512, i8, -1 << 7); + try testArgs(i512, i8, -1); + try testArgs(i512, i8, 0); + try testArgs(i1024, i8, -1 << 7); + try testArgs(i1024, i8, -1); + try testArgs(i1024, i8, 0); + try testArgs(u8, u8, 0); + try testArgs(u8, u8, 1 << 0); + try testArgs(u8, u8, 1 << 7); + try testArgs(u16, u8, 0); + try testArgs(u16, u8, 1 << 0); + try testArgs(u16, u8, 1 << 7); + try testArgs(u32, u8, 0); + try testArgs(u32, u8, 1 << 0); + try testArgs(u32, u8, 1 << 7); + try testArgs(u64, u8, 0); + try testArgs(u64, u8, 1 << 0); + try testArgs(u64, u8, 1 << 7); + try testArgs(u128, u8, 0); + try testArgs(u128, u8, 1 << 0); + try testArgs(u128, u8, 1 << 7); + try testArgs(u256, u8, 0); + try testArgs(u256, u8, 1 << 0); + try testArgs(u256, u8, 1 << 7); + try testArgs(u512, u8, 0); + try testArgs(u512, u8, 1 << 0); + try testArgs(u512, u8, 1 << 7); + try testArgs(u1024, u8, 0); + try testArgs(u1024, u8, 1 << 0); + try testArgs(u1024, u8, 1 << 7); + + try testArgs(i8, i9, -1 << 8); + try testArgs(i8, i9, -1); + try testArgs(i8, i9, 0); + try testArgs(i16, i9, -1 << 8); + try testArgs(i16, i9, -1); + try testArgs(i16, i9, 0); + try testArgs(i32, i9, -1 << 8); + try testArgs(i32, i9, -1); + try testArgs(i32, i9, 0); + try testArgs(i64, i9, -1 << 8); + try testArgs(i64, i9, -1); + try testArgs(i64, i9, 0); + try testArgs(i128, i9, -1 << 8); + try testArgs(i128, i9, -1); + try testArgs(i128, i9, 0); + try testArgs(i256, i9, -1 << 8); + try testArgs(i256, i9, -1); + try testArgs(i256, i9, 0); + try testArgs(i512, i9, -1 << 8); + try testArgs(i512, i9, -1); + try testArgs(i512, i9, 0); + try testArgs(i1024, i9, -1 << 8); + try testArgs(i1024, i9, -1); + try testArgs(i1024, i9, 0); + try testArgs(u8, u9, 0); + try testArgs(u8, u9, 1 << 0); + try testArgs(u8, u9, 1 << 8); + try testArgs(u16, u9, 0); + try testArgs(u16, u9, 1 << 0); + try testArgs(u16, u9, 1 << 8); + try testArgs(u32, u9, 0); + try testArgs(u32, u9, 1 << 0); + try testArgs(u32, u9, 1 << 8); + try testArgs(u64, u9, 0); + try testArgs(u64, u9, 1 << 0); + try testArgs(u64, u9, 1 << 8); + try testArgs(u128, u9, 0); + try testArgs(u128, u9, 1 << 0); + try testArgs(u128, u9, 1 << 8); + try testArgs(u256, u9, 0); + try testArgs(u256, u9, 1 << 0); + try testArgs(u256, u9, 1 << 8); + try testArgs(u512, u9, 0); + try testArgs(u512, u9, 1 << 0); + try testArgs(u512, u9, 1 << 8); + try testArgs(u1024, u9, 0); + try testArgs(u1024, u9, 1 << 0); + try testArgs(u1024, u9, 1 << 8); + + try testArgs(i8, i15, -1 << 14); + try testArgs(i8, i15, -1); + try testArgs(i8, i15, 0); + try testArgs(i16, i15, -1 << 14); + try testArgs(i16, i15, -1); + try testArgs(i16, i15, 0); + try testArgs(i32, i15, -1 << 14); + try testArgs(i32, i15, -1); + try testArgs(i32, i15, 0); + try testArgs(i64, i15, -1 << 14); + try testArgs(i64, i15, -1); + try testArgs(i64, i15, 0); + try testArgs(i128, i15, -1 << 14); + try testArgs(i128, i15, -1); + try testArgs(i128, i15, 0); + try testArgs(i256, i15, -1 << 14); + try testArgs(i256, i15, -1); + try testArgs(i256, i15, 0); + try testArgs(i512, i15, -1 << 14); + try testArgs(i512, i15, -1); + try testArgs(i512, i15, 0); + try testArgs(i1024, i15, -1 << 14); + try testArgs(i1024, i15, -1); + try testArgs(i1024, i15, 0); + try testArgs(u8, u15, 0); + try testArgs(u8, u15, 1 << 0); + try testArgs(u8, u15, 1 << 14); + try testArgs(u16, u15, 0); + try testArgs(u16, u15, 1 << 0); + try testArgs(u16, u15, 1 << 14); + try testArgs(u32, u15, 0); + try testArgs(u32, u15, 1 << 0); + try testArgs(u32, u15, 1 << 14); + try testArgs(u64, u15, 0); + try testArgs(u64, u15, 1 << 0); + try testArgs(u64, u15, 1 << 14); + try testArgs(u128, u15, 0); + try testArgs(u128, u15, 1 << 0); + try testArgs(u128, u15, 1 << 14); + try testArgs(u256, u15, 0); + try testArgs(u256, u15, 1 << 0); + try testArgs(u256, u15, 1 << 14); + try testArgs(u512, u15, 0); + try testArgs(u512, u15, 1 << 0); + try testArgs(u512, u15, 1 << 14); + try testArgs(u1024, u15, 0); + try testArgs(u1024, u15, 1 << 0); + try testArgs(u1024, u15, 1 << 14); + + try testArgs(i8, i16, -1 << 15); + try testArgs(i8, i16, -1); + try testArgs(i8, i16, 0); + try testArgs(i16, i16, -1 << 15); + try testArgs(i16, i16, -1); + try testArgs(i16, i16, 0); + try testArgs(i32, i16, -1 << 15); + try testArgs(i32, i16, -1); + try testArgs(i32, i16, 0); + try testArgs(i64, i16, -1 << 15); + try testArgs(i64, i16, -1); + try testArgs(i64, i16, 0); + try testArgs(i128, i16, -1 << 15); + try testArgs(i128, i16, -1); + try testArgs(i128, i16, 0); + try testArgs(i256, i16, -1 << 15); + try testArgs(i256, i16, -1); + try testArgs(i256, i16, 0); + try testArgs(i512, i16, -1 << 15); + try testArgs(i512, i16, -1); + try testArgs(i512, i16, 0); + try testArgs(i1024, i16, -1 << 15); + try testArgs(i1024, i16, -1); + try testArgs(i1024, i16, 0); + try testArgs(u8, u16, 0); + try testArgs(u8, u16, 1 << 0); + try testArgs(u8, u16, 1 << 15); + try testArgs(u16, u16, 0); + try testArgs(u16, u16, 1 << 0); + try testArgs(u16, u16, 1 << 15); + try testArgs(u32, u16, 0); + try testArgs(u32, u16, 1 << 0); + try testArgs(u32, u16, 1 << 15); + try testArgs(u64, u16, 0); + try testArgs(u64, u16, 1 << 0); + try testArgs(u64, u16, 1 << 15); + try testArgs(u128, u16, 0); + try testArgs(u128, u16, 1 << 0); + try testArgs(u128, u16, 1 << 15); + try testArgs(u256, u16, 0); + try testArgs(u256, u16, 1 << 0); + try testArgs(u256, u16, 1 << 15); + try testArgs(u512, u16, 0); + try testArgs(u512, u16, 1 << 0); + try testArgs(u512, u16, 1 << 15); + try testArgs(u1024, u16, 0); + try testArgs(u1024, u16, 1 << 0); + try testArgs(u1024, u16, 1 << 15); + + try testArgs(i8, i17, -1 << 16); + try testArgs(i8, i17, -1); + try testArgs(i8, i17, 0); + try testArgs(i16, i17, -1 << 16); + try testArgs(i16, i17, -1); + try testArgs(i16, i17, 0); + try testArgs(i32, i17, -1 << 16); + try testArgs(i32, i17, -1); + try testArgs(i32, i17, 0); + try testArgs(i64, i17, -1 << 16); + try testArgs(i64, i17, -1); + try testArgs(i64, i17, 0); + try testArgs(i128, i17, -1 << 16); + try testArgs(i128, i17, -1); + try testArgs(i128, i17, 0); + try testArgs(i256, i17, -1 << 16); + try testArgs(i256, i17, -1); + try testArgs(i256, i17, 0); + try testArgs(i512, i17, -1 << 16); + try testArgs(i512, i17, -1); + try testArgs(i512, i17, 0); + try testArgs(i1024, i17, -1 << 16); + try testArgs(i1024, i17, -1); + try testArgs(i1024, i17, 0); + try testArgs(u8, u17, 0); + try testArgs(u8, u17, 1 << 0); + try testArgs(u8, u17, 1 << 16); + try testArgs(u16, u17, 0); + try testArgs(u16, u17, 1 << 0); + try testArgs(u16, u17, 1 << 16); + try testArgs(u32, u17, 0); + try testArgs(u32, u17, 1 << 0); + try testArgs(u32, u17, 1 << 16); + try testArgs(u64, u17, 0); + try testArgs(u64, u17, 1 << 0); + try testArgs(u64, u17, 1 << 16); + try testArgs(u128, u17, 0); + try testArgs(u128, u17, 1 << 0); + try testArgs(u128, u17, 1 << 16); + try testArgs(u256, u17, 0); + try testArgs(u256, u17, 1 << 0); + try testArgs(u256, u17, 1 << 16); + try testArgs(u512, u17, 0); + try testArgs(u512, u17, 1 << 0); + try testArgs(u512, u17, 1 << 16); + try testArgs(u1024, u17, 0); + try testArgs(u1024, u17, 1 << 0); + try testArgs(u1024, u17, 1 << 16); + + try testArgs(i8, i31, -1 << 30); + try testArgs(i8, i31, -1); + try testArgs(i8, i31, 0); + try testArgs(i16, i31, -1 << 30); + try testArgs(i16, i31, -1); + try testArgs(i16, i31, 0); + try testArgs(i32, i31, -1 << 30); + try testArgs(i32, i31, -1); + try testArgs(i32, i31, 0); + try testArgs(i64, i31, -1 << 30); + try testArgs(i64, i31, -1); + try testArgs(i64, i31, 0); + try testArgs(i128, i31, -1 << 30); + try testArgs(i128, i31, -1); + try testArgs(i128, i31, 0); + try testArgs(i256, i31, -1 << 30); + try testArgs(i256, i31, -1); + try testArgs(i256, i31, 0); + try testArgs(i512, i31, -1 << 30); + try testArgs(i512, i31, -1); + try testArgs(i512, i31, 0); + try testArgs(i1024, i31, -1 << 30); + try testArgs(i1024, i31, -1); + try testArgs(i1024, i31, 0); + try testArgs(u8, u31, 0); + try testArgs(u8, u31, 1 << 0); + try testArgs(u8, u31, 1 << 30); + try testArgs(u16, u31, 0); + try testArgs(u16, u31, 1 << 0); + try testArgs(u16, u31, 1 << 30); + try testArgs(u32, u31, 0); + try testArgs(u32, u31, 1 << 0); + try testArgs(u32, u31, 1 << 30); + try testArgs(u64, u31, 0); + try testArgs(u64, u31, 1 << 0); + try testArgs(u64, u31, 1 << 30); + try testArgs(u128, u31, 0); + try testArgs(u128, u31, 1 << 0); + try testArgs(u128, u31, 1 << 30); + try testArgs(u256, u31, 0); + try testArgs(u256, u31, 1 << 0); + try testArgs(u256, u31, 1 << 30); + try testArgs(u512, u31, 0); + try testArgs(u512, u31, 1 << 0); + try testArgs(u512, u31, 1 << 30); + try testArgs(u1024, u31, 0); + try testArgs(u1024, u31, 1 << 0); + try testArgs(u1024, u31, 1 << 30); + + try testArgs(i8, i32, -1 << 31); + try testArgs(i8, i32, -1); + try testArgs(i8, i32, 0); + try testArgs(i16, i32, -1 << 31); + try testArgs(i16, i32, -1); + try testArgs(i16, i32, 0); + try testArgs(i32, i32, -1 << 31); + try testArgs(i32, i32, -1); + try testArgs(i32, i32, 0); + try testArgs(i64, i32, -1 << 31); + try testArgs(i64, i32, -1); + try testArgs(i64, i32, 0); + try testArgs(i128, i32, -1 << 31); + try testArgs(i128, i32, -1); + try testArgs(i128, i32, 0); + try testArgs(i256, i32, -1 << 31); + try testArgs(i256, i32, -1); + try testArgs(i256, i32, 0); + try testArgs(i512, i32, -1 << 31); + try testArgs(i512, i32, -1); + try testArgs(i512, i32, 0); + try testArgs(i1024, i32, -1 << 31); + try testArgs(i1024, i32, -1); + try testArgs(i1024, i32, 0); + try testArgs(u8, u32, 0); + try testArgs(u8, u32, 1 << 0); + try testArgs(u8, u32, 1 << 31); + try testArgs(u16, u32, 0); + try testArgs(u16, u32, 1 << 0); + try testArgs(u16, u32, 1 << 31); + try testArgs(u32, u32, 0); + try testArgs(u32, u32, 1 << 0); + try testArgs(u32, u32, 1 << 31); + try testArgs(u64, u32, 0); + try testArgs(u64, u32, 1 << 0); + try testArgs(u64, u32, 1 << 31); + try testArgs(u128, u32, 0); + try testArgs(u128, u32, 1 << 0); + try testArgs(u128, u32, 1 << 31); + try testArgs(u256, u32, 0); + try testArgs(u256, u32, 1 << 0); + try testArgs(u256, u32, 1 << 31); + try testArgs(u512, u32, 0); + try testArgs(u512, u32, 1 << 0); + try testArgs(u512, u32, 1 << 31); + try testArgs(u1024, u32, 0); + try testArgs(u1024, u32, 1 << 0); + try testArgs(u1024, u32, 1 << 31); + + try testArgs(i8, i33, -1 << 32); + try testArgs(i8, i33, -1); + try testArgs(i8, i33, 0); + try testArgs(i16, i33, -1 << 32); + try testArgs(i16, i33, -1); + try testArgs(i16, i33, 0); + try testArgs(i32, i33, -1 << 32); + try testArgs(i32, i33, -1); + try testArgs(i32, i33, 0); + try testArgs(i64, i33, -1 << 32); + try testArgs(i64, i33, -1); + try testArgs(i64, i33, 0); + try testArgs(i128, i33, -1 << 32); + try testArgs(i128, i33, -1); + try testArgs(i128, i33, 0); + try testArgs(i256, i33, -1 << 32); + try testArgs(i256, i33, -1); + try testArgs(i256, i33, 0); + try testArgs(i512, i33, -1 << 32); + try testArgs(i512, i33, -1); + try testArgs(i512, i33, 0); + try testArgs(i1024, i33, -1 << 32); + try testArgs(i1024, i33, -1); + try testArgs(i1024, i33, 0); + try testArgs(u8, u33, 0); + try testArgs(u8, u33, 1 << 0); + try testArgs(u8, u33, 1 << 32); + try testArgs(u16, u33, 0); + try testArgs(u16, u33, 1 << 0); + try testArgs(u16, u33, 1 << 32); + try testArgs(u32, u33, 0); + try testArgs(u32, u33, 1 << 0); + try testArgs(u32, u33, 1 << 32); + try testArgs(u64, u33, 0); + try testArgs(u64, u33, 1 << 0); + try testArgs(u64, u33, 1 << 32); + try testArgs(u128, u33, 0); + try testArgs(u128, u33, 1 << 0); + try testArgs(u128, u33, 1 << 32); + try testArgs(u256, u33, 0); + try testArgs(u256, u33, 1 << 0); + try testArgs(u256, u33, 1 << 32); + try testArgs(u512, u33, 0); + try testArgs(u512, u33, 1 << 0); + try testArgs(u512, u33, 1 << 32); + try testArgs(u1024, u33, 0); + try testArgs(u1024, u33, 1 << 0); + try testArgs(u1024, u33, 1 << 32); + + try testArgs(i8, i63, -1 << 62); + try testArgs(i8, i63, -1); + try testArgs(i8, i63, 0); + try testArgs(i16, i63, -1 << 62); + try testArgs(i16, i63, -1); + try testArgs(i16, i63, 0); + try testArgs(i32, i63, -1 << 62); + try testArgs(i32, i63, -1); + try testArgs(i32, i63, 0); + try testArgs(i64, i63, -1 << 62); + try testArgs(i64, i63, -1); + try testArgs(i64, i63, 0); + try testArgs(i128, i63, -1 << 62); + try testArgs(i128, i63, -1); + try testArgs(i128, i63, 0); + try testArgs(i256, i63, -1 << 62); + try testArgs(i256, i63, -1); + try testArgs(i256, i63, 0); + try testArgs(i512, i63, -1 << 62); + try testArgs(i512, i63, -1); + try testArgs(i512, i63, 0); + try testArgs(i1024, i63, -1 << 62); + try testArgs(i1024, i63, -1); + try testArgs(i1024, i63, 0); + try testArgs(u8, u63, 0); + try testArgs(u8, u63, 1 << 0); + try testArgs(u8, u63, 1 << 62); + try testArgs(u16, u63, 0); + try testArgs(u16, u63, 1 << 0); + try testArgs(u16, u63, 1 << 62); + try testArgs(u32, u63, 0); + try testArgs(u32, u63, 1 << 0); + try testArgs(u32, u63, 1 << 62); + try testArgs(u64, u63, 0); + try testArgs(u64, u63, 1 << 0); + try testArgs(u64, u63, 1 << 62); + try testArgs(u128, u63, 0); + try testArgs(u128, u63, 1 << 0); + try testArgs(u128, u63, 1 << 62); + try testArgs(u256, u63, 0); + try testArgs(u256, u63, 1 << 0); + try testArgs(u256, u63, 1 << 62); + try testArgs(u512, u63, 0); + try testArgs(u512, u63, 1 << 0); + try testArgs(u512, u63, 1 << 62); + try testArgs(u1024, u63, 0); + try testArgs(u1024, u63, 1 << 0); + try testArgs(u1024, u63, 1 << 62); + + try testArgs(i8, i64, -1 << 63); + try testArgs(i8, i64, -1); + try testArgs(i8, i64, 0); + try testArgs(i16, i64, -1 << 63); + try testArgs(i16, i64, -1); + try testArgs(i16, i64, 0); + try testArgs(i32, i64, -1 << 63); + try testArgs(i32, i64, -1); + try testArgs(i32, i64, 0); + try testArgs(i64, i64, -1 << 63); + try testArgs(i64, i64, -1); + try testArgs(i64, i64, 0); + try testArgs(i128, i64, -1 << 63); + try testArgs(i128, i64, -1); + try testArgs(i128, i64, 0); + try testArgs(i256, i64, -1 << 63); + try testArgs(i256, i64, -1); + try testArgs(i256, i64, 0); + try testArgs(i512, i64, -1 << 63); + try testArgs(i512, i64, -1); + try testArgs(i512, i64, 0); + try testArgs(i1024, i64, -1 << 63); + try testArgs(i1024, i64, -1); + try testArgs(i1024, i64, 0); + try testArgs(u8, u64, 0); + try testArgs(u8, u64, 1 << 0); + try testArgs(u8, u64, 1 << 63); + try testArgs(u16, u64, 0); + try testArgs(u16, u64, 1 << 0); + try testArgs(u16, u64, 1 << 63); + try testArgs(u32, u64, 0); + try testArgs(u32, u64, 1 << 0); + try testArgs(u32, u64, 1 << 63); + try testArgs(u64, u64, 0); + try testArgs(u64, u64, 1 << 0); + try testArgs(u64, u64, 1 << 63); + try testArgs(u128, u64, 0); + try testArgs(u128, u64, 1 << 0); + try testArgs(u128, u64, 1 << 63); + try testArgs(u256, u64, 0); + try testArgs(u256, u64, 1 << 0); + try testArgs(u256, u64, 1 << 63); + try testArgs(u512, u64, 0); + try testArgs(u512, u64, 1 << 0); + try testArgs(u512, u64, 1 << 63); + try testArgs(u1024, u64, 0); + try testArgs(u1024, u64, 1 << 0); + try testArgs(u1024, u64, 1 << 63); + + try testArgs(i8, i65, -1 << 64); + try testArgs(i8, i65, -1); + try testArgs(i8, i65, 0); + try testArgs(i16, i65, -1 << 64); + try testArgs(i16, i65, -1); + try testArgs(i16, i65, 0); + try testArgs(i32, i65, -1 << 64); + try testArgs(i32, i65, -1); + try testArgs(i32, i65, 0); + try testArgs(i64, i65, -1 << 64); + try testArgs(i64, i65, -1); + try testArgs(i64, i65, 0); + try testArgs(i128, i65, -1 << 64); + try testArgs(i128, i65, -1); + try testArgs(i128, i65, 0); + try testArgs(i256, i65, -1 << 64); + try testArgs(i256, i65, -1); + try testArgs(i256, i65, 0); + try testArgs(i512, i65, -1 << 64); + try testArgs(i512, i65, -1); + try testArgs(i512, i65, 0); + try testArgs(i1024, i65, -1 << 64); + try testArgs(i1024, i65, -1); + try testArgs(i1024, i65, 0); + try testArgs(u8, u65, 0); + try testArgs(u8, u65, 1 << 0); + try testArgs(u8, u65, 1 << 64); + try testArgs(u16, u65, 0); + try testArgs(u16, u65, 1 << 0); + try testArgs(u16, u65, 1 << 64); + try testArgs(u32, u65, 0); + try testArgs(u32, u65, 1 << 0); + try testArgs(u32, u65, 1 << 64); + try testArgs(u64, u65, 0); + try testArgs(u64, u65, 1 << 0); + try testArgs(u64, u65, 1 << 64); + try testArgs(u128, u65, 0); + try testArgs(u128, u65, 1 << 0); + try testArgs(u128, u65, 1 << 64); + try testArgs(u256, u65, 0); + try testArgs(u256, u65, 1 << 0); + try testArgs(u256, u65, 1 << 64); + try testArgs(u512, u65, 0); + try testArgs(u512, u65, 1 << 0); + try testArgs(u512, u65, 1 << 64); + try testArgs(u1024, u65, 0); + try testArgs(u1024, u65, 1 << 0); + try testArgs(u1024, u65, 1 << 64); + + try testArgs(i8, i95, -1 << 94); + try testArgs(i8, i95, -1); + try testArgs(i8, i95, 0); + try testArgs(i16, i95, -1 << 94); + try testArgs(i16, i95, -1); + try testArgs(i16, i95, 0); + try testArgs(i32, i95, -1 << 94); + try testArgs(i32, i95, -1); + try testArgs(i32, i95, 0); + try testArgs(i64, i95, -1 << 94); + try testArgs(i64, i95, -1); + try testArgs(i64, i95, 0); + try testArgs(i128, i95, -1 << 94); + try testArgs(i128, i95, -1); + try testArgs(i128, i95, 0); + try testArgs(i256, i95, -1 << 94); + try testArgs(i256, i95, -1); + try testArgs(i256, i95, 0); + try testArgs(i512, i95, -1 << 94); + try testArgs(i512, i95, -1); + try testArgs(i512, i95, 0); + try testArgs(i1024, i95, -1 << 94); + try testArgs(i1024, i95, -1); + try testArgs(i1024, i95, 0); + try testArgs(u8, u95, 0); + try testArgs(u8, u95, 1 << 0); + try testArgs(u8, u95, 1 << 94); + try testArgs(u16, u95, 0); + try testArgs(u16, u95, 1 << 0); + try testArgs(u16, u95, 1 << 94); + try testArgs(u32, u95, 0); + try testArgs(u32, u95, 1 << 0); + try testArgs(u32, u95, 1 << 94); + try testArgs(u64, u95, 0); + try testArgs(u64, u95, 1 << 0); + try testArgs(u64, u95, 1 << 94); + try testArgs(u128, u95, 0); + try testArgs(u128, u95, 1 << 0); + try testArgs(u128, u95, 1 << 94); + try testArgs(u256, u95, 0); + try testArgs(u256, u95, 1 << 0); + try testArgs(u256, u95, 1 << 94); + try testArgs(u512, u95, 0); + try testArgs(u512, u95, 1 << 0); + try testArgs(u512, u95, 1 << 94); + try testArgs(u1024, u95, 0); + try testArgs(u1024, u95, 1 << 0); + try testArgs(u1024, u95, 1 << 94); + + try testArgs(i8, i97, -1 << 96); + try testArgs(i8, i97, -1); + try testArgs(i8, i97, 0); + try testArgs(i16, i97, -1 << 96); + try testArgs(i16, i97, -1); + try testArgs(i16, i97, 0); + try testArgs(i32, i97, -1 << 96); + try testArgs(i32, i97, -1); + try testArgs(i32, i97, 0); + try testArgs(i64, i97, -1 << 96); + try testArgs(i64, i97, -1); + try testArgs(i64, i97, 0); + try testArgs(i128, i97, -1 << 96); + try testArgs(i128, i97, -1); + try testArgs(i128, i97, 0); + try testArgs(i256, i97, -1 << 96); + try testArgs(i256, i97, -1); + try testArgs(i256, i97, 0); + try testArgs(i512, i97, -1 << 96); + try testArgs(i512, i97, -1); + try testArgs(i512, i97, 0); + try testArgs(i1024, i97, -1 << 96); + try testArgs(i1024, i97, -1); + try testArgs(i1024, i97, 0); + try testArgs(u8, u97, 0); + try testArgs(u8, u97, 1 << 0); + try testArgs(u8, u97, 1 << 96); + try testArgs(u16, u97, 0); + try testArgs(u16, u97, 1 << 0); + try testArgs(u16, u97, 1 << 96); + try testArgs(u32, u97, 0); + try testArgs(u32, u97, 1 << 0); + try testArgs(u32, u97, 1 << 96); + try testArgs(u64, u97, 0); + try testArgs(u64, u97, 1 << 0); + try testArgs(u64, u97, 1 << 96); + try testArgs(u128, u97, 0); + try testArgs(u128, u97, 1 << 0); + try testArgs(u128, u97, 1 << 96); + try testArgs(u256, u97, 0); + try testArgs(u256, u97, 1 << 0); + try testArgs(u256, u97, 1 << 96); + try testArgs(u512, u97, 0); + try testArgs(u512, u97, 1 << 0); + try testArgs(u512, u97, 1 << 96); + try testArgs(u1024, u97, 0); + try testArgs(u1024, u97, 1 << 0); + try testArgs(u1024, u97, 1 << 96); + + try testArgs(i8, i127, -1 << 126); + try testArgs(i8, i127, -1); + try testArgs(i8, i127, 0); + try testArgs(i16, i127, -1 << 126); + try testArgs(i16, i127, -1); + try testArgs(i16, i127, 0); + try testArgs(i32, i127, -1 << 126); + try testArgs(i32, i127, -1); + try testArgs(i32, i127, 0); + try testArgs(i64, i127, -1 << 126); + try testArgs(i64, i127, -1); + try testArgs(i64, i127, 0); + try testArgs(i128, i127, -1 << 126); + try testArgs(i128, i127, -1); + try testArgs(i128, i127, 0); + try testArgs(i256, i127, -1 << 126); + try testArgs(i256, i127, -1); + try testArgs(i256, i127, 0); + try testArgs(i512, i127, -1 << 126); + try testArgs(i512, i127, -1); + try testArgs(i512, i127, 0); + try testArgs(i1024, i127, -1 << 126); + try testArgs(i1024, i127, -1); + try testArgs(i1024, i127, 0); + try testArgs(u8, u127, 0); + try testArgs(u8, u127, 1 << 0); + try testArgs(u8, u127, 1 << 126); + try testArgs(u16, u127, 0); + try testArgs(u16, u127, 1 << 0); + try testArgs(u16, u127, 1 << 126); + try testArgs(u32, u127, 0); + try testArgs(u32, u127, 1 << 0); + try testArgs(u32, u127, 1 << 126); + try testArgs(u64, u127, 0); + try testArgs(u64, u127, 1 << 0); + try testArgs(u64, u127, 1 << 126); + try testArgs(u128, u127, 0); + try testArgs(u128, u127, 1 << 0); + try testArgs(u128, u127, 1 << 126); + try testArgs(u256, u127, 0); + try testArgs(u256, u127, 1 << 0); + try testArgs(u256, u127, 1 << 126); + try testArgs(u512, u127, 0); + try testArgs(u512, u127, 1 << 0); + try testArgs(u512, u127, 1 << 126); + try testArgs(u1024, u127, 0); + try testArgs(u1024, u127, 1 << 0); + try testArgs(u1024, u127, 1 << 126); + + try testArgs(i8, i128, -1 << 127); + try testArgs(i8, i128, -1); + try testArgs(i8, i128, 0); + try testArgs(i16, i128, -1 << 127); + try testArgs(i16, i128, -1); + try testArgs(i16, i128, 0); + try testArgs(i32, i128, -1 << 127); + try testArgs(i32, i128, -1); + try testArgs(i32, i128, 0); + try testArgs(i64, i128, -1 << 127); + try testArgs(i64, i128, -1); + try testArgs(i64, i128, 0); + try testArgs(i128, i128, -1 << 127); + try testArgs(i128, i128, -1); + try testArgs(i128, i128, 0); + try testArgs(i256, i128, -1 << 127); + try testArgs(i256, i128, -1); + try testArgs(i256, i128, 0); + try testArgs(i512, i128, -1 << 127); + try testArgs(i512, i128, -1); + try testArgs(i512, i128, 0); + try testArgs(i1024, i128, -1 << 127); + try testArgs(i1024, i128, -1); + try testArgs(i1024, i128, 0); + try testArgs(u8, u128, 0); + try testArgs(u8, u128, 1 << 0); + try testArgs(u8, u128, 1 << 127); + try testArgs(u16, u128, 0); + try testArgs(u16, u128, 1 << 0); + try testArgs(u16, u128, 1 << 127); + try testArgs(u32, u128, 0); + try testArgs(u32, u128, 1 << 0); + try testArgs(u32, u128, 1 << 127); + try testArgs(u64, u128, 0); + try testArgs(u64, u128, 1 << 0); + try testArgs(u64, u128, 1 << 127); + try testArgs(u128, u128, 0); + try testArgs(u128, u128, 1 << 0); + try testArgs(u128, u128, 1 << 127); + try testArgs(u256, u128, 0); + try testArgs(u256, u128, 1 << 0); + try testArgs(u256, u128, 1 << 127); + try testArgs(u512, u128, 0); + try testArgs(u512, u128, 1 << 0); + try testArgs(u512, u128, 1 << 127); + try testArgs(u1024, u128, 0); + try testArgs(u1024, u128, 1 << 0); + try testArgs(u1024, u128, 1 << 127); + + try testArgs(i8, i129, -1 << 128); + try testArgs(i8, i129, -1); + try testArgs(i8, i129, 0); + try testArgs(i16, i129, -1 << 128); + try testArgs(i16, i129, -1); + try testArgs(i16, i129, 0); + try testArgs(i32, i129, -1 << 128); + try testArgs(i32, i129, -1); + try testArgs(i32, i129, 0); + try testArgs(i64, i129, -1 << 128); + try testArgs(i64, i129, -1); + try testArgs(i64, i129, 0); + try testArgs(i128, i129, -1 << 128); + try testArgs(i128, i129, -1); + try testArgs(i128, i129, 0); + try testArgs(i256, i129, -1 << 128); + try testArgs(i256, i129, -1); + try testArgs(i256, i129, 0); + try testArgs(i512, i129, -1 << 128); + try testArgs(i512, i129, -1); + try testArgs(i512, i129, 0); + try testArgs(i1024, i129, -1 << 128); + try testArgs(i1024, i129, -1); + try testArgs(i1024, i129, 0); + try testArgs(u8, u129, 0); + try testArgs(u8, u129, 1 << 0); + try testArgs(u8, u129, 1 << 128); + try testArgs(u16, u129, 0); + try testArgs(u16, u129, 1 << 0); + try testArgs(u16, u129, 1 << 128); + try testArgs(u32, u129, 0); + try testArgs(u32, u129, 1 << 0); + try testArgs(u32, u129, 1 << 128); + try testArgs(u64, u129, 0); + try testArgs(u64, u129, 1 << 0); + try testArgs(u64, u129, 1 << 128); + try testArgs(u128, u129, 0); + try testArgs(u128, u129, 1 << 0); + try testArgs(u128, u129, 1 << 128); + try testArgs(u256, u129, 0); + try testArgs(u256, u129, 1 << 0); + try testArgs(u256, u129, 1 << 128); + try testArgs(u512, u129, 0); + try testArgs(u512, u129, 1 << 0); + try testArgs(u512, u129, 1 << 128); + try testArgs(u1024, u129, 0); + try testArgs(u1024, u129, 1 << 0); + try testArgs(u1024, u129, 1 << 128); + + try testArgs(i8, i255, -1 << 254); + try testArgs(i8, i255, -1); + try testArgs(i8, i255, 0); + try testArgs(i16, i255, -1 << 254); + try testArgs(i16, i255, -1); + try testArgs(i16, i255, 0); + try testArgs(i32, i255, -1 << 254); + try testArgs(i32, i255, -1); + try testArgs(i32, i255, 0); + try testArgs(i64, i255, -1 << 254); + try testArgs(i64, i255, -1); + try testArgs(i64, i255, 0); + try testArgs(i128, i255, -1 << 254); + try testArgs(i128, i255, -1); + try testArgs(i128, i255, 0); + try testArgs(i256, i255, -1 << 254); + try testArgs(i256, i255, -1); + try testArgs(i256, i255, 0); + try testArgs(i512, i255, -1 << 254); + try testArgs(i512, i255, -1); + try testArgs(i512, i255, 0); + try testArgs(i1024, i255, -1 << 254); + try testArgs(i1024, i255, -1); + try testArgs(i1024, i255, 0); + try testArgs(u8, u255, 0); + try testArgs(u8, u255, 1 << 0); + try testArgs(u8, u255, 1 << 254); + try testArgs(u16, u255, 0); + try testArgs(u16, u255, 1 << 0); + try testArgs(u16, u255, 1 << 254); + try testArgs(u32, u255, 0); + try testArgs(u32, u255, 1 << 0); + try testArgs(u32, u255, 1 << 254); + try testArgs(u64, u255, 0); + try testArgs(u64, u255, 1 << 0); + try testArgs(u64, u255, 1 << 254); + try testArgs(u128, u255, 0); + try testArgs(u128, u255, 1 << 0); + try testArgs(u128, u255, 1 << 254); + try testArgs(u256, u255, 0); + try testArgs(u256, u255, 1 << 0); + try testArgs(u256, u255, 1 << 254); + try testArgs(u512, u255, 0); + try testArgs(u512, u255, 1 << 0); + try testArgs(u512, u255, 1 << 254); + try testArgs(u1024, u255, 0); + try testArgs(u1024, u255, 1 << 0); + try testArgs(u1024, u255, 1 << 254); + + try testArgs(i8, i256, -1 << 255); + try testArgs(i8, i256, -1); + try testArgs(i8, i256, 0); + try testArgs(i16, i256, -1 << 255); + try testArgs(i16, i256, -1); + try testArgs(i16, i256, 0); + try testArgs(i32, i256, -1 << 255); + try testArgs(i32, i256, -1); + try testArgs(i32, i256, 0); + try testArgs(i64, i256, -1 << 255); + try testArgs(i64, i256, -1); + try testArgs(i64, i256, 0); + try testArgs(i128, i256, -1 << 255); + try testArgs(i128, i256, -1); + try testArgs(i128, i256, 0); + try testArgs(i256, i256, -1 << 255); + try testArgs(i256, i256, -1); + try testArgs(i256, i256, 0); + try testArgs(i512, i256, -1 << 255); + try testArgs(i512, i256, -1); + try testArgs(i512, i256, 0); + try testArgs(i1024, i256, -1 << 255); + try testArgs(i1024, i256, -1); + try testArgs(i1024, i256, 0); + try testArgs(u8, u256, 0); + try testArgs(u8, u256, 1 << 0); + try testArgs(u8, u256, 1 << 255); + try testArgs(u16, u256, 0); + try testArgs(u16, u256, 1 << 0); + try testArgs(u16, u256, 1 << 255); + try testArgs(u32, u256, 0); + try testArgs(u32, u256, 1 << 0); + try testArgs(u32, u256, 1 << 255); + try testArgs(u64, u256, 0); + try testArgs(u64, u256, 1 << 0); + try testArgs(u64, u256, 1 << 255); + try testArgs(u128, u256, 0); + try testArgs(u128, u256, 1 << 0); + try testArgs(u128, u256, 1 << 255); + try testArgs(u256, u256, 0); + try testArgs(u256, u256, 1 << 0); + try testArgs(u256, u256, 1 << 255); + try testArgs(u512, u256, 0); + try testArgs(u512, u256, 1 << 0); + try testArgs(u512, u256, 1 << 255); + try testArgs(u1024, u256, 0); + try testArgs(u1024, u256, 1 << 0); + try testArgs(u1024, u256, 1 << 255); + + try testArgs(i8, i257, -1 << 256); + try testArgs(i8, i257, -1); + try testArgs(i8, i257, 0); + try testArgs(i16, i257, -1 << 256); + try testArgs(i16, i257, -1); + try testArgs(i16, i257, 0); + try testArgs(i32, i257, -1 << 256); + try testArgs(i32, i257, -1); + try testArgs(i32, i257, 0); + try testArgs(i64, i257, -1 << 256); + try testArgs(i64, i257, -1); + try testArgs(i64, i257, 0); + try testArgs(i128, i257, -1 << 256); + try testArgs(i128, i257, -1); + try testArgs(i128, i257, 0); + try testArgs(i256, i257, -1 << 256); + try testArgs(i256, i257, -1); + try testArgs(i256, i257, 0); + try testArgs(i512, i257, -1 << 256); + try testArgs(i512, i257, -1); + try testArgs(i512, i257, 0); + try testArgs(i1024, i257, -1 << 256); + try testArgs(i1024, i257, -1); + try testArgs(i1024, i257, 0); + try testArgs(u8, u257, 0); + try testArgs(u8, u257, 1 << 0); + try testArgs(u8, u257, 1 << 256); + try testArgs(u16, u257, 0); + try testArgs(u16, u257, 1 << 0); + try testArgs(u16, u257, 1 << 256); + try testArgs(u32, u257, 0); + try testArgs(u32, u257, 1 << 0); + try testArgs(u32, u257, 1 << 256); + try testArgs(u64, u257, 0); + try testArgs(u64, u257, 1 << 0); + try testArgs(u64, u257, 1 << 256); + try testArgs(u128, u257, 0); + try testArgs(u128, u257, 1 << 0); + try testArgs(u128, u257, 1 << 256); + try testArgs(u256, u257, 0); + try testArgs(u256, u257, 1 << 0); + try testArgs(u256, u257, 1 << 256); + try testArgs(u512, u257, 0); + try testArgs(u512, u257, 1 << 0); + try testArgs(u512, u257, 1 << 256); + try testArgs(u1024, u257, 0); + try testArgs(u1024, u257, 1 << 0); + try testArgs(u1024, u257, 1 << 256); + + try testArgs(i8, i511, -1 << 510); + try testArgs(i8, i511, -1); + try testArgs(i8, i511, 0); + try testArgs(i16, i511, -1 << 510); + try testArgs(i16, i511, -1); + try testArgs(i16, i511, 0); + try testArgs(i32, i511, -1 << 510); + try testArgs(i32, i511, -1); + try testArgs(i32, i511, 0); + try testArgs(i64, i511, -1 << 510); + try testArgs(i64, i511, -1); + try testArgs(i64, i511, 0); + try testArgs(i128, i511, -1 << 510); + try testArgs(i128, i511, -1); + try testArgs(i128, i511, 0); + try testArgs(i256, i511, -1 << 510); + try testArgs(i256, i511, -1); + try testArgs(i256, i511, 0); + try testArgs(i512, i511, -1 << 510); + try testArgs(i512, i511, -1); + try testArgs(i512, i511, 0); + try testArgs(i1024, i511, -1 << 510); + try testArgs(i1024, i511, -1); + try testArgs(i1024, i511, 0); + try testArgs(u8, u511, 0); + try testArgs(u8, u511, 1 << 0); + try testArgs(u8, u511, 1 << 510); + try testArgs(u16, u511, 0); + try testArgs(u16, u511, 1 << 0); + try testArgs(u16, u511, 1 << 510); + try testArgs(u32, u511, 0); + try testArgs(u32, u511, 1 << 0); + try testArgs(u32, u511, 1 << 510); + try testArgs(u64, u511, 0); + try testArgs(u64, u511, 1 << 0); + try testArgs(u64, u511, 1 << 510); + try testArgs(u128, u511, 0); + try testArgs(u128, u511, 1 << 0); + try testArgs(u128, u511, 1 << 510); + try testArgs(u256, u511, 0); + try testArgs(u256, u511, 1 << 0); + try testArgs(u256, u511, 1 << 510); + try testArgs(u512, u511, 0); + try testArgs(u512, u511, 1 << 0); + try testArgs(u512, u511, 1 << 510); + try testArgs(u1024, u511, 0); + try testArgs(u1024, u511, 1 << 0); + try testArgs(u1024, u511, 1 << 510); + + try testArgs(i8, i512, -1 << 511); + try testArgs(i8, i512, -1); + try testArgs(i8, i512, 0); + try testArgs(i16, i512, -1 << 511); + try testArgs(i16, i512, -1); + try testArgs(i16, i512, 0); + try testArgs(i32, i512, -1 << 511); + try testArgs(i32, i512, -1); + try testArgs(i32, i512, 0); + try testArgs(i64, i512, -1 << 511); + try testArgs(i64, i512, -1); + try testArgs(i64, i512, 0); + try testArgs(i128, i512, -1 << 511); + try testArgs(i128, i512, -1); + try testArgs(i128, i512, 0); + try testArgs(i256, i512, -1 << 511); + try testArgs(i256, i512, -1); + try testArgs(i256, i512, 0); + try testArgs(i512, i512, -1 << 511); + try testArgs(i512, i512, -1); + try testArgs(i512, i512, 0); + try testArgs(i1024, i512, -1 << 511); + try testArgs(i1024, i512, -1); + try testArgs(i1024, i512, 0); + try testArgs(u8, u512, 0); + try testArgs(u8, u512, 1 << 0); + try testArgs(u8, u512, 1 << 511); + try testArgs(u16, u512, 0); + try testArgs(u16, u512, 1 << 0); + try testArgs(u16, u512, 1 << 511); + try testArgs(u32, u512, 0); + try testArgs(u32, u512, 1 << 0); + try testArgs(u32, u512, 1 << 511); + try testArgs(u64, u512, 0); + try testArgs(u64, u512, 1 << 0); + try testArgs(u64, u512, 1 << 511); + try testArgs(u128, u512, 0); + try testArgs(u128, u512, 1 << 0); + try testArgs(u128, u512, 1 << 511); + try testArgs(u256, u512, 0); + try testArgs(u256, u512, 1 << 0); + try testArgs(u256, u512, 1 << 511); + try testArgs(u512, u512, 0); + try testArgs(u512, u512, 1 << 0); + try testArgs(u512, u512, 1 << 511); + try testArgs(u1024, u512, 0); + try testArgs(u1024, u512, 1 << 0); + try testArgs(u1024, u512, 1 << 511); + + try testArgs(i8, i513, -1 << 512); + try testArgs(i8, i513, -1); + try testArgs(i8, i513, 0); + try testArgs(i16, i513, -1 << 512); + try testArgs(i16, i513, -1); + try testArgs(i16, i513, 0); + try testArgs(i32, i513, -1 << 512); + try testArgs(i32, i513, -1); + try testArgs(i32, i513, 0); + try testArgs(i64, i513, -1 << 512); + try testArgs(i64, i513, -1); + try testArgs(i64, i513, 0); + try testArgs(i128, i513, -1 << 512); + try testArgs(i128, i513, -1); + try testArgs(i128, i513, 0); + try testArgs(i256, i513, -1 << 512); + try testArgs(i256, i513, -1); + try testArgs(i256, i513, 0); + try testArgs(i512, i513, -1 << 512); + try testArgs(i512, i513, -1); + try testArgs(i512, i513, 0); + try testArgs(i1024, i513, -1 << 512); + try testArgs(i1024, i513, -1); + try testArgs(i1024, i513, 0); + try testArgs(u8, u513, 0); + try testArgs(u8, u513, 1 << 0); + try testArgs(u8, u513, 1 << 512); + try testArgs(u16, u513, 0); + try testArgs(u16, u513, 1 << 0); + try testArgs(u16, u513, 1 << 512); + try testArgs(u32, u513, 0); + try testArgs(u32, u513, 1 << 0); + try testArgs(u32, u513, 1 << 512); + try testArgs(u64, u513, 0); + try testArgs(u64, u513, 1 << 0); + try testArgs(u64, u513, 1 << 512); + try testArgs(u128, u513, 0); + try testArgs(u128, u513, 1 << 0); + try testArgs(u128, u513, 1 << 512); + try testArgs(u256, u513, 0); + try testArgs(u256, u513, 1 << 0); + try testArgs(u256, u513, 1 << 512); + try testArgs(u512, u513, 0); + try testArgs(u512, u513, 1 << 0); + try testArgs(u512, u513, 1 << 512); + try testArgs(u1024, u513, 0); + try testArgs(u1024, u513, 1 << 0); + try testArgs(u1024, u513, 1 << 512); + + try testArgs(i8, i1023, -1 << 1022); + try testArgs(i8, i1023, -1); + try testArgs(i8, i1023, 0); + try testArgs(i16, i1023, -1 << 1022); + try testArgs(i16, i1023, -1); + try testArgs(i16, i1023, 0); + try testArgs(i32, i1023, -1 << 1022); + try testArgs(i32, i1023, -1); + try testArgs(i32, i1023, 0); + try testArgs(i64, i1023, -1 << 1022); + try testArgs(i64, i1023, -1); + try testArgs(i64, i1023, 0); + try testArgs(i128, i1023, -1 << 1022); + try testArgs(i128, i1023, -1); + try testArgs(i128, i1023, 0); + try testArgs(i256, i1023, -1 << 1022); + try testArgs(i256, i1023, -1); + try testArgs(i256, i1023, 0); + try testArgs(i512, i1023, -1 << 1022); + try testArgs(i512, i1023, -1); + try testArgs(i512, i1023, 0); + try testArgs(i1024, i1023, -1 << 1022); + try testArgs(i1024, i1023, -1); + try testArgs(i1024, i1023, 0); + try testArgs(u8, u1023, 0); + try testArgs(u8, u1023, 1 << 0); + try testArgs(u8, u1023, 1 << 1022); + try testArgs(u16, u1023, 0); + try testArgs(u16, u1023, 1 << 0); + try testArgs(u16, u1023, 1 << 1022); + try testArgs(u32, u1023, 0); + try testArgs(u32, u1023, 1 << 0); + try testArgs(u32, u1023, 1 << 1022); + try testArgs(u64, u1023, 0); + try testArgs(u64, u1023, 1 << 0); + try testArgs(u64, u1023, 1 << 1022); + try testArgs(u128, u1023, 0); + try testArgs(u128, u1023, 1 << 0); + try testArgs(u128, u1023, 1 << 1022); + try testArgs(u256, u1023, 0); + try testArgs(u256, u1023, 1 << 0); + try testArgs(u256, u1023, 1 << 1022); + try testArgs(u512, u1023, 0); + try testArgs(u512, u1023, 1 << 0); + try testArgs(u512, u1023, 1 << 1022); + try testArgs(u1024, u1023, 0); + try testArgs(u1024, u1023, 1 << 0); + try testArgs(u1024, u1023, 1 << 1022); + + try testArgs(i8, i1024, -1 << 1023); + try testArgs(i8, i1024, -1); + try testArgs(i8, i1024, 0); + try testArgs(i16, i1024, -1 << 1023); + try testArgs(i16, i1024, -1); + try testArgs(i16, i1024, 0); + try testArgs(i32, i1024, -1 << 1023); + try testArgs(i32, i1024, -1); + try testArgs(i32, i1024, 0); + try testArgs(i64, i1024, -1 << 1023); + try testArgs(i64, i1024, -1); + try testArgs(i64, i1024, 0); + try testArgs(i128, i1024, -1 << 1023); + try testArgs(i128, i1024, -1); + try testArgs(i128, i1024, 0); + try testArgs(i256, i1024, -1 << 1023); + try testArgs(i256, i1024, -1); + try testArgs(i256, i1024, 0); + try testArgs(i512, i1024, -1 << 1023); + try testArgs(i512, i1024, -1); + try testArgs(i512, i1024, 0); + try testArgs(i1024, i1024, -1 << 1023); + try testArgs(i1024, i1024, -1); + try testArgs(i1024, i1024, 0); + try testArgs(u8, u1024, 0); + try testArgs(u8, u1024, 1 << 0); + try testArgs(u8, u1024, 1 << 1023); + try testArgs(u16, u1024, 0); + try testArgs(u16, u1024, 1 << 0); + try testArgs(u16, u1024, 1 << 1023); + try testArgs(u32, u1024, 0); + try testArgs(u32, u1024, 1 << 0); + try testArgs(u32, u1024, 1 << 1023); + try testArgs(u64, u1024, 0); + try testArgs(u64, u1024, 1 << 0); + try testArgs(u64, u1024, 1 << 1023); + try testArgs(u128, u1024, 0); + try testArgs(u128, u1024, 1 << 0); + try testArgs(u128, u1024, 1 << 1023); + try testArgs(u256, u1024, 0); + try testArgs(u256, u1024, 1 << 0); + try testArgs(u256, u1024, 1 << 1023); + try testArgs(u512, u1024, 0); + try testArgs(u512, u1024, 1 << 0); + try testArgs(u512, u1024, 1 << 1023); + try testArgs(u1024, u1024, 0); + try testArgs(u1024, u1024, 1 << 0); + try testArgs(u1024, u1024, 1 << 1023); + + try testArgs(i8, i1025, -1 << 1024); + try testArgs(i8, i1025, -1); + try testArgs(i8, i1025, 0); + try testArgs(i16, i1025, -1 << 1024); + try testArgs(i16, i1025, -1); + try testArgs(i16, i1025, 0); + try testArgs(i32, i1025, -1 << 1024); + try testArgs(i32, i1025, -1); + try testArgs(i32, i1025, 0); + try testArgs(i64, i1025, -1 << 1024); + try testArgs(i64, i1025, -1); + try testArgs(i64, i1025, 0); + try testArgs(i128, i1025, -1 << 1024); + try testArgs(i128, i1025, -1); + try testArgs(i128, i1025, 0); + try testArgs(i256, i1025, -1 << 1024); + try testArgs(i256, i1025, -1); + try testArgs(i256, i1025, 0); + try testArgs(i512, i1025, -1 << 1024); + try testArgs(i512, i1025, -1); + try testArgs(i512, i1025, 0); + try testArgs(i1024, i1025, -1 << 1024); + try testArgs(i1024, i1025, -1); + try testArgs(i1024, i1025, 0); + try testArgs(u8, u1025, 0); + try testArgs(u8, u1025, 1 << 0); + try testArgs(u8, u1025, 1 << 1024); + try testArgs(u16, u1025, 0); + try testArgs(u16, u1025, 1 << 0); + try testArgs(u16, u1025, 1 << 1024); + try testArgs(u32, u1025, 0); + try testArgs(u32, u1025, 1 << 0); + try testArgs(u32, u1025, 1 << 1024); + try testArgs(u64, u1025, 0); + try testArgs(u64, u1025, 1 << 0); + try testArgs(u64, u1025, 1 << 1024); + try testArgs(u128, u1025, 0); + try testArgs(u128, u1025, 1 << 0); + try testArgs(u128, u1025, 1 << 1024); + try testArgs(u256, u1025, 0); + try testArgs(u256, u1025, 1 << 0); + try testArgs(u256, u1025, 1 << 1024); + try testArgs(u512, u1025, 0); + try testArgs(u512, u1025, 1 << 0); + try testArgs(u512, u1025, 1 << 1024); + try testArgs(u1024, u1025, 0); + try testArgs(u1024, u1025, 1 << 0); + try testArgs(u1024, u1025, 1 << 1024); + } + fn testInts() !void { + try testSameSignednessInts(); + + try testArgs(u8, i1, -1); + try testArgs(u8, i1, 0); + try testArgs(u16, i1, -1); + try testArgs(u16, i1, 0); + try testArgs(u32, i1, -1); + try testArgs(u32, i1, 0); + try testArgs(u64, i1, -1); + try testArgs(u64, i1, 0); + try testArgs(u128, i1, -1); + try testArgs(u128, i1, 0); + try testArgs(u256, i1, -1); + try testArgs(u256, i1, 0); + try testArgs(u512, i1, -1); + try testArgs(u512, i1, 0); + try testArgs(u1024, i1, -1); + try testArgs(u1024, i1, 0); + try testArgs(i8, u1, 0); + try testArgs(i8, u1, 1 << 0); + try testArgs(i16, u1, 0); + try testArgs(i16, u1, 1 << 0); + try testArgs(i32, u1, 0); + try testArgs(i32, u1, 1 << 0); + try testArgs(i64, u1, 0); + try testArgs(i64, u1, 1 << 0); + try testArgs(i128, u1, 0); + try testArgs(i128, u1, 1 << 0); + try testArgs(i256, u1, 0); + try testArgs(i256, u1, 1 << 0); + try testArgs(i512, u1, 0); + try testArgs(i512, u1, 1 << 0); + try testArgs(i1024, u1, 0); + try testArgs(i1024, u1, 1 << 0); + + try testArgs(u8, i2, -1 << 1); + try testArgs(u8, i2, -1); + try testArgs(u8, i2, 0); + try testArgs(u16, i2, -1 << 1); + try testArgs(u16, i2, -1); + try testArgs(u16, i2, 0); + try testArgs(u32, i2, -1 << 1); + try testArgs(u32, i2, -1); + try testArgs(u32, i2, 0); + try testArgs(u64, i2, -1 << 1); + try testArgs(u64, i2, -1); + try testArgs(u64, i2, 0); + try testArgs(u128, i2, -1 << 1); + try testArgs(u128, i2, -1); + try testArgs(u128, i2, 0); + try testArgs(u256, i2, -1 << 1); + try testArgs(u256, i2, -1); + try testArgs(u256, i2, 0); + try testArgs(u512, i2, -1 << 1); + try testArgs(u512, i2, -1); + try testArgs(u512, i2, 0); + try testArgs(u1024, i2, -1 << 1); + try testArgs(u1024, i2, -1); + try testArgs(u1024, i2, 0); + try testArgs(i8, u2, 0); + try testArgs(i8, u2, 1 << 0); + try testArgs(i8, u2, 1 << 1); + try testArgs(i16, u2, 0); + try testArgs(i16, u2, 1 << 0); + try testArgs(i16, u2, 1 << 1); + try testArgs(i32, u2, 0); + try testArgs(i32, u2, 1 << 0); + try testArgs(i32, u2, 1 << 1); + try testArgs(i64, u2, 0); + try testArgs(i64, u2, 1 << 0); + try testArgs(i64, u2, 1 << 1); + try testArgs(i128, u2, 0); + try testArgs(i128, u2, 1 << 0); + try testArgs(i128, u2, 1 << 1); + try testArgs(i256, u2, 0); + try testArgs(i256, u2, 1 << 0); + try testArgs(i256, u2, 1 << 1); + try testArgs(i512, u2, 0); + try testArgs(i512, u2, 1 << 0); + try testArgs(i512, u2, 1 << 1); + try testArgs(i1024, u2, 0); + try testArgs(i1024, u2, 1 << 0); + try testArgs(i1024, u2, 1 << 1); + + try testArgs(u8, i3, -1 << 2); + try testArgs(u8, i3, -1); + try testArgs(u8, i3, 0); + try testArgs(u16, i3, -1 << 2); + try testArgs(u16, i3, -1); + try testArgs(u16, i3, 0); + try testArgs(u32, i3, -1 << 2); + try testArgs(u32, i3, -1); + try testArgs(u32, i3, 0); + try testArgs(u64, i3, -1 << 2); + try testArgs(u64, i3, -1); + try testArgs(u64, i3, 0); + try testArgs(u128, i3, -1 << 2); + try testArgs(u128, i3, -1); + try testArgs(u128, i3, 0); + try testArgs(u256, i3, -1 << 2); + try testArgs(u256, i3, -1); + try testArgs(u256, i3, 0); + try testArgs(u512, i3, -1 << 2); + try testArgs(u512, i3, -1); + try testArgs(u512, i3, 0); + try testArgs(u1024, i3, -1 << 2); + try testArgs(u1024, i3, -1); + try testArgs(u1024, i3, 0); + try testArgs(i8, u3, 0); + try testArgs(i8, u3, 1 << 0); + try testArgs(i8, u3, 1 << 2); + try testArgs(i16, u3, 0); + try testArgs(i16, u3, 1 << 0); + try testArgs(i16, u3, 1 << 2); + try testArgs(i32, u3, 0); + try testArgs(i32, u3, 1 << 0); + try testArgs(i32, u3, 1 << 2); + try testArgs(i64, u3, 0); + try testArgs(i64, u3, 1 << 0); + try testArgs(i64, u3, 1 << 2); + try testArgs(i128, u3, 0); + try testArgs(i128, u3, 1 << 0); + try testArgs(i128, u3, 1 << 2); + try testArgs(i256, u3, 0); + try testArgs(i256, u3, 1 << 0); + try testArgs(i256, u3, 1 << 2); + try testArgs(i512, u3, 0); + try testArgs(i512, u3, 1 << 0); + try testArgs(i512, u3, 1 << 2); + try testArgs(i1024, u3, 0); + try testArgs(i1024, u3, 1 << 0); + try testArgs(i1024, u3, 1 << 2); + + try testArgs(u8, i4, -1 << 3); + try testArgs(u8, i4, -1); + try testArgs(u8, i4, 0); + try testArgs(u16, i4, -1 << 3); + try testArgs(u16, i4, -1); + try testArgs(u16, i4, 0); + try testArgs(u32, i4, -1 << 3); + try testArgs(u32, i4, -1); + try testArgs(u32, i4, 0); + try testArgs(u64, i4, -1 << 3); + try testArgs(u64, i4, -1); + try testArgs(u64, i4, 0); + try testArgs(u128, i4, -1 << 3); + try testArgs(u128, i4, -1); + try testArgs(u128, i4, 0); + try testArgs(u256, i4, -1 << 3); + try testArgs(u256, i4, -1); + try testArgs(u256, i4, 0); + try testArgs(u512, i4, -1 << 3); + try testArgs(u512, i4, -1); + try testArgs(u512, i4, 0); + try testArgs(u1024, i4, -1 << 3); + try testArgs(u1024, i4, -1); + try testArgs(u1024, i4, 0); + try testArgs(i8, u4, 0); + try testArgs(i8, u4, 1 << 0); + try testArgs(i8, u4, 1 << 3); + try testArgs(i16, u4, 0); + try testArgs(i16, u4, 1 << 0); + try testArgs(i16, u4, 1 << 3); + try testArgs(i32, u4, 0); + try testArgs(i32, u4, 1 << 0); + try testArgs(i32, u4, 1 << 3); + try testArgs(i64, u4, 0); + try testArgs(i64, u4, 1 << 0); + try testArgs(i64, u4, 1 << 3); + try testArgs(i128, u4, 0); + try testArgs(i128, u4, 1 << 0); + try testArgs(i128, u4, 1 << 3); + try testArgs(i256, u4, 0); + try testArgs(i256, u4, 1 << 0); + try testArgs(i256, u4, 1 << 3); + try testArgs(i512, u4, 0); + try testArgs(i512, u4, 1 << 0); + try testArgs(i512, u4, 1 << 3); + try testArgs(i1024, u4, 0); + try testArgs(i1024, u4, 1 << 0); + try testArgs(i1024, u4, 1 << 3); + + try testArgs(u8, i5, -1 << 4); + try testArgs(u8, i5, -1); + try testArgs(u8, i5, 0); + try testArgs(u16, i5, -1 << 4); + try testArgs(u16, i5, -1); + try testArgs(u16, i5, 0); + try testArgs(u32, i5, -1 << 4); + try testArgs(u32, i5, -1); + try testArgs(u32, i5, 0); + try testArgs(u64, i5, -1 << 4); + try testArgs(u64, i5, -1); + try testArgs(u64, i5, 0); + try testArgs(u128, i5, -1 << 4); + try testArgs(u128, i5, -1); + try testArgs(u128, i5, 0); + try testArgs(u256, i5, -1 << 4); + try testArgs(u256, i5, -1); + try testArgs(u256, i5, 0); + try testArgs(u512, i5, -1 << 4); + try testArgs(u512, i5, -1); + try testArgs(u512, i5, 0); + try testArgs(u1024, i5, -1 << 4); + try testArgs(u1024, i5, -1); + try testArgs(u1024, i5, 0); + try testArgs(i8, u5, 0); + try testArgs(i8, u5, 1 << 0); + try testArgs(i8, u5, 1 << 4); + try testArgs(i16, u5, 0); + try testArgs(i16, u5, 1 << 0); + try testArgs(i16, u5, 1 << 4); + try testArgs(i32, u5, 0); + try testArgs(i32, u5, 1 << 0); + try testArgs(i32, u5, 1 << 4); + try testArgs(i64, u5, 0); + try testArgs(i64, u5, 1 << 0); + try testArgs(i64, u5, 1 << 4); + try testArgs(i128, u5, 0); + try testArgs(i128, u5, 1 << 0); + try testArgs(i128, u5, 1 << 4); + try testArgs(i256, u5, 0); + try testArgs(i256, u5, 1 << 0); + try testArgs(i256, u5, 1 << 4); + try testArgs(i512, u5, 0); + try testArgs(i512, u5, 1 << 0); + try testArgs(i512, u5, 1 << 4); + try testArgs(i1024, u5, 0); + try testArgs(i1024, u5, 1 << 0); + try testArgs(i1024, u5, 1 << 4); + + try testArgs(u8, i7, -1 << 6); + try testArgs(u8, i7, -1); + try testArgs(u8, i7, 0); + try testArgs(u16, i7, -1 << 6); + try testArgs(u16, i7, -1); + try testArgs(u16, i7, 0); + try testArgs(u32, i7, -1 << 6); + try testArgs(u32, i7, -1); + try testArgs(u32, i7, 0); + try testArgs(u64, i7, -1 << 6); + try testArgs(u64, i7, -1); + try testArgs(u64, i7, 0); + try testArgs(u128, i7, -1 << 6); + try testArgs(u128, i7, -1); + try testArgs(u128, i7, 0); + try testArgs(u256, i7, -1 << 6); + try testArgs(u256, i7, -1); + try testArgs(u256, i7, 0); + try testArgs(u512, i7, -1 << 6); + try testArgs(u512, i7, -1); + try testArgs(u512, i7, 0); + try testArgs(u1024, i7, -1 << 6); + try testArgs(u1024, i7, -1); + try testArgs(u1024, i7, 0); + try testArgs(i8, u7, 0); + try testArgs(i8, u7, 1 << 0); + try testArgs(i8, u7, 1 << 6); + try testArgs(i16, u7, 0); + try testArgs(i16, u7, 1 << 0); + try testArgs(i16, u7, 1 << 6); + try testArgs(i32, u7, 0); + try testArgs(i32, u7, 1 << 0); + try testArgs(i32, u7, 1 << 6); + try testArgs(i64, u7, 0); + try testArgs(i64, u7, 1 << 0); + try testArgs(i64, u7, 1 << 6); + try testArgs(i128, u7, 0); + try testArgs(i128, u7, 1 << 0); + try testArgs(i128, u7, 1 << 6); + try testArgs(i256, u7, 0); + try testArgs(i256, u7, 1 << 0); + try testArgs(i256, u7, 1 << 6); + try testArgs(i512, u7, 0); + try testArgs(i512, u7, 1 << 0); + try testArgs(i512, u7, 1 << 6); + try testArgs(i1024, u7, 0); + try testArgs(i1024, u7, 1 << 0); + try testArgs(i1024, u7, 1 << 6); + + try testArgs(u8, i8, -1 << 7); + try testArgs(u8, i8, -1); + try testArgs(u8, i8, 0); + try testArgs(u16, i8, -1 << 7); + try testArgs(u16, i8, -1); + try testArgs(u16, i8, 0); + try testArgs(u32, i8, -1 << 7); + try testArgs(u32, i8, -1); + try testArgs(u32, i8, 0); + try testArgs(u64, i8, -1 << 7); + try testArgs(u64, i8, -1); + try testArgs(u64, i8, 0); + try testArgs(u128, i8, -1 << 7); + try testArgs(u128, i8, -1); + try testArgs(u128, i8, 0); + try testArgs(u256, i8, -1 << 7); + try testArgs(u256, i8, -1); + try testArgs(u256, i8, 0); + try testArgs(u512, i8, -1 << 7); + try testArgs(u512, i8, -1); + try testArgs(u512, i8, 0); + try testArgs(u1024, i8, -1 << 7); + try testArgs(u1024, i8, -1); + try testArgs(u1024, i8, 0); + try testArgs(i8, u8, 0); + try testArgs(i8, u8, 1 << 0); + try testArgs(i8, u8, 1 << 7); + try testArgs(i16, u8, 0); + try testArgs(i16, u8, 1 << 0); + try testArgs(i16, u8, 1 << 7); + try testArgs(i32, u8, 0); + try testArgs(i32, u8, 1 << 0); + try testArgs(i32, u8, 1 << 7); + try testArgs(i64, u8, 0); + try testArgs(i64, u8, 1 << 0); + try testArgs(i64, u8, 1 << 7); + try testArgs(i128, u8, 0); + try testArgs(i128, u8, 1 << 0); + try testArgs(i128, u8, 1 << 7); + try testArgs(i256, u8, 0); + try testArgs(i256, u8, 1 << 0); + try testArgs(i256, u8, 1 << 7); + try testArgs(i512, u8, 0); + try testArgs(i512, u8, 1 << 0); + try testArgs(i512, u8, 1 << 7); + try testArgs(i1024, u8, 0); + try testArgs(i1024, u8, 1 << 0); + try testArgs(i1024, u8, 1 << 7); + + try testArgs(u8, i9, -1 << 8); + try testArgs(u8, i9, -1); + try testArgs(u8, i9, 0); + try testArgs(u16, i9, -1 << 8); + try testArgs(u16, i9, -1); + try testArgs(u16, i9, 0); + try testArgs(u32, i9, -1 << 8); + try testArgs(u32, i9, -1); + try testArgs(u32, i9, 0); + try testArgs(u64, i9, -1 << 8); + try testArgs(u64, i9, -1); + try testArgs(u64, i9, 0); + try testArgs(u128, i9, -1 << 8); + try testArgs(u128, i9, -1); + try testArgs(u128, i9, 0); + try testArgs(u256, i9, -1 << 8); + try testArgs(u256, i9, -1); + try testArgs(u256, i9, 0); + try testArgs(u512, i9, -1 << 8); + try testArgs(u512, i9, -1); + try testArgs(u512, i9, 0); + try testArgs(u1024, i9, -1 << 8); + try testArgs(u1024, i9, -1); + try testArgs(u1024, i9, 0); + try testArgs(i8, u9, 0); + try testArgs(i8, u9, 1 << 0); + try testArgs(i8, u9, 1 << 8); + try testArgs(i16, u9, 0); + try testArgs(i16, u9, 1 << 0); + try testArgs(i16, u9, 1 << 8); + try testArgs(i32, u9, 0); + try testArgs(i32, u9, 1 << 0); + try testArgs(i32, u9, 1 << 8); + try testArgs(i64, u9, 0); + try testArgs(i64, u9, 1 << 0); + try testArgs(i64, u9, 1 << 8); + try testArgs(i128, u9, 0); + try testArgs(i128, u9, 1 << 0); + try testArgs(i128, u9, 1 << 8); + try testArgs(i256, u9, 0); + try testArgs(i256, u9, 1 << 0); + try testArgs(i256, u9, 1 << 8); + try testArgs(i512, u9, 0); + try testArgs(i512, u9, 1 << 0); + try testArgs(i512, u9, 1 << 8); + try testArgs(i1024, u9, 0); + try testArgs(i1024, u9, 1 << 0); + try testArgs(i1024, u9, 1 << 8); + + try testArgs(u8, i15, -1 << 14); + try testArgs(u8, i15, -1); + try testArgs(u8, i15, 0); + try testArgs(u16, i15, -1 << 14); + try testArgs(u16, i15, -1); + try testArgs(u16, i15, 0); + try testArgs(u32, i15, -1 << 14); + try testArgs(u32, i15, -1); + try testArgs(u32, i15, 0); + try testArgs(u64, i15, -1 << 14); + try testArgs(u64, i15, -1); + try testArgs(u64, i15, 0); + try testArgs(u128, i15, -1 << 14); + try testArgs(u128, i15, -1); + try testArgs(u128, i15, 0); + try testArgs(u256, i15, -1 << 14); + try testArgs(u256, i15, -1); + try testArgs(u256, i15, 0); + try testArgs(u512, i15, -1 << 14); + try testArgs(u512, i15, -1); + try testArgs(u512, i15, 0); + try testArgs(u1024, i15, -1 << 14); + try testArgs(u1024, i15, -1); + try testArgs(u1024, i15, 0); + try testArgs(i8, u15, 0); + try testArgs(i8, u15, 1 << 0); + try testArgs(i8, u15, 1 << 14); + try testArgs(i16, u15, 0); + try testArgs(i16, u15, 1 << 0); + try testArgs(i16, u15, 1 << 14); + try testArgs(i32, u15, 0); + try testArgs(i32, u15, 1 << 0); + try testArgs(i32, u15, 1 << 14); + try testArgs(i64, u15, 0); + try testArgs(i64, u15, 1 << 0); + try testArgs(i64, u15, 1 << 14); + try testArgs(i128, u15, 0); + try testArgs(i128, u15, 1 << 0); + try testArgs(i128, u15, 1 << 14); + try testArgs(i256, u15, 0); + try testArgs(i256, u15, 1 << 0); + try testArgs(i256, u15, 1 << 14); + try testArgs(i512, u15, 0); + try testArgs(i512, u15, 1 << 0); + try testArgs(i512, u15, 1 << 14); + try testArgs(i1024, u15, 0); + try testArgs(i1024, u15, 1 << 0); + try testArgs(i1024, u15, 1 << 14); + + try testArgs(u8, i16, -1 << 15); + try testArgs(u8, i16, -1); + try testArgs(u8, i16, 0); + try testArgs(u16, i16, -1 << 15); + try testArgs(u16, i16, -1); + try testArgs(u16, i16, 0); + try testArgs(u32, i16, -1 << 15); + try testArgs(u32, i16, -1); + try testArgs(u32, i16, 0); + try testArgs(u64, i16, -1 << 15); + try testArgs(u64, i16, -1); + try testArgs(u64, i16, 0); + try testArgs(u128, i16, -1 << 15); + try testArgs(u128, i16, -1); + try testArgs(u128, i16, 0); + try testArgs(u256, i16, -1 << 15); + try testArgs(u256, i16, -1); + try testArgs(u256, i16, 0); + try testArgs(u512, i16, -1 << 15); + try testArgs(u512, i16, -1); + try testArgs(u512, i16, 0); + try testArgs(u1024, i16, -1 << 15); + try testArgs(u1024, i16, -1); + try testArgs(u1024, i16, 0); + try testArgs(i8, u16, 0); + try testArgs(i8, u16, 1 << 0); + try testArgs(i8, u16, 1 << 15); + try testArgs(i16, u16, 0); + try testArgs(i16, u16, 1 << 0); + try testArgs(i16, u16, 1 << 15); + try testArgs(i32, u16, 0); + try testArgs(i32, u16, 1 << 0); + try testArgs(i32, u16, 1 << 15); + try testArgs(i64, u16, 0); + try testArgs(i64, u16, 1 << 0); + try testArgs(i64, u16, 1 << 15); + try testArgs(i128, u16, 0); + try testArgs(i128, u16, 1 << 0); + try testArgs(i128, u16, 1 << 15); + try testArgs(i256, u16, 0); + try testArgs(i256, u16, 1 << 0); + try testArgs(i256, u16, 1 << 15); + try testArgs(i512, u16, 0); + try testArgs(i512, u16, 1 << 0); + try testArgs(i512, u16, 1 << 15); + try testArgs(i1024, u16, 0); + try testArgs(i1024, u16, 1 << 0); + try testArgs(i1024, u16, 1 << 15); + + try testArgs(u8, i17, -1 << 16); + try testArgs(u8, i17, -1); + try testArgs(u8, i17, 0); + try testArgs(u16, i17, -1 << 16); + try testArgs(u16, i17, -1); + try testArgs(u16, i17, 0); + try testArgs(u32, i17, -1 << 16); + try testArgs(u32, i17, -1); + try testArgs(u32, i17, 0); + try testArgs(u64, i17, -1 << 16); + try testArgs(u64, i17, -1); + try testArgs(u64, i17, 0); + try testArgs(u128, i17, -1 << 16); + try testArgs(u128, i17, -1); + try testArgs(u128, i17, 0); + try testArgs(u256, i17, -1 << 16); + try testArgs(u256, i17, -1); + try testArgs(u256, i17, 0); + try testArgs(u512, i17, -1 << 16); + try testArgs(u512, i17, -1); + try testArgs(u512, i17, 0); + try testArgs(u1024, i17, -1 << 16); + try testArgs(u1024, i17, -1); + try testArgs(u1024, i17, 0); + try testArgs(i8, u17, 0); + try testArgs(i8, u17, 1 << 0); + try testArgs(i8, u17, 1 << 16); + try testArgs(i16, u17, 0); + try testArgs(i16, u17, 1 << 0); + try testArgs(i16, u17, 1 << 16); + try testArgs(i32, u17, 0); + try testArgs(i32, u17, 1 << 0); + try testArgs(i32, u17, 1 << 16); + try testArgs(i64, u17, 0); + try testArgs(i64, u17, 1 << 0); + try testArgs(i64, u17, 1 << 16); + try testArgs(i128, u17, 0); + try testArgs(i128, u17, 1 << 0); + try testArgs(i128, u17, 1 << 16); + try testArgs(i256, u17, 0); + try testArgs(i256, u17, 1 << 0); + try testArgs(i256, u17, 1 << 16); + try testArgs(i512, u17, 0); + try testArgs(i512, u17, 1 << 0); + try testArgs(i512, u17, 1 << 16); + try testArgs(i1024, u17, 0); + try testArgs(i1024, u17, 1 << 0); + try testArgs(i1024, u17, 1 << 16); + + try testArgs(u8, i31, -1 << 30); + try testArgs(u8, i31, -1); + try testArgs(u8, i31, 0); + try testArgs(u16, i31, -1 << 30); + try testArgs(u16, i31, -1); + try testArgs(u16, i31, 0); + try testArgs(u32, i31, -1 << 30); + try testArgs(u32, i31, -1); + try testArgs(u32, i31, 0); + try testArgs(u64, i31, -1 << 30); + try testArgs(u64, i31, -1); + try testArgs(u64, i31, 0); + try testArgs(u128, i31, -1 << 30); + try testArgs(u128, i31, -1); + try testArgs(u128, i31, 0); + try testArgs(u256, i31, -1 << 30); + try testArgs(u256, i31, -1); + try testArgs(u256, i31, 0); + try testArgs(u512, i31, -1 << 30); + try testArgs(u512, i31, -1); + try testArgs(u512, i31, 0); + try testArgs(u1024, i31, -1 << 30); + try testArgs(u1024, i31, -1); + try testArgs(u1024, i31, 0); + try testArgs(i8, u31, 0); + try testArgs(i8, u31, 1 << 0); + try testArgs(i8, u31, 1 << 30); + try testArgs(i16, u31, 0); + try testArgs(i16, u31, 1 << 0); + try testArgs(i16, u31, 1 << 30); + try testArgs(i32, u31, 0); + try testArgs(i32, u31, 1 << 0); + try testArgs(i32, u31, 1 << 30); + try testArgs(i64, u31, 0); + try testArgs(i64, u31, 1 << 0); + try testArgs(i64, u31, 1 << 30); + try testArgs(i128, u31, 0); + try testArgs(i128, u31, 1 << 0); + try testArgs(i128, u31, 1 << 30); + try testArgs(i256, u31, 0); + try testArgs(i256, u31, 1 << 0); + try testArgs(i256, u31, 1 << 30); + try testArgs(i512, u31, 0); + try testArgs(i512, u31, 1 << 0); + try testArgs(i512, u31, 1 << 30); + try testArgs(i1024, u31, 0); + try testArgs(i1024, u31, 1 << 0); + try testArgs(i1024, u31, 1 << 30); + + try testArgs(u8, i32, -1 << 31); + try testArgs(u8, i32, -1); + try testArgs(u8, i32, 0); + try testArgs(u16, i32, -1 << 31); + try testArgs(u16, i32, -1); + try testArgs(u16, i32, 0); + try testArgs(u32, i32, -1 << 31); + try testArgs(u32, i32, -1); + try testArgs(u32, i32, 0); + try testArgs(u64, i32, -1 << 31); + try testArgs(u64, i32, -1); + try testArgs(u64, i32, 0); + try testArgs(u128, i32, -1 << 31); + try testArgs(u128, i32, -1); + try testArgs(u128, i32, 0); + try testArgs(u256, i32, -1 << 31); + try testArgs(u256, i32, -1); + try testArgs(u256, i32, 0); + try testArgs(u512, i32, -1 << 31); + try testArgs(u512, i32, -1); + try testArgs(u512, i32, 0); + try testArgs(u1024, i32, -1 << 31); + try testArgs(u1024, i32, -1); + try testArgs(u1024, i32, 0); + try testArgs(i8, u32, 0); + try testArgs(i8, u32, 1 << 0); + try testArgs(i8, u32, 1 << 31); + try testArgs(i16, u32, 0); + try testArgs(i16, u32, 1 << 0); + try testArgs(i16, u32, 1 << 31); + try testArgs(i32, u32, 0); + try testArgs(i32, u32, 1 << 0); + try testArgs(i32, u32, 1 << 31); + try testArgs(i64, u32, 0); + try testArgs(i64, u32, 1 << 0); + try testArgs(i64, u32, 1 << 31); + try testArgs(i128, u32, 0); + try testArgs(i128, u32, 1 << 0); + try testArgs(i128, u32, 1 << 31); + try testArgs(i256, u32, 0); + try testArgs(i256, u32, 1 << 0); + try testArgs(i256, u32, 1 << 31); + try testArgs(i512, u32, 0); + try testArgs(i512, u32, 1 << 0); + try testArgs(i512, u32, 1 << 31); + try testArgs(i1024, u32, 0); + try testArgs(i1024, u32, 1 << 0); + try testArgs(i1024, u32, 1 << 31); + + try testArgs(u8, i33, -1 << 32); + try testArgs(u8, i33, -1); + try testArgs(u8, i33, 0); + try testArgs(u16, i33, -1 << 32); + try testArgs(u16, i33, -1); + try testArgs(u16, i33, 0); + try testArgs(u32, i33, -1 << 32); + try testArgs(u32, i33, -1); + try testArgs(u32, i33, 0); + try testArgs(u64, i33, -1 << 32); + try testArgs(u64, i33, -1); + try testArgs(u64, i33, 0); + try testArgs(u128, i33, -1 << 32); + try testArgs(u128, i33, -1); + try testArgs(u128, i33, 0); + try testArgs(u256, i33, -1 << 32); + try testArgs(u256, i33, -1); + try testArgs(u256, i33, 0); + try testArgs(u512, i33, -1 << 32); + try testArgs(u512, i33, -1); + try testArgs(u512, i33, 0); + try testArgs(u1024, i33, -1 << 32); + try testArgs(u1024, i33, -1); + try testArgs(u1024, i33, 0); + try testArgs(i8, u33, 0); + try testArgs(i8, u33, 1 << 0); + try testArgs(i8, u33, 1 << 32); + try testArgs(i16, u33, 0); + try testArgs(i16, u33, 1 << 0); + try testArgs(i16, u33, 1 << 32); + try testArgs(i32, u33, 0); + try testArgs(i32, u33, 1 << 0); + try testArgs(i32, u33, 1 << 32); + try testArgs(i64, u33, 0); + try testArgs(i64, u33, 1 << 0); + try testArgs(i64, u33, 1 << 32); + try testArgs(i128, u33, 0); + try testArgs(i128, u33, 1 << 0); + try testArgs(i128, u33, 1 << 32); + try testArgs(i256, u33, 0); + try testArgs(i256, u33, 1 << 0); + try testArgs(i256, u33, 1 << 32); + try testArgs(i512, u33, 0); + try testArgs(i512, u33, 1 << 0); + try testArgs(i512, u33, 1 << 32); + try testArgs(i1024, u33, 0); + try testArgs(i1024, u33, 1 << 0); + try testArgs(i1024, u33, 1 << 32); + + try testArgs(u8, i63, -1 << 62); + try testArgs(u8, i63, -1); + try testArgs(u8, i63, 0); + try testArgs(u16, i63, -1 << 62); + try testArgs(u16, i63, -1); + try testArgs(u16, i63, 0); + try testArgs(u32, i63, -1 << 62); + try testArgs(u32, i63, -1); + try testArgs(u32, i63, 0); + try testArgs(u64, i63, -1 << 62); + try testArgs(u64, i63, -1); + try testArgs(u64, i63, 0); + try testArgs(u128, i63, -1 << 62); + try testArgs(u128, i63, -1); + try testArgs(u128, i63, 0); + try testArgs(u256, i63, -1 << 62); + try testArgs(u256, i63, -1); + try testArgs(u256, i63, 0); + try testArgs(u512, i63, -1 << 62); + try testArgs(u512, i63, -1); + try testArgs(u512, i63, 0); + try testArgs(u1024, i63, -1 << 62); + try testArgs(u1024, i63, -1); + try testArgs(u1024, i63, 0); + try testArgs(i8, u63, 0); + try testArgs(i8, u63, 1 << 0); + try testArgs(i8, u63, 1 << 62); + try testArgs(i16, u63, 0); + try testArgs(i16, u63, 1 << 0); + try testArgs(i16, u63, 1 << 62); + try testArgs(i32, u63, 0); + try testArgs(i32, u63, 1 << 0); + try testArgs(i32, u63, 1 << 62); + try testArgs(i64, u63, 0); + try testArgs(i64, u63, 1 << 0); + try testArgs(i64, u63, 1 << 62); + try testArgs(i128, u63, 0); + try testArgs(i128, u63, 1 << 0); + try testArgs(i128, u63, 1 << 62); + try testArgs(i256, u63, 0); + try testArgs(i256, u63, 1 << 0); + try testArgs(i256, u63, 1 << 62); + try testArgs(i512, u63, 0); + try testArgs(i512, u63, 1 << 0); + try testArgs(i512, u63, 1 << 62); + try testArgs(i1024, u63, 0); + try testArgs(i1024, u63, 1 << 0); + try testArgs(i1024, u63, 1 << 62); + + try testArgs(u8, i64, -1 << 63); + try testArgs(u8, i64, -1); + try testArgs(u8, i64, 0); + try testArgs(u16, i64, -1 << 63); + try testArgs(u16, i64, -1); + try testArgs(u16, i64, 0); + try testArgs(u32, i64, -1 << 63); + try testArgs(u32, i64, -1); + try testArgs(u32, i64, 0); + try testArgs(u64, i64, -1 << 63); + try testArgs(u64, i64, -1); + try testArgs(u64, i64, 0); + try testArgs(u128, i64, -1 << 63); + try testArgs(u128, i64, -1); + try testArgs(u128, i64, 0); + try testArgs(u256, i64, -1 << 63); + try testArgs(u256, i64, -1); + try testArgs(u256, i64, 0); + try testArgs(u512, i64, -1 << 63); + try testArgs(u512, i64, -1); + try testArgs(u512, i64, 0); + try testArgs(u1024, i64, -1 << 63); + try testArgs(u1024, i64, -1); + try testArgs(u1024, i64, 0); + try testArgs(i8, u64, 0); + try testArgs(i8, u64, 1 << 0); + try testArgs(i8, u64, 1 << 63); + try testArgs(i16, u64, 0); + try testArgs(i16, u64, 1 << 0); + try testArgs(i16, u64, 1 << 63); + try testArgs(i32, u64, 0); + try testArgs(i32, u64, 1 << 0); + try testArgs(i32, u64, 1 << 63); + try testArgs(i64, u64, 0); + try testArgs(i64, u64, 1 << 0); + try testArgs(i64, u64, 1 << 63); + try testArgs(i128, u64, 0); + try testArgs(i128, u64, 1 << 0); + try testArgs(i128, u64, 1 << 63); + try testArgs(i256, u64, 0); + try testArgs(i256, u64, 1 << 0); + try testArgs(i256, u64, 1 << 63); + try testArgs(i512, u64, 0); + try testArgs(i512, u64, 1 << 0); + try testArgs(i512, u64, 1 << 63); + try testArgs(i1024, u64, 0); + try testArgs(i1024, u64, 1 << 0); + try testArgs(i1024, u64, 1 << 63); + + try testArgs(u8, i65, -1 << 64); + try testArgs(u8, i65, -1); + try testArgs(u8, i65, 0); + try testArgs(u16, i65, -1 << 64); + try testArgs(u16, i65, -1); + try testArgs(u16, i65, 0); + try testArgs(u32, i65, -1 << 64); + try testArgs(u32, i65, -1); + try testArgs(u32, i65, 0); + try testArgs(u64, i65, -1 << 64); + try testArgs(u64, i65, -1); + try testArgs(u64, i65, 0); + try testArgs(u128, i65, -1 << 64); + try testArgs(u128, i65, -1); + try testArgs(u128, i65, 0); + try testArgs(u256, i65, -1 << 64); + try testArgs(u256, i65, -1); + try testArgs(u256, i65, 0); + try testArgs(u512, i65, -1 << 64); + try testArgs(u512, i65, -1); + try testArgs(u512, i65, 0); + try testArgs(u1024, i65, -1 << 64); + try testArgs(u1024, i65, -1); + try testArgs(u1024, i65, 0); + try testArgs(i8, u65, 0); + try testArgs(i8, u65, 1 << 0); + try testArgs(i8, u65, 1 << 64); + try testArgs(i16, u65, 0); + try testArgs(i16, u65, 1 << 0); + try testArgs(i16, u65, 1 << 64); + try testArgs(i32, u65, 0); + try testArgs(i32, u65, 1 << 0); + try testArgs(i32, u65, 1 << 64); + try testArgs(i64, u65, 0); + try testArgs(i64, u65, 1 << 0); + try testArgs(i64, u65, 1 << 64); + try testArgs(i128, u65, 0); + try testArgs(i128, u65, 1 << 0); + try testArgs(i128, u65, 1 << 64); + try testArgs(i256, u65, 0); + try testArgs(i256, u65, 1 << 0); + try testArgs(i256, u65, 1 << 64); + try testArgs(i512, u65, 0); + try testArgs(i512, u65, 1 << 0); + try testArgs(i512, u65, 1 << 64); + try testArgs(i1024, u65, 0); + try testArgs(i1024, u65, 1 << 0); + try testArgs(i1024, u65, 1 << 64); + + try testArgs(u8, i95, -1 << 94); + try testArgs(u8, i95, -1); + try testArgs(u8, i95, 0); + try testArgs(u16, i95, -1 << 94); + try testArgs(u16, i95, -1); + try testArgs(u16, i95, 0); + try testArgs(u32, i95, -1 << 94); + try testArgs(u32, i95, -1); + try testArgs(u32, i95, 0); + try testArgs(u64, i95, -1 << 94); + try testArgs(u64, i95, -1); + try testArgs(u64, i95, 0); + try testArgs(u128, i95, -1 << 94); + try testArgs(u128, i95, -1); + try testArgs(u128, i95, 0); + try testArgs(u256, i95, -1 << 94); + try testArgs(u256, i95, -1); + try testArgs(u256, i95, 0); + try testArgs(u512, i95, -1 << 94); + try testArgs(u512, i95, -1); + try testArgs(u512, i95, 0); + try testArgs(u1024, i95, -1 << 94); + try testArgs(u1024, i95, -1); + try testArgs(u1024, i95, 0); + try testArgs(i8, u95, 0); + try testArgs(i8, u95, 1 << 0); + try testArgs(i8, u95, 1 << 94); + try testArgs(i16, u95, 0); + try testArgs(i16, u95, 1 << 0); + try testArgs(i16, u95, 1 << 94); + try testArgs(i32, u95, 0); + try testArgs(i32, u95, 1 << 0); + try testArgs(i32, u95, 1 << 94); + try testArgs(i64, u95, 0); + try testArgs(i64, u95, 1 << 0); + try testArgs(i64, u95, 1 << 94); + try testArgs(i128, u95, 0); + try testArgs(i128, u95, 1 << 0); + try testArgs(i128, u95, 1 << 94); + try testArgs(i256, u95, 0); + try testArgs(i256, u95, 1 << 0); + try testArgs(i256, u95, 1 << 94); + try testArgs(i512, u95, 0); + try testArgs(i512, u95, 1 << 0); + try testArgs(i512, u95, 1 << 94); + try testArgs(i1024, u95, 0); + try testArgs(i1024, u95, 1 << 0); + try testArgs(i1024, u95, 1 << 94); + + try testArgs(u8, i96, -1 << 95); + try testArgs(u8, i96, -1); + try testArgs(u8, i96, 0); + try testArgs(u16, i96, -1 << 95); + try testArgs(u16, i96, -1); + try testArgs(u16, i96, 0); + try testArgs(u32, i96, -1 << 95); + try testArgs(u32, i96, -1); + try testArgs(u32, i96, 0); + try testArgs(u64, i96, -1 << 95); + try testArgs(u64, i96, -1); + try testArgs(u64, i96, 0); + try testArgs(u128, i96, -1 << 95); + try testArgs(u128, i96, -1); + try testArgs(u128, i96, 0); + try testArgs(u256, i96, -1 << 95); + try testArgs(u256, i96, -1); + try testArgs(u256, i96, 0); + try testArgs(u512, i96, -1 << 95); + try testArgs(u512, i96, -1); + try testArgs(u512, i96, 0); + try testArgs(u1024, i96, -1 << 95); + try testArgs(u1024, i96, -1); + try testArgs(u1024, i96, 0); + try testArgs(i8, u96, 0); + try testArgs(i8, u96, 1 << 0); + try testArgs(i8, u96, 1 << 95); + try testArgs(i16, u96, 0); + try testArgs(i16, u96, 1 << 0); + try testArgs(i16, u96, 1 << 95); + try testArgs(i32, u96, 0); + try testArgs(i32, u96, 1 << 0); + try testArgs(i32, u96, 1 << 95); + try testArgs(i64, u96, 0); + try testArgs(i64, u96, 1 << 0); + try testArgs(i64, u96, 1 << 95); + try testArgs(i128, u96, 0); + try testArgs(i128, u96, 1 << 0); + try testArgs(i128, u96, 1 << 95); + try testArgs(i256, u96, 0); + try testArgs(i256, u96, 1 << 0); + try testArgs(i256, u96, 1 << 95); + try testArgs(i512, u96, 0); + try testArgs(i512, u96, 1 << 0); + try testArgs(i512, u96, 1 << 95); + try testArgs(i1024, u96, 0); + try testArgs(i1024, u96, 1 << 0); + try testArgs(i1024, u96, 1 << 95); + + try testArgs(u8, i97, -1 << 96); + try testArgs(u8, i97, -1); + try testArgs(u8, i97, 0); + try testArgs(u16, i97, -1 << 96); + try testArgs(u16, i97, -1); + try testArgs(u16, i97, 0); + try testArgs(u32, i97, -1 << 96); + try testArgs(u32, i97, -1); + try testArgs(u32, i97, 0); + try testArgs(u64, i97, -1 << 96); + try testArgs(u64, i97, -1); + try testArgs(u64, i97, 0); + try testArgs(u128, i97, -1 << 96); + try testArgs(u128, i97, -1); + try testArgs(u128, i97, 0); + try testArgs(u256, i97, -1 << 96); + try testArgs(u256, i97, -1); + try testArgs(u256, i97, 0); + try testArgs(u512, i97, -1 << 96); + try testArgs(u512, i97, -1); + try testArgs(u512, i97, 0); + try testArgs(u1024, i97, -1 << 96); + try testArgs(u1024, i97, -1); + try testArgs(u1024, i97, 0); + try testArgs(i8, u97, 0); + try testArgs(i8, u97, 1 << 0); + try testArgs(i8, u97, 1 << 96); + try testArgs(i16, u97, 0); + try testArgs(i16, u97, 1 << 0); + try testArgs(i16, u97, 1 << 96); + try testArgs(i32, u97, 0); + try testArgs(i32, u97, 1 << 0); + try testArgs(i32, u97, 1 << 96); + try testArgs(i64, u97, 0); + try testArgs(i64, u97, 1 << 0); + try testArgs(i64, u97, 1 << 96); + try testArgs(i128, u97, 0); + try testArgs(i128, u97, 1 << 0); + try testArgs(i128, u97, 1 << 96); + try testArgs(i256, u97, 0); + try testArgs(i256, u97, 1 << 0); + try testArgs(i256, u97, 1 << 96); + try testArgs(i512, u97, 0); + try testArgs(i512, u97, 1 << 0); + try testArgs(i512, u97, 1 << 96); + try testArgs(i1024, u97, 0); + try testArgs(i1024, u97, 1 << 0); + try testArgs(i1024, u97, 1 << 96); + + try testArgs(u8, i127, -1 << 126); + try testArgs(u8, i127, -1); + try testArgs(u8, i127, 0); + try testArgs(u16, i127, -1 << 126); + try testArgs(u16, i127, -1); + try testArgs(u16, i127, 0); + try testArgs(u32, i127, -1 << 126); + try testArgs(u32, i127, -1); + try testArgs(u32, i127, 0); + try testArgs(u64, i127, -1 << 126); + try testArgs(u64, i127, -1); + try testArgs(u64, i127, 0); + try testArgs(u128, i127, -1 << 126); + try testArgs(u128, i127, -1); + try testArgs(u128, i127, 0); + try testArgs(u256, i127, -1 << 126); + try testArgs(u256, i127, -1); + try testArgs(u256, i127, 0); + try testArgs(u512, i127, -1 << 126); + try testArgs(u512, i127, -1); + try testArgs(u512, i127, 0); + try testArgs(u1024, i127, -1 << 126); + try testArgs(u1024, i127, -1); + try testArgs(u1024, i127, 0); + try testArgs(i8, u127, 0); + try testArgs(i8, u127, 1 << 0); + try testArgs(i8, u127, 1 << 126); + try testArgs(i16, u127, 0); + try testArgs(i16, u127, 1 << 0); + try testArgs(i16, u127, 1 << 126); + try testArgs(i32, u127, 0); + try testArgs(i32, u127, 1 << 0); + try testArgs(i32, u127, 1 << 126); + try testArgs(i64, u127, 0); + try testArgs(i64, u127, 1 << 0); + try testArgs(i64, u127, 1 << 126); + try testArgs(i128, u127, 0); + try testArgs(i128, u127, 1 << 0); + try testArgs(i128, u127, 1 << 126); + try testArgs(i256, u127, 0); + try testArgs(i256, u127, 1 << 0); + try testArgs(i256, u127, 1 << 126); + try testArgs(i512, u127, 0); + try testArgs(i512, u127, 1 << 0); + try testArgs(i512, u127, 1 << 126); + try testArgs(i1024, u127, 0); + try testArgs(i1024, u127, 1 << 0); + try testArgs(i1024, u127, 1 << 126); + + try testArgs(u8, i128, -1 << 127); + try testArgs(u8, i128, -1); + try testArgs(u8, i128, 0); + try testArgs(u16, i128, -1 << 127); + try testArgs(u16, i128, -1); + try testArgs(u16, i128, 0); + try testArgs(u32, i128, -1 << 127); + try testArgs(u32, i128, -1); + try testArgs(u32, i128, 0); + try testArgs(u64, i128, -1 << 127); + try testArgs(u64, i128, -1); + try testArgs(u64, i128, 0); + try testArgs(u128, i128, -1 << 127); + try testArgs(u128, i128, -1); + try testArgs(u128, i128, 0); + try testArgs(u256, i128, -1 << 127); + try testArgs(u256, i128, -1); + try testArgs(u256, i128, 0); + try testArgs(u512, i128, -1 << 127); + try testArgs(u512, i128, -1); + try testArgs(u512, i128, 0); + try testArgs(u1024, i128, -1 << 127); + try testArgs(u1024, i128, -1); + try testArgs(u1024, i128, 0); + try testArgs(i8, u128, 0); + try testArgs(i8, u128, 1 << 0); + try testArgs(i8, u128, 1 << 127); + try testArgs(i16, u128, 0); + try testArgs(i16, u128, 1 << 0); + try testArgs(i16, u128, 1 << 127); + try testArgs(i32, u128, 0); + try testArgs(i32, u128, 1 << 0); + try testArgs(i32, u128, 1 << 127); + try testArgs(i64, u128, 0); + try testArgs(i64, u128, 1 << 0); + try testArgs(i64, u128, 1 << 127); + try testArgs(i128, u128, 0); + try testArgs(i128, u128, 1 << 0); + try testArgs(i128, u128, 1 << 127); + try testArgs(i256, u128, 0); + try testArgs(i256, u128, 1 << 0); + try testArgs(i256, u128, 1 << 127); + try testArgs(i512, u128, 0); + try testArgs(i512, u128, 1 << 0); + try testArgs(i512, u128, 1 << 127); + try testArgs(i1024, u128, 0); + try testArgs(i1024, u128, 1 << 0); + try testArgs(i1024, u128, 1 << 127); + + try testArgs(u8, i129, -1 << 128); + try testArgs(u8, i129, -1); + try testArgs(u8, i129, 0); + try testArgs(u16, i129, -1 << 128); + try testArgs(u16, i129, -1); + try testArgs(u16, i129, 0); + try testArgs(u32, i129, -1 << 128); + try testArgs(u32, i129, -1); + try testArgs(u32, i129, 0); + try testArgs(u64, i129, -1 << 128); + try testArgs(u64, i129, -1); + try testArgs(u64, i129, 0); + try testArgs(u128, i129, -1 << 128); + try testArgs(u128, i129, -1); + try testArgs(u128, i129, 0); + try testArgs(u256, i129, -1 << 128); + try testArgs(u256, i129, -1); + try testArgs(u256, i129, 0); + try testArgs(u512, i129, -1 << 128); + try testArgs(u512, i129, -1); + try testArgs(u512, i129, 0); + try testArgs(u1024, i129, -1 << 128); + try testArgs(u1024, i129, -1); + try testArgs(u1024, i129, 0); + try testArgs(i8, u129, 0); + try testArgs(i8, u129, 1 << 0); + try testArgs(i8, u129, 1 << 128); + try testArgs(i16, u129, 0); + try testArgs(i16, u129, 1 << 0); + try testArgs(i16, u129, 1 << 128); + try testArgs(i32, u129, 0); + try testArgs(i32, u129, 1 << 0); + try testArgs(i32, u129, 1 << 128); + try testArgs(i64, u129, 0); + try testArgs(i64, u129, 1 << 0); + try testArgs(i64, u129, 1 << 128); + try testArgs(i128, u129, 0); + try testArgs(i128, u129, 1 << 0); + try testArgs(i128, u129, 1 << 128); + try testArgs(i256, u129, 0); + try testArgs(i256, u129, 1 << 0); + try testArgs(i256, u129, 1 << 128); + try testArgs(i512, u129, 0); + try testArgs(i512, u129, 1 << 0); + try testArgs(i512, u129, 1 << 128); + try testArgs(i1024, u129, 0); + try testArgs(i1024, u129, 1 << 0); + try testArgs(i1024, u129, 1 << 128); + + try testArgs(u8, i255, -1 << 254); + try testArgs(u8, i255, -1); + try testArgs(u8, i255, 0); + try testArgs(u16, i255, -1 << 254); + try testArgs(u16, i255, -1); + try testArgs(u16, i255, 0); + try testArgs(u32, i255, -1 << 254); + try testArgs(u32, i255, -1); + try testArgs(u32, i255, 0); + try testArgs(u64, i255, -1 << 254); + try testArgs(u64, i255, -1); + try testArgs(u64, i255, 0); + try testArgs(u128, i255, -1 << 254); + try testArgs(u128, i255, -1); + try testArgs(u128, i255, 0); + try testArgs(u256, i255, -1 << 254); + try testArgs(u256, i255, -1); + try testArgs(u256, i255, 0); + try testArgs(u512, i255, -1 << 254); + try testArgs(u512, i255, -1); + try testArgs(u512, i255, 0); + try testArgs(u1024, i255, -1 << 254); + try testArgs(u1024, i255, -1); + try testArgs(u1024, i255, 0); + try testArgs(i8, u255, 0); + try testArgs(i8, u255, 1 << 0); + try testArgs(i8, u255, 1 << 254); + try testArgs(i16, u255, 0); + try testArgs(i16, u255, 1 << 0); + try testArgs(i16, u255, 1 << 254); + try testArgs(i32, u255, 0); + try testArgs(i32, u255, 1 << 0); + try testArgs(i32, u255, 1 << 254); + try testArgs(i64, u255, 0); + try testArgs(i64, u255, 1 << 0); + try testArgs(i64, u255, 1 << 254); + try testArgs(i128, u255, 0); + try testArgs(i128, u255, 1 << 0); + try testArgs(i128, u255, 1 << 254); + try testArgs(i256, u255, 0); + try testArgs(i256, u255, 1 << 0); + try testArgs(i256, u255, 1 << 254); + try testArgs(i512, u255, 0); + try testArgs(i512, u255, 1 << 0); + try testArgs(i512, u255, 1 << 254); + try testArgs(i1024, u255, 0); + try testArgs(i1024, u255, 1 << 0); + try testArgs(i1024, u255, 1 << 254); + + try testArgs(u8, i256, -1 << 255); + try testArgs(u8, i256, -1); + try testArgs(u8, i256, 0); + try testArgs(u16, i256, -1 << 255); + try testArgs(u16, i256, -1); + try testArgs(u16, i256, 0); + try testArgs(u32, i256, -1 << 255); + try testArgs(u32, i256, -1); + try testArgs(u32, i256, 0); + try testArgs(u64, i256, -1 << 255); + try testArgs(u64, i256, -1); + try testArgs(u64, i256, 0); + try testArgs(u128, i256, -1 << 255); + try testArgs(u128, i256, -1); + try testArgs(u128, i256, 0); + try testArgs(u256, i256, -1 << 255); + try testArgs(u256, i256, -1); + try testArgs(u256, i256, 0); + try testArgs(u512, i256, -1 << 255); + try testArgs(u512, i256, -1); + try testArgs(u512, i256, 0); + try testArgs(u1024, i256, -1 << 255); + try testArgs(u1024, i256, -1); + try testArgs(u1024, i256, 0); + try testArgs(i8, u256, 0); + try testArgs(i8, u256, 1 << 0); + try testArgs(i8, u256, 1 << 255); + try testArgs(i16, u256, 0); + try testArgs(i16, u256, 1 << 0); + try testArgs(i16, u256, 1 << 255); + try testArgs(i32, u256, 0); + try testArgs(i32, u256, 1 << 0); + try testArgs(i32, u256, 1 << 255); + try testArgs(i64, u256, 0); + try testArgs(i64, u256, 1 << 0); + try testArgs(i64, u256, 1 << 255); + try testArgs(i128, u256, 0); + try testArgs(i128, u256, 1 << 0); + try testArgs(i128, u256, 1 << 255); + try testArgs(i256, u256, 0); + try testArgs(i256, u256, 1 << 0); + try testArgs(i256, u256, 1 << 255); + try testArgs(i512, u256, 0); + try testArgs(i512, u256, 1 << 0); + try testArgs(i512, u256, 1 << 255); + try testArgs(i1024, u256, 0); + try testArgs(i1024, u256, 1 << 0); + try testArgs(i1024, u256, 1 << 255); + + try testArgs(u8, i257, -1 << 256); + try testArgs(u8, i257, -1); + try testArgs(u8, i257, 0); + try testArgs(u16, i257, -1 << 256); + try testArgs(u16, i257, -1); + try testArgs(u16, i257, 0); + try testArgs(u32, i257, -1 << 256); + try testArgs(u32, i257, -1); + try testArgs(u32, i257, 0); + try testArgs(u64, i257, -1 << 256); + try testArgs(u64, i257, -1); + try testArgs(u64, i257, 0); + try testArgs(u128, i257, -1 << 256); + try testArgs(u128, i257, -1); + try testArgs(u128, i257, 0); + try testArgs(u256, i257, -1 << 256); + try testArgs(u256, i257, -1); + try testArgs(u256, i257, 0); + try testArgs(u512, i257, -1 << 256); + try testArgs(u512, i257, -1); + try testArgs(u512, i257, 0); + try testArgs(u1024, i257, -1 << 256); + try testArgs(u1024, i257, -1); + try testArgs(u1024, i257, 0); + try testArgs(i8, u257, 0); + try testArgs(i8, u257, 1 << 0); + try testArgs(i8, u257, 1 << 256); + try testArgs(i16, u257, 0); + try testArgs(i16, u257, 1 << 0); + try testArgs(i16, u257, 1 << 256); + try testArgs(i32, u257, 0); + try testArgs(i32, u257, 1 << 0); + try testArgs(i32, u257, 1 << 256); + try testArgs(i64, u257, 0); + try testArgs(i64, u257, 1 << 0); + try testArgs(i64, u257, 1 << 256); + try testArgs(i128, u257, 0); + try testArgs(i128, u257, 1 << 0); + try testArgs(i128, u257, 1 << 256); + try testArgs(i256, u257, 0); + try testArgs(i256, u257, 1 << 0); + try testArgs(i256, u257, 1 << 256); + try testArgs(i512, u257, 0); + try testArgs(i512, u257, 1 << 0); + try testArgs(i512, u257, 1 << 256); + try testArgs(i1024, u257, 0); + try testArgs(i1024, u257, 1 << 0); + try testArgs(i1024, u257, 1 << 256); + + try testArgs(u8, i511, -1 << 510); + try testArgs(u8, i511, -1); + try testArgs(u8, i511, 0); + try testArgs(u16, i511, -1 << 510); + try testArgs(u16, i511, -1); + try testArgs(u16, i511, 0); + try testArgs(u32, i511, -1 << 510); + try testArgs(u32, i511, -1); + try testArgs(u32, i511, 0); + try testArgs(u64, i511, -1 << 510); + try testArgs(u64, i511, -1); + try testArgs(u64, i511, 0); + try testArgs(u128, i511, -1 << 510); + try testArgs(u128, i511, -1); + try testArgs(u128, i511, 0); + try testArgs(u256, i511, -1 << 510); + try testArgs(u256, i511, -1); + try testArgs(u256, i511, 0); + try testArgs(u512, i511, -1 << 510); + try testArgs(u512, i511, -1); + try testArgs(u512, i511, 0); + try testArgs(u1024, i511, -1 << 510); + try testArgs(u1024, i511, -1); + try testArgs(u1024, i511, 0); + try testArgs(i8, u511, 0); + try testArgs(i8, u511, 1 << 0); + try testArgs(i8, u511, 1 << 510); + try testArgs(i16, u511, 0); + try testArgs(i16, u511, 1 << 0); + try testArgs(i16, u511, 1 << 510); + try testArgs(i32, u511, 0); + try testArgs(i32, u511, 1 << 0); + try testArgs(i32, u511, 1 << 510); + try testArgs(i64, u511, 0); + try testArgs(i64, u511, 1 << 0); + try testArgs(i64, u511, 1 << 510); + try testArgs(i128, u511, 0); + try testArgs(i128, u511, 1 << 0); + try testArgs(i128, u511, 1 << 510); + try testArgs(i256, u511, 0); + try testArgs(i256, u511, 1 << 0); + try testArgs(i256, u511, 1 << 510); + try testArgs(i512, u511, 0); + try testArgs(i512, u511, 1 << 0); + try testArgs(i512, u511, 1 << 510); + try testArgs(i1024, u511, 0); + try testArgs(i1024, u511, 1 << 0); + try testArgs(i1024, u511, 1 << 510); + + try testArgs(u8, i512, -1 << 511); + try testArgs(u8, i512, -1); + try testArgs(u8, i512, 0); + try testArgs(u16, i512, -1 << 511); + try testArgs(u16, i512, -1); + try testArgs(u16, i512, 0); + try testArgs(u32, i512, -1 << 511); + try testArgs(u32, i512, -1); + try testArgs(u32, i512, 0); + try testArgs(u64, i512, -1 << 511); + try testArgs(u64, i512, -1); + try testArgs(u64, i512, 0); + try testArgs(u128, i512, -1 << 511); + try testArgs(u128, i512, -1); + try testArgs(u128, i512, 0); + try testArgs(u256, i512, -1 << 511); + try testArgs(u256, i512, -1); + try testArgs(u256, i512, 0); + try testArgs(u512, i512, -1 << 511); + try testArgs(u512, i512, -1); + try testArgs(u512, i512, 0); + try testArgs(u1024, i512, -1 << 511); + try testArgs(u1024, i512, -1); + try testArgs(u1024, i512, 0); + try testArgs(i8, u512, 0); + try testArgs(i8, u512, 1 << 0); + try testArgs(i8, u512, 1 << 511); + try testArgs(i16, u512, 0); + try testArgs(i16, u512, 1 << 0); + try testArgs(i16, u512, 1 << 511); + try testArgs(i32, u512, 0); + try testArgs(i32, u512, 1 << 0); + try testArgs(i32, u512, 1 << 511); + try testArgs(i64, u512, 0); + try testArgs(i64, u512, 1 << 0); + try testArgs(i64, u512, 1 << 511); + try testArgs(i128, u512, 0); + try testArgs(i128, u512, 1 << 0); + try testArgs(i128, u512, 1 << 511); + try testArgs(i256, u512, 0); + try testArgs(i256, u512, 1 << 0); + try testArgs(i256, u512, 1 << 511); + try testArgs(i512, u512, 0); + try testArgs(i512, u512, 1 << 0); + try testArgs(i512, u512, 1 << 511); + try testArgs(i1024, u512, 0); + try testArgs(i1024, u512, 1 << 0); + try testArgs(i1024, u512, 1 << 511); + + try testArgs(u8, i513, -1 << 512); + try testArgs(u8, i513, -1); + try testArgs(u8, i513, 0); + try testArgs(u16, i513, -1 << 512); + try testArgs(u16, i513, -1); + try testArgs(u16, i513, 0); + try testArgs(u32, i513, -1 << 512); + try testArgs(u32, i513, -1); + try testArgs(u32, i513, 0); + try testArgs(u64, i513, -1 << 512); + try testArgs(u64, i513, -1); + try testArgs(u64, i513, 0); + try testArgs(u128, i513, -1 << 512); + try testArgs(u128, i513, -1); + try testArgs(u128, i513, 0); + try testArgs(u256, i513, -1 << 512); + try testArgs(u256, i513, -1); + try testArgs(u256, i513, 0); + try testArgs(u512, i513, -1 << 512); + try testArgs(u512, i513, -1); + try testArgs(u512, i513, 0); + try testArgs(u1024, i513, -1 << 512); + try testArgs(u1024, i513, -1); + try testArgs(u1024, i513, 0); + try testArgs(i8, u513, 0); + try testArgs(i8, u513, 1 << 0); + try testArgs(i8, u513, 1 << 512); + try testArgs(i16, u513, 0); + try testArgs(i16, u513, 1 << 0); + try testArgs(i16, u513, 1 << 512); + try testArgs(i32, u513, 0); + try testArgs(i32, u513, 1 << 0); + try testArgs(i32, u513, 1 << 512); + try testArgs(i64, u513, 0); + try testArgs(i64, u513, 1 << 0); + try testArgs(i64, u513, 1 << 512); + try testArgs(i128, u513, 0); + try testArgs(i128, u513, 1 << 0); + try testArgs(i128, u513, 1 << 512); + try testArgs(i256, u513, 0); + try testArgs(i256, u513, 1 << 0); + try testArgs(i256, u513, 1 << 512); + try testArgs(i512, u513, 0); + try testArgs(i512, u513, 1 << 0); + try testArgs(i512, u513, 1 << 512); + try testArgs(i1024, u513, 0); + try testArgs(i1024, u513, 1 << 0); + try testArgs(i1024, u513, 1 << 512); + + try testArgs(u8, i1023, -1 << 1022); + try testArgs(u8, i1023, -1); + try testArgs(u8, i1023, 0); + try testArgs(u16, i1023, -1 << 1022); + try testArgs(u16, i1023, -1); + try testArgs(u16, i1023, 0); + try testArgs(u32, i1023, -1 << 1022); + try testArgs(u32, i1023, -1); + try testArgs(u32, i1023, 0); + try testArgs(u64, i1023, -1 << 1022); + try testArgs(u64, i1023, -1); + try testArgs(u64, i1023, 0); + try testArgs(u128, i1023, -1 << 1022); + try testArgs(u128, i1023, -1); + try testArgs(u128, i1023, 0); + try testArgs(u256, i1023, -1 << 1022); + try testArgs(u256, i1023, -1); + try testArgs(u256, i1023, 0); + try testArgs(u512, i1023, -1 << 1022); + try testArgs(u512, i1023, -1); + try testArgs(u512, i1023, 0); + try testArgs(u1024, i1023, -1 << 1022); + try testArgs(u1024, i1023, -1); + try testArgs(u1024, i1023, 0); + try testArgs(i8, u1023, 0); + try testArgs(i8, u1023, 1 << 0); + try testArgs(i8, u1023, 1 << 1022); + try testArgs(i16, u1023, 0); + try testArgs(i16, u1023, 1 << 0); + try testArgs(i16, u1023, 1 << 1022); + try testArgs(i32, u1023, 0); + try testArgs(i32, u1023, 1 << 0); + try testArgs(i32, u1023, 1 << 1022); + try testArgs(i64, u1023, 0); + try testArgs(i64, u1023, 1 << 0); + try testArgs(i64, u1023, 1 << 1022); + try testArgs(i128, u1023, 0); + try testArgs(i128, u1023, 1 << 0); + try testArgs(i128, u1023, 1 << 1022); + try testArgs(i256, u1023, 0); + try testArgs(i256, u1023, 1 << 0); + try testArgs(i256, u1023, 1 << 1022); + try testArgs(i512, u1023, 0); + try testArgs(i512, u1023, 1 << 0); + try testArgs(i512, u1023, 1 << 1022); + try testArgs(i1024, u1023, 0); + try testArgs(i1024, u1023, 1 << 0); + try testArgs(i1024, u1023, 1 << 1022); + + try testArgs(u8, i1024, -1 << 1023); + try testArgs(u8, i1024, -1); + try testArgs(u8, i1024, 0); + try testArgs(u16, i1024, -1 << 1023); + try testArgs(u16, i1024, -1); + try testArgs(u16, i1024, 0); + try testArgs(u32, i1024, -1 << 1023); + try testArgs(u32, i1024, -1); + try testArgs(u32, i1024, 0); + try testArgs(u64, i1024, -1 << 1023); + try testArgs(u64, i1024, -1); + try testArgs(u64, i1024, 0); + try testArgs(u128, i1024, -1 << 1023); + try testArgs(u128, i1024, -1); + try testArgs(u128, i1024, 0); + try testArgs(u256, i1024, -1 << 1023); + try testArgs(u256, i1024, -1); + try testArgs(u256, i1024, 0); + try testArgs(u512, i1024, -1 << 1023); + try testArgs(u512, i1024, -1); + try testArgs(u512, i1024, 0); + try testArgs(u1024, i1024, -1 << 1023); + try testArgs(u1024, i1024, -1); + try testArgs(u1024, i1024, 0); + try testArgs(i8, u1024, 0); + try testArgs(i8, u1024, 1 << 0); + try testArgs(i8, u1024, 1 << 1023); + try testArgs(i16, u1024, 0); + try testArgs(i16, u1024, 1 << 0); + try testArgs(i16, u1024, 1 << 1023); + try testArgs(i32, u1024, 0); + try testArgs(i32, u1024, 1 << 0); + try testArgs(i32, u1024, 1 << 1023); + try testArgs(i64, u1024, 0); + try testArgs(i64, u1024, 1 << 0); + try testArgs(i64, u1024, 1 << 1023); + try testArgs(i128, u1024, 0); + try testArgs(i128, u1024, 1 << 0); + try testArgs(i128, u1024, 1 << 1023); + try testArgs(i256, u1024, 0); + try testArgs(i256, u1024, 1 << 0); + try testArgs(i256, u1024, 1 << 1023); + try testArgs(i512, u1024, 0); + try testArgs(i512, u1024, 1 << 0); + try testArgs(i512, u1024, 1 << 1023); + try testArgs(i1024, u1024, 0); + try testArgs(i1024, u1024, 1 << 0); + try testArgs(i1024, u1024, 1 << 1023); + + try testArgs(u8, i1025, -1 << 1024); + try testArgs(u8, i1025, -1); + try testArgs(u8, i1025, 0); + try testArgs(u16, i1025, -1 << 1024); + try testArgs(u16, i1025, -1); + try testArgs(u16, i1025, 0); + try testArgs(u32, i1025, -1 << 1024); + try testArgs(u32, i1025, -1); + try testArgs(u32, i1025, 0); + try testArgs(u64, i1025, -1 << 1024); + try testArgs(u64, i1025, -1); + try testArgs(u64, i1025, 0); + try testArgs(u128, i1025, -1 << 1024); + try testArgs(u128, i1025, -1); + try testArgs(u128, i1025, 0); + try testArgs(u256, i1025, -1 << 1024); + try testArgs(u256, i1025, -1); + try testArgs(u256, i1025, 0); + try testArgs(u512, i1025, -1 << 1024); + try testArgs(u512, i1025, -1); + try testArgs(u512, i1025, 0); + try testArgs(u1024, i1025, -1 << 1024); + try testArgs(u1024, i1025, -1); + try testArgs(u1024, i1025, 0); + try testArgs(i8, u1025, 0); + try testArgs(i8, u1025, 1 << 0); + try testArgs(i8, u1025, 1 << 1024); + try testArgs(i16, u1025, 0); + try testArgs(i16, u1025, 1 << 0); + try testArgs(i16, u1025, 1 << 1024); + try testArgs(i32, u1025, 0); + try testArgs(i32, u1025, 1 << 0); + try testArgs(i32, u1025, 1 << 1024); + try testArgs(i64, u1025, 0); + try testArgs(i64, u1025, 1 << 0); + try testArgs(i64, u1025, 1 << 1024); + try testArgs(i128, u1025, 0); + try testArgs(i128, u1025, 1 << 0); + try testArgs(i128, u1025, 1 << 1024); + try testArgs(i256, u1025, 0); + try testArgs(i256, u1025, 1 << 0); + try testArgs(i256, u1025, 1 << 1024); + try testArgs(i512, u1025, 0); + try testArgs(i512, u1025, 1 << 0); + try testArgs(i512, u1025, 1 << 1024); + try testArgs(i1024, u1025, 0); + try testArgs(i1024, u1025, 1 << 0); + try testArgs(i1024, u1025, 1 << 1024); + } + fn testFloats() !void { + @setEvalBranchQuota(3_100); + + try testArgs(f16, f16, -nan(f16)); + try testArgs(f16, f16, -inf(f16)); + try testArgs(f16, f16, -fmax(f16)); + try testArgs(f16, f16, -1e1); + try testArgs(f16, f16, -1e0); + try testArgs(f16, f16, -1e-1); + try testArgs(f16, f16, -fmin(f16)); + try testArgs(f16, f16, -tmin(f16)); + try testArgs(f16, f16, -0.0); + try testArgs(f16, f16, 0.0); + try testArgs(f16, f16, tmin(f16)); + try testArgs(f16, f16, fmin(f16)); + try testArgs(f16, f16, 1e-1); + try testArgs(f16, f16, 1e0); + try testArgs(f16, f16, 1e1); + try testArgs(f16, f16, fmax(f16)); + try testArgs(f16, f16, inf(f16)); + try testArgs(f16, f16, nan(f16)); + + try testArgs(f32, f16, -nan(f16)); + try testArgs(f32, f16, -inf(f16)); + try testArgs(f32, f16, -fmax(f16)); + try testArgs(f32, f16, -1e1); + try testArgs(f32, f16, -1e0); + try testArgs(f32, f16, -1e-1); + try testArgs(f32, f16, -fmin(f16)); + try testArgs(f32, f16, -tmin(f16)); + try testArgs(f32, f16, -0.0); + try testArgs(f32, f16, 0.0); + try testArgs(f32, f16, tmin(f16)); + try testArgs(f32, f16, fmin(f16)); + try testArgs(f32, f16, 1e-1); + try testArgs(f32, f16, 1e0); + try testArgs(f32, f16, 1e1); + try testArgs(f32, f16, fmax(f16)); + try testArgs(f32, f16, inf(f16)); + try testArgs(f32, f16, nan(f16)); + + try testArgs(f64, f16, -nan(f16)); + try testArgs(f64, f16, -inf(f16)); + try testArgs(f64, f16, -fmax(f16)); + try testArgs(f64, f16, -1e1); + try testArgs(f64, f16, -1e0); + try testArgs(f64, f16, -1e-1); + try testArgs(f64, f16, -fmin(f16)); + try testArgs(f64, f16, -tmin(f16)); + try testArgs(f64, f16, -0.0); + try testArgs(f64, f16, 0.0); + try testArgs(f64, f16, tmin(f16)); + try testArgs(f64, f16, fmin(f16)); + try testArgs(f64, f16, 1e-1); + try testArgs(f64, f16, 1e0); + try testArgs(f64, f16, 1e1); + try testArgs(f64, f16, fmax(f16)); + try testArgs(f64, f16, inf(f16)); + try testArgs(f64, f16, nan(f16)); + + try testArgs(f80, f16, -nan(f16)); + try testArgs(f80, f16, -inf(f16)); + try testArgs(f80, f16, -fmax(f16)); + try testArgs(f80, f16, -1e1); + try testArgs(f80, f16, -1e0); + try testArgs(f80, f16, -1e-1); + try testArgs(f80, f16, -fmin(f16)); + try testArgs(f80, f16, -tmin(f16)); + try testArgs(f80, f16, -0.0); + try testArgs(f80, f16, 0.0); + try testArgs(f80, f16, tmin(f16)); + try testArgs(f80, f16, fmin(f16)); + try testArgs(f80, f16, 1e-1); + try testArgs(f80, f16, 1e0); + try testArgs(f80, f16, 1e1); + try testArgs(f80, f16, fmax(f16)); + try testArgs(f80, f16, inf(f16)); + try testArgs(f80, f16, nan(f16)); + + try testArgs(f128, f16, -nan(f16)); + try testArgs(f128, f16, -inf(f16)); + try testArgs(f128, f16, -fmax(f16)); + try testArgs(f128, f16, -1e1); + try testArgs(f128, f16, -1e0); + try testArgs(f128, f16, -1e-1); + try testArgs(f128, f16, -fmin(f16)); + try testArgs(f128, f16, -tmin(f16)); + try testArgs(f128, f16, -0.0); + try testArgs(f128, f16, 0.0); + try testArgs(f128, f16, tmin(f16)); + try testArgs(f128, f16, fmin(f16)); + try testArgs(f128, f16, 1e-1); + try testArgs(f128, f16, 1e0); + try testArgs(f128, f16, 1e1); + try testArgs(f128, f16, fmax(f16)); + try testArgs(f128, f16, inf(f16)); + try testArgs(f128, f16, nan(f16)); + + try testArgs(f16, f32, -nan(f32)); + try testArgs(f16, f32, -inf(f32)); + try testArgs(f16, f32, -fmax(f32)); + try testArgs(f16, f32, -1e1); + try testArgs(f16, f32, -1e0); + try testArgs(f16, f32, -1e-1); + try testArgs(f16, f32, -fmin(f32)); + try testArgs(f16, f32, -tmin(f32)); + try testArgs(f16, f32, -0.0); + try testArgs(f16, f32, 0.0); + try testArgs(f16, f32, tmin(f32)); + try testArgs(f16, f32, fmin(f32)); + try testArgs(f16, f32, 1e-1); + try testArgs(f16, f32, 1e0); + try testArgs(f16, f32, 1e1); + try testArgs(f16, f32, fmax(f32)); + try testArgs(f16, f32, inf(f32)); + try testArgs(f16, f32, nan(f32)); + + try testArgs(f32, f32, -nan(f32)); + try testArgs(f32, f32, -inf(f32)); + try testArgs(f32, f32, -fmax(f32)); + try testArgs(f32, f32, -1e1); + try testArgs(f32, f32, -1e0); + try testArgs(f32, f32, -1e-1); + try testArgs(f32, f32, -fmin(f32)); + try testArgs(f32, f32, -tmin(f32)); + try testArgs(f32, f32, -0.0); + try testArgs(f32, f32, 0.0); + try testArgs(f32, f32, tmin(f32)); + try testArgs(f32, f32, fmin(f32)); + try testArgs(f32, f32, 1e-1); + try testArgs(f32, f32, 1e0); + try testArgs(f32, f32, 1e1); + try testArgs(f32, f32, fmax(f32)); + try testArgs(f32, f32, inf(f32)); + try testArgs(f32, f32, nan(f32)); + + try testArgs(f64, f32, -nan(f32)); + try testArgs(f64, f32, -inf(f32)); + try testArgs(f64, f32, -fmax(f32)); + try testArgs(f64, f32, -1e1); + try testArgs(f64, f32, -1e0); + try testArgs(f64, f32, -1e-1); + try testArgs(f64, f32, -fmin(f32)); + try testArgs(f64, f32, -tmin(f32)); + try testArgs(f64, f32, -0.0); + try testArgs(f64, f32, 0.0); + try testArgs(f64, f32, tmin(f32)); + try testArgs(f64, f32, fmin(f32)); + try testArgs(f64, f32, 1e-1); + try testArgs(f64, f32, 1e0); + try testArgs(f64, f32, 1e1); + try testArgs(f64, f32, fmax(f32)); + try testArgs(f64, f32, inf(f32)); + try testArgs(f64, f32, nan(f32)); + + try testArgs(f80, f32, -nan(f32)); + try testArgs(f80, f32, -inf(f32)); + try testArgs(f80, f32, -fmax(f32)); + try testArgs(f80, f32, -1e1); + try testArgs(f80, f32, -1e0); + try testArgs(f80, f32, -1e-1); + try testArgs(f80, f32, -fmin(f32)); + try testArgs(f80, f32, -tmin(f32)); + try testArgs(f80, f32, -0.0); + try testArgs(f80, f32, 0.0); + try testArgs(f80, f32, tmin(f32)); + try testArgs(f80, f32, fmin(f32)); + try testArgs(f80, f32, 1e-1); + try testArgs(f80, f32, 1e0); + try testArgs(f80, f32, 1e1); + try testArgs(f80, f32, fmax(f32)); + try testArgs(f80, f32, inf(f32)); + try testArgs(f80, f32, nan(f32)); + + try testArgs(f128, f32, -nan(f32)); + try testArgs(f128, f32, -inf(f32)); + try testArgs(f128, f32, -fmax(f32)); + try testArgs(f128, f32, -1e1); + try testArgs(f128, f32, -1e0); + try testArgs(f128, f32, -1e-1); + try testArgs(f128, f32, -fmin(f32)); + try testArgs(f128, f32, -tmin(f32)); + try testArgs(f128, f32, -0.0); + try testArgs(f128, f32, 0.0); + try testArgs(f128, f32, tmin(f32)); + try testArgs(f128, f32, fmin(f32)); + try testArgs(f128, f32, 1e-1); + try testArgs(f128, f32, 1e0); + try testArgs(f128, f32, 1e1); + try testArgs(f128, f32, fmax(f32)); + try testArgs(f128, f32, inf(f32)); + try testArgs(f128, f32, nan(f32)); + + try testArgs(f16, f64, -nan(f64)); + try testArgs(f16, f64, -inf(f64)); + try testArgs(f16, f64, -fmax(f64)); + try testArgs(f16, f64, -1e1); + try testArgs(f16, f64, -1e0); + try testArgs(f16, f64, -1e-1); + try testArgs(f16, f64, -fmin(f64)); + try testArgs(f16, f64, -tmin(f64)); + try testArgs(f16, f64, -0.0); + try testArgs(f16, f64, 0.0); + try testArgs(f16, f64, tmin(f64)); + try testArgs(f16, f64, fmin(f64)); + try testArgs(f16, f64, 1e-1); + try testArgs(f16, f64, 1e0); + try testArgs(f16, f64, 1e1); + try testArgs(f16, f64, fmax(f64)); + try testArgs(f16, f64, inf(f64)); + try testArgs(f16, f64, nan(f64)); + + try testArgs(f32, f64, -nan(f64)); + try testArgs(f32, f64, -inf(f64)); + try testArgs(f32, f64, -fmax(f64)); + try testArgs(f32, f64, -1e1); + try testArgs(f32, f64, -1e0); + try testArgs(f32, f64, -1e-1); + try testArgs(f32, f64, -fmin(f64)); + try testArgs(f32, f64, -tmin(f64)); + try testArgs(f32, f64, -0.0); + try testArgs(f32, f64, 0.0); + try testArgs(f32, f64, tmin(f64)); + try testArgs(f32, f64, fmin(f64)); + try testArgs(f32, f64, 1e-1); + try testArgs(f32, f64, 1e0); + try testArgs(f32, f64, 1e1); + try testArgs(f32, f64, fmax(f64)); + try testArgs(f32, f64, inf(f64)); + try testArgs(f32, f64, nan(f64)); + + try testArgs(f64, f64, -nan(f64)); + try testArgs(f64, f64, -inf(f64)); + try testArgs(f64, f64, -fmax(f64)); + try testArgs(f64, f64, -1e1); + try testArgs(f64, f64, -1e0); + try testArgs(f64, f64, -1e-1); + try testArgs(f64, f64, -fmin(f64)); + try testArgs(f64, f64, -tmin(f64)); + try testArgs(f64, f64, -0.0); + try testArgs(f64, f64, 0.0); + try testArgs(f64, f64, tmin(f64)); + try testArgs(f64, f64, fmin(f64)); + try testArgs(f64, f64, 1e-1); + try testArgs(f64, f64, 1e0); + try testArgs(f64, f64, 1e1); + try testArgs(f64, f64, fmax(f64)); + try testArgs(f64, f64, inf(f64)); + try testArgs(f64, f64, nan(f64)); + + try testArgs(f80, f64, -nan(f64)); + try testArgs(f80, f64, -inf(f64)); + try testArgs(f80, f64, -fmax(f64)); + try testArgs(f80, f64, -1e1); + try testArgs(f80, f64, -1e0); + try testArgs(f80, f64, -1e-1); + try testArgs(f80, f64, -fmin(f64)); + try testArgs(f80, f64, -tmin(f64)); + try testArgs(f80, f64, -0.0); + try testArgs(f80, f64, 0.0); + try testArgs(f80, f64, tmin(f64)); + try testArgs(f80, f64, fmin(f64)); + try testArgs(f80, f64, 1e-1); + try testArgs(f80, f64, 1e0); + try testArgs(f80, f64, 1e1); + try testArgs(f80, f64, fmax(f64)); + try testArgs(f80, f64, inf(f64)); + try testArgs(f80, f64, nan(f64)); + + try testArgs(f128, f64, -nan(f64)); + try testArgs(f128, f64, -inf(f64)); + try testArgs(f128, f64, -fmax(f64)); + try testArgs(f128, f64, -1e1); + try testArgs(f128, f64, -1e0); + try testArgs(f128, f64, -1e-1); + try testArgs(f128, f64, -fmin(f64)); + try testArgs(f128, f64, -tmin(f64)); + try testArgs(f128, f64, -0.0); + try testArgs(f128, f64, 0.0); + try testArgs(f128, f64, tmin(f64)); + try testArgs(f128, f64, fmin(f64)); + try testArgs(f128, f64, 1e-1); + try testArgs(f128, f64, 1e0); + try testArgs(f128, f64, 1e1); + try testArgs(f128, f64, fmax(f64)); + try testArgs(f128, f64, inf(f64)); + try testArgs(f128, f64, nan(f64)); + + try testArgs(f16, f80, -nan(f80)); + try testArgs(f16, f80, -inf(f80)); + try testArgs(f16, f80, -fmax(f80)); + try testArgs(f16, f80, -1e1); + try testArgs(f16, f80, -1e0); + try testArgs(f16, f80, -1e-1); + try testArgs(f16, f80, -fmin(f80)); + try testArgs(f16, f80, -tmin(f80)); + try testArgs(f16, f80, -0.0); + try testArgs(f16, f80, 0.0); + try testArgs(f16, f80, tmin(f80)); + try testArgs(f16, f80, fmin(f80)); + try testArgs(f16, f80, 1e-1); + try testArgs(f16, f80, 1e0); + try testArgs(f16, f80, 1e1); + try testArgs(f16, f80, fmax(f80)); + try testArgs(f16, f80, inf(f80)); + try testArgs(f16, f80, nan(f80)); + + try testArgs(f32, f80, -nan(f80)); + try testArgs(f32, f80, -inf(f80)); + try testArgs(f32, f80, -fmax(f80)); + try testArgs(f32, f80, -1e1); + try testArgs(f32, f80, -1e0); + try testArgs(f32, f80, -1e-1); + try testArgs(f32, f80, -fmin(f80)); + try testArgs(f32, f80, -tmin(f80)); + try testArgs(f32, f80, -0.0); + try testArgs(f32, f80, 0.0); + try testArgs(f32, f80, tmin(f80)); + try testArgs(f32, f80, fmin(f80)); + try testArgs(f32, f80, 1e-1); + try testArgs(f32, f80, 1e0); + try testArgs(f32, f80, 1e1); + try testArgs(f32, f80, fmax(f80)); + try testArgs(f32, f80, inf(f80)); + try testArgs(f32, f80, nan(f80)); + + try testArgs(f64, f80, -nan(f80)); + try testArgs(f64, f80, -inf(f80)); + try testArgs(f64, f80, -fmax(f80)); + try testArgs(f64, f80, -1e1); + try testArgs(f64, f80, -1e0); + try testArgs(f64, f80, -1e-1); + try testArgs(f64, f80, -fmin(f80)); + try testArgs(f64, f80, -tmin(f80)); + try testArgs(f64, f80, -0.0); + try testArgs(f64, f80, 0.0); + try testArgs(f64, f80, tmin(f80)); + try testArgs(f64, f80, fmin(f80)); + try testArgs(f64, f80, 1e-1); + try testArgs(f64, f80, 1e0); + try testArgs(f64, f80, 1e1); + try testArgs(f64, f80, fmax(f80)); + try testArgs(f64, f80, inf(f80)); + try testArgs(f64, f80, nan(f80)); + + try testArgs(f80, f80, -nan(f80)); + try testArgs(f80, f80, -inf(f80)); + try testArgs(f80, f80, -fmax(f80)); + try testArgs(f80, f80, -1e1); + try testArgs(f80, f80, -1e0); + try testArgs(f80, f80, -1e-1); + try testArgs(f80, f80, -fmin(f80)); + try testArgs(f80, f80, -tmin(f80)); + try testArgs(f80, f80, -0.0); + try testArgs(f80, f80, 0.0); + try testArgs(f80, f80, tmin(f80)); + try testArgs(f80, f80, fmin(f80)); + try testArgs(f80, f80, 1e-1); + try testArgs(f80, f80, 1e0); + try testArgs(f80, f80, 1e1); + try testArgs(f80, f80, fmax(f80)); + try testArgs(f80, f80, inf(f80)); + try testArgs(f80, f80, nan(f80)); + + try testArgs(f128, f80, -nan(f80)); + try testArgs(f128, f80, -inf(f80)); + try testArgs(f128, f80, -fmax(f80)); + try testArgs(f128, f80, -1e1); + try testArgs(f128, f80, -1e0); + try testArgs(f128, f80, -1e-1); + try testArgs(f128, f80, -fmin(f80)); + try testArgs(f128, f80, -tmin(f80)); + try testArgs(f128, f80, -0.0); + try testArgs(f128, f80, 0.0); + try testArgs(f128, f80, tmin(f80)); + try testArgs(f128, f80, fmin(f80)); + try testArgs(f128, f80, 1e-1); + try testArgs(f128, f80, 1e0); + try testArgs(f128, f80, 1e1); + try testArgs(f128, f80, fmax(f80)); + try testArgs(f128, f80, inf(f80)); + try testArgs(f128, f80, nan(f80)); + + try testArgs(f16, f128, -nan(f128)); + try testArgs(f16, f128, -inf(f128)); + try testArgs(f16, f128, -fmax(f128)); + try testArgs(f16, f128, -1e1); + try testArgs(f16, f128, -1e0); + try testArgs(f16, f128, -1e-1); + try testArgs(f16, f128, -fmin(f128)); + try testArgs(f16, f128, -tmin(f128)); + try testArgs(f16, f128, -0.0); + try testArgs(f16, f128, 0.0); + try testArgs(f16, f128, tmin(f128)); + try testArgs(f16, f128, fmin(f128)); + try testArgs(f16, f128, 1e-1); + try testArgs(f16, f128, 1e0); + try testArgs(f16, f128, 1e1); + try testArgs(f16, f128, fmax(f128)); + try testArgs(f16, f128, inf(f128)); + try testArgs(f16, f128, nan(f128)); + + try testArgs(f32, f128, -nan(f128)); + try testArgs(f32, f128, -inf(f128)); + try testArgs(f32, f128, -fmax(f128)); + try testArgs(f32, f128, -1e1); + try testArgs(f32, f128, -1e0); + try testArgs(f32, f128, -1e-1); + try testArgs(f32, f128, -fmin(f128)); + try testArgs(f32, f128, -tmin(f128)); + try testArgs(f32, f128, -0.0); + try testArgs(f32, f128, 0.0); + try testArgs(f32, f128, tmin(f128)); + try testArgs(f32, f128, fmin(f128)); + try testArgs(f32, f128, 1e-1); + try testArgs(f32, f128, 1e0); + try testArgs(f32, f128, 1e1); + try testArgs(f32, f128, fmax(f128)); + try testArgs(f32, f128, inf(f128)); + try testArgs(f32, f128, nan(f128)); + + try testArgs(f64, f128, -nan(f128)); + try testArgs(f64, f128, -inf(f128)); + try testArgs(f64, f128, -fmax(f128)); + try testArgs(f64, f128, -1e1); + try testArgs(f64, f128, -1e0); + try testArgs(f64, f128, -1e-1); + try testArgs(f64, f128, -fmin(f128)); + try testArgs(f64, f128, -tmin(f128)); + try testArgs(f64, f128, -0.0); + try testArgs(f64, f128, 0.0); + try testArgs(f64, f128, tmin(f128)); + try testArgs(f64, f128, fmin(f128)); + try testArgs(f64, f128, 1e-1); + try testArgs(f64, f128, 1e0); + try testArgs(f64, f128, 1e1); + try testArgs(f64, f128, fmax(f128)); + try testArgs(f64, f128, inf(f128)); + try testArgs(f64, f128, nan(f128)); + + try testArgs(f80, f128, -nan(f128)); + try testArgs(f80, f128, -inf(f128)); + try testArgs(f80, f128, -fmax(f128)); + try testArgs(f80, f128, -1e1); + try testArgs(f80, f128, -1e0); + try testArgs(f80, f128, -1e-1); + try testArgs(f80, f128, -fmin(f128)); + try testArgs(f80, f128, -tmin(f128)); + try testArgs(f80, f128, -0.0); + try testArgs(f80, f128, 0.0); + try testArgs(f80, f128, tmin(f128)); + try testArgs(f80, f128, fmin(f128)); + try testArgs(f80, f128, 1e-1); + try testArgs(f80, f128, 1e0); + try testArgs(f80, f128, 1e1); + try testArgs(f80, f128, fmax(f128)); + try testArgs(f80, f128, inf(f128)); + try testArgs(f80, f128, nan(f128)); + + try testArgs(f128, f128, -nan(f128)); + try testArgs(f128, f128, -inf(f128)); + try testArgs(f128, f128, -fmax(f128)); + try testArgs(f128, f128, -1e1); + try testArgs(f128, f128, -1e0); + try testArgs(f128, f128, -1e-1); + try testArgs(f128, f128, -fmin(f128)); + try testArgs(f128, f128, -tmin(f128)); + try testArgs(f128, f128, -0.0); + try testArgs(f128, f128, 0.0); + try testArgs(f128, f128, tmin(f128)); + try testArgs(f128, f128, fmin(f128)); + try testArgs(f128, f128, 1e-1); + try testArgs(f128, f128, 1e0); + try testArgs(f128, f128, 1e1); + try testArgs(f128, f128, fmax(f128)); + try testArgs(f128, f128, inf(f128)); + try testArgs(f128, f128, nan(f128)); + } + fn testSameSignednessIntVectors() !void { + try testArgs(@Vector(1, i7), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i9), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i15), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i17), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i31), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i33), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i63), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i65), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i127), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i129), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i255), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i257), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i511), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i513), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i1023), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i1025), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u7), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u8), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u9), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u15), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u16), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u17), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u31), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u32), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u33), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u63), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u64), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u65), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u127), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u128), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u129), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u255), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u256), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u257), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u511), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u512), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u513), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u1023), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, u1025), @Vector(1, u1), .{1}); + + try testArgs(@Vector(2, i7), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i9), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i15), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i17), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i31), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i33), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i63), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i65), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i127), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i129), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i255), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i257), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i511), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i513), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i1023), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i1025), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u7), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u9), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u15), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u17), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u31), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u33), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u63), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u65), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u127), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u129), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u255), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u257), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u511), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u513), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u1023), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, u1025), @Vector(2, u1), .{ 0, 1 }); + + try testArgs(@Vector(3, i7), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u9), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u15), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u17), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u31), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u33), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u63), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u65), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u127), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u129), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u255), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u257), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u511), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u513), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u1023), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, u1025), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + + try testArgs(@Vector(3, i7), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u9), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u15), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u17), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u31), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u33), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u63), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u65), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u127), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u129), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u255), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u257), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u511), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u513), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u1023), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, u1025), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + + try testArgs(@Vector(3, i7), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u9), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u15), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u17), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u31), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u33), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u63), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u65), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u127), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u129), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u255), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u257), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u511), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u513), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u1023), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, u1025), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + + try testArgs(@Vector(3, i7), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u9), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u15), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u17), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u31), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u33), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u63), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u65), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u127), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u129), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u255), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u257), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u511), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u513), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u1023), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, u1025), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + + try testArgs(@Vector(3, i7), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u9), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u15), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u17), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u31), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u33), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u63), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u65), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u127), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u129), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u255), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u257), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u511), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u513), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u1023), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, u1025), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + + try testArgs(@Vector(3, i7), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u9), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u15), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u17), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u31), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u33), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u63), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u65), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u127), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u129), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u255), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u257), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u511), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u513), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u1023), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, u1025), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + + try testArgs(@Vector(3, i7), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u9), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u15), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u17), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u31), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u33), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u63), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u65), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u127), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u129), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u255), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u257), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u511), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u513), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u1023), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, u1025), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + + try testArgs(@Vector(3, i7), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u9), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u15), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u17), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u31), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u33), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u63), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u65), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u127), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u129), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u255), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u257), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u511), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u513), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u1023), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, u1025), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + + try testArgs(@Vector(3, i7), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u9), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u15), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u17), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u31), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u33), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u63), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u65), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u127), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u129), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u255), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u257), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u511), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u513), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u1023), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, u1025), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + + try testArgs(@Vector(3, i7), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u9), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u15), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u17), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u31), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u33), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u63), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u65), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u127), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u129), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u255), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u257), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u511), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u513), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u1023), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, u1025), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + + try testArgs(@Vector(3, i7), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u9), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u15), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u17), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u31), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u33), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u63), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u65), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u127), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u129), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u255), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u257), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u511), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u513), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u1023), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, u1025), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + + try testArgs(@Vector(3, i7), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u9), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u15), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u17), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u31), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u33), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u63), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u65), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u127), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u129), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u255), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u257), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u511), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u513), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u1023), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, u1025), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + + try testArgs(@Vector(3, i7), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u9), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u15), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u17), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u31), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u33), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u63), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u65), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u127), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u129), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u255), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u257), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u511), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u513), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u1023), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, u1025), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + + try testArgs(@Vector(3, i7), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u9), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u15), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u17), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u31), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u33), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u63), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u65), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u127), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u129), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u255), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u257), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u511), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u513), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u1023), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, u1025), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + + try testArgs(@Vector(3, i7), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u9), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u15), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u17), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u31), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u33), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u63), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u65), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u127), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u129), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u255), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u257), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u511), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u513), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u1023), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, u1025), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + + try testArgs(@Vector(3, i7), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u9), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u15), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u17), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u31), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u33), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u63), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u65), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u127), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u129), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u255), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u257), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u511), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u513), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u1023), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, u1025), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + + try testArgs(@Vector(3, i7), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u9), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u15), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u17), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u31), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u33), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u63), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u65), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u127), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u129), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u255), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u257), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u511), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u513), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u1023), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, u1025), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + + try testArgs(@Vector(3, i7), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u9), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u15), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u17), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u31), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u33), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u63), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u65), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u127), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u129), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u255), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u257), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u511), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u513), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u1023), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, u1025), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + + try testArgs(@Vector(3, i7), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u9), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u15), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u17), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u31), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u33), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u63), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u65), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u127), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u129), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u255), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u257), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u511), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u513), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u1023), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, u1025), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + + try testArgs(@Vector(3, i7), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u9), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u15), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u17), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u31), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u33), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u63), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u65), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u127), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u129), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u255), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u257), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u511), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u513), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u1023), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, u1025), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + + try testArgs(@Vector(3, i7), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u9), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u15), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u17), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u31), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u33), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u63), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u65), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u127), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u129), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u255), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u257), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u511), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u513), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u1023), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, u1025), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + + try testArgs(@Vector(3, i7), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u9), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u15), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u17), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u31), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u33), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u63), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u65), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u127), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u129), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u255), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u257), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u511), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u513), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u1023), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, u1025), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + + try testArgs(@Vector(3, i7), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u9), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u15), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u17), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u31), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u33), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u63), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u65), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u127), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u129), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u255), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u257), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u511), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u513), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u1023), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, u1025), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + + try testArgs(@Vector(3, i7), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u9), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u15), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u17), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u31), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u33), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u63), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u65), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u127), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u129), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u255), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u257), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u511), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u513), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u1023), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, u1025), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + + try testArgs(@Vector(3, i7), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u9), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u15), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u17), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u31), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u33), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u63), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u65), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u127), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u129), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u255), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u257), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u511), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u513), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u1023), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, u1025), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + + try testArgs(@Vector(3, i7), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u9), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u15), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u17), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u31), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u33), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u63), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u65), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u127), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u129), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u255), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u257), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u511), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u513), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u1023), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, u1025), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + + try testArgs(@Vector(3, i7), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u9), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u15), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u17), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u31), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u33), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u63), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u65), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u127), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u129), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u255), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u257), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u511), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u513), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u1023), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, u1025), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + + try testArgs(@Vector(3, i7), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u9), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u15), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u17), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u31), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u33), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u63), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u65), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u127), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u129), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u255), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u257), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u511), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u513), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u1023), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, u1025), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + + try testArgs(@Vector(3, i7), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u9), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u15), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u17), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u31), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u33), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u63), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u65), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u127), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u129), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u255), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u257), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u511), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u513), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u1023), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, u1025), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + + try testArgs(@Vector(3, i7), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u9), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u15), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u17), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u31), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u33), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u63), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u65), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u127), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u129), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u255), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u257), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u511), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u513), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u1023), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, u1025), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + + try testArgs(@Vector(3, i7), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u9), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u15), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u17), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u31), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u33), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u63), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u65), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u127), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u129), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u255), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u257), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u511), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u513), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u1023), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, u1025), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + + try testArgs(@Vector(3, i7), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u9), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u15), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u17), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u31), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u33), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u63), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u65), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u127), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u129), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u255), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u257), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u511), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u513), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u1023), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, u1025), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + + try testArgs(@Vector(3, i7), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u9), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u15), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u17), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u31), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u33), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u63), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u65), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u127), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u129), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u255), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u257), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u511), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u513), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u1023), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, u1025), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + + try testArgs(@Vector(3, i7), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u9), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u15), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u17), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u31), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u33), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u63), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u65), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u127), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u129), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u255), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u257), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u511), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u513), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u1023), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, u1025), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + + try testArgs(@Vector(3, i7), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u9), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u15), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u17), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u31), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u33), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u63), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u65), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u127), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u129), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u255), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u257), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u511), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u513), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u1023), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, u1025), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + + try testArgs(@Vector(3, i7), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u9), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u15), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u17), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u31), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u33), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u63), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u65), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u127), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u129), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u255), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u257), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u511), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u513), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u1023), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, u1025), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + + try testArgs(@Vector(3, i7), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u9), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u15), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u17), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u31), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u33), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u63), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u65), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u127), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u129), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u255), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u257), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u511), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u513), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u1023), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, u1025), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + + try testArgs(@Vector(3, i7), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u9), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u15), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u17), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u31), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u33), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u63), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u65), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u127), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u129), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u255), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u257), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u511), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u513), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u1023), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, u1025), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + + try testArgs(@Vector(3, i7), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u9), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u15), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u17), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u31), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u33), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u63), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u65), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u127), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u129), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u255), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u257), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u511), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u513), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u1023), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, u1025), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + + try testArgs(@Vector(3, i7), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i9), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i15), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i17), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i31), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i33), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i63), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i65), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i127), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i129), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i255), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i257), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i511), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i513), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i1023), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i1025), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u7), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u9), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u15), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u17), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u31), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u33), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u63), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u65), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u127), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u129), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u255), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u257), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u511), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u513), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u1023), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, u1025), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + } + fn testIntVectors() !void { + try testSameSignednessIntVectors(); + + try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1}); + try testArgs(@Vector(1, i8), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i16), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i32), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i64), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i128), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i256), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i512), @Vector(1, u1), .{1}); + try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1}); + + try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 }); + try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 }); + try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 }); + + try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); + + try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); + + try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); + + try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); + + try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); + + try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); + + try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); + + try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); + + try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); + + try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); + + try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); + + try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); + + try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); + + try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); + + try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); + + try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); + + try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); + + try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); + + try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); + + try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); + + try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); + + try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); + + try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); + + try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); + + try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); + + try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); + + try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); + + try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); + + try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); + + try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); + + try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); + + try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); + + try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); + + try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); + + try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); + + try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); + + try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); + + try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + + try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + + try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + } + fn testFloatVectors() !void { + @setEvalBranchQuota(6_700); + + try testArgs(@Vector(1, f16), @Vector(1, f16), .{ + 1e0, + }); + try testArgs(@Vector(2, f16), @Vector(2, f16), .{ + -inf(f16), -1e-2, + }); + try testArgs(@Vector(4, f16), @Vector(4, f16), .{ + -1e2, 1e-1, fmax(f16), 1e-2, + }); + try testArgs(@Vector(8, f16), @Vector(8, f16), .{ + -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f16), @Vector(16, f16), .{ + -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, + }); + try testArgs(@Vector(32, f16), @Vector(32, f16), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f32), @Vector(1, f16), .{ + 1e0, + }); + try testArgs(@Vector(2, f32), @Vector(2, f16), .{ + -inf(f16), -1e-2, + }); + try testArgs(@Vector(4, f32), @Vector(4, f16), .{ + -1e2, 1e-1, fmax(f16), 1e-2, + }); + try testArgs(@Vector(8, f32), @Vector(8, f16), .{ + -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f32), @Vector(16, f16), .{ + -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, + }); + try testArgs(@Vector(32, f32), @Vector(32, f16), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f64), @Vector(1, f16), .{ + 1e0, + }); + try testArgs(@Vector(2, f64), @Vector(2, f16), .{ + -inf(f16), -1e-2, + }); + try testArgs(@Vector(4, f64), @Vector(4, f16), .{ + -1e2, 1e-1, fmax(f16), 1e-2, + }); + try testArgs(@Vector(8, f64), @Vector(8, f16), .{ + -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f64), @Vector(16, f16), .{ + -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, + }); + try testArgs(@Vector(32, f64), @Vector(32, f16), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f80), @Vector(1, f16), .{ + 1e0, + }); + try testArgs(@Vector(2, f80), @Vector(2, f16), .{ + -inf(f16), -1e-2, + }); + try testArgs(@Vector(4, f80), @Vector(4, f16), .{ + -1e2, 1e-1, fmax(f16), 1e-2, + }); + try testArgs(@Vector(8, f80), @Vector(8, f16), .{ + -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f80), @Vector(16, f16), .{ + -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, + }); + try testArgs(@Vector(32, f80), @Vector(32, f16), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f128), @Vector(1, f16), .{ + 1e0, + }); + try testArgs(@Vector(2, f128), @Vector(2, f16), .{ + -inf(f16), -1e-2, + }); + try testArgs(@Vector(4, f128), @Vector(4, f16), .{ + -1e2, 1e-1, fmax(f16), 1e-2, + }); + try testArgs(@Vector(8, f128), @Vector(8, f16), .{ + -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f128), @Vector(16, f16), .{ + -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, + }); + try testArgs(@Vector(32, f128), @Vector(32, f16), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f16), @Vector(1, f32), .{ + 1e0, + }); + try testArgs(@Vector(2, f16), @Vector(2, f32), .{ + -inf(f32), -1e-2, + }); + try testArgs(@Vector(4, f16), @Vector(4, f32), .{ + -1e2, 1e-1, fmax(f32), 1e-2, + }); + try testArgs(@Vector(8, f16), @Vector(8, f32), .{ + -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f16), @Vector(16, f32), .{ + -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, + }); + try testArgs(@Vector(32, f16), @Vector(32, f32), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f32), @Vector(1, f32), .{ + 1e0, + }); + try testArgs(@Vector(2, f32), @Vector(2, f32), .{ + -inf(f32), -1e-2, + }); + try testArgs(@Vector(4, f32), @Vector(4, f32), .{ + -1e2, 1e-1, fmax(f32), 1e-2, + }); + try testArgs(@Vector(8, f32), @Vector(8, f32), .{ + -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f32), @Vector(16, f32), .{ + -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, + }); + try testArgs(@Vector(32, f32), @Vector(32, f32), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f64), @Vector(1, f32), .{ + 1e0, + }); + try testArgs(@Vector(2, f64), @Vector(2, f32), .{ + -inf(f32), -1e-2, + }); + try testArgs(@Vector(4, f64), @Vector(4, f32), .{ + -1e2, 1e-1, fmax(f32), 1e-2, + }); + try testArgs(@Vector(8, f64), @Vector(8, f32), .{ + -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f64), @Vector(16, f32), .{ + -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, + }); + try testArgs(@Vector(32, f64), @Vector(32, f32), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f80), @Vector(1, f32), .{ + 1e0, + }); + try testArgs(@Vector(2, f80), @Vector(2, f32), .{ + -inf(f32), -1e-2, + }); + try testArgs(@Vector(4, f80), @Vector(4, f32), .{ + -1e2, 1e-1, fmax(f32), 1e-2, + }); + try testArgs(@Vector(8, f80), @Vector(8, f32), .{ + -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f80), @Vector(16, f32), .{ + -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, + }); + try testArgs(@Vector(32, f80), @Vector(32, f32), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f128), @Vector(1, f32), .{ + 1e0, + }); + try testArgs(@Vector(2, f128), @Vector(2, f32), .{ + -inf(f32), -1e-2, + }); + try testArgs(@Vector(4, f128), @Vector(4, f32), .{ + -1e2, 1e-1, fmax(f32), 1e-2, + }); + try testArgs(@Vector(8, f128), @Vector(8, f32), .{ + -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f128), @Vector(16, f32), .{ + -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, + }); + try testArgs(@Vector(32, f128), @Vector(32, f32), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f16), @Vector(1, f64), .{ + 1e0, + }); + try testArgs(@Vector(2, f16), @Vector(2, f64), .{ + -inf(f64), -1e-2, + }); + try testArgs(@Vector(4, f16), @Vector(4, f64), .{ + -1e2, 1e-1, fmax(f64), 1e-2, + }); + try testArgs(@Vector(8, f16), @Vector(8, f64), .{ + -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f16), @Vector(16, f64), .{ + -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, + }); + try testArgs(@Vector(32, f16), @Vector(32, f64), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f32), @Vector(1, f64), .{ + 1e0, + }); + try testArgs(@Vector(2, f32), @Vector(2, f64), .{ + -inf(f64), -1e-2, + }); + try testArgs(@Vector(4, f32), @Vector(4, f64), .{ + -1e2, 1e-1, fmax(f64), 1e-2, + }); + try testArgs(@Vector(8, f32), @Vector(8, f64), .{ + -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f32), @Vector(16, f64), .{ + -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, + }); + try testArgs(@Vector(32, f32), @Vector(32, f64), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f64), @Vector(1, f64), .{ + 1e0, + }); + try testArgs(@Vector(2, f64), @Vector(2, f64), .{ + -inf(f64), -1e-2, + }); + try testArgs(@Vector(4, f64), @Vector(4, f64), .{ + -1e2, 1e-1, fmax(f64), 1e-2, + }); + try testArgs(@Vector(8, f64), @Vector(8, f64), .{ + -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f64), @Vector(16, f64), .{ + -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, + }); + try testArgs(@Vector(32, f64), @Vector(32, f64), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f80), @Vector(1, f64), .{ + 1e0, + }); + try testArgs(@Vector(2, f80), @Vector(2, f64), .{ + -inf(f64), -1e-2, + }); + try testArgs(@Vector(4, f80), @Vector(4, f64), .{ + -1e2, 1e-1, fmax(f64), 1e-2, + }); + try testArgs(@Vector(8, f80), @Vector(8, f64), .{ + -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f80), @Vector(16, f64), .{ + -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, + }); + try testArgs(@Vector(32, f80), @Vector(32, f64), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f128), @Vector(1, f64), .{ + 1e0, + }); + try testArgs(@Vector(2, f128), @Vector(2, f64), .{ + -inf(f64), -1e-2, + }); + try testArgs(@Vector(4, f128), @Vector(4, f64), .{ + -1e2, 1e-1, fmax(f64), 1e-2, + }); + try testArgs(@Vector(8, f128), @Vector(8, f64), .{ + -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f128), @Vector(16, f64), .{ + -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, + }); + try testArgs(@Vector(32, f128), @Vector(32, f64), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f16), @Vector(1, f80), .{ + 1e0, + }); + try testArgs(@Vector(2, f16), @Vector(2, f80), .{ + -inf(f80), -1e-2, + }); + try testArgs(@Vector(4, f16), @Vector(4, f80), .{ + -1e2, 1e-1, fmax(f80), 1e-2, + }); + try testArgs(@Vector(8, f16), @Vector(8, f80), .{ + -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f16), @Vector(16, f80), .{ + -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, + }); + try testArgs(@Vector(32, f16), @Vector(32, f80), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f32), @Vector(1, f80), .{ + 1e0, + }); + try testArgs(@Vector(2, f32), @Vector(2, f80), .{ + -inf(f80), -1e-2, + }); + try testArgs(@Vector(4, f32), @Vector(4, f80), .{ + -1e2, 1e-1, fmax(f80), 1e-2, + }); + try testArgs(@Vector(8, f32), @Vector(8, f80), .{ + -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f32), @Vector(16, f80), .{ + -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, + }); + try testArgs(@Vector(32, f32), @Vector(32, f80), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f64), @Vector(1, f80), .{ + 1e0, + }); + try testArgs(@Vector(2, f64), @Vector(2, f80), .{ + -inf(f80), -1e-2, + }); + try testArgs(@Vector(4, f64), @Vector(4, f80), .{ + -1e2, 1e-1, fmax(f80), 1e-2, + }); + try testArgs(@Vector(8, f64), @Vector(8, f80), .{ + -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f64), @Vector(16, f80), .{ + -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, + }); + try testArgs(@Vector(32, f64), @Vector(32, f80), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f80), @Vector(1, f80), .{ + 1e0, + }); + try testArgs(@Vector(2, f80), @Vector(2, f80), .{ + -inf(f80), -1e-2, + }); + try testArgs(@Vector(4, f80), @Vector(4, f80), .{ + -1e2, 1e-1, fmax(f80), 1e-2, + }); + try testArgs(@Vector(8, f80), @Vector(8, f80), .{ + -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f80), @Vector(16, f80), .{ + -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, + }); + try testArgs(@Vector(32, f80), @Vector(32, f80), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f128), @Vector(1, f80), .{ + 1e0, + }); + try testArgs(@Vector(2, f128), @Vector(2, f80), .{ + -inf(f80), -1e-2, + }); + try testArgs(@Vector(4, f128), @Vector(4, f80), .{ + -1e2, 1e-1, fmax(f80), 1e-2, + }); + try testArgs(@Vector(8, f128), @Vector(8, f80), .{ + -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f128), @Vector(16, f80), .{ + -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, + }); + try testArgs(@Vector(32, f128), @Vector(32, f80), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f16), @Vector(1, f128), .{ + 1e0, + }); + try testArgs(@Vector(2, f16), @Vector(2, f128), .{ + -inf(f128), -1e-2, + }); + try testArgs(@Vector(4, f16), @Vector(4, f128), .{ + -1e2, 1e-1, fmax(f128), 1e-2, + }); + try testArgs(@Vector(8, f16), @Vector(8, f128), .{ + -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f16), @Vector(16, f128), .{ + -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, + }); + try testArgs(@Vector(32, f16), @Vector(32, f128), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f32), @Vector(1, f128), .{ + 1e0, + }); + try testArgs(@Vector(2, f32), @Vector(2, f128), .{ + -inf(f128), -1e-2, + }); + try testArgs(@Vector(4, f32), @Vector(4, f128), .{ + -1e2, 1e-1, fmax(f128), 1e-2, + }); + try testArgs(@Vector(8, f32), @Vector(8, f128), .{ + -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f32), @Vector(16, f128), .{ + -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, + }); + try testArgs(@Vector(32, f32), @Vector(32, f128), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f64), @Vector(1, f128), .{ + 1e0, + }); + try testArgs(@Vector(2, f64), @Vector(2, f128), .{ + -inf(f128), -1e-2, + }); + try testArgs(@Vector(4, f64), @Vector(4, f128), .{ + -1e2, 1e-1, fmax(f128), 1e-2, + }); + try testArgs(@Vector(8, f64), @Vector(8, f128), .{ + -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f64), @Vector(16, f128), .{ + -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, + }); + try testArgs(@Vector(32, f64), @Vector(32, f128), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f80), @Vector(1, f128), .{ + 1e0, + }); + try testArgs(@Vector(2, f80), @Vector(2, f128), .{ + -inf(f128), -1e-2, + }); + try testArgs(@Vector(4, f80), @Vector(4, f128), .{ + -1e2, 1e-1, fmax(f128), 1e-2, + }); + try testArgs(@Vector(8, f80), @Vector(8, f128), .{ + -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f80), @Vector(16, f128), .{ + -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, + }); + try testArgs(@Vector(32, f80), @Vector(32, f128), .{ + -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, + 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), + }); + + try testArgs(@Vector(1, f128), @Vector(1, f128), .{ + 1e0, + }); + try testArgs(@Vector(2, f128), @Vector(2, f128), .{ + -inf(f128), -1e-2, + }); + try testArgs(@Vector(4, f128), @Vector(4, f128), .{ + -1e2, 1e-1, fmax(f128), 1e-2, + }); + try testArgs(@Vector(8, f128), @Vector(8, f128), .{ + -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, + }); + try testArgs(@Vector(16, f128), @Vector(16, f128), .{ + -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, + }); + try testArgs(@Vector(32, f128), @Vector(32, f128), .{ + -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, + 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), + }); + } + fn testIntsFromFloats() !void { + @setEvalBranchQuota(2_600); + + try testArgs(i8, f16, -0x0.8p8); + try testArgs(i8, f16, next(f16, -0x0.8p8, -0.0)); + try testArgs(i8, f16, next(f16, next(f16, -0x0.8p8, -0.0), -0.0)); + try testArgs(i8, f16, -1e2); + try testArgs(i8, f16, -1e1); + try testArgs(i8, f16, -1e0); + try testArgs(i8, f16, -1e-1); + try testArgs(i8, f16, -0.0); + try testArgs(i8, f16, 0.0); + try testArgs(i8, f16, 1e-1); + try testArgs(i8, f16, 1e0); + try testArgs(i8, f16, 1e1); + try testArgs(i8, f16, 1e2); + try testArgs(i8, f16, next(f16, next(f16, 0x0.8p8, 0.0), 0.0)); + try testArgs(i8, f16, next(f16, 0x0.8p8, 0.0)); + + try testArgs(u8, f16, -0.0); + try testArgs(u8, f16, 0.0); + try testArgs(u8, f16, 1e-1); + try testArgs(u8, f16, 1e0); + try testArgs(u8, f16, 1e1); + try testArgs(u8, f16, 1e2); + try testArgs(u8, f16, next(f16, next(f16, 0x1p8, 0.0), 0.0)); + try testArgs(u8, f16, next(f16, 0x1p8, 0.0)); + + try testArgs(i16, f16, -1e4); + try testArgs(i16, f16, -1e3); + try testArgs(i16, f16, -1e2); + try testArgs(i16, f16, -1e1); + try testArgs(i16, f16, -1e0); + try testArgs(i16, f16, -1e-1); + try testArgs(i16, f16, -0.0); + try testArgs(i16, f16, 0.0); + try testArgs(i16, f16, 1e-1); + try testArgs(i16, f16, 1e0); + try testArgs(i16, f16, 1e1); + try testArgs(i16, f16, 1e2); + try testArgs(i16, f16, 1e3); + try testArgs(i16, f16, 1e4); + try testArgs(i16, f16, next(f16, next(f16, 0x0.8p16, 0.0), 0.0)); + try testArgs(i16, f16, next(f16, 0x0.8p16, 0.0)); + + try testArgs(u16, f16, -0.0); + try testArgs(u16, f16, 0.0); + try testArgs(u16, f16, 1e-1); + try testArgs(u16, f16, 1e0); + try testArgs(u16, f16, 1e1); + try testArgs(u16, f16, 1e2); + try testArgs(u16, f16, 1e3); + try testArgs(u16, f16, 1e4); + try testArgs(u16, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(u16, f16, next(f16, fmax(f16), 0.0)); + try testArgs(u16, f16, fmax(f16)); + + try testArgs(i32, f16, -fmax(f16)); + try testArgs(i32, f16, next(f16, -fmax(f16), -0.0)); + try testArgs(i32, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); + try testArgs(i32, f16, -1e4); + try testArgs(i32, f16, -1e3); + try testArgs(i32, f16, -1e2); + try testArgs(i32, f16, -1e1); + try testArgs(i32, f16, -1e0); + try testArgs(i32, f16, -1e-1); + try testArgs(i32, f16, -0.0); + try testArgs(i32, f16, 0.0); + try testArgs(i32, f16, 1e-1); + try testArgs(i32, f16, 1e0); + try testArgs(i32, f16, 1e1); + try testArgs(i32, f16, 1e2); + try testArgs(i32, f16, 1e3); + try testArgs(i32, f16, 1e4); + try testArgs(i32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(i32, f16, next(f16, fmax(f16), 0.0)); + try testArgs(i32, f16, fmax(f16)); + + try testArgs(u32, f16, -0.0); + try testArgs(u32, f16, 0.0); + try testArgs(u32, f16, 1e-1); + try testArgs(u32, f16, 1e0); + try testArgs(u32, f16, 1e1); + try testArgs(u32, f16, 1e2); + try testArgs(u32, f16, 1e3); + try testArgs(u32, f16, 1e4); + try testArgs(u32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(u32, f16, next(f16, fmax(f16), 0.0)); + try testArgs(u32, f16, fmax(f16)); + + try testArgs(i64, f16, -fmax(f16)); + try testArgs(i64, f16, next(f16, -fmax(f16), -0.0)); + try testArgs(i64, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); + try testArgs(i64, f16, -1e4); + try testArgs(i64, f16, -1e3); + try testArgs(i64, f16, -1e2); + try testArgs(i64, f16, -1e1); + try testArgs(i64, f16, -1e0); + try testArgs(i64, f16, -1e-1); + try testArgs(i64, f16, -0.0); + try testArgs(i64, f16, 0.0); + try testArgs(i64, f16, 1e-1); + try testArgs(i64, f16, 1e0); + try testArgs(i64, f16, 1e1); + try testArgs(i64, f16, 1e2); + try testArgs(i64, f16, 1e3); + try testArgs(i64, f16, 1e4); + try testArgs(i64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(i64, f16, next(f16, fmax(f16), 0.0)); + try testArgs(i64, f16, fmax(f16)); + + try testArgs(u64, f16, -0.0); + try testArgs(u64, f16, 0.0); + try testArgs(u64, f16, 1e-1); + try testArgs(u64, f16, 1e0); + try testArgs(u64, f16, 1e1); + try testArgs(u64, f16, 1e2); + try testArgs(u64, f16, 1e3); + try testArgs(u64, f16, 1e4); + try testArgs(u64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(u64, f16, next(f16, fmax(f16), 0.0)); + try testArgs(u64, f16, fmax(f16)); + + try testArgs(i128, f16, -fmax(f16)); + try testArgs(i128, f16, next(f16, -fmax(f16), -0.0)); + try testArgs(i128, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); + try testArgs(i128, f16, -1e4); + try testArgs(i128, f16, -1e3); + try testArgs(i128, f16, -1e2); + try testArgs(i128, f16, -1e1); + try testArgs(i128, f16, -1e0); + try testArgs(i128, f16, -1e-1); + try testArgs(i128, f16, -0.0); + try testArgs(i128, f16, 0.0); + try testArgs(i128, f16, 1e-1); + try testArgs(i128, f16, 1e0); + try testArgs(i128, f16, 1e1); + try testArgs(i128, f16, 1e2); + try testArgs(i128, f16, 1e3); + try testArgs(i128, f16, 1e4); + try testArgs(i128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(i128, f16, next(f16, fmax(f16), 0.0)); + try testArgs(i128, f16, fmax(f16)); + + try testArgs(u128, f16, -0.0); + try testArgs(u128, f16, 0.0); + try testArgs(u128, f16, 1e-1); + try testArgs(u128, f16, 1e0); + try testArgs(u128, f16, 1e1); + try testArgs(u128, f16, 1e2); + try testArgs(u128, f16, 1e3); + try testArgs(u128, f16, 1e4); + try testArgs(u128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(u128, f16, next(f16, fmax(f16), 0.0)); + try testArgs(u128, f16, fmax(f16)); + + try testArgs(i256, f16, -fmax(f16)); + try testArgs(i256, f16, next(f16, -fmax(f16), -0.0)); + try testArgs(i256, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); + try testArgs(i256, f16, -1e4); + try testArgs(i256, f16, -1e3); + try testArgs(i256, f16, -1e2); + try testArgs(i256, f16, -1e1); + try testArgs(i256, f16, -1e0); + try testArgs(i256, f16, -1e-1); + try testArgs(i256, f16, -0.0); + try testArgs(i256, f16, 0.0); + try testArgs(i256, f16, 1e-1); + try testArgs(i256, f16, 1e0); + try testArgs(i256, f16, 1e1); + try testArgs(i256, f16, 1e2); + try testArgs(i256, f16, 1e3); + try testArgs(i256, f16, 1e4); + try testArgs(i256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(i256, f16, next(f16, fmax(f16), 0.0)); + try testArgs(i256, f16, fmax(f16)); + + try testArgs(u256, f16, -0.0); + try testArgs(u256, f16, 0.0); + try testArgs(u256, f16, 1e-1); + try testArgs(u256, f16, 1e0); + try testArgs(u256, f16, 1e1); + try testArgs(u256, f16, 1e2); + try testArgs(u256, f16, 1e3); + try testArgs(u256, f16, 1e4); + try testArgs(u256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); + try testArgs(u256, f16, next(f16, fmax(f16), 0.0)); + try testArgs(u256, f16, fmax(f16)); + + try testArgs(i8, f32, -0x0.8p8); + try testArgs(i8, f32, next(f32, -0x0.8p8, -0.0)); + try testArgs(i8, f32, next(f32, next(f32, -0x0.8p8, -0.0), -0.0)); + try testArgs(i8, f32, -1e2); + try testArgs(i8, f32, -1e1); + try testArgs(i8, f32, -1e0); + try testArgs(i8, f32, -1e-1); + try testArgs(i8, f32, -0.0); + try testArgs(i8, f32, 0.0); + try testArgs(i8, f32, 1e-1); + try testArgs(i8, f32, 1e0); + try testArgs(i8, f32, 1e1); + try testArgs(i8, f32, 1e2); + try testArgs(i8, f32, next(f32, next(f32, 0x0.8p8, 0.0), 0.0)); + try testArgs(i8, f32, next(f32, 0x0.8p8, 0.0)); + + try testArgs(u8, f32, -0.0); + try testArgs(u8, f32, 0.0); + try testArgs(u8, f32, 1e-1); + try testArgs(u8, f32, 1e0); + try testArgs(u8, f32, 1e1); + try testArgs(u8, f32, 1e2); + try testArgs(u8, f32, next(f32, next(f32, 0x1p8, 0.0), 0.0)); + try testArgs(u8, f32, next(f32, 0x1p8, 0.0)); + + try testArgs(i16, f32, -0x0.8p16); + try testArgs(i16, f32, next(f32, -0x0.8p16, -0.0)); + try testArgs(i16, f32, next(f32, next(f32, -0x0.8p16, -0.0), -0.0)); + try testArgs(i16, f32, -1e4); + try testArgs(i16, f32, -1e3); + try testArgs(i16, f32, -1e2); + try testArgs(i16, f32, -1e1); + try testArgs(i16, f32, -1e0); + try testArgs(i16, f32, -1e-1); + try testArgs(i16, f32, -0.0); + try testArgs(i16, f32, 0.0); + try testArgs(i16, f32, 1e-1); + try testArgs(i16, f32, 1e0); + try testArgs(i16, f32, 1e1); + try testArgs(i16, f32, 1e2); + try testArgs(i16, f32, 1e3); + try testArgs(i16, f32, 1e4); + try testArgs(i16, f32, next(f32, next(f32, 0x0.8p16, 0.0), 0.0)); + try testArgs(i16, f32, next(f32, 0x0.8p16, 0.0)); + + try testArgs(u16, f32, -0.0); + try testArgs(u16, f32, 0.0); + try testArgs(u16, f32, 1e-1); + try testArgs(u16, f32, 1e0); + try testArgs(u16, f32, 1e1); + try testArgs(u16, f32, 1e2); + try testArgs(u16, f32, 1e3); + try testArgs(u16, f32, 1e4); + try testArgs(u16, f32, next(f32, next(f32, 0x1p16, 0.0), 0.0)); + try testArgs(u16, f32, next(f32, 0x1p16, 0.0)); + + try testArgs(i32, f32, -0x0.8p32); + try testArgs(i32, f32, next(f32, -0x0.8p32, -0.0)); + try testArgs(i32, f32, next(f32, next(f32, -0x0.8p32, -0.0), -0.0)); + try testArgs(i32, f32, -1e9); + try testArgs(i32, f32, -1e8); + try testArgs(i32, f32, -1e7); + try testArgs(i32, f32, -1e6); + try testArgs(i32, f32, -1e5); + try testArgs(i32, f32, -1e4); + try testArgs(i32, f32, -1e3); + try testArgs(i32, f32, -1e2); + try testArgs(i32, f32, -1e1); + try testArgs(i32, f32, -1e0); + try testArgs(i32, f32, -1e-1); + try testArgs(i32, f32, -0.0); + try testArgs(i32, f32, 0.0); + try testArgs(i32, f32, 1e-1); + try testArgs(i32, f32, 1e0); + try testArgs(i32, f32, 1e1); + try testArgs(i32, f32, 1e2); + try testArgs(i32, f32, 1e3); + try testArgs(i32, f32, 1e4); + try testArgs(i32, f32, 1e5); + try testArgs(i32, f32, 1e6); + try testArgs(i32, f32, 1e7); + try testArgs(i32, f32, 1e8); + try testArgs(i32, f32, 1e9); + try testArgs(i32, f32, next(f32, next(f32, 0x0.8p32, 0.0), 0.0)); + try testArgs(i32, f32, next(f32, 0x0.8p32, 0.0)); + + try testArgs(u32, f32, -0.0); + try testArgs(u32, f32, 0.0); + try testArgs(u32, f32, 1e-1); + try testArgs(u32, f32, 1e0); + try testArgs(u32, f32, 1e1); + try testArgs(u32, f32, 1e2); + try testArgs(u32, f32, 1e3); + try testArgs(u32, f32, 1e4); + try testArgs(u32, f32, 1e5); + try testArgs(u32, f32, 1e6); + try testArgs(u32, f32, 1e7); + try testArgs(u32, f32, 1e8); + try testArgs(u32, f32, 1e9); + try testArgs(u32, f32, next(f32, next(f32, 0x1p32, 0.0), 0.0)); + try testArgs(u32, f32, next(f32, 0x1p32, 0.0)); + + try testArgs(i64, f32, -0x0.8p64); + try testArgs(i64, f32, next(f32, -0x0.8p64, -0.0)); + try testArgs(i64, f32, next(f32, next(f32, -0x0.8p64, -0.0), -0.0)); + try testArgs(i64, f32, -1e18); + try testArgs(i64, f32, -1e16); + try testArgs(i64, f32, -1e14); + try testArgs(i64, f32, -1e12); + try testArgs(i64, f32, -1e10); + try testArgs(i64, f32, -1e8); + try testArgs(i64, f32, -1e6); + try testArgs(i64, f32, -1e4); + try testArgs(i64, f32, -1e2); + try testArgs(i64, f32, -1e0); + try testArgs(i64, f32, -1e-1); + try testArgs(i64, f32, -0.0); + try testArgs(i64, f32, 0.0); + try testArgs(i64, f32, 1e-1); + try testArgs(i64, f32, 1e0); + try testArgs(i64, f32, 1e2); + try testArgs(i64, f32, 1e4); + try testArgs(i64, f32, 1e6); + try testArgs(i64, f32, 1e8); + try testArgs(i64, f32, 1e10); + try testArgs(i64, f32, 1e12); + try testArgs(i64, f32, 1e14); + try testArgs(i64, f32, 1e16); + try testArgs(i64, f32, 1e18); + try testArgs(i64, f32, next(f32, next(f32, 0x0.8p64, 0.0), 0.0)); + try testArgs(i64, f32, next(f32, 0x0.8p64, 0.0)); + + try testArgs(u64, f32, -0.0); + try testArgs(u64, f32, 0.0); + try testArgs(u64, f32, 1e-1); + try testArgs(u64, f32, 1e0); + try testArgs(u64, f32, 1e2); + try testArgs(u64, f32, 1e4); + try testArgs(u64, f32, 1e6); + try testArgs(u64, f32, 1e8); + try testArgs(u64, f32, 1e10); + try testArgs(u64, f32, 1e12); + try testArgs(u64, f32, 1e14); + try testArgs(u64, f32, 1e16); + try testArgs(u64, f32, 1e18); + try testArgs(u64, f32, next(f32, next(f32, 0x1p64, 0.0), 0.0)); + try testArgs(u64, f32, next(f32, 0x1p64, 0.0)); + + try testArgs(i128, f32, -0x0.8p128); + try testArgs(i128, f32, next(f32, -0x0.8p128, -0.0)); + try testArgs(i128, f32, next(f32, next(f32, -0x0.8p128, -0.0), -0.0)); + try testArgs(i128, f32, -1e38); + try testArgs(i128, f32, -1e34); + try testArgs(i128, f32, -1e30); + try testArgs(i128, f32, -1e26); + try testArgs(i128, f32, -1e22); + try testArgs(i128, f32, -1e18); + try testArgs(i128, f32, -1e14); + try testArgs(i128, f32, -1e10); + try testArgs(i128, f32, -1e6); + try testArgs(i128, f32, -1e2); + try testArgs(i128, f32, -1e0); + try testArgs(i128, f32, -1e-1); + try testArgs(i128, f32, -0.0); + try testArgs(i128, f32, 0.0); + try testArgs(i128, f32, 1e-1); + try testArgs(i128, f32, 1e0); + try testArgs(i128, f32, 1e2); + try testArgs(i128, f32, 1e6); + try testArgs(i128, f32, 1e10); + try testArgs(i128, f32, 1e14); + try testArgs(i128, f32, 1e18); + try testArgs(i128, f32, 1e22); + try testArgs(i128, f32, 1e26); + try testArgs(i128, f32, 1e30); + try testArgs(i128, f32, 1e34); + try testArgs(i128, f32, 1e38); + try testArgs(i128, f32, next(f32, next(f32, 0x0.8p128, 0.0), 0.0)); + try testArgs(i128, f32, next(f32, 0x0.8p128, 0.0)); + + try testArgs(u128, f32, -0.0); + try testArgs(u128, f32, 0.0); + try testArgs(u128, f32, 1e-1); + try testArgs(u128, f32, 1e0); + try testArgs(u128, f32, 1e2); + try testArgs(u128, f32, 1e6); + try testArgs(u128, f32, 1e10); + try testArgs(u128, f32, 1e14); + try testArgs(u128, f32, 1e18); + try testArgs(u128, f32, 1e22); + try testArgs(u128, f32, 1e26); + try testArgs(u128, f32, 1e30); + try testArgs(u128, f32, 1e34); + try testArgs(u128, f32, 1e38); + try testArgs(u128, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); + try testArgs(u128, f32, next(f32, fmax(f32), 0.0)); + + try testArgs(i256, f32, -fmax(f32)); + try testArgs(i256, f32, next(f32, -fmax(f32), -0.0)); + try testArgs(i256, f32, next(f32, next(f32, -fmax(f32), -0.0), -0.0)); + try testArgs(i256, f32, -1e38); + try testArgs(i256, f32, -1e34); + try testArgs(i256, f32, -1e30); + try testArgs(i256, f32, -1e26); + try testArgs(i256, f32, -1e22); + try testArgs(i256, f32, -1e18); + try testArgs(i256, f32, -1e14); + try testArgs(i256, f32, -1e10); + try testArgs(i256, f32, -1e6); + try testArgs(i256, f32, -1e2); + try testArgs(i256, f32, -1e0); + try testArgs(i256, f32, -1e-1); + try testArgs(i256, f32, -0.0); + try testArgs(i256, f32, 0.0); + try testArgs(i256, f32, 1e-1); + try testArgs(i256, f32, 1e0); + try testArgs(i256, f32, 1e2); + try testArgs(i256, f32, 1e6); + try testArgs(i256, f32, 1e10); + try testArgs(i256, f32, 1e14); + try testArgs(i256, f32, 1e18); + try testArgs(i256, f32, 1e22); + try testArgs(i256, f32, 1e26); + try testArgs(i256, f32, 1e30); + try testArgs(i256, f32, 1e34); + try testArgs(i256, f32, 1e38); + try testArgs(i256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); + try testArgs(i256, f32, next(f32, fmax(f32), 0.0)); + + try testArgs(u256, f32, -0.0); + try testArgs(u256, f32, 0.0); + try testArgs(u256, f32, 1e-1); + try testArgs(u256, f32, 1e0); + try testArgs(u256, f32, 1e2); + try testArgs(u256, f32, 1e6); + try testArgs(u256, f32, 1e10); + try testArgs(u256, f32, 1e14); + try testArgs(u256, f32, 1e18); + try testArgs(u256, f32, 1e22); + try testArgs(u256, f32, 1e26); + try testArgs(u256, f32, 1e30); + try testArgs(u256, f32, 1e34); + try testArgs(u256, f32, 1e38); + try testArgs(u256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); + try testArgs(u256, f32, next(f32, fmax(f32), 0.0)); + + try testArgs(i8, f64, -0x0.8p8); + try testArgs(i8, f64, next(f64, -0x0.8p8, -0.0)); + try testArgs(i8, f64, next(f64, next(f64, -0x0.8p8, -0.0), -0.0)); + try testArgs(i8, f64, -1e2); + try testArgs(i8, f64, -1e1); + try testArgs(i8, f64, -1e0); + try testArgs(i8, f64, -1e-1); + try testArgs(i8, f64, -0.0); + try testArgs(i8, f64, 0.0); + try testArgs(i8, f64, 1e-1); + try testArgs(i8, f64, 1e0); + try testArgs(i8, f64, 1e1); + try testArgs(i8, f64, 1e2); + try testArgs(i8, f64, next(f64, next(f64, 0x0.8p8, 0.0), 0.0)); + try testArgs(i8, f64, next(f64, 0x0.8p8, 0.0)); + + try testArgs(u8, f64, -0.0); + try testArgs(u8, f64, 0.0); + try testArgs(u8, f64, 1e-1); + try testArgs(u8, f64, 1e0); + try testArgs(u8, f64, 1e1); + try testArgs(u8, f64, 1e2); + try testArgs(u8, f64, next(f64, next(f64, 0x1p8, 0.0), 0.0)); + try testArgs(u8, f64, next(f64, 0x1p8, 0.0)); + + try testArgs(i16, f64, -0x0.8p16); + try testArgs(i16, f64, next(f64, -0x0.8p16, -0.0)); + try testArgs(i16, f64, next(f64, next(f64, -0x0.8p16, -0.0), -0.0)); + try testArgs(i16, f64, -1e4); + try testArgs(i16, f64, -1e3); + try testArgs(i16, f64, -1e2); + try testArgs(i16, f64, -1e1); + try testArgs(i16, f64, -1e0); + try testArgs(i16, f64, -1e-1); + try testArgs(i16, f64, -0.0); + try testArgs(i16, f64, 0.0); + try testArgs(i16, f64, 1e-1); + try testArgs(i16, f64, 1e0); + try testArgs(i16, f64, 1e1); + try testArgs(i16, f64, 1e2); + try testArgs(i16, f64, 1e3); + try testArgs(i16, f64, 1e4); + try testArgs(i16, f64, next(f64, next(f64, 0x0.8p16, 0.0), 0.0)); + try testArgs(i16, f64, next(f64, 0x0.8p16, 0.0)); + + try testArgs(u16, f64, -0.0); + try testArgs(u16, f64, 0.0); + try testArgs(u16, f64, 1e-1); + try testArgs(u16, f64, 1e0); + try testArgs(u16, f64, 1e1); + try testArgs(u16, f64, 1e2); + try testArgs(u16, f64, 1e3); + try testArgs(u16, f64, 1e4); + try testArgs(u16, f64, next(f64, next(f64, 0x1p16, 0.0), 0.0)); + try testArgs(u16, f64, next(f64, 0x1p16, 0.0)); + + try testArgs(i32, f64, -0x0.8p32); + try testArgs(i32, f64, next(f64, -0x0.8p32, -0.0)); + try testArgs(i32, f64, next(f64, next(f64, -0x0.8p32, -0.0), -0.0)); + try testArgs(i32, f64, -1e9); + try testArgs(i32, f64, -1e8); + try testArgs(i32, f64, -1e7); + try testArgs(i32, f64, -1e6); + try testArgs(i32, f64, -1e5); + try testArgs(i32, f64, -1e4); + try testArgs(i32, f64, -1e3); + try testArgs(i32, f64, -1e2); + try testArgs(i32, f64, -1e1); + try testArgs(i32, f64, -1e0); + try testArgs(i32, f64, -1e-1); + try testArgs(i32, f64, -0.0); + try testArgs(i32, f64, 0.0); + try testArgs(i32, f64, 1e-1); + try testArgs(i32, f64, 1e0); + try testArgs(i32, f64, 1e1); + try testArgs(i32, f64, 1e2); + try testArgs(i32, f64, 1e3); + try testArgs(i32, f64, 1e4); + try testArgs(i32, f64, 1e5); + try testArgs(i32, f64, 1e6); + try testArgs(i32, f64, 1e7); + try testArgs(i32, f64, 1e8); + try testArgs(i32, f64, 1e9); + try testArgs(i32, f64, next(f64, next(f64, 0x0.8p32, 0.0), 0.0)); + try testArgs(i32, f64, next(f64, 0x0.8p32, 0.0)); + + try testArgs(u32, f64, -0.0); + try testArgs(u32, f64, 0.0); + try testArgs(u32, f64, 1e-1); + try testArgs(u32, f64, 1e0); + try testArgs(u32, f64, 1e1); + try testArgs(u32, f64, 1e2); + try testArgs(u32, f64, 1e3); + try testArgs(u32, f64, 1e4); + try testArgs(u32, f64, 1e5); + try testArgs(u32, f64, 1e6); + try testArgs(u32, f64, 1e7); + try testArgs(u32, f64, 1e8); + try testArgs(u32, f64, 1e9); + try testArgs(u32, f64, next(f64, next(f64, 0x1p32, 0.0), 0.0)); + try testArgs(u32, f64, next(f64, 0x1p32, 0.0)); + + try testArgs(i64, f64, -0x0.8p64); + try testArgs(i64, f64, next(f64, -0x0.8p64, -0.0)); + try testArgs(i64, f64, next(f64, next(f64, -0x0.8p64, -0.0), -0.0)); + try testArgs(i64, f64, -1e18); + try testArgs(i64, f64, -1e16); + try testArgs(i64, f64, -1e14); + try testArgs(i64, f64, -1e12); + try testArgs(i64, f64, -1e10); + try testArgs(i64, f64, -1e8); + try testArgs(i64, f64, -1e6); + try testArgs(i64, f64, -1e4); + try testArgs(i64, f64, -1e2); + try testArgs(i64, f64, -1e0); + try testArgs(i64, f64, -1e-1); + try testArgs(i64, f64, -0.0); + try testArgs(i64, f64, 0.0); + try testArgs(i64, f64, 1e-1); + try testArgs(i64, f64, 1e0); + try testArgs(i64, f64, 1e2); + try testArgs(i64, f64, 1e4); + try testArgs(i64, f64, 1e6); + try testArgs(i64, f64, 1e8); + try testArgs(i64, f64, 1e10); + try testArgs(i64, f64, 1e12); + try testArgs(i64, f64, 1e14); + try testArgs(i64, f64, 1e16); + try testArgs(i64, f64, 1e18); + try testArgs(i64, f64, next(f64, next(f64, 0x0.8p64, 0.0), 0.0)); + try testArgs(i64, f64, next(f64, 0x0.8p64, 0.0)); + + try testArgs(u64, f64, -0.0); + try testArgs(u64, f64, 0.0); + try testArgs(u64, f64, 1e-1); + try testArgs(u64, f64, 1e0); + try testArgs(u64, f64, 1e2); + try testArgs(u64, f64, 1e4); + try testArgs(u64, f64, 1e6); + try testArgs(u64, f64, 1e8); + try testArgs(u64, f64, 1e10); + try testArgs(u64, f64, 1e12); + try testArgs(u64, f64, 1e14); + try testArgs(u64, f64, 1e16); + try testArgs(u64, f64, 1e18); + try testArgs(u64, f64, next(f64, next(f64, 0x1p64, 0.0), 0.0)); + try testArgs(u64, f64, next(f64, 0x1p64, 0.0)); + + try testArgs(i128, f64, -0x0.8p128); + try testArgs(i128, f64, next(f64, -0x0.8p128, -0.0)); + try testArgs(i128, f64, next(f64, next(f64, -0x0.8p128, -0.0), -0.0)); + try testArgs(i128, f64, -1e38); + try testArgs(i128, f64, -1e34); + try testArgs(i128, f64, -1e30); + try testArgs(i128, f64, -1e26); + try testArgs(i128, f64, -1e22); + try testArgs(i128, f64, -1e18); + try testArgs(i128, f64, -1e14); + try testArgs(i128, f64, -1e10); + try testArgs(i128, f64, -1e6); + try testArgs(i128, f64, -1e2); + try testArgs(i128, f64, -1e0); + try testArgs(i128, f64, -1e-1); + try testArgs(i128, f64, -0.0); + try testArgs(i128, f64, 0.0); + try testArgs(i128, f64, 1e-1); + try testArgs(i128, f64, 1e0); + try testArgs(i128, f64, 1e2); + try testArgs(i128, f64, 1e6); + try testArgs(i128, f64, 1e10); + try testArgs(i128, f64, 1e14); + try testArgs(i128, f64, 1e18); + try testArgs(i128, f64, 1e22); + try testArgs(i128, f64, 1e26); + try testArgs(i128, f64, 1e30); + try testArgs(i128, f64, 1e34); + try testArgs(i128, f64, 1e38); + try testArgs(i128, f64, next(f64, next(f64, 0x0.8p128, 0.0), 0.0)); + try testArgs(i128, f64, next(f64, 0x0.8p128, 0.0)); + + try testArgs(u128, f64, -0.0); + try testArgs(u128, f64, 0.0); + try testArgs(u128, f64, 1e-1); + try testArgs(u128, f64, 1e0); + try testArgs(u128, f64, 1e2); + try testArgs(u128, f64, 1e6); + try testArgs(u128, f64, 1e10); + try testArgs(u128, f64, 1e14); + try testArgs(u128, f64, 1e18); + try testArgs(u128, f64, 1e22); + try testArgs(u128, f64, 1e26); + try testArgs(u128, f64, 1e30); + try testArgs(u128, f64, 1e34); + try testArgs(u128, f64, 1e38); + try testArgs(u128, f64, next(f64, next(f64, 0x1p128, 0.0), 0.0)); + try testArgs(u128, f64, next(f64, 0x1p128, 0.0)); + + try testArgs(i256, f64, -0x0.8p256); + try testArgs(i256, f64, next(f64, -0x0.8p256, -0.0)); + try testArgs(i256, f64, next(f64, next(f64, -0x0.8p256, -0.0), -0.0)); + try testArgs(i256, f64, -1e76); + try testArgs(i256, f64, -1e69); + try testArgs(i256, f64, -1e62); + try testArgs(i256, f64, -1e55); + try testArgs(i256, f64, -1e48); + try testArgs(i256, f64, -1e41); + try testArgs(i256, f64, -1e34); + try testArgs(i256, f64, -1e27); + try testArgs(i256, f64, -1e20); + try testArgs(i256, f64, -1e13); + try testArgs(i256, f64, -1e6); + try testArgs(i256, f64, -1e0); + try testArgs(i256, f64, -1e-1); + try testArgs(i256, f64, -0.0); + try testArgs(i256, f64, 0.0); + try testArgs(i256, f64, 1e-1); + try testArgs(i256, f64, 1e0); + try testArgs(i256, f64, 1e6); + try testArgs(i256, f64, 1e13); + try testArgs(i256, f64, 1e20); + try testArgs(i256, f64, 1e27); + try testArgs(i256, f64, 1e34); + try testArgs(i256, f64, 1e41); + try testArgs(i256, f64, 1e48); + try testArgs(i256, f64, 1e55); + try testArgs(i256, f64, 1e62); + try testArgs(i256, f64, 1e69); + try testArgs(i256, f64, 1e76); + try testArgs(i256, f64, next(f64, next(f64, 0x0.8p256, 0.0), 0.0)); + try testArgs(i256, f64, next(f64, 0x0.8p256, 0.0)); + + try testArgs(u256, f64, -0.0); + try testArgs(u256, f64, 0.0); + try testArgs(u256, f64, 1e-1); + try testArgs(u256, f64, 1e0); + try testArgs(u256, f64, 1e7); + try testArgs(u256, f64, 1e14); + try testArgs(u256, f64, 1e21); + try testArgs(u256, f64, 1e28); + try testArgs(u256, f64, 1e35); + try testArgs(u256, f64, 1e42); + try testArgs(u256, f64, 1e49); + try testArgs(u256, f64, 1e56); + try testArgs(u256, f64, 1e63); + try testArgs(u256, f64, 1e70); + try testArgs(u256, f64, 1e77); + try testArgs(u256, f64, next(f64, next(f64, 0x1p256, 0.0), 0.0)); + try testArgs(u256, f64, next(f64, 0x1p256, 0.0)); + + try testArgs(i8, f80, -0x0.8p8); + try testArgs(i8, f80, next(f80, -0x0.8p8, -0.0)); + try testArgs(i8, f80, next(f80, next(f80, -0x0.8p8, -0.0), -0.0)); + try testArgs(i8, f80, -1e2); + try testArgs(i8, f80, -1e1); + try testArgs(i8, f80, -1e0); + try testArgs(i8, f80, -1e-1); + try testArgs(i8, f80, -0.0); + try testArgs(i8, f80, 0.0); + try testArgs(i8, f80, 1e-1); + try testArgs(i8, f80, 1e0); + try testArgs(i8, f80, 1e1); + try testArgs(i8, f80, 1e2); + try testArgs(i8, f80, next(f80, next(f80, 0x0.8p8, 0.0), 0.0)); + try testArgs(i8, f80, next(f80, 0x0.8p8, 0.0)); + + try testArgs(u8, f80, -0.0); + try testArgs(u8, f80, 0.0); + try testArgs(u8, f80, 1e-1); + try testArgs(u8, f80, 1e0); + try testArgs(u8, f80, 1e1); + try testArgs(u8, f80, 1e2); + try testArgs(u8, f80, next(f80, next(f80, 0x1p8, 0.0), 0.0)); + try testArgs(u8, f80, next(f80, 0x1p8, 0.0)); + + try testArgs(i16, f80, -0x0.8p16); + try testArgs(i16, f80, next(f80, -0x0.8p16, -0.0)); + try testArgs(i16, f80, next(f80, next(f80, -0x0.8p16, -0.0), -0.0)); + try testArgs(i16, f80, -1e4); + try testArgs(i16, f80, -1e3); + try testArgs(i16, f80, -1e2); + try testArgs(i16, f80, -1e1); + try testArgs(i16, f80, -1e0); + try testArgs(i16, f80, -1e-1); + try testArgs(i16, f80, -0.0); + try testArgs(i16, f80, 0.0); + try testArgs(i16, f80, 1e-1); + try testArgs(i16, f80, 1e0); + try testArgs(i16, f80, 1e1); + try testArgs(i16, f80, 1e2); + try testArgs(i16, f80, 1e3); + try testArgs(i16, f80, 1e4); + try testArgs(i16, f80, next(f80, next(f80, 0x0.8p16, 0.0), 0.0)); + try testArgs(i16, f80, next(f80, 0x0.8p16, 0.0)); + + try testArgs(u16, f80, -0.0); + try testArgs(u16, f80, 0.0); + try testArgs(u16, f80, 1e-1); + try testArgs(u16, f80, 1e0); + try testArgs(u16, f80, 1e1); + try testArgs(u16, f80, 1e2); + try testArgs(u16, f80, 1e3); + try testArgs(u16, f80, 1e4); + try testArgs(u16, f80, next(f80, next(f80, 0x1p16, 0.0), 0.0)); + try testArgs(u16, f80, next(f80, 0x1p16, 0.0)); + + try testArgs(i32, f80, -0x0.8p32); + try testArgs(i32, f80, next(f80, -0x0.8p32, -0.0)); + try testArgs(i32, f80, next(f80, next(f80, -0x0.8p32, -0.0), -0.0)); + try testArgs(i32, f80, -1e9); + try testArgs(i32, f80, -1e8); + try testArgs(i32, f80, -1e7); + try testArgs(i32, f80, -1e6); + try testArgs(i32, f80, -1e5); + try testArgs(i32, f80, -1e4); + try testArgs(i32, f80, -1e3); + try testArgs(i32, f80, -1e2); + try testArgs(i32, f80, -1e1); + try testArgs(i32, f80, -1e0); + try testArgs(i32, f80, -1e-1); + try testArgs(i32, f80, -0.0); + try testArgs(i32, f80, 0.0); + try testArgs(i32, f80, 1e-1); + try testArgs(i32, f80, 1e0); + try testArgs(i32, f80, 1e1); + try testArgs(i32, f80, 1e2); + try testArgs(i32, f80, 1e3); + try testArgs(i32, f80, 1e4); + try testArgs(i32, f80, 1e5); + try testArgs(i32, f80, 1e6); + try testArgs(i32, f80, 1e7); + try testArgs(i32, f80, 1e8); + try testArgs(i32, f80, 1e9); + try testArgs(i32, f80, next(f80, next(f80, 0x0.8p32, 0.0), 0.0)); + try testArgs(i32, f80, next(f80, 0x0.8p32, 0.0)); + + try testArgs(u32, f80, -0.0); + try testArgs(u32, f80, 0.0); + try testArgs(u32, f80, 1e-1); + try testArgs(u32, f80, 1e0); + try testArgs(u32, f80, 1e1); + try testArgs(u32, f80, 1e2); + try testArgs(u32, f80, 1e3); + try testArgs(u32, f80, 1e4); + try testArgs(u32, f80, 1e5); + try testArgs(u32, f80, 1e6); + try testArgs(u32, f80, 1e7); + try testArgs(u32, f80, 1e8); + try testArgs(u32, f80, 1e9); + try testArgs(u32, f80, next(f80, next(f80, 0x1p32, 0.0), 0.0)); + try testArgs(u32, f80, next(f80, 0x1p32, 0.0)); + + try testArgs(i64, f80, -0x0.8p64); + try testArgs(i64, f80, next(f80, -0x0.8p64, -0.0)); + try testArgs(i64, f80, next(f80, next(f80, -0x0.8p64, -0.0), -0.0)); + try testArgs(i64, f80, -1e18); + try testArgs(i64, f80, -1e16); + try testArgs(i64, f80, -1e14); + try testArgs(i64, f80, -1e12); + try testArgs(i64, f80, -1e10); + try testArgs(i64, f80, -1e8); + try testArgs(i64, f80, -1e6); + try testArgs(i64, f80, -1e4); + try testArgs(i64, f80, -1e2); + try testArgs(i64, f80, -1e0); + try testArgs(i64, f80, -1e-1); + try testArgs(i64, f80, -0.0); + try testArgs(i64, f80, 0.0); + try testArgs(i64, f80, 1e-1); + try testArgs(i64, f80, 1e0); + try testArgs(i64, f80, 1e2); + try testArgs(i64, f80, 1e4); + try testArgs(i64, f80, 1e6); + try testArgs(i64, f80, 1e8); + try testArgs(i64, f80, 1e10); + try testArgs(i64, f80, 1e12); + try testArgs(i64, f80, 1e14); + try testArgs(i64, f80, 1e16); + try testArgs(i64, f80, 1e18); + try testArgs(i64, f80, next(f80, next(f80, 0x0.8p64, 0.0), 0.0)); + try testArgs(i64, f80, next(f80, 0x0.8p64, 0.0)); + + try testArgs(u64, f80, -0.0); + try testArgs(u64, f80, 0.0); + try testArgs(u64, f80, 1e-1); + try testArgs(u64, f80, 1e0); + try testArgs(u64, f80, 1e2); + try testArgs(u64, f80, 1e4); + try testArgs(u64, f80, 1e6); + try testArgs(u64, f80, 1e8); + try testArgs(u64, f80, 1e10); + try testArgs(u64, f80, 1e12); + try testArgs(u64, f80, 1e14); + try testArgs(u64, f80, 1e16); + try testArgs(u64, f80, 1e18); + try testArgs(u64, f80, next(f80, next(f80, 0x1p64, 0.0), 0.0)); + try testArgs(u64, f80, next(f80, 0x1p64, 0.0)); + + try testArgs(i128, f80, -0x0.8p128); + try testArgs(i128, f80, next(f80, -0x0.8p128, -0.0)); + try testArgs(i128, f80, next(f80, next(f80, -0x0.8p128, -0.0), -0.0)); + try testArgs(i128, f80, -1e38); + try testArgs(i128, f80, -1e34); + try testArgs(i128, f80, -1e30); + try testArgs(i128, f80, -1e26); + try testArgs(i128, f80, -1e22); + try testArgs(i128, f80, -1e18); + try testArgs(i128, f80, -1e14); + try testArgs(i128, f80, -1e10); + try testArgs(i128, f80, -1e6); + try testArgs(i128, f80, -1e2); + try testArgs(i128, f80, -1e0); + try testArgs(i128, f80, -1e-1); + try testArgs(i128, f80, -0.0); + try testArgs(i128, f80, 0.0); + try testArgs(i128, f80, 1e-1); + try testArgs(i128, f80, 1e0); + try testArgs(i128, f80, 1e2); + try testArgs(i128, f80, 1e6); + try testArgs(i128, f80, 1e10); + try testArgs(i128, f80, 1e14); + try testArgs(i128, f80, 1e18); + try testArgs(i128, f80, 1e22); + try testArgs(i128, f80, 1e26); + try testArgs(i128, f80, 1e30); + try testArgs(i128, f80, 1e34); + try testArgs(i128, f80, 1e38); + try testArgs(i128, f80, next(f80, next(f80, 0x0.8p128, 0.0), 0.0)); + try testArgs(i128, f80, next(f80, 0x0.8p128, 0.0)); + + try testArgs(u128, f80, -0.0); + try testArgs(u128, f80, 0.0); + try testArgs(u128, f80, 1e-1); + try testArgs(u128, f80, 1e0); + try testArgs(u128, f80, 1e2); + try testArgs(u128, f80, 1e6); + try testArgs(u128, f80, 1e10); + try testArgs(u128, f80, 1e14); + try testArgs(u128, f80, 1e18); + try testArgs(u128, f80, 1e22); + try testArgs(u128, f80, 1e26); + try testArgs(u128, f80, 1e30); + try testArgs(u128, f80, 1e34); + try testArgs(u128, f80, 1e38); + try testArgs(u128, f80, next(f80, next(f80, 0x1p128, 0.0), 0.0)); + try testArgs(u128, f80, next(f80, 0x1p128, 0.0)); + + try testArgs(i256, f80, -0x0.8p256); + try testArgs(i256, f80, next(f80, -0x0.8p256, -0.0)); + try testArgs(i256, f80, next(f80, next(f80, -0x0.8p256, -0.0), -0.0)); + try testArgs(i256, f80, -1e76); + try testArgs(i256, f80, -1e69); + try testArgs(i256, f80, -1e62); + try testArgs(i256, f80, -1e55); + try testArgs(i256, f80, -1e48); + try testArgs(i256, f80, -1e41); + try testArgs(i256, f80, -1e34); + try testArgs(i256, f80, -1e27); + try testArgs(i256, f80, -1e20); + try testArgs(i256, f80, -1e13); + try testArgs(i256, f80, -1e6); + try testArgs(i256, f80, -1e0); + try testArgs(i256, f80, -1e-1); + try testArgs(i256, f80, -0.0); + try testArgs(i256, f80, 0.0); + try testArgs(i256, f80, 1e-1); + try testArgs(i256, f80, 1e0); + try testArgs(i256, f80, 1e6); + try testArgs(i256, f80, 1e13); + try testArgs(i256, f80, 1e20); + try testArgs(i256, f80, 1e27); + try testArgs(i256, f80, 1e34); + try testArgs(i256, f80, 1e41); + try testArgs(i256, f80, 1e48); + try testArgs(i256, f80, 1e55); + try testArgs(i256, f80, 1e62); + try testArgs(i256, f80, 1e69); + try testArgs(i256, f80, 1e76); + try testArgs(i256, f80, next(f80, next(f80, 0x0.8p256, 0.0), 0.0)); + try testArgs(i256, f80, next(f80, 0x0.8p256, 0.0)); + + try testArgs(u256, f80, -0.0); + try testArgs(u256, f80, 0.0); + try testArgs(u256, f80, 1e-1); + try testArgs(u256, f80, 1e0); + try testArgs(u256, f80, 1e7); + try testArgs(u256, f80, 1e14); + try testArgs(u256, f80, 1e21); + try testArgs(u256, f80, 1e28); + try testArgs(u256, f80, 1e35); + try testArgs(u256, f80, 1e42); + try testArgs(u256, f80, 1e49); + try testArgs(u256, f80, 1e56); + try testArgs(u256, f80, 1e63); + try testArgs(u256, f80, 1e70); + try testArgs(u256, f80, 1e77); + try testArgs(u256, f80, next(f80, next(f80, 0x1p256, 0.0), 0.0)); + try testArgs(u256, f80, next(f80, 0x1p256, 0.0)); + + try testArgs(i8, f128, -0x0.8p8); + try testArgs(i8, f128, next(f128, -0x0.8p8, -0.0)); + try testArgs(i8, f128, next(f128, next(f128, -0x0.8p8, -0.0), -0.0)); + try testArgs(i8, f128, -1e2); + try testArgs(i8, f128, -1e1); + try testArgs(i8, f128, -1e0); + try testArgs(i8, f128, -1e-1); + try testArgs(i8, f128, -0.0); + try testArgs(i8, f128, 0.0); + try testArgs(i8, f128, 1e-1); + try testArgs(i8, f128, 1e0); + try testArgs(i8, f128, 1e1); + try testArgs(i8, f128, 1e2); + try testArgs(i8, f128, next(f128, next(f128, 0x0.8p8, 0.0), 0.0)); + try testArgs(i8, f128, next(f128, 0x0.8p8, 0.0)); + + try testArgs(u8, f128, -0.0); + try testArgs(u8, f128, 0.0); + try testArgs(u8, f128, 1e-1); + try testArgs(u8, f128, 1e0); + try testArgs(u8, f128, 1e1); + try testArgs(u8, f128, 1e2); + try testArgs(u8, f128, next(f128, next(f128, 0x1p8, 0.0), 0.0)); + try testArgs(u8, f128, next(f128, 0x1p8, 0.0)); + + try testArgs(i16, f128, -0x0.8p16); + try testArgs(i16, f128, next(f128, -0x0.8p16, -0.0)); + try testArgs(i16, f128, next(f128, next(f128, -0x0.8p16, -0.0), -0.0)); + try testArgs(i16, f128, -1e4); + try testArgs(i16, f128, -1e3); + try testArgs(i16, f128, -1e2); + try testArgs(i16, f128, -1e1); + try testArgs(i16, f128, -1e0); + try testArgs(i16, f128, -1e-1); + try testArgs(i16, f128, -0.0); + try testArgs(i16, f128, 0.0); + try testArgs(i16, f128, 1e-1); + try testArgs(i16, f128, 1e0); + try testArgs(i16, f128, 1e1); + try testArgs(i16, f128, 1e2); + try testArgs(i16, f128, 1e3); + try testArgs(i16, f128, 1e4); + try testArgs(i16, f128, next(f128, next(f128, 0x0.8p16, 0.0), 0.0)); + try testArgs(i16, f128, next(f128, 0x0.8p16, 0.0)); + + try testArgs(u16, f128, -0.0); + try testArgs(u16, f128, 0.0); + try testArgs(u16, f128, 1e-1); + try testArgs(u16, f128, 1e0); + try testArgs(u16, f128, 1e1); + try testArgs(u16, f128, 1e2); + try testArgs(u16, f128, 1e3); + try testArgs(u16, f128, 1e4); + try testArgs(u16, f128, next(f128, next(f128, 0x1p16, 0.0), 0.0)); + try testArgs(u16, f128, next(f128, 0x1p16, 0.0)); + + try testArgs(i32, f128, -0x0.8p32); + try testArgs(i32, f128, next(f128, -0x0.8p32, -0.0)); + try testArgs(i32, f128, next(f128, next(f128, -0x0.8p32, -0.0), -0.0)); + try testArgs(i32, f128, -1e9); + try testArgs(i32, f128, -1e8); + try testArgs(i32, f128, -1e7); + try testArgs(i32, f128, -1e6); + try testArgs(i32, f128, -1e5); + try testArgs(i32, f128, -1e4); + try testArgs(i32, f128, -1e3); + try testArgs(i32, f128, -1e2); + try testArgs(i32, f128, -1e1); + try testArgs(i32, f128, -1e0); + try testArgs(i32, f128, -1e-1); + try testArgs(i32, f128, -0.0); + try testArgs(i32, f128, 0.0); + try testArgs(i32, f128, 1e-1); + try testArgs(i32, f128, 1e0); + try testArgs(i32, f128, 1e1); + try testArgs(i32, f128, 1e2); + try testArgs(i32, f128, 1e3); + try testArgs(i32, f128, 1e4); + try testArgs(i32, f128, 1e5); + try testArgs(i32, f128, 1e6); + try testArgs(i32, f128, 1e7); + try testArgs(i32, f128, 1e8); + try testArgs(i32, f128, 1e9); + try testArgs(i32, f128, next(f128, next(f128, 0x0.8p32, 0.0), 0.0)); + try testArgs(i32, f128, next(f128, 0x0.8p32, 0.0)); + + try testArgs(u32, f128, -0.0); + try testArgs(u32, f128, 0.0); + try testArgs(u32, f128, 1e-1); + try testArgs(u32, f128, 1e0); + try testArgs(u32, f128, 1e1); + try testArgs(u32, f128, 1e2); + try testArgs(u32, f128, 1e3); + try testArgs(u32, f128, 1e4); + try testArgs(u32, f128, 1e5); + try testArgs(u32, f128, 1e6); + try testArgs(u32, f128, 1e7); + try testArgs(u32, f128, 1e8); + try testArgs(u32, f128, 1e9); + try testArgs(u32, f128, next(f128, next(f128, 0x1p32, 0.0), 0.0)); + try testArgs(u32, f128, next(f128, 0x1p32, 0.0)); + + try testArgs(i64, f128, -0x0.8p64); + try testArgs(i64, f128, next(f128, -0x0.8p64, -0.0)); + try testArgs(i64, f128, next(f128, next(f128, -0x0.8p64, -0.0), -0.0)); + try testArgs(i64, f128, -1e18); + try testArgs(i64, f128, -1e16); + try testArgs(i64, f128, -1e14); + try testArgs(i64, f128, -1e12); + try testArgs(i64, f128, -1e10); + try testArgs(i64, f128, -1e8); + try testArgs(i64, f128, -1e6); + try testArgs(i64, f128, -1e4); + try testArgs(i64, f128, -1e2); + try testArgs(i64, f128, -1e0); + try testArgs(i64, f128, -1e-1); + try testArgs(i64, f128, -0.0); + try testArgs(i64, f128, 0.0); + try testArgs(i64, f128, 1e-1); + try testArgs(i64, f128, 1e0); + try testArgs(i64, f128, 1e2); + try testArgs(i64, f128, 1e4); + try testArgs(i64, f128, 1e6); + try testArgs(i64, f128, 1e8); + try testArgs(i64, f128, 1e10); + try testArgs(i64, f128, 1e11); + try testArgs(i64, f128, 1e12); + try testArgs(i64, f128, 1e13); + try testArgs(i64, f128, 1e14); + try testArgs(i64, f128, 1e15); + try testArgs(i64, f128, 1e16); + try testArgs(i64, f128, 1e17); + try testArgs(i64, f128, 1e18); + try testArgs(i64, f128, next(f128, next(f128, 0x0.8p64, 0.0), 0.0)); + try testArgs(i64, f128, next(f128, 0x0.8p64, 0.0)); + + try testArgs(u64, f128, -0.0); + try testArgs(u64, f128, 0.0); + try testArgs(u64, f128, 1e-1); + try testArgs(u64, f128, 1e0); + try testArgs(u64, f128, 1e2); + try testArgs(u64, f128, 1e4); + try testArgs(u64, f128, 1e6); + try testArgs(u64, f128, 1e8); + try testArgs(u64, f128, 1e10); + try testArgs(u64, f128, 1e12); + try testArgs(u64, f128, 1e14); + try testArgs(u64, f128, 1e16); + try testArgs(u64, f128, 1e18); + try testArgs(u64, f128, next(f128, next(f128, 0x1p64, 0.0), 0.0)); + try testArgs(u64, f128, next(f128, 0x1p64, 0.0)); + + try testArgs(i128, f128, -0x0.8p128); + try testArgs(i128, f128, next(f128, -0x0.8p128, -0.0)); + try testArgs(i128, f128, next(f128, next(f128, -0x0.8p128, -0.0), -0.0)); + try testArgs(i128, f128, -1e38); + try testArgs(i128, f128, -1e34); + try testArgs(i128, f128, -1e30); + try testArgs(i128, f128, -1e26); + try testArgs(i128, f128, -1e22); + try testArgs(i128, f128, -1e18); + try testArgs(i128, f128, -1e14); + try testArgs(i128, f128, -1e10); + try testArgs(i128, f128, -1e6); + try testArgs(i128, f128, -1e2); + try testArgs(i128, f128, -1e0); + try testArgs(i128, f128, -1e-1); + try testArgs(i128, f128, -0.0); + try testArgs(i128, f128, 0.0); + try testArgs(i128, f128, 1e-1); + try testArgs(i128, f128, 1e0); + try testArgs(i128, f128, 1e2); + try testArgs(i128, f128, 1e6); + try testArgs(i128, f128, 1e10); + try testArgs(i128, f128, 1e14); + try testArgs(i128, f128, 1e18); + try testArgs(i128, f128, 1e22); + try testArgs(i128, f128, 1e26); + try testArgs(i128, f128, 1e30); + try testArgs(i128, f128, 1e34); + try testArgs(i128, f128, 1e38); + try testArgs(i128, f128, next(f128, next(f128, 0x0.8p128, 0.0), 0.0)); + try testArgs(i128, f128, next(f128, 0x0.8p128, 0.0)); + + try testArgs(u128, f128, -0.0); + try testArgs(u128, f128, 0.0); + try testArgs(u128, f128, 1e-1); + try testArgs(u128, f128, 1e0); + try testArgs(u128, f128, 1e2); + try testArgs(u128, f128, 1e6); + try testArgs(u128, f128, 1e10); + try testArgs(u128, f128, 1e14); + try testArgs(u128, f128, 1e18); + try testArgs(u128, f128, 1e22); + try testArgs(u128, f128, 1e26); + try testArgs(u128, f128, 1e30); + try testArgs(u128, f128, 1e34); + try testArgs(u128, f128, 1e38); + try testArgs(u128, f128, next(f128, next(f128, 0x1p128, 0.0), 0.0)); + try testArgs(u128, f128, next(f128, 0x1p128, 0.0)); + + try testArgs(i256, f128, -0x0.8p256); + try testArgs(i256, f128, next(f128, -0x0.8p256, -0.0)); + try testArgs(i256, f128, next(f128, next(f128, -0x0.8p256, -0.0), -0.0)); + try testArgs(i256, f128, -1e76); + try testArgs(i256, f128, -1e69); + try testArgs(i256, f128, -1e62); + try testArgs(i256, f128, -1e55); + try testArgs(i256, f128, -1e48); + try testArgs(i256, f128, -1e41); + try testArgs(i256, f128, -1e34); + try testArgs(i256, f128, -1e27); + try testArgs(i256, f128, -1e20); + try testArgs(i256, f128, -1e13); + try testArgs(i256, f128, -1e6); + try testArgs(i256, f128, -1e0); + try testArgs(i256, f128, -1e-1); + try testArgs(i256, f128, -0.0); + try testArgs(i256, f128, 0.0); + try testArgs(i256, f128, 1e-1); + try testArgs(i256, f128, 1e0); + try testArgs(i256, f128, 1e6); + try testArgs(i256, f128, 1e13); + try testArgs(i256, f128, 1e20); + try testArgs(i256, f128, 1e27); + try testArgs(i256, f128, 1e34); + try testArgs(i256, f128, 1e41); + try testArgs(i256, f128, 1e48); + try testArgs(i256, f128, 1e55); + try testArgs(i256, f128, 1e62); + try testArgs(i256, f128, 1e69); + try testArgs(i256, f128, 1e76); + try testArgs(i256, f128, next(f128, next(f128, 0x0.8p256, 0.0), 0.0)); + try testArgs(i256, f128, next(f128, 0x0.8p256, 0.0)); + + try testArgs(u256, f128, -0.0); + try testArgs(u256, f128, 0.0); + try testArgs(u256, f128, 1e-1); + try testArgs(u256, f128, 1e0); + try testArgs(u256, f128, 1e7); + try testArgs(u256, f128, 1e14); + try testArgs(u256, f128, 1e21); + try testArgs(u256, f128, 1e28); + try testArgs(u256, f128, 1e35); + try testArgs(u256, f128, 1e42); + try testArgs(u256, f128, 1e49); + try testArgs(u256, f128, 1e56); + try testArgs(u256, f128, 1e63); + try testArgs(u256, f128, 1e70); + try testArgs(u256, f128, 1e77); + try testArgs(u256, f128, next(f128, next(f128, 0x1p256, 0.0), 0.0)); + try testArgs(u256, f128, next(f128, 0x1p256, 0.0)); + } + fn testFloatsFromInts() !void { + try testArgs(f16, i8, imin(i8)); + try testArgs(f16, i8, imin(i8) + 1); + try testArgs(f16, i8, -1e2); + try testArgs(f16, i8, -1e1); + try testArgs(f16, i8, -1e0); + try testArgs(f16, i8, 0); + try testArgs(f16, i8, 1e0); + try testArgs(f16, i8, 1e1); + try testArgs(f16, i8, 1e2); + try testArgs(f16, i8, imax(i8) - 1); + try testArgs(f16, i8, imax(i8)); + + try testArgs(f16, u8, 0); + try testArgs(f16, u8, 1e0); + try testArgs(f16, u8, 1e1); + try testArgs(f16, u8, 1e2); + try testArgs(f16, u8, imax(u8) - 1); + try testArgs(f16, u8, imax(u8)); + + try testArgs(f16, i16, imin(i16)); + try testArgs(f16, i16, imin(i16) + 1); + try testArgs(f16, i16, -1e4); + try testArgs(f16, i16, -1e3); + try testArgs(f16, i16, -1e2); + try testArgs(f16, i16, -1e1); + try testArgs(f16, i16, -1e0); + try testArgs(f16, i16, 0); + try testArgs(f16, i16, 1e0); + try testArgs(f16, i16, 1e1); + try testArgs(f16, i16, 1e2); + try testArgs(f16, i16, 1e3); + try testArgs(f16, i16, 1e4); + try testArgs(f16, i16, imax(i16) - 1); + try testArgs(f16, i16, imax(i16)); + + try testArgs(f16, u16, 0); + try testArgs(f16, u16, 1e0); + try testArgs(f16, u16, 1e1); + try testArgs(f16, u16, 1e2); + try testArgs(f16, u16, 1e3); + try testArgs(f16, u16, 1e4); + try testArgs(f16, u16, imax(u16) - 1); + try testArgs(f16, u16, imax(u16)); + + try testArgs(f16, i32, imin(i32)); + try testArgs(f16, i32, imin(i32) + 1); + try testArgs(f16, i32, -1e9); + try testArgs(f16, i32, -1e8); + try testArgs(f16, i32, -1e7); + try testArgs(f16, i32, -1e6); + try testArgs(f16, i32, -1e5); + try testArgs(f16, i32, -1e4); + try testArgs(f16, i32, -1e3); + try testArgs(f16, i32, -1e2); + try testArgs(f16, i32, -1e1); + try testArgs(f16, i32, -1e0); + try testArgs(f16, i32, 0); + try testArgs(f16, i32, 1e0); + try testArgs(f16, i32, 1e1); + try testArgs(f16, i32, 1e2); + try testArgs(f16, i32, 1e3); + try testArgs(f16, i32, 1e4); + try testArgs(f16, i32, 1e5); + try testArgs(f16, i32, 1e6); + try testArgs(f16, i32, 1e7); + try testArgs(f16, i32, 1e8); + try testArgs(f16, i32, 1e9); + try testArgs(f16, i32, imax(i32) - 1); + try testArgs(f16, i32, imax(i32)); + + try testArgs(f16, u32, 0); + try testArgs(f16, u32, 1e0); + try testArgs(f16, u32, 1e1); + try testArgs(f16, u32, 1e2); + try testArgs(f16, u32, 1e3); + try testArgs(f16, u32, 1e4); + try testArgs(f16, u32, 1e5); + try testArgs(f16, u32, 1e6); + try testArgs(f16, u32, 1e7); + try testArgs(f16, u32, 1e8); + try testArgs(f16, u32, 1e9); + try testArgs(f16, u32, imax(u32) - 1); + try testArgs(f16, u32, imax(u32)); + + try testArgs(f16, i64, imin(i64)); + try testArgs(f16, i64, imin(i64) + 1); + try testArgs(f16, i64, -1e18); + try testArgs(f16, i64, -1e16); + try testArgs(f16, i64, -1e14); + try testArgs(f16, i64, -1e12); + try testArgs(f16, i64, -1e10); + try testArgs(f16, i64, -1e8); + try testArgs(f16, i64, -1e6); + try testArgs(f16, i64, -1e4); + try testArgs(f16, i64, -1e2); + try testArgs(f16, i64, -1e0); + try testArgs(f16, i64, 0); + try testArgs(f16, i64, 1e0); + try testArgs(f16, i64, 1e2); + try testArgs(f16, i64, 1e4); + try testArgs(f16, i64, 1e6); + try testArgs(f16, i64, 1e8); + try testArgs(f16, i64, 1e10); + try testArgs(f16, i64, 1e12); + try testArgs(f16, i64, 1e14); + try testArgs(f16, i64, 1e16); + try testArgs(f16, i64, 1e18); + try testArgs(f16, i64, imax(i64) - 1); + try testArgs(f16, i64, imax(i64)); + + try testArgs(f16, u64, 0); + try testArgs(f16, u64, 1e0); + try testArgs(f16, u64, 1e2); + try testArgs(f16, u64, 1e4); + try testArgs(f16, u64, 1e6); + try testArgs(f16, u64, 1e8); + try testArgs(f16, u64, 1e10); + try testArgs(f16, u64, 1e12); + try testArgs(f16, u64, 1e14); + try testArgs(f16, u64, 1e16); + try testArgs(f16, u64, 1e18); + try testArgs(f16, u64, imax(u64) - 1); + try testArgs(f16, u64, imax(u64)); + + try testArgs(f16, i128, imin(i128)); + try testArgs(f16, i128, imin(i128) + 1); + try testArgs(f16, i128, -1e38); + try testArgs(f16, i128, -1e34); + try testArgs(f16, i128, -1e30); + try testArgs(f16, i128, -1e26); + try testArgs(f16, i128, -1e22); + try testArgs(f16, i128, -1e18); + try testArgs(f16, i128, -1e14); + try testArgs(f16, i128, -1e10); + try testArgs(f16, i128, -1e6); + try testArgs(f16, i128, -1e2); + try testArgs(f16, i128, -1e0); + try testArgs(f16, i128, 0); + try testArgs(f16, i128, 1e0); + try testArgs(f16, i128, 1e2); + try testArgs(f16, i128, 1e6); + try testArgs(f16, i128, 1e10); + try testArgs(f16, i128, 1e14); + try testArgs(f16, i128, 1e18); + try testArgs(f16, i128, 1e22); + try testArgs(f16, i128, 1e26); + try testArgs(f16, i128, 1e30); + try testArgs(f16, i128, 1e34); + try testArgs(f16, i128, 1e38); + try testArgs(f16, i128, imax(i128) - 1); + try testArgs(f16, i128, imax(i128)); + + try testArgs(f16, u128, 0); + try testArgs(f16, u128, 1e0); + try testArgs(f16, u128, 1e2); + try testArgs(f16, u128, 1e6); + try testArgs(f16, u128, 1e10); + try testArgs(f16, u128, 1e14); + try testArgs(f16, u128, 1e18); + try testArgs(f16, u128, 1e22); + try testArgs(f16, u128, 1e26); + try testArgs(f16, u128, 1e30); + try testArgs(f16, u128, 1e34); + try testArgs(f16, u128, 1e38); + try testArgs(f16, u128, imax(u128) - 1); + try testArgs(f16, u128, imax(u128)); + + try testArgs(f16, i256, imin(i256)); + try testArgs(f16, i256, imin(i256) + 1); + try testArgs(f16, i256, -1e76); + try testArgs(f16, i256, -1e69); + try testArgs(f16, i256, -1e62); + try testArgs(f16, i256, -1e55); + try testArgs(f16, i256, -1e48); + try testArgs(f16, i256, -1e41); + try testArgs(f16, i256, -1e34); + try testArgs(f16, i256, -1e27); + try testArgs(f16, i256, -1e20); + try testArgs(f16, i256, -1e13); + try testArgs(f16, i256, -1e6); + try testArgs(f16, i256, -1e0); + try testArgs(f16, i256, 0); + try testArgs(f16, i256, 1e0); + try testArgs(f16, i256, 1e6); + try testArgs(f16, i256, 1e13); + try testArgs(f16, i256, 1e20); + try testArgs(f16, i256, 1e27); + try testArgs(f16, i256, 1e34); + try testArgs(f16, i256, 1e41); + try testArgs(f16, i256, 1e48); + try testArgs(f16, i256, 1e55); + try testArgs(f16, i256, 1e62); + try testArgs(f16, i256, 1e69); + try testArgs(f16, i256, 1e76); + try testArgs(f16, i256, imax(i256) - 1); + try testArgs(f16, i256, imax(i256)); + + try testArgs(f16, u256, 0); + try testArgs(f16, u256, 1e0); + try testArgs(f16, u256, 1e7); + try testArgs(f16, u256, 1e14); + try testArgs(f16, u256, 1e21); + try testArgs(f16, u256, 1e28); + try testArgs(f16, u256, 1e35); + try testArgs(f16, u256, 1e42); + try testArgs(f16, u256, 1e49); + try testArgs(f16, u256, 1e56); + try testArgs(f16, u256, 1e63); + try testArgs(f16, u256, 1e70); + try testArgs(f16, u256, 1e77); + try testArgs(f16, u256, imax(u256) - 1); + try testArgs(f16, u256, imax(u256)); + + try testArgs(f32, i8, imin(i8)); + try testArgs(f32, i8, imin(i8) + 1); + try testArgs(f32, i8, -1e2); + try testArgs(f32, i8, -1e1); + try testArgs(f32, i8, -1e0); + try testArgs(f32, i8, 0); + try testArgs(f32, i8, 1e0); + try testArgs(f32, i8, 1e1); + try testArgs(f32, i8, 1e2); + try testArgs(f32, i8, imax(i8) - 1); + try testArgs(f32, i8, imax(i8)); + + try testArgs(f32, u8, 0); + try testArgs(f32, u8, 1e0); + try testArgs(f32, u8, 1e1); + try testArgs(f32, u8, 1e2); + try testArgs(f32, u8, imax(u8) - 1); + try testArgs(f32, u8, imax(u8)); + + try testArgs(f32, i16, imin(i16)); + try testArgs(f32, i16, imin(i16) + 1); + try testArgs(f32, i16, -1e4); + try testArgs(f32, i16, -1e3); + try testArgs(f32, i16, -1e2); + try testArgs(f32, i16, -1e1); + try testArgs(f32, i16, -1e0); + try testArgs(f32, i16, 0); + try testArgs(f32, i16, 1e0); + try testArgs(f32, i16, 1e1); + try testArgs(f32, i16, 1e2); + try testArgs(f32, i16, 1e3); + try testArgs(f32, i16, 1e4); + try testArgs(f32, i16, imax(i16) - 1); + try testArgs(f32, i16, imax(i16)); + + try testArgs(f32, u16, 0); + try testArgs(f32, u16, 1e0); + try testArgs(f32, u16, 1e1); + try testArgs(f32, u16, 1e2); + try testArgs(f32, u16, 1e3); + try testArgs(f32, u16, 1e4); + try testArgs(f32, u16, imax(u16) - 1); + try testArgs(f32, u16, imax(u16)); + + try testArgs(f32, i32, imin(i32)); + try testArgs(f32, i32, imin(i32) + 1); + try testArgs(f32, i32, -1e9); + try testArgs(f32, i32, -1e8); + try testArgs(f32, i32, -1e7); + try testArgs(f32, i32, -1e6); + try testArgs(f32, i32, -1e5); + try testArgs(f32, i32, -1e4); + try testArgs(f32, i32, -1e3); + try testArgs(f32, i32, -1e2); + try testArgs(f32, i32, -1e1); + try testArgs(f32, i32, -1e0); + try testArgs(f32, i32, 0); + try testArgs(f32, i32, 1e0); + try testArgs(f32, i32, 1e1); + try testArgs(f32, i32, 1e2); + try testArgs(f32, i32, 1e3); + try testArgs(f32, i32, 1e4); + try testArgs(f32, i32, 1e5); + try testArgs(f32, i32, 1e6); + try testArgs(f32, i32, 1e7); + try testArgs(f32, i32, 1e8); + try testArgs(f32, i32, 1e9); + try testArgs(f32, i32, imax(i32) - 1); + try testArgs(f32, i32, imax(i32)); + + try testArgs(f32, u32, 0); + try testArgs(f32, u32, 1e0); + try testArgs(f32, u32, 1e1); + try testArgs(f32, u32, 1e2); + try testArgs(f32, u32, 1e3); + try testArgs(f32, u32, 1e4); + try testArgs(f32, u32, 1e5); + try testArgs(f32, u32, 1e6); + try testArgs(f32, u32, 1e7); + try testArgs(f32, u32, 1e8); + try testArgs(f32, u32, 1e9); + try testArgs(f32, u32, imax(u32) - 1); + try testArgs(f32, u32, imax(u32)); + + try testArgs(f32, i64, imin(i64)); + try testArgs(f32, i64, imin(i64) + 1); + try testArgs(f32, i64, -1e18); + try testArgs(f32, i64, -1e16); + try testArgs(f32, i64, -1e14); + try testArgs(f32, i64, -1e12); + try testArgs(f32, i64, -1e10); + try testArgs(f32, i64, -1e8); + try testArgs(f32, i64, -1e6); + try testArgs(f32, i64, -1e4); + try testArgs(f32, i64, -1e2); + try testArgs(f32, i64, -1e0); + try testArgs(f32, i64, 0); + try testArgs(f32, i64, 1e0); + try testArgs(f32, i64, 1e2); + try testArgs(f32, i64, 1e4); + try testArgs(f32, i64, 1e6); + try testArgs(f32, i64, 1e8); + try testArgs(f32, i64, 1e10); + try testArgs(f32, i64, 1e12); + try testArgs(f32, i64, 1e14); + try testArgs(f32, i64, 1e16); + try testArgs(f32, i64, 1e18); + try testArgs(f32, i64, imax(i64) - 1); + try testArgs(f32, i64, imax(i64)); + + try testArgs(f32, u64, 0); + try testArgs(f32, u64, 1e0); + try testArgs(f32, u64, 1e2); + try testArgs(f32, u64, 1e4); + try testArgs(f32, u64, 1e6); + try testArgs(f32, u64, 1e8); + try testArgs(f32, u64, 1e10); + try testArgs(f32, u64, 1e12); + try testArgs(f32, u64, 1e14); + try testArgs(f32, u64, 1e16); + try testArgs(f32, u64, 1e18); + try testArgs(f32, u64, imax(u64) - 1); + try testArgs(f32, u64, imax(u64)); + + try testArgs(f32, i128, imin(i128)); + try testArgs(f32, i128, imin(i128) + 1); + try testArgs(f32, i128, -1e38); + try testArgs(f32, i128, -1e34); + try testArgs(f32, i128, -1e30); + try testArgs(f32, i128, -1e26); + try testArgs(f32, i128, -1e22); + try testArgs(f32, i128, -1e18); + try testArgs(f32, i128, -1e14); + try testArgs(f32, i128, -1e10); + try testArgs(f32, i128, -1e6); + try testArgs(f32, i128, -1e2); + try testArgs(f32, i128, -1e0); + try testArgs(f32, i128, 0); + try testArgs(f32, i128, 1e0); + try testArgs(f32, i128, 1e2); + try testArgs(f32, i128, 1e6); + try testArgs(f32, i128, 1e10); + try testArgs(f32, i128, 1e14); + try testArgs(f32, i128, 1e18); + try testArgs(f32, i128, 1e22); + try testArgs(f32, i128, 1e26); + try testArgs(f32, i128, 1e30); + try testArgs(f32, i128, 1e34); + try testArgs(f32, i128, 1e38); + try testArgs(f32, i128, imax(i128) - 1); + try testArgs(f32, i128, imax(i128)); + + try testArgs(f32, u128, 0); + try testArgs(f32, u128, 1e0); + try testArgs(f32, u128, 1e2); + try testArgs(f32, u128, 1e6); + try testArgs(f32, u128, 1e10); + try testArgs(f32, u128, 1e14); + try testArgs(f32, u128, 1e18); + try testArgs(f32, u128, 1e22); + try testArgs(f32, u128, 1e26); + try testArgs(f32, u128, 1e30); + try testArgs(f32, u128, 1e34); + try testArgs(f32, u128, 1e38); + try testArgs(f32, u128, imax(u128) - 1); + try testArgs(f32, u128, imax(u128)); + + try testArgs(f32, i256, imin(i256)); + try testArgs(f32, i256, imin(i256) + 1); + try testArgs(f32, i256, -1e76); + try testArgs(f32, i256, -1e69); + try testArgs(f32, i256, -1e62); + try testArgs(f32, i256, -1e55); + try testArgs(f32, i256, -1e48); + try testArgs(f32, i256, -1e41); + try testArgs(f32, i256, -1e34); + try testArgs(f32, i256, -1e27); + try testArgs(f32, i256, -1e20); + try testArgs(f32, i256, -1e13); + try testArgs(f32, i256, -1e6); + try testArgs(f32, i256, -1e0); + try testArgs(f32, i256, 0); + try testArgs(f32, i256, 1e0); + try testArgs(f32, i256, 1e6); + try testArgs(f32, i256, 1e13); + try testArgs(f32, i256, 1e20); + try testArgs(f32, i256, 1e27); + try testArgs(f32, i256, 1e34); + try testArgs(f32, i256, 1e41); + try testArgs(f32, i256, 1e48); + try testArgs(f32, i256, 1e55); + try testArgs(f32, i256, 1e62); + try testArgs(f32, i256, 1e69); + try testArgs(f32, i256, 1e76); + try testArgs(f32, i256, imax(i256) - 1); + try testArgs(f32, i256, imax(i256)); + + try testArgs(f32, u256, 0); + try testArgs(f32, u256, 1e0); + try testArgs(f32, u256, 1e7); + try testArgs(f32, u256, 1e14); + try testArgs(f32, u256, 1e21); + try testArgs(f32, u256, 1e28); + try testArgs(f32, u256, 1e35); + try testArgs(f32, u256, 1e42); + try testArgs(f32, u256, 1e49); + try testArgs(f32, u256, 1e56); + try testArgs(f32, u256, 1e63); + try testArgs(f32, u256, 1e70); + try testArgs(f32, u256, 1e77); + try testArgs(f32, u256, imax(u256) - 1); + try testArgs(f32, u256, imax(u256)); + + try testArgs(f64, i8, imin(i8)); + try testArgs(f64, i8, imin(i8) + 1); + try testArgs(f64, i8, -1e2); + try testArgs(f64, i8, -1e1); + try testArgs(f64, i8, -1e0); + try testArgs(f64, i8, 0); + try testArgs(f64, i8, 1e0); + try testArgs(f64, i8, 1e1); + try testArgs(f64, i8, 1e2); + try testArgs(f64, i8, imax(i8) - 1); + try testArgs(f64, i8, imax(i8)); + + try testArgs(f64, u8, 0); + try testArgs(f64, u8, 1e0); + try testArgs(f64, u8, 1e1); + try testArgs(f64, u8, 1e2); + try testArgs(f64, u8, imax(u8) - 1); + try testArgs(f64, u8, imax(u8)); + + try testArgs(f64, i16, imin(i16)); + try testArgs(f64, i16, imin(i16) + 1); + try testArgs(f64, i16, -1e4); + try testArgs(f64, i16, -1e3); + try testArgs(f64, i16, -1e2); + try testArgs(f64, i16, -1e1); + try testArgs(f64, i16, -1e0); + try testArgs(f64, i16, 0); + try testArgs(f64, i16, 1e0); + try testArgs(f64, i16, 1e1); + try testArgs(f64, i16, 1e2); + try testArgs(f64, i16, 1e3); + try testArgs(f64, i16, 1e4); + try testArgs(f64, i16, imax(i16) - 1); + try testArgs(f64, i16, imax(i16)); + + try testArgs(f64, u16, 0); + try testArgs(f64, u16, 1e0); + try testArgs(f64, u16, 1e1); + try testArgs(f64, u16, 1e2); + try testArgs(f64, u16, 1e3); + try testArgs(f64, u16, 1e4); + try testArgs(f64, u16, imax(u16) - 1); + try testArgs(f64, u16, imax(u16)); + + try testArgs(f64, i32, imin(i32)); + try testArgs(f64, i32, imin(i32) + 1); + try testArgs(f64, i32, -1e9); + try testArgs(f64, i32, -1e8); + try testArgs(f64, i32, -1e7); + try testArgs(f64, i32, -1e6); + try testArgs(f64, i32, -1e5); + try testArgs(f64, i32, -1e4); + try testArgs(f64, i32, -1e3); + try testArgs(f64, i32, -1e2); + try testArgs(f64, i32, -1e1); + try testArgs(f64, i32, -1e0); + try testArgs(f64, i32, 0); + try testArgs(f64, i32, 1e0); + try testArgs(f64, i32, 1e1); + try testArgs(f64, i32, 1e2); + try testArgs(f64, i32, 1e3); + try testArgs(f64, i32, 1e4); + try testArgs(f64, i32, 1e5); + try testArgs(f64, i32, 1e6); + try testArgs(f64, i32, 1e7); + try testArgs(f64, i32, 1e8); + try testArgs(f64, i32, 1e9); + try testArgs(f64, i32, imax(i32) - 1); + try testArgs(f64, i32, imax(i32)); + + try testArgs(f64, u32, 0); + try testArgs(f64, u32, 1e0); + try testArgs(f64, u32, 1e1); + try testArgs(f64, u32, 1e2); + try testArgs(f64, u32, 1e3); + try testArgs(f64, u32, 1e4); + try testArgs(f64, u32, 1e5); + try testArgs(f64, u32, 1e6); + try testArgs(f64, u32, 1e7); + try testArgs(f64, u32, 1e8); + try testArgs(f64, u32, 1e9); + try testArgs(f64, u32, imax(u32) - 1); + try testArgs(f64, u32, imax(u32)); + + try testArgs(f64, i64, imin(i64)); + try testArgs(f64, i64, imin(i64) + 1); + try testArgs(f64, i64, -1e18); + try testArgs(f64, i64, -1e16); + try testArgs(f64, i64, -1e14); + try testArgs(f64, i64, -1e12); + try testArgs(f64, i64, -1e10); + try testArgs(f64, i64, -1e8); + try testArgs(f64, i64, -1e6); + try testArgs(f64, i64, -1e4); + try testArgs(f64, i64, -1e2); + try testArgs(f64, i64, -1e0); + try testArgs(f64, i64, 0); + try testArgs(f64, i64, 1e0); + try testArgs(f64, i64, 1e2); + try testArgs(f64, i64, 1e4); + try testArgs(f64, i64, 1e6); + try testArgs(f64, i64, 1e8); + try testArgs(f64, i64, 1e10); + try testArgs(f64, i64, 1e12); + try testArgs(f64, i64, 1e14); + try testArgs(f64, i64, 1e16); + try testArgs(f64, i64, 1e18); + try testArgs(f64, i64, imax(i64) - 1); + try testArgs(f64, i64, imax(i64)); + + try testArgs(f64, u64, 0); + try testArgs(f64, u64, 1e0); + try testArgs(f64, u64, 1e2); + try testArgs(f64, u64, 1e4); + try testArgs(f64, u64, 1e6); + try testArgs(f64, u64, 1e8); + try testArgs(f64, u64, 1e10); + try testArgs(f64, u64, 1e12); + try testArgs(f64, u64, 1e14); + try testArgs(f64, u64, 1e16); + try testArgs(f64, u64, 1e18); + try testArgs(f64, u64, imax(u64) - 1); + try testArgs(f64, u64, imax(u64)); + + try testArgs(f64, i128, imin(i128)); + try testArgs(f64, i128, imin(i128) + 1); + try testArgs(f64, i128, -1e38); + try testArgs(f64, i128, -1e34); + try testArgs(f64, i128, -1e30); + try testArgs(f64, i128, -1e26); + try testArgs(f64, i128, -1e22); + try testArgs(f64, i128, -1e18); + try testArgs(f64, i128, -1e14); + try testArgs(f64, i128, -1e10); + try testArgs(f64, i128, -1e6); + try testArgs(f64, i128, -1e2); + try testArgs(f64, i128, -1e0); + try testArgs(f64, i128, 0); + try testArgs(f64, i128, 1e0); + try testArgs(f64, i128, 1e2); + try testArgs(f64, i128, 1e6); + try testArgs(f64, i128, 1e10); + try testArgs(f64, i128, 1e14); + try testArgs(f64, i128, 1e18); + try testArgs(f64, i128, 1e22); + try testArgs(f64, i128, 1e26); + try testArgs(f64, i128, 1e30); + try testArgs(f64, i128, 1e34); + try testArgs(f64, i128, 1e38); + try testArgs(f64, i128, imax(i128) - 1); + try testArgs(f64, i128, imax(i128)); + + try testArgs(f64, u128, 0); + try testArgs(f64, u128, 1e0); + try testArgs(f64, u128, 1e2); + try testArgs(f64, u128, 1e6); + try testArgs(f64, u128, 1e10); + try testArgs(f64, u128, 1e14); + try testArgs(f64, u128, 1e18); + try testArgs(f64, u128, 1e22); + try testArgs(f64, u128, 1e26); + try testArgs(f64, u128, 1e30); + try testArgs(f64, u128, 1e34); + try testArgs(f64, u128, 1e38); + try testArgs(f64, u128, imax(u128) - 1); + try testArgs(f64, u128, imax(u128)); + + try testArgs(f64, i256, imin(i256)); + try testArgs(f64, i256, imin(i256) + 1); + try testArgs(f64, i256, -1e76); + try testArgs(f64, i256, -1e69); + try testArgs(f64, i256, -1e62); + try testArgs(f64, i256, -1e55); + try testArgs(f64, i256, -1e48); + try testArgs(f64, i256, -1e41); + try testArgs(f64, i256, -1e34); + try testArgs(f64, i256, -1e27); + try testArgs(f64, i256, -1e20); + try testArgs(f64, i256, -1e13); + try testArgs(f64, i256, -1e6); + try testArgs(f64, i256, -1e0); + try testArgs(f64, i256, 0); + try testArgs(f64, i256, 1e0); + try testArgs(f64, i256, 1e6); + try testArgs(f64, i256, 1e13); + try testArgs(f64, i256, 1e20); + try testArgs(f64, i256, 1e27); + try testArgs(f64, i256, 1e34); + try testArgs(f64, i256, 1e41); + try testArgs(f64, i256, 1e48); + try testArgs(f64, i256, 1e55); + try testArgs(f64, i256, 1e62); + try testArgs(f64, i256, 1e69); + try testArgs(f64, i256, 1e76); + try testArgs(f64, i256, imax(i256) - 1); + try testArgs(f64, i256, imax(i256)); + + try testArgs(f64, u256, 0); + try testArgs(f64, u256, 1e0); + try testArgs(f64, u256, 1e7); + try testArgs(f64, u256, 1e14); + try testArgs(f64, u256, 1e21); + try testArgs(f64, u256, 1e28); + try testArgs(f64, u256, 1e35); + try testArgs(f64, u256, 1e42); + try testArgs(f64, u256, 1e49); + try testArgs(f64, u256, 1e56); + try testArgs(f64, u256, 1e63); + try testArgs(f64, u256, 1e70); + try testArgs(f64, u256, 1e77); + try testArgs(f64, u256, imax(u256) - 1); + try testArgs(f64, u256, imax(u256)); + + try testArgs(f80, i8, imin(i8)); + try testArgs(f80, i8, imin(i8) + 1); + try testArgs(f80, i8, -1e2); + try testArgs(f80, i8, -1e1); + try testArgs(f80, i8, -1e0); + try testArgs(f80, i8, 0); + try testArgs(f80, i8, 1e0); + try testArgs(f80, i8, 1e1); + try testArgs(f80, i8, 1e2); + try testArgs(f80, i8, imax(i8) - 1); + try testArgs(f80, i8, imax(i8)); + + try testArgs(f80, u8, 0); + try testArgs(f80, u8, 1e0); + try testArgs(f80, u8, 1e1); + try testArgs(f80, u8, 1e2); + try testArgs(f80, u8, imax(u8) - 1); + try testArgs(f80, u8, imax(u8)); + + try testArgs(f80, i16, imin(i16)); + try testArgs(f80, i16, imin(i16) + 1); + try testArgs(f80, i16, -1e4); + try testArgs(f80, i16, -1e3); + try testArgs(f80, i16, -1e2); + try testArgs(f80, i16, -1e1); + try testArgs(f80, i16, -1e0); + try testArgs(f80, i16, 0); + try testArgs(f80, i16, 1e0); + try testArgs(f80, i16, 1e1); + try testArgs(f80, i16, 1e2); + try testArgs(f80, i16, 1e3); + try testArgs(f80, i16, 1e4); + try testArgs(f80, i16, imax(i16) - 1); + try testArgs(f80, i16, imax(i16)); + + try testArgs(f80, u16, 0); + try testArgs(f80, u16, 1e0); + try testArgs(f80, u16, 1e1); + try testArgs(f80, u16, 1e2); + try testArgs(f80, u16, 1e3); + try testArgs(f80, u16, 1e4); + try testArgs(f80, u16, imax(u16) - 1); + try testArgs(f80, u16, imax(u16)); + + try testArgs(f80, i32, imin(i32)); + try testArgs(f80, i32, imin(i32) + 1); + try testArgs(f80, i32, -1e9); + try testArgs(f80, i32, -1e8); + try testArgs(f80, i32, -1e7); + try testArgs(f80, i32, -1e6); + try testArgs(f80, i32, -1e5); + try testArgs(f80, i32, -1e4); + try testArgs(f80, i32, -1e3); + try testArgs(f80, i32, -1e2); + try testArgs(f80, i32, -1e1); + try testArgs(f80, i32, -1e0); + try testArgs(f80, i32, 0); + try testArgs(f80, i32, 1e0); + try testArgs(f80, i32, 1e1); + try testArgs(f80, i32, 1e2); + try testArgs(f80, i32, 1e3); + try testArgs(f80, i32, 1e4); + try testArgs(f80, i32, 1e5); + try testArgs(f80, i32, 1e6); + try testArgs(f80, i32, 1e7); + try testArgs(f80, i32, 1e8); + try testArgs(f80, i32, 1e9); + try testArgs(f80, i32, imax(i32) - 1); + try testArgs(f80, i32, imax(i32)); + + try testArgs(f80, u32, 0); + try testArgs(f80, u32, 1e0); + try testArgs(f80, u32, 1e1); + try testArgs(f80, u32, 1e2); + try testArgs(f80, u32, 1e3); + try testArgs(f80, u32, 1e4); + try testArgs(f80, u32, 1e5); + try testArgs(f80, u32, 1e6); + try testArgs(f80, u32, 1e7); + try testArgs(f80, u32, 1e8); + try testArgs(f80, u32, 1e9); + try testArgs(f80, u32, imax(u32) - 1); + try testArgs(f80, u32, imax(u32)); + + try testArgs(f80, i64, imin(i64)); + try testArgs(f80, i64, imin(i64) + 1); + try testArgs(f80, i64, -1e18); + try testArgs(f80, i64, -1e16); + try testArgs(f80, i64, -1e14); + try testArgs(f80, i64, -1e12); + try testArgs(f80, i64, -1e10); + try testArgs(f80, i64, -1e8); + try testArgs(f80, i64, -1e6); + try testArgs(f80, i64, -1e4); + try testArgs(f80, i64, -1e2); + try testArgs(f80, i64, -1e0); + try testArgs(f80, i64, 0); + try testArgs(f80, i64, 1e0); + try testArgs(f80, i64, 1e2); + try testArgs(f80, i64, 1e4); + try testArgs(f80, i64, 1e6); + try testArgs(f80, i64, 1e8); + try testArgs(f80, i64, 1e10); + try testArgs(f80, i64, 1e12); + try testArgs(f80, i64, 1e14); + try testArgs(f80, i64, 1e16); + try testArgs(f80, i64, 1e18); + try testArgs(f80, i64, imax(i64) - 1); + try testArgs(f80, i64, imax(i64)); + + try testArgs(f80, u64, 0); + try testArgs(f80, u64, 1e0); + try testArgs(f80, u64, 1e2); + try testArgs(f80, u64, 1e4); + try testArgs(f80, u64, 1e6); + try testArgs(f80, u64, 1e8); + try testArgs(f80, u64, 1e10); + try testArgs(f80, u64, 1e12); + try testArgs(f80, u64, 1e14); + try testArgs(f80, u64, 1e16); + try testArgs(f80, u64, 1e18); + try testArgs(f80, u64, imax(u64) - 1); + try testArgs(f80, u64, imax(u64)); + + try testArgs(f80, i128, imin(i128)); + try testArgs(f80, i128, imin(i128) + 1); + try testArgs(f80, i128, -1e38); + try testArgs(f80, i128, -1e34); + try testArgs(f80, i128, -1e30); + try testArgs(f80, i128, -1e26); + try testArgs(f80, i128, -1e22); + try testArgs(f80, i128, -1e18); + try testArgs(f80, i128, -1e14); + try testArgs(f80, i128, -1e10); + try testArgs(f80, i128, -1e6); + try testArgs(f80, i128, -1e2); + try testArgs(f80, i128, -1e0); + try testArgs(f80, i128, 0); + try testArgs(f80, i128, 1e0); + try testArgs(f80, i128, 1e2); + try testArgs(f80, i128, 1e6); + try testArgs(f80, i128, 1e10); + try testArgs(f80, i128, 1e14); + try testArgs(f80, i128, 1e18); + try testArgs(f80, i128, 1e22); + try testArgs(f80, i128, 1e26); + try testArgs(f80, i128, 1e30); + try testArgs(f80, i128, 1e34); + try testArgs(f80, i128, 1e38); + try testArgs(f80, i128, imax(i128) - 1); + try testArgs(f80, i128, imax(i128)); + + try testArgs(f80, u128, 0); + try testArgs(f80, u128, 1e0); + try testArgs(f80, u128, 1e2); + try testArgs(f80, u128, 1e6); + try testArgs(f80, u128, 1e10); + try testArgs(f80, u128, 1e14); + try testArgs(f80, u128, 1e18); + try testArgs(f80, u128, 1e22); + try testArgs(f80, u128, 1e26); + try testArgs(f80, u128, 1e30); + try testArgs(f80, u128, 1e34); + try testArgs(f80, u128, 1e38); + try testArgs(f80, u128, imax(u128) - 1); + try testArgs(f80, u128, imax(u128)); + + try testArgs(f80, i256, imin(i256)); + try testArgs(f80, i256, imin(i256) + 1); + try testArgs(f80, i256, -1e76); + try testArgs(f80, i256, -1e69); + try testArgs(f80, i256, -1e62); + try testArgs(f80, i256, -1e55); + try testArgs(f80, i256, -1e48); + try testArgs(f80, i256, -1e41); + try testArgs(f80, i256, -1e34); + try testArgs(f80, i256, -1e27); + try testArgs(f80, i256, -1e20); + try testArgs(f80, i256, -1e13); + try testArgs(f80, i256, -1e6); + try testArgs(f80, i256, -1e0); + try testArgs(f80, i256, 0); + try testArgs(f80, i256, 1e0); + try testArgs(f80, i256, 1e6); + try testArgs(f80, i256, 1e13); + try testArgs(f80, i256, 1e20); + try testArgs(f80, i256, 1e27); + try testArgs(f80, i256, 1e34); + try testArgs(f80, i256, 1e41); + try testArgs(f80, i256, 1e48); + try testArgs(f80, i256, 1e55); + try testArgs(f80, i256, 1e62); + try testArgs(f80, i256, 1e69); + try testArgs(f80, i256, 1e76); + try testArgs(f80, i256, imax(i256) - 1); + try testArgs(f80, i256, imax(i256)); + + try testArgs(f80, u256, 0); + try testArgs(f80, u256, 1e0); + try testArgs(f80, u256, 1e7); + try testArgs(f80, u256, 1e14); + try testArgs(f80, u256, 1e21); + try testArgs(f80, u256, 1e28); + try testArgs(f80, u256, 1e35); + try testArgs(f80, u256, 1e42); + try testArgs(f80, u256, 1e49); + try testArgs(f80, u256, 1e56); + try testArgs(f80, u256, 1e63); + try testArgs(f80, u256, 1e70); + try testArgs(f80, u256, 1e77); + try testArgs(f80, u256, imax(u256) - 1); + try testArgs(f80, u256, imax(u256)); + + try testArgs(f128, i8, imin(i8)); + try testArgs(f128, i8, imin(i8) + 1); + try testArgs(f128, i8, -1e2); + try testArgs(f128, i8, -1e1); + try testArgs(f128, i8, -1e0); + try testArgs(f128, i8, 0); + try testArgs(f128, i8, 1e0); + try testArgs(f128, i8, 1e1); + try testArgs(f128, i8, 1e2); + try testArgs(f128, i8, imax(i8) - 1); + try testArgs(f128, i8, imax(i8)); + + try testArgs(f128, u8, 0); + try testArgs(f128, u8, 1e0); + try testArgs(f128, u8, 1e1); + try testArgs(f128, u8, 1e2); + try testArgs(f128, u8, imax(u8) - 1); + try testArgs(f128, u8, imax(u8)); + + try testArgs(f128, i16, imin(i16)); + try testArgs(f128, i16, imin(i16) + 1); + try testArgs(f128, i16, -1e4); + try testArgs(f128, i16, -1e3); + try testArgs(f128, i16, -1e2); + try testArgs(f128, i16, -1e1); + try testArgs(f128, i16, -1e0); + try testArgs(f128, i16, 0); + try testArgs(f128, i16, 1e0); + try testArgs(f128, i16, 1e1); + try testArgs(f128, i16, 1e2); + try testArgs(f128, i16, 1e3); + try testArgs(f128, i16, 1e4); + try testArgs(f128, i16, imax(i16) - 1); + try testArgs(f128, i16, imax(i16)); + + try testArgs(f128, u16, 0); + try testArgs(f128, u16, 1e0); + try testArgs(f128, u16, 1e1); + try testArgs(f128, u16, 1e2); + try testArgs(f128, u16, 1e3); + try testArgs(f128, u16, 1e4); + try testArgs(f128, u16, imax(u16) - 1); + try testArgs(f128, u16, imax(u16)); + + try testArgs(f128, i32, imin(i32)); + try testArgs(f128, i32, imin(i32) + 1); + try testArgs(f128, i32, -1e9); + try testArgs(f128, i32, -1e8); + try testArgs(f128, i32, -1e7); + try testArgs(f128, i32, -1e6); + try testArgs(f128, i32, -1e5); + try testArgs(f128, i32, -1e4); + try testArgs(f128, i32, -1e3); + try testArgs(f128, i32, -1e2); + try testArgs(f128, i32, -1e1); + try testArgs(f128, i32, -1e0); + try testArgs(f128, i32, 0); + try testArgs(f128, i32, 1e0); + try testArgs(f128, i32, 1e1); + try testArgs(f128, i32, 1e2); + try testArgs(f128, i32, 1e3); + try testArgs(f128, i32, 1e4); + try testArgs(f128, i32, 1e5); + try testArgs(f128, i32, 1e6); + try testArgs(f128, i32, 1e7); + try testArgs(f128, i32, 1e8); + try testArgs(f128, i32, 1e9); + try testArgs(f128, i32, imax(i32) - 1); + try testArgs(f128, i32, imax(i32)); + + try testArgs(f128, u32, 0); + try testArgs(f128, u32, 1e0); + try testArgs(f128, u32, 1e1); + try testArgs(f128, u32, 1e2); + try testArgs(f128, u32, 1e3); + try testArgs(f128, u32, 1e4); + try testArgs(f128, u32, 1e5); + try testArgs(f128, u32, 1e6); + try testArgs(f128, u32, 1e7); + try testArgs(f128, u32, 1e8); + try testArgs(f128, u32, 1e9); + try testArgs(f128, u32, imax(u32) - 1); + try testArgs(f128, u32, imax(u32)); + + try testArgs(f128, i64, imin(i64)); + try testArgs(f128, i64, imin(i64) + 1); + try testArgs(f128, i64, -1e18); + try testArgs(f128, i64, -1e16); + try testArgs(f128, i64, -1e14); + try testArgs(f128, i64, -1e12); + try testArgs(f128, i64, -1e10); + try testArgs(f128, i64, -1e8); + try testArgs(f128, i64, -1e6); + try testArgs(f128, i64, -1e4); + try testArgs(f128, i64, -1e2); + try testArgs(f128, i64, -1e0); + try testArgs(f128, i64, 0); + try testArgs(f128, i64, 1e0); + try testArgs(f128, i64, 1e2); + try testArgs(f128, i64, 1e4); + try testArgs(f128, i64, 1e6); + try testArgs(f128, i64, 1e8); + try testArgs(f128, i64, 1e10); + try testArgs(f128, i64, 1e12); + try testArgs(f128, i64, 1e14); + try testArgs(f128, i64, 1e16); + try testArgs(f128, i64, 1e18); + try testArgs(f128, i64, imax(i64) - 1); + try testArgs(f128, i64, imax(i64)); + + try testArgs(f128, u64, 0); + try testArgs(f128, u64, 1e0); + try testArgs(f128, u64, 1e2); + try testArgs(f128, u64, 1e4); + try testArgs(f128, u64, 1e6); + try testArgs(f128, u64, 1e8); + try testArgs(f128, u64, 1e10); + try testArgs(f128, u64, 1e12); + try testArgs(f128, u64, 1e14); + try testArgs(f128, u64, 1e16); + try testArgs(f128, u64, 1e18); + try testArgs(f128, u64, imax(u64) - 1); + try testArgs(f128, u64, imax(u64)); + + try testArgs(f128, i128, imin(i128)); + try testArgs(f128, i128, imin(i128) + 1); + try testArgs(f128, i128, -1e38); + try testArgs(f128, i128, -1e34); + try testArgs(f128, i128, -1e30); + try testArgs(f128, i128, -1e26); + try testArgs(f128, i128, -1e22); + try testArgs(f128, i128, -1e18); + try testArgs(f128, i128, -1e14); + try testArgs(f128, i128, -1e10); + try testArgs(f128, i128, -1e6); + try testArgs(f128, i128, -1e2); + try testArgs(f128, i128, -1e0); + try testArgs(f128, i128, 0); + try testArgs(f128, i128, 1e0); + try testArgs(f128, i128, 1e2); + try testArgs(f128, i128, 1e6); + try testArgs(f128, i128, 1e10); + try testArgs(f128, i128, 1e14); + try testArgs(f128, i128, 1e18); + try testArgs(f128, i128, 1e22); + try testArgs(f128, i128, 1e26); + try testArgs(f128, i128, 1e30); + try testArgs(f128, i128, 1e34); + try testArgs(f128, i128, 1e38); + try testArgs(f128, i128, imax(i128) - 1); + try testArgs(f128, i128, imax(i128)); + + try testArgs(f128, u128, 0); + try testArgs(f128, u128, 1e0); + try testArgs(f128, u128, 1e2); + try testArgs(f128, u128, 1e6); + try testArgs(f128, u128, 1e10); + try testArgs(f128, u128, 1e14); + try testArgs(f128, u128, 1e18); + try testArgs(f128, u128, 1e22); + try testArgs(f128, u128, 1e26); + try testArgs(f128, u128, 1e30); + try testArgs(f128, u128, 1e34); + try testArgs(f128, u128, 1e38); + try testArgs(f128, u128, imax(u128) - 1); + try testArgs(f128, u128, imax(u128)); + + try testArgs(f128, i256, imin(i256)); + try testArgs(f128, i256, imin(i256) + 1); + try testArgs(f128, i256, -1e76); + try testArgs(f128, i256, -1e69); + try testArgs(f128, i256, -1e62); + try testArgs(f128, i256, -1e55); + try testArgs(f128, i256, -1e48); + try testArgs(f128, i256, -1e41); + try testArgs(f128, i256, -1e34); + try testArgs(f128, i256, -1e27); + try testArgs(f128, i256, -1e20); + try testArgs(f128, i256, -1e13); + try testArgs(f128, i256, -1e6); + try testArgs(f128, i256, -1e0); + try testArgs(f128, i256, 0); + try testArgs(f128, i256, 1e0); + try testArgs(f128, i256, 1e6); + try testArgs(f128, i256, 1e13); + try testArgs(f128, i256, 1e20); + try testArgs(f128, i256, 1e27); + try testArgs(f128, i256, 1e34); + try testArgs(f128, i256, 1e41); + try testArgs(f128, i256, 1e48); + try testArgs(f128, i256, 1e55); + try testArgs(f128, i256, 1e62); + try testArgs(f128, i256, 1e69); + try testArgs(f128, i256, 1e76); + try testArgs(f128, i256, imax(i256) - 1); + try testArgs(f128, i256, imax(i256)); + + try testArgs(f128, u256, 0); + try testArgs(f128, u256, 1e0); + try testArgs(f128, u256, 1e7); + try testArgs(f128, u256, 1e14); + try testArgs(f128, u256, 1e21); + try testArgs(f128, u256, 1e28); + try testArgs(f128, u256, 1e35); + try testArgs(f128, u256, 1e42); + try testArgs(f128, u256, 1e49); + try testArgs(f128, u256, 1e56); + try testArgs(f128, u256, 1e63); + try testArgs(f128, u256, 1e70); + try testArgs(f128, u256, 1e77); + try testArgs(f128, u256, imax(u256) - 1); + try testArgs(f128, u256, imax(u256)); + } + fn testIntVectorsFromFloatVectors() !void { + @setEvalBranchQuota(2_500); + + try testArgs(@Vector(1, i8), @Vector(1, f16), .{ + -0x0.8p8, + }); + try testArgs(@Vector(2, i8), @Vector(2, f16), .{ + next(f16, -0x0.8p8, -0.0), next(f16, next(f16, -0x0.8p8, -0.0), -0.0), + }); + try testArgs(@Vector(4, i8), @Vector(4, f16), .{ + -1e2, -1e1, -1e0, -1e-1, + }); + try testArgs(@Vector(8, i8), @Vector(8, f16), .{ + -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, + }); + try testArgs(@Vector(16, i8), @Vector(16, f16), .{ + 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), + -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, + }); + try testArgs(@Vector(32, i8), @Vector(32, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, + -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, + -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + }); + try testArgs(@Vector(64, i8), @Vector(64, f16), .{ + 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, + -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, + -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, + 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, + -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, + 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, + -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, + 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, + }); + try testArgs(@Vector(128, i8), @Vector(128, f16), .{ + -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, + -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, + 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, + -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, + 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, + -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, + 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, + -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, + 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, + -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, + -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, + 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, + -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, + -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, + }); + + try testArgs(@Vector(1, u8), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u8), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u8), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u8), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, next(f16, next(f16, 0x1p8, 0.0), 0.0), next(f16, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, + }); + try testArgs(@Vector(16, u8), @Vector(16, f16), .{ + 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, + }); + try testArgs(@Vector(32, u8), @Vector(32, f16), .{ + 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, + 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, + 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, + 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, + }); + try testArgs(@Vector(64, u8), @Vector(64, f16), .{ + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, + 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, + 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, + 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, + }); + try testArgs(@Vector(128, u8), @Vector(128, f16), .{ + 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, + 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, + 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, + 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, + 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, + 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, + 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, + 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, + 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, + 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, + 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, + 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, + 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, + 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, + 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, + }); + + try testArgs(@Vector(1, i16), @Vector(1, f16), .{ + -0x0.8p16, + }); + try testArgs(@Vector(2, i16), @Vector(2, f16), .{ + next(f16, -0x0.8p16, -0.0), next(f16, next(f16, -0x0.8p16, -0.0), -0.0), + }); + try testArgs(@Vector(4, i16), @Vector(4, f16), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i16), @Vector(8, f16), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i16), @Vector(16, f16), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f16, next(f16, 0x0.8p16, 0.0), 0.0), next(f16, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i16), @Vector(32, f16), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i16), @Vector(64, f16), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i16), @Vector(128, f16), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u16), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u16), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u16), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u16), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, 0x1p16, 0.0), 0.0), next(f16, 0x1p16, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u16), @Vector(16, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u16), @Vector(32, f16), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u16), @Vector(64, f16), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u16), @Vector(128, f16), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i32), @Vector(1, f16), .{ + -fmax(f16), + }); + try testArgs(@Vector(2, i32), @Vector(2, f16), .{ + next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), + }); + try testArgs(@Vector(4, i32), @Vector(4, f16), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i32), @Vector(8, f16), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i32), @Vector(16, f16), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i32), @Vector(32, f16), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i32), @Vector(64, f16), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i32), @Vector(128, f16), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u32), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u32), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u32), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u32), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u32), @Vector(16, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u32), @Vector(32, f16), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u32), @Vector(64, f16), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u32), @Vector(128, f16), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i64), @Vector(1, f16), .{ + -fmax(f16), + }); + try testArgs(@Vector(2, i64), @Vector(2, f16), .{ + next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), + }); + try testArgs(@Vector(4, i64), @Vector(4, f16), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i64), @Vector(8, f16), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i64), @Vector(16, f16), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i64), @Vector(32, f16), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i64), @Vector(64, f16), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i64), @Vector(128, f16), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u64), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u64), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u64), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u64), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u64), @Vector(16, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u64), @Vector(32, f16), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u64), @Vector(64, f16), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u64), @Vector(128, f16), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i128), @Vector(1, f16), .{ + -fmax(f16), + }); + try testArgs(@Vector(2, i128), @Vector(2, f16), .{ + next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), + }); + try testArgs(@Vector(4, i128), @Vector(4, f16), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i128), @Vector(8, f16), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i128), @Vector(16, f16), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i128), @Vector(32, f16), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i128), @Vector(64, f16), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u128), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u128), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u128), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u128), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u128), @Vector(16, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u128), @Vector(32, f16), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u128), @Vector(64, f16), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i256), @Vector(1, f16), .{ + -fmax(f16), + }); + try testArgs(@Vector(2, i256), @Vector(2, f16), .{ + next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), + }); + try testArgs(@Vector(4, i256), @Vector(4, f16), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i256), @Vector(8, f16), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i256), @Vector(16, f16), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i256), @Vector(32, f16), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i256), @Vector(64, f16), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u256), @Vector(1, f16), .{ + -0.0, + }); + try testArgs(@Vector(2, u256), @Vector(2, f16), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u256), @Vector(4, f16), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u256), @Vector(8, f16), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u256), @Vector(16, f16), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u256), @Vector(32, f16), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u256), @Vector(64, f16), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i8), @Vector(1, f32), .{ + -0x0.8p8, + }); + try testArgs(@Vector(2, i8), @Vector(2, f32), .{ + next(f32, -0x0.8p8, -0.0), next(f32, next(f32, -0x0.8p8, -0.0), -0.0), + }); + try testArgs(@Vector(4, i8), @Vector(4, f32), .{ + -1e2, -1e1, -1e0, -1e-1, + }); + try testArgs(@Vector(8, i8), @Vector(8, f32), .{ + -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, + }); + try testArgs(@Vector(16, i8), @Vector(16, f32), .{ + 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), + -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, + }); + try testArgs(@Vector(32, i8), @Vector(32, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, + -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, + -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + }); + try testArgs(@Vector(64, i8), @Vector(64, f32), .{ + 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, + -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, + -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, + 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, + -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, + 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, + -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, + 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, + }); + try testArgs(@Vector(128, i8), @Vector(128, f32), .{ + -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, + -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, + 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, + -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, + 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, + -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, + 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, + -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, + 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, + -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, + -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, + 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, + -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, + -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, + }); + + try testArgs(@Vector(1, u8), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u8), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u8), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u8), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, next(f32, next(f32, 0x1p8, 0.0), 0.0), next(f32, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, + }); + try testArgs(@Vector(16, u8), @Vector(16, f32), .{ + 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, + }); + try testArgs(@Vector(32, u8), @Vector(32, f32), .{ + 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, + 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, + 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, + 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, + }); + try testArgs(@Vector(64, u8), @Vector(64, f32), .{ + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, + 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, + 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, + 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, + }); + try testArgs(@Vector(128, u8), @Vector(128, f32), .{ + 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, + 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, + 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, + 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, + 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, + 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, + 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, + 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, + 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, + 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, + 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, + 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, + 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, + 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, + 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, + }); + + try testArgs(@Vector(1, i16), @Vector(1, f32), .{ + -0x0.8p16, + }); + try testArgs(@Vector(2, i16), @Vector(2, f32), .{ + next(f32, -0x0.8p16, -0.0), next(f32, next(f32, -0x0.8p16, -0.0), -0.0), + }); + try testArgs(@Vector(4, i16), @Vector(4, f32), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i16), @Vector(8, f32), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i16), @Vector(16, f32), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f32, next(f32, 0x0.8p16, 0.0), 0.0), next(f32, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i16), @Vector(32, f32), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i16), @Vector(64, f32), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i16), @Vector(128, f32), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u16), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u16), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u16), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u16), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p16, 0.0), 0.0), next(f32, 0x1p16, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u16), @Vector(16, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u16), @Vector(32, f32), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u16), @Vector(64, f32), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u16), @Vector(128, f32), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i32), @Vector(1, f32), .{ + -0x0.8p32, + }); + try testArgs(@Vector(2, i32), @Vector(2, f32), .{ + next(f32, -0x0.8p32, -0.0), next(f32, next(f32, -0x0.8p32, -0.0), -0.0), + }); + try testArgs(@Vector(4, i32), @Vector(4, f32), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i32), @Vector(8, f32), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i32), @Vector(16, f32), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f32, next(f32, 0x0.8p32, 0.0), 0.0), next(f32, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i32), @Vector(32, f32), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i32), @Vector(64, f32), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i32), @Vector(128, f32), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u32), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u32), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u32), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u32), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p32, 0.0), 0.0), next(f32, 0x1p32, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u32), @Vector(16, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u32), @Vector(32, f32), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u32), @Vector(64, f32), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u32), @Vector(128, f32), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i64), @Vector(1, f32), .{ + -0x0.8p64, + }); + try testArgs(@Vector(2, i64), @Vector(2, f32), .{ + next(f32, -0x0.8p64, -0.0), next(f32, next(f32, -0x0.8p64, -0.0), -0.0), + }); + try testArgs(@Vector(4, i64), @Vector(4, f32), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i64), @Vector(8, f32), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i64), @Vector(16, f32), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f32, next(f32, 0x0.8p64, 0.0), 0.0), next(f32, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i64), @Vector(32, f32), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i64), @Vector(64, f32), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i64), @Vector(128, f32), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u64), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u64), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u64), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u64), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p64, 0.0), 0.0), next(f32, 0x1p64, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u64), @Vector(16, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u64), @Vector(32, f32), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u64), @Vector(64, f32), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u64), @Vector(128, f32), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i128), @Vector(1, f32), .{ + -0x0.8p128, + }); + try testArgs(@Vector(2, i128), @Vector(2, f32), .{ + next(f32, -0x0.8p128, -0.0), next(f32, next(f32, -0x0.8p128, -0.0), -0.0), + }); + try testArgs(@Vector(4, i128), @Vector(4, f32), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i128), @Vector(8, f32), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i128), @Vector(16, f32), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f32, next(f32, 0x0.8p128, 0.0), 0.0), next(f32, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i128), @Vector(32, f32), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i128), @Vector(64, f32), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u128), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u128), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u128), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u128), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u128), @Vector(16, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u128), @Vector(32, f32), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u128), @Vector(64, f32), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i256), @Vector(1, f32), .{ + -fmax(f32), + }); + try testArgs(@Vector(2, i256), @Vector(2, f32), .{ + next(f32, -fmax(f32), -0.0), next(f32, next(f32, -fmax(f32), -0.0), -0.0), + }); + try testArgs(@Vector(4, i256), @Vector(4, f32), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i256), @Vector(8, f32), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i256), @Vector(16, f32), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i256), @Vector(32, f32), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i256), @Vector(64, f32), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u256), @Vector(1, f32), .{ + -0.0, + }); + try testArgs(@Vector(2, u256), @Vector(2, f32), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u256), @Vector(4, f32), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u256), @Vector(8, f32), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5, + }); + try testArgs(@Vector(16, u256), @Vector(16, f32), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u256), @Vector(32, f32), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u256), @Vector(64, f32), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i8), @Vector(1, f64), .{ + -0x0.8p8, + }); + try testArgs(@Vector(2, i8), @Vector(2, f64), .{ + next(f64, -0x0.8p8, -0.0), next(f64, next(f64, -0x0.8p8, -0.0), -0.0), + }); + try testArgs(@Vector(4, i8), @Vector(4, f64), .{ + -1e2, -1e1, -1e0, -1e-1, + }); + try testArgs(@Vector(8, i8), @Vector(8, f64), .{ + -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, + }); + try testArgs(@Vector(16, i8), @Vector(16, f64), .{ + 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), + -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, + }); + try testArgs(@Vector(32, i8), @Vector(32, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, + -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, + -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + }); + try testArgs(@Vector(64, i8), @Vector(64, f64), .{ + 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, + -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, + -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, + 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, + -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, + 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, + -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, + 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, + }); + try testArgs(@Vector(128, i8), @Vector(128, f64), .{ + -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, + -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, + 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, + -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, + 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, + -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, + 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, + -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, + 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, + -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, + -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, + 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, + -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, + -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, + }); + + try testArgs(@Vector(1, u8), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u8), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u8), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u8), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, next(f64, next(f64, 0x1p8, 0.0), 0.0), next(f64, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, + }); + try testArgs(@Vector(16, u8), @Vector(16, f64), .{ + 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, + }); + try testArgs(@Vector(32, u8), @Vector(32, f64), .{ + 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, + 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, + 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, + 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, + }); + try testArgs(@Vector(64, u8), @Vector(64, f64), .{ + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, + 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, + 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, + 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, + }); + try testArgs(@Vector(128, u8), @Vector(128, f64), .{ + 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, + 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, + 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, + 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, + 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, + 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, + 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, + 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, + 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, + 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, + 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, + 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, + 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, + 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, + 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, + }); + + try testArgs(@Vector(1, i16), @Vector(1, f64), .{ + -0x0.8p16, + }); + try testArgs(@Vector(2, i16), @Vector(2, f64), .{ + next(f64, -0x0.8p16, -0.0), next(f64, next(f64, -0x0.8p16, -0.0), -0.0), + }); + try testArgs(@Vector(4, i16), @Vector(4, f64), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i16), @Vector(8, f64), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i16), @Vector(16, f64), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f64, next(f64, 0x0.8p16, 0.0), 0.0), next(f64, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i16), @Vector(32, f64), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i16), @Vector(64, f64), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i16), @Vector(128, f64), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u16), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u16), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u16), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u16), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p16, 0.0), 0.0), next(f64, 0x1p16, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u16), @Vector(16, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u16), @Vector(32, f64), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u16), @Vector(64, f64), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u16), @Vector(128, f64), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i32), @Vector(1, f64), .{ + -0x0.8p32, + }); + try testArgs(@Vector(2, i32), @Vector(2, f64), .{ + next(f64, -0x0.8p32, -0.0), next(f64, next(f64, -0x0.8p32, -0.0), -0.0), + }); + try testArgs(@Vector(4, i32), @Vector(4, f64), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i32), @Vector(8, f64), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i32), @Vector(16, f64), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f64, next(f64, 0x0.8p32, 0.0), 0.0), next(f64, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i32), @Vector(32, f64), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i32), @Vector(64, f64), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i32), @Vector(128, f64), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u32), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u32), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u32), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u32), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p32, 0.0), 0.0), next(f64, 0x1p32, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u32), @Vector(16, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u32), @Vector(32, f64), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u32), @Vector(64, f64), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u32), @Vector(128, f64), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i64), @Vector(1, f64), .{ + -0x0.8p64, + }); + try testArgs(@Vector(2, i64), @Vector(2, f64), .{ + next(f64, -0x0.8p64, -0.0), next(f64, next(f64, -0x0.8p64, -0.0), -0.0), + }); + try testArgs(@Vector(4, i64), @Vector(4, f64), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i64), @Vector(8, f64), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i64), @Vector(16, f64), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f64, next(f64, 0x0.8p64, 0.0), 0.0), next(f64, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i64), @Vector(32, f64), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i64), @Vector(64, f64), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i64), @Vector(128, f64), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u64), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u64), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u64), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u64), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p64, 0.0), 0.0), next(f64, 0x1p64, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u64), @Vector(16, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u64), @Vector(32, f64), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u64), @Vector(64, f64), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u64), @Vector(128, f64), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i128), @Vector(1, f64), .{ + -0x0.8p128, + }); + try testArgs(@Vector(2, i128), @Vector(2, f64), .{ + next(f64, -0x0.8p128, -0.0), next(f64, next(f64, -0x0.8p128, -0.0), -0.0), + }); + try testArgs(@Vector(4, i128), @Vector(4, f64), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i128), @Vector(8, f64), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i128), @Vector(16, f64), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f64, next(f64, 0x0.8p128, 0.0), 0.0), next(f64, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i128), @Vector(32, f64), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i128), @Vector(64, f64), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u128), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u128), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u128), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u128), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p128, 0.0), 0.0), next(f64, 0x1p128, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u128), @Vector(16, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u128), @Vector(32, f64), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u128), @Vector(64, f64), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i256), @Vector(1, f64), .{ + -0x0.8p256, + }); + try testArgs(@Vector(2, i256), @Vector(2, f64), .{ + next(f64, -0x0.8p256, -0.0), next(f64, next(f64, -0x0.8p256, -0.0), -0.0), + }); + try testArgs(@Vector(4, i256), @Vector(4, f64), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i256), @Vector(8, f64), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i256), @Vector(16, f64), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f64, next(f64, 0x0.8p256, 0.0), 0.0), next(f64, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i256), @Vector(32, f64), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i256), @Vector(64, f64), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u256), @Vector(1, f64), .{ + -0.0, + }); + try testArgs(@Vector(2, u256), @Vector(2, f64), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u256), @Vector(4, f64), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u256), @Vector(8, f64), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p256, 0.0), 0.0), next(f64, 0x1p256, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u256), @Vector(16, f64), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u256), @Vector(32, f64), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u256), @Vector(64, f64), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i8), @Vector(1, f80), .{ + -0x0.8p8, + }); + try testArgs(@Vector(2, i8), @Vector(2, f80), .{ + next(f80, -0x0.8p8, -0.0), next(f80, next(f80, -0x0.8p8, -0.0), -0.0), + }); + try testArgs(@Vector(4, i8), @Vector(4, f80), .{ + -1e2, -1e1, -1e0, -1e-1, + }); + try testArgs(@Vector(8, i8), @Vector(8, f80), .{ + -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, + }); + try testArgs(@Vector(16, i8), @Vector(16, f80), .{ + 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), + -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, + }); + try testArgs(@Vector(32, i8), @Vector(32, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, + -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, + -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + }); + try testArgs(@Vector(64, i8), @Vector(64, f80), .{ + 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, + -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, + -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, + 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, + -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, + 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, + -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, + 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, + }); + try testArgs(@Vector(128, i8), @Vector(128, f80), .{ + -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, + -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, + 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, + -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, + 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, + -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, + 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, + -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, + 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, + -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, + -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, + 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, + -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, + -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, + }); + + try testArgs(@Vector(1, u8), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u8), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u8), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u8), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, next(f80, next(f80, 0x1p8, 0.0), 0.0), next(f80, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, + }); + try testArgs(@Vector(16, u8), @Vector(16, f80), .{ + 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, + }); + try testArgs(@Vector(32, u8), @Vector(32, f80), .{ + 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, + 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, + 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, + 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, + }); + try testArgs(@Vector(64, u8), @Vector(64, f80), .{ + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, + 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, + 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, + 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, + }); + try testArgs(@Vector(128, u8), @Vector(128, f80), .{ + 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, + 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, + 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, + 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, + 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, + 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, + 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, + 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, + 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, + 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, + 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, + 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, + 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, + 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, + 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, + }); + + try testArgs(@Vector(1, i16), @Vector(1, f80), .{ + -0x0.8p16, + }); + try testArgs(@Vector(2, i16), @Vector(2, f80), .{ + next(f80, -0x0.8p16, -0.0), next(f80, next(f80, -0x0.8p16, -0.0), -0.0), + }); + try testArgs(@Vector(4, i16), @Vector(4, f80), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i16), @Vector(8, f80), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i16), @Vector(16, f80), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f80, next(f80, 0x0.8p16, 0.0), 0.0), next(f80, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i16), @Vector(32, f80), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i16), @Vector(64, f80), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i16), @Vector(128, f80), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u16), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u16), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u16), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u16), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p16, 0.0), 0.0), next(f80, 0x1p16, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u16), @Vector(16, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u16), @Vector(32, f80), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u16), @Vector(64, f80), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u16), @Vector(128, f80), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i32), @Vector(1, f80), .{ + -0x0.8p32, + }); + try testArgs(@Vector(2, i32), @Vector(2, f80), .{ + next(f80, -0x0.8p32, -0.0), next(f80, next(f80, -0x0.8p32, -0.0), -0.0), + }); + try testArgs(@Vector(4, i32), @Vector(4, f80), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i32), @Vector(8, f80), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i32), @Vector(16, f80), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f80, next(f80, 0x0.8p32, 0.0), 0.0), next(f80, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i32), @Vector(32, f80), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i32), @Vector(64, f80), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i32), @Vector(128, f80), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u32), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u32), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u32), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u32), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p32, 0.0), 0.0), next(f80, 0x1p32, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u32), @Vector(16, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u32), @Vector(32, f80), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u32), @Vector(64, f80), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u32), @Vector(128, f80), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i64), @Vector(1, f80), .{ + -0x0.8p64, + }); + try testArgs(@Vector(2, i64), @Vector(2, f80), .{ + next(f80, -0x0.8p64, -0.0), next(f80, next(f80, -0x0.8p64, -0.0), -0.0), + }); + try testArgs(@Vector(4, i64), @Vector(4, f80), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i64), @Vector(8, f80), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i64), @Vector(16, f80), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f80, next(f80, 0x0.8p64, 0.0), 0.0), next(f80, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i64), @Vector(32, f80), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i64), @Vector(64, f80), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i64), @Vector(128, f80), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u64), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u64), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u64), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u64), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p64, 0.0), 0.0), next(f80, 0x1p64, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u64), @Vector(16, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u64), @Vector(32, f80), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u64), @Vector(64, f80), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u64), @Vector(128, f80), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i128), @Vector(1, f80), .{ + -0x0.8p128, + }); + try testArgs(@Vector(2, i128), @Vector(2, f80), .{ + next(f80, -0x0.8p128, -0.0), next(f80, next(f80, -0x0.8p128, -0.0), -0.0), + }); + try testArgs(@Vector(4, i128), @Vector(4, f80), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i128), @Vector(8, f80), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i128), @Vector(16, f80), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f80, next(f80, 0x0.8p128, 0.0), 0.0), next(f80, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i128), @Vector(32, f80), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i128), @Vector(64, f80), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u128), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u128), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u128), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u128), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p128, 0.0), 0.0), next(f80, 0x1p128, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u128), @Vector(16, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u128), @Vector(32, f80), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u128), @Vector(64, f80), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i256), @Vector(1, f80), .{ + -0x0.8p256, + }); + try testArgs(@Vector(2, i256), @Vector(2, f80), .{ + next(f80, -0x0.8p256, -0.0), next(f80, next(f80, -0x0.8p256, -0.0), -0.0), + }); + try testArgs(@Vector(4, i256), @Vector(4, f80), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i256), @Vector(8, f80), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i256), @Vector(16, f80), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f80, next(f80, 0x0.8p256, 0.0), 0.0), next(f80, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i256), @Vector(32, f80), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i256), @Vector(64, f80), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u256), @Vector(1, f80), .{ + -0.0, + }); + try testArgs(@Vector(2, u256), @Vector(2, f80), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u256), @Vector(4, f80), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u256), @Vector(8, f80), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p256, 0.0), 0.0), next(f80, 0x1p256, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u256), @Vector(16, f80), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u256), @Vector(32, f80), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u256), @Vector(64, f80), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i8), @Vector(1, f128), .{ + -0x0.8p8, + }); + try testArgs(@Vector(2, i8), @Vector(2, f128), .{ + next(f128, -0x0.8p8, -0.0), next(f128, next(f128, -0x0.8p8, -0.0), -0.0), + }); + try testArgs(@Vector(4, i8), @Vector(4, f128), .{ + -1e2, -1e1, -1e0, -1e-1, + }); + try testArgs(@Vector(8, i8), @Vector(8, f128), .{ + -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, + }); + try testArgs(@Vector(16, i8), @Vector(16, f128), .{ + 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), + -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, + }); + try testArgs(@Vector(32, i8), @Vector(32, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, + -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, + -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + }); + try testArgs(@Vector(64, i8), @Vector(64, f128), .{ + 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, + -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, + -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, + 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, + -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, + 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, + -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, + 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, + }); + try testArgs(@Vector(128, i8), @Vector(128, f128), .{ + -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, + -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, + 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, + -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, + 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, + -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, + 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, + -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, + 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, + -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, + -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, + 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, + -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, + -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, + }); + + try testArgs(@Vector(1, u8), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u8), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u8), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u8), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, next(f128, next(f128, 0x1p8, 0.0), 0.0), next(f128, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, + }); + try testArgs(@Vector(16, u8), @Vector(16, f128), .{ + 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, + 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, + }); + try testArgs(@Vector(32, u8), @Vector(32, f128), .{ + 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, + 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, + 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, + 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, + }); + try testArgs(@Vector(64, u8), @Vector(64, f128), .{ + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, + 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, + 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, + 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, + 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, + }); + try testArgs(@Vector(128, u8), @Vector(128, f128), .{ + 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, + 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, + 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, + 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, + 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, + 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, + 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, + 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, + 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, + 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, + 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, + 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, + 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, + 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, + 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, + }); + + try testArgs(@Vector(1, i16), @Vector(1, f128), .{ + -0x0.8p16, + }); + try testArgs(@Vector(2, i16), @Vector(2, f128), .{ + next(f128, -0x0.8p16, -0.0), next(f128, next(f128, -0x0.8p16, -0.0), -0.0), + }); + try testArgs(@Vector(4, i16), @Vector(4, f128), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i16), @Vector(8, f128), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i16), @Vector(16, f128), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f128, next(f128, 0x0.8p16, 0.0), 0.0), next(f128, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i16), @Vector(32, f128), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i16), @Vector(64, f128), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i16), @Vector(128, f128), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u16), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u16), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u16), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u16), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p16, 0.0), 0.0), next(f128, 0x1p16, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u16), @Vector(16, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u16), @Vector(32, f128), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u16), @Vector(64, f128), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u16), @Vector(128, f128), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i32), @Vector(1, f128), .{ + -0x0.8p32, + }); + try testArgs(@Vector(2, i32), @Vector(2, f128), .{ + next(f128, -0x0.8p32, -0.0), next(f128, next(f128, -0x0.8p32, -0.0), -0.0), + }); + try testArgs(@Vector(4, i32), @Vector(4, f128), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i32), @Vector(8, f128), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i32), @Vector(16, f128), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f128, next(f128, 0x0.8p32, 0.0), 0.0), next(f128, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i32), @Vector(32, f128), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i32), @Vector(64, f128), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i32), @Vector(128, f128), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u32), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u32), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u32), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u32), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p32, 0.0), 0.0), next(f128, 0x1p32, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u32), @Vector(16, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u32), @Vector(32, f128), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u32), @Vector(64, f128), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u32), @Vector(128, f128), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i64), @Vector(1, f128), .{ + -0x0.8p64, + }); + try testArgs(@Vector(2, i64), @Vector(2, f128), .{ + next(f128, -0x0.8p64, -0.0), next(f128, next(f128, -0x0.8p64, -0.0), -0.0), + }); + try testArgs(@Vector(4, i64), @Vector(4, f128), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i64), @Vector(8, f128), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i64), @Vector(16, f128), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f128, next(f128, 0x0.8p64, 0.0), 0.0), next(f128, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i64), @Vector(32, f128), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i64), @Vector(64, f128), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + try testArgs(@Vector(128, i64), @Vector(128, f128), .{ + -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, + 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, + -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, + 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, + -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, + 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, + -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, + -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, + -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, + 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, + -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, + 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, + -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, + 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, + -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, + }); + + try testArgs(@Vector(1, u64), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u64), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u64), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u64), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p64, 0.0), 0.0), next(f128, 0x1p64, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u64), @Vector(16, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u64), @Vector(32, f128), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u64), @Vector(64, f128), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + try testArgs(@Vector(128, u64), @Vector(128, f128), .{ + 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, + 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, + 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, + 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, + 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, + 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, + 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, + 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, + 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, + 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, + 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, + 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, + 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, + 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, + 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, + 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, + }); + + try testArgs(@Vector(1, i128), @Vector(1, f128), .{ + -0x0.8p128, + }); + try testArgs(@Vector(2, i128), @Vector(2, f128), .{ + next(f128, -0x0.8p128, -0.0), next(f128, next(f128, -0x0.8p128, -0.0), -0.0), + }); + try testArgs(@Vector(4, i128), @Vector(4, f128), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i128), @Vector(8, f128), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i128), @Vector(16, f128), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f128, next(f128, 0x0.8p128, 0.0), 0.0), next(f128, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i128), @Vector(32, f128), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i128), @Vector(64, f128), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u128), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u128), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u128), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u128), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p128, 0.0), 0.0), next(f128, 0x1p128, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u128), @Vector(16, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u128), @Vector(32, f128), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u128), @Vector(64, f128), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + + try testArgs(@Vector(1, i256), @Vector(1, f128), .{ + -0x0.8p256, + }); + try testArgs(@Vector(2, i256), @Vector(2, f128), .{ + next(f128, -0x0.8p256, -0.0), next(f128, next(f128, -0x0.8p256, -0.0), -0.0), + }); + try testArgs(@Vector(4, i256), @Vector(4, f128), .{ + -1e4, -1e3, -1e2, -1e1, + }); + try testArgs(@Vector(8, i256), @Vector(8, f128), .{ + -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, + }); + try testArgs(@Vector(16, i256), @Vector(16, f128), .{ + 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, + 1e3, 1e4, next(f128, next(f128, 0x0.8p256, 0.0), 0.0), next(f128, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(32, i256), @Vector(32, f128), .{ + -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, + 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, + -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, + -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, + }); + try testArgs(@Vector(64, i256), @Vector(64, f128), .{ + 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, + -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, + 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, + -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, + 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, + -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, + -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, + 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, + }); + + try testArgs(@Vector(1, u256), @Vector(1, f128), .{ + -0.0, + }); + try testArgs(@Vector(2, u256), @Vector(2, f128), .{ + 0.0, 1e-5, + }); + try testArgs(@Vector(4, u256), @Vector(4, f128), .{ + 1e-4, 1e-3, 1e-2, 1e-1, + }); + try testArgs(@Vector(8, u256), @Vector(8, f128), .{ + 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p256, 0.0), 0.0), next(f128, 0x1p256, 0.0), 2e-5, + }); + try testArgs(@Vector(16, u256), @Vector(16, f128), .{ + 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, + 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, + }); + try testArgs(@Vector(32, u256), @Vector(32, f128), .{ + 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, + 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, + 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, + 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, + }); + try testArgs(@Vector(64, u256), @Vector(64, f128), .{ + 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, + 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, + 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, + 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, + 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, + 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, + 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, + 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, + }); + } + fn testFloatVectorsFromIntVectors() !void { + @setEvalBranchQuota(2_700); + + try testArgs(@Vector(1, f16), @Vector(1, i8), .{ + imin(i8), + }); + try testArgs(@Vector(2, f16), @Vector(2, i8), .{ + imin(i8) + 1, -1e2, + }); + try testArgs(@Vector(4, f16), @Vector(4, i8), .{ + -1e1, -1e0, 0, 1e0, + }); + try testArgs(@Vector(8, f16), @Vector(8, i8), .{ + 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, + }); + try testArgs(@Vector(16, f16), @Vector(16, i8), .{ + 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, + 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, + }); + try testArgs(@Vector(32, f16), @Vector(32, i8), .{ + 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, + 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, + 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, + 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, + }); + try testArgs(@Vector(64, f16), @Vector(64, i8), .{ + 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, + 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, + 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, + 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, + imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, + imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, + -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, + imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, + }); + try testArgs(@Vector(128, f16), @Vector(128, i8), .{ + imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, + -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, + imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, + imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, + -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, + imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, + imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, + -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, + imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, + imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, + -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, + imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, + imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, + -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, + imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, + imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u8), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u8), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u8), .{ + 1e2, imax(u8) - 1, imax(u8), 2e0, + }); + try testArgs(@Vector(8, f16), @Vector(8, u8), .{ + 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, + }); + try testArgs(@Vector(16, f16), @Vector(16, u8), .{ + imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, + imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, + }); + try testArgs(@Vector(32, f16), @Vector(32, u8), .{ + imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, + imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, + imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, + imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, + }); + try testArgs(@Vector(64, f16), @Vector(64, u8), .{ + imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, + imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, + imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, + imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, + imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, + imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, + 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, + imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, + }); + try testArgs(@Vector(128, f16), @Vector(128, u8), .{ + imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, + 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, + imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, + imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, + 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, + imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, + imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, + 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, + imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, + imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, + 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, + imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, + imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, + 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, + imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, + imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, + }); + + try testArgs(@Vector(1, f16), @Vector(1, i16), .{ + imin(i16), + }); + try testArgs(@Vector(2, f16), @Vector(2, i16), .{ + imin(i16) + 1, -1e4, + }); + try testArgs(@Vector(4, f16), @Vector(4, i16), .{ + -1e3, -1e2, -1e1, -1e0, + }); + try testArgs(@Vector(8, f16), @Vector(8, i16), .{ + 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), + }); + try testArgs(@Vector(16, f16), @Vector(16, i16), .{ + imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, + }); + try testArgs(@Vector(32, f16), @Vector(32, i16), .{ + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, + -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, + imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, + }); + try testArgs(@Vector(64, f16), @Vector(64, i16), .{ + 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, + -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, + imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, + 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, + -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, + imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, + 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, + -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, + }); + try testArgs(@Vector(128, f16), @Vector(128, i16), .{ + imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, + 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, + -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, + imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, + 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, + -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, + imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, + 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, + -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, + imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, + 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, + -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, + imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, + 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, + -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, + imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u16), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u16), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u16), .{ + 1e2, 1e3, 1e4, imax(u16) - 1, + }); + try testArgs(@Vector(8, f16), @Vector(8, u16), .{ + imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, + }); + try testArgs(@Vector(16, f16), @Vector(16, u16), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f16), @Vector(32, u16), .{ + 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f16), @Vector(64, u16), .{ + 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, + }); + try testArgs(@Vector(128, f16), @Vector(128, u16), .{ + 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f16), @Vector(1, i32), .{ + imin(i32), + }); + try testArgs(@Vector(2, f16), @Vector(2, i32), .{ + imin(i32) + 1, -1e9, + }); + try testArgs(@Vector(4, f16), @Vector(4, i32), .{ + -1e8, -1e7, -1e6, -1e5, + }); + try testArgs(@Vector(8, f16), @Vector(8, i32), .{ + -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, + }); + try testArgs(@Vector(16, f16), @Vector(16, i32), .{ + 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, + }); + try testArgs(@Vector(32, f16), @Vector(32, i32), .{ + -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, + 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, + imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + }); + try testArgs(@Vector(64, f16), @Vector(64, i32), .{ + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, + imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, + -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, + 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, + -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, + -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, + 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, + -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, + }); + try testArgs(@Vector(128, f16), @Vector(128, i32), .{ + 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, + imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, + -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, + imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, + -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, + 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, + -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, + -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, + 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, + -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, + 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, + imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, + -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, + imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u32), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u32), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u32), .{ + 1e2, 1e3, 1e4, imax(u32) - 1, + }); + try testArgs(@Vector(8, f16), @Vector(8, u32), .{ + imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, + }); + try testArgs(@Vector(16, f16), @Vector(16, u32), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f16), @Vector(32, u32), .{ + 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f16), @Vector(64, u32), .{ + 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, + }); + try testArgs(@Vector(128, f16), @Vector(128, u32), .{ + 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f16), @Vector(1, i64), .{ + imin(i64), + }); + try testArgs(@Vector(2, f16), @Vector(2, i64), .{ + imin(i64) + 1, -1e18, + }); + try testArgs(@Vector(4, f16), @Vector(4, i64), .{ + -1e17, -1e16, -1e15, -1e14, + }); + try testArgs(@Vector(8, f16), @Vector(8, i64), .{ + -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, + }); + try testArgs(@Vector(16, f16), @Vector(16, i64), .{ + -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + }); + try testArgs(@Vector(32, f16), @Vector(32, i64), .{ + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, + 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, + -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, + -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(64, f16), @Vector(64, i64), .{ + -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, + 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, + 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, + -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, + -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, + -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, + 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, + 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, + }); + try testArgs(@Vector(128, f16), @Vector(128, i64), .{ + imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, + -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, + -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, + -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, + -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, + -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, + -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, + -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, + 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, + 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u64), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u64), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u64), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f16), @Vector(8, u64), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f16), @Vector(16, u64), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), + 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, + }); + try testArgs(@Vector(32, f16), @Vector(32, u64), .{ + 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, + 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, + 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, + }); + try testArgs(@Vector(64, f16), @Vector(64, u64), .{ + imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, + 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, + 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, + 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, + 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, + }); + try testArgs(@Vector(128, f16), @Vector(128, u64), .{ + imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, + 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, + 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, + 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, + 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, + 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, + 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, + 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, + 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, + 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, + 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, + 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, + imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, + 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, + 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, + }); + + try testArgs(@Vector(1, f16), @Vector(1, i128), .{ + imin(i128), + }); + try testArgs(@Vector(2, f16), @Vector(2, i128), .{ + imin(i128) + 1, -1e38, + }); + try testArgs(@Vector(4, f16), @Vector(4, i128), .{ + -1e37, -1e36, -1e35, -1e34, + }); + try testArgs(@Vector(8, f16), @Vector(8, i128), .{ + -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, + }); + try testArgs(@Vector(16, f16), @Vector(16, i128), .{ + -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, + -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, + }); + try testArgs(@Vector(32, f16), @Vector(32, i128), .{ + -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, + -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, + 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, + 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, + }); + try testArgs(@Vector(64, f16), @Vector(64, i128), .{ + 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, + 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, + 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, + -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, + -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, + -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, + -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, + -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, + }); + try testArgs(@Vector(128, f16), @Vector(128, i128), .{ + 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, + 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, + 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, + 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, + 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, + -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, + -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, + -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, + -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, + -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, + -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u128), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u128), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u128), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f16), @Vector(8, u128), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f16), @Vector(16, u128), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f16), @Vector(32, u128), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, + 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, + 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, + }); + try testArgs(@Vector(64, f16), @Vector(64, u128), .{ + 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, + 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, + 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, + }); + try testArgs(@Vector(128, f16), @Vector(128, u128), .{ + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, + 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, + 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, + 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, + 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, + 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, + 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, + 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, + 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, + 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, + 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, + 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, + }); + + try testArgs(@Vector(1, f16), @Vector(1, i256), .{ + imin(i256), + }); + try testArgs(@Vector(2, f16), @Vector(2, i256), .{ + imin(i256) + 1, -1e76, + }); + try testArgs(@Vector(4, f16), @Vector(4, i256), .{ + -1e75, -1e74, -1e73, -1e72, + }); + try testArgs(@Vector(8, f16), @Vector(8, i256), .{ + -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, + }); + try testArgs(@Vector(16, f16), @Vector(16, i256), .{ + -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, + -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, + }); + try testArgs(@Vector(32, f16), @Vector(32, i256), .{ + -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, + -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, + -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, + -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, + }); + try testArgs(@Vector(64, f16), @Vector(64, i256), .{ + -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, + -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, + 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, + 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, + 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, + 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, + 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, + }); + try testArgs(@Vector(128, f16), @Vector(128, i256), .{ + 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, + 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, + 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, + 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), + imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, + -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, + -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, + -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, + -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, + -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, + -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, + -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, + -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, + -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, + 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, + }); + + try testArgs(@Vector(1, f16), @Vector(1, u256), .{ + 0, + }); + try testArgs(@Vector(2, f16), @Vector(2, u256), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f16), @Vector(4, u256), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f16), @Vector(8, u256), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f16), @Vector(16, u256), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f16), @Vector(32, u256), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, + 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, + 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, + }); + try testArgs(@Vector(64, f16), @Vector(64, u256), .{ + 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, + 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, + imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, + 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, + 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, + 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, + 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, + 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, + }); + try testArgs(@Vector(128, f16), @Vector(128, u256), .{ + 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, + 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, + 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, + 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, + imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, + 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, + 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, + 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, + 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, + 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, + 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, + 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, + 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, + 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, + 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, + 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i8), .{ + imin(i8), + }); + try testArgs(@Vector(2, f32), @Vector(2, i8), .{ + imin(i8) + 1, -1e2, + }); + try testArgs(@Vector(4, f32), @Vector(4, i8), .{ + -1e1, -1e0, 0, 1e0, + }); + try testArgs(@Vector(8, f32), @Vector(8, i8), .{ + 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, + }); + try testArgs(@Vector(16, f32), @Vector(16, i8), .{ + 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, + 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, + }); + try testArgs(@Vector(32, f32), @Vector(32, i8), .{ + 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, + 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, + 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, + 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, + }); + try testArgs(@Vector(64, f32), @Vector(64, i8), .{ + 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, + 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, + 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, + 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, + imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, + imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, + -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, + imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, + }); + try testArgs(@Vector(128, f32), @Vector(128, i8), .{ + imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, + -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, + imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, + imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, + -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, + imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, + imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, + -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, + imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, + imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, + -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, + imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, + imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, + -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, + imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, + imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u8), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u8), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u8), .{ + 1e2, imax(u8) - 1, imax(u8), 2e0, + }); + try testArgs(@Vector(8, f32), @Vector(8, u8), .{ + 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, + }); + try testArgs(@Vector(16, f32), @Vector(16, u8), .{ + imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, + imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, + }); + try testArgs(@Vector(32, f32), @Vector(32, u8), .{ + imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, + imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, + imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, + imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, + }); + try testArgs(@Vector(64, f32), @Vector(64, u8), .{ + imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, + imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, + imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, + imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, + imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, + imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, + 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, + imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, + }); + try testArgs(@Vector(128, f32), @Vector(128, u8), .{ + imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, + 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, + imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, + imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, + 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, + imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, + imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, + 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, + imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, + imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, + 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, + imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, + imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, + 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, + imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, + imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i16), .{ + imin(i16), + }); + try testArgs(@Vector(2, f32), @Vector(2, i16), .{ + imin(i16) + 1, -1e4, + }); + try testArgs(@Vector(4, f32), @Vector(4, i16), .{ + -1e3, -1e2, -1e1, -1e0, + }); + try testArgs(@Vector(8, f32), @Vector(8, i16), .{ + 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), + }); + try testArgs(@Vector(16, f32), @Vector(16, i16), .{ + imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, + }); + try testArgs(@Vector(32, f32), @Vector(32, i16), .{ + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, + -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, + imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, + }); + try testArgs(@Vector(64, f32), @Vector(64, i16), .{ + 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, + -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, + imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, + 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, + -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, + imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, + 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, + -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, + }); + try testArgs(@Vector(128, f32), @Vector(128, i16), .{ + imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, + 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, + -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, + imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, + 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, + -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, + imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, + 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, + -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, + imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, + 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, + -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, + imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, + 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, + -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, + imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u16), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u16), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u16), .{ + 1e2, 1e3, 1e4, imax(u16) - 1, + }); + try testArgs(@Vector(8, f32), @Vector(8, u16), .{ + imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, + }); + try testArgs(@Vector(16, f32), @Vector(16, u16), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f32), @Vector(32, u16), .{ + 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f32), @Vector(64, u16), .{ + 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, + }); + try testArgs(@Vector(128, f32), @Vector(128, u16), .{ + 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i32), .{ + imin(i32), + }); + try testArgs(@Vector(2, f32), @Vector(2, i32), .{ + imin(i32) + 1, -1e9, + }); + try testArgs(@Vector(4, f32), @Vector(4, i32), .{ + -1e8, -1e7, -1e6, -1e5, + }); + try testArgs(@Vector(8, f32), @Vector(8, i32), .{ + -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, + }); + try testArgs(@Vector(16, f32), @Vector(16, i32), .{ + 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, + }); + try testArgs(@Vector(32, f32), @Vector(32, i32), .{ + -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, + 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, + imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + }); + try testArgs(@Vector(64, f32), @Vector(64, i32), .{ + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, + imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, + -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, + 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, + -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, + -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, + 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, + -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, + }); + try testArgs(@Vector(128, f32), @Vector(128, i32), .{ + 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, + imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, + -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, + imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, + -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, + 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, + -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, + -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, + 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, + -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, + 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, + imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, + -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, + imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u32), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u32), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u32), .{ + 1e2, 1e3, 1e4, imax(u32) - 1, + }); + try testArgs(@Vector(8, f32), @Vector(8, u32), .{ + imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, + }); + try testArgs(@Vector(16, f32), @Vector(16, u32), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f32), @Vector(32, u32), .{ + 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f32), @Vector(64, u32), .{ + 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, + }); + try testArgs(@Vector(128, f32), @Vector(128, u32), .{ + 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i64), .{ + imin(i64), + }); + try testArgs(@Vector(2, f32), @Vector(2, i64), .{ + imin(i64) + 1, -1e18, + }); + try testArgs(@Vector(4, f32), @Vector(4, i64), .{ + -1e17, -1e16, -1e15, -1e14, + }); + try testArgs(@Vector(8, f32), @Vector(8, i64), .{ + -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, + }); + try testArgs(@Vector(16, f32), @Vector(16, i64), .{ + -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + }); + try testArgs(@Vector(32, f32), @Vector(32, i64), .{ + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, + 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, + -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, + -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(64, f32), @Vector(64, i64), .{ + -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, + 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, + 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, + -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, + -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, + -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, + 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, + 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, + }); + try testArgs(@Vector(128, f32), @Vector(128, i64), .{ + imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, + -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, + -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, + -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, + -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, + -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, + -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, + -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, + 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, + 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u64), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u64), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u64), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f32), @Vector(8, u64), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f32), @Vector(16, u64), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), + 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, + }); + try testArgs(@Vector(32, f32), @Vector(32, u64), .{ + 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, + 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, + 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, + }); + try testArgs(@Vector(64, f32), @Vector(64, u64), .{ + imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, + 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, + 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, + 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, + 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, + }); + try testArgs(@Vector(128, f32), @Vector(128, u64), .{ + imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, + 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, + 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, + 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, + 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, + 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, + 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, + 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, + 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, + 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, + 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, + 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, + imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, + 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, + 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i128), .{ + imin(i128), + }); + try testArgs(@Vector(2, f32), @Vector(2, i128), .{ + imin(i128) + 1, -1e38, + }); + try testArgs(@Vector(4, f32), @Vector(4, i128), .{ + -1e37, -1e36, -1e35, -1e34, + }); + try testArgs(@Vector(8, f32), @Vector(8, i128), .{ + -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, + }); + try testArgs(@Vector(16, f32), @Vector(16, i128), .{ + -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, + -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, + }); + try testArgs(@Vector(32, f32), @Vector(32, i128), .{ + -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, + -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, + 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, + 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, + }); + try testArgs(@Vector(64, f32), @Vector(64, i128), .{ + 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, + 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, + 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, + -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, + -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, + -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, + -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, + -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, + }); + try testArgs(@Vector(128, f32), @Vector(128, i128), .{ + 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, + 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, + 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, + 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, + 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, + -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, + -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, + -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, + -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, + -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, + -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u128), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u128), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u128), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f32), @Vector(8, u128), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f32), @Vector(16, u128), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f32), @Vector(32, u128), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, + 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, + 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, + }); + try testArgs(@Vector(64, f32), @Vector(64, u128), .{ + 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, + 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, + 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, + }); + try testArgs(@Vector(128, f32), @Vector(128, u128), .{ + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, + 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, + 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, + 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, + 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, + 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, + 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, + 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, + 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, + 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, + 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, + 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, + }); + + try testArgs(@Vector(1, f32), @Vector(1, i256), .{ + imin(i256), + }); + try testArgs(@Vector(2, f32), @Vector(2, i256), .{ + imin(i256) + 1, -1e76, + }); + try testArgs(@Vector(4, f32), @Vector(4, i256), .{ + -1e75, -1e74, -1e73, -1e72, + }); + try testArgs(@Vector(8, f32), @Vector(8, i256), .{ + -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, + }); + try testArgs(@Vector(16, f32), @Vector(16, i256), .{ + -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, + -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, + }); + try testArgs(@Vector(32, f32), @Vector(32, i256), .{ + -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, + -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, + -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, + -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, + }); + try testArgs(@Vector(64, f32), @Vector(64, i256), .{ + -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, + -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, + 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, + 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, + 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, + 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, + 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, + }); + try testArgs(@Vector(128, f32), @Vector(128, i256), .{ + 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, + 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, + 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, + 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), + imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, + -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, + -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, + -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, + -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, + -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, + -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, + -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, + -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, + -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, + 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, + }); + + try testArgs(@Vector(1, f32), @Vector(1, u256), .{ + 0, + }); + try testArgs(@Vector(2, f32), @Vector(2, u256), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f32), @Vector(4, u256), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f32), @Vector(8, u256), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f32), @Vector(16, u256), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f32), @Vector(32, u256), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, + 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, + 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, + }); + try testArgs(@Vector(64, f32), @Vector(64, u256), .{ + 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, + 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, + imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, + 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, + 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, + 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, + 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, + 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, + }); + try testArgs(@Vector(128, f32), @Vector(128, u256), .{ + 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, + 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, + 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, + 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, + imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, + 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, + 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, + 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, + 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, + 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, + 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, + 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, + 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, + 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, + 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, + 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i8), .{ + imin(i8), + }); + try testArgs(@Vector(2, f64), @Vector(2, i8), .{ + imin(i8) + 1, -1e2, + }); + try testArgs(@Vector(4, f64), @Vector(4, i8), .{ + -1e1, -1e0, 0, 1e0, + }); + try testArgs(@Vector(8, f64), @Vector(8, i8), .{ + 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, + }); + try testArgs(@Vector(16, f64), @Vector(16, i8), .{ + 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, + 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, + }); + try testArgs(@Vector(32, f64), @Vector(32, i8), .{ + 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, + 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, + 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, + 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, + }); + try testArgs(@Vector(64, f64), @Vector(64, i8), .{ + 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, + 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, + 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, + 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, + imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, + imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, + -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, + imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, + }); + try testArgs(@Vector(128, f64), @Vector(128, i8), .{ + imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, + -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, + imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, + imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, + -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, + imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, + imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, + -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, + imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, + imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, + -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, + imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, + imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, + -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, + imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, + imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u8), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u8), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u8), .{ + 1e2, imax(u8) - 1, imax(u8), 2e0, + }); + try testArgs(@Vector(8, f64), @Vector(8, u8), .{ + 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, + }); + try testArgs(@Vector(16, f64), @Vector(16, u8), .{ + imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, + imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, + }); + try testArgs(@Vector(32, f64), @Vector(32, u8), .{ + imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, + imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, + imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, + imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, + }); + try testArgs(@Vector(64, f64), @Vector(64, u8), .{ + imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, + imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, + imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, + imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, + imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, + imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, + 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, + imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, + }); + try testArgs(@Vector(128, f64), @Vector(128, u8), .{ + imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, + 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, + imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, + imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, + 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, + imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, + imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, + 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, + imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, + imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, + 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, + imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, + imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, + 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, + imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, + imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i16), .{ + imin(i16), + }); + try testArgs(@Vector(2, f64), @Vector(2, i16), .{ + imin(i16) + 1, -1e4, + }); + try testArgs(@Vector(4, f64), @Vector(4, i16), .{ + -1e3, -1e2, -1e1, -1e0, + }); + try testArgs(@Vector(8, f64), @Vector(8, i16), .{ + 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), + }); + try testArgs(@Vector(16, f64), @Vector(16, i16), .{ + imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, + }); + try testArgs(@Vector(32, f64), @Vector(32, i16), .{ + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, + -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, + imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, + }); + try testArgs(@Vector(64, f64), @Vector(64, i16), .{ + 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, + -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, + imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, + 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, + -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, + imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, + 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, + -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, + }); + try testArgs(@Vector(128, f64), @Vector(128, i16), .{ + imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, + 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, + -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, + imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, + 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, + -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, + imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, + 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, + -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, + imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, + 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, + -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, + imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, + 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, + -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, + imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u16), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u16), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u16), .{ + 1e2, 1e3, 1e4, imax(u16) - 1, + }); + try testArgs(@Vector(8, f64), @Vector(8, u16), .{ + imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, + }); + try testArgs(@Vector(16, f64), @Vector(16, u16), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f64), @Vector(32, u16), .{ + 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f64), @Vector(64, u16), .{ + 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, + }); + try testArgs(@Vector(128, f64), @Vector(128, u16), .{ + 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i32), .{ + imin(i32), + }); + try testArgs(@Vector(2, f64), @Vector(2, i32), .{ + imin(i32) + 1, -1e9, + }); + try testArgs(@Vector(4, f64), @Vector(4, i32), .{ + -1e8, -1e7, -1e6, -1e5, + }); + try testArgs(@Vector(8, f64), @Vector(8, i32), .{ + -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, + }); + try testArgs(@Vector(16, f64), @Vector(16, i32), .{ + 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, + }); + try testArgs(@Vector(32, f64), @Vector(32, i32), .{ + -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, + 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, + imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + }); + try testArgs(@Vector(64, f64), @Vector(64, i32), .{ + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, + imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, + -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, + 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, + -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, + -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, + 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, + -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, + }); + try testArgs(@Vector(128, f64), @Vector(128, i32), .{ + 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, + imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, + -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, + imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, + -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, + 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, + -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, + -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, + 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, + -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, + 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, + imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, + -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, + imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u32), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u32), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u32), .{ + 1e2, 1e3, 1e4, imax(u32) - 1, + }); + try testArgs(@Vector(8, f64), @Vector(8, u32), .{ + imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, + }); + try testArgs(@Vector(16, f64), @Vector(16, u32), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f64), @Vector(32, u32), .{ + 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f64), @Vector(64, u32), .{ + 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, + }); + try testArgs(@Vector(128, f64), @Vector(128, u32), .{ + 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, + 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, + imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, + 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, + 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, + imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, + 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, + 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, + imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, + 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, + 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, + imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, + 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, + 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, + imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, + 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i64), .{ + imin(i64), + }); + try testArgs(@Vector(2, f64), @Vector(2, i64), .{ + imin(i64) + 1, -1e18, + }); + try testArgs(@Vector(4, f64), @Vector(4, i64), .{ + -1e17, -1e16, -1e15, -1e14, + }); + try testArgs(@Vector(8, f64), @Vector(8, i64), .{ + -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, + }); + try testArgs(@Vector(16, f64), @Vector(16, i64), .{ + -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + }); + try testArgs(@Vector(32, f64), @Vector(32, i64), .{ + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, + 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, + -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, + -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(64, f64), @Vector(64, i64), .{ + -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, + 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, + 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, + -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, + -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, + -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, + 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, + 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, + }); + try testArgs(@Vector(128, f64), @Vector(128, i64), .{ + imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, + -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, + -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, + -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, + -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, + -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, + -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, + -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, + 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, + 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u64), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u64), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u64), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f64), @Vector(8, u64), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f64), @Vector(16, u64), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), + 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, + }); + try testArgs(@Vector(32, f64), @Vector(32, u64), .{ + 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, + 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, + 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, + }); + try testArgs(@Vector(64, f64), @Vector(64, u64), .{ + imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, + 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, + 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, + 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, + 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, + }); + try testArgs(@Vector(128, f64), @Vector(128, u64), .{ + imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, + 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, + 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, + 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, + 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, + 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, + 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, + 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, + 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, + 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, + 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, + 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, + 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, + imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, + 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, + 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i128), .{ + imin(i128), + }); + try testArgs(@Vector(2, f64), @Vector(2, i128), .{ + imin(i128) + 1, -1e38, + }); + try testArgs(@Vector(4, f64), @Vector(4, i128), .{ + -1e37, -1e36, -1e35, -1e34, + }); + try testArgs(@Vector(8, f64), @Vector(8, i128), .{ + -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, + }); + try testArgs(@Vector(16, f64), @Vector(16, i128), .{ + -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, + -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, + }); + try testArgs(@Vector(32, f64), @Vector(32, i128), .{ + -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, + -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, + 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, + 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, + }); + try testArgs(@Vector(64, f64), @Vector(64, i128), .{ + 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, + 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, + 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, + -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, + -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, + -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, + -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, + -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, + }); + try testArgs(@Vector(128, f64), @Vector(128, i128), .{ + 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, + 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, + 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, + 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, + 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, + -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, + -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, + -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, + -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, + -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, + -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u128), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u128), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u128), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f64), @Vector(8, u128), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f64), @Vector(16, u128), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f64), @Vector(32, u128), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, + 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, + 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, + }); + try testArgs(@Vector(64, f64), @Vector(64, u128), .{ + 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, + 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, + 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, + }); + try testArgs(@Vector(128, f64), @Vector(128, u128), .{ + 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, + 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, + 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, + 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, + 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, + 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, + 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, + 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, + 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, + 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, + 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, + 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, + 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, + 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, + 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, + }); + + try testArgs(@Vector(1, f64), @Vector(1, i256), .{ + imin(i256), + }); + try testArgs(@Vector(2, f64), @Vector(2, i256), .{ + imin(i256) + 1, -1e76, + }); + try testArgs(@Vector(4, f64), @Vector(4, i256), .{ + -1e75, -1e74, -1e73, -1e72, + }); + try testArgs(@Vector(8, f64), @Vector(8, i256), .{ + -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, + }); + try testArgs(@Vector(16, f64), @Vector(16, i256), .{ + -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, + -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, + }); + try testArgs(@Vector(32, f64), @Vector(32, i256), .{ + -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, + -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, + -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, + -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, + }); + try testArgs(@Vector(64, f64), @Vector(64, i256), .{ + -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, + -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, + 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, + 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, + 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, + 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, + 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, + }); + try testArgs(@Vector(128, f64), @Vector(128, i256), .{ + 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, + 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, + 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, + 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), + imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, + -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, + -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, + -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, + -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, + -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, + -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, + -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, + -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, + -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, + 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, + }); + + try testArgs(@Vector(1, f64), @Vector(1, u256), .{ + 0, + }); + try testArgs(@Vector(2, f64), @Vector(2, u256), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f64), @Vector(4, u256), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f64), @Vector(8, u256), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f64), @Vector(16, u256), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f64), @Vector(32, u256), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, + 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, + 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, + }); + try testArgs(@Vector(64, f64), @Vector(64, u256), .{ + 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, + 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, + imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, + 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, + 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, + 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, + 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, + 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, + }); + try testArgs(@Vector(128, f64), @Vector(128, u256), .{ + 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, + 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, + 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, + 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, + imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, + 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, + 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, + 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, + 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, + 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, + 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, + 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, + 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, + 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, + 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, + 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i8), .{ + imin(i8), + }); + try testArgs(@Vector(2, f80), @Vector(2, i8), .{ + imin(i8) + 1, -1e2, + }); + try testArgs(@Vector(4, f80), @Vector(4, i8), .{ + -1e1, -1e0, 0, 1e0, + }); + try testArgs(@Vector(8, f80), @Vector(8, i8), .{ + 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, + }); + try testArgs(@Vector(16, f80), @Vector(16, i8), .{ + 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, + 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, + }); + try testArgs(@Vector(32, f80), @Vector(32, i8), .{ + 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, + 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, + 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, + 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, + }); + try testArgs(@Vector(64, f80), @Vector(64, i8), .{ + 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, + 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, + 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, + 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, + imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, + imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, + -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, + imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u8), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u8), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u8), .{ + 1e2, imax(u8) - 1, imax(u8), 2e0, + }); + try testArgs(@Vector(8, f80), @Vector(8, u8), .{ + 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, + }); + try testArgs(@Vector(16, f80), @Vector(16, u8), .{ + imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, + imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, + }); + try testArgs(@Vector(32, f80), @Vector(32, u8), .{ + imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, + imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, + imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, + imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, + }); + try testArgs(@Vector(64, f80), @Vector(64, u8), .{ + imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, + imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, + imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, + imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, + imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, + imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, + 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, + imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i16), .{ + imin(i16), + }); + try testArgs(@Vector(2, f80), @Vector(2, i16), .{ + imin(i16) + 1, -1e4, + }); + try testArgs(@Vector(4, f80), @Vector(4, i16), .{ + -1e3, -1e2, -1e1, -1e0, + }); + try testArgs(@Vector(8, f80), @Vector(8, i16), .{ + 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), + }); + try testArgs(@Vector(16, f80), @Vector(16, i16), .{ + imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, + }); + try testArgs(@Vector(32, f80), @Vector(32, i16), .{ + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, + -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, + imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, + }); + try testArgs(@Vector(64, f80), @Vector(64, i16), .{ + 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, + -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, + imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, + 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, + -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, + imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, + 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, + -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u16), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u16), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u16), .{ + 1e2, 1e3, 1e4, imax(u16) - 1, + }); + try testArgs(@Vector(8, f80), @Vector(8, u16), .{ + imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, + }); + try testArgs(@Vector(16, f80), @Vector(16, u16), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f80), @Vector(32, u16), .{ + 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f80), @Vector(64, u16), .{ + 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i32), .{ + imin(i32), + }); + try testArgs(@Vector(2, f80), @Vector(2, i32), .{ + imin(i32) + 1, -1e9, + }); + try testArgs(@Vector(4, f80), @Vector(4, i32), .{ + -1e8, -1e7, -1e6, -1e5, + }); + try testArgs(@Vector(8, f80), @Vector(8, i32), .{ + -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, + }); + try testArgs(@Vector(16, f80), @Vector(16, i32), .{ + 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, + }); + try testArgs(@Vector(32, f80), @Vector(32, i32), .{ + -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, + 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, + imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + }); + try testArgs(@Vector(64, f80), @Vector(64, i32), .{ + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, + imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, + -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, + 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, + -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, + -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, + 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, + -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u32), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u32), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u32), .{ + 1e2, 1e3, 1e4, imax(u32) - 1, + }); + try testArgs(@Vector(8, f80), @Vector(8, u32), .{ + imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, + }); + try testArgs(@Vector(16, f80), @Vector(16, u32), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f80), @Vector(32, u32), .{ + 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f80), @Vector(64, u32), .{ + 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i64), .{ + imin(i64), + }); + try testArgs(@Vector(2, f80), @Vector(2, i64), .{ + imin(i64) + 1, -1e18, + }); + try testArgs(@Vector(4, f80), @Vector(4, i64), .{ + -1e17, -1e16, -1e15, -1e14, + }); + try testArgs(@Vector(8, f80), @Vector(8, i64), .{ + -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, + }); + try testArgs(@Vector(16, f80), @Vector(16, i64), .{ + -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + }); + try testArgs(@Vector(32, f80), @Vector(32, i64), .{ + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, + 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, + -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, + -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(64, f80), @Vector(64, i64), .{ + -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, + 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, + 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, + -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, + -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, + -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, + 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, + 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u64), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u64), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u64), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f80), @Vector(8, u64), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f80), @Vector(16, u64), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), + 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, + }); + try testArgs(@Vector(32, f80), @Vector(32, u64), .{ + 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, + 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, + 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, + }); + try testArgs(@Vector(64, f80), @Vector(64, u64), .{ + imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, + 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, + 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, + 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, + 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i128), .{ + imin(i128), + }); + try testArgs(@Vector(2, f80), @Vector(2, i128), .{ + imin(i128) + 1, -1e38, + }); + try testArgs(@Vector(4, f80), @Vector(4, i128), .{ + -1e37, -1e36, -1e35, -1e34, + }); + try testArgs(@Vector(8, f80), @Vector(8, i128), .{ + -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, + }); + try testArgs(@Vector(16, f80), @Vector(16, i128), .{ + -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, + -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, + }); + try testArgs(@Vector(32, f80), @Vector(32, i128), .{ + -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, + -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, + 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, + 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, + }); + try testArgs(@Vector(64, f80), @Vector(64, i128), .{ + 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, + 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, + 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, + -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, + -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, + -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, + -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, + -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u128), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u128), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u128), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f80), @Vector(8, u128), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f80), @Vector(16, u128), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f80), @Vector(32, u128), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, + 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, + 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, + }); + try testArgs(@Vector(64, f80), @Vector(64, u128), .{ + 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, + 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, + 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, + }); + + try testArgs(@Vector(1, f80), @Vector(1, i256), .{ + imin(i256), + }); + try testArgs(@Vector(2, f80), @Vector(2, i256), .{ + imin(i256) + 1, -1e76, + }); + try testArgs(@Vector(4, f80), @Vector(4, i256), .{ + -1e75, -1e74, -1e73, -1e72, + }); + try testArgs(@Vector(8, f80), @Vector(8, i256), .{ + -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, + }); + try testArgs(@Vector(16, f80), @Vector(16, i256), .{ + -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, + -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, + }); + try testArgs(@Vector(32, f80), @Vector(32, i256), .{ + -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, + -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, + -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, + -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, + }); + try testArgs(@Vector(64, f80), @Vector(64, i256), .{ + -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, + -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, + 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, + 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, + 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, + 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, + 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, + }); + + try testArgs(@Vector(1, f80), @Vector(1, u256), .{ + 0, + }); + try testArgs(@Vector(2, f80), @Vector(2, u256), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f80), @Vector(4, u256), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f80), @Vector(8, u256), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f80), @Vector(16, u256), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f80), @Vector(32, u256), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, + 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, + 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, + }); + try testArgs(@Vector(64, f80), @Vector(64, u256), .{ + 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, + 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, + imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, + 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, + 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, + 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, + 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, + 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i8), .{ + imin(i8), + }); + try testArgs(@Vector(2, f128), @Vector(2, i8), .{ + imin(i8) + 1, -1e2, + }); + try testArgs(@Vector(4, f128), @Vector(4, i8), .{ + -1e1, -1e0, 0, 1e0, + }); + try testArgs(@Vector(8, f128), @Vector(8, i8), .{ + 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, + }); + try testArgs(@Vector(16, f128), @Vector(16, i8), .{ + 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, + 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, + }); + try testArgs(@Vector(32, f128), @Vector(32, i8), .{ + 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, + 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, + 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, + 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, + }); + try testArgs(@Vector(64, f128), @Vector(64, i8), .{ + 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, + 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, + 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, + 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, + imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, + imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, + -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, + imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u8), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u8), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u8), .{ + 1e2, imax(u8) - 1, imax(u8), 2e0, + }); + try testArgs(@Vector(8, f128), @Vector(8, u8), .{ + 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, + }); + try testArgs(@Vector(16, f128), @Vector(16, u8), .{ + imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, + imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, + }); + try testArgs(@Vector(32, f128), @Vector(32, u8), .{ + imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, + imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, + imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, + imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, + }); + try testArgs(@Vector(64, f128), @Vector(64, u8), .{ + imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, + imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, + imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, + imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, + imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, + imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, + 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, + imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i16), .{ + imin(i16), + }); + try testArgs(@Vector(2, f128), @Vector(2, i16), .{ + imin(i16) + 1, -1e4, + }); + try testArgs(@Vector(4, f128), @Vector(4, i16), .{ + -1e3, -1e2, -1e1, -1e0, + }); + try testArgs(@Vector(8, f128), @Vector(8, i16), .{ + 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), + }); + try testArgs(@Vector(16, f128), @Vector(16, i16), .{ + imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, + 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, + }); + try testArgs(@Vector(32, f128), @Vector(32, i16), .{ + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, + -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, + imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, + }); + try testArgs(@Vector(64, f128), @Vector(64, i16), .{ + 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, + -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, + imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, + 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, + -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, + imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, + 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, + -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u16), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u16), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u16), .{ + 1e2, 1e3, 1e4, imax(u16) - 1, + }); + try testArgs(@Vector(8, f128), @Vector(8, u16), .{ + imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, + }); + try testArgs(@Vector(16, f128), @Vector(16, u16), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f128), @Vector(32, u16), .{ + 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f128), @Vector(64, u16), .{ + 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i32), .{ + imin(i32), + }); + try testArgs(@Vector(2, f128), @Vector(2, i32), .{ + imin(i32) + 1, -1e9, + }); + try testArgs(@Vector(4, f128), @Vector(4, i32), .{ + -1e8, -1e7, -1e6, -1e5, + }); + try testArgs(@Vector(8, f128), @Vector(8, i32), .{ + -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, + }); + try testArgs(@Vector(16, f128), @Vector(16, i32), .{ + 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, + }); + try testArgs(@Vector(32, f128), @Vector(32, i32), .{ + -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, + 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, + imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, + -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, + }); + try testArgs(@Vector(64, f128), @Vector(64, i32), .{ + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, + imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, + -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, + 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, + -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, + -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, + 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, + -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u32), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u32), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u32), .{ + 1e2, 1e3, 1e4, imax(u32) - 1, + }); + try testArgs(@Vector(8, f128), @Vector(8, u32), .{ + imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, + }); + try testArgs(@Vector(16, f128), @Vector(16, u32), .{ + 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, + 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, + }); + try testArgs(@Vector(32, f128), @Vector(32, u32), .{ + 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, + 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, + imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, + 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, + }); + try testArgs(@Vector(64, f128), @Vector(64, u32), .{ + 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, + imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, + 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, + 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, + imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, + 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, + 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, + imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i64), .{ + imin(i64), + }); + try testArgs(@Vector(2, f128), @Vector(2, i64), .{ + imin(i64) + 1, -1e18, + }); + try testArgs(@Vector(4, f128), @Vector(4, i64), .{ + -1e17, -1e16, -1e15, -1e14, + }); + try testArgs(@Vector(8, f128), @Vector(8, i64), .{ + -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, + }); + try testArgs(@Vector(16, f128), @Vector(16, i64), .{ + -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, + 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, + }); + try testArgs(@Vector(32, f128), @Vector(32, i64), .{ + 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, + 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, + -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, + -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, + }); + try testArgs(@Vector(64, f128), @Vector(64, i64), .{ + -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, + 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, + 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, + -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, + -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, + -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, + 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, + 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u64), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u64), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u64), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f128), @Vector(8, u64), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f128), @Vector(16, u64), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), + 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, + }); + try testArgs(@Vector(32, f128), @Vector(32, u64), .{ + 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, + 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, + 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, + 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, + }); + try testArgs(@Vector(64, f128), @Vector(64, u64), .{ + imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, + 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, + 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, + 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, + 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, + 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, + 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, + 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i128), .{ + imin(i128), + }); + try testArgs(@Vector(2, f128), @Vector(2, i128), .{ + imin(i128) + 1, -1e38, + }); + try testArgs(@Vector(4, f128), @Vector(4, i128), .{ + -1e37, -1e36, -1e35, -1e34, + }); + try testArgs(@Vector(8, f128), @Vector(8, i128), .{ + -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, + }); + try testArgs(@Vector(16, f128), @Vector(16, i128), .{ + -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, + -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, + }); + try testArgs(@Vector(32, f128), @Vector(32, i128), .{ + -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, + -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, + 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, + 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, + }); + try testArgs(@Vector(64, f128), @Vector(64, i128), .{ + 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, + 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, + 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, + -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, + -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, + -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, + -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, + -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u128), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u128), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u128), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f128), @Vector(8, u128), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f128), @Vector(16, u128), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f128), @Vector(32, u128), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, + 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, + 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, + }); + try testArgs(@Vector(64, f128), @Vector(64, u128), .{ + 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, + 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, + 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, + 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, + 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, + 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, + 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, + 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, + }); + + try testArgs(@Vector(1, f128), @Vector(1, i256), .{ + imin(i256), + }); + try testArgs(@Vector(2, f128), @Vector(2, i256), .{ + imin(i256) + 1, -1e76, + }); + try testArgs(@Vector(4, f128), @Vector(4, i256), .{ + -1e75, -1e74, -1e73, -1e72, + }); + try testArgs(@Vector(8, f128), @Vector(8, i256), .{ + -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, + }); + try testArgs(@Vector(16, f128), @Vector(16, i256), .{ + -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, + -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, + }); + try testArgs(@Vector(32, f128), @Vector(32, i256), .{ + -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, + -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, + -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, + -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, + }); + try testArgs(@Vector(64, f128), @Vector(64, i256), .{ + -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, + -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, + 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, + 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, + 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, + 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, + 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, + 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, + }); + + try testArgs(@Vector(1, f128), @Vector(1, u256), .{ + 0, + }); + try testArgs(@Vector(2, f128), @Vector(2, u256), .{ + 1e0, 1e1, + }); + try testArgs(@Vector(4, f128), @Vector(4, u256), .{ + 1e2, 1e3, 1e4, 1e5, + }); + try testArgs(@Vector(8, f128), @Vector(8, u256), .{ + 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, + }); + try testArgs(@Vector(16, f128), @Vector(16, u256), .{ + 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, + 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, + }); + try testArgs(@Vector(32, f128), @Vector(32, u256), .{ + 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, + 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, + 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, + 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, + }); + try testArgs(@Vector(64, f128), @Vector(64, u256), .{ + 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, + 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, + imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, + 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, + 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, + 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, + 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, + 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, + }); + } + }; +} + +inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type, comptime ct_rhs: Type) Result { + @setRuntimeSafety(false); // TODO + const res_info = switch (@typeInfo(Result)) { + .int => |info| info, + .vector => |info| @typeInfo(info.child).int, + else => @compileError(@typeName(Result)), + }; + const rhs_info = @typeInfo(Scalar(Type)).int; + const min_bits = @min(res_info.bits, rhs_info.bits); + return @intCast(switch (@as(union(enum) { + shift: Log2Int(Scalar(Type)), + mask: Log2IntCeil(Scalar(Type)), + }, switch (res_info.signedness) { + .signed => switch (rhs_info.signedness) { + .signed => .{ .shift = rhs_info.bits - min_bits }, + .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) }, + }, + .unsigned => switch (rhs_info.signedness) { + .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) }, + .unsigned => .{ .mask = min_bits }, + }, + })) { + // TODO: if (bits == 0) rhs else rhs >> bits, + .shift => |bits| if (bits == 0) rhs else switch (@typeInfo(Type)) { + .int => if (ct_rhs < 0) + rhs | imin(Type) >> bits + else + rhs & imax(Type) >> bits, + .vector => rhs | @select( + Scalar(Type), + ct_rhs < splat(Type, 0), + splat(Type, imin(Scalar(Type)) >> bits), + splat(Type, 0), + ) & ~@select( + Scalar(Type), + ct_rhs >= splat(Type, 0), + splat(Type, imin(Scalar(Type)) >> bits), + splat(Type, 0), + ), + else => comptime unreachable, + }, + .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & splat(Type, (1 << bits) - 1), + }); +} +test intCast { + const test_int_cast = cast(intCast, .{}); + try test_int_cast.testInts(); + try test_int_cast.testIntVectors(); +} + +inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { + return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs; +} +test truncate { + const test_truncate = cast(truncate, .{}); + try test_truncate.testSameSignednessInts(); + try test_truncate.testSameSignednessIntVectors(); +} + +inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { + return @floatCast(rhs); +} +test floatCast { + const test_float_cast = cast(floatCast, .{ .compare = .strict }); + try test_float_cast.testFloats(); + try test_float_cast.testFloatVectors(); +} + +inline fn intFromFloat(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { + return @intFromFloat(rhs); +} +test intFromFloat { + const test_int_from_float = cast(intFromFloat, .{ .compare = .strict }); + try test_int_from_float.testIntsFromFloats(); + try test_int_from_float.testIntVectorsFromFloatVectors(); +} + +inline fn floatFromInt(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { + return @floatFromInt(rhs); +} +test floatFromInt { + const test_float_from_int = cast(floatFromInt, .{ .compare = .strict }); + try test_float_from_int.testFloatsFromInts(); + try test_float_from_int.testFloatVectorsFromIntVectors(); +} diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index 515cb3b922..33b16d1376 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -1,39 +1,35 @@ const builtin = @import("builtin"); -const inf = math.inf; const math = std.math; -const fmax = math.floatMax; -const fmin = math.floatMin; -const imax = math.maxInt; -const imin = math.minInt; -const nan = math.nan; -const next = math.nextAfter; const std = @import("std"); -const tmin = math.floatTrueMin; -const Gpr = switch (builtin.cpu.arch) { +pub const fmax = math.floatMax; +pub const fmin = math.floatMin; +pub const imax = math.maxInt; +pub const imin = math.minInt; +pub const inf = math.inf; +pub const Log2Int = math.Log2Int; +pub const Log2IntCeil = math.Log2IntCeil; +pub const nan = math.nan; +pub const next = math.nextAfter; +pub const tmin = math.floatTrueMin; + +pub const Gpr = switch (builtin.cpu.arch) { else => unreachable, .x86 => u32, .x86_64 => u64, }; -const Sse = if (std.Target.x86.featureSetHas(builtin.cpu.features, .avx)) +pub const Sse = if (std.Target.x86.featureSetHas(builtin.cpu.features, .avx)) @Vector(32, u8) else @Vector(16, u8); -inline fn runtime(comptime Type: type, comptime value: Type) Type { - if (@inComptime()) return value; - return struct { - var variable: Type = value; - }.variable; -} - -fn Scalar(comptime Type: type) type { +pub fn Scalar(comptime Type: type) type { return switch (@typeInfo(Type)) { else => Type, .vector => |info| info.child, }; } -fn AddOneBit(comptime Type: type) type { +pub fn AddOneBit(comptime Type: type) type { const ResultScalar = switch (@typeInfo(Scalar(Type))) { .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = 1 + int.bits } }), .float => Scalar(Type), @@ -44,7 +40,7 @@ fn AddOneBit(comptime Type: type) type { .vector => |vector| @Vector(vector.len, ResultScalar), }; } -fn DoubleBits(comptime Type: type) type { +pub fn DoubleBits(comptime Type: type) type { const ResultScalar = switch (@typeInfo(Scalar(Type))) { .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = int.bits * 2 } }), .float => Scalar(Type), @@ -55,7 +51,7 @@ fn DoubleBits(comptime Type: type) type { .vector => |vector| @Vector(vector.len, ResultScalar), }; } -fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type { +pub fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type { const ResultScalar = switch (@typeInfo(Scalar(Type))) { .int => |int| @Type(.{ .int = .{ .signedness = int.signedness, .bits = std.mem.alignForward(u16, int.bits, multiple) } }), .float => Scalar(Type), @@ -67,7 +63,7 @@ fn RoundBitsUp(comptime Type: type, comptime multiple: u16) type { }; } // inline to avoid a runtime `@splat` -inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type { +pub inline fn splat(comptime Type: type, scalar: Scalar(Type)) Type { return switch (@typeInfo(Type)) { else => scalar, .vector => @splat(scalar), @@ -81,7 +77,7 @@ inline fn select(cond: anytype, lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) { else => @compileError(@typeName(@TypeOf(cond))), }; } -fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) { +pub fn sign(rhs: anytype) switch (@typeInfo(@TypeOf(rhs))) { else => bool, .vector => |vector| @Vector(vector.len, bool), } { @@ -128,9 +124,9 @@ fn boolOr(lhs: anytype, rhs: @TypeOf(lhs)) @TypeOf(lhs) { @compileError("unsupported boolOr type: " ++ @typeName(@TypeOf(lhs))); } -const Compare = enum { strict, relaxed, approx, approx_int }; +pub const Compare = enum { strict, relaxed, approx, approx_int }; // noinline for a more helpful stack trace -noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void { +pub noinline fn checkExpected(expected: anytype, actual: @TypeOf(expected), comptime compare: Compare) !void { const Expected = @TypeOf(expected); const unexpected = unexpected: switch (@typeInfo(Scalar(Expected))) { else => expected != actual, @@ -198,22053 +194,3 @@ test checkExpected { if (checkExpected(@as(f128, -0.0), @as(f128, 0.0), .strict) != error.Unexpected) return error.Unexpected; if (checkExpected(@as(f128, 0.0), @as(f128, -0.0), .strict) != error.Unexpected) return error.Unexpected; } - -fn unary(comptime op: anytype, comptime opts: struct { - libc_name: ?[]const u8 = null, - compare: Compare = .relaxed, -}) type { - return struct { - // noinline so that `mem_arg` is on the stack - noinline fn testArgKinds( - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - comptime Type: type, - comptime imm_arg: Type, - mem_arg: Type, - ) !void { - const expected = expected: { - if (opts.libc_name) |libc_name| libc: { - const libc_func = @extern(*const fn (Scalar(Type)) callconv(.c) Scalar(Type), .{ - .name = switch (Scalar(Type)) { - f16 => "__" ++ libc_name ++ "h", - f32 => libc_name ++ "f", - f64 => libc_name, - f80 => "__" ++ libc_name ++ "x", - f128 => libc_name ++ "q", - else => break :libc, - }, - }); - switch (@typeInfo(Type)) { - else => break :expected libc_func(imm_arg), - .vector => |vector| { - var res: Type = undefined; - inline for (0..vector.len) |i| res[i] = libc_func(imm_arg[i]); - break :expected res; - }, - } - } - break :expected comptime op(Type, imm_arg); - }; - var reg_arg = mem_arg; - _ = .{®_arg}; - try checkExpected(expected, op(Type, reg_arg), opts.compare); - try checkExpected(expected, op(Type, mem_arg), opts.compare); - if (opts.libc_name == null) try checkExpected(expected, op(Type, imm_arg), opts.compare); - } - // noinline for a more helpful stack trace - noinline fn testArgs(comptime Type: type, comptime imm_arg: Type) !void { - try testArgKinds( - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - Type, - imm_arg, - imm_arg, - ); - } - fn testIntTypes() !void { - try testArgs(i1, undefined); - try testArgs(u1, undefined); - try testArgs(i2, undefined); - try testArgs(u2, undefined); - try testArgs(i3, undefined); - try testArgs(u3, undefined); - try testArgs(i4, undefined); - try testArgs(u4, undefined); - try testArgs(i5, undefined); - try testArgs(u5, undefined); - try testArgs(i7, undefined); - try testArgs(u7, undefined); - try testArgs(i8, undefined); - try testArgs(u8, undefined); - try testArgs(i9, undefined); - try testArgs(u9, undefined); - try testArgs(i15, undefined); - try testArgs(u15, undefined); - try testArgs(i16, undefined); - try testArgs(u16, undefined); - try testArgs(i17, undefined); - try testArgs(u17, undefined); - try testArgs(i31, undefined); - try testArgs(u31, undefined); - try testArgs(i32, undefined); - try testArgs(u32, undefined); - try testArgs(i33, undefined); - try testArgs(u33, undefined); - try testArgs(i63, undefined); - try testArgs(u63, undefined); - try testArgs(i64, undefined); - try testArgs(u64, undefined); - try testArgs(i65, undefined); - try testArgs(u65, undefined); - try testArgs(i95, undefined); - try testArgs(u95, undefined); - try testArgs(i96, undefined); - try testArgs(u96, undefined); - try testArgs(i97, undefined); - try testArgs(u97, undefined); - try testArgs(i127, undefined); - try testArgs(u127, undefined); - try testArgs(i128, undefined); - try testArgs(u128, undefined); - try testArgs(i129, undefined); - try testArgs(u129, undefined); - try testArgs(i159, undefined); - try testArgs(u159, undefined); - try testArgs(i160, undefined); - try testArgs(u160, undefined); - try testArgs(i161, undefined); - try testArgs(u161, undefined); - try testArgs(i191, undefined); - try testArgs(u191, undefined); - try testArgs(i192, undefined); - try testArgs(u192, undefined); - try testArgs(i193, undefined); - try testArgs(u193, undefined); - try testArgs(i223, undefined); - try testArgs(u223, undefined); - try testArgs(i224, undefined); - try testArgs(u224, undefined); - try testArgs(i225, undefined); - try testArgs(u225, undefined); - try testArgs(i255, undefined); - try testArgs(u255, undefined); - try testArgs(i256, undefined); - try testArgs(u256, undefined); - try testArgs(i257, undefined); - try testArgs(u257, undefined); - try testArgs(i511, undefined); - try testArgs(u511, undefined); - try testArgs(i512, undefined); - try testArgs(u512, undefined); - try testArgs(i513, undefined); - try testArgs(u513, undefined); - try testArgs(i1023, undefined); - try testArgs(u1023, undefined); - try testArgs(i1024, undefined); - try testArgs(u1024, undefined); - try testArgs(i1025, undefined); - try testArgs(u1025, undefined); - } - fn testInts() !void { - try testArgs(i1, -1); - try testArgs(i1, 0); - try testArgs(u1, 0); - try testArgs(u1, 1 << 0); - - try testArgs(i2, -1 << 1); - try testArgs(i2, -1); - try testArgs(i2, 0); - try testArgs(u2, 0); - try testArgs(u2, 1 << 0); - try testArgs(u2, 1 << 1); - - try testArgs(i3, -1 << 2); - try testArgs(i3, -1); - try testArgs(i3, 0); - try testArgs(u3, 0); - try testArgs(u3, 1 << 0); - try testArgs(u3, 1 << 1); - try testArgs(u3, 1 << 2); - - try testArgs(i4, -1 << 3); - try testArgs(i4, -1); - try testArgs(i4, 0); - try testArgs(u4, 0); - try testArgs(u4, 1 << 0); - try testArgs(u4, 1 << 1); - try testArgs(u4, 1 << 2); - try testArgs(u4, 1 << 3); - - try testArgs(i5, -1 << 4); - try testArgs(i5, -1); - try testArgs(i5, 0); - try testArgs(u5, 0); - try testArgs(u5, 1 << 0); - try testArgs(u5, 1 << 1); - try testArgs(u5, 1 << 3); - try testArgs(u5, 1 << 4); - - try testArgs(i7, -1 << 6); - try testArgs(i7, -1); - try testArgs(i7, 0); - try testArgs(u7, 0); - try testArgs(u7, 1 << 0); - try testArgs(u7, 1 << 1); - try testArgs(u7, 1 << 5); - try testArgs(u7, 1 << 6); - - try testArgs(i8, -1 << 7); - try testArgs(i8, -1); - try testArgs(i8, 0); - try testArgs(u8, 0); - try testArgs(u8, 1 << 0); - try testArgs(u8, 1 << 1); - try testArgs(u8, 1 << 6); - try testArgs(u8, 1 << 7); - - try testArgs(i9, -1 << 8); - try testArgs(i9, -1); - try testArgs(i9, 0); - try testArgs(u9, 0); - try testArgs(u9, 1 << 0); - try testArgs(u9, 1 << 1); - try testArgs(u9, 1 << 7); - try testArgs(u9, 1 << 8); - - try testArgs(i15, -1 << 14); - try testArgs(i15, -1); - try testArgs(i15, 0); - try testArgs(u15, 0); - try testArgs(u15, 1 << 0); - try testArgs(u15, 1 << 1); - try testArgs(u15, 1 << 13); - try testArgs(u15, 1 << 14); - - try testArgs(i16, -1 << 15); - try testArgs(i16, -1); - try testArgs(i16, 0); - try testArgs(u16, 0); - try testArgs(u16, 1 << 0); - try testArgs(u16, 1 << 1); - try testArgs(u16, 1 << 14); - try testArgs(u16, 1 << 15); - - try testArgs(i17, -1 << 16); - try testArgs(i17, -1); - try testArgs(i17, 0); - try testArgs(u17, 0); - try testArgs(u17, 1 << 0); - try testArgs(u17, 1 << 1); - try testArgs(u17, 1 << 15); - try testArgs(u17, 1 << 16); - - try testArgs(i31, -1 << 30); - try testArgs(i31, -1); - try testArgs(i31, 0); - try testArgs(u31, 0); - try testArgs(u31, 1 << 0); - try testArgs(u31, 1 << 1); - try testArgs(u31, 1 << 29); - try testArgs(u31, 1 << 30); - - try testArgs(i32, -1 << 31); - try testArgs(i32, -1); - try testArgs(i32, 0); - try testArgs(u32, 0); - try testArgs(u32, 1 << 0); - try testArgs(u32, 1 << 1); - try testArgs(u32, 1 << 30); - try testArgs(u32, 1 << 31); - - try testArgs(i33, -1 << 32); - try testArgs(i33, -1); - try testArgs(i33, 0); - try testArgs(u33, 0); - try testArgs(u33, 1 << 0); - try testArgs(u33, 1 << 1); - try testArgs(u33, 1 << 31); - try testArgs(u33, 1 << 32); - - try testArgs(i63, -1 << 62); - try testArgs(i63, -1); - try testArgs(i63, 0); - try testArgs(u63, 0); - try testArgs(u63, 1 << 0); - try testArgs(u63, 1 << 1); - try testArgs(u63, 1 << 61); - try testArgs(u63, 1 << 62); - - try testArgs(i64, -1 << 63); - try testArgs(i64, -1); - try testArgs(i64, 0); - try testArgs(u64, 0); - try testArgs(u64, 1 << 0); - try testArgs(u64, 1 << 1); - try testArgs(u64, 1 << 62); - try testArgs(u64, 1 << 63); - - try testArgs(i65, -1 << 64); - try testArgs(i65, -1); - try testArgs(i65, 0); - try testArgs(u65, 0); - try testArgs(u65, 1 << 0); - try testArgs(u65, 1 << 1); - try testArgs(u65, 1 << 63); - try testArgs(u65, 1 << 64); - - try testArgs(i95, -1 << 94); - try testArgs(i95, -1); - try testArgs(i95, 0); - try testArgs(u95, 0); - try testArgs(u95, 1 << 0); - try testArgs(u95, 1 << 1); - try testArgs(u95, 1 << 93); - try testArgs(u95, 1 << 94); - - try testArgs(i96, -1 << 95); - try testArgs(i96, -1); - try testArgs(i96, 0); - try testArgs(u96, 0); - try testArgs(u96, 1 << 0); - try testArgs(u96, 1 << 1); - try testArgs(u96, 1 << 94); - try testArgs(u96, 1 << 95); - - try testArgs(i97, -1 << 96); - try testArgs(i97, -1); - try testArgs(i97, 0); - try testArgs(u97, 0); - try testArgs(u97, 1 << 0); - try testArgs(u97, 1 << 1); - try testArgs(u97, 1 << 95); - try testArgs(u97, 1 << 96); - - try testArgs(i127, -1 << 126); - try testArgs(i127, -1); - try testArgs(i127, 0); - try testArgs(u127, 0); - try testArgs(u127, 1 << 0); - try testArgs(u127, 1 << 1); - try testArgs(u127, 1 << 125); - try testArgs(u127, 1 << 126); - - try testArgs(i128, -1 << 127); - try testArgs(i128, -1); - try testArgs(i128, 0); - try testArgs(u128, 0); - try testArgs(u128, 1 << 0); - try testArgs(u128, 1 << 1); - try testArgs(u128, 1 << 126); - try testArgs(u128, 1 << 127); - - try testArgs(i129, -1 << 128); - try testArgs(i129, -1); - try testArgs(i129, 0); - try testArgs(u129, 0); - try testArgs(u129, 1 << 0); - try testArgs(u129, 1 << 1); - try testArgs(u129, 1 << 127); - try testArgs(u129, 1 << 128); - - try testArgs(i159, -1 << 158); - try testArgs(i159, -1); - try testArgs(i159, 0); - try testArgs(u159, 0); - try testArgs(u159, 1 << 0); - try testArgs(u159, 1 << 1); - try testArgs(u159, 1 << 157); - try testArgs(u159, 1 << 158); - - try testArgs(i160, -1 << 159); - try testArgs(i160, -1); - try testArgs(i160, 0); - try testArgs(u160, 0); - try testArgs(u160, 1 << 0); - try testArgs(u160, 1 << 1); - try testArgs(u160, 1 << 158); - try testArgs(u160, 1 << 159); - - try testArgs(i161, -1 << 160); - try testArgs(i161, -1); - try testArgs(i161, 0); - try testArgs(u161, 0); - try testArgs(u161, 1 << 0); - try testArgs(u161, 1 << 1); - try testArgs(u161, 1 << 159); - try testArgs(u161, 1 << 160); - - try testArgs(i191, -1 << 190); - try testArgs(i191, -1); - try testArgs(i191, 0); - try testArgs(u191, 0); - try testArgs(u191, 1 << 0); - try testArgs(u191, 1 << 1); - try testArgs(u191, 1 << 189); - try testArgs(u191, 1 << 190); - - try testArgs(i192, -1 << 191); - try testArgs(i192, -1); - try testArgs(i192, 0); - try testArgs(u192, 0); - try testArgs(u192, 1 << 0); - try testArgs(u192, 1 << 1); - try testArgs(u192, 1 << 190); - try testArgs(u192, 1 << 191); - - try testArgs(i193, -1 << 192); - try testArgs(i193, -1); - try testArgs(i193, 0); - try testArgs(u193, 0); - try testArgs(u193, 1 << 0); - try testArgs(u193, 1 << 1); - try testArgs(u193, 1 << 191); - try testArgs(u193, 1 << 192); - - try testArgs(i223, -1 << 222); - try testArgs(i223, -1); - try testArgs(i223, 0); - try testArgs(u223, 0); - try testArgs(u223, 1 << 0); - try testArgs(u223, 1 << 1); - try testArgs(u223, 1 << 221); - try testArgs(u223, 1 << 222); - - try testArgs(i224, -1 << 223); - try testArgs(i224, -1); - try testArgs(i224, 0); - try testArgs(u224, 0); - try testArgs(u224, 1 << 0); - try testArgs(u224, 1 << 1); - try testArgs(u224, 1 << 222); - try testArgs(u224, 1 << 223); - - try testArgs(i225, -1 << 224); - try testArgs(i225, -1); - try testArgs(i225, 0); - try testArgs(u225, 0); - try testArgs(u225, 1 << 0); - try testArgs(u225, 1 << 1); - try testArgs(u225, 1 << 223); - try testArgs(u225, 1 << 224); - - try testArgs(i255, -1 << 254); - try testArgs(i255, -1); - try testArgs(i255, 0); - try testArgs(u255, 0); - try testArgs(u255, 1 << 0); - try testArgs(u255, 1 << 1); - try testArgs(u255, 1 << 253); - try testArgs(u255, 1 << 254); - - try testArgs(i256, -1 << 255); - try testArgs(i256, -1); - try testArgs(i256, 0); - try testArgs(u256, 0); - try testArgs(u256, 1 << 0); - try testArgs(u256, 1 << 1); - try testArgs(u256, 1 << 254); - try testArgs(u256, 1 << 255); - - try testArgs(i257, -1 << 256); - try testArgs(i257, -1); - try testArgs(i257, 0); - try testArgs(u257, 0); - try testArgs(u257, 1 << 0); - try testArgs(u257, 1 << 1); - try testArgs(u257, 1 << 255); - try testArgs(u257, 1 << 256); - - try testArgs(i383, -1 << 382); - try testArgs(i383, -1); - try testArgs(i383, 0); - try testArgs(u383, 0); - try testArgs(u383, 1 << 0); - try testArgs(u383, 1 << 1); - try testArgs(u383, 1 << 381); - try testArgs(u383, 1 << 382); - - try testArgs(i384, -1 << 383); - try testArgs(i384, -1); - try testArgs(i384, 0); - try testArgs(u384, 0); - try testArgs(u384, 1 << 0); - try testArgs(u384, 1 << 1); - try testArgs(u384, 1 << 382); - try testArgs(u384, 1 << 383); - - try testArgs(i385, -1 << 384); - try testArgs(i385, -1); - try testArgs(i385, 0); - try testArgs(u385, 0); - try testArgs(u385, 1 << 0); - try testArgs(u385, 1 << 1); - try testArgs(u385, 1 << 383); - try testArgs(u385, 1 << 384); - - try testArgs(i511, -1 << 510); - try testArgs(i511, -1); - try testArgs(i511, 0); - try testArgs(u511, 0); - try testArgs(u511, 1 << 0); - try testArgs(u511, 1 << 1); - try testArgs(u511, 1 << 509); - try testArgs(u511, 1 << 510); - - try testArgs(i512, -1 << 511); - try testArgs(i512, -1); - try testArgs(i512, 0); - try testArgs(u512, 0); - try testArgs(u512, 1 << 0); - try testArgs(u512, 1 << 1); - try testArgs(u512, 1 << 510); - try testArgs(u512, 1 << 511); - - try testArgs(i513, -1 << 512); - try testArgs(i513, -1); - try testArgs(i513, 0); - try testArgs(u513, 0); - try testArgs(u513, 1 << 0); - try testArgs(u513, 1 << 1); - try testArgs(u513, 1 << 511); - try testArgs(u513, 1 << 512); - - try testArgs(i1023, -1 << 1022); - try testArgs(i1023, -1); - try testArgs(i1023, 0); - try testArgs(u1023, 0); - try testArgs(u1023, 1 << 0); - try testArgs(u1023, 1 << 1); - try testArgs(u1023, 1 << 1021); - try testArgs(u1023, 1 << 1022); - - try testArgs(i1024, -1 << 1023); - try testArgs(i1024, -1); - try testArgs(i1024, 0); - try testArgs(u1024, 0); - try testArgs(u1024, 1 << 0); - try testArgs(u1024, 1 << 1); - try testArgs(u1024, 1 << 1022); - try testArgs(u1024, 1 << 1023); - - try testArgs(i1025, -1 << 1024); - try testArgs(i1025, -1); - try testArgs(i1025, 0); - try testArgs(u1025, 0); - try testArgs(u1025, 1 << 0); - try testArgs(u1025, 1 << 1); - try testArgs(u1025, 1 << 1023); - try testArgs(u1025, 1 << 1024); - } - fn testFloatTypes() !void { - try testArgs(f16, undefined); - try testArgs(f32, undefined); - try testArgs(f64, undefined); - try testArgs(f80, undefined); - try testArgs(f128, undefined); - } - fn testFloats() !void { - try testArgs(f16, -nan(f16)); - try testArgs(f16, -inf(f16)); - try testArgs(f16, -fmax(f16)); - try testArgs(f16, -1e1); - try testArgs(f16, -1e0); - try testArgs(f16, -1e-1); - try testArgs(f16, -fmin(f16)); - try testArgs(f16, -tmin(f16)); - try testArgs(f16, -0.0); - try testArgs(f16, 0.0); - try testArgs(f16, tmin(f16)); - try testArgs(f16, fmin(f16)); - try testArgs(f16, 1e-1); - try testArgs(f16, 1e0); - try testArgs(f16, 1e1); - try testArgs(f16, fmax(f16)); - try testArgs(f16, inf(f16)); - try testArgs(f16, nan(f16)); - - try testArgs(f32, -nan(f32)); - try testArgs(f32, -inf(f32)); - try testArgs(f32, -fmax(f32)); - try testArgs(f32, -1e1); - try testArgs(f32, -1e0); - try testArgs(f32, -1e-1); - try testArgs(f32, -fmin(f32)); - try testArgs(f32, -tmin(f32)); - try testArgs(f32, -0.0); - try testArgs(f32, 0.0); - try testArgs(f32, tmin(f32)); - try testArgs(f32, fmin(f32)); - try testArgs(f32, 1e-1); - try testArgs(f32, 1e0); - try testArgs(f32, 1e1); - try testArgs(f32, fmax(f32)); - try testArgs(f32, inf(f32)); - try testArgs(f32, nan(f32)); - - try testArgs(f64, -nan(f64)); - try testArgs(f64, -inf(f64)); - try testArgs(f64, -fmax(f64)); - try testArgs(f64, -1e1); - try testArgs(f64, -1e0); - try testArgs(f64, -1e-1); - try testArgs(f64, -fmin(f64)); - try testArgs(f64, -tmin(f64)); - try testArgs(f64, -0.0); - try testArgs(f64, 0.0); - try testArgs(f64, tmin(f64)); - try testArgs(f64, fmin(f64)); - try testArgs(f64, 1e-1); - try testArgs(f64, 1e0); - try testArgs(f64, 1e1); - try testArgs(f64, fmax(f64)); - try testArgs(f64, inf(f64)); - try testArgs(f64, nan(f64)); - - try testArgs(f80, -nan(f80)); - try testArgs(f80, -inf(f80)); - try testArgs(f80, -fmax(f80)); - try testArgs(f80, -1e1); - try testArgs(f80, -1e0); - try testArgs(f80, -1e-1); - try testArgs(f80, -fmin(f80)); - try testArgs(f80, -tmin(f80)); - try testArgs(f80, -0.0); - try testArgs(f80, 0.0); - try testArgs(f80, tmin(f80)); - try testArgs(f80, fmin(f80)); - try testArgs(f80, 1e-1); - try testArgs(f80, 1e0); - try testArgs(f80, 1e1); - try testArgs(f80, fmax(f80)); - try testArgs(f80, inf(f80)); - try testArgs(f80, nan(f80)); - - try testArgs(f128, -nan(f128)); - try testArgs(f128, -inf(f128)); - try testArgs(f128, -fmax(f128)); - try testArgs(f128, -1e1); - try testArgs(f128, -1e0); - try testArgs(f128, -1e-1); - try testArgs(f128, -fmin(f128)); - try testArgs(f128, -tmin(f128)); - try testArgs(f128, -0.0); - try testArgs(f128, 0.0); - try testArgs(f128, tmin(f128)); - try testArgs(f128, fmin(f128)); - try testArgs(f128, 1e-1); - try testArgs(f128, 1e0); - try testArgs(f128, 1e1); - try testArgs(f128, fmax(f128)); - try testArgs(f128, inf(f128)); - try testArgs(f128, nan(f128)); - } - fn testIntVectorTypes() !void { - try testArgs(@Vector(3, i1), undefined); - try testArgs(@Vector(3, u1), undefined); - try testArgs(@Vector(3, i2), undefined); - try testArgs(@Vector(3, u2), undefined); - try testArgs(@Vector(3, i3), undefined); - try testArgs(@Vector(3, u3), undefined); - try testArgs(@Vector(3, i4), undefined); - try testArgs(@Vector(1, i4), undefined); - try testArgs(@Vector(2, i4), undefined); - try testArgs(@Vector(4, i4), undefined); - try testArgs(@Vector(8, i4), undefined); - try testArgs(@Vector(16, i4), undefined); - try testArgs(@Vector(32, i4), undefined); - try testArgs(@Vector(64, i4), undefined); - try testArgs(@Vector(128, i4), undefined); - try testArgs(@Vector(256, i4), undefined); - try testArgs(@Vector(3, u4), undefined); - try testArgs(@Vector(1, u4), undefined); - try testArgs(@Vector(2, u4), undefined); - try testArgs(@Vector(4, u4), undefined); - try testArgs(@Vector(8, u4), undefined); - try testArgs(@Vector(16, u4), undefined); - try testArgs(@Vector(32, u4), undefined); - try testArgs(@Vector(64, u4), undefined); - try testArgs(@Vector(128, u4), undefined); - try testArgs(@Vector(256, u4), undefined); - try testArgs(@Vector(3, i5), undefined); - try testArgs(@Vector(3, u5), undefined); - try testArgs(@Vector(3, i7), undefined); - try testArgs(@Vector(3, u7), undefined); - try testArgs(@Vector(3, i8), undefined); - try testArgs(@Vector(1, i8), undefined); - try testArgs(@Vector(2, i8), undefined); - try testArgs(@Vector(4, i8), undefined); - try testArgs(@Vector(8, i8), undefined); - try testArgs(@Vector(16, i8), undefined); - try testArgs(@Vector(32, i8), undefined); - try testArgs(@Vector(64, i8), undefined); - try testArgs(@Vector(128, i8), undefined); - try testArgs(@Vector(3, u8), undefined); - try testArgs(@Vector(1, u8), undefined); - try testArgs(@Vector(2, u8), undefined); - try testArgs(@Vector(4, u8), undefined); - try testArgs(@Vector(8, u8), undefined); - try testArgs(@Vector(16, u8), undefined); - try testArgs(@Vector(32, u8), undefined); - try testArgs(@Vector(64, u8), undefined); - try testArgs(@Vector(128, u8), undefined); - try testArgs(@Vector(3, i9), undefined); - try testArgs(@Vector(3, u9), undefined); - try testArgs(@Vector(3, i15), undefined); - try testArgs(@Vector(3, u15), undefined); - try testArgs(@Vector(3, i16), undefined); - try testArgs(@Vector(1, i16), undefined); - try testArgs(@Vector(2, i16), undefined); - try testArgs(@Vector(4, i16), undefined); - try testArgs(@Vector(8, i16), undefined); - try testArgs(@Vector(16, i16), undefined); - try testArgs(@Vector(32, i16), undefined); - try testArgs(@Vector(64, i16), undefined); - try testArgs(@Vector(3, u16), undefined); - try testArgs(@Vector(1, u16), undefined); - try testArgs(@Vector(2, u16), undefined); - try testArgs(@Vector(4, u16), undefined); - try testArgs(@Vector(8, u16), undefined); - try testArgs(@Vector(16, u16), undefined); - try testArgs(@Vector(32, u16), undefined); - try testArgs(@Vector(64, u16), undefined); - try testArgs(@Vector(3, i17), undefined); - try testArgs(@Vector(3, u17), undefined); - try testArgs(@Vector(3, i31), undefined); - try testArgs(@Vector(3, u31), undefined); - try testArgs(@Vector(3, i32), undefined); - try testArgs(@Vector(1, i32), undefined); - try testArgs(@Vector(2, i32), undefined); - try testArgs(@Vector(4, i32), undefined); - try testArgs(@Vector(8, i32), undefined); - try testArgs(@Vector(16, i32), undefined); - try testArgs(@Vector(32, i32), undefined); - try testArgs(@Vector(3, u32), undefined); - try testArgs(@Vector(1, u32), undefined); - try testArgs(@Vector(2, u32), undefined); - try testArgs(@Vector(4, u32), undefined); - try testArgs(@Vector(8, u32), undefined); - try testArgs(@Vector(16, u32), undefined); - try testArgs(@Vector(32, u32), undefined); - try testArgs(@Vector(3, i33), undefined); - try testArgs(@Vector(3, u33), undefined); - try testArgs(@Vector(3, i63), undefined); - try testArgs(@Vector(3, u63), undefined); - try testArgs(@Vector(3, i64), undefined); - try testArgs(@Vector(1, i64), undefined); - try testArgs(@Vector(2, i64), undefined); - try testArgs(@Vector(4, i64), undefined); - try testArgs(@Vector(8, i64), undefined); - try testArgs(@Vector(16, i64), undefined); - try testArgs(@Vector(3, u64), undefined); - try testArgs(@Vector(1, u64), undefined); - try testArgs(@Vector(2, u64), undefined); - try testArgs(@Vector(4, u64), undefined); - try testArgs(@Vector(8, u64), undefined); - try testArgs(@Vector(16, u64), undefined); - try testArgs(@Vector(3, i65), undefined); - try testArgs(@Vector(3, u65), undefined); - try testArgs(@Vector(3, i127), undefined); - try testArgs(@Vector(3, u127), undefined); - try testArgs(@Vector(3, i128), undefined); - try testArgs(@Vector(1, i128), undefined); - try testArgs(@Vector(2, i128), undefined); - try testArgs(@Vector(4, i128), undefined); - try testArgs(@Vector(8, i128), undefined); - try testArgs(@Vector(3, u128), undefined); - try testArgs(@Vector(1, u128), undefined); - try testArgs(@Vector(2, u128), undefined); - try testArgs(@Vector(4, u128), undefined); - try testArgs(@Vector(8, u128), undefined); - try testArgs(@Vector(3, i129), undefined); - try testArgs(@Vector(3, u129), undefined); - try testArgs(@Vector(3, i191), undefined); - try testArgs(@Vector(3, u191), undefined); - try testArgs(@Vector(3, i192), undefined); - try testArgs(@Vector(1, i192), undefined); - try testArgs(@Vector(2, i192), undefined); - try testArgs(@Vector(4, i192), undefined); - try testArgs(@Vector(3, u192), undefined); - try testArgs(@Vector(1, u192), undefined); - try testArgs(@Vector(2, u192), undefined); - try testArgs(@Vector(4, u192), undefined); - try testArgs(@Vector(3, i193), undefined); - try testArgs(@Vector(3, u193), undefined); - try testArgs(@Vector(3, i255), undefined); - try testArgs(@Vector(3, u255), undefined); - try testArgs(@Vector(3, i256), undefined); - try testArgs(@Vector(1, i256), undefined); - try testArgs(@Vector(2, i256), undefined); - try testArgs(@Vector(4, i256), undefined); - try testArgs(@Vector(3, u256), undefined); - try testArgs(@Vector(1, u256), undefined); - try testArgs(@Vector(2, u256), undefined); - try testArgs(@Vector(4, u256), undefined); - try testArgs(@Vector(3, i257), undefined); - try testArgs(@Vector(3, u257), undefined); - try testArgs(@Vector(3, i511), undefined); - try testArgs(@Vector(3, u511), undefined); - try testArgs(@Vector(3, i512), undefined); - try testArgs(@Vector(1, i512), undefined); - try testArgs(@Vector(2, i512), undefined); - try testArgs(@Vector(3, u512), undefined); - try testArgs(@Vector(1, u512), undefined); - try testArgs(@Vector(2, u512), undefined); - try testArgs(@Vector(3, i513), undefined); - try testArgs(@Vector(3, u513), undefined); - try testArgs(@Vector(3, i1023), undefined); - try testArgs(@Vector(3, u1023), undefined); - try testArgs(@Vector(3, i1024), undefined); - try testArgs(@Vector(1, i1024), undefined); - try testArgs(@Vector(3, u1024), undefined); - try testArgs(@Vector(1, u1024), undefined); - try testArgs(@Vector(3, i1025), undefined); - try testArgs(@Vector(3, u1025), undefined); - } - fn testIntVectors() !void { - try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 }); - try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 }); - - try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 }); - - try testArgs(@Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 }); - - try testArgs(@Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(1, i4), .{ - -0x2, - }); - try testArgs(@Vector(2, i4), .{ - -0x7, 0x4, - }); - try testArgs(@Vector(4, i4), .{ - -0x3, 0x4, 0x2, -0x2, - }); - try testArgs(@Vector(8, i4), .{ - -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5, - }); - try testArgs(@Vector(16, i4), .{ - -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7, - }); - try testArgs(@Vector(32, i4), .{ - -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, - }); - try testArgs(@Vector(64, i4), .{ - -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, - 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, - }); - try testArgs(@Vector(128, i4), .{ - -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, - -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, - -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, - 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, - }); - try testArgs(@Vector(256, i4), .{ - -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, - -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, - -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, - 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, - 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, - -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, - 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, - -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, - }); - - try testArgs(@Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(1, u4), .{ - 0xb, - }); - try testArgs(@Vector(2, u4), .{ - 0x3, 0x4, - }); - try testArgs(@Vector(4, u4), .{ - 0x9, 0x2, 0xf, 0xe, - }); - try testArgs(@Vector(8, u4), .{ - 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6, - }); - try testArgs(@Vector(16, u4), .{ - 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc, - }); - try testArgs(@Vector(32, u4), .{ - 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, - }); - try testArgs(@Vector(64, u4), .{ - 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, - 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, - }); - try testArgs(@Vector(128, u4), .{ - 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, - 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, - 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, - 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, - }); - try testArgs(@Vector(256, u4), .{ - 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, - 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, - 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, - 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, - 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, - 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, - 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, - 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, - }); - - try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 }); - - try testArgs(@Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u7), .{ 0, 1, 1 << 6 }); - - try testArgs(@Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(1, i8), .{ - 0x71, - }); - try testArgs(@Vector(2, i8), .{ - -0x50, -0x43, - }); - try testArgs(@Vector(4, i8), .{ - -0x09, -0x19, -0x15, -0x5d, - }); - try testArgs(@Vector(8, i8), .{ - -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63, - }); - try testArgs(@Vector(16, i8), .{ - 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45, - }); - try testArgs(@Vector(32, i8), .{ - 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a, - 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39, - }); - try testArgs(@Vector(64, i8), .{ - 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f, - 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44, - 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02, - 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57, - }); - try testArgs(@Vector(128, i8), .{ - -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a, - 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f, - 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64, - 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55, - 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f, - 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60, - -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03, - -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19, - }); - - try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(1, u8), .{ - 0x33, - }); - try testArgs(@Vector(2, u8), .{ - 0x66, 0x87, - }); - try testArgs(@Vector(4, u8), .{ - 0x9d, 0xcb, 0x30, 0x7b, - }); - try testArgs(@Vector(8, u8), .{ - 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d, - }); - try testArgs(@Vector(16, u8), .{ - 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37, - }); - try testArgs(@Vector(32, u8), .{ - 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae, - 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6, - }); - try testArgs(@Vector(64, u8), .{ - 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72, - 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3, - 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c, - 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72, - }); - try testArgs(@Vector(128, u8), .{ - 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11, - 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21, - 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67, - 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea, - 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86, - 0xfb, 0x29, 0xfe, 0xc7, 0xff, 0x62, 0x1a, 0x6f, 0xf8, 0xbd, 0xfe, 0xa4, 0xac, 0x24, 0xcf, 0x56, - 0x82, 0x69, 0x81, 0x0d, 0xc1, 0x51, 0x8d, 0x85, 0xf4, 0x00, 0xe7, 0x25, 0xab, 0xa5, 0x33, 0x45, - 0x66, 0x2e, 0x33, 0xc8, 0xf3, 0x35, 0x16, 0x7d, 0x1f, 0xc9, 0xf7, 0x44, 0xab, 0x66, 0x28, 0x0d, - }); - - try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 }); - - try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 }); - - try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(1, i16), .{ - -0x015a, - }); - try testArgs(@Vector(2, i16), .{ - -0x1c2f, 0x5ce8, - }); - try testArgs(@Vector(4, i16), .{ - 0x1212, 0x5bfc, -0x20ea, 0x0993, - }); - try testArgs(@Vector(8, i16), .{ - 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23, - }); - try testArgs(@Vector(16, i16), .{ - 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377, - 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5, - }); - try testArgs(@Vector(32, i16), .{ - 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0, - 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078, - 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d, - 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3, - }); - try testArgs(@Vector(64, i16), .{ - 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb, - 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e, - 0x2fab, -0x2b96, 0x7474, -0x6644, -0x5484, -0x278e, -0x6a0e, -0x5210, - 0x1adf, -0x2799, 0x61e0, -0x733c, -0x6bcc, -0x6fe2, -0x4e91, 0x5d01, - 0x3745, 0x24eb, 0x6c89, 0x4a94, -0x7339, 0x4907, -0x4f8f, -0x7e39, - 0x1a32, 0x65ca, -0x6c27, -0x3269, 0x107b, 0x1c53, -0x5529, 0x5232, - -0x26ec, 0x4442, -0x63f5, -0x174a, 0x3033, -0x7363, 0x58be, 0x239f, - 0x7f7b, -0x437d, -0x6df6, 0x0a7b, 0x3faa, -0x1d75, -0x7426, 0x1274, - }); - - try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(1, u16), .{ - 0x4da6, - }); - try testArgs(@Vector(2, u16), .{ - 0x04d7, 0x50c6, - }); - try testArgs(@Vector(4, u16), .{ - 0x4c06, 0xd71f, 0x4d8f, 0xe0a4, - }); - try testArgs(@Vector(8, u16), .{ - 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7, - }); - try testArgs(@Vector(16, u16), .{ - 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a, - 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01, - }); - try testArgs(@Vector(32, u16), .{ - 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd, - 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71, - 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229, - 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2, - }); - try testArgs(@Vector(64, u16), .{ - 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f, - 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead, - 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387, - 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803, - 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853, - 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0, - 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed, - 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f, - }); - - try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 }); - - try testArgs(@Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u31), .{ 0, 1, 1 << 30 }); - - try testArgs(@Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(1, i32), .{ - -0x27f49dce, - }); - try testArgs(@Vector(2, i32), .{ - 0x24641ec7, 0x436c5bd2, - }); - try testArgs(@Vector(4, i32), .{ - 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73, - }); - try testArgs(@Vector(8, i32), .{ - 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8, - -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966, - }); - try testArgs(@Vector(16, i32), .{ - 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400, - 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf, - 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a, - 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8, - }); - try testArgs(@Vector(32, i32), .{ - 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d, - -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2, - 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287, - -0x7cf56523, -0x3c98e2e4, 0x1e7db6c0, -0x7e668ad2, - -0x6c245ecf, -0x09842450, -0x403a4335, -0x7a68e9b7, - 0x0036cf57, -0x251edb4e, -0x67ec3abf, -0x183f0333, - -0x4b46723c, -0x1e5383d6, 0x188c1de3, 0x400b3648, - -0x4b21d9d3, 0x61635257, 0x179eb187, 0x31cd8376, - }); - - try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(1, u32), .{ - 0x17e2805c, - }); - try testArgs(@Vector(2, u32), .{ - 0xdb6aadc5, 0xb1ff3754, - }); - try testArgs(@Vector(4, u32), .{ - 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374, - }); - try testArgs(@Vector(8, u32), .{ - 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7, - 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c, - }); - try testArgs(@Vector(16, u32), .{ - 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13, - 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc, - 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a, - 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54, - }); - try testArgs(@Vector(32, u32), .{ - 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72, - 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7, - 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c, - 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37, - 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d, - 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785, - 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa, - 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f, - }); - - try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 }); - - try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 }); - - try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(1, i64), .{ - 0x29113011488d8b65, - }); - try testArgs(@Vector(2, i64), .{ - -0x3f865dcdfd831d03, -0x35512d15095445d6, - }); - try testArgs(@Vector(4, i64), .{ - 0x6f37a9484440251e, 0x2757e5e2b77e6ef3, - 0x4903a91bd2993d0b, 0x162244ba22371f62, - }); - try testArgs(@Vector(8, i64), .{ - -0x46e2340c765175c1, -0x031ee2297e6cc8b3, - -0x2627434d4b4fb796, 0x525e1ef31b6daa46, - 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448, - -0x5419ebf5cd514cde, -0x618c56a881057ac4, - }); - try testArgs(@Vector(16, i64), .{ - 0x36b4a703d084c774, 0x07a500f0d603a4d5, - -0x27387989d2450cdd, 0x02073880984d74c8, - -0x18d1593e36724417, -0x79df283cc6f403d8, - 0x36838a7c54da5f2b, -0x2bf76c1666a1b768, - -0x6ace0d64a2757edc, 0x41442e9979a0ab64, - 0x002612bfdf419826, 0x1128ba5648d22fe8, - 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3, - -0x5c89f516258c7e77, 0x6b345f04e60d2e56, - }); - - try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(1, u64), .{ - 0x7d2e439abb0edba7, - }); - try testArgs(@Vector(2, u64), .{ - 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389, - }); - try testArgs(@Vector(4, u64), .{ - 0x03c127040e10d52b, 0xa86fe019072e27eb, - 0x0a554a47b709cdba, 0xf4342cc597e196c3, - }); - try testArgs(@Vector(8, u64), .{ - 0xea455c104375a055, 0x5c35d9d945edb2fa, - 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b, - 0xed6603f1f5d574b3, 0x2f37b354c81c1e56, - 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f, - }); - try testArgs(@Vector(16, u64), .{ - 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8, - 0xebf24b31c0460510, 0x15d5b4c09b53ffa5, - 0x05abf6e744b17cc6, 0x9747b483f2d159fe, - 0x4616d8b2c8673125, 0x8ae3f91d422447eb, - 0x18da2f101a9e9776, 0x77a1197fb0441007, - 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278, - 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515, - 0x0901c59a9a6a408b, 0x7c77ca72e25df033, - }); - - try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 }); - - try testArgs(@Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 }); - - try testArgs(@Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(1, i128), .{ - -0x2b0b1462b44785f39d1b7d763ec7bdb2, - }); - try testArgs(@Vector(2, i128), .{ - -0x2faebe898a6fe60fbc6aadc3623431b7, - 0x5e596259e7b2588860d2b470ba751ace, - }); - try testArgs(@Vector(4, i128), .{ - -0x624cb7e74cf789c06121809a3a5b51ba, - 0x23af4553d4d64672795c2b949635426f, - -0x0b598b1f94876757fb13f2198e902b13, - 0x1daf732f50654d8211d464fda4fc030c, - }); - try testArgs(@Vector(8, i128), .{ - -0x03c7df38daee9bc9a2c659a1a124ef10, - 0x657a590c91905c4021c28b0d6e42304a, - -0x3f5176206dadc974d10e6fcbd67f3d29, - 0x066310ace384b1bc3549c71113b96b8a, - -0x6c0201f66583206fcea7b7fe11889644, - -0x5cc4d2a368002b380b25415be83f8218, - 0x11156c91b97a6a93427009efebcb2c31, - -0x4221b5249ed0686c2ff2d5cab9f1c362, - }); - - try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(1, u128), .{ - 0x809f29e7fbafadc01145e1732590e7d9, - }); - try testArgs(@Vector(2, u128), .{ - 0x5150ac3438aacd0d51132cc2723b2995, - 0x151be9c47ad29cf719cf8358dd40165c, - }); - try testArgs(@Vector(4, u128), .{ - 0x4bae22df929f2f7cb9bd84deaad3e7a8, - 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb, - 0xae93ea459d2ccfd5fb794e6d5c31aabb, - 0xb1177136acf099f550b70949ac202ec4, - }); - try testArgs(@Vector(8, u128), .{ - 0x7cd78db6baed6bfdf8c5265136c4e0fd, - 0xa41b8984c6bbde84640068194b7eba98, - 0xd33102778f2ae1a48d1e9bf8801bbbf0, - 0x0d59f6de003513a60055c86cbce2c200, - 0x825579d90012afddfbf04851c0748561, - 0xc2647c885e9d6f0ee1f5fac5da8ef7f5, - 0xcb4bbc1f81aa8ee68aa4dc140745687b, - 0x4ff10f914f74b46c694407f5bf7c7836, - }); - - try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 }); - - try testArgs(@Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u191), .{ 0, 1, 1 << 190 }); - - try testArgs(@Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(1, i192), .{ - 0x0206223e53631dfaf431066cf5ac30dd203bb8c7baa0cec7, - }); - try testArgs(@Vector(2, i192), .{ - 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b, - -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3, - }); - try testArgs(@Vector(4, i192), .{ - -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41, - -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33, - -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073, - 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd, - }); - - try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(1, u192), .{ - 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b, - }); - try testArgs(@Vector(2, u192), .{ - 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83, - 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65, - }); - try testArgs(@Vector(4, u192), .{ - 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202, - 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d, - 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d, - 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a, - }); - - try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 }); - - try testArgs(@Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 }); - - try testArgs(@Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(1, i256), .{ - 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3, - }); - try testArgs(@Vector(2, i256), .{ - 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb, - -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832, - }); - try testArgs(@Vector(4, i256), .{ - -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5, - -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b, - 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311, - -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111, - }); - - try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(1, u256), .{ - 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda, - }); - try testArgs(@Vector(2, u256), .{ - 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d, - 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7, - }); - try testArgs(@Vector(4, u256), .{ - 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97, - 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa, - 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce, - 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07, - }); - - try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 }); - - try testArgs(@Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 }); - - try testArgs(@Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(1, i512), .{ - -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5, - }); - try testArgs(@Vector(2, i512), .{ - -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1, - -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845, - }); - - try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(1, u512), .{ - 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6, - }); - try testArgs(@Vector(2, u512), .{ - 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53, - 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e, - }); - - try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 }); - - try testArgs(@Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - - try testArgs(@Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(1, i1024), .{ - 0x10eee350e115375812126750b24255ca76fdee619b64261c354af58bd4a29af6e2448ccda4d84e1b2fbf76d3710cf1b5e62b1360c3b63e104d0755fa264d6c171f8f7a3292d7859b08a5dff60e9ad8ba9dcdd7e6098eb70be7a27a0cbcc6480661330c21299b2960fac954ee4480f3a2cc1ca5a492e1e75084c079ba701cd7ab, - }); - - try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(1, u1024), .{ - 0xc6cfaa6571139552e1f067402dfc131d9b9a58aafda97198a78764b05138fb68cf26f085b7652f3d5ae0e56aa21732f296a581bb411d4a73795c213de793489fa49b173b9f5c089aa6295ff1fcdc14d491a05035b45d08fc35cd67a83d887a02b8db512f07518132e0ba56533c7d6fbe958255eddf5649bd8aba288c0dd84a25, - }); - - try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - } - fn testFloatVectorTypes() !void { - try testArgs(@Vector(1, f16), undefined); - try testArgs(@Vector(2, f16), undefined); - try testArgs(@Vector(4, f16), undefined); - try testArgs(@Vector(8, f16), undefined); - try testArgs(@Vector(16, f16), undefined); - try testArgs(@Vector(32, f16), undefined); - try testArgs(@Vector(64, f16), undefined); - - try testArgs(@Vector(1, f32), undefined); - try testArgs(@Vector(2, f32), undefined); - try testArgs(@Vector(4, f32), undefined); - try testArgs(@Vector(8, f32), undefined); - try testArgs(@Vector(16, f32), undefined); - try testArgs(@Vector(32, f32), undefined); - - try testArgs(@Vector(1, f64), undefined); - try testArgs(@Vector(2, f64), undefined); - try testArgs(@Vector(4, f64), undefined); - try testArgs(@Vector(8, f64), undefined); - try testArgs(@Vector(16, f64), undefined); - - try testArgs(@Vector(1, f80), undefined); - try testArgs(@Vector(2, f80), undefined); - try testArgs(@Vector(4, f80), undefined); - try testArgs(@Vector(8, f80), undefined); - - try testArgs(@Vector(1, f128), undefined); - try testArgs(@Vector(2, f128), undefined); - try testArgs(@Vector(4, f128), undefined); - try testArgs(@Vector(8, f128), undefined); - } - fn testFloatVectors() !void { - try testArgs(@Vector(1, f16), .{ - -0x1.17cp-12, - }); - try testArgs(@Vector(2, f16), .{ - 0x1.47cp9, 0x1.3acp9, - }); - try testArgs(@Vector(4, f16), .{ - 0x1.ab4p0, -0x1.7fcp-7, -0x1.1cp0, -0x1.f14p12, - }); - try testArgs(@Vector(8, f16), .{ - -0x1.8d8p8, 0x1.83p10, -0x1.5ap-1, -0x1.d78p13, -0x1.608p12, 0x1.e8p-9, -0x1.688p-10, -0x1.738p9, - }); - try testArgs(@Vector(16, f16), .{ - 0x1.da8p-1, -0x1.ed4p-10, -0x1.dc8p1, 0x1.b78p-14, nan(f16), 0x1.9d8p8, nan(f16), 0x1.d5p13, - -0x1.2dp13, 0x1.6c4p12, 0x1.a9cp-11, -0x1.0ecp8, 0x0.4ccp-14, -0x1.0a8p-6, -0x1.5bcp-14, 0x1.6d8p-9, - }); - try testArgs(@Vector(32, f16), .{ - 0x1.d5cp-6, -0x1.a98p5, 0x1.49cp5, -0x1.e4p-1, -0x1.21p-13, -0x1.c94p-1, -0x1.adcp-5, -0x1.524p-1, - -0x1.0d8p-3, -0x1.5c4p-2, 0x1.f84p-2, 0x1.664p1, -0x1.f64p13, -0x1.bf4p4, -0x1.4b8p0, -0x0.f64p-14, - -0x1.3f8p1, 0x1.098p2, -0x1.a44p8, 0x1.048p13, 0x1.fd4p-11, 0x1.18p-9, -0x1.504p2, 0x1.d04p7, - -nan(f16), 0x1.a94p2, 0x0.5e8p-14, -0x1.7acp-7, 0x1.4c8p-3, 0x1.518p-4, nan(f16), 0x1.8f8p10, - }); - try testArgs(@Vector(64, f16), .{ - -0x1.c2p2, 0x0.2fcp-14, 0x1.de8p0, -0x1.714p2, 0x1.f9p-7, -0x1.11cp-13, -0x1.558p10, -0x1.2acp-7, - 0x1.348p14, 0x1.2dcp7, -0x1.8acp-12, -0x1.2cp2, 0x1.868p1, -0x1.1f8p-14, 0x1.638p7, -0x1.734p-5, - 0x0.b98p-14, -0x1.7f4p-12, -0x1.38cp15, 0x1.50cp15, 0x1.91cp8, 0x1.cb4p-1, 0x1.fc4p-13, 0x1.9a4p0, - 0x1.18p-4, 0x1.60cp10, 0x1.6fp-12, 0x1.b48p6, 0x1.37cp-11, 0x1.424p7, 0x1.44cp13, 0x1.aep5, - 0x1.968p14, 0x1.e8p13, -0x1.bp2, -0x1.644p5, 0x1.de4p-8, -0x1.5b4p-14, -0x1.4ap1, -0x1.868p9, - -0x1.d14p0, 0x1.d7cp15, 0x1.3c8p14, 0x1.2ccp-14, -0x1.ee4p8, 0x1.49p-3, 0x1.35cp12, 0x1.d34p6, - 0x1.7acp3, -0x1.fa4p2, 0x1.7b4p13, -0x1.cf4p-12, -0x1.ebcp-10, -0x1.5p-3, 0x1.4bp-6, 0x1.83p12, - -0x1.f9cp-8, -0x1.43p-8, -0x1.99p-1, -0x1.dacp3, -0x1.728p-4, -0x1.03cp4, 0x1.604p-2, -0x1.0ep13, - }); - - try testArgs(@Vector(1, f32), .{ - -0x1.17cp-12, - }); - try testArgs(@Vector(2, f32), .{ - -0x1.a3123ap90, -0x1.4a2ec6p-54, - }); - try testArgs(@Vector(4, f32), .{ - -0x1.8a41p77, -0x1.7c54e2p-61, -0x1.498556p-41, 0x1.d77c22p-20, - }); - try testArgs(@Vector(8, f32), .{ - 0x1.943da4p-86, 0x1.528792p95, -0x1.9c9bfap-26, -0x1.8df936p-90, - -0x1.6a70cep56, 0x1.626638p-48, 0x1.7bb2bap-57, -0x1.ac5104p94, - }); - try testArgs(@Vector(16, f32), .{ - 0x1.157044p115, -0x1.416c04p-111, 0x1.a8f164p-104, 0x1.9b6678p84, - -0x1.9d065cp9, -0x1.e8c4b4p126, -0x1.ddb968p84, -0x1.fec8c8p74, - 0x1.64ffb2p59, 0x1.548922p20, 0x1.7270fcp22, -0x1.abac68p33, - 0x1.faabfp33, -0x1.8aee82p55, 0x1.1bf8fp75, 0x1.33c46ap-66, - }); - try testArgs(@Vector(32, f32), .{ - -0x1.039b68p37, -0x1.34de4ap-74, -0x1.05d78ap-76, -0x1.be0f5ap-47, - 0x1.032204p-38, 0x1.ef8e2ap-78, -0x1.b013ecp-80, 0x1.71fe4cp99, - 0x1.abdadap-14, 0x1.56a9a8p-48, -0x1.8bbd7ep9, 0x1.edd308p-72, - -0x1.92fafcp-121, -0x1.50812p19, 0x1.f4ddc4p28, -0x1.6f0b12p-50, - -0x1.12ab02p127, 0x1.24df48p21, -0x1.993c3p-14, -0x1.4cc476p-112, - 0x1.13d9a8p-40, 0x1.a6e652p-9, -0x1.9c730cp-21, -0x1.a75aaap-70, - -0x1.39e632p-111, 0x1.8e8da8p-45, 0x1.b5652cp31, 0x1.258366p44, - 0x1.d473aap92, -0x1.951b64p9, 0x1.542edp15, -0x0.f6222ap-126, - }); - - try testArgs(@Vector(1, f64), .{ - -0x1.0114613df6f97p816, - }); - try testArgs(@Vector(2, f64), .{ - -0x1.8404dad72003cp720, -0x1.6b14b40bcf3b7p-176, - }); - try testArgs(@Vector(4, f64), .{ - -0x1.04e1acbfddd9cp681, -0x1.ed553cc056da7p-749, - 0x1.3d3f703a0c893p-905, 0x1.0b35633fa78fp691, - }); - try testArgs(@Vector(8, f64), .{ - -0x1.901a2a60f0562p-301, -0x1.2516175ad61ecp-447, - 0x1.e7b12124846bfp564, 0x1.9291384bd7259p209, - -0x1.a7bf62f803c98p900, 0x1.4e2e26257bb3p987, - -0x1.413ca9a32d894p811, 0x1.61b1dd9432e95p479, - }); - try testArgs(@Vector(16, f64), .{ - -0x1.8fc7286d95f54p-235, -0x1.796a7ea8372b6p-837, - -0x1.8c0f930539acbp-98, -0x1.ec80dfbf0b931p-430, - -0x1.e3d80c640652fp-1019, 0x1.8241238fb542fp161, - -0x1.e1f1a79d50263p137, -0x1.9ac5cb2771c28p-791, - 0x1.4d8f00fe881e7p-401, -0x1.87fbd7bfd99d7p346, - -0x1.a8a7cc575335ep1017, 0x1.37bb88dc3fd8bp-355, - 0x1.9d53d346c0e65p929, -0x1.bbae3d0229c34p289, - -0x1.cb8ef994d5ce5p25, 0x1.ba20af512616ap50, - }); - - try testArgs(@Vector(1, f80), .{ - -0x1.a2e9410a7dfedabp-2324, - }); - try testArgs(@Vector(2, f80), .{ - -0x1.a2e9410a7dfedabp-2324, - 0x1.2b17da3b9746885p-8665, - }); - try testArgs(@Vector(4, f80), .{ - -0x1.c488fedb7ab646cep-13007, - 0x1.e914deaccaa50016p2073, - -0x1.d1c7ae8ec3c9df86p10642, - -0x1.2da1658f337fa01p9893, - }); - try testArgs(@Vector(8, f80), .{ - -0x1.bed8a74c43750656p890, - -0x1.7bf57f38004ac976p8481, - -0x1.9cdc10ac0657d328p7884, - 0x1.c86f61883da149fp12293, - -0x1.528d6957df6bfdd8p14125, - -0x1.5ebb4006d0243bfep14530, - -0x1.94b9b18636d12402p-1845, - -0x1.25439a6d68add188p5962, - }); - - try testArgs(@Vector(1, f128), .{ - -0x1.d1e6fc3b1e66632e7b79051a47dap14300, - }); - try testArgs(@Vector(2, f128), .{ - 0x1.84b3ac8ffe5893b2c6af8d68de9dp-83, - -0x1.438ca2c8a0d8e3ee9062d351c46ep-10235, - }); - try testArgs(@Vector(4, f128), .{ - 0x1.04eb03882d4fd1b090e714d3e5ep806, - -0x1.4082b29f7c26e701764c915642ffp-6182, - -0x1.b6f1e8565e5040415110f18b519ap13383, - 0x1.1c29f8c162cead9061c5797ea15ap11957, - }); - try testArgs(@Vector(8, f128), .{ - -0x1.53d7f00cd204d80e5ff5bb665773p11218, - -0x1.4daa1c81cffe28e8fa5cd703c287p2362, - -0x1.cc6a71c3ad4560871efdbd025cd7p-8116, - -0x1.87f8553cf8772fb6b78e7df3e3bap14523, - -0x1.14b6880f6678f86dfb543dde1c6ep2105, - 0x1.9d2d4398414da9d857e76e8fd7ccp-13668, - 0x1.a37f07af240ded458d103c022064p-1158, - 0x1.425d53e6bd6070b847e5da1ed593p1394, - }); - } - }; -} - -fn cast(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type { - return struct { - // noinline so that `mem_arg` is on the stack - noinline fn testArgKinds( - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - comptime Result: type, - comptime Type: type, - comptime imm_arg: Type, - mem_arg: Type, - ) !void { - const expected = comptime op(Result, Type, imm_arg, imm_arg); - var reg_arg = mem_arg; - _ = .{®_arg}; - try checkExpected(expected, op(Result, Type, reg_arg, imm_arg), opts.compare); - try checkExpected(expected, op(Result, Type, mem_arg, imm_arg), opts.compare); - try checkExpected(expected, op(Result, Type, imm_arg, imm_arg), opts.compare); - } - // noinline for a more helpful stack trace - noinline fn testArgs(comptime Result: type, comptime Type: type, comptime imm_arg: Type) !void { - try testArgKinds( - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - Result, - Type, - imm_arg, - imm_arg, - ); - } - fn testSameSignednessInts() !void { - try testArgs(i8, i1, -1); - try testArgs(i8, i1, 0); - try testArgs(i16, i1, -1); - try testArgs(i16, i1, 0); - try testArgs(i32, i1, -1); - try testArgs(i32, i1, 0); - try testArgs(i64, i1, -1); - try testArgs(i64, i1, 0); - try testArgs(i128, i1, -1); - try testArgs(i128, i1, 0); - try testArgs(i256, i1, -1); - try testArgs(i256, i1, 0); - try testArgs(i512, i1, -1); - try testArgs(i512, i1, 0); - try testArgs(i1024, i1, -1); - try testArgs(i1024, i1, 0); - try testArgs(u8, u1, 0); - try testArgs(u8, u1, 1 << 0); - try testArgs(u16, u1, 0); - try testArgs(u16, u1, 1 << 0); - try testArgs(u32, u1, 0); - try testArgs(u32, u1, 1 << 0); - try testArgs(u64, u1, 0); - try testArgs(u64, u1, 1 << 0); - try testArgs(u128, u1, 0); - try testArgs(u128, u1, 1 << 0); - try testArgs(u256, u1, 0); - try testArgs(u256, u1, 1 << 0); - try testArgs(u512, u1, 0); - try testArgs(u512, u1, 1 << 0); - try testArgs(u1024, u1, 0); - try testArgs(u1024, u1, 1 << 0); - - try testArgs(i8, i2, -1 << 1); - try testArgs(i8, i2, -1); - try testArgs(i8, i2, 0); - try testArgs(i16, i2, -1 << 1); - try testArgs(i16, i2, -1); - try testArgs(i16, i2, 0); - try testArgs(i32, i2, -1 << 1); - try testArgs(i32, i2, -1); - try testArgs(i32, i2, 0); - try testArgs(i64, i2, -1 << 1); - try testArgs(i64, i2, -1); - try testArgs(i64, i2, 0); - try testArgs(i128, i2, -1 << 1); - try testArgs(i128, i2, -1); - try testArgs(i128, i2, 0); - try testArgs(i256, i2, -1 << 1); - try testArgs(i256, i2, -1); - try testArgs(i256, i2, 0); - try testArgs(i512, i2, -1 << 1); - try testArgs(i512, i2, -1); - try testArgs(i512, i2, 0); - try testArgs(i1024, i2, -1 << 1); - try testArgs(i1024, i2, -1); - try testArgs(i1024, i2, 0); - try testArgs(u8, u2, 0); - try testArgs(u8, u2, 1 << 0); - try testArgs(u8, u2, 1 << 1); - try testArgs(u16, u2, 0); - try testArgs(u16, u2, 1 << 0); - try testArgs(u16, u2, 1 << 1); - try testArgs(u32, u2, 0); - try testArgs(u32, u2, 1 << 0); - try testArgs(u32, u2, 1 << 1); - try testArgs(u64, u2, 0); - try testArgs(u64, u2, 1 << 0); - try testArgs(u64, u2, 1 << 1); - try testArgs(u128, u2, 0); - try testArgs(u128, u2, 1 << 0); - try testArgs(u128, u2, 1 << 1); - try testArgs(u256, u2, 0); - try testArgs(u256, u2, 1 << 0); - try testArgs(u256, u2, 1 << 1); - try testArgs(u512, u2, 0); - try testArgs(u512, u2, 1 << 0); - try testArgs(u512, u2, 1 << 1); - try testArgs(u1024, u2, 0); - try testArgs(u1024, u2, 1 << 0); - try testArgs(u1024, u2, 1 << 1); - - try testArgs(i8, i3, -1 << 2); - try testArgs(i8, i3, -1); - try testArgs(i8, i3, 0); - try testArgs(i16, i3, -1 << 2); - try testArgs(i16, i3, -1); - try testArgs(i16, i3, 0); - try testArgs(i32, i3, -1 << 2); - try testArgs(i32, i3, -1); - try testArgs(i32, i3, 0); - try testArgs(i64, i3, -1 << 2); - try testArgs(i64, i3, -1); - try testArgs(i64, i3, 0); - try testArgs(i128, i3, -1 << 2); - try testArgs(i128, i3, -1); - try testArgs(i128, i3, 0); - try testArgs(i256, i3, -1 << 2); - try testArgs(i256, i3, -1); - try testArgs(i256, i3, 0); - try testArgs(i512, i3, -1 << 2); - try testArgs(i512, i3, -1); - try testArgs(i512, i3, 0); - try testArgs(i1024, i3, -1 << 2); - try testArgs(i1024, i3, -1); - try testArgs(i1024, i3, 0); - try testArgs(u8, u3, 0); - try testArgs(u8, u3, 1 << 0); - try testArgs(u8, u3, 1 << 2); - try testArgs(u16, u3, 0); - try testArgs(u16, u3, 1 << 0); - try testArgs(u16, u3, 1 << 2); - try testArgs(u32, u3, 0); - try testArgs(u32, u3, 1 << 0); - try testArgs(u32, u3, 1 << 2); - try testArgs(u64, u3, 0); - try testArgs(u64, u3, 1 << 0); - try testArgs(u64, u3, 1 << 2); - try testArgs(u128, u3, 0); - try testArgs(u128, u3, 1 << 0); - try testArgs(u128, u3, 1 << 2); - try testArgs(u256, u3, 0); - try testArgs(u256, u3, 1 << 0); - try testArgs(u256, u3, 1 << 2); - try testArgs(u512, u3, 0); - try testArgs(u512, u3, 1 << 0); - try testArgs(u512, u3, 1 << 2); - try testArgs(u1024, u3, 0); - try testArgs(u1024, u3, 1 << 0); - try testArgs(u1024, u3, 1 << 2); - - try testArgs(i8, i4, -1 << 3); - try testArgs(i8, i4, -1); - try testArgs(i8, i4, 0); - try testArgs(i16, i4, -1 << 3); - try testArgs(i16, i4, -1); - try testArgs(i16, i4, 0); - try testArgs(i32, i4, -1 << 3); - try testArgs(i32, i4, -1); - try testArgs(i32, i4, 0); - try testArgs(i64, i4, -1 << 3); - try testArgs(i64, i4, -1); - try testArgs(i64, i4, 0); - try testArgs(i128, i4, -1 << 3); - try testArgs(i128, i4, -1); - try testArgs(i128, i4, 0); - try testArgs(i256, i4, -1 << 3); - try testArgs(i256, i4, -1); - try testArgs(i256, i4, 0); - try testArgs(i512, i4, -1 << 3); - try testArgs(i512, i4, -1); - try testArgs(i512, i4, 0); - try testArgs(i1024, i4, -1 << 3); - try testArgs(i1024, i4, -1); - try testArgs(i1024, i4, 0); - try testArgs(u8, u4, 0); - try testArgs(u8, u4, 1 << 0); - try testArgs(u8, u4, 1 << 3); - try testArgs(u16, u4, 0); - try testArgs(u16, u4, 1 << 0); - try testArgs(u16, u4, 1 << 3); - try testArgs(u32, u4, 0); - try testArgs(u32, u4, 1 << 0); - try testArgs(u32, u4, 1 << 3); - try testArgs(u64, u4, 0); - try testArgs(u64, u4, 1 << 0); - try testArgs(u64, u4, 1 << 3); - try testArgs(u128, u4, 0); - try testArgs(u128, u4, 1 << 0); - try testArgs(u128, u4, 1 << 3); - try testArgs(u256, u4, 0); - try testArgs(u256, u4, 1 << 0); - try testArgs(u256, u4, 1 << 3); - try testArgs(u512, u4, 0); - try testArgs(u512, u4, 1 << 0); - try testArgs(u512, u4, 1 << 3); - try testArgs(u1024, u4, 0); - try testArgs(u1024, u4, 1 << 0); - try testArgs(u1024, u4, 1 << 3); - - try testArgs(i8, i5, -1 << 4); - try testArgs(i8, i5, -1); - try testArgs(i8, i5, 0); - try testArgs(i16, i5, -1 << 4); - try testArgs(i16, i5, -1); - try testArgs(i16, i5, 0); - try testArgs(i32, i5, -1 << 4); - try testArgs(i32, i5, -1); - try testArgs(i32, i5, 0); - try testArgs(i64, i5, -1 << 4); - try testArgs(i64, i5, -1); - try testArgs(i64, i5, 0); - try testArgs(i128, i5, -1 << 4); - try testArgs(i128, i5, -1); - try testArgs(i128, i5, 0); - try testArgs(i256, i5, -1 << 4); - try testArgs(i256, i5, -1); - try testArgs(i256, i5, 0); - try testArgs(i512, i5, -1 << 4); - try testArgs(i512, i5, -1); - try testArgs(i512, i5, 0); - try testArgs(i1024, i5, -1 << 4); - try testArgs(i1024, i5, -1); - try testArgs(i1024, i5, 0); - try testArgs(u8, u5, 0); - try testArgs(u8, u5, 1 << 0); - try testArgs(u8, u5, 1 << 4); - try testArgs(u16, u5, 0); - try testArgs(u16, u5, 1 << 0); - try testArgs(u16, u5, 1 << 4); - try testArgs(u32, u5, 0); - try testArgs(u32, u5, 1 << 0); - try testArgs(u32, u5, 1 << 4); - try testArgs(u64, u5, 0); - try testArgs(u64, u5, 1 << 0); - try testArgs(u64, u5, 1 << 4); - try testArgs(u128, u5, 0); - try testArgs(u128, u5, 1 << 0); - try testArgs(u128, u5, 1 << 4); - try testArgs(u256, u5, 0); - try testArgs(u256, u5, 1 << 0); - try testArgs(u256, u5, 1 << 4); - try testArgs(u512, u5, 0); - try testArgs(u512, u5, 1 << 0); - try testArgs(u512, u5, 1 << 4); - try testArgs(u1024, u5, 0); - try testArgs(u1024, u5, 1 << 0); - try testArgs(u1024, u5, 1 << 4); - - try testArgs(i8, i7, -1 << 6); - try testArgs(i8, i7, -1); - try testArgs(i8, i7, 0); - try testArgs(i16, i7, -1 << 6); - try testArgs(i16, i7, -1); - try testArgs(i16, i7, 0); - try testArgs(i32, i7, -1 << 6); - try testArgs(i32, i7, -1); - try testArgs(i32, i7, 0); - try testArgs(i64, i7, -1 << 6); - try testArgs(i64, i7, -1); - try testArgs(i64, i7, 0); - try testArgs(i128, i7, -1 << 6); - try testArgs(i128, i7, -1); - try testArgs(i128, i7, 0); - try testArgs(i256, i7, -1 << 6); - try testArgs(i256, i7, -1); - try testArgs(i256, i7, 0); - try testArgs(i512, i7, -1 << 6); - try testArgs(i512, i7, -1); - try testArgs(i512, i7, 0); - try testArgs(i1024, i7, -1 << 6); - try testArgs(i1024, i7, -1); - try testArgs(i1024, i7, 0); - try testArgs(u8, u7, 0); - try testArgs(u8, u7, 1 << 0); - try testArgs(u8, u7, 1 << 6); - try testArgs(u16, u7, 0); - try testArgs(u16, u7, 1 << 0); - try testArgs(u16, u7, 1 << 6); - try testArgs(u32, u7, 0); - try testArgs(u32, u7, 1 << 0); - try testArgs(u32, u7, 1 << 6); - try testArgs(u64, u7, 0); - try testArgs(u64, u7, 1 << 0); - try testArgs(u64, u7, 1 << 6); - try testArgs(u128, u7, 0); - try testArgs(u128, u7, 1 << 0); - try testArgs(u128, u7, 1 << 6); - try testArgs(u256, u7, 0); - try testArgs(u256, u7, 1 << 0); - try testArgs(u256, u7, 1 << 6); - try testArgs(u512, u7, 0); - try testArgs(u512, u7, 1 << 0); - try testArgs(u512, u7, 1 << 6); - try testArgs(u1024, u7, 0); - try testArgs(u1024, u7, 1 << 0); - try testArgs(u1024, u7, 1 << 6); - - try testArgs(i8, i8, -1 << 7); - try testArgs(i8, i8, -1); - try testArgs(i8, i8, 0); - try testArgs(i16, i8, -1 << 7); - try testArgs(i16, i8, -1); - try testArgs(i16, i8, 0); - try testArgs(i32, i8, -1 << 7); - try testArgs(i32, i8, -1); - try testArgs(i32, i8, 0); - try testArgs(i64, i8, -1 << 7); - try testArgs(i64, i8, -1); - try testArgs(i64, i8, 0); - try testArgs(i128, i8, -1 << 7); - try testArgs(i128, i8, -1); - try testArgs(i128, i8, 0); - try testArgs(i256, i8, -1 << 7); - try testArgs(i256, i8, -1); - try testArgs(i256, i8, 0); - try testArgs(i512, i8, -1 << 7); - try testArgs(i512, i8, -1); - try testArgs(i512, i8, 0); - try testArgs(i1024, i8, -1 << 7); - try testArgs(i1024, i8, -1); - try testArgs(i1024, i8, 0); - try testArgs(u8, u8, 0); - try testArgs(u8, u8, 1 << 0); - try testArgs(u8, u8, 1 << 7); - try testArgs(u16, u8, 0); - try testArgs(u16, u8, 1 << 0); - try testArgs(u16, u8, 1 << 7); - try testArgs(u32, u8, 0); - try testArgs(u32, u8, 1 << 0); - try testArgs(u32, u8, 1 << 7); - try testArgs(u64, u8, 0); - try testArgs(u64, u8, 1 << 0); - try testArgs(u64, u8, 1 << 7); - try testArgs(u128, u8, 0); - try testArgs(u128, u8, 1 << 0); - try testArgs(u128, u8, 1 << 7); - try testArgs(u256, u8, 0); - try testArgs(u256, u8, 1 << 0); - try testArgs(u256, u8, 1 << 7); - try testArgs(u512, u8, 0); - try testArgs(u512, u8, 1 << 0); - try testArgs(u512, u8, 1 << 7); - try testArgs(u1024, u8, 0); - try testArgs(u1024, u8, 1 << 0); - try testArgs(u1024, u8, 1 << 7); - - try testArgs(i8, i9, -1 << 8); - try testArgs(i8, i9, -1); - try testArgs(i8, i9, 0); - try testArgs(i16, i9, -1 << 8); - try testArgs(i16, i9, -1); - try testArgs(i16, i9, 0); - try testArgs(i32, i9, -1 << 8); - try testArgs(i32, i9, -1); - try testArgs(i32, i9, 0); - try testArgs(i64, i9, -1 << 8); - try testArgs(i64, i9, -1); - try testArgs(i64, i9, 0); - try testArgs(i128, i9, -1 << 8); - try testArgs(i128, i9, -1); - try testArgs(i128, i9, 0); - try testArgs(i256, i9, -1 << 8); - try testArgs(i256, i9, -1); - try testArgs(i256, i9, 0); - try testArgs(i512, i9, -1 << 8); - try testArgs(i512, i9, -1); - try testArgs(i512, i9, 0); - try testArgs(i1024, i9, -1 << 8); - try testArgs(i1024, i9, -1); - try testArgs(i1024, i9, 0); - try testArgs(u8, u9, 0); - try testArgs(u8, u9, 1 << 0); - try testArgs(u8, u9, 1 << 8); - try testArgs(u16, u9, 0); - try testArgs(u16, u9, 1 << 0); - try testArgs(u16, u9, 1 << 8); - try testArgs(u32, u9, 0); - try testArgs(u32, u9, 1 << 0); - try testArgs(u32, u9, 1 << 8); - try testArgs(u64, u9, 0); - try testArgs(u64, u9, 1 << 0); - try testArgs(u64, u9, 1 << 8); - try testArgs(u128, u9, 0); - try testArgs(u128, u9, 1 << 0); - try testArgs(u128, u9, 1 << 8); - try testArgs(u256, u9, 0); - try testArgs(u256, u9, 1 << 0); - try testArgs(u256, u9, 1 << 8); - try testArgs(u512, u9, 0); - try testArgs(u512, u9, 1 << 0); - try testArgs(u512, u9, 1 << 8); - try testArgs(u1024, u9, 0); - try testArgs(u1024, u9, 1 << 0); - try testArgs(u1024, u9, 1 << 8); - - try testArgs(i8, i15, -1 << 14); - try testArgs(i8, i15, -1); - try testArgs(i8, i15, 0); - try testArgs(i16, i15, -1 << 14); - try testArgs(i16, i15, -1); - try testArgs(i16, i15, 0); - try testArgs(i32, i15, -1 << 14); - try testArgs(i32, i15, -1); - try testArgs(i32, i15, 0); - try testArgs(i64, i15, -1 << 14); - try testArgs(i64, i15, -1); - try testArgs(i64, i15, 0); - try testArgs(i128, i15, -1 << 14); - try testArgs(i128, i15, -1); - try testArgs(i128, i15, 0); - try testArgs(i256, i15, -1 << 14); - try testArgs(i256, i15, -1); - try testArgs(i256, i15, 0); - try testArgs(i512, i15, -1 << 14); - try testArgs(i512, i15, -1); - try testArgs(i512, i15, 0); - try testArgs(i1024, i15, -1 << 14); - try testArgs(i1024, i15, -1); - try testArgs(i1024, i15, 0); - try testArgs(u8, u15, 0); - try testArgs(u8, u15, 1 << 0); - try testArgs(u8, u15, 1 << 14); - try testArgs(u16, u15, 0); - try testArgs(u16, u15, 1 << 0); - try testArgs(u16, u15, 1 << 14); - try testArgs(u32, u15, 0); - try testArgs(u32, u15, 1 << 0); - try testArgs(u32, u15, 1 << 14); - try testArgs(u64, u15, 0); - try testArgs(u64, u15, 1 << 0); - try testArgs(u64, u15, 1 << 14); - try testArgs(u128, u15, 0); - try testArgs(u128, u15, 1 << 0); - try testArgs(u128, u15, 1 << 14); - try testArgs(u256, u15, 0); - try testArgs(u256, u15, 1 << 0); - try testArgs(u256, u15, 1 << 14); - try testArgs(u512, u15, 0); - try testArgs(u512, u15, 1 << 0); - try testArgs(u512, u15, 1 << 14); - try testArgs(u1024, u15, 0); - try testArgs(u1024, u15, 1 << 0); - try testArgs(u1024, u15, 1 << 14); - - try testArgs(i8, i16, -1 << 15); - try testArgs(i8, i16, -1); - try testArgs(i8, i16, 0); - try testArgs(i16, i16, -1 << 15); - try testArgs(i16, i16, -1); - try testArgs(i16, i16, 0); - try testArgs(i32, i16, -1 << 15); - try testArgs(i32, i16, -1); - try testArgs(i32, i16, 0); - try testArgs(i64, i16, -1 << 15); - try testArgs(i64, i16, -1); - try testArgs(i64, i16, 0); - try testArgs(i128, i16, -1 << 15); - try testArgs(i128, i16, -1); - try testArgs(i128, i16, 0); - try testArgs(i256, i16, -1 << 15); - try testArgs(i256, i16, -1); - try testArgs(i256, i16, 0); - try testArgs(i512, i16, -1 << 15); - try testArgs(i512, i16, -1); - try testArgs(i512, i16, 0); - try testArgs(i1024, i16, -1 << 15); - try testArgs(i1024, i16, -1); - try testArgs(i1024, i16, 0); - try testArgs(u8, u16, 0); - try testArgs(u8, u16, 1 << 0); - try testArgs(u8, u16, 1 << 15); - try testArgs(u16, u16, 0); - try testArgs(u16, u16, 1 << 0); - try testArgs(u16, u16, 1 << 15); - try testArgs(u32, u16, 0); - try testArgs(u32, u16, 1 << 0); - try testArgs(u32, u16, 1 << 15); - try testArgs(u64, u16, 0); - try testArgs(u64, u16, 1 << 0); - try testArgs(u64, u16, 1 << 15); - try testArgs(u128, u16, 0); - try testArgs(u128, u16, 1 << 0); - try testArgs(u128, u16, 1 << 15); - try testArgs(u256, u16, 0); - try testArgs(u256, u16, 1 << 0); - try testArgs(u256, u16, 1 << 15); - try testArgs(u512, u16, 0); - try testArgs(u512, u16, 1 << 0); - try testArgs(u512, u16, 1 << 15); - try testArgs(u1024, u16, 0); - try testArgs(u1024, u16, 1 << 0); - try testArgs(u1024, u16, 1 << 15); - - try testArgs(i8, i17, -1 << 16); - try testArgs(i8, i17, -1); - try testArgs(i8, i17, 0); - try testArgs(i16, i17, -1 << 16); - try testArgs(i16, i17, -1); - try testArgs(i16, i17, 0); - try testArgs(i32, i17, -1 << 16); - try testArgs(i32, i17, -1); - try testArgs(i32, i17, 0); - try testArgs(i64, i17, -1 << 16); - try testArgs(i64, i17, -1); - try testArgs(i64, i17, 0); - try testArgs(i128, i17, -1 << 16); - try testArgs(i128, i17, -1); - try testArgs(i128, i17, 0); - try testArgs(i256, i17, -1 << 16); - try testArgs(i256, i17, -1); - try testArgs(i256, i17, 0); - try testArgs(i512, i17, -1 << 16); - try testArgs(i512, i17, -1); - try testArgs(i512, i17, 0); - try testArgs(i1024, i17, -1 << 16); - try testArgs(i1024, i17, -1); - try testArgs(i1024, i17, 0); - try testArgs(u8, u17, 0); - try testArgs(u8, u17, 1 << 0); - try testArgs(u8, u17, 1 << 16); - try testArgs(u16, u17, 0); - try testArgs(u16, u17, 1 << 0); - try testArgs(u16, u17, 1 << 16); - try testArgs(u32, u17, 0); - try testArgs(u32, u17, 1 << 0); - try testArgs(u32, u17, 1 << 16); - try testArgs(u64, u17, 0); - try testArgs(u64, u17, 1 << 0); - try testArgs(u64, u17, 1 << 16); - try testArgs(u128, u17, 0); - try testArgs(u128, u17, 1 << 0); - try testArgs(u128, u17, 1 << 16); - try testArgs(u256, u17, 0); - try testArgs(u256, u17, 1 << 0); - try testArgs(u256, u17, 1 << 16); - try testArgs(u512, u17, 0); - try testArgs(u512, u17, 1 << 0); - try testArgs(u512, u17, 1 << 16); - try testArgs(u1024, u17, 0); - try testArgs(u1024, u17, 1 << 0); - try testArgs(u1024, u17, 1 << 16); - - try testArgs(i8, i31, -1 << 30); - try testArgs(i8, i31, -1); - try testArgs(i8, i31, 0); - try testArgs(i16, i31, -1 << 30); - try testArgs(i16, i31, -1); - try testArgs(i16, i31, 0); - try testArgs(i32, i31, -1 << 30); - try testArgs(i32, i31, -1); - try testArgs(i32, i31, 0); - try testArgs(i64, i31, -1 << 30); - try testArgs(i64, i31, -1); - try testArgs(i64, i31, 0); - try testArgs(i128, i31, -1 << 30); - try testArgs(i128, i31, -1); - try testArgs(i128, i31, 0); - try testArgs(i256, i31, -1 << 30); - try testArgs(i256, i31, -1); - try testArgs(i256, i31, 0); - try testArgs(i512, i31, -1 << 30); - try testArgs(i512, i31, -1); - try testArgs(i512, i31, 0); - try testArgs(i1024, i31, -1 << 30); - try testArgs(i1024, i31, -1); - try testArgs(i1024, i31, 0); - try testArgs(u8, u31, 0); - try testArgs(u8, u31, 1 << 0); - try testArgs(u8, u31, 1 << 30); - try testArgs(u16, u31, 0); - try testArgs(u16, u31, 1 << 0); - try testArgs(u16, u31, 1 << 30); - try testArgs(u32, u31, 0); - try testArgs(u32, u31, 1 << 0); - try testArgs(u32, u31, 1 << 30); - try testArgs(u64, u31, 0); - try testArgs(u64, u31, 1 << 0); - try testArgs(u64, u31, 1 << 30); - try testArgs(u128, u31, 0); - try testArgs(u128, u31, 1 << 0); - try testArgs(u128, u31, 1 << 30); - try testArgs(u256, u31, 0); - try testArgs(u256, u31, 1 << 0); - try testArgs(u256, u31, 1 << 30); - try testArgs(u512, u31, 0); - try testArgs(u512, u31, 1 << 0); - try testArgs(u512, u31, 1 << 30); - try testArgs(u1024, u31, 0); - try testArgs(u1024, u31, 1 << 0); - try testArgs(u1024, u31, 1 << 30); - - try testArgs(i8, i32, -1 << 31); - try testArgs(i8, i32, -1); - try testArgs(i8, i32, 0); - try testArgs(i16, i32, -1 << 31); - try testArgs(i16, i32, -1); - try testArgs(i16, i32, 0); - try testArgs(i32, i32, -1 << 31); - try testArgs(i32, i32, -1); - try testArgs(i32, i32, 0); - try testArgs(i64, i32, -1 << 31); - try testArgs(i64, i32, -1); - try testArgs(i64, i32, 0); - try testArgs(i128, i32, -1 << 31); - try testArgs(i128, i32, -1); - try testArgs(i128, i32, 0); - try testArgs(i256, i32, -1 << 31); - try testArgs(i256, i32, -1); - try testArgs(i256, i32, 0); - try testArgs(i512, i32, -1 << 31); - try testArgs(i512, i32, -1); - try testArgs(i512, i32, 0); - try testArgs(i1024, i32, -1 << 31); - try testArgs(i1024, i32, -1); - try testArgs(i1024, i32, 0); - try testArgs(u8, u32, 0); - try testArgs(u8, u32, 1 << 0); - try testArgs(u8, u32, 1 << 31); - try testArgs(u16, u32, 0); - try testArgs(u16, u32, 1 << 0); - try testArgs(u16, u32, 1 << 31); - try testArgs(u32, u32, 0); - try testArgs(u32, u32, 1 << 0); - try testArgs(u32, u32, 1 << 31); - try testArgs(u64, u32, 0); - try testArgs(u64, u32, 1 << 0); - try testArgs(u64, u32, 1 << 31); - try testArgs(u128, u32, 0); - try testArgs(u128, u32, 1 << 0); - try testArgs(u128, u32, 1 << 31); - try testArgs(u256, u32, 0); - try testArgs(u256, u32, 1 << 0); - try testArgs(u256, u32, 1 << 31); - try testArgs(u512, u32, 0); - try testArgs(u512, u32, 1 << 0); - try testArgs(u512, u32, 1 << 31); - try testArgs(u1024, u32, 0); - try testArgs(u1024, u32, 1 << 0); - try testArgs(u1024, u32, 1 << 31); - - try testArgs(i8, i33, -1 << 32); - try testArgs(i8, i33, -1); - try testArgs(i8, i33, 0); - try testArgs(i16, i33, -1 << 32); - try testArgs(i16, i33, -1); - try testArgs(i16, i33, 0); - try testArgs(i32, i33, -1 << 32); - try testArgs(i32, i33, -1); - try testArgs(i32, i33, 0); - try testArgs(i64, i33, -1 << 32); - try testArgs(i64, i33, -1); - try testArgs(i64, i33, 0); - try testArgs(i128, i33, -1 << 32); - try testArgs(i128, i33, -1); - try testArgs(i128, i33, 0); - try testArgs(i256, i33, -1 << 32); - try testArgs(i256, i33, -1); - try testArgs(i256, i33, 0); - try testArgs(i512, i33, -1 << 32); - try testArgs(i512, i33, -1); - try testArgs(i512, i33, 0); - try testArgs(i1024, i33, -1 << 32); - try testArgs(i1024, i33, -1); - try testArgs(i1024, i33, 0); - try testArgs(u8, u33, 0); - try testArgs(u8, u33, 1 << 0); - try testArgs(u8, u33, 1 << 32); - try testArgs(u16, u33, 0); - try testArgs(u16, u33, 1 << 0); - try testArgs(u16, u33, 1 << 32); - try testArgs(u32, u33, 0); - try testArgs(u32, u33, 1 << 0); - try testArgs(u32, u33, 1 << 32); - try testArgs(u64, u33, 0); - try testArgs(u64, u33, 1 << 0); - try testArgs(u64, u33, 1 << 32); - try testArgs(u128, u33, 0); - try testArgs(u128, u33, 1 << 0); - try testArgs(u128, u33, 1 << 32); - try testArgs(u256, u33, 0); - try testArgs(u256, u33, 1 << 0); - try testArgs(u256, u33, 1 << 32); - try testArgs(u512, u33, 0); - try testArgs(u512, u33, 1 << 0); - try testArgs(u512, u33, 1 << 32); - try testArgs(u1024, u33, 0); - try testArgs(u1024, u33, 1 << 0); - try testArgs(u1024, u33, 1 << 32); - - try testArgs(i8, i63, -1 << 62); - try testArgs(i8, i63, -1); - try testArgs(i8, i63, 0); - try testArgs(i16, i63, -1 << 62); - try testArgs(i16, i63, -1); - try testArgs(i16, i63, 0); - try testArgs(i32, i63, -1 << 62); - try testArgs(i32, i63, -1); - try testArgs(i32, i63, 0); - try testArgs(i64, i63, -1 << 62); - try testArgs(i64, i63, -1); - try testArgs(i64, i63, 0); - try testArgs(i128, i63, -1 << 62); - try testArgs(i128, i63, -1); - try testArgs(i128, i63, 0); - try testArgs(i256, i63, -1 << 62); - try testArgs(i256, i63, -1); - try testArgs(i256, i63, 0); - try testArgs(i512, i63, -1 << 62); - try testArgs(i512, i63, -1); - try testArgs(i512, i63, 0); - try testArgs(i1024, i63, -1 << 62); - try testArgs(i1024, i63, -1); - try testArgs(i1024, i63, 0); - try testArgs(u8, u63, 0); - try testArgs(u8, u63, 1 << 0); - try testArgs(u8, u63, 1 << 62); - try testArgs(u16, u63, 0); - try testArgs(u16, u63, 1 << 0); - try testArgs(u16, u63, 1 << 62); - try testArgs(u32, u63, 0); - try testArgs(u32, u63, 1 << 0); - try testArgs(u32, u63, 1 << 62); - try testArgs(u64, u63, 0); - try testArgs(u64, u63, 1 << 0); - try testArgs(u64, u63, 1 << 62); - try testArgs(u128, u63, 0); - try testArgs(u128, u63, 1 << 0); - try testArgs(u128, u63, 1 << 62); - try testArgs(u256, u63, 0); - try testArgs(u256, u63, 1 << 0); - try testArgs(u256, u63, 1 << 62); - try testArgs(u512, u63, 0); - try testArgs(u512, u63, 1 << 0); - try testArgs(u512, u63, 1 << 62); - try testArgs(u1024, u63, 0); - try testArgs(u1024, u63, 1 << 0); - try testArgs(u1024, u63, 1 << 62); - - try testArgs(i8, i64, -1 << 63); - try testArgs(i8, i64, -1); - try testArgs(i8, i64, 0); - try testArgs(i16, i64, -1 << 63); - try testArgs(i16, i64, -1); - try testArgs(i16, i64, 0); - try testArgs(i32, i64, -1 << 63); - try testArgs(i32, i64, -1); - try testArgs(i32, i64, 0); - try testArgs(i64, i64, -1 << 63); - try testArgs(i64, i64, -1); - try testArgs(i64, i64, 0); - try testArgs(i128, i64, -1 << 63); - try testArgs(i128, i64, -1); - try testArgs(i128, i64, 0); - try testArgs(i256, i64, -1 << 63); - try testArgs(i256, i64, -1); - try testArgs(i256, i64, 0); - try testArgs(i512, i64, -1 << 63); - try testArgs(i512, i64, -1); - try testArgs(i512, i64, 0); - try testArgs(i1024, i64, -1 << 63); - try testArgs(i1024, i64, -1); - try testArgs(i1024, i64, 0); - try testArgs(u8, u64, 0); - try testArgs(u8, u64, 1 << 0); - try testArgs(u8, u64, 1 << 63); - try testArgs(u16, u64, 0); - try testArgs(u16, u64, 1 << 0); - try testArgs(u16, u64, 1 << 63); - try testArgs(u32, u64, 0); - try testArgs(u32, u64, 1 << 0); - try testArgs(u32, u64, 1 << 63); - try testArgs(u64, u64, 0); - try testArgs(u64, u64, 1 << 0); - try testArgs(u64, u64, 1 << 63); - try testArgs(u128, u64, 0); - try testArgs(u128, u64, 1 << 0); - try testArgs(u128, u64, 1 << 63); - try testArgs(u256, u64, 0); - try testArgs(u256, u64, 1 << 0); - try testArgs(u256, u64, 1 << 63); - try testArgs(u512, u64, 0); - try testArgs(u512, u64, 1 << 0); - try testArgs(u512, u64, 1 << 63); - try testArgs(u1024, u64, 0); - try testArgs(u1024, u64, 1 << 0); - try testArgs(u1024, u64, 1 << 63); - - try testArgs(i8, i65, -1 << 64); - try testArgs(i8, i65, -1); - try testArgs(i8, i65, 0); - try testArgs(i16, i65, -1 << 64); - try testArgs(i16, i65, -1); - try testArgs(i16, i65, 0); - try testArgs(i32, i65, -1 << 64); - try testArgs(i32, i65, -1); - try testArgs(i32, i65, 0); - try testArgs(i64, i65, -1 << 64); - try testArgs(i64, i65, -1); - try testArgs(i64, i65, 0); - try testArgs(i128, i65, -1 << 64); - try testArgs(i128, i65, -1); - try testArgs(i128, i65, 0); - try testArgs(i256, i65, -1 << 64); - try testArgs(i256, i65, -1); - try testArgs(i256, i65, 0); - try testArgs(i512, i65, -1 << 64); - try testArgs(i512, i65, -1); - try testArgs(i512, i65, 0); - try testArgs(i1024, i65, -1 << 64); - try testArgs(i1024, i65, -1); - try testArgs(i1024, i65, 0); - try testArgs(u8, u65, 0); - try testArgs(u8, u65, 1 << 0); - try testArgs(u8, u65, 1 << 64); - try testArgs(u16, u65, 0); - try testArgs(u16, u65, 1 << 0); - try testArgs(u16, u65, 1 << 64); - try testArgs(u32, u65, 0); - try testArgs(u32, u65, 1 << 0); - try testArgs(u32, u65, 1 << 64); - try testArgs(u64, u65, 0); - try testArgs(u64, u65, 1 << 0); - try testArgs(u64, u65, 1 << 64); - try testArgs(u128, u65, 0); - try testArgs(u128, u65, 1 << 0); - try testArgs(u128, u65, 1 << 64); - try testArgs(u256, u65, 0); - try testArgs(u256, u65, 1 << 0); - try testArgs(u256, u65, 1 << 64); - try testArgs(u512, u65, 0); - try testArgs(u512, u65, 1 << 0); - try testArgs(u512, u65, 1 << 64); - try testArgs(u1024, u65, 0); - try testArgs(u1024, u65, 1 << 0); - try testArgs(u1024, u65, 1 << 64); - - try testArgs(i8, i95, -1 << 94); - try testArgs(i8, i95, -1); - try testArgs(i8, i95, 0); - try testArgs(i16, i95, -1 << 94); - try testArgs(i16, i95, -1); - try testArgs(i16, i95, 0); - try testArgs(i32, i95, -1 << 94); - try testArgs(i32, i95, -1); - try testArgs(i32, i95, 0); - try testArgs(i64, i95, -1 << 94); - try testArgs(i64, i95, -1); - try testArgs(i64, i95, 0); - try testArgs(i128, i95, -1 << 94); - try testArgs(i128, i95, -1); - try testArgs(i128, i95, 0); - try testArgs(i256, i95, -1 << 94); - try testArgs(i256, i95, -1); - try testArgs(i256, i95, 0); - try testArgs(i512, i95, -1 << 94); - try testArgs(i512, i95, -1); - try testArgs(i512, i95, 0); - try testArgs(i1024, i95, -1 << 94); - try testArgs(i1024, i95, -1); - try testArgs(i1024, i95, 0); - try testArgs(u8, u95, 0); - try testArgs(u8, u95, 1 << 0); - try testArgs(u8, u95, 1 << 94); - try testArgs(u16, u95, 0); - try testArgs(u16, u95, 1 << 0); - try testArgs(u16, u95, 1 << 94); - try testArgs(u32, u95, 0); - try testArgs(u32, u95, 1 << 0); - try testArgs(u32, u95, 1 << 94); - try testArgs(u64, u95, 0); - try testArgs(u64, u95, 1 << 0); - try testArgs(u64, u95, 1 << 94); - try testArgs(u128, u95, 0); - try testArgs(u128, u95, 1 << 0); - try testArgs(u128, u95, 1 << 94); - try testArgs(u256, u95, 0); - try testArgs(u256, u95, 1 << 0); - try testArgs(u256, u95, 1 << 94); - try testArgs(u512, u95, 0); - try testArgs(u512, u95, 1 << 0); - try testArgs(u512, u95, 1 << 94); - try testArgs(u1024, u95, 0); - try testArgs(u1024, u95, 1 << 0); - try testArgs(u1024, u95, 1 << 94); - - try testArgs(i8, i97, -1 << 96); - try testArgs(i8, i97, -1); - try testArgs(i8, i97, 0); - try testArgs(i16, i97, -1 << 96); - try testArgs(i16, i97, -1); - try testArgs(i16, i97, 0); - try testArgs(i32, i97, -1 << 96); - try testArgs(i32, i97, -1); - try testArgs(i32, i97, 0); - try testArgs(i64, i97, -1 << 96); - try testArgs(i64, i97, -1); - try testArgs(i64, i97, 0); - try testArgs(i128, i97, -1 << 96); - try testArgs(i128, i97, -1); - try testArgs(i128, i97, 0); - try testArgs(i256, i97, -1 << 96); - try testArgs(i256, i97, -1); - try testArgs(i256, i97, 0); - try testArgs(i512, i97, -1 << 96); - try testArgs(i512, i97, -1); - try testArgs(i512, i97, 0); - try testArgs(i1024, i97, -1 << 96); - try testArgs(i1024, i97, -1); - try testArgs(i1024, i97, 0); - try testArgs(u8, u97, 0); - try testArgs(u8, u97, 1 << 0); - try testArgs(u8, u97, 1 << 96); - try testArgs(u16, u97, 0); - try testArgs(u16, u97, 1 << 0); - try testArgs(u16, u97, 1 << 96); - try testArgs(u32, u97, 0); - try testArgs(u32, u97, 1 << 0); - try testArgs(u32, u97, 1 << 96); - try testArgs(u64, u97, 0); - try testArgs(u64, u97, 1 << 0); - try testArgs(u64, u97, 1 << 96); - try testArgs(u128, u97, 0); - try testArgs(u128, u97, 1 << 0); - try testArgs(u128, u97, 1 << 96); - try testArgs(u256, u97, 0); - try testArgs(u256, u97, 1 << 0); - try testArgs(u256, u97, 1 << 96); - try testArgs(u512, u97, 0); - try testArgs(u512, u97, 1 << 0); - try testArgs(u512, u97, 1 << 96); - try testArgs(u1024, u97, 0); - try testArgs(u1024, u97, 1 << 0); - try testArgs(u1024, u97, 1 << 96); - - try testArgs(i8, i127, -1 << 126); - try testArgs(i8, i127, -1); - try testArgs(i8, i127, 0); - try testArgs(i16, i127, -1 << 126); - try testArgs(i16, i127, -1); - try testArgs(i16, i127, 0); - try testArgs(i32, i127, -1 << 126); - try testArgs(i32, i127, -1); - try testArgs(i32, i127, 0); - try testArgs(i64, i127, -1 << 126); - try testArgs(i64, i127, -1); - try testArgs(i64, i127, 0); - try testArgs(i128, i127, -1 << 126); - try testArgs(i128, i127, -1); - try testArgs(i128, i127, 0); - try testArgs(i256, i127, -1 << 126); - try testArgs(i256, i127, -1); - try testArgs(i256, i127, 0); - try testArgs(i512, i127, -1 << 126); - try testArgs(i512, i127, -1); - try testArgs(i512, i127, 0); - try testArgs(i1024, i127, -1 << 126); - try testArgs(i1024, i127, -1); - try testArgs(i1024, i127, 0); - try testArgs(u8, u127, 0); - try testArgs(u8, u127, 1 << 0); - try testArgs(u8, u127, 1 << 126); - try testArgs(u16, u127, 0); - try testArgs(u16, u127, 1 << 0); - try testArgs(u16, u127, 1 << 126); - try testArgs(u32, u127, 0); - try testArgs(u32, u127, 1 << 0); - try testArgs(u32, u127, 1 << 126); - try testArgs(u64, u127, 0); - try testArgs(u64, u127, 1 << 0); - try testArgs(u64, u127, 1 << 126); - try testArgs(u128, u127, 0); - try testArgs(u128, u127, 1 << 0); - try testArgs(u128, u127, 1 << 126); - try testArgs(u256, u127, 0); - try testArgs(u256, u127, 1 << 0); - try testArgs(u256, u127, 1 << 126); - try testArgs(u512, u127, 0); - try testArgs(u512, u127, 1 << 0); - try testArgs(u512, u127, 1 << 126); - try testArgs(u1024, u127, 0); - try testArgs(u1024, u127, 1 << 0); - try testArgs(u1024, u127, 1 << 126); - - try testArgs(i8, i128, -1 << 127); - try testArgs(i8, i128, -1); - try testArgs(i8, i128, 0); - try testArgs(i16, i128, -1 << 127); - try testArgs(i16, i128, -1); - try testArgs(i16, i128, 0); - try testArgs(i32, i128, -1 << 127); - try testArgs(i32, i128, -1); - try testArgs(i32, i128, 0); - try testArgs(i64, i128, -1 << 127); - try testArgs(i64, i128, -1); - try testArgs(i64, i128, 0); - try testArgs(i128, i128, -1 << 127); - try testArgs(i128, i128, -1); - try testArgs(i128, i128, 0); - try testArgs(i256, i128, -1 << 127); - try testArgs(i256, i128, -1); - try testArgs(i256, i128, 0); - try testArgs(i512, i128, -1 << 127); - try testArgs(i512, i128, -1); - try testArgs(i512, i128, 0); - try testArgs(i1024, i128, -1 << 127); - try testArgs(i1024, i128, -1); - try testArgs(i1024, i128, 0); - try testArgs(u8, u128, 0); - try testArgs(u8, u128, 1 << 0); - try testArgs(u8, u128, 1 << 127); - try testArgs(u16, u128, 0); - try testArgs(u16, u128, 1 << 0); - try testArgs(u16, u128, 1 << 127); - try testArgs(u32, u128, 0); - try testArgs(u32, u128, 1 << 0); - try testArgs(u32, u128, 1 << 127); - try testArgs(u64, u128, 0); - try testArgs(u64, u128, 1 << 0); - try testArgs(u64, u128, 1 << 127); - try testArgs(u128, u128, 0); - try testArgs(u128, u128, 1 << 0); - try testArgs(u128, u128, 1 << 127); - try testArgs(u256, u128, 0); - try testArgs(u256, u128, 1 << 0); - try testArgs(u256, u128, 1 << 127); - try testArgs(u512, u128, 0); - try testArgs(u512, u128, 1 << 0); - try testArgs(u512, u128, 1 << 127); - try testArgs(u1024, u128, 0); - try testArgs(u1024, u128, 1 << 0); - try testArgs(u1024, u128, 1 << 127); - - try testArgs(i8, i129, -1 << 128); - try testArgs(i8, i129, -1); - try testArgs(i8, i129, 0); - try testArgs(i16, i129, -1 << 128); - try testArgs(i16, i129, -1); - try testArgs(i16, i129, 0); - try testArgs(i32, i129, -1 << 128); - try testArgs(i32, i129, -1); - try testArgs(i32, i129, 0); - try testArgs(i64, i129, -1 << 128); - try testArgs(i64, i129, -1); - try testArgs(i64, i129, 0); - try testArgs(i128, i129, -1 << 128); - try testArgs(i128, i129, -1); - try testArgs(i128, i129, 0); - try testArgs(i256, i129, -1 << 128); - try testArgs(i256, i129, -1); - try testArgs(i256, i129, 0); - try testArgs(i512, i129, -1 << 128); - try testArgs(i512, i129, -1); - try testArgs(i512, i129, 0); - try testArgs(i1024, i129, -1 << 128); - try testArgs(i1024, i129, -1); - try testArgs(i1024, i129, 0); - try testArgs(u8, u129, 0); - try testArgs(u8, u129, 1 << 0); - try testArgs(u8, u129, 1 << 128); - try testArgs(u16, u129, 0); - try testArgs(u16, u129, 1 << 0); - try testArgs(u16, u129, 1 << 128); - try testArgs(u32, u129, 0); - try testArgs(u32, u129, 1 << 0); - try testArgs(u32, u129, 1 << 128); - try testArgs(u64, u129, 0); - try testArgs(u64, u129, 1 << 0); - try testArgs(u64, u129, 1 << 128); - try testArgs(u128, u129, 0); - try testArgs(u128, u129, 1 << 0); - try testArgs(u128, u129, 1 << 128); - try testArgs(u256, u129, 0); - try testArgs(u256, u129, 1 << 0); - try testArgs(u256, u129, 1 << 128); - try testArgs(u512, u129, 0); - try testArgs(u512, u129, 1 << 0); - try testArgs(u512, u129, 1 << 128); - try testArgs(u1024, u129, 0); - try testArgs(u1024, u129, 1 << 0); - try testArgs(u1024, u129, 1 << 128); - - try testArgs(i8, i255, -1 << 254); - try testArgs(i8, i255, -1); - try testArgs(i8, i255, 0); - try testArgs(i16, i255, -1 << 254); - try testArgs(i16, i255, -1); - try testArgs(i16, i255, 0); - try testArgs(i32, i255, -1 << 254); - try testArgs(i32, i255, -1); - try testArgs(i32, i255, 0); - try testArgs(i64, i255, -1 << 254); - try testArgs(i64, i255, -1); - try testArgs(i64, i255, 0); - try testArgs(i128, i255, -1 << 254); - try testArgs(i128, i255, -1); - try testArgs(i128, i255, 0); - try testArgs(i256, i255, -1 << 254); - try testArgs(i256, i255, -1); - try testArgs(i256, i255, 0); - try testArgs(i512, i255, -1 << 254); - try testArgs(i512, i255, -1); - try testArgs(i512, i255, 0); - try testArgs(i1024, i255, -1 << 254); - try testArgs(i1024, i255, -1); - try testArgs(i1024, i255, 0); - try testArgs(u8, u255, 0); - try testArgs(u8, u255, 1 << 0); - try testArgs(u8, u255, 1 << 254); - try testArgs(u16, u255, 0); - try testArgs(u16, u255, 1 << 0); - try testArgs(u16, u255, 1 << 254); - try testArgs(u32, u255, 0); - try testArgs(u32, u255, 1 << 0); - try testArgs(u32, u255, 1 << 254); - try testArgs(u64, u255, 0); - try testArgs(u64, u255, 1 << 0); - try testArgs(u64, u255, 1 << 254); - try testArgs(u128, u255, 0); - try testArgs(u128, u255, 1 << 0); - try testArgs(u128, u255, 1 << 254); - try testArgs(u256, u255, 0); - try testArgs(u256, u255, 1 << 0); - try testArgs(u256, u255, 1 << 254); - try testArgs(u512, u255, 0); - try testArgs(u512, u255, 1 << 0); - try testArgs(u512, u255, 1 << 254); - try testArgs(u1024, u255, 0); - try testArgs(u1024, u255, 1 << 0); - try testArgs(u1024, u255, 1 << 254); - - try testArgs(i8, i256, -1 << 255); - try testArgs(i8, i256, -1); - try testArgs(i8, i256, 0); - try testArgs(i16, i256, -1 << 255); - try testArgs(i16, i256, -1); - try testArgs(i16, i256, 0); - try testArgs(i32, i256, -1 << 255); - try testArgs(i32, i256, -1); - try testArgs(i32, i256, 0); - try testArgs(i64, i256, -1 << 255); - try testArgs(i64, i256, -1); - try testArgs(i64, i256, 0); - try testArgs(i128, i256, -1 << 255); - try testArgs(i128, i256, -1); - try testArgs(i128, i256, 0); - try testArgs(i256, i256, -1 << 255); - try testArgs(i256, i256, -1); - try testArgs(i256, i256, 0); - try testArgs(i512, i256, -1 << 255); - try testArgs(i512, i256, -1); - try testArgs(i512, i256, 0); - try testArgs(i1024, i256, -1 << 255); - try testArgs(i1024, i256, -1); - try testArgs(i1024, i256, 0); - try testArgs(u8, u256, 0); - try testArgs(u8, u256, 1 << 0); - try testArgs(u8, u256, 1 << 255); - try testArgs(u16, u256, 0); - try testArgs(u16, u256, 1 << 0); - try testArgs(u16, u256, 1 << 255); - try testArgs(u32, u256, 0); - try testArgs(u32, u256, 1 << 0); - try testArgs(u32, u256, 1 << 255); - try testArgs(u64, u256, 0); - try testArgs(u64, u256, 1 << 0); - try testArgs(u64, u256, 1 << 255); - try testArgs(u128, u256, 0); - try testArgs(u128, u256, 1 << 0); - try testArgs(u128, u256, 1 << 255); - try testArgs(u256, u256, 0); - try testArgs(u256, u256, 1 << 0); - try testArgs(u256, u256, 1 << 255); - try testArgs(u512, u256, 0); - try testArgs(u512, u256, 1 << 0); - try testArgs(u512, u256, 1 << 255); - try testArgs(u1024, u256, 0); - try testArgs(u1024, u256, 1 << 0); - try testArgs(u1024, u256, 1 << 255); - - try testArgs(i8, i257, -1 << 256); - try testArgs(i8, i257, -1); - try testArgs(i8, i257, 0); - try testArgs(i16, i257, -1 << 256); - try testArgs(i16, i257, -1); - try testArgs(i16, i257, 0); - try testArgs(i32, i257, -1 << 256); - try testArgs(i32, i257, -1); - try testArgs(i32, i257, 0); - try testArgs(i64, i257, -1 << 256); - try testArgs(i64, i257, -1); - try testArgs(i64, i257, 0); - try testArgs(i128, i257, -1 << 256); - try testArgs(i128, i257, -1); - try testArgs(i128, i257, 0); - try testArgs(i256, i257, -1 << 256); - try testArgs(i256, i257, -1); - try testArgs(i256, i257, 0); - try testArgs(i512, i257, -1 << 256); - try testArgs(i512, i257, -1); - try testArgs(i512, i257, 0); - try testArgs(i1024, i257, -1 << 256); - try testArgs(i1024, i257, -1); - try testArgs(i1024, i257, 0); - try testArgs(u8, u257, 0); - try testArgs(u8, u257, 1 << 0); - try testArgs(u8, u257, 1 << 256); - try testArgs(u16, u257, 0); - try testArgs(u16, u257, 1 << 0); - try testArgs(u16, u257, 1 << 256); - try testArgs(u32, u257, 0); - try testArgs(u32, u257, 1 << 0); - try testArgs(u32, u257, 1 << 256); - try testArgs(u64, u257, 0); - try testArgs(u64, u257, 1 << 0); - try testArgs(u64, u257, 1 << 256); - try testArgs(u128, u257, 0); - try testArgs(u128, u257, 1 << 0); - try testArgs(u128, u257, 1 << 256); - try testArgs(u256, u257, 0); - try testArgs(u256, u257, 1 << 0); - try testArgs(u256, u257, 1 << 256); - try testArgs(u512, u257, 0); - try testArgs(u512, u257, 1 << 0); - try testArgs(u512, u257, 1 << 256); - try testArgs(u1024, u257, 0); - try testArgs(u1024, u257, 1 << 0); - try testArgs(u1024, u257, 1 << 256); - - try testArgs(i8, i511, -1 << 510); - try testArgs(i8, i511, -1); - try testArgs(i8, i511, 0); - try testArgs(i16, i511, -1 << 510); - try testArgs(i16, i511, -1); - try testArgs(i16, i511, 0); - try testArgs(i32, i511, -1 << 510); - try testArgs(i32, i511, -1); - try testArgs(i32, i511, 0); - try testArgs(i64, i511, -1 << 510); - try testArgs(i64, i511, -1); - try testArgs(i64, i511, 0); - try testArgs(i128, i511, -1 << 510); - try testArgs(i128, i511, -1); - try testArgs(i128, i511, 0); - try testArgs(i256, i511, -1 << 510); - try testArgs(i256, i511, -1); - try testArgs(i256, i511, 0); - try testArgs(i512, i511, -1 << 510); - try testArgs(i512, i511, -1); - try testArgs(i512, i511, 0); - try testArgs(i1024, i511, -1 << 510); - try testArgs(i1024, i511, -1); - try testArgs(i1024, i511, 0); - try testArgs(u8, u511, 0); - try testArgs(u8, u511, 1 << 0); - try testArgs(u8, u511, 1 << 510); - try testArgs(u16, u511, 0); - try testArgs(u16, u511, 1 << 0); - try testArgs(u16, u511, 1 << 510); - try testArgs(u32, u511, 0); - try testArgs(u32, u511, 1 << 0); - try testArgs(u32, u511, 1 << 510); - try testArgs(u64, u511, 0); - try testArgs(u64, u511, 1 << 0); - try testArgs(u64, u511, 1 << 510); - try testArgs(u128, u511, 0); - try testArgs(u128, u511, 1 << 0); - try testArgs(u128, u511, 1 << 510); - try testArgs(u256, u511, 0); - try testArgs(u256, u511, 1 << 0); - try testArgs(u256, u511, 1 << 510); - try testArgs(u512, u511, 0); - try testArgs(u512, u511, 1 << 0); - try testArgs(u512, u511, 1 << 510); - try testArgs(u1024, u511, 0); - try testArgs(u1024, u511, 1 << 0); - try testArgs(u1024, u511, 1 << 510); - - try testArgs(i8, i512, -1 << 511); - try testArgs(i8, i512, -1); - try testArgs(i8, i512, 0); - try testArgs(i16, i512, -1 << 511); - try testArgs(i16, i512, -1); - try testArgs(i16, i512, 0); - try testArgs(i32, i512, -1 << 511); - try testArgs(i32, i512, -1); - try testArgs(i32, i512, 0); - try testArgs(i64, i512, -1 << 511); - try testArgs(i64, i512, -1); - try testArgs(i64, i512, 0); - try testArgs(i128, i512, -1 << 511); - try testArgs(i128, i512, -1); - try testArgs(i128, i512, 0); - try testArgs(i256, i512, -1 << 511); - try testArgs(i256, i512, -1); - try testArgs(i256, i512, 0); - try testArgs(i512, i512, -1 << 511); - try testArgs(i512, i512, -1); - try testArgs(i512, i512, 0); - try testArgs(i1024, i512, -1 << 511); - try testArgs(i1024, i512, -1); - try testArgs(i1024, i512, 0); - try testArgs(u8, u512, 0); - try testArgs(u8, u512, 1 << 0); - try testArgs(u8, u512, 1 << 511); - try testArgs(u16, u512, 0); - try testArgs(u16, u512, 1 << 0); - try testArgs(u16, u512, 1 << 511); - try testArgs(u32, u512, 0); - try testArgs(u32, u512, 1 << 0); - try testArgs(u32, u512, 1 << 511); - try testArgs(u64, u512, 0); - try testArgs(u64, u512, 1 << 0); - try testArgs(u64, u512, 1 << 511); - try testArgs(u128, u512, 0); - try testArgs(u128, u512, 1 << 0); - try testArgs(u128, u512, 1 << 511); - try testArgs(u256, u512, 0); - try testArgs(u256, u512, 1 << 0); - try testArgs(u256, u512, 1 << 511); - try testArgs(u512, u512, 0); - try testArgs(u512, u512, 1 << 0); - try testArgs(u512, u512, 1 << 511); - try testArgs(u1024, u512, 0); - try testArgs(u1024, u512, 1 << 0); - try testArgs(u1024, u512, 1 << 511); - - try testArgs(i8, i513, -1 << 512); - try testArgs(i8, i513, -1); - try testArgs(i8, i513, 0); - try testArgs(i16, i513, -1 << 512); - try testArgs(i16, i513, -1); - try testArgs(i16, i513, 0); - try testArgs(i32, i513, -1 << 512); - try testArgs(i32, i513, -1); - try testArgs(i32, i513, 0); - try testArgs(i64, i513, -1 << 512); - try testArgs(i64, i513, -1); - try testArgs(i64, i513, 0); - try testArgs(i128, i513, -1 << 512); - try testArgs(i128, i513, -1); - try testArgs(i128, i513, 0); - try testArgs(i256, i513, -1 << 512); - try testArgs(i256, i513, -1); - try testArgs(i256, i513, 0); - try testArgs(i512, i513, -1 << 512); - try testArgs(i512, i513, -1); - try testArgs(i512, i513, 0); - try testArgs(i1024, i513, -1 << 512); - try testArgs(i1024, i513, -1); - try testArgs(i1024, i513, 0); - try testArgs(u8, u513, 0); - try testArgs(u8, u513, 1 << 0); - try testArgs(u8, u513, 1 << 512); - try testArgs(u16, u513, 0); - try testArgs(u16, u513, 1 << 0); - try testArgs(u16, u513, 1 << 512); - try testArgs(u32, u513, 0); - try testArgs(u32, u513, 1 << 0); - try testArgs(u32, u513, 1 << 512); - try testArgs(u64, u513, 0); - try testArgs(u64, u513, 1 << 0); - try testArgs(u64, u513, 1 << 512); - try testArgs(u128, u513, 0); - try testArgs(u128, u513, 1 << 0); - try testArgs(u128, u513, 1 << 512); - try testArgs(u256, u513, 0); - try testArgs(u256, u513, 1 << 0); - try testArgs(u256, u513, 1 << 512); - try testArgs(u512, u513, 0); - try testArgs(u512, u513, 1 << 0); - try testArgs(u512, u513, 1 << 512); - try testArgs(u1024, u513, 0); - try testArgs(u1024, u513, 1 << 0); - try testArgs(u1024, u513, 1 << 512); - - try testArgs(i8, i1023, -1 << 1022); - try testArgs(i8, i1023, -1); - try testArgs(i8, i1023, 0); - try testArgs(i16, i1023, -1 << 1022); - try testArgs(i16, i1023, -1); - try testArgs(i16, i1023, 0); - try testArgs(i32, i1023, -1 << 1022); - try testArgs(i32, i1023, -1); - try testArgs(i32, i1023, 0); - try testArgs(i64, i1023, -1 << 1022); - try testArgs(i64, i1023, -1); - try testArgs(i64, i1023, 0); - try testArgs(i128, i1023, -1 << 1022); - try testArgs(i128, i1023, -1); - try testArgs(i128, i1023, 0); - try testArgs(i256, i1023, -1 << 1022); - try testArgs(i256, i1023, -1); - try testArgs(i256, i1023, 0); - try testArgs(i512, i1023, -1 << 1022); - try testArgs(i512, i1023, -1); - try testArgs(i512, i1023, 0); - try testArgs(i1024, i1023, -1 << 1022); - try testArgs(i1024, i1023, -1); - try testArgs(i1024, i1023, 0); - try testArgs(u8, u1023, 0); - try testArgs(u8, u1023, 1 << 0); - try testArgs(u8, u1023, 1 << 1022); - try testArgs(u16, u1023, 0); - try testArgs(u16, u1023, 1 << 0); - try testArgs(u16, u1023, 1 << 1022); - try testArgs(u32, u1023, 0); - try testArgs(u32, u1023, 1 << 0); - try testArgs(u32, u1023, 1 << 1022); - try testArgs(u64, u1023, 0); - try testArgs(u64, u1023, 1 << 0); - try testArgs(u64, u1023, 1 << 1022); - try testArgs(u128, u1023, 0); - try testArgs(u128, u1023, 1 << 0); - try testArgs(u128, u1023, 1 << 1022); - try testArgs(u256, u1023, 0); - try testArgs(u256, u1023, 1 << 0); - try testArgs(u256, u1023, 1 << 1022); - try testArgs(u512, u1023, 0); - try testArgs(u512, u1023, 1 << 0); - try testArgs(u512, u1023, 1 << 1022); - try testArgs(u1024, u1023, 0); - try testArgs(u1024, u1023, 1 << 0); - try testArgs(u1024, u1023, 1 << 1022); - - try testArgs(i8, i1024, -1 << 1023); - try testArgs(i8, i1024, -1); - try testArgs(i8, i1024, 0); - try testArgs(i16, i1024, -1 << 1023); - try testArgs(i16, i1024, -1); - try testArgs(i16, i1024, 0); - try testArgs(i32, i1024, -1 << 1023); - try testArgs(i32, i1024, -1); - try testArgs(i32, i1024, 0); - try testArgs(i64, i1024, -1 << 1023); - try testArgs(i64, i1024, -1); - try testArgs(i64, i1024, 0); - try testArgs(i128, i1024, -1 << 1023); - try testArgs(i128, i1024, -1); - try testArgs(i128, i1024, 0); - try testArgs(i256, i1024, -1 << 1023); - try testArgs(i256, i1024, -1); - try testArgs(i256, i1024, 0); - try testArgs(i512, i1024, -1 << 1023); - try testArgs(i512, i1024, -1); - try testArgs(i512, i1024, 0); - try testArgs(i1024, i1024, -1 << 1023); - try testArgs(i1024, i1024, -1); - try testArgs(i1024, i1024, 0); - try testArgs(u8, u1024, 0); - try testArgs(u8, u1024, 1 << 0); - try testArgs(u8, u1024, 1 << 1023); - try testArgs(u16, u1024, 0); - try testArgs(u16, u1024, 1 << 0); - try testArgs(u16, u1024, 1 << 1023); - try testArgs(u32, u1024, 0); - try testArgs(u32, u1024, 1 << 0); - try testArgs(u32, u1024, 1 << 1023); - try testArgs(u64, u1024, 0); - try testArgs(u64, u1024, 1 << 0); - try testArgs(u64, u1024, 1 << 1023); - try testArgs(u128, u1024, 0); - try testArgs(u128, u1024, 1 << 0); - try testArgs(u128, u1024, 1 << 1023); - try testArgs(u256, u1024, 0); - try testArgs(u256, u1024, 1 << 0); - try testArgs(u256, u1024, 1 << 1023); - try testArgs(u512, u1024, 0); - try testArgs(u512, u1024, 1 << 0); - try testArgs(u512, u1024, 1 << 1023); - try testArgs(u1024, u1024, 0); - try testArgs(u1024, u1024, 1 << 0); - try testArgs(u1024, u1024, 1 << 1023); - - try testArgs(i8, i1025, -1 << 1024); - try testArgs(i8, i1025, -1); - try testArgs(i8, i1025, 0); - try testArgs(i16, i1025, -1 << 1024); - try testArgs(i16, i1025, -1); - try testArgs(i16, i1025, 0); - try testArgs(i32, i1025, -1 << 1024); - try testArgs(i32, i1025, -1); - try testArgs(i32, i1025, 0); - try testArgs(i64, i1025, -1 << 1024); - try testArgs(i64, i1025, -1); - try testArgs(i64, i1025, 0); - try testArgs(i128, i1025, -1 << 1024); - try testArgs(i128, i1025, -1); - try testArgs(i128, i1025, 0); - try testArgs(i256, i1025, -1 << 1024); - try testArgs(i256, i1025, -1); - try testArgs(i256, i1025, 0); - try testArgs(i512, i1025, -1 << 1024); - try testArgs(i512, i1025, -1); - try testArgs(i512, i1025, 0); - try testArgs(i1024, i1025, -1 << 1024); - try testArgs(i1024, i1025, -1); - try testArgs(i1024, i1025, 0); - try testArgs(u8, u1025, 0); - try testArgs(u8, u1025, 1 << 0); - try testArgs(u8, u1025, 1 << 1024); - try testArgs(u16, u1025, 0); - try testArgs(u16, u1025, 1 << 0); - try testArgs(u16, u1025, 1 << 1024); - try testArgs(u32, u1025, 0); - try testArgs(u32, u1025, 1 << 0); - try testArgs(u32, u1025, 1 << 1024); - try testArgs(u64, u1025, 0); - try testArgs(u64, u1025, 1 << 0); - try testArgs(u64, u1025, 1 << 1024); - try testArgs(u128, u1025, 0); - try testArgs(u128, u1025, 1 << 0); - try testArgs(u128, u1025, 1 << 1024); - try testArgs(u256, u1025, 0); - try testArgs(u256, u1025, 1 << 0); - try testArgs(u256, u1025, 1 << 1024); - try testArgs(u512, u1025, 0); - try testArgs(u512, u1025, 1 << 0); - try testArgs(u512, u1025, 1 << 1024); - try testArgs(u1024, u1025, 0); - try testArgs(u1024, u1025, 1 << 0); - try testArgs(u1024, u1025, 1 << 1024); - } - fn testInts() !void { - try testSameSignednessInts(); - - try testArgs(u8, i1, -1); - try testArgs(u8, i1, 0); - try testArgs(u16, i1, -1); - try testArgs(u16, i1, 0); - try testArgs(u32, i1, -1); - try testArgs(u32, i1, 0); - try testArgs(u64, i1, -1); - try testArgs(u64, i1, 0); - try testArgs(u128, i1, -1); - try testArgs(u128, i1, 0); - try testArgs(u256, i1, -1); - try testArgs(u256, i1, 0); - try testArgs(u512, i1, -1); - try testArgs(u512, i1, 0); - try testArgs(u1024, i1, -1); - try testArgs(u1024, i1, 0); - try testArgs(i8, u1, 0); - try testArgs(i8, u1, 1 << 0); - try testArgs(i16, u1, 0); - try testArgs(i16, u1, 1 << 0); - try testArgs(i32, u1, 0); - try testArgs(i32, u1, 1 << 0); - try testArgs(i64, u1, 0); - try testArgs(i64, u1, 1 << 0); - try testArgs(i128, u1, 0); - try testArgs(i128, u1, 1 << 0); - try testArgs(i256, u1, 0); - try testArgs(i256, u1, 1 << 0); - try testArgs(i512, u1, 0); - try testArgs(i512, u1, 1 << 0); - try testArgs(i1024, u1, 0); - try testArgs(i1024, u1, 1 << 0); - - try testArgs(u8, i2, -1 << 1); - try testArgs(u8, i2, -1); - try testArgs(u8, i2, 0); - try testArgs(u16, i2, -1 << 1); - try testArgs(u16, i2, -1); - try testArgs(u16, i2, 0); - try testArgs(u32, i2, -1 << 1); - try testArgs(u32, i2, -1); - try testArgs(u32, i2, 0); - try testArgs(u64, i2, -1 << 1); - try testArgs(u64, i2, -1); - try testArgs(u64, i2, 0); - try testArgs(u128, i2, -1 << 1); - try testArgs(u128, i2, -1); - try testArgs(u128, i2, 0); - try testArgs(u256, i2, -1 << 1); - try testArgs(u256, i2, -1); - try testArgs(u256, i2, 0); - try testArgs(u512, i2, -1 << 1); - try testArgs(u512, i2, -1); - try testArgs(u512, i2, 0); - try testArgs(u1024, i2, -1 << 1); - try testArgs(u1024, i2, -1); - try testArgs(u1024, i2, 0); - try testArgs(i8, u2, 0); - try testArgs(i8, u2, 1 << 0); - try testArgs(i8, u2, 1 << 1); - try testArgs(i16, u2, 0); - try testArgs(i16, u2, 1 << 0); - try testArgs(i16, u2, 1 << 1); - try testArgs(i32, u2, 0); - try testArgs(i32, u2, 1 << 0); - try testArgs(i32, u2, 1 << 1); - try testArgs(i64, u2, 0); - try testArgs(i64, u2, 1 << 0); - try testArgs(i64, u2, 1 << 1); - try testArgs(i128, u2, 0); - try testArgs(i128, u2, 1 << 0); - try testArgs(i128, u2, 1 << 1); - try testArgs(i256, u2, 0); - try testArgs(i256, u2, 1 << 0); - try testArgs(i256, u2, 1 << 1); - try testArgs(i512, u2, 0); - try testArgs(i512, u2, 1 << 0); - try testArgs(i512, u2, 1 << 1); - try testArgs(i1024, u2, 0); - try testArgs(i1024, u2, 1 << 0); - try testArgs(i1024, u2, 1 << 1); - - try testArgs(u8, i3, -1 << 2); - try testArgs(u8, i3, -1); - try testArgs(u8, i3, 0); - try testArgs(u16, i3, -1 << 2); - try testArgs(u16, i3, -1); - try testArgs(u16, i3, 0); - try testArgs(u32, i3, -1 << 2); - try testArgs(u32, i3, -1); - try testArgs(u32, i3, 0); - try testArgs(u64, i3, -1 << 2); - try testArgs(u64, i3, -1); - try testArgs(u64, i3, 0); - try testArgs(u128, i3, -1 << 2); - try testArgs(u128, i3, -1); - try testArgs(u128, i3, 0); - try testArgs(u256, i3, -1 << 2); - try testArgs(u256, i3, -1); - try testArgs(u256, i3, 0); - try testArgs(u512, i3, -1 << 2); - try testArgs(u512, i3, -1); - try testArgs(u512, i3, 0); - try testArgs(u1024, i3, -1 << 2); - try testArgs(u1024, i3, -1); - try testArgs(u1024, i3, 0); - try testArgs(i8, u3, 0); - try testArgs(i8, u3, 1 << 0); - try testArgs(i8, u3, 1 << 2); - try testArgs(i16, u3, 0); - try testArgs(i16, u3, 1 << 0); - try testArgs(i16, u3, 1 << 2); - try testArgs(i32, u3, 0); - try testArgs(i32, u3, 1 << 0); - try testArgs(i32, u3, 1 << 2); - try testArgs(i64, u3, 0); - try testArgs(i64, u3, 1 << 0); - try testArgs(i64, u3, 1 << 2); - try testArgs(i128, u3, 0); - try testArgs(i128, u3, 1 << 0); - try testArgs(i128, u3, 1 << 2); - try testArgs(i256, u3, 0); - try testArgs(i256, u3, 1 << 0); - try testArgs(i256, u3, 1 << 2); - try testArgs(i512, u3, 0); - try testArgs(i512, u3, 1 << 0); - try testArgs(i512, u3, 1 << 2); - try testArgs(i1024, u3, 0); - try testArgs(i1024, u3, 1 << 0); - try testArgs(i1024, u3, 1 << 2); - - try testArgs(u8, i4, -1 << 3); - try testArgs(u8, i4, -1); - try testArgs(u8, i4, 0); - try testArgs(u16, i4, -1 << 3); - try testArgs(u16, i4, -1); - try testArgs(u16, i4, 0); - try testArgs(u32, i4, -1 << 3); - try testArgs(u32, i4, -1); - try testArgs(u32, i4, 0); - try testArgs(u64, i4, -1 << 3); - try testArgs(u64, i4, -1); - try testArgs(u64, i4, 0); - try testArgs(u128, i4, -1 << 3); - try testArgs(u128, i4, -1); - try testArgs(u128, i4, 0); - try testArgs(u256, i4, -1 << 3); - try testArgs(u256, i4, -1); - try testArgs(u256, i4, 0); - try testArgs(u512, i4, -1 << 3); - try testArgs(u512, i4, -1); - try testArgs(u512, i4, 0); - try testArgs(u1024, i4, -1 << 3); - try testArgs(u1024, i4, -1); - try testArgs(u1024, i4, 0); - try testArgs(i8, u4, 0); - try testArgs(i8, u4, 1 << 0); - try testArgs(i8, u4, 1 << 3); - try testArgs(i16, u4, 0); - try testArgs(i16, u4, 1 << 0); - try testArgs(i16, u4, 1 << 3); - try testArgs(i32, u4, 0); - try testArgs(i32, u4, 1 << 0); - try testArgs(i32, u4, 1 << 3); - try testArgs(i64, u4, 0); - try testArgs(i64, u4, 1 << 0); - try testArgs(i64, u4, 1 << 3); - try testArgs(i128, u4, 0); - try testArgs(i128, u4, 1 << 0); - try testArgs(i128, u4, 1 << 3); - try testArgs(i256, u4, 0); - try testArgs(i256, u4, 1 << 0); - try testArgs(i256, u4, 1 << 3); - try testArgs(i512, u4, 0); - try testArgs(i512, u4, 1 << 0); - try testArgs(i512, u4, 1 << 3); - try testArgs(i1024, u4, 0); - try testArgs(i1024, u4, 1 << 0); - try testArgs(i1024, u4, 1 << 3); - - try testArgs(u8, i5, -1 << 4); - try testArgs(u8, i5, -1); - try testArgs(u8, i5, 0); - try testArgs(u16, i5, -1 << 4); - try testArgs(u16, i5, -1); - try testArgs(u16, i5, 0); - try testArgs(u32, i5, -1 << 4); - try testArgs(u32, i5, -1); - try testArgs(u32, i5, 0); - try testArgs(u64, i5, -1 << 4); - try testArgs(u64, i5, -1); - try testArgs(u64, i5, 0); - try testArgs(u128, i5, -1 << 4); - try testArgs(u128, i5, -1); - try testArgs(u128, i5, 0); - try testArgs(u256, i5, -1 << 4); - try testArgs(u256, i5, -1); - try testArgs(u256, i5, 0); - try testArgs(u512, i5, -1 << 4); - try testArgs(u512, i5, -1); - try testArgs(u512, i5, 0); - try testArgs(u1024, i5, -1 << 4); - try testArgs(u1024, i5, -1); - try testArgs(u1024, i5, 0); - try testArgs(i8, u5, 0); - try testArgs(i8, u5, 1 << 0); - try testArgs(i8, u5, 1 << 4); - try testArgs(i16, u5, 0); - try testArgs(i16, u5, 1 << 0); - try testArgs(i16, u5, 1 << 4); - try testArgs(i32, u5, 0); - try testArgs(i32, u5, 1 << 0); - try testArgs(i32, u5, 1 << 4); - try testArgs(i64, u5, 0); - try testArgs(i64, u5, 1 << 0); - try testArgs(i64, u5, 1 << 4); - try testArgs(i128, u5, 0); - try testArgs(i128, u5, 1 << 0); - try testArgs(i128, u5, 1 << 4); - try testArgs(i256, u5, 0); - try testArgs(i256, u5, 1 << 0); - try testArgs(i256, u5, 1 << 4); - try testArgs(i512, u5, 0); - try testArgs(i512, u5, 1 << 0); - try testArgs(i512, u5, 1 << 4); - try testArgs(i1024, u5, 0); - try testArgs(i1024, u5, 1 << 0); - try testArgs(i1024, u5, 1 << 4); - - try testArgs(u8, i7, -1 << 6); - try testArgs(u8, i7, -1); - try testArgs(u8, i7, 0); - try testArgs(u16, i7, -1 << 6); - try testArgs(u16, i7, -1); - try testArgs(u16, i7, 0); - try testArgs(u32, i7, -1 << 6); - try testArgs(u32, i7, -1); - try testArgs(u32, i7, 0); - try testArgs(u64, i7, -1 << 6); - try testArgs(u64, i7, -1); - try testArgs(u64, i7, 0); - try testArgs(u128, i7, -1 << 6); - try testArgs(u128, i7, -1); - try testArgs(u128, i7, 0); - try testArgs(u256, i7, -1 << 6); - try testArgs(u256, i7, -1); - try testArgs(u256, i7, 0); - try testArgs(u512, i7, -1 << 6); - try testArgs(u512, i7, -1); - try testArgs(u512, i7, 0); - try testArgs(u1024, i7, -1 << 6); - try testArgs(u1024, i7, -1); - try testArgs(u1024, i7, 0); - try testArgs(i8, u7, 0); - try testArgs(i8, u7, 1 << 0); - try testArgs(i8, u7, 1 << 6); - try testArgs(i16, u7, 0); - try testArgs(i16, u7, 1 << 0); - try testArgs(i16, u7, 1 << 6); - try testArgs(i32, u7, 0); - try testArgs(i32, u7, 1 << 0); - try testArgs(i32, u7, 1 << 6); - try testArgs(i64, u7, 0); - try testArgs(i64, u7, 1 << 0); - try testArgs(i64, u7, 1 << 6); - try testArgs(i128, u7, 0); - try testArgs(i128, u7, 1 << 0); - try testArgs(i128, u7, 1 << 6); - try testArgs(i256, u7, 0); - try testArgs(i256, u7, 1 << 0); - try testArgs(i256, u7, 1 << 6); - try testArgs(i512, u7, 0); - try testArgs(i512, u7, 1 << 0); - try testArgs(i512, u7, 1 << 6); - try testArgs(i1024, u7, 0); - try testArgs(i1024, u7, 1 << 0); - try testArgs(i1024, u7, 1 << 6); - - try testArgs(u8, i8, -1 << 7); - try testArgs(u8, i8, -1); - try testArgs(u8, i8, 0); - try testArgs(u16, i8, -1 << 7); - try testArgs(u16, i8, -1); - try testArgs(u16, i8, 0); - try testArgs(u32, i8, -1 << 7); - try testArgs(u32, i8, -1); - try testArgs(u32, i8, 0); - try testArgs(u64, i8, -1 << 7); - try testArgs(u64, i8, -1); - try testArgs(u64, i8, 0); - try testArgs(u128, i8, -1 << 7); - try testArgs(u128, i8, -1); - try testArgs(u128, i8, 0); - try testArgs(u256, i8, -1 << 7); - try testArgs(u256, i8, -1); - try testArgs(u256, i8, 0); - try testArgs(u512, i8, -1 << 7); - try testArgs(u512, i8, -1); - try testArgs(u512, i8, 0); - try testArgs(u1024, i8, -1 << 7); - try testArgs(u1024, i8, -1); - try testArgs(u1024, i8, 0); - try testArgs(i8, u8, 0); - try testArgs(i8, u8, 1 << 0); - try testArgs(i8, u8, 1 << 7); - try testArgs(i16, u8, 0); - try testArgs(i16, u8, 1 << 0); - try testArgs(i16, u8, 1 << 7); - try testArgs(i32, u8, 0); - try testArgs(i32, u8, 1 << 0); - try testArgs(i32, u8, 1 << 7); - try testArgs(i64, u8, 0); - try testArgs(i64, u8, 1 << 0); - try testArgs(i64, u8, 1 << 7); - try testArgs(i128, u8, 0); - try testArgs(i128, u8, 1 << 0); - try testArgs(i128, u8, 1 << 7); - try testArgs(i256, u8, 0); - try testArgs(i256, u8, 1 << 0); - try testArgs(i256, u8, 1 << 7); - try testArgs(i512, u8, 0); - try testArgs(i512, u8, 1 << 0); - try testArgs(i512, u8, 1 << 7); - try testArgs(i1024, u8, 0); - try testArgs(i1024, u8, 1 << 0); - try testArgs(i1024, u8, 1 << 7); - - try testArgs(u8, i9, -1 << 8); - try testArgs(u8, i9, -1); - try testArgs(u8, i9, 0); - try testArgs(u16, i9, -1 << 8); - try testArgs(u16, i9, -1); - try testArgs(u16, i9, 0); - try testArgs(u32, i9, -1 << 8); - try testArgs(u32, i9, -1); - try testArgs(u32, i9, 0); - try testArgs(u64, i9, -1 << 8); - try testArgs(u64, i9, -1); - try testArgs(u64, i9, 0); - try testArgs(u128, i9, -1 << 8); - try testArgs(u128, i9, -1); - try testArgs(u128, i9, 0); - try testArgs(u256, i9, -1 << 8); - try testArgs(u256, i9, -1); - try testArgs(u256, i9, 0); - try testArgs(u512, i9, -1 << 8); - try testArgs(u512, i9, -1); - try testArgs(u512, i9, 0); - try testArgs(u1024, i9, -1 << 8); - try testArgs(u1024, i9, -1); - try testArgs(u1024, i9, 0); - try testArgs(i8, u9, 0); - try testArgs(i8, u9, 1 << 0); - try testArgs(i8, u9, 1 << 8); - try testArgs(i16, u9, 0); - try testArgs(i16, u9, 1 << 0); - try testArgs(i16, u9, 1 << 8); - try testArgs(i32, u9, 0); - try testArgs(i32, u9, 1 << 0); - try testArgs(i32, u9, 1 << 8); - try testArgs(i64, u9, 0); - try testArgs(i64, u9, 1 << 0); - try testArgs(i64, u9, 1 << 8); - try testArgs(i128, u9, 0); - try testArgs(i128, u9, 1 << 0); - try testArgs(i128, u9, 1 << 8); - try testArgs(i256, u9, 0); - try testArgs(i256, u9, 1 << 0); - try testArgs(i256, u9, 1 << 8); - try testArgs(i512, u9, 0); - try testArgs(i512, u9, 1 << 0); - try testArgs(i512, u9, 1 << 8); - try testArgs(i1024, u9, 0); - try testArgs(i1024, u9, 1 << 0); - try testArgs(i1024, u9, 1 << 8); - - try testArgs(u8, i15, -1 << 14); - try testArgs(u8, i15, -1); - try testArgs(u8, i15, 0); - try testArgs(u16, i15, -1 << 14); - try testArgs(u16, i15, -1); - try testArgs(u16, i15, 0); - try testArgs(u32, i15, -1 << 14); - try testArgs(u32, i15, -1); - try testArgs(u32, i15, 0); - try testArgs(u64, i15, -1 << 14); - try testArgs(u64, i15, -1); - try testArgs(u64, i15, 0); - try testArgs(u128, i15, -1 << 14); - try testArgs(u128, i15, -1); - try testArgs(u128, i15, 0); - try testArgs(u256, i15, -1 << 14); - try testArgs(u256, i15, -1); - try testArgs(u256, i15, 0); - try testArgs(u512, i15, -1 << 14); - try testArgs(u512, i15, -1); - try testArgs(u512, i15, 0); - try testArgs(u1024, i15, -1 << 14); - try testArgs(u1024, i15, -1); - try testArgs(u1024, i15, 0); - try testArgs(i8, u15, 0); - try testArgs(i8, u15, 1 << 0); - try testArgs(i8, u15, 1 << 14); - try testArgs(i16, u15, 0); - try testArgs(i16, u15, 1 << 0); - try testArgs(i16, u15, 1 << 14); - try testArgs(i32, u15, 0); - try testArgs(i32, u15, 1 << 0); - try testArgs(i32, u15, 1 << 14); - try testArgs(i64, u15, 0); - try testArgs(i64, u15, 1 << 0); - try testArgs(i64, u15, 1 << 14); - try testArgs(i128, u15, 0); - try testArgs(i128, u15, 1 << 0); - try testArgs(i128, u15, 1 << 14); - try testArgs(i256, u15, 0); - try testArgs(i256, u15, 1 << 0); - try testArgs(i256, u15, 1 << 14); - try testArgs(i512, u15, 0); - try testArgs(i512, u15, 1 << 0); - try testArgs(i512, u15, 1 << 14); - try testArgs(i1024, u15, 0); - try testArgs(i1024, u15, 1 << 0); - try testArgs(i1024, u15, 1 << 14); - - try testArgs(u8, i16, -1 << 15); - try testArgs(u8, i16, -1); - try testArgs(u8, i16, 0); - try testArgs(u16, i16, -1 << 15); - try testArgs(u16, i16, -1); - try testArgs(u16, i16, 0); - try testArgs(u32, i16, -1 << 15); - try testArgs(u32, i16, -1); - try testArgs(u32, i16, 0); - try testArgs(u64, i16, -1 << 15); - try testArgs(u64, i16, -1); - try testArgs(u64, i16, 0); - try testArgs(u128, i16, -1 << 15); - try testArgs(u128, i16, -1); - try testArgs(u128, i16, 0); - try testArgs(u256, i16, -1 << 15); - try testArgs(u256, i16, -1); - try testArgs(u256, i16, 0); - try testArgs(u512, i16, -1 << 15); - try testArgs(u512, i16, -1); - try testArgs(u512, i16, 0); - try testArgs(u1024, i16, -1 << 15); - try testArgs(u1024, i16, -1); - try testArgs(u1024, i16, 0); - try testArgs(i8, u16, 0); - try testArgs(i8, u16, 1 << 0); - try testArgs(i8, u16, 1 << 15); - try testArgs(i16, u16, 0); - try testArgs(i16, u16, 1 << 0); - try testArgs(i16, u16, 1 << 15); - try testArgs(i32, u16, 0); - try testArgs(i32, u16, 1 << 0); - try testArgs(i32, u16, 1 << 15); - try testArgs(i64, u16, 0); - try testArgs(i64, u16, 1 << 0); - try testArgs(i64, u16, 1 << 15); - try testArgs(i128, u16, 0); - try testArgs(i128, u16, 1 << 0); - try testArgs(i128, u16, 1 << 15); - try testArgs(i256, u16, 0); - try testArgs(i256, u16, 1 << 0); - try testArgs(i256, u16, 1 << 15); - try testArgs(i512, u16, 0); - try testArgs(i512, u16, 1 << 0); - try testArgs(i512, u16, 1 << 15); - try testArgs(i1024, u16, 0); - try testArgs(i1024, u16, 1 << 0); - try testArgs(i1024, u16, 1 << 15); - - try testArgs(u8, i17, -1 << 16); - try testArgs(u8, i17, -1); - try testArgs(u8, i17, 0); - try testArgs(u16, i17, -1 << 16); - try testArgs(u16, i17, -1); - try testArgs(u16, i17, 0); - try testArgs(u32, i17, -1 << 16); - try testArgs(u32, i17, -1); - try testArgs(u32, i17, 0); - try testArgs(u64, i17, -1 << 16); - try testArgs(u64, i17, -1); - try testArgs(u64, i17, 0); - try testArgs(u128, i17, -1 << 16); - try testArgs(u128, i17, -1); - try testArgs(u128, i17, 0); - try testArgs(u256, i17, -1 << 16); - try testArgs(u256, i17, -1); - try testArgs(u256, i17, 0); - try testArgs(u512, i17, -1 << 16); - try testArgs(u512, i17, -1); - try testArgs(u512, i17, 0); - try testArgs(u1024, i17, -1 << 16); - try testArgs(u1024, i17, -1); - try testArgs(u1024, i17, 0); - try testArgs(i8, u17, 0); - try testArgs(i8, u17, 1 << 0); - try testArgs(i8, u17, 1 << 16); - try testArgs(i16, u17, 0); - try testArgs(i16, u17, 1 << 0); - try testArgs(i16, u17, 1 << 16); - try testArgs(i32, u17, 0); - try testArgs(i32, u17, 1 << 0); - try testArgs(i32, u17, 1 << 16); - try testArgs(i64, u17, 0); - try testArgs(i64, u17, 1 << 0); - try testArgs(i64, u17, 1 << 16); - try testArgs(i128, u17, 0); - try testArgs(i128, u17, 1 << 0); - try testArgs(i128, u17, 1 << 16); - try testArgs(i256, u17, 0); - try testArgs(i256, u17, 1 << 0); - try testArgs(i256, u17, 1 << 16); - try testArgs(i512, u17, 0); - try testArgs(i512, u17, 1 << 0); - try testArgs(i512, u17, 1 << 16); - try testArgs(i1024, u17, 0); - try testArgs(i1024, u17, 1 << 0); - try testArgs(i1024, u17, 1 << 16); - - try testArgs(u8, i31, -1 << 30); - try testArgs(u8, i31, -1); - try testArgs(u8, i31, 0); - try testArgs(u16, i31, -1 << 30); - try testArgs(u16, i31, -1); - try testArgs(u16, i31, 0); - try testArgs(u32, i31, -1 << 30); - try testArgs(u32, i31, -1); - try testArgs(u32, i31, 0); - try testArgs(u64, i31, -1 << 30); - try testArgs(u64, i31, -1); - try testArgs(u64, i31, 0); - try testArgs(u128, i31, -1 << 30); - try testArgs(u128, i31, -1); - try testArgs(u128, i31, 0); - try testArgs(u256, i31, -1 << 30); - try testArgs(u256, i31, -1); - try testArgs(u256, i31, 0); - try testArgs(u512, i31, -1 << 30); - try testArgs(u512, i31, -1); - try testArgs(u512, i31, 0); - try testArgs(u1024, i31, -1 << 30); - try testArgs(u1024, i31, -1); - try testArgs(u1024, i31, 0); - try testArgs(i8, u31, 0); - try testArgs(i8, u31, 1 << 0); - try testArgs(i8, u31, 1 << 30); - try testArgs(i16, u31, 0); - try testArgs(i16, u31, 1 << 0); - try testArgs(i16, u31, 1 << 30); - try testArgs(i32, u31, 0); - try testArgs(i32, u31, 1 << 0); - try testArgs(i32, u31, 1 << 30); - try testArgs(i64, u31, 0); - try testArgs(i64, u31, 1 << 0); - try testArgs(i64, u31, 1 << 30); - try testArgs(i128, u31, 0); - try testArgs(i128, u31, 1 << 0); - try testArgs(i128, u31, 1 << 30); - try testArgs(i256, u31, 0); - try testArgs(i256, u31, 1 << 0); - try testArgs(i256, u31, 1 << 30); - try testArgs(i512, u31, 0); - try testArgs(i512, u31, 1 << 0); - try testArgs(i512, u31, 1 << 30); - try testArgs(i1024, u31, 0); - try testArgs(i1024, u31, 1 << 0); - try testArgs(i1024, u31, 1 << 30); - - try testArgs(u8, i32, -1 << 31); - try testArgs(u8, i32, -1); - try testArgs(u8, i32, 0); - try testArgs(u16, i32, -1 << 31); - try testArgs(u16, i32, -1); - try testArgs(u16, i32, 0); - try testArgs(u32, i32, -1 << 31); - try testArgs(u32, i32, -1); - try testArgs(u32, i32, 0); - try testArgs(u64, i32, -1 << 31); - try testArgs(u64, i32, -1); - try testArgs(u64, i32, 0); - try testArgs(u128, i32, -1 << 31); - try testArgs(u128, i32, -1); - try testArgs(u128, i32, 0); - try testArgs(u256, i32, -1 << 31); - try testArgs(u256, i32, -1); - try testArgs(u256, i32, 0); - try testArgs(u512, i32, -1 << 31); - try testArgs(u512, i32, -1); - try testArgs(u512, i32, 0); - try testArgs(u1024, i32, -1 << 31); - try testArgs(u1024, i32, -1); - try testArgs(u1024, i32, 0); - try testArgs(i8, u32, 0); - try testArgs(i8, u32, 1 << 0); - try testArgs(i8, u32, 1 << 31); - try testArgs(i16, u32, 0); - try testArgs(i16, u32, 1 << 0); - try testArgs(i16, u32, 1 << 31); - try testArgs(i32, u32, 0); - try testArgs(i32, u32, 1 << 0); - try testArgs(i32, u32, 1 << 31); - try testArgs(i64, u32, 0); - try testArgs(i64, u32, 1 << 0); - try testArgs(i64, u32, 1 << 31); - try testArgs(i128, u32, 0); - try testArgs(i128, u32, 1 << 0); - try testArgs(i128, u32, 1 << 31); - try testArgs(i256, u32, 0); - try testArgs(i256, u32, 1 << 0); - try testArgs(i256, u32, 1 << 31); - try testArgs(i512, u32, 0); - try testArgs(i512, u32, 1 << 0); - try testArgs(i512, u32, 1 << 31); - try testArgs(i1024, u32, 0); - try testArgs(i1024, u32, 1 << 0); - try testArgs(i1024, u32, 1 << 31); - - try testArgs(u8, i33, -1 << 32); - try testArgs(u8, i33, -1); - try testArgs(u8, i33, 0); - try testArgs(u16, i33, -1 << 32); - try testArgs(u16, i33, -1); - try testArgs(u16, i33, 0); - try testArgs(u32, i33, -1 << 32); - try testArgs(u32, i33, -1); - try testArgs(u32, i33, 0); - try testArgs(u64, i33, -1 << 32); - try testArgs(u64, i33, -1); - try testArgs(u64, i33, 0); - try testArgs(u128, i33, -1 << 32); - try testArgs(u128, i33, -1); - try testArgs(u128, i33, 0); - try testArgs(u256, i33, -1 << 32); - try testArgs(u256, i33, -1); - try testArgs(u256, i33, 0); - try testArgs(u512, i33, -1 << 32); - try testArgs(u512, i33, -1); - try testArgs(u512, i33, 0); - try testArgs(u1024, i33, -1 << 32); - try testArgs(u1024, i33, -1); - try testArgs(u1024, i33, 0); - try testArgs(i8, u33, 0); - try testArgs(i8, u33, 1 << 0); - try testArgs(i8, u33, 1 << 32); - try testArgs(i16, u33, 0); - try testArgs(i16, u33, 1 << 0); - try testArgs(i16, u33, 1 << 32); - try testArgs(i32, u33, 0); - try testArgs(i32, u33, 1 << 0); - try testArgs(i32, u33, 1 << 32); - try testArgs(i64, u33, 0); - try testArgs(i64, u33, 1 << 0); - try testArgs(i64, u33, 1 << 32); - try testArgs(i128, u33, 0); - try testArgs(i128, u33, 1 << 0); - try testArgs(i128, u33, 1 << 32); - try testArgs(i256, u33, 0); - try testArgs(i256, u33, 1 << 0); - try testArgs(i256, u33, 1 << 32); - try testArgs(i512, u33, 0); - try testArgs(i512, u33, 1 << 0); - try testArgs(i512, u33, 1 << 32); - try testArgs(i1024, u33, 0); - try testArgs(i1024, u33, 1 << 0); - try testArgs(i1024, u33, 1 << 32); - - try testArgs(u8, i63, -1 << 62); - try testArgs(u8, i63, -1); - try testArgs(u8, i63, 0); - try testArgs(u16, i63, -1 << 62); - try testArgs(u16, i63, -1); - try testArgs(u16, i63, 0); - try testArgs(u32, i63, -1 << 62); - try testArgs(u32, i63, -1); - try testArgs(u32, i63, 0); - try testArgs(u64, i63, -1 << 62); - try testArgs(u64, i63, -1); - try testArgs(u64, i63, 0); - try testArgs(u128, i63, -1 << 62); - try testArgs(u128, i63, -1); - try testArgs(u128, i63, 0); - try testArgs(u256, i63, -1 << 62); - try testArgs(u256, i63, -1); - try testArgs(u256, i63, 0); - try testArgs(u512, i63, -1 << 62); - try testArgs(u512, i63, -1); - try testArgs(u512, i63, 0); - try testArgs(u1024, i63, -1 << 62); - try testArgs(u1024, i63, -1); - try testArgs(u1024, i63, 0); - try testArgs(i8, u63, 0); - try testArgs(i8, u63, 1 << 0); - try testArgs(i8, u63, 1 << 62); - try testArgs(i16, u63, 0); - try testArgs(i16, u63, 1 << 0); - try testArgs(i16, u63, 1 << 62); - try testArgs(i32, u63, 0); - try testArgs(i32, u63, 1 << 0); - try testArgs(i32, u63, 1 << 62); - try testArgs(i64, u63, 0); - try testArgs(i64, u63, 1 << 0); - try testArgs(i64, u63, 1 << 62); - try testArgs(i128, u63, 0); - try testArgs(i128, u63, 1 << 0); - try testArgs(i128, u63, 1 << 62); - try testArgs(i256, u63, 0); - try testArgs(i256, u63, 1 << 0); - try testArgs(i256, u63, 1 << 62); - try testArgs(i512, u63, 0); - try testArgs(i512, u63, 1 << 0); - try testArgs(i512, u63, 1 << 62); - try testArgs(i1024, u63, 0); - try testArgs(i1024, u63, 1 << 0); - try testArgs(i1024, u63, 1 << 62); - - try testArgs(u8, i64, -1 << 63); - try testArgs(u8, i64, -1); - try testArgs(u8, i64, 0); - try testArgs(u16, i64, -1 << 63); - try testArgs(u16, i64, -1); - try testArgs(u16, i64, 0); - try testArgs(u32, i64, -1 << 63); - try testArgs(u32, i64, -1); - try testArgs(u32, i64, 0); - try testArgs(u64, i64, -1 << 63); - try testArgs(u64, i64, -1); - try testArgs(u64, i64, 0); - try testArgs(u128, i64, -1 << 63); - try testArgs(u128, i64, -1); - try testArgs(u128, i64, 0); - try testArgs(u256, i64, -1 << 63); - try testArgs(u256, i64, -1); - try testArgs(u256, i64, 0); - try testArgs(u512, i64, -1 << 63); - try testArgs(u512, i64, -1); - try testArgs(u512, i64, 0); - try testArgs(u1024, i64, -1 << 63); - try testArgs(u1024, i64, -1); - try testArgs(u1024, i64, 0); - try testArgs(i8, u64, 0); - try testArgs(i8, u64, 1 << 0); - try testArgs(i8, u64, 1 << 63); - try testArgs(i16, u64, 0); - try testArgs(i16, u64, 1 << 0); - try testArgs(i16, u64, 1 << 63); - try testArgs(i32, u64, 0); - try testArgs(i32, u64, 1 << 0); - try testArgs(i32, u64, 1 << 63); - try testArgs(i64, u64, 0); - try testArgs(i64, u64, 1 << 0); - try testArgs(i64, u64, 1 << 63); - try testArgs(i128, u64, 0); - try testArgs(i128, u64, 1 << 0); - try testArgs(i128, u64, 1 << 63); - try testArgs(i256, u64, 0); - try testArgs(i256, u64, 1 << 0); - try testArgs(i256, u64, 1 << 63); - try testArgs(i512, u64, 0); - try testArgs(i512, u64, 1 << 0); - try testArgs(i512, u64, 1 << 63); - try testArgs(i1024, u64, 0); - try testArgs(i1024, u64, 1 << 0); - try testArgs(i1024, u64, 1 << 63); - - try testArgs(u8, i65, -1 << 64); - try testArgs(u8, i65, -1); - try testArgs(u8, i65, 0); - try testArgs(u16, i65, -1 << 64); - try testArgs(u16, i65, -1); - try testArgs(u16, i65, 0); - try testArgs(u32, i65, -1 << 64); - try testArgs(u32, i65, -1); - try testArgs(u32, i65, 0); - try testArgs(u64, i65, -1 << 64); - try testArgs(u64, i65, -1); - try testArgs(u64, i65, 0); - try testArgs(u128, i65, -1 << 64); - try testArgs(u128, i65, -1); - try testArgs(u128, i65, 0); - try testArgs(u256, i65, -1 << 64); - try testArgs(u256, i65, -1); - try testArgs(u256, i65, 0); - try testArgs(u512, i65, -1 << 64); - try testArgs(u512, i65, -1); - try testArgs(u512, i65, 0); - try testArgs(u1024, i65, -1 << 64); - try testArgs(u1024, i65, -1); - try testArgs(u1024, i65, 0); - try testArgs(i8, u65, 0); - try testArgs(i8, u65, 1 << 0); - try testArgs(i8, u65, 1 << 64); - try testArgs(i16, u65, 0); - try testArgs(i16, u65, 1 << 0); - try testArgs(i16, u65, 1 << 64); - try testArgs(i32, u65, 0); - try testArgs(i32, u65, 1 << 0); - try testArgs(i32, u65, 1 << 64); - try testArgs(i64, u65, 0); - try testArgs(i64, u65, 1 << 0); - try testArgs(i64, u65, 1 << 64); - try testArgs(i128, u65, 0); - try testArgs(i128, u65, 1 << 0); - try testArgs(i128, u65, 1 << 64); - try testArgs(i256, u65, 0); - try testArgs(i256, u65, 1 << 0); - try testArgs(i256, u65, 1 << 64); - try testArgs(i512, u65, 0); - try testArgs(i512, u65, 1 << 0); - try testArgs(i512, u65, 1 << 64); - try testArgs(i1024, u65, 0); - try testArgs(i1024, u65, 1 << 0); - try testArgs(i1024, u65, 1 << 64); - - try testArgs(u8, i95, -1 << 94); - try testArgs(u8, i95, -1); - try testArgs(u8, i95, 0); - try testArgs(u16, i95, -1 << 94); - try testArgs(u16, i95, -1); - try testArgs(u16, i95, 0); - try testArgs(u32, i95, -1 << 94); - try testArgs(u32, i95, -1); - try testArgs(u32, i95, 0); - try testArgs(u64, i95, -1 << 94); - try testArgs(u64, i95, -1); - try testArgs(u64, i95, 0); - try testArgs(u128, i95, -1 << 94); - try testArgs(u128, i95, -1); - try testArgs(u128, i95, 0); - try testArgs(u256, i95, -1 << 94); - try testArgs(u256, i95, -1); - try testArgs(u256, i95, 0); - try testArgs(u512, i95, -1 << 94); - try testArgs(u512, i95, -1); - try testArgs(u512, i95, 0); - try testArgs(u1024, i95, -1 << 94); - try testArgs(u1024, i95, -1); - try testArgs(u1024, i95, 0); - try testArgs(i8, u95, 0); - try testArgs(i8, u95, 1 << 0); - try testArgs(i8, u95, 1 << 94); - try testArgs(i16, u95, 0); - try testArgs(i16, u95, 1 << 0); - try testArgs(i16, u95, 1 << 94); - try testArgs(i32, u95, 0); - try testArgs(i32, u95, 1 << 0); - try testArgs(i32, u95, 1 << 94); - try testArgs(i64, u95, 0); - try testArgs(i64, u95, 1 << 0); - try testArgs(i64, u95, 1 << 94); - try testArgs(i128, u95, 0); - try testArgs(i128, u95, 1 << 0); - try testArgs(i128, u95, 1 << 94); - try testArgs(i256, u95, 0); - try testArgs(i256, u95, 1 << 0); - try testArgs(i256, u95, 1 << 94); - try testArgs(i512, u95, 0); - try testArgs(i512, u95, 1 << 0); - try testArgs(i512, u95, 1 << 94); - try testArgs(i1024, u95, 0); - try testArgs(i1024, u95, 1 << 0); - try testArgs(i1024, u95, 1 << 94); - - try testArgs(u8, i96, -1 << 95); - try testArgs(u8, i96, -1); - try testArgs(u8, i96, 0); - try testArgs(u16, i96, -1 << 95); - try testArgs(u16, i96, -1); - try testArgs(u16, i96, 0); - try testArgs(u32, i96, -1 << 95); - try testArgs(u32, i96, -1); - try testArgs(u32, i96, 0); - try testArgs(u64, i96, -1 << 95); - try testArgs(u64, i96, -1); - try testArgs(u64, i96, 0); - try testArgs(u128, i96, -1 << 95); - try testArgs(u128, i96, -1); - try testArgs(u128, i96, 0); - try testArgs(u256, i96, -1 << 95); - try testArgs(u256, i96, -1); - try testArgs(u256, i96, 0); - try testArgs(u512, i96, -1 << 95); - try testArgs(u512, i96, -1); - try testArgs(u512, i96, 0); - try testArgs(u1024, i96, -1 << 95); - try testArgs(u1024, i96, -1); - try testArgs(u1024, i96, 0); - try testArgs(i8, u96, 0); - try testArgs(i8, u96, 1 << 0); - try testArgs(i8, u96, 1 << 95); - try testArgs(i16, u96, 0); - try testArgs(i16, u96, 1 << 0); - try testArgs(i16, u96, 1 << 95); - try testArgs(i32, u96, 0); - try testArgs(i32, u96, 1 << 0); - try testArgs(i32, u96, 1 << 95); - try testArgs(i64, u96, 0); - try testArgs(i64, u96, 1 << 0); - try testArgs(i64, u96, 1 << 95); - try testArgs(i128, u96, 0); - try testArgs(i128, u96, 1 << 0); - try testArgs(i128, u96, 1 << 95); - try testArgs(i256, u96, 0); - try testArgs(i256, u96, 1 << 0); - try testArgs(i256, u96, 1 << 95); - try testArgs(i512, u96, 0); - try testArgs(i512, u96, 1 << 0); - try testArgs(i512, u96, 1 << 95); - try testArgs(i1024, u96, 0); - try testArgs(i1024, u96, 1 << 0); - try testArgs(i1024, u96, 1 << 95); - - try testArgs(u8, i97, -1 << 96); - try testArgs(u8, i97, -1); - try testArgs(u8, i97, 0); - try testArgs(u16, i97, -1 << 96); - try testArgs(u16, i97, -1); - try testArgs(u16, i97, 0); - try testArgs(u32, i97, -1 << 96); - try testArgs(u32, i97, -1); - try testArgs(u32, i97, 0); - try testArgs(u64, i97, -1 << 96); - try testArgs(u64, i97, -1); - try testArgs(u64, i97, 0); - try testArgs(u128, i97, -1 << 96); - try testArgs(u128, i97, -1); - try testArgs(u128, i97, 0); - try testArgs(u256, i97, -1 << 96); - try testArgs(u256, i97, -1); - try testArgs(u256, i97, 0); - try testArgs(u512, i97, -1 << 96); - try testArgs(u512, i97, -1); - try testArgs(u512, i97, 0); - try testArgs(u1024, i97, -1 << 96); - try testArgs(u1024, i97, -1); - try testArgs(u1024, i97, 0); - try testArgs(i8, u97, 0); - try testArgs(i8, u97, 1 << 0); - try testArgs(i8, u97, 1 << 96); - try testArgs(i16, u97, 0); - try testArgs(i16, u97, 1 << 0); - try testArgs(i16, u97, 1 << 96); - try testArgs(i32, u97, 0); - try testArgs(i32, u97, 1 << 0); - try testArgs(i32, u97, 1 << 96); - try testArgs(i64, u97, 0); - try testArgs(i64, u97, 1 << 0); - try testArgs(i64, u97, 1 << 96); - try testArgs(i128, u97, 0); - try testArgs(i128, u97, 1 << 0); - try testArgs(i128, u97, 1 << 96); - try testArgs(i256, u97, 0); - try testArgs(i256, u97, 1 << 0); - try testArgs(i256, u97, 1 << 96); - try testArgs(i512, u97, 0); - try testArgs(i512, u97, 1 << 0); - try testArgs(i512, u97, 1 << 96); - try testArgs(i1024, u97, 0); - try testArgs(i1024, u97, 1 << 0); - try testArgs(i1024, u97, 1 << 96); - - try testArgs(u8, i127, -1 << 126); - try testArgs(u8, i127, -1); - try testArgs(u8, i127, 0); - try testArgs(u16, i127, -1 << 126); - try testArgs(u16, i127, -1); - try testArgs(u16, i127, 0); - try testArgs(u32, i127, -1 << 126); - try testArgs(u32, i127, -1); - try testArgs(u32, i127, 0); - try testArgs(u64, i127, -1 << 126); - try testArgs(u64, i127, -1); - try testArgs(u64, i127, 0); - try testArgs(u128, i127, -1 << 126); - try testArgs(u128, i127, -1); - try testArgs(u128, i127, 0); - try testArgs(u256, i127, -1 << 126); - try testArgs(u256, i127, -1); - try testArgs(u256, i127, 0); - try testArgs(u512, i127, -1 << 126); - try testArgs(u512, i127, -1); - try testArgs(u512, i127, 0); - try testArgs(u1024, i127, -1 << 126); - try testArgs(u1024, i127, -1); - try testArgs(u1024, i127, 0); - try testArgs(i8, u127, 0); - try testArgs(i8, u127, 1 << 0); - try testArgs(i8, u127, 1 << 126); - try testArgs(i16, u127, 0); - try testArgs(i16, u127, 1 << 0); - try testArgs(i16, u127, 1 << 126); - try testArgs(i32, u127, 0); - try testArgs(i32, u127, 1 << 0); - try testArgs(i32, u127, 1 << 126); - try testArgs(i64, u127, 0); - try testArgs(i64, u127, 1 << 0); - try testArgs(i64, u127, 1 << 126); - try testArgs(i128, u127, 0); - try testArgs(i128, u127, 1 << 0); - try testArgs(i128, u127, 1 << 126); - try testArgs(i256, u127, 0); - try testArgs(i256, u127, 1 << 0); - try testArgs(i256, u127, 1 << 126); - try testArgs(i512, u127, 0); - try testArgs(i512, u127, 1 << 0); - try testArgs(i512, u127, 1 << 126); - try testArgs(i1024, u127, 0); - try testArgs(i1024, u127, 1 << 0); - try testArgs(i1024, u127, 1 << 126); - - try testArgs(u8, i128, -1 << 127); - try testArgs(u8, i128, -1); - try testArgs(u8, i128, 0); - try testArgs(u16, i128, -1 << 127); - try testArgs(u16, i128, -1); - try testArgs(u16, i128, 0); - try testArgs(u32, i128, -1 << 127); - try testArgs(u32, i128, -1); - try testArgs(u32, i128, 0); - try testArgs(u64, i128, -1 << 127); - try testArgs(u64, i128, -1); - try testArgs(u64, i128, 0); - try testArgs(u128, i128, -1 << 127); - try testArgs(u128, i128, -1); - try testArgs(u128, i128, 0); - try testArgs(u256, i128, -1 << 127); - try testArgs(u256, i128, -1); - try testArgs(u256, i128, 0); - try testArgs(u512, i128, -1 << 127); - try testArgs(u512, i128, -1); - try testArgs(u512, i128, 0); - try testArgs(u1024, i128, -1 << 127); - try testArgs(u1024, i128, -1); - try testArgs(u1024, i128, 0); - try testArgs(i8, u128, 0); - try testArgs(i8, u128, 1 << 0); - try testArgs(i8, u128, 1 << 127); - try testArgs(i16, u128, 0); - try testArgs(i16, u128, 1 << 0); - try testArgs(i16, u128, 1 << 127); - try testArgs(i32, u128, 0); - try testArgs(i32, u128, 1 << 0); - try testArgs(i32, u128, 1 << 127); - try testArgs(i64, u128, 0); - try testArgs(i64, u128, 1 << 0); - try testArgs(i64, u128, 1 << 127); - try testArgs(i128, u128, 0); - try testArgs(i128, u128, 1 << 0); - try testArgs(i128, u128, 1 << 127); - try testArgs(i256, u128, 0); - try testArgs(i256, u128, 1 << 0); - try testArgs(i256, u128, 1 << 127); - try testArgs(i512, u128, 0); - try testArgs(i512, u128, 1 << 0); - try testArgs(i512, u128, 1 << 127); - try testArgs(i1024, u128, 0); - try testArgs(i1024, u128, 1 << 0); - try testArgs(i1024, u128, 1 << 127); - - try testArgs(u8, i129, -1 << 128); - try testArgs(u8, i129, -1); - try testArgs(u8, i129, 0); - try testArgs(u16, i129, -1 << 128); - try testArgs(u16, i129, -1); - try testArgs(u16, i129, 0); - try testArgs(u32, i129, -1 << 128); - try testArgs(u32, i129, -1); - try testArgs(u32, i129, 0); - try testArgs(u64, i129, -1 << 128); - try testArgs(u64, i129, -1); - try testArgs(u64, i129, 0); - try testArgs(u128, i129, -1 << 128); - try testArgs(u128, i129, -1); - try testArgs(u128, i129, 0); - try testArgs(u256, i129, -1 << 128); - try testArgs(u256, i129, -1); - try testArgs(u256, i129, 0); - try testArgs(u512, i129, -1 << 128); - try testArgs(u512, i129, -1); - try testArgs(u512, i129, 0); - try testArgs(u1024, i129, -1 << 128); - try testArgs(u1024, i129, -1); - try testArgs(u1024, i129, 0); - try testArgs(i8, u129, 0); - try testArgs(i8, u129, 1 << 0); - try testArgs(i8, u129, 1 << 128); - try testArgs(i16, u129, 0); - try testArgs(i16, u129, 1 << 0); - try testArgs(i16, u129, 1 << 128); - try testArgs(i32, u129, 0); - try testArgs(i32, u129, 1 << 0); - try testArgs(i32, u129, 1 << 128); - try testArgs(i64, u129, 0); - try testArgs(i64, u129, 1 << 0); - try testArgs(i64, u129, 1 << 128); - try testArgs(i128, u129, 0); - try testArgs(i128, u129, 1 << 0); - try testArgs(i128, u129, 1 << 128); - try testArgs(i256, u129, 0); - try testArgs(i256, u129, 1 << 0); - try testArgs(i256, u129, 1 << 128); - try testArgs(i512, u129, 0); - try testArgs(i512, u129, 1 << 0); - try testArgs(i512, u129, 1 << 128); - try testArgs(i1024, u129, 0); - try testArgs(i1024, u129, 1 << 0); - try testArgs(i1024, u129, 1 << 128); - - try testArgs(u8, i255, -1 << 254); - try testArgs(u8, i255, -1); - try testArgs(u8, i255, 0); - try testArgs(u16, i255, -1 << 254); - try testArgs(u16, i255, -1); - try testArgs(u16, i255, 0); - try testArgs(u32, i255, -1 << 254); - try testArgs(u32, i255, -1); - try testArgs(u32, i255, 0); - try testArgs(u64, i255, -1 << 254); - try testArgs(u64, i255, -1); - try testArgs(u64, i255, 0); - try testArgs(u128, i255, -1 << 254); - try testArgs(u128, i255, -1); - try testArgs(u128, i255, 0); - try testArgs(u256, i255, -1 << 254); - try testArgs(u256, i255, -1); - try testArgs(u256, i255, 0); - try testArgs(u512, i255, -1 << 254); - try testArgs(u512, i255, -1); - try testArgs(u512, i255, 0); - try testArgs(u1024, i255, -1 << 254); - try testArgs(u1024, i255, -1); - try testArgs(u1024, i255, 0); - try testArgs(i8, u255, 0); - try testArgs(i8, u255, 1 << 0); - try testArgs(i8, u255, 1 << 254); - try testArgs(i16, u255, 0); - try testArgs(i16, u255, 1 << 0); - try testArgs(i16, u255, 1 << 254); - try testArgs(i32, u255, 0); - try testArgs(i32, u255, 1 << 0); - try testArgs(i32, u255, 1 << 254); - try testArgs(i64, u255, 0); - try testArgs(i64, u255, 1 << 0); - try testArgs(i64, u255, 1 << 254); - try testArgs(i128, u255, 0); - try testArgs(i128, u255, 1 << 0); - try testArgs(i128, u255, 1 << 254); - try testArgs(i256, u255, 0); - try testArgs(i256, u255, 1 << 0); - try testArgs(i256, u255, 1 << 254); - try testArgs(i512, u255, 0); - try testArgs(i512, u255, 1 << 0); - try testArgs(i512, u255, 1 << 254); - try testArgs(i1024, u255, 0); - try testArgs(i1024, u255, 1 << 0); - try testArgs(i1024, u255, 1 << 254); - - try testArgs(u8, i256, -1 << 255); - try testArgs(u8, i256, -1); - try testArgs(u8, i256, 0); - try testArgs(u16, i256, -1 << 255); - try testArgs(u16, i256, -1); - try testArgs(u16, i256, 0); - try testArgs(u32, i256, -1 << 255); - try testArgs(u32, i256, -1); - try testArgs(u32, i256, 0); - try testArgs(u64, i256, -1 << 255); - try testArgs(u64, i256, -1); - try testArgs(u64, i256, 0); - try testArgs(u128, i256, -1 << 255); - try testArgs(u128, i256, -1); - try testArgs(u128, i256, 0); - try testArgs(u256, i256, -1 << 255); - try testArgs(u256, i256, -1); - try testArgs(u256, i256, 0); - try testArgs(u512, i256, -1 << 255); - try testArgs(u512, i256, -1); - try testArgs(u512, i256, 0); - try testArgs(u1024, i256, -1 << 255); - try testArgs(u1024, i256, -1); - try testArgs(u1024, i256, 0); - try testArgs(i8, u256, 0); - try testArgs(i8, u256, 1 << 0); - try testArgs(i8, u256, 1 << 255); - try testArgs(i16, u256, 0); - try testArgs(i16, u256, 1 << 0); - try testArgs(i16, u256, 1 << 255); - try testArgs(i32, u256, 0); - try testArgs(i32, u256, 1 << 0); - try testArgs(i32, u256, 1 << 255); - try testArgs(i64, u256, 0); - try testArgs(i64, u256, 1 << 0); - try testArgs(i64, u256, 1 << 255); - try testArgs(i128, u256, 0); - try testArgs(i128, u256, 1 << 0); - try testArgs(i128, u256, 1 << 255); - try testArgs(i256, u256, 0); - try testArgs(i256, u256, 1 << 0); - try testArgs(i256, u256, 1 << 255); - try testArgs(i512, u256, 0); - try testArgs(i512, u256, 1 << 0); - try testArgs(i512, u256, 1 << 255); - try testArgs(i1024, u256, 0); - try testArgs(i1024, u256, 1 << 0); - try testArgs(i1024, u256, 1 << 255); - - try testArgs(u8, i257, -1 << 256); - try testArgs(u8, i257, -1); - try testArgs(u8, i257, 0); - try testArgs(u16, i257, -1 << 256); - try testArgs(u16, i257, -1); - try testArgs(u16, i257, 0); - try testArgs(u32, i257, -1 << 256); - try testArgs(u32, i257, -1); - try testArgs(u32, i257, 0); - try testArgs(u64, i257, -1 << 256); - try testArgs(u64, i257, -1); - try testArgs(u64, i257, 0); - try testArgs(u128, i257, -1 << 256); - try testArgs(u128, i257, -1); - try testArgs(u128, i257, 0); - try testArgs(u256, i257, -1 << 256); - try testArgs(u256, i257, -1); - try testArgs(u256, i257, 0); - try testArgs(u512, i257, -1 << 256); - try testArgs(u512, i257, -1); - try testArgs(u512, i257, 0); - try testArgs(u1024, i257, -1 << 256); - try testArgs(u1024, i257, -1); - try testArgs(u1024, i257, 0); - try testArgs(i8, u257, 0); - try testArgs(i8, u257, 1 << 0); - try testArgs(i8, u257, 1 << 256); - try testArgs(i16, u257, 0); - try testArgs(i16, u257, 1 << 0); - try testArgs(i16, u257, 1 << 256); - try testArgs(i32, u257, 0); - try testArgs(i32, u257, 1 << 0); - try testArgs(i32, u257, 1 << 256); - try testArgs(i64, u257, 0); - try testArgs(i64, u257, 1 << 0); - try testArgs(i64, u257, 1 << 256); - try testArgs(i128, u257, 0); - try testArgs(i128, u257, 1 << 0); - try testArgs(i128, u257, 1 << 256); - try testArgs(i256, u257, 0); - try testArgs(i256, u257, 1 << 0); - try testArgs(i256, u257, 1 << 256); - try testArgs(i512, u257, 0); - try testArgs(i512, u257, 1 << 0); - try testArgs(i512, u257, 1 << 256); - try testArgs(i1024, u257, 0); - try testArgs(i1024, u257, 1 << 0); - try testArgs(i1024, u257, 1 << 256); - - try testArgs(u8, i511, -1 << 510); - try testArgs(u8, i511, -1); - try testArgs(u8, i511, 0); - try testArgs(u16, i511, -1 << 510); - try testArgs(u16, i511, -1); - try testArgs(u16, i511, 0); - try testArgs(u32, i511, -1 << 510); - try testArgs(u32, i511, -1); - try testArgs(u32, i511, 0); - try testArgs(u64, i511, -1 << 510); - try testArgs(u64, i511, -1); - try testArgs(u64, i511, 0); - try testArgs(u128, i511, -1 << 510); - try testArgs(u128, i511, -1); - try testArgs(u128, i511, 0); - try testArgs(u256, i511, -1 << 510); - try testArgs(u256, i511, -1); - try testArgs(u256, i511, 0); - try testArgs(u512, i511, -1 << 510); - try testArgs(u512, i511, -1); - try testArgs(u512, i511, 0); - try testArgs(u1024, i511, -1 << 510); - try testArgs(u1024, i511, -1); - try testArgs(u1024, i511, 0); - try testArgs(i8, u511, 0); - try testArgs(i8, u511, 1 << 0); - try testArgs(i8, u511, 1 << 510); - try testArgs(i16, u511, 0); - try testArgs(i16, u511, 1 << 0); - try testArgs(i16, u511, 1 << 510); - try testArgs(i32, u511, 0); - try testArgs(i32, u511, 1 << 0); - try testArgs(i32, u511, 1 << 510); - try testArgs(i64, u511, 0); - try testArgs(i64, u511, 1 << 0); - try testArgs(i64, u511, 1 << 510); - try testArgs(i128, u511, 0); - try testArgs(i128, u511, 1 << 0); - try testArgs(i128, u511, 1 << 510); - try testArgs(i256, u511, 0); - try testArgs(i256, u511, 1 << 0); - try testArgs(i256, u511, 1 << 510); - try testArgs(i512, u511, 0); - try testArgs(i512, u511, 1 << 0); - try testArgs(i512, u511, 1 << 510); - try testArgs(i1024, u511, 0); - try testArgs(i1024, u511, 1 << 0); - try testArgs(i1024, u511, 1 << 510); - - try testArgs(u8, i512, -1 << 511); - try testArgs(u8, i512, -1); - try testArgs(u8, i512, 0); - try testArgs(u16, i512, -1 << 511); - try testArgs(u16, i512, -1); - try testArgs(u16, i512, 0); - try testArgs(u32, i512, -1 << 511); - try testArgs(u32, i512, -1); - try testArgs(u32, i512, 0); - try testArgs(u64, i512, -1 << 511); - try testArgs(u64, i512, -1); - try testArgs(u64, i512, 0); - try testArgs(u128, i512, -1 << 511); - try testArgs(u128, i512, -1); - try testArgs(u128, i512, 0); - try testArgs(u256, i512, -1 << 511); - try testArgs(u256, i512, -1); - try testArgs(u256, i512, 0); - try testArgs(u512, i512, -1 << 511); - try testArgs(u512, i512, -1); - try testArgs(u512, i512, 0); - try testArgs(u1024, i512, -1 << 511); - try testArgs(u1024, i512, -1); - try testArgs(u1024, i512, 0); - try testArgs(i8, u512, 0); - try testArgs(i8, u512, 1 << 0); - try testArgs(i8, u512, 1 << 511); - try testArgs(i16, u512, 0); - try testArgs(i16, u512, 1 << 0); - try testArgs(i16, u512, 1 << 511); - try testArgs(i32, u512, 0); - try testArgs(i32, u512, 1 << 0); - try testArgs(i32, u512, 1 << 511); - try testArgs(i64, u512, 0); - try testArgs(i64, u512, 1 << 0); - try testArgs(i64, u512, 1 << 511); - try testArgs(i128, u512, 0); - try testArgs(i128, u512, 1 << 0); - try testArgs(i128, u512, 1 << 511); - try testArgs(i256, u512, 0); - try testArgs(i256, u512, 1 << 0); - try testArgs(i256, u512, 1 << 511); - try testArgs(i512, u512, 0); - try testArgs(i512, u512, 1 << 0); - try testArgs(i512, u512, 1 << 511); - try testArgs(i1024, u512, 0); - try testArgs(i1024, u512, 1 << 0); - try testArgs(i1024, u512, 1 << 511); - - try testArgs(u8, i513, -1 << 512); - try testArgs(u8, i513, -1); - try testArgs(u8, i513, 0); - try testArgs(u16, i513, -1 << 512); - try testArgs(u16, i513, -1); - try testArgs(u16, i513, 0); - try testArgs(u32, i513, -1 << 512); - try testArgs(u32, i513, -1); - try testArgs(u32, i513, 0); - try testArgs(u64, i513, -1 << 512); - try testArgs(u64, i513, -1); - try testArgs(u64, i513, 0); - try testArgs(u128, i513, -1 << 512); - try testArgs(u128, i513, -1); - try testArgs(u128, i513, 0); - try testArgs(u256, i513, -1 << 512); - try testArgs(u256, i513, -1); - try testArgs(u256, i513, 0); - try testArgs(u512, i513, -1 << 512); - try testArgs(u512, i513, -1); - try testArgs(u512, i513, 0); - try testArgs(u1024, i513, -1 << 512); - try testArgs(u1024, i513, -1); - try testArgs(u1024, i513, 0); - try testArgs(i8, u513, 0); - try testArgs(i8, u513, 1 << 0); - try testArgs(i8, u513, 1 << 512); - try testArgs(i16, u513, 0); - try testArgs(i16, u513, 1 << 0); - try testArgs(i16, u513, 1 << 512); - try testArgs(i32, u513, 0); - try testArgs(i32, u513, 1 << 0); - try testArgs(i32, u513, 1 << 512); - try testArgs(i64, u513, 0); - try testArgs(i64, u513, 1 << 0); - try testArgs(i64, u513, 1 << 512); - try testArgs(i128, u513, 0); - try testArgs(i128, u513, 1 << 0); - try testArgs(i128, u513, 1 << 512); - try testArgs(i256, u513, 0); - try testArgs(i256, u513, 1 << 0); - try testArgs(i256, u513, 1 << 512); - try testArgs(i512, u513, 0); - try testArgs(i512, u513, 1 << 0); - try testArgs(i512, u513, 1 << 512); - try testArgs(i1024, u513, 0); - try testArgs(i1024, u513, 1 << 0); - try testArgs(i1024, u513, 1 << 512); - - try testArgs(u8, i1023, -1 << 1022); - try testArgs(u8, i1023, -1); - try testArgs(u8, i1023, 0); - try testArgs(u16, i1023, -1 << 1022); - try testArgs(u16, i1023, -1); - try testArgs(u16, i1023, 0); - try testArgs(u32, i1023, -1 << 1022); - try testArgs(u32, i1023, -1); - try testArgs(u32, i1023, 0); - try testArgs(u64, i1023, -1 << 1022); - try testArgs(u64, i1023, -1); - try testArgs(u64, i1023, 0); - try testArgs(u128, i1023, -1 << 1022); - try testArgs(u128, i1023, -1); - try testArgs(u128, i1023, 0); - try testArgs(u256, i1023, -1 << 1022); - try testArgs(u256, i1023, -1); - try testArgs(u256, i1023, 0); - try testArgs(u512, i1023, -1 << 1022); - try testArgs(u512, i1023, -1); - try testArgs(u512, i1023, 0); - try testArgs(u1024, i1023, -1 << 1022); - try testArgs(u1024, i1023, -1); - try testArgs(u1024, i1023, 0); - try testArgs(i8, u1023, 0); - try testArgs(i8, u1023, 1 << 0); - try testArgs(i8, u1023, 1 << 1022); - try testArgs(i16, u1023, 0); - try testArgs(i16, u1023, 1 << 0); - try testArgs(i16, u1023, 1 << 1022); - try testArgs(i32, u1023, 0); - try testArgs(i32, u1023, 1 << 0); - try testArgs(i32, u1023, 1 << 1022); - try testArgs(i64, u1023, 0); - try testArgs(i64, u1023, 1 << 0); - try testArgs(i64, u1023, 1 << 1022); - try testArgs(i128, u1023, 0); - try testArgs(i128, u1023, 1 << 0); - try testArgs(i128, u1023, 1 << 1022); - try testArgs(i256, u1023, 0); - try testArgs(i256, u1023, 1 << 0); - try testArgs(i256, u1023, 1 << 1022); - try testArgs(i512, u1023, 0); - try testArgs(i512, u1023, 1 << 0); - try testArgs(i512, u1023, 1 << 1022); - try testArgs(i1024, u1023, 0); - try testArgs(i1024, u1023, 1 << 0); - try testArgs(i1024, u1023, 1 << 1022); - - try testArgs(u8, i1024, -1 << 1023); - try testArgs(u8, i1024, -1); - try testArgs(u8, i1024, 0); - try testArgs(u16, i1024, -1 << 1023); - try testArgs(u16, i1024, -1); - try testArgs(u16, i1024, 0); - try testArgs(u32, i1024, -1 << 1023); - try testArgs(u32, i1024, -1); - try testArgs(u32, i1024, 0); - try testArgs(u64, i1024, -1 << 1023); - try testArgs(u64, i1024, -1); - try testArgs(u64, i1024, 0); - try testArgs(u128, i1024, -1 << 1023); - try testArgs(u128, i1024, -1); - try testArgs(u128, i1024, 0); - try testArgs(u256, i1024, -1 << 1023); - try testArgs(u256, i1024, -1); - try testArgs(u256, i1024, 0); - try testArgs(u512, i1024, -1 << 1023); - try testArgs(u512, i1024, -1); - try testArgs(u512, i1024, 0); - try testArgs(u1024, i1024, -1 << 1023); - try testArgs(u1024, i1024, -1); - try testArgs(u1024, i1024, 0); - try testArgs(i8, u1024, 0); - try testArgs(i8, u1024, 1 << 0); - try testArgs(i8, u1024, 1 << 1023); - try testArgs(i16, u1024, 0); - try testArgs(i16, u1024, 1 << 0); - try testArgs(i16, u1024, 1 << 1023); - try testArgs(i32, u1024, 0); - try testArgs(i32, u1024, 1 << 0); - try testArgs(i32, u1024, 1 << 1023); - try testArgs(i64, u1024, 0); - try testArgs(i64, u1024, 1 << 0); - try testArgs(i64, u1024, 1 << 1023); - try testArgs(i128, u1024, 0); - try testArgs(i128, u1024, 1 << 0); - try testArgs(i128, u1024, 1 << 1023); - try testArgs(i256, u1024, 0); - try testArgs(i256, u1024, 1 << 0); - try testArgs(i256, u1024, 1 << 1023); - try testArgs(i512, u1024, 0); - try testArgs(i512, u1024, 1 << 0); - try testArgs(i512, u1024, 1 << 1023); - try testArgs(i1024, u1024, 0); - try testArgs(i1024, u1024, 1 << 0); - try testArgs(i1024, u1024, 1 << 1023); - - try testArgs(u8, i1025, -1 << 1024); - try testArgs(u8, i1025, -1); - try testArgs(u8, i1025, 0); - try testArgs(u16, i1025, -1 << 1024); - try testArgs(u16, i1025, -1); - try testArgs(u16, i1025, 0); - try testArgs(u32, i1025, -1 << 1024); - try testArgs(u32, i1025, -1); - try testArgs(u32, i1025, 0); - try testArgs(u64, i1025, -1 << 1024); - try testArgs(u64, i1025, -1); - try testArgs(u64, i1025, 0); - try testArgs(u128, i1025, -1 << 1024); - try testArgs(u128, i1025, -1); - try testArgs(u128, i1025, 0); - try testArgs(u256, i1025, -1 << 1024); - try testArgs(u256, i1025, -1); - try testArgs(u256, i1025, 0); - try testArgs(u512, i1025, -1 << 1024); - try testArgs(u512, i1025, -1); - try testArgs(u512, i1025, 0); - try testArgs(u1024, i1025, -1 << 1024); - try testArgs(u1024, i1025, -1); - try testArgs(u1024, i1025, 0); - try testArgs(i8, u1025, 0); - try testArgs(i8, u1025, 1 << 0); - try testArgs(i8, u1025, 1 << 1024); - try testArgs(i16, u1025, 0); - try testArgs(i16, u1025, 1 << 0); - try testArgs(i16, u1025, 1 << 1024); - try testArgs(i32, u1025, 0); - try testArgs(i32, u1025, 1 << 0); - try testArgs(i32, u1025, 1 << 1024); - try testArgs(i64, u1025, 0); - try testArgs(i64, u1025, 1 << 0); - try testArgs(i64, u1025, 1 << 1024); - try testArgs(i128, u1025, 0); - try testArgs(i128, u1025, 1 << 0); - try testArgs(i128, u1025, 1 << 1024); - try testArgs(i256, u1025, 0); - try testArgs(i256, u1025, 1 << 0); - try testArgs(i256, u1025, 1 << 1024); - try testArgs(i512, u1025, 0); - try testArgs(i512, u1025, 1 << 0); - try testArgs(i512, u1025, 1 << 1024); - try testArgs(i1024, u1025, 0); - try testArgs(i1024, u1025, 1 << 0); - try testArgs(i1024, u1025, 1 << 1024); - } - fn testFloats() !void { - @setEvalBranchQuota(3_100); - - try testArgs(f16, f16, -nan(f16)); - try testArgs(f16, f16, -inf(f16)); - try testArgs(f16, f16, -fmax(f16)); - try testArgs(f16, f16, -1e1); - try testArgs(f16, f16, -1e0); - try testArgs(f16, f16, -1e-1); - try testArgs(f16, f16, -fmin(f16)); - try testArgs(f16, f16, -tmin(f16)); - try testArgs(f16, f16, -0.0); - try testArgs(f16, f16, 0.0); - try testArgs(f16, f16, tmin(f16)); - try testArgs(f16, f16, fmin(f16)); - try testArgs(f16, f16, 1e-1); - try testArgs(f16, f16, 1e0); - try testArgs(f16, f16, 1e1); - try testArgs(f16, f16, fmax(f16)); - try testArgs(f16, f16, inf(f16)); - try testArgs(f16, f16, nan(f16)); - - try testArgs(f32, f16, -nan(f16)); - try testArgs(f32, f16, -inf(f16)); - try testArgs(f32, f16, -fmax(f16)); - try testArgs(f32, f16, -1e1); - try testArgs(f32, f16, -1e0); - try testArgs(f32, f16, -1e-1); - try testArgs(f32, f16, -fmin(f16)); - try testArgs(f32, f16, -tmin(f16)); - try testArgs(f32, f16, -0.0); - try testArgs(f32, f16, 0.0); - try testArgs(f32, f16, tmin(f16)); - try testArgs(f32, f16, fmin(f16)); - try testArgs(f32, f16, 1e-1); - try testArgs(f32, f16, 1e0); - try testArgs(f32, f16, 1e1); - try testArgs(f32, f16, fmax(f16)); - try testArgs(f32, f16, inf(f16)); - try testArgs(f32, f16, nan(f16)); - - try testArgs(f64, f16, -nan(f16)); - try testArgs(f64, f16, -inf(f16)); - try testArgs(f64, f16, -fmax(f16)); - try testArgs(f64, f16, -1e1); - try testArgs(f64, f16, -1e0); - try testArgs(f64, f16, -1e-1); - try testArgs(f64, f16, -fmin(f16)); - try testArgs(f64, f16, -tmin(f16)); - try testArgs(f64, f16, -0.0); - try testArgs(f64, f16, 0.0); - try testArgs(f64, f16, tmin(f16)); - try testArgs(f64, f16, fmin(f16)); - try testArgs(f64, f16, 1e-1); - try testArgs(f64, f16, 1e0); - try testArgs(f64, f16, 1e1); - try testArgs(f64, f16, fmax(f16)); - try testArgs(f64, f16, inf(f16)); - try testArgs(f64, f16, nan(f16)); - - try testArgs(f80, f16, -nan(f16)); - try testArgs(f80, f16, -inf(f16)); - try testArgs(f80, f16, -fmax(f16)); - try testArgs(f80, f16, -1e1); - try testArgs(f80, f16, -1e0); - try testArgs(f80, f16, -1e-1); - try testArgs(f80, f16, -fmin(f16)); - try testArgs(f80, f16, -tmin(f16)); - try testArgs(f80, f16, -0.0); - try testArgs(f80, f16, 0.0); - try testArgs(f80, f16, tmin(f16)); - try testArgs(f80, f16, fmin(f16)); - try testArgs(f80, f16, 1e-1); - try testArgs(f80, f16, 1e0); - try testArgs(f80, f16, 1e1); - try testArgs(f80, f16, fmax(f16)); - try testArgs(f80, f16, inf(f16)); - try testArgs(f80, f16, nan(f16)); - - try testArgs(f128, f16, -nan(f16)); - try testArgs(f128, f16, -inf(f16)); - try testArgs(f128, f16, -fmax(f16)); - try testArgs(f128, f16, -1e1); - try testArgs(f128, f16, -1e0); - try testArgs(f128, f16, -1e-1); - try testArgs(f128, f16, -fmin(f16)); - try testArgs(f128, f16, -tmin(f16)); - try testArgs(f128, f16, -0.0); - try testArgs(f128, f16, 0.0); - try testArgs(f128, f16, tmin(f16)); - try testArgs(f128, f16, fmin(f16)); - try testArgs(f128, f16, 1e-1); - try testArgs(f128, f16, 1e0); - try testArgs(f128, f16, 1e1); - try testArgs(f128, f16, fmax(f16)); - try testArgs(f128, f16, inf(f16)); - try testArgs(f128, f16, nan(f16)); - - try testArgs(f16, f32, -nan(f32)); - try testArgs(f16, f32, -inf(f32)); - try testArgs(f16, f32, -fmax(f32)); - try testArgs(f16, f32, -1e1); - try testArgs(f16, f32, -1e0); - try testArgs(f16, f32, -1e-1); - try testArgs(f16, f32, -fmin(f32)); - try testArgs(f16, f32, -tmin(f32)); - try testArgs(f16, f32, -0.0); - try testArgs(f16, f32, 0.0); - try testArgs(f16, f32, tmin(f32)); - try testArgs(f16, f32, fmin(f32)); - try testArgs(f16, f32, 1e-1); - try testArgs(f16, f32, 1e0); - try testArgs(f16, f32, 1e1); - try testArgs(f16, f32, fmax(f32)); - try testArgs(f16, f32, inf(f32)); - try testArgs(f16, f32, nan(f32)); - - try testArgs(f32, f32, -nan(f32)); - try testArgs(f32, f32, -inf(f32)); - try testArgs(f32, f32, -fmax(f32)); - try testArgs(f32, f32, -1e1); - try testArgs(f32, f32, -1e0); - try testArgs(f32, f32, -1e-1); - try testArgs(f32, f32, -fmin(f32)); - try testArgs(f32, f32, -tmin(f32)); - try testArgs(f32, f32, -0.0); - try testArgs(f32, f32, 0.0); - try testArgs(f32, f32, tmin(f32)); - try testArgs(f32, f32, fmin(f32)); - try testArgs(f32, f32, 1e-1); - try testArgs(f32, f32, 1e0); - try testArgs(f32, f32, 1e1); - try testArgs(f32, f32, fmax(f32)); - try testArgs(f32, f32, inf(f32)); - try testArgs(f32, f32, nan(f32)); - - try testArgs(f64, f32, -nan(f32)); - try testArgs(f64, f32, -inf(f32)); - try testArgs(f64, f32, -fmax(f32)); - try testArgs(f64, f32, -1e1); - try testArgs(f64, f32, -1e0); - try testArgs(f64, f32, -1e-1); - try testArgs(f64, f32, -fmin(f32)); - try testArgs(f64, f32, -tmin(f32)); - try testArgs(f64, f32, -0.0); - try testArgs(f64, f32, 0.0); - try testArgs(f64, f32, tmin(f32)); - try testArgs(f64, f32, fmin(f32)); - try testArgs(f64, f32, 1e-1); - try testArgs(f64, f32, 1e0); - try testArgs(f64, f32, 1e1); - try testArgs(f64, f32, fmax(f32)); - try testArgs(f64, f32, inf(f32)); - try testArgs(f64, f32, nan(f32)); - - try testArgs(f80, f32, -nan(f32)); - try testArgs(f80, f32, -inf(f32)); - try testArgs(f80, f32, -fmax(f32)); - try testArgs(f80, f32, -1e1); - try testArgs(f80, f32, -1e0); - try testArgs(f80, f32, -1e-1); - try testArgs(f80, f32, -fmin(f32)); - try testArgs(f80, f32, -tmin(f32)); - try testArgs(f80, f32, -0.0); - try testArgs(f80, f32, 0.0); - try testArgs(f80, f32, tmin(f32)); - try testArgs(f80, f32, fmin(f32)); - try testArgs(f80, f32, 1e-1); - try testArgs(f80, f32, 1e0); - try testArgs(f80, f32, 1e1); - try testArgs(f80, f32, fmax(f32)); - try testArgs(f80, f32, inf(f32)); - try testArgs(f80, f32, nan(f32)); - - try testArgs(f128, f32, -nan(f32)); - try testArgs(f128, f32, -inf(f32)); - try testArgs(f128, f32, -fmax(f32)); - try testArgs(f128, f32, -1e1); - try testArgs(f128, f32, -1e0); - try testArgs(f128, f32, -1e-1); - try testArgs(f128, f32, -fmin(f32)); - try testArgs(f128, f32, -tmin(f32)); - try testArgs(f128, f32, -0.0); - try testArgs(f128, f32, 0.0); - try testArgs(f128, f32, tmin(f32)); - try testArgs(f128, f32, fmin(f32)); - try testArgs(f128, f32, 1e-1); - try testArgs(f128, f32, 1e0); - try testArgs(f128, f32, 1e1); - try testArgs(f128, f32, fmax(f32)); - try testArgs(f128, f32, inf(f32)); - try testArgs(f128, f32, nan(f32)); - - try testArgs(f16, f64, -nan(f64)); - try testArgs(f16, f64, -inf(f64)); - try testArgs(f16, f64, -fmax(f64)); - try testArgs(f16, f64, -1e1); - try testArgs(f16, f64, -1e0); - try testArgs(f16, f64, -1e-1); - try testArgs(f16, f64, -fmin(f64)); - try testArgs(f16, f64, -tmin(f64)); - try testArgs(f16, f64, -0.0); - try testArgs(f16, f64, 0.0); - try testArgs(f16, f64, tmin(f64)); - try testArgs(f16, f64, fmin(f64)); - try testArgs(f16, f64, 1e-1); - try testArgs(f16, f64, 1e0); - try testArgs(f16, f64, 1e1); - try testArgs(f16, f64, fmax(f64)); - try testArgs(f16, f64, inf(f64)); - try testArgs(f16, f64, nan(f64)); - - try testArgs(f32, f64, -nan(f64)); - try testArgs(f32, f64, -inf(f64)); - try testArgs(f32, f64, -fmax(f64)); - try testArgs(f32, f64, -1e1); - try testArgs(f32, f64, -1e0); - try testArgs(f32, f64, -1e-1); - try testArgs(f32, f64, -fmin(f64)); - try testArgs(f32, f64, -tmin(f64)); - try testArgs(f32, f64, -0.0); - try testArgs(f32, f64, 0.0); - try testArgs(f32, f64, tmin(f64)); - try testArgs(f32, f64, fmin(f64)); - try testArgs(f32, f64, 1e-1); - try testArgs(f32, f64, 1e0); - try testArgs(f32, f64, 1e1); - try testArgs(f32, f64, fmax(f64)); - try testArgs(f32, f64, inf(f64)); - try testArgs(f32, f64, nan(f64)); - - try testArgs(f64, f64, -nan(f64)); - try testArgs(f64, f64, -inf(f64)); - try testArgs(f64, f64, -fmax(f64)); - try testArgs(f64, f64, -1e1); - try testArgs(f64, f64, -1e0); - try testArgs(f64, f64, -1e-1); - try testArgs(f64, f64, -fmin(f64)); - try testArgs(f64, f64, -tmin(f64)); - try testArgs(f64, f64, -0.0); - try testArgs(f64, f64, 0.0); - try testArgs(f64, f64, tmin(f64)); - try testArgs(f64, f64, fmin(f64)); - try testArgs(f64, f64, 1e-1); - try testArgs(f64, f64, 1e0); - try testArgs(f64, f64, 1e1); - try testArgs(f64, f64, fmax(f64)); - try testArgs(f64, f64, inf(f64)); - try testArgs(f64, f64, nan(f64)); - - try testArgs(f80, f64, -nan(f64)); - try testArgs(f80, f64, -inf(f64)); - try testArgs(f80, f64, -fmax(f64)); - try testArgs(f80, f64, -1e1); - try testArgs(f80, f64, -1e0); - try testArgs(f80, f64, -1e-1); - try testArgs(f80, f64, -fmin(f64)); - try testArgs(f80, f64, -tmin(f64)); - try testArgs(f80, f64, -0.0); - try testArgs(f80, f64, 0.0); - try testArgs(f80, f64, tmin(f64)); - try testArgs(f80, f64, fmin(f64)); - try testArgs(f80, f64, 1e-1); - try testArgs(f80, f64, 1e0); - try testArgs(f80, f64, 1e1); - try testArgs(f80, f64, fmax(f64)); - try testArgs(f80, f64, inf(f64)); - try testArgs(f80, f64, nan(f64)); - - try testArgs(f128, f64, -nan(f64)); - try testArgs(f128, f64, -inf(f64)); - try testArgs(f128, f64, -fmax(f64)); - try testArgs(f128, f64, -1e1); - try testArgs(f128, f64, -1e0); - try testArgs(f128, f64, -1e-1); - try testArgs(f128, f64, -fmin(f64)); - try testArgs(f128, f64, -tmin(f64)); - try testArgs(f128, f64, -0.0); - try testArgs(f128, f64, 0.0); - try testArgs(f128, f64, tmin(f64)); - try testArgs(f128, f64, fmin(f64)); - try testArgs(f128, f64, 1e-1); - try testArgs(f128, f64, 1e0); - try testArgs(f128, f64, 1e1); - try testArgs(f128, f64, fmax(f64)); - try testArgs(f128, f64, inf(f64)); - try testArgs(f128, f64, nan(f64)); - - try testArgs(f16, f80, -nan(f80)); - try testArgs(f16, f80, -inf(f80)); - try testArgs(f16, f80, -fmax(f80)); - try testArgs(f16, f80, -1e1); - try testArgs(f16, f80, -1e0); - try testArgs(f16, f80, -1e-1); - try testArgs(f16, f80, -fmin(f80)); - try testArgs(f16, f80, -tmin(f80)); - try testArgs(f16, f80, -0.0); - try testArgs(f16, f80, 0.0); - try testArgs(f16, f80, tmin(f80)); - try testArgs(f16, f80, fmin(f80)); - try testArgs(f16, f80, 1e-1); - try testArgs(f16, f80, 1e0); - try testArgs(f16, f80, 1e1); - try testArgs(f16, f80, fmax(f80)); - try testArgs(f16, f80, inf(f80)); - try testArgs(f16, f80, nan(f80)); - - try testArgs(f32, f80, -nan(f80)); - try testArgs(f32, f80, -inf(f80)); - try testArgs(f32, f80, -fmax(f80)); - try testArgs(f32, f80, -1e1); - try testArgs(f32, f80, -1e0); - try testArgs(f32, f80, -1e-1); - try testArgs(f32, f80, -fmin(f80)); - try testArgs(f32, f80, -tmin(f80)); - try testArgs(f32, f80, -0.0); - try testArgs(f32, f80, 0.0); - try testArgs(f32, f80, tmin(f80)); - try testArgs(f32, f80, fmin(f80)); - try testArgs(f32, f80, 1e-1); - try testArgs(f32, f80, 1e0); - try testArgs(f32, f80, 1e1); - try testArgs(f32, f80, fmax(f80)); - try testArgs(f32, f80, inf(f80)); - try testArgs(f32, f80, nan(f80)); - - try testArgs(f64, f80, -nan(f80)); - try testArgs(f64, f80, -inf(f80)); - try testArgs(f64, f80, -fmax(f80)); - try testArgs(f64, f80, -1e1); - try testArgs(f64, f80, -1e0); - try testArgs(f64, f80, -1e-1); - try testArgs(f64, f80, -fmin(f80)); - try testArgs(f64, f80, -tmin(f80)); - try testArgs(f64, f80, -0.0); - try testArgs(f64, f80, 0.0); - try testArgs(f64, f80, tmin(f80)); - try testArgs(f64, f80, fmin(f80)); - try testArgs(f64, f80, 1e-1); - try testArgs(f64, f80, 1e0); - try testArgs(f64, f80, 1e1); - try testArgs(f64, f80, fmax(f80)); - try testArgs(f64, f80, inf(f80)); - try testArgs(f64, f80, nan(f80)); - - try testArgs(f80, f80, -nan(f80)); - try testArgs(f80, f80, -inf(f80)); - try testArgs(f80, f80, -fmax(f80)); - try testArgs(f80, f80, -1e1); - try testArgs(f80, f80, -1e0); - try testArgs(f80, f80, -1e-1); - try testArgs(f80, f80, -fmin(f80)); - try testArgs(f80, f80, -tmin(f80)); - try testArgs(f80, f80, -0.0); - try testArgs(f80, f80, 0.0); - try testArgs(f80, f80, tmin(f80)); - try testArgs(f80, f80, fmin(f80)); - try testArgs(f80, f80, 1e-1); - try testArgs(f80, f80, 1e0); - try testArgs(f80, f80, 1e1); - try testArgs(f80, f80, fmax(f80)); - try testArgs(f80, f80, inf(f80)); - try testArgs(f80, f80, nan(f80)); - - try testArgs(f128, f80, -nan(f80)); - try testArgs(f128, f80, -inf(f80)); - try testArgs(f128, f80, -fmax(f80)); - try testArgs(f128, f80, -1e1); - try testArgs(f128, f80, -1e0); - try testArgs(f128, f80, -1e-1); - try testArgs(f128, f80, -fmin(f80)); - try testArgs(f128, f80, -tmin(f80)); - try testArgs(f128, f80, -0.0); - try testArgs(f128, f80, 0.0); - try testArgs(f128, f80, tmin(f80)); - try testArgs(f128, f80, fmin(f80)); - try testArgs(f128, f80, 1e-1); - try testArgs(f128, f80, 1e0); - try testArgs(f128, f80, 1e1); - try testArgs(f128, f80, fmax(f80)); - try testArgs(f128, f80, inf(f80)); - try testArgs(f128, f80, nan(f80)); - - try testArgs(f16, f128, -nan(f128)); - try testArgs(f16, f128, -inf(f128)); - try testArgs(f16, f128, -fmax(f128)); - try testArgs(f16, f128, -1e1); - try testArgs(f16, f128, -1e0); - try testArgs(f16, f128, -1e-1); - try testArgs(f16, f128, -fmin(f128)); - try testArgs(f16, f128, -tmin(f128)); - try testArgs(f16, f128, -0.0); - try testArgs(f16, f128, 0.0); - try testArgs(f16, f128, tmin(f128)); - try testArgs(f16, f128, fmin(f128)); - try testArgs(f16, f128, 1e-1); - try testArgs(f16, f128, 1e0); - try testArgs(f16, f128, 1e1); - try testArgs(f16, f128, fmax(f128)); - try testArgs(f16, f128, inf(f128)); - try testArgs(f16, f128, nan(f128)); - - try testArgs(f32, f128, -nan(f128)); - try testArgs(f32, f128, -inf(f128)); - try testArgs(f32, f128, -fmax(f128)); - try testArgs(f32, f128, -1e1); - try testArgs(f32, f128, -1e0); - try testArgs(f32, f128, -1e-1); - try testArgs(f32, f128, -fmin(f128)); - try testArgs(f32, f128, -tmin(f128)); - try testArgs(f32, f128, -0.0); - try testArgs(f32, f128, 0.0); - try testArgs(f32, f128, tmin(f128)); - try testArgs(f32, f128, fmin(f128)); - try testArgs(f32, f128, 1e-1); - try testArgs(f32, f128, 1e0); - try testArgs(f32, f128, 1e1); - try testArgs(f32, f128, fmax(f128)); - try testArgs(f32, f128, inf(f128)); - try testArgs(f32, f128, nan(f128)); - - try testArgs(f64, f128, -nan(f128)); - try testArgs(f64, f128, -inf(f128)); - try testArgs(f64, f128, -fmax(f128)); - try testArgs(f64, f128, -1e1); - try testArgs(f64, f128, -1e0); - try testArgs(f64, f128, -1e-1); - try testArgs(f64, f128, -fmin(f128)); - try testArgs(f64, f128, -tmin(f128)); - try testArgs(f64, f128, -0.0); - try testArgs(f64, f128, 0.0); - try testArgs(f64, f128, tmin(f128)); - try testArgs(f64, f128, fmin(f128)); - try testArgs(f64, f128, 1e-1); - try testArgs(f64, f128, 1e0); - try testArgs(f64, f128, 1e1); - try testArgs(f64, f128, fmax(f128)); - try testArgs(f64, f128, inf(f128)); - try testArgs(f64, f128, nan(f128)); - - try testArgs(f80, f128, -nan(f128)); - try testArgs(f80, f128, -inf(f128)); - try testArgs(f80, f128, -fmax(f128)); - try testArgs(f80, f128, -1e1); - try testArgs(f80, f128, -1e0); - try testArgs(f80, f128, -1e-1); - try testArgs(f80, f128, -fmin(f128)); - try testArgs(f80, f128, -tmin(f128)); - try testArgs(f80, f128, -0.0); - try testArgs(f80, f128, 0.0); - try testArgs(f80, f128, tmin(f128)); - try testArgs(f80, f128, fmin(f128)); - try testArgs(f80, f128, 1e-1); - try testArgs(f80, f128, 1e0); - try testArgs(f80, f128, 1e1); - try testArgs(f80, f128, fmax(f128)); - try testArgs(f80, f128, inf(f128)); - try testArgs(f80, f128, nan(f128)); - - try testArgs(f128, f128, -nan(f128)); - try testArgs(f128, f128, -inf(f128)); - try testArgs(f128, f128, -fmax(f128)); - try testArgs(f128, f128, -1e1); - try testArgs(f128, f128, -1e0); - try testArgs(f128, f128, -1e-1); - try testArgs(f128, f128, -fmin(f128)); - try testArgs(f128, f128, -tmin(f128)); - try testArgs(f128, f128, -0.0); - try testArgs(f128, f128, 0.0); - try testArgs(f128, f128, tmin(f128)); - try testArgs(f128, f128, fmin(f128)); - try testArgs(f128, f128, 1e-1); - try testArgs(f128, f128, 1e0); - try testArgs(f128, f128, 1e1); - try testArgs(f128, f128, fmax(f128)); - try testArgs(f128, f128, inf(f128)); - try testArgs(f128, f128, nan(f128)); - } - fn testSameSignednessIntVectors() !void { - try testArgs(@Vector(1, i7), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i8), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i9), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i15), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i16), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i17), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i31), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i32), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i33), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i63), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i64), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i65), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i127), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i128), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i129), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i255), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i256), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i257), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i511), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i512), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i513), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i1023), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i1024), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i1025), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u7), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u8), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u9), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u15), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u16), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u17), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u31), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u32), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u33), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u63), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u64), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u65), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u127), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u128), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u129), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u255), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u256), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u257), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u511), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u512), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u513), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u1023), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u1024), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, u1025), @Vector(1, u1), .{1}); - - try testArgs(@Vector(2, i7), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i8), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i9), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i15), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i16), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i17), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i31), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i32), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i33), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i63), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i64), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i65), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i127), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i128), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i129), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i255), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i256), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i257), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i511), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i512), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i513), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i1023), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i1024), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i1025), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u7), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u8), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u9), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u15), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u16), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u17), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u31), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u32), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u33), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u63), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u64), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u65), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u127), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u128), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u129), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u255), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u256), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u257), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u511), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u512), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u513), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u1023), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u1024), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, u1025), @Vector(2, u1), .{ 0, 1 }); - - try testArgs(@Vector(3, i7), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u9), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u15), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u17), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u31), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u33), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u63), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u65), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u127), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u129), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u255), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u257), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u511), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u513), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u1023), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, u1025), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - - try testArgs(@Vector(3, i7), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u9), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u15), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u17), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u31), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u33), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u63), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u65), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u127), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u129), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u255), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u257), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u511), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u513), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u1023), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, u1025), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - - try testArgs(@Vector(3, i7), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u9), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u15), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u17), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u31), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u33), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u63), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u65), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u127), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u129), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u255), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u257), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u511), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u513), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u1023), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, u1025), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - - try testArgs(@Vector(3, i7), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u9), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u15), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u17), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u31), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u33), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u63), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u65), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u127), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u129), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u255), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u257), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u511), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u513), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u1023), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, u1025), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - - try testArgs(@Vector(3, i7), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u9), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u15), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u17), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u31), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u33), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u63), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u65), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u127), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u129), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u255), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u257), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u511), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u513), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u1023), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, u1025), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - - try testArgs(@Vector(3, i7), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u9), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u15), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u17), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u31), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u33), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u63), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u65), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u127), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u129), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u255), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u257), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u511), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u513), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u1023), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, u1025), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - - try testArgs(@Vector(3, i7), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u9), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u15), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u17), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u31), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u33), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u63), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u65), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u127), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u129), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u255), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u257), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u511), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u513), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u1023), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, u1025), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - - try testArgs(@Vector(3, i7), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u9), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u15), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u17), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u31), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u33), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u63), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u65), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u127), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u129), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u255), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u257), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u511), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u513), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u1023), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, u1025), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - - try testArgs(@Vector(3, i7), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u9), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u15), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u17), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u31), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u33), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u63), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u65), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u127), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u129), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u255), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u257), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u511), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u513), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u1023), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, u1025), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - - try testArgs(@Vector(3, i7), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u9), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u15), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u17), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u31), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u33), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u63), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u65), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u127), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u129), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u255), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u257), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u511), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u513), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u1023), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, u1025), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - - try testArgs(@Vector(3, i7), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u9), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u15), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u17), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u31), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u33), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u63), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u65), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u127), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u129), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u255), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u257), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u511), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u513), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u1023), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, u1025), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - - try testArgs(@Vector(3, i7), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u9), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u15), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u17), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u31), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u33), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u63), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u65), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u127), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u129), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u255), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u257), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u511), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u513), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u1023), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, u1025), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - - try testArgs(@Vector(3, i7), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u9), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u15), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u17), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u31), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u33), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u63), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u65), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u127), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u129), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u255), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u257), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u511), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u513), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u1023), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, u1025), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - - try testArgs(@Vector(3, i7), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u9), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u15), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u17), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u31), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u33), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u63), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u65), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u127), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u129), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u255), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u257), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u511), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u513), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u1023), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, u1025), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - - try testArgs(@Vector(3, i7), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u9), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u15), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u17), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u31), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u33), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u63), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u65), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u127), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u129), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u255), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u257), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u511), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u513), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u1023), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, u1025), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - - try testArgs(@Vector(3, i7), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u9), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u15), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u17), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u31), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u33), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u63), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u65), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u127), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u129), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u255), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u257), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u511), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u513), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u1023), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, u1025), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - - try testArgs(@Vector(3, i7), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u9), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u15), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u17), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u31), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u33), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u63), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u65), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u127), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u129), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u255), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u257), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u511), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u513), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u1023), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, u1025), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - - try testArgs(@Vector(3, i7), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u9), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u15), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u17), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u31), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u33), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u63), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u65), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u127), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u129), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u255), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u257), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u511), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u513), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u1023), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, u1025), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - - try testArgs(@Vector(3, i7), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u9), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u15), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u17), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u31), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u33), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u63), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u65), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u127), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u129), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u255), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u257), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u511), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u513), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u1023), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, u1025), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - - try testArgs(@Vector(3, i7), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u9), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u15), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u17), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u31), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u33), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u63), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u65), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u127), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u129), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u255), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u257), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u511), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u513), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u1023), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, u1025), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - - try testArgs(@Vector(3, i7), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u9), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u15), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u17), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u31), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u33), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u63), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u65), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u127), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u129), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u255), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u257), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u511), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u513), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u1023), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, u1025), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - - try testArgs(@Vector(3, i7), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u9), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u15), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u17), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u31), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u33), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u63), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u65), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u127), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u129), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u255), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u257), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u511), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u513), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u1023), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, u1025), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - - try testArgs(@Vector(3, i7), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u9), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u15), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u17), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u31), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u33), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u63), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u65), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u127), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u129), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u255), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u257), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u511), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u513), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u1023), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, u1025), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - - try testArgs(@Vector(3, i7), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u9), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u15), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u17), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u31), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u33), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u63), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u65), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u127), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u129), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u255), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u257), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u511), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u513), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u1023), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, u1025), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - - try testArgs(@Vector(3, i7), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u9), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u15), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u17), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u31), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u33), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u63), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u65), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u127), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u129), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u255), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u257), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u511), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u513), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u1023), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, u1025), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - - try testArgs(@Vector(3, i7), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u9), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u15), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u17), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u31), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u33), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u63), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u65), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u127), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u129), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u255), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u257), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u511), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u513), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u1023), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, u1025), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - - try testArgs(@Vector(3, i7), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u9), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u15), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u17), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u31), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u33), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u63), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u65), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u127), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u129), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u255), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u257), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u511), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u513), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u1023), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, u1025), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - - try testArgs(@Vector(3, i7), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u9), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u15), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u17), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u31), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u33), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u63), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u65), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u127), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u129), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u255), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u257), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u511), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u513), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u1023), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, u1025), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - - try testArgs(@Vector(3, i7), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u9), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u15), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u17), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u31), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u33), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u63), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u65), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u127), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u129), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u255), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u257), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u511), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u513), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u1023), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, u1025), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - - try testArgs(@Vector(3, i7), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u9), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u15), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u17), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u31), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u33), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u63), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u65), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u127), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u129), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u255), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u257), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u511), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u513), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u1023), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, u1025), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - - try testArgs(@Vector(3, i7), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u9), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u15), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u17), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u31), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u33), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u63), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u65), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u127), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u129), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u255), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u257), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u511), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u513), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u1023), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, u1025), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - - try testArgs(@Vector(3, i7), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u9), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u15), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u17), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u31), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u33), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u63), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u65), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u127), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u129), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u255), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u257), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u511), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u513), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u1023), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, u1025), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - - try testArgs(@Vector(3, i7), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u9), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u15), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u17), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u31), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u33), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u63), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u65), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u127), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u129), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u255), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u257), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u511), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u513), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u1023), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, u1025), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - - try testArgs(@Vector(3, i7), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u9), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u15), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u17), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u31), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u33), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u63), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u65), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u127), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u129), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u255), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u257), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u511), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u513), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u1023), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, u1025), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - - try testArgs(@Vector(3, i7), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u9), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u15), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u17), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u31), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u33), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u63), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u65), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u127), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u129), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u255), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u257), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u511), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u513), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u1023), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, u1025), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - - try testArgs(@Vector(3, i7), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u9), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u15), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u17), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u31), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u33), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u63), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u65), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u127), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u129), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u255), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u257), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u511), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u513), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u1023), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, u1025), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - - try testArgs(@Vector(3, i7), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u9), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u15), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u17), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u31), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u33), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u63), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u65), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u127), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u129), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u255), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u257), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u511), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u513), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u1023), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, u1025), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - - try testArgs(@Vector(3, i7), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u9), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u15), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u17), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u31), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u33), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u63), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u65), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u127), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u129), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u255), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u257), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u511), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u513), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u1023), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, u1025), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - - try testArgs(@Vector(3, i7), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u9), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u15), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u17), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u31), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u33), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u63), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u65), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u127), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u129), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u255), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u257), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u511), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u513), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u1023), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, u1025), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - - try testArgs(@Vector(3, i7), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i9), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i15), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i17), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i31), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i33), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i63), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i65), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i127), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i129), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i255), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i257), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i511), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i513), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i1023), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i1025), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u7), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u9), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u15), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u17), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u31), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u33), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u63), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u65), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u127), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u129), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u255), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u257), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u511), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u513), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u1023), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, u1025), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - } - fn testIntVectors() !void { - try testSameSignednessIntVectors(); - - try testArgs(@Vector(1, u8), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u16), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u32), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u64), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u128), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u256), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u512), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, u1024), @Vector(1, i1), .{-1}); - try testArgs(@Vector(1, i8), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i16), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i32), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i64), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i128), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i256), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i512), @Vector(1, u1), .{1}); - try testArgs(@Vector(1, i1024), @Vector(1, u1), .{1}); - - try testArgs(@Vector(2, u8), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u16), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u32), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u64), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u128), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u256), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u512), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, u1024), @Vector(2, i1), .{ -1, 0 }); - try testArgs(@Vector(2, i8), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i16), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i32), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i64), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i128), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i256), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i512), @Vector(2, u1), .{ 0, 1 }); - try testArgs(@Vector(2, i1024), @Vector(2, u1), .{ 0, 1 }); - - try testArgs(@Vector(3, u8), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i2), .{ -1 << 1, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i16), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i32), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i64), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i128), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i256), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i512), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - try testArgs(@Vector(3, i1024), @Vector(3, u2), .{ 0, 1, 1 << 1 }); - - try testArgs(@Vector(3, u8), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i3), .{ -1 << 2, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i16), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i32), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i64), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i128), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i256), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i512), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - try testArgs(@Vector(3, i1024), @Vector(3, u3), .{ 0, 1, 1 << 2 }); - - try testArgs(@Vector(3, u8), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i4), .{ -1 << 3, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i16), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i32), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i64), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i128), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i256), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i512), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - try testArgs(@Vector(3, i1024), @Vector(3, u4), .{ 0, 1, 1 << 3 }); - - try testArgs(@Vector(3, u8), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i5), .{ -1 << 4, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i16), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i32), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i64), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i128), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i256), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i512), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - try testArgs(@Vector(3, i1024), @Vector(3, u5), .{ 0, 1, 1 << 4 }); - - try testArgs(@Vector(3, u8), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i7), .{ -1 << 6, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i16), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i32), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i64), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i128), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i256), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i512), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - try testArgs(@Vector(3, i1024), @Vector(3, u7), .{ 0, 1, 1 << 6 }); - - try testArgs(@Vector(3, u8), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i8), .{ -1 << 7, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i16), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i32), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i64), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i128), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i256), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i512), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - try testArgs(@Vector(3, i1024), @Vector(3, u8), .{ 0, 1, 1 << 7 }); - - try testArgs(@Vector(3, u8), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i9), .{ -1 << 8, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i16), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i32), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i64), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i128), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i256), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i512), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - try testArgs(@Vector(3, i1024), @Vector(3, u9), .{ 0, 1, 1 << 8 }); - - try testArgs(@Vector(3, u8), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i15), .{ -1 << 14, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i16), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i32), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i64), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i128), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i256), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i512), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - try testArgs(@Vector(3, i1024), @Vector(3, u15), .{ 0, 1, 1 << 14 }); - - try testArgs(@Vector(3, u8), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i16), .{ -1 << 15, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i16), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i32), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i64), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i128), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i256), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i512), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - try testArgs(@Vector(3, i1024), @Vector(3, u16), .{ 0, 1, 1 << 15 }); - - try testArgs(@Vector(3, u8), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i17), .{ -1 << 16, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i16), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i32), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i64), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i128), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i256), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i512), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - try testArgs(@Vector(3, i1024), @Vector(3, u17), .{ 0, 1, 1 << 16 }); - - try testArgs(@Vector(3, u8), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i31), .{ -1 << 30, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i16), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i32), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i64), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i128), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i256), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i512), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - try testArgs(@Vector(3, i1024), @Vector(3, u31), .{ 0, 1, 1 << 30 }); - - try testArgs(@Vector(3, u8), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i32), .{ -1 << 31, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i16), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i32), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i64), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i128), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i256), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i512), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - try testArgs(@Vector(3, i1024), @Vector(3, u32), .{ 0, 1, 1 << 31 }); - - try testArgs(@Vector(3, u8), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i33), .{ -1 << 32, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i16), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i32), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i64), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i128), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i256), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i512), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - try testArgs(@Vector(3, i1024), @Vector(3, u33), .{ 0, 1, 1 << 32 }); - - try testArgs(@Vector(3, u8), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i63), .{ -1 << 62, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i16), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i32), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i64), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i128), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i256), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i512), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - try testArgs(@Vector(3, i1024), @Vector(3, u63), .{ 0, 1, 1 << 62 }); - - try testArgs(@Vector(3, u8), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i64), .{ -1 << 63, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i16), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i32), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i64), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i128), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i256), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i512), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - try testArgs(@Vector(3, i1024), @Vector(3, u64), .{ 0, 1, 1 << 63 }); - - try testArgs(@Vector(3, u8), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i65), .{ -1 << 64, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i16), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i32), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i64), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i128), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i256), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i512), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - try testArgs(@Vector(3, i1024), @Vector(3, u65), .{ 0, 1, 1 << 64 }); - - try testArgs(@Vector(3, u8), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i95), .{ -1 << 94, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i16), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i32), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i64), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i128), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i256), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i512), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - try testArgs(@Vector(3, i1024), @Vector(3, u95), .{ 0, 1, 1 << 94 }); - - try testArgs(@Vector(3, u8), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i96), .{ -1 << 95, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i16), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i32), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i64), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i128), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i256), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i512), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - try testArgs(@Vector(3, i1024), @Vector(3, u96), .{ 0, 1, 1 << 95 }); - - try testArgs(@Vector(3, u8), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i97), .{ -1 << 96, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i16), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i32), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i64), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i128), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i256), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i512), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - try testArgs(@Vector(3, i1024), @Vector(3, u97), .{ 0, 1, 1 << 96 }); - - try testArgs(@Vector(3, u8), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i127), .{ -1 << 126, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i16), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i32), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i64), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i128), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i256), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i512), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - try testArgs(@Vector(3, i1024), @Vector(3, u127), .{ 0, 1, 1 << 126 }); - - try testArgs(@Vector(3, u8), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i128), .{ -1 << 127, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i16), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i32), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i64), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i128), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i256), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i512), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - try testArgs(@Vector(3, i1024), @Vector(3, u128), .{ 0, 1, 1 << 127 }); - - try testArgs(@Vector(3, u8), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i129), .{ -1 << 128, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i16), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i32), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i64), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i128), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i256), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i512), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - try testArgs(@Vector(3, i1024), @Vector(3, u129), .{ 0, 1, 1 << 128 }); - - try testArgs(@Vector(3, u8), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i159), .{ -1 << 158, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i16), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i32), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i64), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i128), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i256), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i512), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - try testArgs(@Vector(3, i1024), @Vector(3, u159), .{ 0, 1, 1 << 158 }); - - try testArgs(@Vector(3, u8), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i160), .{ -1 << 159, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i16), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i32), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i64), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i128), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i256), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i512), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - try testArgs(@Vector(3, i1024), @Vector(3, u160), .{ 0, 1, 1 << 159 }); - - try testArgs(@Vector(3, u8), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i161), .{ -1 << 160, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i16), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i32), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i64), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i128), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i256), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i512), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - try testArgs(@Vector(3, i1024), @Vector(3, u161), .{ 0, 1, 1 << 160 }); - - try testArgs(@Vector(3, u8), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i191), .{ -1 << 190, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i16), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i32), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i64), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i128), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i256), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i512), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - try testArgs(@Vector(3, i1024), @Vector(3, u191), .{ 0, 1, 1 << 190 }); - - try testArgs(@Vector(3, u8), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i192), .{ -1 << 191, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i16), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i32), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i64), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i128), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i256), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i512), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - try testArgs(@Vector(3, i1024), @Vector(3, u192), .{ 0, 1, 1 << 191 }); - - try testArgs(@Vector(3, u8), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i193), .{ -1 << 192, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i16), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i32), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i64), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i128), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i256), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i512), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - try testArgs(@Vector(3, i1024), @Vector(3, u193), .{ 0, 1, 1 << 192 }); - - try testArgs(@Vector(3, u8), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i223), .{ -1 << 222, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i16), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i32), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i64), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i128), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i256), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i512), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - try testArgs(@Vector(3, i1024), @Vector(3, u223), .{ 0, 1, 1 << 222 }); - - try testArgs(@Vector(3, u8), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i224), .{ -1 << 223, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i16), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i32), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i64), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i128), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i256), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i512), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - try testArgs(@Vector(3, i1024), @Vector(3, u224), .{ 0, 1, 1 << 223 }); - - try testArgs(@Vector(3, u8), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i225), .{ -1 << 224, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i16), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i32), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i64), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i128), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i256), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i512), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - try testArgs(@Vector(3, i1024), @Vector(3, u225), .{ 0, 1, 1 << 224 }); - - try testArgs(@Vector(3, u8), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i255), .{ -1 << 254, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i16), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i32), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i64), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i128), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i256), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i512), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - try testArgs(@Vector(3, i1024), @Vector(3, u255), .{ 0, 1, 1 << 254 }); - - try testArgs(@Vector(3, u8), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i256), .{ -1 << 255, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i16), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i32), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i64), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i128), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i256), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i512), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - try testArgs(@Vector(3, i1024), @Vector(3, u256), .{ 0, 1, 1 << 255 }); - - try testArgs(@Vector(3, u8), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i257), .{ -1 << 256, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i16), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i32), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i64), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i128), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i256), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i512), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - try testArgs(@Vector(3, i1024), @Vector(3, u257), .{ 0, 1, 1 << 256 }); - - try testArgs(@Vector(3, u8), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i511), .{ -1 << 510, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i16), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i32), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i64), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i128), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i256), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i512), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - try testArgs(@Vector(3, i1024), @Vector(3, u511), .{ 0, 1, 1 << 510 }); - - try testArgs(@Vector(3, u8), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i512), .{ -1 << 511, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i16), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i32), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i64), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i128), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i256), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i512), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - try testArgs(@Vector(3, i1024), @Vector(3, u512), .{ 0, 1, 1 << 511 }); - - try testArgs(@Vector(3, u8), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i513), .{ -1 << 512, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i16), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i32), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i64), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i128), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i256), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i512), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - try testArgs(@Vector(3, i1024), @Vector(3, u513), .{ 0, 1, 1 << 512 }); - - try testArgs(@Vector(3, u8), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i1023), .{ -1 << 1022, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i16), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i32), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i64), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i128), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i256), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i512), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - try testArgs(@Vector(3, i1024), @Vector(3, u1023), .{ 0, 1, 1 << 1022 }); - - try testArgs(@Vector(3, u8), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i1024), .{ -1 << 1023, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i16), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i32), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i64), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i128), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i256), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i512), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - try testArgs(@Vector(3, i1024), @Vector(3, u1024), .{ 0, 1, 1 << 1023 }); - - try testArgs(@Vector(3, u8), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u16), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u32), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u64), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u128), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u256), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u512), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, u1024), @Vector(3, i1025), .{ -1 << 1024, -1, 0 }); - try testArgs(@Vector(3, i8), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i16), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i32), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i64), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i128), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i256), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i512), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - try testArgs(@Vector(3, i1024), @Vector(3, u1025), .{ 0, 1, 1 << 1024 }); - } - fn testFloatVectors() !void { - @setEvalBranchQuota(6_700); - - try testArgs(@Vector(1, f16), @Vector(1, f16), .{ - 1e0, - }); - try testArgs(@Vector(2, f16), @Vector(2, f16), .{ - -inf(f16), -1e-2, - }); - try testArgs(@Vector(4, f16), @Vector(4, f16), .{ - -1e2, 1e-1, fmax(f16), 1e-2, - }); - try testArgs(@Vector(8, f16), @Vector(8, f16), .{ - -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f16), @Vector(16, f16), .{ - -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, - }); - try testArgs(@Vector(32, f16), @Vector(32, f16), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f32), @Vector(1, f16), .{ - 1e0, - }); - try testArgs(@Vector(2, f32), @Vector(2, f16), .{ - -inf(f16), -1e-2, - }); - try testArgs(@Vector(4, f32), @Vector(4, f16), .{ - -1e2, 1e-1, fmax(f16), 1e-2, - }); - try testArgs(@Vector(8, f32), @Vector(8, f16), .{ - -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f32), @Vector(16, f16), .{ - -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, - }); - try testArgs(@Vector(32, f32), @Vector(32, f16), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f64), @Vector(1, f16), .{ - 1e0, - }); - try testArgs(@Vector(2, f64), @Vector(2, f16), .{ - -inf(f16), -1e-2, - }); - try testArgs(@Vector(4, f64), @Vector(4, f16), .{ - -1e2, 1e-1, fmax(f16), 1e-2, - }); - try testArgs(@Vector(8, f64), @Vector(8, f16), .{ - -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f64), @Vector(16, f16), .{ - -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, - }); - try testArgs(@Vector(32, f64), @Vector(32, f16), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f80), @Vector(1, f16), .{ - 1e0, - }); - try testArgs(@Vector(2, f80), @Vector(2, f16), .{ - -inf(f16), -1e-2, - }); - try testArgs(@Vector(4, f80), @Vector(4, f16), .{ - -1e2, 1e-1, fmax(f16), 1e-2, - }); - try testArgs(@Vector(8, f80), @Vector(8, f16), .{ - -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f80), @Vector(16, f16), .{ - -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, - }); - try testArgs(@Vector(32, f80), @Vector(32, f16), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f128), @Vector(1, f16), .{ - 1e0, - }); - try testArgs(@Vector(2, f128), @Vector(2, f16), .{ - -inf(f16), -1e-2, - }); - try testArgs(@Vector(4, f128), @Vector(4, f16), .{ - -1e2, 1e-1, fmax(f16), 1e-2, - }); - try testArgs(@Vector(8, f128), @Vector(8, f16), .{ - -1e-1, tmin(f16), -1e3, fmin(f16), nan(f16), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f128), @Vector(16, f16), .{ - -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, - }); - try testArgs(@Vector(32, f128), @Vector(32, f16), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f16), @Vector(1, f32), .{ - 1e0, - }); - try testArgs(@Vector(2, f16), @Vector(2, f32), .{ - -inf(f32), -1e-2, - }); - try testArgs(@Vector(4, f16), @Vector(4, f32), .{ - -1e2, 1e-1, fmax(f32), 1e-2, - }); - try testArgs(@Vector(8, f16), @Vector(8, f32), .{ - -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f16), @Vector(16, f32), .{ - -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, - }); - try testArgs(@Vector(32, f16), @Vector(32, f32), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f32), @Vector(1, f32), .{ - 1e0, - }); - try testArgs(@Vector(2, f32), @Vector(2, f32), .{ - -inf(f32), -1e-2, - }); - try testArgs(@Vector(4, f32), @Vector(4, f32), .{ - -1e2, 1e-1, fmax(f32), 1e-2, - }); - try testArgs(@Vector(8, f32), @Vector(8, f32), .{ - -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f32), @Vector(16, f32), .{ - -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, - }); - try testArgs(@Vector(32, f32), @Vector(32, f32), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f64), @Vector(1, f32), .{ - 1e0, - }); - try testArgs(@Vector(2, f64), @Vector(2, f32), .{ - -inf(f32), -1e-2, - }); - try testArgs(@Vector(4, f64), @Vector(4, f32), .{ - -1e2, 1e-1, fmax(f32), 1e-2, - }); - try testArgs(@Vector(8, f64), @Vector(8, f32), .{ - -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f64), @Vector(16, f32), .{ - -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, - }); - try testArgs(@Vector(32, f64), @Vector(32, f32), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f80), @Vector(1, f32), .{ - 1e0, - }); - try testArgs(@Vector(2, f80), @Vector(2, f32), .{ - -inf(f32), -1e-2, - }); - try testArgs(@Vector(4, f80), @Vector(4, f32), .{ - -1e2, 1e-1, fmax(f32), 1e-2, - }); - try testArgs(@Vector(8, f80), @Vector(8, f32), .{ - -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f80), @Vector(16, f32), .{ - -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, - }); - try testArgs(@Vector(32, f80), @Vector(32, f32), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f128), @Vector(1, f32), .{ - 1e0, - }); - try testArgs(@Vector(2, f128), @Vector(2, f32), .{ - -inf(f32), -1e-2, - }); - try testArgs(@Vector(4, f128), @Vector(4, f32), .{ - -1e2, 1e-1, fmax(f32), 1e-2, - }); - try testArgs(@Vector(8, f128), @Vector(8, f32), .{ - -1e-1, tmin(f32), -1e3, fmin(f32), nan(f32), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f128), @Vector(16, f32), .{ - -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, - }); - try testArgs(@Vector(32, f128), @Vector(32, f32), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f16), @Vector(1, f64), .{ - 1e0, - }); - try testArgs(@Vector(2, f16), @Vector(2, f64), .{ - -inf(f64), -1e-2, - }); - try testArgs(@Vector(4, f16), @Vector(4, f64), .{ - -1e2, 1e-1, fmax(f64), 1e-2, - }); - try testArgs(@Vector(8, f16), @Vector(8, f64), .{ - -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f16), @Vector(16, f64), .{ - -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, - }); - try testArgs(@Vector(32, f16), @Vector(32, f64), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f32), @Vector(1, f64), .{ - 1e0, - }); - try testArgs(@Vector(2, f32), @Vector(2, f64), .{ - -inf(f64), -1e-2, - }); - try testArgs(@Vector(4, f32), @Vector(4, f64), .{ - -1e2, 1e-1, fmax(f64), 1e-2, - }); - try testArgs(@Vector(8, f32), @Vector(8, f64), .{ - -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f32), @Vector(16, f64), .{ - -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, - }); - try testArgs(@Vector(32, f32), @Vector(32, f64), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f64), @Vector(1, f64), .{ - 1e0, - }); - try testArgs(@Vector(2, f64), @Vector(2, f64), .{ - -inf(f64), -1e-2, - }); - try testArgs(@Vector(4, f64), @Vector(4, f64), .{ - -1e2, 1e-1, fmax(f64), 1e-2, - }); - try testArgs(@Vector(8, f64), @Vector(8, f64), .{ - -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f64), @Vector(16, f64), .{ - -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, - }); - try testArgs(@Vector(32, f64), @Vector(32, f64), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f80), @Vector(1, f64), .{ - 1e0, - }); - try testArgs(@Vector(2, f80), @Vector(2, f64), .{ - -inf(f64), -1e-2, - }); - try testArgs(@Vector(4, f80), @Vector(4, f64), .{ - -1e2, 1e-1, fmax(f64), 1e-2, - }); - try testArgs(@Vector(8, f80), @Vector(8, f64), .{ - -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f80), @Vector(16, f64), .{ - -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, - }); - try testArgs(@Vector(32, f80), @Vector(32, f64), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f128), @Vector(1, f64), .{ - 1e0, - }); - try testArgs(@Vector(2, f128), @Vector(2, f64), .{ - -inf(f64), -1e-2, - }); - try testArgs(@Vector(4, f128), @Vector(4, f64), .{ - -1e2, 1e-1, fmax(f64), 1e-2, - }); - try testArgs(@Vector(8, f128), @Vector(8, f64), .{ - -1e-1, tmin(f64), -1e3, fmin(f64), nan(f64), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f128), @Vector(16, f64), .{ - -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, - }); - try testArgs(@Vector(32, f128), @Vector(32, f64), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f16), @Vector(1, f80), .{ - 1e0, - }); - try testArgs(@Vector(2, f16), @Vector(2, f80), .{ - -inf(f80), -1e-2, - }); - try testArgs(@Vector(4, f16), @Vector(4, f80), .{ - -1e2, 1e-1, fmax(f80), 1e-2, - }); - try testArgs(@Vector(8, f16), @Vector(8, f80), .{ - -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f16), @Vector(16, f80), .{ - -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, - }); - try testArgs(@Vector(32, f16), @Vector(32, f80), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f32), @Vector(1, f80), .{ - 1e0, - }); - try testArgs(@Vector(2, f32), @Vector(2, f80), .{ - -inf(f80), -1e-2, - }); - try testArgs(@Vector(4, f32), @Vector(4, f80), .{ - -1e2, 1e-1, fmax(f80), 1e-2, - }); - try testArgs(@Vector(8, f32), @Vector(8, f80), .{ - -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f32), @Vector(16, f80), .{ - -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, - }); - try testArgs(@Vector(32, f32), @Vector(32, f80), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f64), @Vector(1, f80), .{ - 1e0, - }); - try testArgs(@Vector(2, f64), @Vector(2, f80), .{ - -inf(f80), -1e-2, - }); - try testArgs(@Vector(4, f64), @Vector(4, f80), .{ - -1e2, 1e-1, fmax(f80), 1e-2, - }); - try testArgs(@Vector(8, f64), @Vector(8, f80), .{ - -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f64), @Vector(16, f80), .{ - -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, - }); - try testArgs(@Vector(32, f64), @Vector(32, f80), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f80), @Vector(1, f80), .{ - 1e0, - }); - try testArgs(@Vector(2, f80), @Vector(2, f80), .{ - -inf(f80), -1e-2, - }); - try testArgs(@Vector(4, f80), @Vector(4, f80), .{ - -1e2, 1e-1, fmax(f80), 1e-2, - }); - try testArgs(@Vector(8, f80), @Vector(8, f80), .{ - -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f80), @Vector(16, f80), .{ - -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, - }); - try testArgs(@Vector(32, f80), @Vector(32, f80), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f128), @Vector(1, f80), .{ - 1e0, - }); - try testArgs(@Vector(2, f128), @Vector(2, f80), .{ - -inf(f80), -1e-2, - }); - try testArgs(@Vector(4, f128), @Vector(4, f80), .{ - -1e2, 1e-1, fmax(f80), 1e-2, - }); - try testArgs(@Vector(8, f128), @Vector(8, f80), .{ - -1e-1, tmin(f80), -1e3, fmin(f80), nan(f80), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f128), @Vector(16, f80), .{ - -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, - }); - try testArgs(@Vector(32, f128), @Vector(32, f80), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f16), @Vector(1, f128), .{ - 1e0, - }); - try testArgs(@Vector(2, f16), @Vector(2, f128), .{ - -inf(f128), -1e-2, - }); - try testArgs(@Vector(4, f16), @Vector(4, f128), .{ - -1e2, 1e-1, fmax(f128), 1e-2, - }); - try testArgs(@Vector(8, f16), @Vector(8, f128), .{ - -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f16), @Vector(16, f128), .{ - -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, - }); - try testArgs(@Vector(32, f16), @Vector(32, f128), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f32), @Vector(1, f128), .{ - 1e0, - }); - try testArgs(@Vector(2, f32), @Vector(2, f128), .{ - -inf(f128), -1e-2, - }); - try testArgs(@Vector(4, f32), @Vector(4, f128), .{ - -1e2, 1e-1, fmax(f128), 1e-2, - }); - try testArgs(@Vector(8, f32), @Vector(8, f128), .{ - -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f32), @Vector(16, f128), .{ - -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, - }); - try testArgs(@Vector(32, f32), @Vector(32, f128), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f64), @Vector(1, f128), .{ - 1e0, - }); - try testArgs(@Vector(2, f64), @Vector(2, f128), .{ - -inf(f128), -1e-2, - }); - try testArgs(@Vector(4, f64), @Vector(4, f128), .{ - -1e2, 1e-1, fmax(f128), 1e-2, - }); - try testArgs(@Vector(8, f64), @Vector(8, f128), .{ - -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f64), @Vector(16, f128), .{ - -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, - }); - try testArgs(@Vector(32, f64), @Vector(32, f128), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f80), @Vector(1, f128), .{ - 1e0, - }); - try testArgs(@Vector(2, f80), @Vector(2, f128), .{ - -inf(f128), -1e-2, - }); - try testArgs(@Vector(4, f80), @Vector(4, f128), .{ - -1e2, 1e-1, fmax(f128), 1e-2, - }); - try testArgs(@Vector(8, f80), @Vector(8, f128), .{ - -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f80), @Vector(16, f128), .{ - -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, - }); - try testArgs(@Vector(32, f80), @Vector(32, f128), .{ - -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, - 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), - }); - - try testArgs(@Vector(1, f128), @Vector(1, f128), .{ - 1e0, - }); - try testArgs(@Vector(2, f128), @Vector(2, f128), .{ - -inf(f128), -1e-2, - }); - try testArgs(@Vector(4, f128), @Vector(4, f128), .{ - -1e2, 1e-1, fmax(f128), 1e-2, - }); - try testArgs(@Vector(8, f128), @Vector(8, f128), .{ - -1e-1, tmin(f128), -1e3, fmin(f128), nan(f128), -1e-3, 1e1, 1e4, - }); - try testArgs(@Vector(16, f128), @Vector(16, f128), .{ - -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, - }); - try testArgs(@Vector(32, f128), @Vector(32, f128), .{ - -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, - 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), - }); - } - fn testIntsFromFloats() !void { - @setEvalBranchQuota(2_600); - - try testArgs(i8, f16, -0x0.8p8); - try testArgs(i8, f16, next(f16, -0x0.8p8, -0.0)); - try testArgs(i8, f16, next(f16, next(f16, -0x0.8p8, -0.0), -0.0)); - try testArgs(i8, f16, -1e2); - try testArgs(i8, f16, -1e1); - try testArgs(i8, f16, -1e0); - try testArgs(i8, f16, -1e-1); - try testArgs(i8, f16, -0.0); - try testArgs(i8, f16, 0.0); - try testArgs(i8, f16, 1e-1); - try testArgs(i8, f16, 1e0); - try testArgs(i8, f16, 1e1); - try testArgs(i8, f16, 1e2); - try testArgs(i8, f16, next(f16, next(f16, 0x0.8p8, 0.0), 0.0)); - try testArgs(i8, f16, next(f16, 0x0.8p8, 0.0)); - - try testArgs(u8, f16, -0.0); - try testArgs(u8, f16, 0.0); - try testArgs(u8, f16, 1e-1); - try testArgs(u8, f16, 1e0); - try testArgs(u8, f16, 1e1); - try testArgs(u8, f16, 1e2); - try testArgs(u8, f16, next(f16, next(f16, 0x1p8, 0.0), 0.0)); - try testArgs(u8, f16, next(f16, 0x1p8, 0.0)); - - try testArgs(i16, f16, -1e4); - try testArgs(i16, f16, -1e3); - try testArgs(i16, f16, -1e2); - try testArgs(i16, f16, -1e1); - try testArgs(i16, f16, -1e0); - try testArgs(i16, f16, -1e-1); - try testArgs(i16, f16, -0.0); - try testArgs(i16, f16, 0.0); - try testArgs(i16, f16, 1e-1); - try testArgs(i16, f16, 1e0); - try testArgs(i16, f16, 1e1); - try testArgs(i16, f16, 1e2); - try testArgs(i16, f16, 1e3); - try testArgs(i16, f16, 1e4); - try testArgs(i16, f16, next(f16, next(f16, 0x0.8p16, 0.0), 0.0)); - try testArgs(i16, f16, next(f16, 0x0.8p16, 0.0)); - - try testArgs(u16, f16, -0.0); - try testArgs(u16, f16, 0.0); - try testArgs(u16, f16, 1e-1); - try testArgs(u16, f16, 1e0); - try testArgs(u16, f16, 1e1); - try testArgs(u16, f16, 1e2); - try testArgs(u16, f16, 1e3); - try testArgs(u16, f16, 1e4); - try testArgs(u16, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(u16, f16, next(f16, fmax(f16), 0.0)); - try testArgs(u16, f16, fmax(f16)); - - try testArgs(i32, f16, -fmax(f16)); - try testArgs(i32, f16, next(f16, -fmax(f16), -0.0)); - try testArgs(i32, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); - try testArgs(i32, f16, -1e4); - try testArgs(i32, f16, -1e3); - try testArgs(i32, f16, -1e2); - try testArgs(i32, f16, -1e1); - try testArgs(i32, f16, -1e0); - try testArgs(i32, f16, -1e-1); - try testArgs(i32, f16, -0.0); - try testArgs(i32, f16, 0.0); - try testArgs(i32, f16, 1e-1); - try testArgs(i32, f16, 1e0); - try testArgs(i32, f16, 1e1); - try testArgs(i32, f16, 1e2); - try testArgs(i32, f16, 1e3); - try testArgs(i32, f16, 1e4); - try testArgs(i32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(i32, f16, next(f16, fmax(f16), 0.0)); - try testArgs(i32, f16, fmax(f16)); - - try testArgs(u32, f16, -0.0); - try testArgs(u32, f16, 0.0); - try testArgs(u32, f16, 1e-1); - try testArgs(u32, f16, 1e0); - try testArgs(u32, f16, 1e1); - try testArgs(u32, f16, 1e2); - try testArgs(u32, f16, 1e3); - try testArgs(u32, f16, 1e4); - try testArgs(u32, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(u32, f16, next(f16, fmax(f16), 0.0)); - try testArgs(u32, f16, fmax(f16)); - - try testArgs(i64, f16, -fmax(f16)); - try testArgs(i64, f16, next(f16, -fmax(f16), -0.0)); - try testArgs(i64, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); - try testArgs(i64, f16, -1e4); - try testArgs(i64, f16, -1e3); - try testArgs(i64, f16, -1e2); - try testArgs(i64, f16, -1e1); - try testArgs(i64, f16, -1e0); - try testArgs(i64, f16, -1e-1); - try testArgs(i64, f16, -0.0); - try testArgs(i64, f16, 0.0); - try testArgs(i64, f16, 1e-1); - try testArgs(i64, f16, 1e0); - try testArgs(i64, f16, 1e1); - try testArgs(i64, f16, 1e2); - try testArgs(i64, f16, 1e3); - try testArgs(i64, f16, 1e4); - try testArgs(i64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(i64, f16, next(f16, fmax(f16), 0.0)); - try testArgs(i64, f16, fmax(f16)); - - try testArgs(u64, f16, -0.0); - try testArgs(u64, f16, 0.0); - try testArgs(u64, f16, 1e-1); - try testArgs(u64, f16, 1e0); - try testArgs(u64, f16, 1e1); - try testArgs(u64, f16, 1e2); - try testArgs(u64, f16, 1e3); - try testArgs(u64, f16, 1e4); - try testArgs(u64, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(u64, f16, next(f16, fmax(f16), 0.0)); - try testArgs(u64, f16, fmax(f16)); - - try testArgs(i128, f16, -fmax(f16)); - try testArgs(i128, f16, next(f16, -fmax(f16), -0.0)); - try testArgs(i128, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); - try testArgs(i128, f16, -1e4); - try testArgs(i128, f16, -1e3); - try testArgs(i128, f16, -1e2); - try testArgs(i128, f16, -1e1); - try testArgs(i128, f16, -1e0); - try testArgs(i128, f16, -1e-1); - try testArgs(i128, f16, -0.0); - try testArgs(i128, f16, 0.0); - try testArgs(i128, f16, 1e-1); - try testArgs(i128, f16, 1e0); - try testArgs(i128, f16, 1e1); - try testArgs(i128, f16, 1e2); - try testArgs(i128, f16, 1e3); - try testArgs(i128, f16, 1e4); - try testArgs(i128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(i128, f16, next(f16, fmax(f16), 0.0)); - try testArgs(i128, f16, fmax(f16)); - - try testArgs(u128, f16, -0.0); - try testArgs(u128, f16, 0.0); - try testArgs(u128, f16, 1e-1); - try testArgs(u128, f16, 1e0); - try testArgs(u128, f16, 1e1); - try testArgs(u128, f16, 1e2); - try testArgs(u128, f16, 1e3); - try testArgs(u128, f16, 1e4); - try testArgs(u128, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(u128, f16, next(f16, fmax(f16), 0.0)); - try testArgs(u128, f16, fmax(f16)); - - try testArgs(i256, f16, -fmax(f16)); - try testArgs(i256, f16, next(f16, -fmax(f16), -0.0)); - try testArgs(i256, f16, next(f16, next(f16, -fmax(f16), -0.0), -0.0)); - try testArgs(i256, f16, -1e4); - try testArgs(i256, f16, -1e3); - try testArgs(i256, f16, -1e2); - try testArgs(i256, f16, -1e1); - try testArgs(i256, f16, -1e0); - try testArgs(i256, f16, -1e-1); - try testArgs(i256, f16, -0.0); - try testArgs(i256, f16, 0.0); - try testArgs(i256, f16, 1e-1); - try testArgs(i256, f16, 1e0); - try testArgs(i256, f16, 1e1); - try testArgs(i256, f16, 1e2); - try testArgs(i256, f16, 1e3); - try testArgs(i256, f16, 1e4); - try testArgs(i256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(i256, f16, next(f16, fmax(f16), 0.0)); - try testArgs(i256, f16, fmax(f16)); - - try testArgs(u256, f16, -0.0); - try testArgs(u256, f16, 0.0); - try testArgs(u256, f16, 1e-1); - try testArgs(u256, f16, 1e0); - try testArgs(u256, f16, 1e1); - try testArgs(u256, f16, 1e2); - try testArgs(u256, f16, 1e3); - try testArgs(u256, f16, 1e4); - try testArgs(u256, f16, next(f16, next(f16, fmax(f16), 0.0), 0.0)); - try testArgs(u256, f16, next(f16, fmax(f16), 0.0)); - try testArgs(u256, f16, fmax(f16)); - - try testArgs(i8, f32, -0x0.8p8); - try testArgs(i8, f32, next(f32, -0x0.8p8, -0.0)); - try testArgs(i8, f32, next(f32, next(f32, -0x0.8p8, -0.0), -0.0)); - try testArgs(i8, f32, -1e2); - try testArgs(i8, f32, -1e1); - try testArgs(i8, f32, -1e0); - try testArgs(i8, f32, -1e-1); - try testArgs(i8, f32, -0.0); - try testArgs(i8, f32, 0.0); - try testArgs(i8, f32, 1e-1); - try testArgs(i8, f32, 1e0); - try testArgs(i8, f32, 1e1); - try testArgs(i8, f32, 1e2); - try testArgs(i8, f32, next(f32, next(f32, 0x0.8p8, 0.0), 0.0)); - try testArgs(i8, f32, next(f32, 0x0.8p8, 0.0)); - - try testArgs(u8, f32, -0.0); - try testArgs(u8, f32, 0.0); - try testArgs(u8, f32, 1e-1); - try testArgs(u8, f32, 1e0); - try testArgs(u8, f32, 1e1); - try testArgs(u8, f32, 1e2); - try testArgs(u8, f32, next(f32, next(f32, 0x1p8, 0.0), 0.0)); - try testArgs(u8, f32, next(f32, 0x1p8, 0.0)); - - try testArgs(i16, f32, -0x0.8p16); - try testArgs(i16, f32, next(f32, -0x0.8p16, -0.0)); - try testArgs(i16, f32, next(f32, next(f32, -0x0.8p16, -0.0), -0.0)); - try testArgs(i16, f32, -1e4); - try testArgs(i16, f32, -1e3); - try testArgs(i16, f32, -1e2); - try testArgs(i16, f32, -1e1); - try testArgs(i16, f32, -1e0); - try testArgs(i16, f32, -1e-1); - try testArgs(i16, f32, -0.0); - try testArgs(i16, f32, 0.0); - try testArgs(i16, f32, 1e-1); - try testArgs(i16, f32, 1e0); - try testArgs(i16, f32, 1e1); - try testArgs(i16, f32, 1e2); - try testArgs(i16, f32, 1e3); - try testArgs(i16, f32, 1e4); - try testArgs(i16, f32, next(f32, next(f32, 0x0.8p16, 0.0), 0.0)); - try testArgs(i16, f32, next(f32, 0x0.8p16, 0.0)); - - try testArgs(u16, f32, -0.0); - try testArgs(u16, f32, 0.0); - try testArgs(u16, f32, 1e-1); - try testArgs(u16, f32, 1e0); - try testArgs(u16, f32, 1e1); - try testArgs(u16, f32, 1e2); - try testArgs(u16, f32, 1e3); - try testArgs(u16, f32, 1e4); - try testArgs(u16, f32, next(f32, next(f32, 0x1p16, 0.0), 0.0)); - try testArgs(u16, f32, next(f32, 0x1p16, 0.0)); - - try testArgs(i32, f32, -0x0.8p32); - try testArgs(i32, f32, next(f32, -0x0.8p32, -0.0)); - try testArgs(i32, f32, next(f32, next(f32, -0x0.8p32, -0.0), -0.0)); - try testArgs(i32, f32, -1e9); - try testArgs(i32, f32, -1e8); - try testArgs(i32, f32, -1e7); - try testArgs(i32, f32, -1e6); - try testArgs(i32, f32, -1e5); - try testArgs(i32, f32, -1e4); - try testArgs(i32, f32, -1e3); - try testArgs(i32, f32, -1e2); - try testArgs(i32, f32, -1e1); - try testArgs(i32, f32, -1e0); - try testArgs(i32, f32, -1e-1); - try testArgs(i32, f32, -0.0); - try testArgs(i32, f32, 0.0); - try testArgs(i32, f32, 1e-1); - try testArgs(i32, f32, 1e0); - try testArgs(i32, f32, 1e1); - try testArgs(i32, f32, 1e2); - try testArgs(i32, f32, 1e3); - try testArgs(i32, f32, 1e4); - try testArgs(i32, f32, 1e5); - try testArgs(i32, f32, 1e6); - try testArgs(i32, f32, 1e7); - try testArgs(i32, f32, 1e8); - try testArgs(i32, f32, 1e9); - try testArgs(i32, f32, next(f32, next(f32, 0x0.8p32, 0.0), 0.0)); - try testArgs(i32, f32, next(f32, 0x0.8p32, 0.0)); - - try testArgs(u32, f32, -0.0); - try testArgs(u32, f32, 0.0); - try testArgs(u32, f32, 1e-1); - try testArgs(u32, f32, 1e0); - try testArgs(u32, f32, 1e1); - try testArgs(u32, f32, 1e2); - try testArgs(u32, f32, 1e3); - try testArgs(u32, f32, 1e4); - try testArgs(u32, f32, 1e5); - try testArgs(u32, f32, 1e6); - try testArgs(u32, f32, 1e7); - try testArgs(u32, f32, 1e8); - try testArgs(u32, f32, 1e9); - try testArgs(u32, f32, next(f32, next(f32, 0x1p32, 0.0), 0.0)); - try testArgs(u32, f32, next(f32, 0x1p32, 0.0)); - - try testArgs(i64, f32, -0x0.8p64); - try testArgs(i64, f32, next(f32, -0x0.8p64, -0.0)); - try testArgs(i64, f32, next(f32, next(f32, -0x0.8p64, -0.0), -0.0)); - try testArgs(i64, f32, -1e18); - try testArgs(i64, f32, -1e16); - try testArgs(i64, f32, -1e14); - try testArgs(i64, f32, -1e12); - try testArgs(i64, f32, -1e10); - try testArgs(i64, f32, -1e8); - try testArgs(i64, f32, -1e6); - try testArgs(i64, f32, -1e4); - try testArgs(i64, f32, -1e2); - try testArgs(i64, f32, -1e0); - try testArgs(i64, f32, -1e-1); - try testArgs(i64, f32, -0.0); - try testArgs(i64, f32, 0.0); - try testArgs(i64, f32, 1e-1); - try testArgs(i64, f32, 1e0); - try testArgs(i64, f32, 1e2); - try testArgs(i64, f32, 1e4); - try testArgs(i64, f32, 1e6); - try testArgs(i64, f32, 1e8); - try testArgs(i64, f32, 1e10); - try testArgs(i64, f32, 1e12); - try testArgs(i64, f32, 1e14); - try testArgs(i64, f32, 1e16); - try testArgs(i64, f32, 1e18); - try testArgs(i64, f32, next(f32, next(f32, 0x0.8p64, 0.0), 0.0)); - try testArgs(i64, f32, next(f32, 0x0.8p64, 0.0)); - - try testArgs(u64, f32, -0.0); - try testArgs(u64, f32, 0.0); - try testArgs(u64, f32, 1e-1); - try testArgs(u64, f32, 1e0); - try testArgs(u64, f32, 1e2); - try testArgs(u64, f32, 1e4); - try testArgs(u64, f32, 1e6); - try testArgs(u64, f32, 1e8); - try testArgs(u64, f32, 1e10); - try testArgs(u64, f32, 1e12); - try testArgs(u64, f32, 1e14); - try testArgs(u64, f32, 1e16); - try testArgs(u64, f32, 1e18); - try testArgs(u64, f32, next(f32, next(f32, 0x1p64, 0.0), 0.0)); - try testArgs(u64, f32, next(f32, 0x1p64, 0.0)); - - try testArgs(i128, f32, -0x0.8p128); - try testArgs(i128, f32, next(f32, -0x0.8p128, -0.0)); - try testArgs(i128, f32, next(f32, next(f32, -0x0.8p128, -0.0), -0.0)); - try testArgs(i128, f32, -1e38); - try testArgs(i128, f32, -1e34); - try testArgs(i128, f32, -1e30); - try testArgs(i128, f32, -1e26); - try testArgs(i128, f32, -1e22); - try testArgs(i128, f32, -1e18); - try testArgs(i128, f32, -1e14); - try testArgs(i128, f32, -1e10); - try testArgs(i128, f32, -1e6); - try testArgs(i128, f32, -1e2); - try testArgs(i128, f32, -1e0); - try testArgs(i128, f32, -1e-1); - try testArgs(i128, f32, -0.0); - try testArgs(i128, f32, 0.0); - try testArgs(i128, f32, 1e-1); - try testArgs(i128, f32, 1e0); - try testArgs(i128, f32, 1e2); - try testArgs(i128, f32, 1e6); - try testArgs(i128, f32, 1e10); - try testArgs(i128, f32, 1e14); - try testArgs(i128, f32, 1e18); - try testArgs(i128, f32, 1e22); - try testArgs(i128, f32, 1e26); - try testArgs(i128, f32, 1e30); - try testArgs(i128, f32, 1e34); - try testArgs(i128, f32, 1e38); - try testArgs(i128, f32, next(f32, next(f32, 0x0.8p128, 0.0), 0.0)); - try testArgs(i128, f32, next(f32, 0x0.8p128, 0.0)); - - try testArgs(u128, f32, -0.0); - try testArgs(u128, f32, 0.0); - try testArgs(u128, f32, 1e-1); - try testArgs(u128, f32, 1e0); - try testArgs(u128, f32, 1e2); - try testArgs(u128, f32, 1e6); - try testArgs(u128, f32, 1e10); - try testArgs(u128, f32, 1e14); - try testArgs(u128, f32, 1e18); - try testArgs(u128, f32, 1e22); - try testArgs(u128, f32, 1e26); - try testArgs(u128, f32, 1e30); - try testArgs(u128, f32, 1e34); - try testArgs(u128, f32, 1e38); - try testArgs(u128, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); - try testArgs(u128, f32, next(f32, fmax(f32), 0.0)); - - try testArgs(i256, f32, -fmax(f32)); - try testArgs(i256, f32, next(f32, -fmax(f32), -0.0)); - try testArgs(i256, f32, next(f32, next(f32, -fmax(f32), -0.0), -0.0)); - try testArgs(i256, f32, -1e38); - try testArgs(i256, f32, -1e34); - try testArgs(i256, f32, -1e30); - try testArgs(i256, f32, -1e26); - try testArgs(i256, f32, -1e22); - try testArgs(i256, f32, -1e18); - try testArgs(i256, f32, -1e14); - try testArgs(i256, f32, -1e10); - try testArgs(i256, f32, -1e6); - try testArgs(i256, f32, -1e2); - try testArgs(i256, f32, -1e0); - try testArgs(i256, f32, -1e-1); - try testArgs(i256, f32, -0.0); - try testArgs(i256, f32, 0.0); - try testArgs(i256, f32, 1e-1); - try testArgs(i256, f32, 1e0); - try testArgs(i256, f32, 1e2); - try testArgs(i256, f32, 1e6); - try testArgs(i256, f32, 1e10); - try testArgs(i256, f32, 1e14); - try testArgs(i256, f32, 1e18); - try testArgs(i256, f32, 1e22); - try testArgs(i256, f32, 1e26); - try testArgs(i256, f32, 1e30); - try testArgs(i256, f32, 1e34); - try testArgs(i256, f32, 1e38); - try testArgs(i256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); - try testArgs(i256, f32, next(f32, fmax(f32), 0.0)); - - try testArgs(u256, f32, -0.0); - try testArgs(u256, f32, 0.0); - try testArgs(u256, f32, 1e-1); - try testArgs(u256, f32, 1e0); - try testArgs(u256, f32, 1e2); - try testArgs(u256, f32, 1e6); - try testArgs(u256, f32, 1e10); - try testArgs(u256, f32, 1e14); - try testArgs(u256, f32, 1e18); - try testArgs(u256, f32, 1e22); - try testArgs(u256, f32, 1e26); - try testArgs(u256, f32, 1e30); - try testArgs(u256, f32, 1e34); - try testArgs(u256, f32, 1e38); - try testArgs(u256, f32, next(f32, next(f32, fmax(f32), 0.0), 0.0)); - try testArgs(u256, f32, next(f32, fmax(f32), 0.0)); - - try testArgs(i8, f64, -0x0.8p8); - try testArgs(i8, f64, next(f64, -0x0.8p8, -0.0)); - try testArgs(i8, f64, next(f64, next(f64, -0x0.8p8, -0.0), -0.0)); - try testArgs(i8, f64, -1e2); - try testArgs(i8, f64, -1e1); - try testArgs(i8, f64, -1e0); - try testArgs(i8, f64, -1e-1); - try testArgs(i8, f64, -0.0); - try testArgs(i8, f64, 0.0); - try testArgs(i8, f64, 1e-1); - try testArgs(i8, f64, 1e0); - try testArgs(i8, f64, 1e1); - try testArgs(i8, f64, 1e2); - try testArgs(i8, f64, next(f64, next(f64, 0x0.8p8, 0.0), 0.0)); - try testArgs(i8, f64, next(f64, 0x0.8p8, 0.0)); - - try testArgs(u8, f64, -0.0); - try testArgs(u8, f64, 0.0); - try testArgs(u8, f64, 1e-1); - try testArgs(u8, f64, 1e0); - try testArgs(u8, f64, 1e1); - try testArgs(u8, f64, 1e2); - try testArgs(u8, f64, next(f64, next(f64, 0x1p8, 0.0), 0.0)); - try testArgs(u8, f64, next(f64, 0x1p8, 0.0)); - - try testArgs(i16, f64, -0x0.8p16); - try testArgs(i16, f64, next(f64, -0x0.8p16, -0.0)); - try testArgs(i16, f64, next(f64, next(f64, -0x0.8p16, -0.0), -0.0)); - try testArgs(i16, f64, -1e4); - try testArgs(i16, f64, -1e3); - try testArgs(i16, f64, -1e2); - try testArgs(i16, f64, -1e1); - try testArgs(i16, f64, -1e0); - try testArgs(i16, f64, -1e-1); - try testArgs(i16, f64, -0.0); - try testArgs(i16, f64, 0.0); - try testArgs(i16, f64, 1e-1); - try testArgs(i16, f64, 1e0); - try testArgs(i16, f64, 1e1); - try testArgs(i16, f64, 1e2); - try testArgs(i16, f64, 1e3); - try testArgs(i16, f64, 1e4); - try testArgs(i16, f64, next(f64, next(f64, 0x0.8p16, 0.0), 0.0)); - try testArgs(i16, f64, next(f64, 0x0.8p16, 0.0)); - - try testArgs(u16, f64, -0.0); - try testArgs(u16, f64, 0.0); - try testArgs(u16, f64, 1e-1); - try testArgs(u16, f64, 1e0); - try testArgs(u16, f64, 1e1); - try testArgs(u16, f64, 1e2); - try testArgs(u16, f64, 1e3); - try testArgs(u16, f64, 1e4); - try testArgs(u16, f64, next(f64, next(f64, 0x1p16, 0.0), 0.0)); - try testArgs(u16, f64, next(f64, 0x1p16, 0.0)); - - try testArgs(i32, f64, -0x0.8p32); - try testArgs(i32, f64, next(f64, -0x0.8p32, -0.0)); - try testArgs(i32, f64, next(f64, next(f64, -0x0.8p32, -0.0), -0.0)); - try testArgs(i32, f64, -1e9); - try testArgs(i32, f64, -1e8); - try testArgs(i32, f64, -1e7); - try testArgs(i32, f64, -1e6); - try testArgs(i32, f64, -1e5); - try testArgs(i32, f64, -1e4); - try testArgs(i32, f64, -1e3); - try testArgs(i32, f64, -1e2); - try testArgs(i32, f64, -1e1); - try testArgs(i32, f64, -1e0); - try testArgs(i32, f64, -1e-1); - try testArgs(i32, f64, -0.0); - try testArgs(i32, f64, 0.0); - try testArgs(i32, f64, 1e-1); - try testArgs(i32, f64, 1e0); - try testArgs(i32, f64, 1e1); - try testArgs(i32, f64, 1e2); - try testArgs(i32, f64, 1e3); - try testArgs(i32, f64, 1e4); - try testArgs(i32, f64, 1e5); - try testArgs(i32, f64, 1e6); - try testArgs(i32, f64, 1e7); - try testArgs(i32, f64, 1e8); - try testArgs(i32, f64, 1e9); - try testArgs(i32, f64, next(f64, next(f64, 0x0.8p32, 0.0), 0.0)); - try testArgs(i32, f64, next(f64, 0x0.8p32, 0.0)); - - try testArgs(u32, f64, -0.0); - try testArgs(u32, f64, 0.0); - try testArgs(u32, f64, 1e-1); - try testArgs(u32, f64, 1e0); - try testArgs(u32, f64, 1e1); - try testArgs(u32, f64, 1e2); - try testArgs(u32, f64, 1e3); - try testArgs(u32, f64, 1e4); - try testArgs(u32, f64, 1e5); - try testArgs(u32, f64, 1e6); - try testArgs(u32, f64, 1e7); - try testArgs(u32, f64, 1e8); - try testArgs(u32, f64, 1e9); - try testArgs(u32, f64, next(f64, next(f64, 0x1p32, 0.0), 0.0)); - try testArgs(u32, f64, next(f64, 0x1p32, 0.0)); - - try testArgs(i64, f64, -0x0.8p64); - try testArgs(i64, f64, next(f64, -0x0.8p64, -0.0)); - try testArgs(i64, f64, next(f64, next(f64, -0x0.8p64, -0.0), -0.0)); - try testArgs(i64, f64, -1e18); - try testArgs(i64, f64, -1e16); - try testArgs(i64, f64, -1e14); - try testArgs(i64, f64, -1e12); - try testArgs(i64, f64, -1e10); - try testArgs(i64, f64, -1e8); - try testArgs(i64, f64, -1e6); - try testArgs(i64, f64, -1e4); - try testArgs(i64, f64, -1e2); - try testArgs(i64, f64, -1e0); - try testArgs(i64, f64, -1e-1); - try testArgs(i64, f64, -0.0); - try testArgs(i64, f64, 0.0); - try testArgs(i64, f64, 1e-1); - try testArgs(i64, f64, 1e0); - try testArgs(i64, f64, 1e2); - try testArgs(i64, f64, 1e4); - try testArgs(i64, f64, 1e6); - try testArgs(i64, f64, 1e8); - try testArgs(i64, f64, 1e10); - try testArgs(i64, f64, 1e12); - try testArgs(i64, f64, 1e14); - try testArgs(i64, f64, 1e16); - try testArgs(i64, f64, 1e18); - try testArgs(i64, f64, next(f64, next(f64, 0x0.8p64, 0.0), 0.0)); - try testArgs(i64, f64, next(f64, 0x0.8p64, 0.0)); - - try testArgs(u64, f64, -0.0); - try testArgs(u64, f64, 0.0); - try testArgs(u64, f64, 1e-1); - try testArgs(u64, f64, 1e0); - try testArgs(u64, f64, 1e2); - try testArgs(u64, f64, 1e4); - try testArgs(u64, f64, 1e6); - try testArgs(u64, f64, 1e8); - try testArgs(u64, f64, 1e10); - try testArgs(u64, f64, 1e12); - try testArgs(u64, f64, 1e14); - try testArgs(u64, f64, 1e16); - try testArgs(u64, f64, 1e18); - try testArgs(u64, f64, next(f64, next(f64, 0x1p64, 0.0), 0.0)); - try testArgs(u64, f64, next(f64, 0x1p64, 0.0)); - - try testArgs(i128, f64, -0x0.8p128); - try testArgs(i128, f64, next(f64, -0x0.8p128, -0.0)); - try testArgs(i128, f64, next(f64, next(f64, -0x0.8p128, -0.0), -0.0)); - try testArgs(i128, f64, -1e38); - try testArgs(i128, f64, -1e34); - try testArgs(i128, f64, -1e30); - try testArgs(i128, f64, -1e26); - try testArgs(i128, f64, -1e22); - try testArgs(i128, f64, -1e18); - try testArgs(i128, f64, -1e14); - try testArgs(i128, f64, -1e10); - try testArgs(i128, f64, -1e6); - try testArgs(i128, f64, -1e2); - try testArgs(i128, f64, -1e0); - try testArgs(i128, f64, -1e-1); - try testArgs(i128, f64, -0.0); - try testArgs(i128, f64, 0.0); - try testArgs(i128, f64, 1e-1); - try testArgs(i128, f64, 1e0); - try testArgs(i128, f64, 1e2); - try testArgs(i128, f64, 1e6); - try testArgs(i128, f64, 1e10); - try testArgs(i128, f64, 1e14); - try testArgs(i128, f64, 1e18); - try testArgs(i128, f64, 1e22); - try testArgs(i128, f64, 1e26); - try testArgs(i128, f64, 1e30); - try testArgs(i128, f64, 1e34); - try testArgs(i128, f64, 1e38); - try testArgs(i128, f64, next(f64, next(f64, 0x0.8p128, 0.0), 0.0)); - try testArgs(i128, f64, next(f64, 0x0.8p128, 0.0)); - - try testArgs(u128, f64, -0.0); - try testArgs(u128, f64, 0.0); - try testArgs(u128, f64, 1e-1); - try testArgs(u128, f64, 1e0); - try testArgs(u128, f64, 1e2); - try testArgs(u128, f64, 1e6); - try testArgs(u128, f64, 1e10); - try testArgs(u128, f64, 1e14); - try testArgs(u128, f64, 1e18); - try testArgs(u128, f64, 1e22); - try testArgs(u128, f64, 1e26); - try testArgs(u128, f64, 1e30); - try testArgs(u128, f64, 1e34); - try testArgs(u128, f64, 1e38); - try testArgs(u128, f64, next(f64, next(f64, 0x1p128, 0.0), 0.0)); - try testArgs(u128, f64, next(f64, 0x1p128, 0.0)); - - try testArgs(i256, f64, -0x0.8p256); - try testArgs(i256, f64, next(f64, -0x0.8p256, -0.0)); - try testArgs(i256, f64, next(f64, next(f64, -0x0.8p256, -0.0), -0.0)); - try testArgs(i256, f64, -1e76); - try testArgs(i256, f64, -1e69); - try testArgs(i256, f64, -1e62); - try testArgs(i256, f64, -1e55); - try testArgs(i256, f64, -1e48); - try testArgs(i256, f64, -1e41); - try testArgs(i256, f64, -1e34); - try testArgs(i256, f64, -1e27); - try testArgs(i256, f64, -1e20); - try testArgs(i256, f64, -1e13); - try testArgs(i256, f64, -1e6); - try testArgs(i256, f64, -1e0); - try testArgs(i256, f64, -1e-1); - try testArgs(i256, f64, -0.0); - try testArgs(i256, f64, 0.0); - try testArgs(i256, f64, 1e-1); - try testArgs(i256, f64, 1e0); - try testArgs(i256, f64, 1e6); - try testArgs(i256, f64, 1e13); - try testArgs(i256, f64, 1e20); - try testArgs(i256, f64, 1e27); - try testArgs(i256, f64, 1e34); - try testArgs(i256, f64, 1e41); - try testArgs(i256, f64, 1e48); - try testArgs(i256, f64, 1e55); - try testArgs(i256, f64, 1e62); - try testArgs(i256, f64, 1e69); - try testArgs(i256, f64, 1e76); - try testArgs(i256, f64, next(f64, next(f64, 0x0.8p256, 0.0), 0.0)); - try testArgs(i256, f64, next(f64, 0x0.8p256, 0.0)); - - try testArgs(u256, f64, -0.0); - try testArgs(u256, f64, 0.0); - try testArgs(u256, f64, 1e-1); - try testArgs(u256, f64, 1e0); - try testArgs(u256, f64, 1e7); - try testArgs(u256, f64, 1e14); - try testArgs(u256, f64, 1e21); - try testArgs(u256, f64, 1e28); - try testArgs(u256, f64, 1e35); - try testArgs(u256, f64, 1e42); - try testArgs(u256, f64, 1e49); - try testArgs(u256, f64, 1e56); - try testArgs(u256, f64, 1e63); - try testArgs(u256, f64, 1e70); - try testArgs(u256, f64, 1e77); - try testArgs(u256, f64, next(f64, next(f64, 0x1p256, 0.0), 0.0)); - try testArgs(u256, f64, next(f64, 0x1p256, 0.0)); - - try testArgs(i8, f80, -0x0.8p8); - try testArgs(i8, f80, next(f80, -0x0.8p8, -0.0)); - try testArgs(i8, f80, next(f80, next(f80, -0x0.8p8, -0.0), -0.0)); - try testArgs(i8, f80, -1e2); - try testArgs(i8, f80, -1e1); - try testArgs(i8, f80, -1e0); - try testArgs(i8, f80, -1e-1); - try testArgs(i8, f80, -0.0); - try testArgs(i8, f80, 0.0); - try testArgs(i8, f80, 1e-1); - try testArgs(i8, f80, 1e0); - try testArgs(i8, f80, 1e1); - try testArgs(i8, f80, 1e2); - try testArgs(i8, f80, next(f80, next(f80, 0x0.8p8, 0.0), 0.0)); - try testArgs(i8, f80, next(f80, 0x0.8p8, 0.0)); - - try testArgs(u8, f80, -0.0); - try testArgs(u8, f80, 0.0); - try testArgs(u8, f80, 1e-1); - try testArgs(u8, f80, 1e0); - try testArgs(u8, f80, 1e1); - try testArgs(u8, f80, 1e2); - try testArgs(u8, f80, next(f80, next(f80, 0x1p8, 0.0), 0.0)); - try testArgs(u8, f80, next(f80, 0x1p8, 0.0)); - - try testArgs(i16, f80, -0x0.8p16); - try testArgs(i16, f80, next(f80, -0x0.8p16, -0.0)); - try testArgs(i16, f80, next(f80, next(f80, -0x0.8p16, -0.0), -0.0)); - try testArgs(i16, f80, -1e4); - try testArgs(i16, f80, -1e3); - try testArgs(i16, f80, -1e2); - try testArgs(i16, f80, -1e1); - try testArgs(i16, f80, -1e0); - try testArgs(i16, f80, -1e-1); - try testArgs(i16, f80, -0.0); - try testArgs(i16, f80, 0.0); - try testArgs(i16, f80, 1e-1); - try testArgs(i16, f80, 1e0); - try testArgs(i16, f80, 1e1); - try testArgs(i16, f80, 1e2); - try testArgs(i16, f80, 1e3); - try testArgs(i16, f80, 1e4); - try testArgs(i16, f80, next(f80, next(f80, 0x0.8p16, 0.0), 0.0)); - try testArgs(i16, f80, next(f80, 0x0.8p16, 0.0)); - - try testArgs(u16, f80, -0.0); - try testArgs(u16, f80, 0.0); - try testArgs(u16, f80, 1e-1); - try testArgs(u16, f80, 1e0); - try testArgs(u16, f80, 1e1); - try testArgs(u16, f80, 1e2); - try testArgs(u16, f80, 1e3); - try testArgs(u16, f80, 1e4); - try testArgs(u16, f80, next(f80, next(f80, 0x1p16, 0.0), 0.0)); - try testArgs(u16, f80, next(f80, 0x1p16, 0.0)); - - try testArgs(i32, f80, -0x0.8p32); - try testArgs(i32, f80, next(f80, -0x0.8p32, -0.0)); - try testArgs(i32, f80, next(f80, next(f80, -0x0.8p32, -0.0), -0.0)); - try testArgs(i32, f80, -1e9); - try testArgs(i32, f80, -1e8); - try testArgs(i32, f80, -1e7); - try testArgs(i32, f80, -1e6); - try testArgs(i32, f80, -1e5); - try testArgs(i32, f80, -1e4); - try testArgs(i32, f80, -1e3); - try testArgs(i32, f80, -1e2); - try testArgs(i32, f80, -1e1); - try testArgs(i32, f80, -1e0); - try testArgs(i32, f80, -1e-1); - try testArgs(i32, f80, -0.0); - try testArgs(i32, f80, 0.0); - try testArgs(i32, f80, 1e-1); - try testArgs(i32, f80, 1e0); - try testArgs(i32, f80, 1e1); - try testArgs(i32, f80, 1e2); - try testArgs(i32, f80, 1e3); - try testArgs(i32, f80, 1e4); - try testArgs(i32, f80, 1e5); - try testArgs(i32, f80, 1e6); - try testArgs(i32, f80, 1e7); - try testArgs(i32, f80, 1e8); - try testArgs(i32, f80, 1e9); - try testArgs(i32, f80, next(f80, next(f80, 0x0.8p32, 0.0), 0.0)); - try testArgs(i32, f80, next(f80, 0x0.8p32, 0.0)); - - try testArgs(u32, f80, -0.0); - try testArgs(u32, f80, 0.0); - try testArgs(u32, f80, 1e-1); - try testArgs(u32, f80, 1e0); - try testArgs(u32, f80, 1e1); - try testArgs(u32, f80, 1e2); - try testArgs(u32, f80, 1e3); - try testArgs(u32, f80, 1e4); - try testArgs(u32, f80, 1e5); - try testArgs(u32, f80, 1e6); - try testArgs(u32, f80, 1e7); - try testArgs(u32, f80, 1e8); - try testArgs(u32, f80, 1e9); - try testArgs(u32, f80, next(f80, next(f80, 0x1p32, 0.0), 0.0)); - try testArgs(u32, f80, next(f80, 0x1p32, 0.0)); - - try testArgs(i64, f80, -0x0.8p64); - try testArgs(i64, f80, next(f80, -0x0.8p64, -0.0)); - try testArgs(i64, f80, next(f80, next(f80, -0x0.8p64, -0.0), -0.0)); - try testArgs(i64, f80, -1e18); - try testArgs(i64, f80, -1e16); - try testArgs(i64, f80, -1e14); - try testArgs(i64, f80, -1e12); - try testArgs(i64, f80, -1e10); - try testArgs(i64, f80, -1e8); - try testArgs(i64, f80, -1e6); - try testArgs(i64, f80, -1e4); - try testArgs(i64, f80, -1e2); - try testArgs(i64, f80, -1e0); - try testArgs(i64, f80, -1e-1); - try testArgs(i64, f80, -0.0); - try testArgs(i64, f80, 0.0); - try testArgs(i64, f80, 1e-1); - try testArgs(i64, f80, 1e0); - try testArgs(i64, f80, 1e2); - try testArgs(i64, f80, 1e4); - try testArgs(i64, f80, 1e6); - try testArgs(i64, f80, 1e8); - try testArgs(i64, f80, 1e10); - try testArgs(i64, f80, 1e12); - try testArgs(i64, f80, 1e14); - try testArgs(i64, f80, 1e16); - try testArgs(i64, f80, 1e18); - try testArgs(i64, f80, next(f80, next(f80, 0x0.8p64, 0.0), 0.0)); - try testArgs(i64, f80, next(f80, 0x0.8p64, 0.0)); - - try testArgs(u64, f80, -0.0); - try testArgs(u64, f80, 0.0); - try testArgs(u64, f80, 1e-1); - try testArgs(u64, f80, 1e0); - try testArgs(u64, f80, 1e2); - try testArgs(u64, f80, 1e4); - try testArgs(u64, f80, 1e6); - try testArgs(u64, f80, 1e8); - try testArgs(u64, f80, 1e10); - try testArgs(u64, f80, 1e12); - try testArgs(u64, f80, 1e14); - try testArgs(u64, f80, 1e16); - try testArgs(u64, f80, 1e18); - try testArgs(u64, f80, next(f80, next(f80, 0x1p64, 0.0), 0.0)); - try testArgs(u64, f80, next(f80, 0x1p64, 0.0)); - - try testArgs(i128, f80, -0x0.8p128); - try testArgs(i128, f80, next(f80, -0x0.8p128, -0.0)); - try testArgs(i128, f80, next(f80, next(f80, -0x0.8p128, -0.0), -0.0)); - try testArgs(i128, f80, -1e38); - try testArgs(i128, f80, -1e34); - try testArgs(i128, f80, -1e30); - try testArgs(i128, f80, -1e26); - try testArgs(i128, f80, -1e22); - try testArgs(i128, f80, -1e18); - try testArgs(i128, f80, -1e14); - try testArgs(i128, f80, -1e10); - try testArgs(i128, f80, -1e6); - try testArgs(i128, f80, -1e2); - try testArgs(i128, f80, -1e0); - try testArgs(i128, f80, -1e-1); - try testArgs(i128, f80, -0.0); - try testArgs(i128, f80, 0.0); - try testArgs(i128, f80, 1e-1); - try testArgs(i128, f80, 1e0); - try testArgs(i128, f80, 1e2); - try testArgs(i128, f80, 1e6); - try testArgs(i128, f80, 1e10); - try testArgs(i128, f80, 1e14); - try testArgs(i128, f80, 1e18); - try testArgs(i128, f80, 1e22); - try testArgs(i128, f80, 1e26); - try testArgs(i128, f80, 1e30); - try testArgs(i128, f80, 1e34); - try testArgs(i128, f80, 1e38); - try testArgs(i128, f80, next(f80, next(f80, 0x0.8p128, 0.0), 0.0)); - try testArgs(i128, f80, next(f80, 0x0.8p128, 0.0)); - - try testArgs(u128, f80, -0.0); - try testArgs(u128, f80, 0.0); - try testArgs(u128, f80, 1e-1); - try testArgs(u128, f80, 1e0); - try testArgs(u128, f80, 1e2); - try testArgs(u128, f80, 1e6); - try testArgs(u128, f80, 1e10); - try testArgs(u128, f80, 1e14); - try testArgs(u128, f80, 1e18); - try testArgs(u128, f80, 1e22); - try testArgs(u128, f80, 1e26); - try testArgs(u128, f80, 1e30); - try testArgs(u128, f80, 1e34); - try testArgs(u128, f80, 1e38); - try testArgs(u128, f80, next(f80, next(f80, 0x1p128, 0.0), 0.0)); - try testArgs(u128, f80, next(f80, 0x1p128, 0.0)); - - try testArgs(i256, f80, -0x0.8p256); - try testArgs(i256, f80, next(f80, -0x0.8p256, -0.0)); - try testArgs(i256, f80, next(f80, next(f80, -0x0.8p256, -0.0), -0.0)); - try testArgs(i256, f80, -1e76); - try testArgs(i256, f80, -1e69); - try testArgs(i256, f80, -1e62); - try testArgs(i256, f80, -1e55); - try testArgs(i256, f80, -1e48); - try testArgs(i256, f80, -1e41); - try testArgs(i256, f80, -1e34); - try testArgs(i256, f80, -1e27); - try testArgs(i256, f80, -1e20); - try testArgs(i256, f80, -1e13); - try testArgs(i256, f80, -1e6); - try testArgs(i256, f80, -1e0); - try testArgs(i256, f80, -1e-1); - try testArgs(i256, f80, -0.0); - try testArgs(i256, f80, 0.0); - try testArgs(i256, f80, 1e-1); - try testArgs(i256, f80, 1e0); - try testArgs(i256, f80, 1e6); - try testArgs(i256, f80, 1e13); - try testArgs(i256, f80, 1e20); - try testArgs(i256, f80, 1e27); - try testArgs(i256, f80, 1e34); - try testArgs(i256, f80, 1e41); - try testArgs(i256, f80, 1e48); - try testArgs(i256, f80, 1e55); - try testArgs(i256, f80, 1e62); - try testArgs(i256, f80, 1e69); - try testArgs(i256, f80, 1e76); - try testArgs(i256, f80, next(f80, next(f80, 0x0.8p256, 0.0), 0.0)); - try testArgs(i256, f80, next(f80, 0x0.8p256, 0.0)); - - try testArgs(u256, f80, -0.0); - try testArgs(u256, f80, 0.0); - try testArgs(u256, f80, 1e-1); - try testArgs(u256, f80, 1e0); - try testArgs(u256, f80, 1e7); - try testArgs(u256, f80, 1e14); - try testArgs(u256, f80, 1e21); - try testArgs(u256, f80, 1e28); - try testArgs(u256, f80, 1e35); - try testArgs(u256, f80, 1e42); - try testArgs(u256, f80, 1e49); - try testArgs(u256, f80, 1e56); - try testArgs(u256, f80, 1e63); - try testArgs(u256, f80, 1e70); - try testArgs(u256, f80, 1e77); - try testArgs(u256, f80, next(f80, next(f80, 0x1p256, 0.0), 0.0)); - try testArgs(u256, f80, next(f80, 0x1p256, 0.0)); - - try testArgs(i8, f128, -0x0.8p8); - try testArgs(i8, f128, next(f128, -0x0.8p8, -0.0)); - try testArgs(i8, f128, next(f128, next(f128, -0x0.8p8, -0.0), -0.0)); - try testArgs(i8, f128, -1e2); - try testArgs(i8, f128, -1e1); - try testArgs(i8, f128, -1e0); - try testArgs(i8, f128, -1e-1); - try testArgs(i8, f128, -0.0); - try testArgs(i8, f128, 0.0); - try testArgs(i8, f128, 1e-1); - try testArgs(i8, f128, 1e0); - try testArgs(i8, f128, 1e1); - try testArgs(i8, f128, 1e2); - try testArgs(i8, f128, next(f128, next(f128, 0x0.8p8, 0.0), 0.0)); - try testArgs(i8, f128, next(f128, 0x0.8p8, 0.0)); - - try testArgs(u8, f128, -0.0); - try testArgs(u8, f128, 0.0); - try testArgs(u8, f128, 1e-1); - try testArgs(u8, f128, 1e0); - try testArgs(u8, f128, 1e1); - try testArgs(u8, f128, 1e2); - try testArgs(u8, f128, next(f128, next(f128, 0x1p8, 0.0), 0.0)); - try testArgs(u8, f128, next(f128, 0x1p8, 0.0)); - - try testArgs(i16, f128, -0x0.8p16); - try testArgs(i16, f128, next(f128, -0x0.8p16, -0.0)); - try testArgs(i16, f128, next(f128, next(f128, -0x0.8p16, -0.0), -0.0)); - try testArgs(i16, f128, -1e4); - try testArgs(i16, f128, -1e3); - try testArgs(i16, f128, -1e2); - try testArgs(i16, f128, -1e1); - try testArgs(i16, f128, -1e0); - try testArgs(i16, f128, -1e-1); - try testArgs(i16, f128, -0.0); - try testArgs(i16, f128, 0.0); - try testArgs(i16, f128, 1e-1); - try testArgs(i16, f128, 1e0); - try testArgs(i16, f128, 1e1); - try testArgs(i16, f128, 1e2); - try testArgs(i16, f128, 1e3); - try testArgs(i16, f128, 1e4); - try testArgs(i16, f128, next(f128, next(f128, 0x0.8p16, 0.0), 0.0)); - try testArgs(i16, f128, next(f128, 0x0.8p16, 0.0)); - - try testArgs(u16, f128, -0.0); - try testArgs(u16, f128, 0.0); - try testArgs(u16, f128, 1e-1); - try testArgs(u16, f128, 1e0); - try testArgs(u16, f128, 1e1); - try testArgs(u16, f128, 1e2); - try testArgs(u16, f128, 1e3); - try testArgs(u16, f128, 1e4); - try testArgs(u16, f128, next(f128, next(f128, 0x1p16, 0.0), 0.0)); - try testArgs(u16, f128, next(f128, 0x1p16, 0.0)); - - try testArgs(i32, f128, -0x0.8p32); - try testArgs(i32, f128, next(f128, -0x0.8p32, -0.0)); - try testArgs(i32, f128, next(f128, next(f128, -0x0.8p32, -0.0), -0.0)); - try testArgs(i32, f128, -1e9); - try testArgs(i32, f128, -1e8); - try testArgs(i32, f128, -1e7); - try testArgs(i32, f128, -1e6); - try testArgs(i32, f128, -1e5); - try testArgs(i32, f128, -1e4); - try testArgs(i32, f128, -1e3); - try testArgs(i32, f128, -1e2); - try testArgs(i32, f128, -1e1); - try testArgs(i32, f128, -1e0); - try testArgs(i32, f128, -1e-1); - try testArgs(i32, f128, -0.0); - try testArgs(i32, f128, 0.0); - try testArgs(i32, f128, 1e-1); - try testArgs(i32, f128, 1e0); - try testArgs(i32, f128, 1e1); - try testArgs(i32, f128, 1e2); - try testArgs(i32, f128, 1e3); - try testArgs(i32, f128, 1e4); - try testArgs(i32, f128, 1e5); - try testArgs(i32, f128, 1e6); - try testArgs(i32, f128, 1e7); - try testArgs(i32, f128, 1e8); - try testArgs(i32, f128, 1e9); - try testArgs(i32, f128, next(f128, next(f128, 0x0.8p32, 0.0), 0.0)); - try testArgs(i32, f128, next(f128, 0x0.8p32, 0.0)); - - try testArgs(u32, f128, -0.0); - try testArgs(u32, f128, 0.0); - try testArgs(u32, f128, 1e-1); - try testArgs(u32, f128, 1e0); - try testArgs(u32, f128, 1e1); - try testArgs(u32, f128, 1e2); - try testArgs(u32, f128, 1e3); - try testArgs(u32, f128, 1e4); - try testArgs(u32, f128, 1e5); - try testArgs(u32, f128, 1e6); - try testArgs(u32, f128, 1e7); - try testArgs(u32, f128, 1e8); - try testArgs(u32, f128, 1e9); - try testArgs(u32, f128, next(f128, next(f128, 0x1p32, 0.0), 0.0)); - try testArgs(u32, f128, next(f128, 0x1p32, 0.0)); - - try testArgs(i64, f128, -0x0.8p64); - try testArgs(i64, f128, next(f128, -0x0.8p64, -0.0)); - try testArgs(i64, f128, next(f128, next(f128, -0x0.8p64, -0.0), -0.0)); - try testArgs(i64, f128, -1e18); - try testArgs(i64, f128, -1e16); - try testArgs(i64, f128, -1e14); - try testArgs(i64, f128, -1e12); - try testArgs(i64, f128, -1e10); - try testArgs(i64, f128, -1e8); - try testArgs(i64, f128, -1e6); - try testArgs(i64, f128, -1e4); - try testArgs(i64, f128, -1e2); - try testArgs(i64, f128, -1e0); - try testArgs(i64, f128, -1e-1); - try testArgs(i64, f128, -0.0); - try testArgs(i64, f128, 0.0); - try testArgs(i64, f128, 1e-1); - try testArgs(i64, f128, 1e0); - try testArgs(i64, f128, 1e2); - try testArgs(i64, f128, 1e4); - try testArgs(i64, f128, 1e6); - try testArgs(i64, f128, 1e8); - try testArgs(i64, f128, 1e10); - try testArgs(i64, f128, 1e11); - try testArgs(i64, f128, 1e12); - try testArgs(i64, f128, 1e13); - try testArgs(i64, f128, 1e14); - try testArgs(i64, f128, 1e15); - try testArgs(i64, f128, 1e16); - try testArgs(i64, f128, 1e17); - try testArgs(i64, f128, 1e18); - try testArgs(i64, f128, next(f128, next(f128, 0x0.8p64, 0.0), 0.0)); - try testArgs(i64, f128, next(f128, 0x0.8p64, 0.0)); - - try testArgs(u64, f128, -0.0); - try testArgs(u64, f128, 0.0); - try testArgs(u64, f128, 1e-1); - try testArgs(u64, f128, 1e0); - try testArgs(u64, f128, 1e2); - try testArgs(u64, f128, 1e4); - try testArgs(u64, f128, 1e6); - try testArgs(u64, f128, 1e8); - try testArgs(u64, f128, 1e10); - try testArgs(u64, f128, 1e12); - try testArgs(u64, f128, 1e14); - try testArgs(u64, f128, 1e16); - try testArgs(u64, f128, 1e18); - try testArgs(u64, f128, next(f128, next(f128, 0x1p64, 0.0), 0.0)); - try testArgs(u64, f128, next(f128, 0x1p64, 0.0)); - - try testArgs(i128, f128, -0x0.8p128); - try testArgs(i128, f128, next(f128, -0x0.8p128, -0.0)); - try testArgs(i128, f128, next(f128, next(f128, -0x0.8p128, -0.0), -0.0)); - try testArgs(i128, f128, -1e38); - try testArgs(i128, f128, -1e34); - try testArgs(i128, f128, -1e30); - try testArgs(i128, f128, -1e26); - try testArgs(i128, f128, -1e22); - try testArgs(i128, f128, -1e18); - try testArgs(i128, f128, -1e14); - try testArgs(i128, f128, -1e10); - try testArgs(i128, f128, -1e6); - try testArgs(i128, f128, -1e2); - try testArgs(i128, f128, -1e0); - try testArgs(i128, f128, -1e-1); - try testArgs(i128, f128, -0.0); - try testArgs(i128, f128, 0.0); - try testArgs(i128, f128, 1e-1); - try testArgs(i128, f128, 1e0); - try testArgs(i128, f128, 1e2); - try testArgs(i128, f128, 1e6); - try testArgs(i128, f128, 1e10); - try testArgs(i128, f128, 1e14); - try testArgs(i128, f128, 1e18); - try testArgs(i128, f128, 1e22); - try testArgs(i128, f128, 1e26); - try testArgs(i128, f128, 1e30); - try testArgs(i128, f128, 1e34); - try testArgs(i128, f128, 1e38); - try testArgs(i128, f128, next(f128, next(f128, 0x0.8p128, 0.0), 0.0)); - try testArgs(i128, f128, next(f128, 0x0.8p128, 0.0)); - - try testArgs(u128, f128, -0.0); - try testArgs(u128, f128, 0.0); - try testArgs(u128, f128, 1e-1); - try testArgs(u128, f128, 1e0); - try testArgs(u128, f128, 1e2); - try testArgs(u128, f128, 1e6); - try testArgs(u128, f128, 1e10); - try testArgs(u128, f128, 1e14); - try testArgs(u128, f128, 1e18); - try testArgs(u128, f128, 1e22); - try testArgs(u128, f128, 1e26); - try testArgs(u128, f128, 1e30); - try testArgs(u128, f128, 1e34); - try testArgs(u128, f128, 1e38); - try testArgs(u128, f128, next(f128, next(f128, 0x1p128, 0.0), 0.0)); - try testArgs(u128, f128, next(f128, 0x1p128, 0.0)); - - try testArgs(i256, f128, -0x0.8p256); - try testArgs(i256, f128, next(f128, -0x0.8p256, -0.0)); - try testArgs(i256, f128, next(f128, next(f128, -0x0.8p256, -0.0), -0.0)); - try testArgs(i256, f128, -1e76); - try testArgs(i256, f128, -1e69); - try testArgs(i256, f128, -1e62); - try testArgs(i256, f128, -1e55); - try testArgs(i256, f128, -1e48); - try testArgs(i256, f128, -1e41); - try testArgs(i256, f128, -1e34); - try testArgs(i256, f128, -1e27); - try testArgs(i256, f128, -1e20); - try testArgs(i256, f128, -1e13); - try testArgs(i256, f128, -1e6); - try testArgs(i256, f128, -1e0); - try testArgs(i256, f128, -1e-1); - try testArgs(i256, f128, -0.0); - try testArgs(i256, f128, 0.0); - try testArgs(i256, f128, 1e-1); - try testArgs(i256, f128, 1e0); - try testArgs(i256, f128, 1e6); - try testArgs(i256, f128, 1e13); - try testArgs(i256, f128, 1e20); - try testArgs(i256, f128, 1e27); - try testArgs(i256, f128, 1e34); - try testArgs(i256, f128, 1e41); - try testArgs(i256, f128, 1e48); - try testArgs(i256, f128, 1e55); - try testArgs(i256, f128, 1e62); - try testArgs(i256, f128, 1e69); - try testArgs(i256, f128, 1e76); - try testArgs(i256, f128, next(f128, next(f128, 0x0.8p256, 0.0), 0.0)); - try testArgs(i256, f128, next(f128, 0x0.8p256, 0.0)); - - try testArgs(u256, f128, -0.0); - try testArgs(u256, f128, 0.0); - try testArgs(u256, f128, 1e-1); - try testArgs(u256, f128, 1e0); - try testArgs(u256, f128, 1e7); - try testArgs(u256, f128, 1e14); - try testArgs(u256, f128, 1e21); - try testArgs(u256, f128, 1e28); - try testArgs(u256, f128, 1e35); - try testArgs(u256, f128, 1e42); - try testArgs(u256, f128, 1e49); - try testArgs(u256, f128, 1e56); - try testArgs(u256, f128, 1e63); - try testArgs(u256, f128, 1e70); - try testArgs(u256, f128, 1e77); - try testArgs(u256, f128, next(f128, next(f128, 0x1p256, 0.0), 0.0)); - try testArgs(u256, f128, next(f128, 0x1p256, 0.0)); - } - fn testFloatsFromInts() !void { - try testArgs(f16, i8, imin(i8)); - try testArgs(f16, i8, imin(i8) + 1); - try testArgs(f16, i8, -1e2); - try testArgs(f16, i8, -1e1); - try testArgs(f16, i8, -1e0); - try testArgs(f16, i8, 0); - try testArgs(f16, i8, 1e0); - try testArgs(f16, i8, 1e1); - try testArgs(f16, i8, 1e2); - try testArgs(f16, i8, imax(i8) - 1); - try testArgs(f16, i8, imax(i8)); - - try testArgs(f16, u8, 0); - try testArgs(f16, u8, 1e0); - try testArgs(f16, u8, 1e1); - try testArgs(f16, u8, 1e2); - try testArgs(f16, u8, imax(u8) - 1); - try testArgs(f16, u8, imax(u8)); - - try testArgs(f16, i16, imin(i16)); - try testArgs(f16, i16, imin(i16) + 1); - try testArgs(f16, i16, -1e4); - try testArgs(f16, i16, -1e3); - try testArgs(f16, i16, -1e2); - try testArgs(f16, i16, -1e1); - try testArgs(f16, i16, -1e0); - try testArgs(f16, i16, 0); - try testArgs(f16, i16, 1e0); - try testArgs(f16, i16, 1e1); - try testArgs(f16, i16, 1e2); - try testArgs(f16, i16, 1e3); - try testArgs(f16, i16, 1e4); - try testArgs(f16, i16, imax(i16) - 1); - try testArgs(f16, i16, imax(i16)); - - try testArgs(f16, u16, 0); - try testArgs(f16, u16, 1e0); - try testArgs(f16, u16, 1e1); - try testArgs(f16, u16, 1e2); - try testArgs(f16, u16, 1e3); - try testArgs(f16, u16, 1e4); - try testArgs(f16, u16, imax(u16) - 1); - try testArgs(f16, u16, imax(u16)); - - try testArgs(f16, i32, imin(i32)); - try testArgs(f16, i32, imin(i32) + 1); - try testArgs(f16, i32, -1e9); - try testArgs(f16, i32, -1e8); - try testArgs(f16, i32, -1e7); - try testArgs(f16, i32, -1e6); - try testArgs(f16, i32, -1e5); - try testArgs(f16, i32, -1e4); - try testArgs(f16, i32, -1e3); - try testArgs(f16, i32, -1e2); - try testArgs(f16, i32, -1e1); - try testArgs(f16, i32, -1e0); - try testArgs(f16, i32, 0); - try testArgs(f16, i32, 1e0); - try testArgs(f16, i32, 1e1); - try testArgs(f16, i32, 1e2); - try testArgs(f16, i32, 1e3); - try testArgs(f16, i32, 1e4); - try testArgs(f16, i32, 1e5); - try testArgs(f16, i32, 1e6); - try testArgs(f16, i32, 1e7); - try testArgs(f16, i32, 1e8); - try testArgs(f16, i32, 1e9); - try testArgs(f16, i32, imax(i32) - 1); - try testArgs(f16, i32, imax(i32)); - - try testArgs(f16, u32, 0); - try testArgs(f16, u32, 1e0); - try testArgs(f16, u32, 1e1); - try testArgs(f16, u32, 1e2); - try testArgs(f16, u32, 1e3); - try testArgs(f16, u32, 1e4); - try testArgs(f16, u32, 1e5); - try testArgs(f16, u32, 1e6); - try testArgs(f16, u32, 1e7); - try testArgs(f16, u32, 1e8); - try testArgs(f16, u32, 1e9); - try testArgs(f16, u32, imax(u32) - 1); - try testArgs(f16, u32, imax(u32)); - - try testArgs(f16, i64, imin(i64)); - try testArgs(f16, i64, imin(i64) + 1); - try testArgs(f16, i64, -1e18); - try testArgs(f16, i64, -1e16); - try testArgs(f16, i64, -1e14); - try testArgs(f16, i64, -1e12); - try testArgs(f16, i64, -1e10); - try testArgs(f16, i64, -1e8); - try testArgs(f16, i64, -1e6); - try testArgs(f16, i64, -1e4); - try testArgs(f16, i64, -1e2); - try testArgs(f16, i64, -1e0); - try testArgs(f16, i64, 0); - try testArgs(f16, i64, 1e0); - try testArgs(f16, i64, 1e2); - try testArgs(f16, i64, 1e4); - try testArgs(f16, i64, 1e6); - try testArgs(f16, i64, 1e8); - try testArgs(f16, i64, 1e10); - try testArgs(f16, i64, 1e12); - try testArgs(f16, i64, 1e14); - try testArgs(f16, i64, 1e16); - try testArgs(f16, i64, 1e18); - try testArgs(f16, i64, imax(i64) - 1); - try testArgs(f16, i64, imax(i64)); - - try testArgs(f16, u64, 0); - try testArgs(f16, u64, 1e0); - try testArgs(f16, u64, 1e2); - try testArgs(f16, u64, 1e4); - try testArgs(f16, u64, 1e6); - try testArgs(f16, u64, 1e8); - try testArgs(f16, u64, 1e10); - try testArgs(f16, u64, 1e12); - try testArgs(f16, u64, 1e14); - try testArgs(f16, u64, 1e16); - try testArgs(f16, u64, 1e18); - try testArgs(f16, u64, imax(u64) - 1); - try testArgs(f16, u64, imax(u64)); - - try testArgs(f16, i128, imin(i128)); - try testArgs(f16, i128, imin(i128) + 1); - try testArgs(f16, i128, -1e38); - try testArgs(f16, i128, -1e34); - try testArgs(f16, i128, -1e30); - try testArgs(f16, i128, -1e26); - try testArgs(f16, i128, -1e22); - try testArgs(f16, i128, -1e18); - try testArgs(f16, i128, -1e14); - try testArgs(f16, i128, -1e10); - try testArgs(f16, i128, -1e6); - try testArgs(f16, i128, -1e2); - try testArgs(f16, i128, -1e0); - try testArgs(f16, i128, 0); - try testArgs(f16, i128, 1e0); - try testArgs(f16, i128, 1e2); - try testArgs(f16, i128, 1e6); - try testArgs(f16, i128, 1e10); - try testArgs(f16, i128, 1e14); - try testArgs(f16, i128, 1e18); - try testArgs(f16, i128, 1e22); - try testArgs(f16, i128, 1e26); - try testArgs(f16, i128, 1e30); - try testArgs(f16, i128, 1e34); - try testArgs(f16, i128, 1e38); - try testArgs(f16, i128, imax(i128) - 1); - try testArgs(f16, i128, imax(i128)); - - try testArgs(f16, u128, 0); - try testArgs(f16, u128, 1e0); - try testArgs(f16, u128, 1e2); - try testArgs(f16, u128, 1e6); - try testArgs(f16, u128, 1e10); - try testArgs(f16, u128, 1e14); - try testArgs(f16, u128, 1e18); - try testArgs(f16, u128, 1e22); - try testArgs(f16, u128, 1e26); - try testArgs(f16, u128, 1e30); - try testArgs(f16, u128, 1e34); - try testArgs(f16, u128, 1e38); - try testArgs(f16, u128, imax(u128) - 1); - try testArgs(f16, u128, imax(u128)); - - try testArgs(f16, i256, imin(i256)); - try testArgs(f16, i256, imin(i256) + 1); - try testArgs(f16, i256, -1e76); - try testArgs(f16, i256, -1e69); - try testArgs(f16, i256, -1e62); - try testArgs(f16, i256, -1e55); - try testArgs(f16, i256, -1e48); - try testArgs(f16, i256, -1e41); - try testArgs(f16, i256, -1e34); - try testArgs(f16, i256, -1e27); - try testArgs(f16, i256, -1e20); - try testArgs(f16, i256, -1e13); - try testArgs(f16, i256, -1e6); - try testArgs(f16, i256, -1e0); - try testArgs(f16, i256, 0); - try testArgs(f16, i256, 1e0); - try testArgs(f16, i256, 1e6); - try testArgs(f16, i256, 1e13); - try testArgs(f16, i256, 1e20); - try testArgs(f16, i256, 1e27); - try testArgs(f16, i256, 1e34); - try testArgs(f16, i256, 1e41); - try testArgs(f16, i256, 1e48); - try testArgs(f16, i256, 1e55); - try testArgs(f16, i256, 1e62); - try testArgs(f16, i256, 1e69); - try testArgs(f16, i256, 1e76); - try testArgs(f16, i256, imax(i256) - 1); - try testArgs(f16, i256, imax(i256)); - - try testArgs(f16, u256, 0); - try testArgs(f16, u256, 1e0); - try testArgs(f16, u256, 1e7); - try testArgs(f16, u256, 1e14); - try testArgs(f16, u256, 1e21); - try testArgs(f16, u256, 1e28); - try testArgs(f16, u256, 1e35); - try testArgs(f16, u256, 1e42); - try testArgs(f16, u256, 1e49); - try testArgs(f16, u256, 1e56); - try testArgs(f16, u256, 1e63); - try testArgs(f16, u256, 1e70); - try testArgs(f16, u256, 1e77); - try testArgs(f16, u256, imax(u256) - 1); - try testArgs(f16, u256, imax(u256)); - - try testArgs(f32, i8, imin(i8)); - try testArgs(f32, i8, imin(i8) + 1); - try testArgs(f32, i8, -1e2); - try testArgs(f32, i8, -1e1); - try testArgs(f32, i8, -1e0); - try testArgs(f32, i8, 0); - try testArgs(f32, i8, 1e0); - try testArgs(f32, i8, 1e1); - try testArgs(f32, i8, 1e2); - try testArgs(f32, i8, imax(i8) - 1); - try testArgs(f32, i8, imax(i8)); - - try testArgs(f32, u8, 0); - try testArgs(f32, u8, 1e0); - try testArgs(f32, u8, 1e1); - try testArgs(f32, u8, 1e2); - try testArgs(f32, u8, imax(u8) - 1); - try testArgs(f32, u8, imax(u8)); - - try testArgs(f32, i16, imin(i16)); - try testArgs(f32, i16, imin(i16) + 1); - try testArgs(f32, i16, -1e4); - try testArgs(f32, i16, -1e3); - try testArgs(f32, i16, -1e2); - try testArgs(f32, i16, -1e1); - try testArgs(f32, i16, -1e0); - try testArgs(f32, i16, 0); - try testArgs(f32, i16, 1e0); - try testArgs(f32, i16, 1e1); - try testArgs(f32, i16, 1e2); - try testArgs(f32, i16, 1e3); - try testArgs(f32, i16, 1e4); - try testArgs(f32, i16, imax(i16) - 1); - try testArgs(f32, i16, imax(i16)); - - try testArgs(f32, u16, 0); - try testArgs(f32, u16, 1e0); - try testArgs(f32, u16, 1e1); - try testArgs(f32, u16, 1e2); - try testArgs(f32, u16, 1e3); - try testArgs(f32, u16, 1e4); - try testArgs(f32, u16, imax(u16) - 1); - try testArgs(f32, u16, imax(u16)); - - try testArgs(f32, i32, imin(i32)); - try testArgs(f32, i32, imin(i32) + 1); - try testArgs(f32, i32, -1e9); - try testArgs(f32, i32, -1e8); - try testArgs(f32, i32, -1e7); - try testArgs(f32, i32, -1e6); - try testArgs(f32, i32, -1e5); - try testArgs(f32, i32, -1e4); - try testArgs(f32, i32, -1e3); - try testArgs(f32, i32, -1e2); - try testArgs(f32, i32, -1e1); - try testArgs(f32, i32, -1e0); - try testArgs(f32, i32, 0); - try testArgs(f32, i32, 1e0); - try testArgs(f32, i32, 1e1); - try testArgs(f32, i32, 1e2); - try testArgs(f32, i32, 1e3); - try testArgs(f32, i32, 1e4); - try testArgs(f32, i32, 1e5); - try testArgs(f32, i32, 1e6); - try testArgs(f32, i32, 1e7); - try testArgs(f32, i32, 1e8); - try testArgs(f32, i32, 1e9); - try testArgs(f32, i32, imax(i32) - 1); - try testArgs(f32, i32, imax(i32)); - - try testArgs(f32, u32, 0); - try testArgs(f32, u32, 1e0); - try testArgs(f32, u32, 1e1); - try testArgs(f32, u32, 1e2); - try testArgs(f32, u32, 1e3); - try testArgs(f32, u32, 1e4); - try testArgs(f32, u32, 1e5); - try testArgs(f32, u32, 1e6); - try testArgs(f32, u32, 1e7); - try testArgs(f32, u32, 1e8); - try testArgs(f32, u32, 1e9); - try testArgs(f32, u32, imax(u32) - 1); - try testArgs(f32, u32, imax(u32)); - - try testArgs(f32, i64, imin(i64)); - try testArgs(f32, i64, imin(i64) + 1); - try testArgs(f32, i64, -1e18); - try testArgs(f32, i64, -1e16); - try testArgs(f32, i64, -1e14); - try testArgs(f32, i64, -1e12); - try testArgs(f32, i64, -1e10); - try testArgs(f32, i64, -1e8); - try testArgs(f32, i64, -1e6); - try testArgs(f32, i64, -1e4); - try testArgs(f32, i64, -1e2); - try testArgs(f32, i64, -1e0); - try testArgs(f32, i64, 0); - try testArgs(f32, i64, 1e0); - try testArgs(f32, i64, 1e2); - try testArgs(f32, i64, 1e4); - try testArgs(f32, i64, 1e6); - try testArgs(f32, i64, 1e8); - try testArgs(f32, i64, 1e10); - try testArgs(f32, i64, 1e12); - try testArgs(f32, i64, 1e14); - try testArgs(f32, i64, 1e16); - try testArgs(f32, i64, 1e18); - try testArgs(f32, i64, imax(i64) - 1); - try testArgs(f32, i64, imax(i64)); - - try testArgs(f32, u64, 0); - try testArgs(f32, u64, 1e0); - try testArgs(f32, u64, 1e2); - try testArgs(f32, u64, 1e4); - try testArgs(f32, u64, 1e6); - try testArgs(f32, u64, 1e8); - try testArgs(f32, u64, 1e10); - try testArgs(f32, u64, 1e12); - try testArgs(f32, u64, 1e14); - try testArgs(f32, u64, 1e16); - try testArgs(f32, u64, 1e18); - try testArgs(f32, u64, imax(u64) - 1); - try testArgs(f32, u64, imax(u64)); - - try testArgs(f32, i128, imin(i128)); - try testArgs(f32, i128, imin(i128) + 1); - try testArgs(f32, i128, -1e38); - try testArgs(f32, i128, -1e34); - try testArgs(f32, i128, -1e30); - try testArgs(f32, i128, -1e26); - try testArgs(f32, i128, -1e22); - try testArgs(f32, i128, -1e18); - try testArgs(f32, i128, -1e14); - try testArgs(f32, i128, -1e10); - try testArgs(f32, i128, -1e6); - try testArgs(f32, i128, -1e2); - try testArgs(f32, i128, -1e0); - try testArgs(f32, i128, 0); - try testArgs(f32, i128, 1e0); - try testArgs(f32, i128, 1e2); - try testArgs(f32, i128, 1e6); - try testArgs(f32, i128, 1e10); - try testArgs(f32, i128, 1e14); - try testArgs(f32, i128, 1e18); - try testArgs(f32, i128, 1e22); - try testArgs(f32, i128, 1e26); - try testArgs(f32, i128, 1e30); - try testArgs(f32, i128, 1e34); - try testArgs(f32, i128, 1e38); - try testArgs(f32, i128, imax(i128) - 1); - try testArgs(f32, i128, imax(i128)); - - try testArgs(f32, u128, 0); - try testArgs(f32, u128, 1e0); - try testArgs(f32, u128, 1e2); - try testArgs(f32, u128, 1e6); - try testArgs(f32, u128, 1e10); - try testArgs(f32, u128, 1e14); - try testArgs(f32, u128, 1e18); - try testArgs(f32, u128, 1e22); - try testArgs(f32, u128, 1e26); - try testArgs(f32, u128, 1e30); - try testArgs(f32, u128, 1e34); - try testArgs(f32, u128, 1e38); - try testArgs(f32, u128, imax(u128) - 1); - try testArgs(f32, u128, imax(u128)); - - try testArgs(f32, i256, imin(i256)); - try testArgs(f32, i256, imin(i256) + 1); - try testArgs(f32, i256, -1e76); - try testArgs(f32, i256, -1e69); - try testArgs(f32, i256, -1e62); - try testArgs(f32, i256, -1e55); - try testArgs(f32, i256, -1e48); - try testArgs(f32, i256, -1e41); - try testArgs(f32, i256, -1e34); - try testArgs(f32, i256, -1e27); - try testArgs(f32, i256, -1e20); - try testArgs(f32, i256, -1e13); - try testArgs(f32, i256, -1e6); - try testArgs(f32, i256, -1e0); - try testArgs(f32, i256, 0); - try testArgs(f32, i256, 1e0); - try testArgs(f32, i256, 1e6); - try testArgs(f32, i256, 1e13); - try testArgs(f32, i256, 1e20); - try testArgs(f32, i256, 1e27); - try testArgs(f32, i256, 1e34); - try testArgs(f32, i256, 1e41); - try testArgs(f32, i256, 1e48); - try testArgs(f32, i256, 1e55); - try testArgs(f32, i256, 1e62); - try testArgs(f32, i256, 1e69); - try testArgs(f32, i256, 1e76); - try testArgs(f32, i256, imax(i256) - 1); - try testArgs(f32, i256, imax(i256)); - - try testArgs(f32, u256, 0); - try testArgs(f32, u256, 1e0); - try testArgs(f32, u256, 1e7); - try testArgs(f32, u256, 1e14); - try testArgs(f32, u256, 1e21); - try testArgs(f32, u256, 1e28); - try testArgs(f32, u256, 1e35); - try testArgs(f32, u256, 1e42); - try testArgs(f32, u256, 1e49); - try testArgs(f32, u256, 1e56); - try testArgs(f32, u256, 1e63); - try testArgs(f32, u256, 1e70); - try testArgs(f32, u256, 1e77); - try testArgs(f32, u256, imax(u256) - 1); - try testArgs(f32, u256, imax(u256)); - - try testArgs(f64, i8, imin(i8)); - try testArgs(f64, i8, imin(i8) + 1); - try testArgs(f64, i8, -1e2); - try testArgs(f64, i8, -1e1); - try testArgs(f64, i8, -1e0); - try testArgs(f64, i8, 0); - try testArgs(f64, i8, 1e0); - try testArgs(f64, i8, 1e1); - try testArgs(f64, i8, 1e2); - try testArgs(f64, i8, imax(i8) - 1); - try testArgs(f64, i8, imax(i8)); - - try testArgs(f64, u8, 0); - try testArgs(f64, u8, 1e0); - try testArgs(f64, u8, 1e1); - try testArgs(f64, u8, 1e2); - try testArgs(f64, u8, imax(u8) - 1); - try testArgs(f64, u8, imax(u8)); - - try testArgs(f64, i16, imin(i16)); - try testArgs(f64, i16, imin(i16) + 1); - try testArgs(f64, i16, -1e4); - try testArgs(f64, i16, -1e3); - try testArgs(f64, i16, -1e2); - try testArgs(f64, i16, -1e1); - try testArgs(f64, i16, -1e0); - try testArgs(f64, i16, 0); - try testArgs(f64, i16, 1e0); - try testArgs(f64, i16, 1e1); - try testArgs(f64, i16, 1e2); - try testArgs(f64, i16, 1e3); - try testArgs(f64, i16, 1e4); - try testArgs(f64, i16, imax(i16) - 1); - try testArgs(f64, i16, imax(i16)); - - try testArgs(f64, u16, 0); - try testArgs(f64, u16, 1e0); - try testArgs(f64, u16, 1e1); - try testArgs(f64, u16, 1e2); - try testArgs(f64, u16, 1e3); - try testArgs(f64, u16, 1e4); - try testArgs(f64, u16, imax(u16) - 1); - try testArgs(f64, u16, imax(u16)); - - try testArgs(f64, i32, imin(i32)); - try testArgs(f64, i32, imin(i32) + 1); - try testArgs(f64, i32, -1e9); - try testArgs(f64, i32, -1e8); - try testArgs(f64, i32, -1e7); - try testArgs(f64, i32, -1e6); - try testArgs(f64, i32, -1e5); - try testArgs(f64, i32, -1e4); - try testArgs(f64, i32, -1e3); - try testArgs(f64, i32, -1e2); - try testArgs(f64, i32, -1e1); - try testArgs(f64, i32, -1e0); - try testArgs(f64, i32, 0); - try testArgs(f64, i32, 1e0); - try testArgs(f64, i32, 1e1); - try testArgs(f64, i32, 1e2); - try testArgs(f64, i32, 1e3); - try testArgs(f64, i32, 1e4); - try testArgs(f64, i32, 1e5); - try testArgs(f64, i32, 1e6); - try testArgs(f64, i32, 1e7); - try testArgs(f64, i32, 1e8); - try testArgs(f64, i32, 1e9); - try testArgs(f64, i32, imax(i32) - 1); - try testArgs(f64, i32, imax(i32)); - - try testArgs(f64, u32, 0); - try testArgs(f64, u32, 1e0); - try testArgs(f64, u32, 1e1); - try testArgs(f64, u32, 1e2); - try testArgs(f64, u32, 1e3); - try testArgs(f64, u32, 1e4); - try testArgs(f64, u32, 1e5); - try testArgs(f64, u32, 1e6); - try testArgs(f64, u32, 1e7); - try testArgs(f64, u32, 1e8); - try testArgs(f64, u32, 1e9); - try testArgs(f64, u32, imax(u32) - 1); - try testArgs(f64, u32, imax(u32)); - - try testArgs(f64, i64, imin(i64)); - try testArgs(f64, i64, imin(i64) + 1); - try testArgs(f64, i64, -1e18); - try testArgs(f64, i64, -1e16); - try testArgs(f64, i64, -1e14); - try testArgs(f64, i64, -1e12); - try testArgs(f64, i64, -1e10); - try testArgs(f64, i64, -1e8); - try testArgs(f64, i64, -1e6); - try testArgs(f64, i64, -1e4); - try testArgs(f64, i64, -1e2); - try testArgs(f64, i64, -1e0); - try testArgs(f64, i64, 0); - try testArgs(f64, i64, 1e0); - try testArgs(f64, i64, 1e2); - try testArgs(f64, i64, 1e4); - try testArgs(f64, i64, 1e6); - try testArgs(f64, i64, 1e8); - try testArgs(f64, i64, 1e10); - try testArgs(f64, i64, 1e12); - try testArgs(f64, i64, 1e14); - try testArgs(f64, i64, 1e16); - try testArgs(f64, i64, 1e18); - try testArgs(f64, i64, imax(i64) - 1); - try testArgs(f64, i64, imax(i64)); - - try testArgs(f64, u64, 0); - try testArgs(f64, u64, 1e0); - try testArgs(f64, u64, 1e2); - try testArgs(f64, u64, 1e4); - try testArgs(f64, u64, 1e6); - try testArgs(f64, u64, 1e8); - try testArgs(f64, u64, 1e10); - try testArgs(f64, u64, 1e12); - try testArgs(f64, u64, 1e14); - try testArgs(f64, u64, 1e16); - try testArgs(f64, u64, 1e18); - try testArgs(f64, u64, imax(u64) - 1); - try testArgs(f64, u64, imax(u64)); - - try testArgs(f64, i128, imin(i128)); - try testArgs(f64, i128, imin(i128) + 1); - try testArgs(f64, i128, -1e38); - try testArgs(f64, i128, -1e34); - try testArgs(f64, i128, -1e30); - try testArgs(f64, i128, -1e26); - try testArgs(f64, i128, -1e22); - try testArgs(f64, i128, -1e18); - try testArgs(f64, i128, -1e14); - try testArgs(f64, i128, -1e10); - try testArgs(f64, i128, -1e6); - try testArgs(f64, i128, -1e2); - try testArgs(f64, i128, -1e0); - try testArgs(f64, i128, 0); - try testArgs(f64, i128, 1e0); - try testArgs(f64, i128, 1e2); - try testArgs(f64, i128, 1e6); - try testArgs(f64, i128, 1e10); - try testArgs(f64, i128, 1e14); - try testArgs(f64, i128, 1e18); - try testArgs(f64, i128, 1e22); - try testArgs(f64, i128, 1e26); - try testArgs(f64, i128, 1e30); - try testArgs(f64, i128, 1e34); - try testArgs(f64, i128, 1e38); - try testArgs(f64, i128, imax(i128) - 1); - try testArgs(f64, i128, imax(i128)); - - try testArgs(f64, u128, 0); - try testArgs(f64, u128, 1e0); - try testArgs(f64, u128, 1e2); - try testArgs(f64, u128, 1e6); - try testArgs(f64, u128, 1e10); - try testArgs(f64, u128, 1e14); - try testArgs(f64, u128, 1e18); - try testArgs(f64, u128, 1e22); - try testArgs(f64, u128, 1e26); - try testArgs(f64, u128, 1e30); - try testArgs(f64, u128, 1e34); - try testArgs(f64, u128, 1e38); - try testArgs(f64, u128, imax(u128) - 1); - try testArgs(f64, u128, imax(u128)); - - try testArgs(f64, i256, imin(i256)); - try testArgs(f64, i256, imin(i256) + 1); - try testArgs(f64, i256, -1e76); - try testArgs(f64, i256, -1e69); - try testArgs(f64, i256, -1e62); - try testArgs(f64, i256, -1e55); - try testArgs(f64, i256, -1e48); - try testArgs(f64, i256, -1e41); - try testArgs(f64, i256, -1e34); - try testArgs(f64, i256, -1e27); - try testArgs(f64, i256, -1e20); - try testArgs(f64, i256, -1e13); - try testArgs(f64, i256, -1e6); - try testArgs(f64, i256, -1e0); - try testArgs(f64, i256, 0); - try testArgs(f64, i256, 1e0); - try testArgs(f64, i256, 1e6); - try testArgs(f64, i256, 1e13); - try testArgs(f64, i256, 1e20); - try testArgs(f64, i256, 1e27); - try testArgs(f64, i256, 1e34); - try testArgs(f64, i256, 1e41); - try testArgs(f64, i256, 1e48); - try testArgs(f64, i256, 1e55); - try testArgs(f64, i256, 1e62); - try testArgs(f64, i256, 1e69); - try testArgs(f64, i256, 1e76); - try testArgs(f64, i256, imax(i256) - 1); - try testArgs(f64, i256, imax(i256)); - - try testArgs(f64, u256, 0); - try testArgs(f64, u256, 1e0); - try testArgs(f64, u256, 1e7); - try testArgs(f64, u256, 1e14); - try testArgs(f64, u256, 1e21); - try testArgs(f64, u256, 1e28); - try testArgs(f64, u256, 1e35); - try testArgs(f64, u256, 1e42); - try testArgs(f64, u256, 1e49); - try testArgs(f64, u256, 1e56); - try testArgs(f64, u256, 1e63); - try testArgs(f64, u256, 1e70); - try testArgs(f64, u256, 1e77); - try testArgs(f64, u256, imax(u256) - 1); - try testArgs(f64, u256, imax(u256)); - - try testArgs(f80, i8, imin(i8)); - try testArgs(f80, i8, imin(i8) + 1); - try testArgs(f80, i8, -1e2); - try testArgs(f80, i8, -1e1); - try testArgs(f80, i8, -1e0); - try testArgs(f80, i8, 0); - try testArgs(f80, i8, 1e0); - try testArgs(f80, i8, 1e1); - try testArgs(f80, i8, 1e2); - try testArgs(f80, i8, imax(i8) - 1); - try testArgs(f80, i8, imax(i8)); - - try testArgs(f80, u8, 0); - try testArgs(f80, u8, 1e0); - try testArgs(f80, u8, 1e1); - try testArgs(f80, u8, 1e2); - try testArgs(f80, u8, imax(u8) - 1); - try testArgs(f80, u8, imax(u8)); - - try testArgs(f80, i16, imin(i16)); - try testArgs(f80, i16, imin(i16) + 1); - try testArgs(f80, i16, -1e4); - try testArgs(f80, i16, -1e3); - try testArgs(f80, i16, -1e2); - try testArgs(f80, i16, -1e1); - try testArgs(f80, i16, -1e0); - try testArgs(f80, i16, 0); - try testArgs(f80, i16, 1e0); - try testArgs(f80, i16, 1e1); - try testArgs(f80, i16, 1e2); - try testArgs(f80, i16, 1e3); - try testArgs(f80, i16, 1e4); - try testArgs(f80, i16, imax(i16) - 1); - try testArgs(f80, i16, imax(i16)); - - try testArgs(f80, u16, 0); - try testArgs(f80, u16, 1e0); - try testArgs(f80, u16, 1e1); - try testArgs(f80, u16, 1e2); - try testArgs(f80, u16, 1e3); - try testArgs(f80, u16, 1e4); - try testArgs(f80, u16, imax(u16) - 1); - try testArgs(f80, u16, imax(u16)); - - try testArgs(f80, i32, imin(i32)); - try testArgs(f80, i32, imin(i32) + 1); - try testArgs(f80, i32, -1e9); - try testArgs(f80, i32, -1e8); - try testArgs(f80, i32, -1e7); - try testArgs(f80, i32, -1e6); - try testArgs(f80, i32, -1e5); - try testArgs(f80, i32, -1e4); - try testArgs(f80, i32, -1e3); - try testArgs(f80, i32, -1e2); - try testArgs(f80, i32, -1e1); - try testArgs(f80, i32, -1e0); - try testArgs(f80, i32, 0); - try testArgs(f80, i32, 1e0); - try testArgs(f80, i32, 1e1); - try testArgs(f80, i32, 1e2); - try testArgs(f80, i32, 1e3); - try testArgs(f80, i32, 1e4); - try testArgs(f80, i32, 1e5); - try testArgs(f80, i32, 1e6); - try testArgs(f80, i32, 1e7); - try testArgs(f80, i32, 1e8); - try testArgs(f80, i32, 1e9); - try testArgs(f80, i32, imax(i32) - 1); - try testArgs(f80, i32, imax(i32)); - - try testArgs(f80, u32, 0); - try testArgs(f80, u32, 1e0); - try testArgs(f80, u32, 1e1); - try testArgs(f80, u32, 1e2); - try testArgs(f80, u32, 1e3); - try testArgs(f80, u32, 1e4); - try testArgs(f80, u32, 1e5); - try testArgs(f80, u32, 1e6); - try testArgs(f80, u32, 1e7); - try testArgs(f80, u32, 1e8); - try testArgs(f80, u32, 1e9); - try testArgs(f80, u32, imax(u32) - 1); - try testArgs(f80, u32, imax(u32)); - - try testArgs(f80, i64, imin(i64)); - try testArgs(f80, i64, imin(i64) + 1); - try testArgs(f80, i64, -1e18); - try testArgs(f80, i64, -1e16); - try testArgs(f80, i64, -1e14); - try testArgs(f80, i64, -1e12); - try testArgs(f80, i64, -1e10); - try testArgs(f80, i64, -1e8); - try testArgs(f80, i64, -1e6); - try testArgs(f80, i64, -1e4); - try testArgs(f80, i64, -1e2); - try testArgs(f80, i64, -1e0); - try testArgs(f80, i64, 0); - try testArgs(f80, i64, 1e0); - try testArgs(f80, i64, 1e2); - try testArgs(f80, i64, 1e4); - try testArgs(f80, i64, 1e6); - try testArgs(f80, i64, 1e8); - try testArgs(f80, i64, 1e10); - try testArgs(f80, i64, 1e12); - try testArgs(f80, i64, 1e14); - try testArgs(f80, i64, 1e16); - try testArgs(f80, i64, 1e18); - try testArgs(f80, i64, imax(i64) - 1); - try testArgs(f80, i64, imax(i64)); - - try testArgs(f80, u64, 0); - try testArgs(f80, u64, 1e0); - try testArgs(f80, u64, 1e2); - try testArgs(f80, u64, 1e4); - try testArgs(f80, u64, 1e6); - try testArgs(f80, u64, 1e8); - try testArgs(f80, u64, 1e10); - try testArgs(f80, u64, 1e12); - try testArgs(f80, u64, 1e14); - try testArgs(f80, u64, 1e16); - try testArgs(f80, u64, 1e18); - try testArgs(f80, u64, imax(u64) - 1); - try testArgs(f80, u64, imax(u64)); - - try testArgs(f80, i128, imin(i128)); - try testArgs(f80, i128, imin(i128) + 1); - try testArgs(f80, i128, -1e38); - try testArgs(f80, i128, -1e34); - try testArgs(f80, i128, -1e30); - try testArgs(f80, i128, -1e26); - try testArgs(f80, i128, -1e22); - try testArgs(f80, i128, -1e18); - try testArgs(f80, i128, -1e14); - try testArgs(f80, i128, -1e10); - try testArgs(f80, i128, -1e6); - try testArgs(f80, i128, -1e2); - try testArgs(f80, i128, -1e0); - try testArgs(f80, i128, 0); - try testArgs(f80, i128, 1e0); - try testArgs(f80, i128, 1e2); - try testArgs(f80, i128, 1e6); - try testArgs(f80, i128, 1e10); - try testArgs(f80, i128, 1e14); - try testArgs(f80, i128, 1e18); - try testArgs(f80, i128, 1e22); - try testArgs(f80, i128, 1e26); - try testArgs(f80, i128, 1e30); - try testArgs(f80, i128, 1e34); - try testArgs(f80, i128, 1e38); - try testArgs(f80, i128, imax(i128) - 1); - try testArgs(f80, i128, imax(i128)); - - try testArgs(f80, u128, 0); - try testArgs(f80, u128, 1e0); - try testArgs(f80, u128, 1e2); - try testArgs(f80, u128, 1e6); - try testArgs(f80, u128, 1e10); - try testArgs(f80, u128, 1e14); - try testArgs(f80, u128, 1e18); - try testArgs(f80, u128, 1e22); - try testArgs(f80, u128, 1e26); - try testArgs(f80, u128, 1e30); - try testArgs(f80, u128, 1e34); - try testArgs(f80, u128, 1e38); - try testArgs(f80, u128, imax(u128) - 1); - try testArgs(f80, u128, imax(u128)); - - try testArgs(f80, i256, imin(i256)); - try testArgs(f80, i256, imin(i256) + 1); - try testArgs(f80, i256, -1e76); - try testArgs(f80, i256, -1e69); - try testArgs(f80, i256, -1e62); - try testArgs(f80, i256, -1e55); - try testArgs(f80, i256, -1e48); - try testArgs(f80, i256, -1e41); - try testArgs(f80, i256, -1e34); - try testArgs(f80, i256, -1e27); - try testArgs(f80, i256, -1e20); - try testArgs(f80, i256, -1e13); - try testArgs(f80, i256, -1e6); - try testArgs(f80, i256, -1e0); - try testArgs(f80, i256, 0); - try testArgs(f80, i256, 1e0); - try testArgs(f80, i256, 1e6); - try testArgs(f80, i256, 1e13); - try testArgs(f80, i256, 1e20); - try testArgs(f80, i256, 1e27); - try testArgs(f80, i256, 1e34); - try testArgs(f80, i256, 1e41); - try testArgs(f80, i256, 1e48); - try testArgs(f80, i256, 1e55); - try testArgs(f80, i256, 1e62); - try testArgs(f80, i256, 1e69); - try testArgs(f80, i256, 1e76); - try testArgs(f80, i256, imax(i256) - 1); - try testArgs(f80, i256, imax(i256)); - - try testArgs(f80, u256, 0); - try testArgs(f80, u256, 1e0); - try testArgs(f80, u256, 1e7); - try testArgs(f80, u256, 1e14); - try testArgs(f80, u256, 1e21); - try testArgs(f80, u256, 1e28); - try testArgs(f80, u256, 1e35); - try testArgs(f80, u256, 1e42); - try testArgs(f80, u256, 1e49); - try testArgs(f80, u256, 1e56); - try testArgs(f80, u256, 1e63); - try testArgs(f80, u256, 1e70); - try testArgs(f80, u256, 1e77); - try testArgs(f80, u256, imax(u256) - 1); - try testArgs(f80, u256, imax(u256)); - - try testArgs(f128, i8, imin(i8)); - try testArgs(f128, i8, imin(i8) + 1); - try testArgs(f128, i8, -1e2); - try testArgs(f128, i8, -1e1); - try testArgs(f128, i8, -1e0); - try testArgs(f128, i8, 0); - try testArgs(f128, i8, 1e0); - try testArgs(f128, i8, 1e1); - try testArgs(f128, i8, 1e2); - try testArgs(f128, i8, imax(i8) - 1); - try testArgs(f128, i8, imax(i8)); - - try testArgs(f128, u8, 0); - try testArgs(f128, u8, 1e0); - try testArgs(f128, u8, 1e1); - try testArgs(f128, u8, 1e2); - try testArgs(f128, u8, imax(u8) - 1); - try testArgs(f128, u8, imax(u8)); - - try testArgs(f128, i16, imin(i16)); - try testArgs(f128, i16, imin(i16) + 1); - try testArgs(f128, i16, -1e4); - try testArgs(f128, i16, -1e3); - try testArgs(f128, i16, -1e2); - try testArgs(f128, i16, -1e1); - try testArgs(f128, i16, -1e0); - try testArgs(f128, i16, 0); - try testArgs(f128, i16, 1e0); - try testArgs(f128, i16, 1e1); - try testArgs(f128, i16, 1e2); - try testArgs(f128, i16, 1e3); - try testArgs(f128, i16, 1e4); - try testArgs(f128, i16, imax(i16) - 1); - try testArgs(f128, i16, imax(i16)); - - try testArgs(f128, u16, 0); - try testArgs(f128, u16, 1e0); - try testArgs(f128, u16, 1e1); - try testArgs(f128, u16, 1e2); - try testArgs(f128, u16, 1e3); - try testArgs(f128, u16, 1e4); - try testArgs(f128, u16, imax(u16) - 1); - try testArgs(f128, u16, imax(u16)); - - try testArgs(f128, i32, imin(i32)); - try testArgs(f128, i32, imin(i32) + 1); - try testArgs(f128, i32, -1e9); - try testArgs(f128, i32, -1e8); - try testArgs(f128, i32, -1e7); - try testArgs(f128, i32, -1e6); - try testArgs(f128, i32, -1e5); - try testArgs(f128, i32, -1e4); - try testArgs(f128, i32, -1e3); - try testArgs(f128, i32, -1e2); - try testArgs(f128, i32, -1e1); - try testArgs(f128, i32, -1e0); - try testArgs(f128, i32, 0); - try testArgs(f128, i32, 1e0); - try testArgs(f128, i32, 1e1); - try testArgs(f128, i32, 1e2); - try testArgs(f128, i32, 1e3); - try testArgs(f128, i32, 1e4); - try testArgs(f128, i32, 1e5); - try testArgs(f128, i32, 1e6); - try testArgs(f128, i32, 1e7); - try testArgs(f128, i32, 1e8); - try testArgs(f128, i32, 1e9); - try testArgs(f128, i32, imax(i32) - 1); - try testArgs(f128, i32, imax(i32)); - - try testArgs(f128, u32, 0); - try testArgs(f128, u32, 1e0); - try testArgs(f128, u32, 1e1); - try testArgs(f128, u32, 1e2); - try testArgs(f128, u32, 1e3); - try testArgs(f128, u32, 1e4); - try testArgs(f128, u32, 1e5); - try testArgs(f128, u32, 1e6); - try testArgs(f128, u32, 1e7); - try testArgs(f128, u32, 1e8); - try testArgs(f128, u32, 1e9); - try testArgs(f128, u32, imax(u32) - 1); - try testArgs(f128, u32, imax(u32)); - - try testArgs(f128, i64, imin(i64)); - try testArgs(f128, i64, imin(i64) + 1); - try testArgs(f128, i64, -1e18); - try testArgs(f128, i64, -1e16); - try testArgs(f128, i64, -1e14); - try testArgs(f128, i64, -1e12); - try testArgs(f128, i64, -1e10); - try testArgs(f128, i64, -1e8); - try testArgs(f128, i64, -1e6); - try testArgs(f128, i64, -1e4); - try testArgs(f128, i64, -1e2); - try testArgs(f128, i64, -1e0); - try testArgs(f128, i64, 0); - try testArgs(f128, i64, 1e0); - try testArgs(f128, i64, 1e2); - try testArgs(f128, i64, 1e4); - try testArgs(f128, i64, 1e6); - try testArgs(f128, i64, 1e8); - try testArgs(f128, i64, 1e10); - try testArgs(f128, i64, 1e12); - try testArgs(f128, i64, 1e14); - try testArgs(f128, i64, 1e16); - try testArgs(f128, i64, 1e18); - try testArgs(f128, i64, imax(i64) - 1); - try testArgs(f128, i64, imax(i64)); - - try testArgs(f128, u64, 0); - try testArgs(f128, u64, 1e0); - try testArgs(f128, u64, 1e2); - try testArgs(f128, u64, 1e4); - try testArgs(f128, u64, 1e6); - try testArgs(f128, u64, 1e8); - try testArgs(f128, u64, 1e10); - try testArgs(f128, u64, 1e12); - try testArgs(f128, u64, 1e14); - try testArgs(f128, u64, 1e16); - try testArgs(f128, u64, 1e18); - try testArgs(f128, u64, imax(u64) - 1); - try testArgs(f128, u64, imax(u64)); - - try testArgs(f128, i128, imin(i128)); - try testArgs(f128, i128, imin(i128) + 1); - try testArgs(f128, i128, -1e38); - try testArgs(f128, i128, -1e34); - try testArgs(f128, i128, -1e30); - try testArgs(f128, i128, -1e26); - try testArgs(f128, i128, -1e22); - try testArgs(f128, i128, -1e18); - try testArgs(f128, i128, -1e14); - try testArgs(f128, i128, -1e10); - try testArgs(f128, i128, -1e6); - try testArgs(f128, i128, -1e2); - try testArgs(f128, i128, -1e0); - try testArgs(f128, i128, 0); - try testArgs(f128, i128, 1e0); - try testArgs(f128, i128, 1e2); - try testArgs(f128, i128, 1e6); - try testArgs(f128, i128, 1e10); - try testArgs(f128, i128, 1e14); - try testArgs(f128, i128, 1e18); - try testArgs(f128, i128, 1e22); - try testArgs(f128, i128, 1e26); - try testArgs(f128, i128, 1e30); - try testArgs(f128, i128, 1e34); - try testArgs(f128, i128, 1e38); - try testArgs(f128, i128, imax(i128) - 1); - try testArgs(f128, i128, imax(i128)); - - try testArgs(f128, u128, 0); - try testArgs(f128, u128, 1e0); - try testArgs(f128, u128, 1e2); - try testArgs(f128, u128, 1e6); - try testArgs(f128, u128, 1e10); - try testArgs(f128, u128, 1e14); - try testArgs(f128, u128, 1e18); - try testArgs(f128, u128, 1e22); - try testArgs(f128, u128, 1e26); - try testArgs(f128, u128, 1e30); - try testArgs(f128, u128, 1e34); - try testArgs(f128, u128, 1e38); - try testArgs(f128, u128, imax(u128) - 1); - try testArgs(f128, u128, imax(u128)); - - try testArgs(f128, i256, imin(i256)); - try testArgs(f128, i256, imin(i256) + 1); - try testArgs(f128, i256, -1e76); - try testArgs(f128, i256, -1e69); - try testArgs(f128, i256, -1e62); - try testArgs(f128, i256, -1e55); - try testArgs(f128, i256, -1e48); - try testArgs(f128, i256, -1e41); - try testArgs(f128, i256, -1e34); - try testArgs(f128, i256, -1e27); - try testArgs(f128, i256, -1e20); - try testArgs(f128, i256, -1e13); - try testArgs(f128, i256, -1e6); - try testArgs(f128, i256, -1e0); - try testArgs(f128, i256, 0); - try testArgs(f128, i256, 1e0); - try testArgs(f128, i256, 1e6); - try testArgs(f128, i256, 1e13); - try testArgs(f128, i256, 1e20); - try testArgs(f128, i256, 1e27); - try testArgs(f128, i256, 1e34); - try testArgs(f128, i256, 1e41); - try testArgs(f128, i256, 1e48); - try testArgs(f128, i256, 1e55); - try testArgs(f128, i256, 1e62); - try testArgs(f128, i256, 1e69); - try testArgs(f128, i256, 1e76); - try testArgs(f128, i256, imax(i256) - 1); - try testArgs(f128, i256, imax(i256)); - - try testArgs(f128, u256, 0); - try testArgs(f128, u256, 1e0); - try testArgs(f128, u256, 1e7); - try testArgs(f128, u256, 1e14); - try testArgs(f128, u256, 1e21); - try testArgs(f128, u256, 1e28); - try testArgs(f128, u256, 1e35); - try testArgs(f128, u256, 1e42); - try testArgs(f128, u256, 1e49); - try testArgs(f128, u256, 1e56); - try testArgs(f128, u256, 1e63); - try testArgs(f128, u256, 1e70); - try testArgs(f128, u256, 1e77); - try testArgs(f128, u256, imax(u256) - 1); - try testArgs(f128, u256, imax(u256)); - } - fn testIntVectorsFromFloatVectors() !void { - @setEvalBranchQuota(2_500); - - try testArgs(@Vector(1, i8), @Vector(1, f16), .{ - -0x0.8p8, - }); - try testArgs(@Vector(2, i8), @Vector(2, f16), .{ - next(f16, -0x0.8p8, -0.0), next(f16, next(f16, -0x0.8p8, -0.0), -0.0), - }); - try testArgs(@Vector(4, i8), @Vector(4, f16), .{ - -1e2, -1e1, -1e0, -1e-1, - }); - try testArgs(@Vector(8, i8), @Vector(8, f16), .{ - -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, - }); - try testArgs(@Vector(16, i8), @Vector(16, f16), .{ - 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), - -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, - }); - try testArgs(@Vector(32, i8), @Vector(32, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, - -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, - -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - }); - try testArgs(@Vector(64, i8), @Vector(64, f16), .{ - 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, - -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, - -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, - 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, - -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, - 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, - -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, - 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, - }); - try testArgs(@Vector(128, i8), @Vector(128, f16), .{ - -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, - -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, - 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, - -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, - 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, - -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, - 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, - -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, - 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, - -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, - -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, - 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, - -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, - -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, - }); - - try testArgs(@Vector(1, u8), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u8), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u8), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u8), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, next(f16, next(f16, 0x1p8, 0.0), 0.0), next(f16, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, - }); - try testArgs(@Vector(16, u8), @Vector(16, f16), .{ - 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, - }); - try testArgs(@Vector(32, u8), @Vector(32, f16), .{ - 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, - 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, - 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, - 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, - }); - try testArgs(@Vector(64, u8), @Vector(64, f16), .{ - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, - 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, - 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, - 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, - }); - try testArgs(@Vector(128, u8), @Vector(128, f16), .{ - 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, - 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, - 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, - 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, - 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, - 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, - 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, - 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, - 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, - 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, - 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, - 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, - 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, - 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, - 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, - }); - - try testArgs(@Vector(1, i16), @Vector(1, f16), .{ - -0x0.8p16, - }); - try testArgs(@Vector(2, i16), @Vector(2, f16), .{ - next(f16, -0x0.8p16, -0.0), next(f16, next(f16, -0x0.8p16, -0.0), -0.0), - }); - try testArgs(@Vector(4, i16), @Vector(4, f16), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i16), @Vector(8, f16), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i16), @Vector(16, f16), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f16, next(f16, 0x0.8p16, 0.0), 0.0), next(f16, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i16), @Vector(32, f16), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i16), @Vector(64, f16), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i16), @Vector(128, f16), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u16), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u16), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u16), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u16), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, 0x1p16, 0.0), 0.0), next(f16, 0x1p16, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u16), @Vector(16, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u16), @Vector(32, f16), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u16), @Vector(64, f16), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u16), @Vector(128, f16), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i32), @Vector(1, f16), .{ - -fmax(f16), - }); - try testArgs(@Vector(2, i32), @Vector(2, f16), .{ - next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), - }); - try testArgs(@Vector(4, i32), @Vector(4, f16), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i32), @Vector(8, f16), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i32), @Vector(16, f16), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i32), @Vector(32, f16), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i32), @Vector(64, f16), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i32), @Vector(128, f16), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u32), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u32), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u32), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u32), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u32), @Vector(16, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u32), @Vector(32, f16), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u32), @Vector(64, f16), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u32), @Vector(128, f16), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i64), @Vector(1, f16), .{ - -fmax(f16), - }); - try testArgs(@Vector(2, i64), @Vector(2, f16), .{ - next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), - }); - try testArgs(@Vector(4, i64), @Vector(4, f16), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i64), @Vector(8, f16), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i64), @Vector(16, f16), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i64), @Vector(32, f16), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i64), @Vector(64, f16), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i64), @Vector(128, f16), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u64), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u64), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u64), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u64), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u64), @Vector(16, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u64), @Vector(32, f16), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u64), @Vector(64, f16), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u64), @Vector(128, f16), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i128), @Vector(1, f16), .{ - -fmax(f16), - }); - try testArgs(@Vector(2, i128), @Vector(2, f16), .{ - next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), - }); - try testArgs(@Vector(4, i128), @Vector(4, f16), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i128), @Vector(8, f16), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i128), @Vector(16, f16), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i128), @Vector(32, f16), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i128), @Vector(64, f16), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u128), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u128), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u128), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u128), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u128), @Vector(16, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u128), @Vector(32, f16), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u128), @Vector(64, f16), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i256), @Vector(1, f16), .{ - -fmax(f16), - }); - try testArgs(@Vector(2, i256), @Vector(2, f16), .{ - next(f16, -fmax(f16), -0.0), next(f16, next(f16, -fmax(f16), -0.0), -0.0), - }); - try testArgs(@Vector(4, i256), @Vector(4, f16), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i256), @Vector(8, f16), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i256), @Vector(16, f16), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i256), @Vector(32, f16), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i256), @Vector(64, f16), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u256), @Vector(1, f16), .{ - -0.0, - }); - try testArgs(@Vector(2, u256), @Vector(2, f16), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u256), @Vector(4, f16), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u256), @Vector(8, f16), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f16, next(f16, fmax(f16), 0.0), 0.0), next(f16, fmax(f16), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u256), @Vector(16, f16), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u256), @Vector(32, f16), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u256), @Vector(64, f16), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i8), @Vector(1, f32), .{ - -0x0.8p8, - }); - try testArgs(@Vector(2, i8), @Vector(2, f32), .{ - next(f32, -0x0.8p8, -0.0), next(f32, next(f32, -0x0.8p8, -0.0), -0.0), - }); - try testArgs(@Vector(4, i8), @Vector(4, f32), .{ - -1e2, -1e1, -1e0, -1e-1, - }); - try testArgs(@Vector(8, i8), @Vector(8, f32), .{ - -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, - }); - try testArgs(@Vector(16, i8), @Vector(16, f32), .{ - 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), - -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, - }); - try testArgs(@Vector(32, i8), @Vector(32, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, - -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, - -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - }); - try testArgs(@Vector(64, i8), @Vector(64, f32), .{ - 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, - -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, - -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, - 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, - -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, - 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, - -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, - 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, - }); - try testArgs(@Vector(128, i8), @Vector(128, f32), .{ - -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, - -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, - 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, - -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, - 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, - -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, - 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, - -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, - 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, - -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, - -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, - 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, - -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, - -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, - }); - - try testArgs(@Vector(1, u8), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u8), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u8), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u8), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, next(f32, next(f32, 0x1p8, 0.0), 0.0), next(f32, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, - }); - try testArgs(@Vector(16, u8), @Vector(16, f32), .{ - 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, - }); - try testArgs(@Vector(32, u8), @Vector(32, f32), .{ - 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, - 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, - 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, - 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, - }); - try testArgs(@Vector(64, u8), @Vector(64, f32), .{ - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, - 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, - 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, - 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, - }); - try testArgs(@Vector(128, u8), @Vector(128, f32), .{ - 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, - 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, - 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, - 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, - 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, - 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, - 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, - 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, - 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, - 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, - 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, - 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, - 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, - 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, - 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, - }); - - try testArgs(@Vector(1, i16), @Vector(1, f32), .{ - -0x0.8p16, - }); - try testArgs(@Vector(2, i16), @Vector(2, f32), .{ - next(f32, -0x0.8p16, -0.0), next(f32, next(f32, -0x0.8p16, -0.0), -0.0), - }); - try testArgs(@Vector(4, i16), @Vector(4, f32), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i16), @Vector(8, f32), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i16), @Vector(16, f32), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f32, next(f32, 0x0.8p16, 0.0), 0.0), next(f32, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i16), @Vector(32, f32), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i16), @Vector(64, f32), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i16), @Vector(128, f32), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u16), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u16), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u16), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u16), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p16, 0.0), 0.0), next(f32, 0x1p16, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u16), @Vector(16, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u16), @Vector(32, f32), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u16), @Vector(64, f32), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u16), @Vector(128, f32), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i32), @Vector(1, f32), .{ - -0x0.8p32, - }); - try testArgs(@Vector(2, i32), @Vector(2, f32), .{ - next(f32, -0x0.8p32, -0.0), next(f32, next(f32, -0x0.8p32, -0.0), -0.0), - }); - try testArgs(@Vector(4, i32), @Vector(4, f32), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i32), @Vector(8, f32), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i32), @Vector(16, f32), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f32, next(f32, 0x0.8p32, 0.0), 0.0), next(f32, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i32), @Vector(32, f32), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i32), @Vector(64, f32), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i32), @Vector(128, f32), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u32), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u32), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u32), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u32), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p32, 0.0), 0.0), next(f32, 0x1p32, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u32), @Vector(16, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u32), @Vector(32, f32), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u32), @Vector(64, f32), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u32), @Vector(128, f32), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i64), @Vector(1, f32), .{ - -0x0.8p64, - }); - try testArgs(@Vector(2, i64), @Vector(2, f32), .{ - next(f32, -0x0.8p64, -0.0), next(f32, next(f32, -0x0.8p64, -0.0), -0.0), - }); - try testArgs(@Vector(4, i64), @Vector(4, f32), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i64), @Vector(8, f32), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i64), @Vector(16, f32), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f32, next(f32, 0x0.8p64, 0.0), 0.0), next(f32, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i64), @Vector(32, f32), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i64), @Vector(64, f32), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i64), @Vector(128, f32), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u64), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u64), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u64), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u64), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, 0x1p64, 0.0), 0.0), next(f32, 0x1p64, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u64), @Vector(16, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u64), @Vector(32, f32), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u64), @Vector(64, f32), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u64), @Vector(128, f32), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i128), @Vector(1, f32), .{ - -0x0.8p128, - }); - try testArgs(@Vector(2, i128), @Vector(2, f32), .{ - next(f32, -0x0.8p128, -0.0), next(f32, next(f32, -0x0.8p128, -0.0), -0.0), - }); - try testArgs(@Vector(4, i128), @Vector(4, f32), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i128), @Vector(8, f32), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i128), @Vector(16, f32), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f32, next(f32, 0x0.8p128, 0.0), 0.0), next(f32, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i128), @Vector(32, f32), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i128), @Vector(64, f32), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u128), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u128), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u128), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u128), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u128), @Vector(16, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u128), @Vector(32, f32), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u128), @Vector(64, f32), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i256), @Vector(1, f32), .{ - -fmax(f32), - }); - try testArgs(@Vector(2, i256), @Vector(2, f32), .{ - next(f32, -fmax(f32), -0.0), next(f32, next(f32, -fmax(f32), -0.0), -0.0), - }); - try testArgs(@Vector(4, i256), @Vector(4, f32), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i256), @Vector(8, f32), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i256), @Vector(16, f32), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i256), @Vector(32, f32), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i256), @Vector(64, f32), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u256), @Vector(1, f32), .{ - -0.0, - }); - try testArgs(@Vector(2, u256), @Vector(2, f32), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u256), @Vector(4, f32), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u256), @Vector(8, f32), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f32, next(f32, fmax(f32), 0.0), 0.0), next(f32, fmax(f32), 0.0), 2e-5, - }); - try testArgs(@Vector(16, u256), @Vector(16, f32), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u256), @Vector(32, f32), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u256), @Vector(64, f32), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i8), @Vector(1, f64), .{ - -0x0.8p8, - }); - try testArgs(@Vector(2, i8), @Vector(2, f64), .{ - next(f64, -0x0.8p8, -0.0), next(f64, next(f64, -0x0.8p8, -0.0), -0.0), - }); - try testArgs(@Vector(4, i8), @Vector(4, f64), .{ - -1e2, -1e1, -1e0, -1e-1, - }); - try testArgs(@Vector(8, i8), @Vector(8, f64), .{ - -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, - }); - try testArgs(@Vector(16, i8), @Vector(16, f64), .{ - 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), - -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, - }); - try testArgs(@Vector(32, i8), @Vector(32, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, - -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, - -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - }); - try testArgs(@Vector(64, i8), @Vector(64, f64), .{ - 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, - -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, - -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, - 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, - -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, - 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, - -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, - 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, - }); - try testArgs(@Vector(128, i8), @Vector(128, f64), .{ - -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, - -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, - 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, - -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, - 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, - -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, - 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, - -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, - 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, - -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, - -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, - 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, - -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, - -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, - }); - - try testArgs(@Vector(1, u8), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u8), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u8), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u8), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, next(f64, next(f64, 0x1p8, 0.0), 0.0), next(f64, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, - }); - try testArgs(@Vector(16, u8), @Vector(16, f64), .{ - 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, - }); - try testArgs(@Vector(32, u8), @Vector(32, f64), .{ - 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, - 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, - 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, - 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, - }); - try testArgs(@Vector(64, u8), @Vector(64, f64), .{ - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, - 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, - 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, - 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, - }); - try testArgs(@Vector(128, u8), @Vector(128, f64), .{ - 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, - 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, - 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, - 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, - 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, - 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, - 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, - 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, - 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, - 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, - 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, - 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, - 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, - 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, - 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, - }); - - try testArgs(@Vector(1, i16), @Vector(1, f64), .{ - -0x0.8p16, - }); - try testArgs(@Vector(2, i16), @Vector(2, f64), .{ - next(f64, -0x0.8p16, -0.0), next(f64, next(f64, -0x0.8p16, -0.0), -0.0), - }); - try testArgs(@Vector(4, i16), @Vector(4, f64), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i16), @Vector(8, f64), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i16), @Vector(16, f64), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f64, next(f64, 0x0.8p16, 0.0), 0.0), next(f64, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i16), @Vector(32, f64), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i16), @Vector(64, f64), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i16), @Vector(128, f64), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u16), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u16), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u16), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u16), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p16, 0.0), 0.0), next(f64, 0x1p16, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u16), @Vector(16, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u16), @Vector(32, f64), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u16), @Vector(64, f64), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u16), @Vector(128, f64), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i32), @Vector(1, f64), .{ - -0x0.8p32, - }); - try testArgs(@Vector(2, i32), @Vector(2, f64), .{ - next(f64, -0x0.8p32, -0.0), next(f64, next(f64, -0x0.8p32, -0.0), -0.0), - }); - try testArgs(@Vector(4, i32), @Vector(4, f64), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i32), @Vector(8, f64), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i32), @Vector(16, f64), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f64, next(f64, 0x0.8p32, 0.0), 0.0), next(f64, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i32), @Vector(32, f64), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i32), @Vector(64, f64), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i32), @Vector(128, f64), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u32), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u32), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u32), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u32), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p32, 0.0), 0.0), next(f64, 0x1p32, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u32), @Vector(16, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u32), @Vector(32, f64), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u32), @Vector(64, f64), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u32), @Vector(128, f64), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i64), @Vector(1, f64), .{ - -0x0.8p64, - }); - try testArgs(@Vector(2, i64), @Vector(2, f64), .{ - next(f64, -0x0.8p64, -0.0), next(f64, next(f64, -0x0.8p64, -0.0), -0.0), - }); - try testArgs(@Vector(4, i64), @Vector(4, f64), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i64), @Vector(8, f64), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i64), @Vector(16, f64), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f64, next(f64, 0x0.8p64, 0.0), 0.0), next(f64, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i64), @Vector(32, f64), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i64), @Vector(64, f64), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i64), @Vector(128, f64), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u64), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u64), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u64), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u64), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p64, 0.0), 0.0), next(f64, 0x1p64, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u64), @Vector(16, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u64), @Vector(32, f64), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u64), @Vector(64, f64), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u64), @Vector(128, f64), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i128), @Vector(1, f64), .{ - -0x0.8p128, - }); - try testArgs(@Vector(2, i128), @Vector(2, f64), .{ - next(f64, -0x0.8p128, -0.0), next(f64, next(f64, -0x0.8p128, -0.0), -0.0), - }); - try testArgs(@Vector(4, i128), @Vector(4, f64), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i128), @Vector(8, f64), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i128), @Vector(16, f64), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f64, next(f64, 0x0.8p128, 0.0), 0.0), next(f64, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i128), @Vector(32, f64), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i128), @Vector(64, f64), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u128), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u128), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u128), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u128), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p128, 0.0), 0.0), next(f64, 0x1p128, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u128), @Vector(16, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u128), @Vector(32, f64), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u128), @Vector(64, f64), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i256), @Vector(1, f64), .{ - -0x0.8p256, - }); - try testArgs(@Vector(2, i256), @Vector(2, f64), .{ - next(f64, -0x0.8p256, -0.0), next(f64, next(f64, -0x0.8p256, -0.0), -0.0), - }); - try testArgs(@Vector(4, i256), @Vector(4, f64), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i256), @Vector(8, f64), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i256), @Vector(16, f64), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f64, next(f64, 0x0.8p256, 0.0), 0.0), next(f64, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i256), @Vector(32, f64), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i256), @Vector(64, f64), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u256), @Vector(1, f64), .{ - -0.0, - }); - try testArgs(@Vector(2, u256), @Vector(2, f64), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u256), @Vector(4, f64), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u256), @Vector(8, f64), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f64, next(f64, 0x1p256, 0.0), 0.0), next(f64, 0x1p256, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u256), @Vector(16, f64), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u256), @Vector(32, f64), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u256), @Vector(64, f64), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i8), @Vector(1, f80), .{ - -0x0.8p8, - }); - try testArgs(@Vector(2, i8), @Vector(2, f80), .{ - next(f80, -0x0.8p8, -0.0), next(f80, next(f80, -0x0.8p8, -0.0), -0.0), - }); - try testArgs(@Vector(4, i8), @Vector(4, f80), .{ - -1e2, -1e1, -1e0, -1e-1, - }); - try testArgs(@Vector(8, i8), @Vector(8, f80), .{ - -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, - }); - try testArgs(@Vector(16, i8), @Vector(16, f80), .{ - 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), - -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, - }); - try testArgs(@Vector(32, i8), @Vector(32, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, - -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, - -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - }); - try testArgs(@Vector(64, i8), @Vector(64, f80), .{ - 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, - -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, - -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, - 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, - -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, - 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, - -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, - 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, - }); - try testArgs(@Vector(128, i8), @Vector(128, f80), .{ - -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, - -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, - 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, - -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, - 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, - -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, - 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, - -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, - 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, - -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, - -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, - 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, - -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, - -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, - }); - - try testArgs(@Vector(1, u8), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u8), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u8), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u8), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, next(f80, next(f80, 0x1p8, 0.0), 0.0), next(f80, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, - }); - try testArgs(@Vector(16, u8), @Vector(16, f80), .{ - 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, - }); - try testArgs(@Vector(32, u8), @Vector(32, f80), .{ - 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, - 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, - 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, - 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, - }); - try testArgs(@Vector(64, u8), @Vector(64, f80), .{ - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, - 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, - 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, - 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, - }); - try testArgs(@Vector(128, u8), @Vector(128, f80), .{ - 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, - 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, - 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, - 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, - 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, - 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, - 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, - 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, - 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, - 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, - 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, - 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, - 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, - 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, - 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, - }); - - try testArgs(@Vector(1, i16), @Vector(1, f80), .{ - -0x0.8p16, - }); - try testArgs(@Vector(2, i16), @Vector(2, f80), .{ - next(f80, -0x0.8p16, -0.0), next(f80, next(f80, -0x0.8p16, -0.0), -0.0), - }); - try testArgs(@Vector(4, i16), @Vector(4, f80), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i16), @Vector(8, f80), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i16), @Vector(16, f80), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f80, next(f80, 0x0.8p16, 0.0), 0.0), next(f80, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i16), @Vector(32, f80), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i16), @Vector(64, f80), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i16), @Vector(128, f80), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u16), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u16), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u16), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u16), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p16, 0.0), 0.0), next(f80, 0x1p16, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u16), @Vector(16, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u16), @Vector(32, f80), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u16), @Vector(64, f80), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u16), @Vector(128, f80), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i32), @Vector(1, f80), .{ - -0x0.8p32, - }); - try testArgs(@Vector(2, i32), @Vector(2, f80), .{ - next(f80, -0x0.8p32, -0.0), next(f80, next(f80, -0x0.8p32, -0.0), -0.0), - }); - try testArgs(@Vector(4, i32), @Vector(4, f80), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i32), @Vector(8, f80), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i32), @Vector(16, f80), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f80, next(f80, 0x0.8p32, 0.0), 0.0), next(f80, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i32), @Vector(32, f80), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i32), @Vector(64, f80), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i32), @Vector(128, f80), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u32), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u32), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u32), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u32), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p32, 0.0), 0.0), next(f80, 0x1p32, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u32), @Vector(16, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u32), @Vector(32, f80), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u32), @Vector(64, f80), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u32), @Vector(128, f80), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i64), @Vector(1, f80), .{ - -0x0.8p64, - }); - try testArgs(@Vector(2, i64), @Vector(2, f80), .{ - next(f80, -0x0.8p64, -0.0), next(f80, next(f80, -0x0.8p64, -0.0), -0.0), - }); - try testArgs(@Vector(4, i64), @Vector(4, f80), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i64), @Vector(8, f80), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i64), @Vector(16, f80), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f80, next(f80, 0x0.8p64, 0.0), 0.0), next(f80, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i64), @Vector(32, f80), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i64), @Vector(64, f80), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i64), @Vector(128, f80), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u64), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u64), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u64), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u64), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p64, 0.0), 0.0), next(f80, 0x1p64, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u64), @Vector(16, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u64), @Vector(32, f80), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u64), @Vector(64, f80), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u64), @Vector(128, f80), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i128), @Vector(1, f80), .{ - -0x0.8p128, - }); - try testArgs(@Vector(2, i128), @Vector(2, f80), .{ - next(f80, -0x0.8p128, -0.0), next(f80, next(f80, -0x0.8p128, -0.0), -0.0), - }); - try testArgs(@Vector(4, i128), @Vector(4, f80), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i128), @Vector(8, f80), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i128), @Vector(16, f80), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f80, next(f80, 0x0.8p128, 0.0), 0.0), next(f80, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i128), @Vector(32, f80), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i128), @Vector(64, f80), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u128), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u128), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u128), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u128), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p128, 0.0), 0.0), next(f80, 0x1p128, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u128), @Vector(16, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u128), @Vector(32, f80), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u128), @Vector(64, f80), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i256), @Vector(1, f80), .{ - -0x0.8p256, - }); - try testArgs(@Vector(2, i256), @Vector(2, f80), .{ - next(f80, -0x0.8p256, -0.0), next(f80, next(f80, -0x0.8p256, -0.0), -0.0), - }); - try testArgs(@Vector(4, i256), @Vector(4, f80), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i256), @Vector(8, f80), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i256), @Vector(16, f80), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f80, next(f80, 0x0.8p256, 0.0), 0.0), next(f80, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i256), @Vector(32, f80), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i256), @Vector(64, f80), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u256), @Vector(1, f80), .{ - -0.0, - }); - try testArgs(@Vector(2, u256), @Vector(2, f80), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u256), @Vector(4, f80), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u256), @Vector(8, f80), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f80, next(f80, 0x1p256, 0.0), 0.0), next(f80, 0x1p256, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u256), @Vector(16, f80), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u256), @Vector(32, f80), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u256), @Vector(64, f80), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i8), @Vector(1, f128), .{ - -0x0.8p8, - }); - try testArgs(@Vector(2, i8), @Vector(2, f128), .{ - next(f128, -0x0.8p8, -0.0), next(f128, next(f128, -0x0.8p8, -0.0), -0.0), - }); - try testArgs(@Vector(4, i8), @Vector(4, f128), .{ - -1e2, -1e1, -1e0, -1e-1, - }); - try testArgs(@Vector(8, i8), @Vector(8, f128), .{ - -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, 1e-5, 1e-4, - }); - try testArgs(@Vector(16, i8), @Vector(16, f128), .{ - 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), - -2e1, -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, - }); - try testArgs(@Vector(32, i8), @Vector(32, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, -3e1, -3e0, - -3e-1, -3e-2, -3e-3, -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, -4e1, -4e0, -4e-1, -4e-2, - -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - }); - try testArgs(@Vector(64, i8), @Vector(64, f128), .{ - 4e0, 4e1, -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, - -5e-5, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, - -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, -6e-5, 6e-5, - 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, -7e1, -7e0, - -7e-1, -7e-2, -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, - 7e-2, 7e-1, 7e0, 7e1, -8e1, -8e0, -8e-1, -8e-2, - -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, - 8e0, 8e1, -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, - }); - try testArgs(@Vector(128, i8), @Vector(128, f128), .{ - -9e-5, 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, - -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, -11e-5, 11e-5, - 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, -12e1, -12e0, - -12e-1, -12e-2, -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, - 12e-2, 12e-1, 12e0, 12e1, -13e0, -13e-1, -13e-2, -13e-3, - -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - -14e0, -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, - 14e-3, 14e-2, 14e-1, 14e0, -15e0, -15e-1, -15e-2, -15e-3, - -15e-4, -15e-5, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - -16e0, -16e-1, -16e-2, -16e-3, -16e-4, -16e-5, 16e-5, 16e-4, - 16e-3, 16e-2, 16e-1, 16e0, -17e0, -17e-1, -17e-2, -17e-3, - -17e-4, -17e-5, 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, - -18e0, -18e-1, -18e-2, -18e-3, -18e-4, -18e-5, 18e-5, 18e-4, - 18e-3, 18e-2, 18e-1, 18e0, -19e0, -19e-1, -19e-2, -19e-3, - -19e-4, -19e-5, 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, - -21e0, -21e-1, -21e-2, -21e-3, -21e-4, -21e-5, 21e-5, 21e-4, - }); - - try testArgs(@Vector(1, u8), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u8), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u8), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u8), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, next(f128, next(f128, 0x1p8, 0.0), 0.0), next(f128, 0x1p8, 0.0), 2e-5, 2e-4, 2e-3, - }); - try testArgs(@Vector(16, u8), @Vector(16, f128), .{ - 2e-2, 2e-1, 2e0, 2e1, 2e2, 3e-5, 3e-4, 3e-3, - 3e-2, 3e-1, 3e0, 3e1, 4e-5, 4e-4, 4e-3, 4e-2, - }); - try testArgs(@Vector(32, u8), @Vector(32, f128), .{ - 4e-1, 4e0, 4e1, 5e-5, 5e-4, 5e-3, 5e-2, 5e-1, - 5e0, 5e1, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, - 6e1, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, 7e0, 7e1, - 8e-5, 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 9e-5, - }); - try testArgs(@Vector(64, u8), @Vector(64, f128), .{ - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 11e-5, 11e-4, - 11e-3, 11e-2, 11e-1, 11e0, 11e1, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 15e-5, 15e-4, 15e-3, 15e-2, 15e-1, 15e0, - 15e1, 16e-5, 16e-4, 16e-3, 16e-2, 16e-1, 16e0, 16e1, - 17e-5, 17e-4, 17e-3, 17e-2, 17e-1, 17e0, 17e1, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 19e-5, 19e-4, - 19e-3, 19e-2, 19e-1, 19e0, 19e1, 21e-5, 21e-4, 21e-3, - }); - try testArgs(@Vector(128, u8), @Vector(128, f128), .{ - 21e-2, 21e-1, 21e0, 21e1, 22e-5, 22e-4, 22e-3, 22e-2, - 22e-1, 22e0, 22e1, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 24e-5, 24e-4, 24e-3, 24e-2, 24e-1, 24e0, - 24e1, 25e-5, 25e-4, 25e-3, 25e-2, 25e-1, 25e0, 25e1, - 26e-5, 26e-4, 26e-3, 26e-2, 26e-1, 26e0, 27e-5, 27e-4, - 27e-3, 27e-2, 27e-1, 27e0, 28e-5, 28e-4, 28e-3, 28e-2, - 28e-1, 28e0, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, - 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, 32e-5, 32e-4, - 32e-3, 32e-2, 32e-1, 32e0, 33e-5, 33e-4, 33e-3, 33e-2, - 33e-1, 33e0, 34e-5, 34e-4, 34e-3, 34e-2, 34e-1, 34e0, - 35e-5, 35e-4, 35e-3, 35e-2, 35e-1, 35e0, 36e-5, 36e-4, - 36e-3, 36e-2, 36e-1, 36e0, 37e-5, 37e-4, 37e-3, 37e-2, - 37e-1, 37e0, 38e-5, 38e-4, 38e-3, 38e-2, 38e-1, 38e0, - 39e-5, 39e-4, 39e-3, 39e-2, 39e-1, 39e0, 41e-5, 41e-4, - 41e-3, 41e-2, 41e-1, 41e0, 42e-5, 42e-4, 42e-3, 42e-2, - 42e-1, 42e0, 43e-5, 43e-4, 43e-3, 43e-2, 43e-1, 43e0, - }); - - try testArgs(@Vector(1, i16), @Vector(1, f128), .{ - -0x0.8p16, - }); - try testArgs(@Vector(2, i16), @Vector(2, f128), .{ - next(f128, -0x0.8p16, -0.0), next(f128, next(f128, -0x0.8p16, -0.0), -0.0), - }); - try testArgs(@Vector(4, i16), @Vector(4, f128), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i16), @Vector(8, f128), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i16), @Vector(16, f128), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f128, next(f128, 0x0.8p16, 0.0), 0.0), next(f128, 0x0.8p16, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i16), @Vector(32, f128), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i16), @Vector(64, f128), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i16), @Vector(128, f128), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u16), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u16), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u16), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u16), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p16, 0.0), 0.0), next(f128, 0x1p16, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u16), @Vector(16, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u16), @Vector(32, f128), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u16), @Vector(64, f128), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u16), @Vector(128, f128), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i32), @Vector(1, f128), .{ - -0x0.8p32, - }); - try testArgs(@Vector(2, i32), @Vector(2, f128), .{ - next(f128, -0x0.8p32, -0.0), next(f128, next(f128, -0x0.8p32, -0.0), -0.0), - }); - try testArgs(@Vector(4, i32), @Vector(4, f128), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i32), @Vector(8, f128), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i32), @Vector(16, f128), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f128, next(f128, 0x0.8p32, 0.0), 0.0), next(f128, 0x0.8p32, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i32), @Vector(32, f128), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i32), @Vector(64, f128), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i32), @Vector(128, f128), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u32), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u32), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u32), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u32), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p32, 0.0), 0.0), next(f128, 0x1p32, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u32), @Vector(16, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u32), @Vector(32, f128), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u32), @Vector(64, f128), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u32), @Vector(128, f128), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i64), @Vector(1, f128), .{ - -0x0.8p64, - }); - try testArgs(@Vector(2, i64), @Vector(2, f128), .{ - next(f128, -0x0.8p64, -0.0), next(f128, next(f128, -0x0.8p64, -0.0), -0.0), - }); - try testArgs(@Vector(4, i64), @Vector(4, f128), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i64), @Vector(8, f128), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i64), @Vector(16, f128), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f128, next(f128, 0x0.8p64, 0.0), 0.0), next(f128, 0x0.8p64, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i64), @Vector(32, f128), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i64), @Vector(64, f128), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - try testArgs(@Vector(128, i64), @Vector(128, f128), .{ - -7e-3, -7e-4, -7e-5, 7e-5, 7e-4, 7e-3, 7e-2, 7e-1, - 7e0, 7e1, 7e2, 7e3, -8e3, -8e2, -8e1, -8e0, - -8e-1, -8e-2, -8e-3, -8e-4, -8e-5, 8e-5, 8e-4, 8e-3, - 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, -9e3, -9e2, - -9e1, -9e0, -9e-1, -9e-2, -9e-3, -9e-4, -9e-5, 9e-5, - 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, 9e3, - -11e3, -11e2, -11e1, -11e0, -11e-1, -11e-2, -11e-3, -11e-4, - -11e-5, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, -12e3, -12e2, -12e1, -12e0, -12e-1, -12e-2, - -12e-3, -12e-4, -12e-5, 12e-5, 12e-4, 12e-3, 12e-2, 12e-1, - 12e0, 12e1, 12e2, 12e3, -13e3, -13e2, -13e1, -13e0, - -13e-1, -13e-2, -13e-3, -13e-4, -13e-5, 13e-5, 13e-4, 13e-3, - 13e-2, 13e-1, 13e0, 13e1, 13e2, -14e2, -14e1, -14e0, - -14e-1, -14e-2, -14e-3, -14e-4, -14e-5, 14e-5, 14e-4, 14e-3, - 14e-2, 14e-1, 14e0, 14e1, 14e2, 14e3, -15e3, -15e2, - -15e1, -15e0, -15e-1, -15e-2, -15e-3, -15e-4, -15e-5, 15e-5, - }); - - try testArgs(@Vector(1, u64), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u64), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u64), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u64), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p64, 0.0), 0.0), next(f128, 0x1p64, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u64), @Vector(16, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u64), @Vector(32, f128), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u64), @Vector(64, f128), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - try testArgs(@Vector(128, u64), @Vector(128, f128), .{ - 16e-2, 16e-1, 16e0, 16e1, 16e2, 16e3, 17e-5, 17e-4, - 17e-3, 17e-2, 17e-1, 17e0, 17e1, 17e2, 17e3, 18e-5, - 18e-4, 18e-3, 18e-2, 18e-1, 18e0, 18e1, 18e2, 18e3, - 19e-5, 19e-4, 19e-3, 19e-2, 19e-1, 19e0, 19e1, 19e2, - 19e3, 21e-5, 21e-4, 21e-3, 21e-2, 21e-1, 21e0, 21e1, - 21e2, 21e3, 22e-5, 22e-4, 22e-3, 22e-2, 22e-1, 22e0, - 22e1, 22e2, 22e3, 23e-5, 23e-4, 23e-3, 23e-2, 23e-1, - 23e0, 23e1, 23e2, 23e3, 24e-5, 24e-4, 24e-3, 24e-2, - 24e-1, 24e0, 24e1, 24e2, 24e3, 25e-5, 25e-4, 25e-3, - 25e-2, 25e-1, 25e0, 25e1, 25e2, 25e3, 26e-5, 26e-4, - 26e-3, 26e-2, 26e-1, 26e0, 26e1, 26e2, 26e3, 27e-5, - 27e-4, 27e-3, 27e-2, 27e-1, 27e0, 27e1, 27e2, 27e3, - 28e-5, 28e-4, 28e-3, 28e-2, 28e-1, 28e0, 28e1, 28e2, - 28e3, 29e-5, 29e-4, 29e-3, 29e-2, 29e-1, 29e0, 29e1, - 29e2, 29e3, 31e-5, 31e-4, 31e-3, 31e-2, 31e-1, 31e0, - 31e1, 31e2, 31e3, 32e-5, 32e-4, 32e-3, 32e-2, 32e-1, - }); - - try testArgs(@Vector(1, i128), @Vector(1, f128), .{ - -0x0.8p128, - }); - try testArgs(@Vector(2, i128), @Vector(2, f128), .{ - next(f128, -0x0.8p128, -0.0), next(f128, next(f128, -0x0.8p128, -0.0), -0.0), - }); - try testArgs(@Vector(4, i128), @Vector(4, f128), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i128), @Vector(8, f128), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i128), @Vector(16, f128), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f128, next(f128, 0x0.8p128, 0.0), 0.0), next(f128, 0x0.8p128, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i128), @Vector(32, f128), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i128), @Vector(64, f128), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u128), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u128), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u128), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u128), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p128, 0.0), 0.0), next(f128, 0x1p128, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u128), @Vector(16, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u128), @Vector(32, f128), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u128), @Vector(64, f128), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - - try testArgs(@Vector(1, i256), @Vector(1, f128), .{ - -0x0.8p256, - }); - try testArgs(@Vector(2, i256), @Vector(2, f128), .{ - next(f128, -0x0.8p256, -0.0), next(f128, next(f128, -0x0.8p256, -0.0), -0.0), - }); - try testArgs(@Vector(4, i256), @Vector(4, f128), .{ - -1e4, -1e3, -1e2, -1e1, - }); - try testArgs(@Vector(8, i256), @Vector(8, f128), .{ - -1e0, -1e-1, -1e-2, -1e-3, -1e-4, -1e-5, -0.0, 0.0, - }); - try testArgs(@Vector(16, i256), @Vector(16, f128), .{ - 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, - 1e3, 1e4, next(f128, next(f128, 0x0.8p256, 0.0), 0.0), next(f128, 0x0.8p256, 0.0), -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(32, i256), @Vector(32, f128), .{ - -2e0, -2e-1, -2e-2, -2e-3, -2e-4, -2e-5, 2e-5, 2e-4, - 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, 2e4, - -3e4, -3e3, -3e2, -3e1, -3e0, -3e-1, -3e-2, -3e-3, - -3e-4, -3e-5, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, - }); - try testArgs(@Vector(64, i256), @Vector(64, f128), .{ - 3e1, 3e2, 3e3, 3e4, -4e3, -4e2, -4e1, -4e0, - -4e-1, -4e-2, -4e-3, -4e-4, -4e-5, 4e-5, 4e-4, 4e-3, - 4e-2, 4e-1, 4e0, 4e1, 4e2, 4e3, -5e3, -5e2, - -5e1, -5e0, -5e-1, -5e-2, -5e-3, -5e-4, -5e-5, 5e-5, - 5e-4, 5e-3, 5e-2, 5e-1, 5e0, 5e1, 5e2, 5e3, - -6e3, -6e2, -6e1, -6e0, -6e-1, -6e-2, -6e-3, -6e-4, - -6e-5, 6e-5, 6e-4, 6e-3, 6e-2, 6e-1, 6e0, 6e1, - 6e2, 6e3, -7e3, -7e2, -7e1, -7e0, -7e-1, -7e-2, - }); - - try testArgs(@Vector(1, u256), @Vector(1, f128), .{ - -0.0, - }); - try testArgs(@Vector(2, u256), @Vector(2, f128), .{ - 0.0, 1e-5, - }); - try testArgs(@Vector(4, u256), @Vector(4, f128), .{ - 1e-4, 1e-3, 1e-2, 1e-1, - }); - try testArgs(@Vector(8, u256), @Vector(8, f128), .{ - 1e0, 1e1, 1e2, 1e3, 1e4, next(f128, next(f128, 0x1p256, 0.0), 0.0), next(f128, 0x1p256, 0.0), 2e-5, - }); - try testArgs(@Vector(16, u256), @Vector(16, f128), .{ - 2e-4, 2e-3, 2e-2, 2e-1, 2e0, 2e1, 2e2, 2e3, - 2e4, 3e-5, 3e-4, 3e-3, 3e-2, 3e-1, 3e0, 3e1, - }); - try testArgs(@Vector(32, u256), @Vector(32, f128), .{ - 3e2, 3e3, 3e4, 4e-5, 4e-4, 4e-3, 4e-2, 4e-1, - 4e0, 4e1, 4e2, 4e3, 5e-5, 5e-4, 5e-3, 5e-2, - 5e-1, 5e0, 5e1, 5e2, 5e3, 6e-5, 6e-4, 6e-3, - 6e-2, 6e-1, 6e0, 6e1, 6e2, 6e3, 7e-5, 7e-4, - }); - try testArgs(@Vector(64, u256), @Vector(64, f128), .{ - 7e-3, 7e-2, 7e-1, 7e0, 7e1, 7e2, 7e3, 8e-5, - 8e-4, 8e-3, 8e-2, 8e-1, 8e0, 8e1, 8e2, 8e3, - 9e-5, 9e-4, 9e-3, 9e-2, 9e-1, 9e0, 9e1, 9e2, - 9e3, 11e-5, 11e-4, 11e-3, 11e-2, 11e-1, 11e0, 11e1, - 11e2, 11e3, 13e-5, 13e-4, 13e-3, 13e-2, 13e-1, 13e0, - 13e1, 13e2, 13e3, 14e-5, 14e-4, 14e-3, 14e-2, 14e-1, - 14e0, 14e1, 14e2, 14e3, 15e-5, 15e-4, 15e-3, 15e-2, - 15e-1, 15e0, 15e1, 15e2, 15e3, 16e-5, 16e-4, 16e-3, - }); - } - fn testFloatVectorsFromIntVectors() !void { - @setEvalBranchQuota(2_700); - - try testArgs(@Vector(1, f16), @Vector(1, i8), .{ - imin(i8), - }); - try testArgs(@Vector(2, f16), @Vector(2, i8), .{ - imin(i8) + 1, -1e2, - }); - try testArgs(@Vector(4, f16), @Vector(4, i8), .{ - -1e1, -1e0, 0, 1e0, - }); - try testArgs(@Vector(8, f16), @Vector(8, i8), .{ - 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, - }); - try testArgs(@Vector(16, f16), @Vector(16, i8), .{ - 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, - 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, - }); - try testArgs(@Vector(32, f16), @Vector(32, i8), .{ - 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, - 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, - 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, - 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, - }); - try testArgs(@Vector(64, f16), @Vector(64, i8), .{ - 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, - 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, - 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, - 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, - imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, - imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, - -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, - imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, - }); - try testArgs(@Vector(128, f16), @Vector(128, i8), .{ - imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, - -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, - imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, - imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, - -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, - imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, - imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, - -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, - imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, - imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, - -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, - imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, - imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, - -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, - imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, - imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u8), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u8), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u8), .{ - 1e2, imax(u8) - 1, imax(u8), 2e0, - }); - try testArgs(@Vector(8, f16), @Vector(8, u8), .{ - 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, - }); - try testArgs(@Vector(16, f16), @Vector(16, u8), .{ - imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, - imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, - }); - try testArgs(@Vector(32, f16), @Vector(32, u8), .{ - imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, - imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, - imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, - imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, - }); - try testArgs(@Vector(64, f16), @Vector(64, u8), .{ - imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, - imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, - imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, - imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, - imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, - imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, - 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, - imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, - }); - try testArgs(@Vector(128, f16), @Vector(128, u8), .{ - imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, - 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, - imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, - imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, - 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, - imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, - imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, - 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, - imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, - imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, - 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, - imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, - imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, - 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, - imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, - imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, - }); - - try testArgs(@Vector(1, f16), @Vector(1, i16), .{ - imin(i16), - }); - try testArgs(@Vector(2, f16), @Vector(2, i16), .{ - imin(i16) + 1, -1e4, - }); - try testArgs(@Vector(4, f16), @Vector(4, i16), .{ - -1e3, -1e2, -1e1, -1e0, - }); - try testArgs(@Vector(8, f16), @Vector(8, i16), .{ - 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), - }); - try testArgs(@Vector(16, f16), @Vector(16, i16), .{ - imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, - }); - try testArgs(@Vector(32, f16), @Vector(32, i16), .{ - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, - -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, - imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, - }); - try testArgs(@Vector(64, f16), @Vector(64, i16), .{ - 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, - -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, - imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, - 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, - -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, - imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, - 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, - -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, - }); - try testArgs(@Vector(128, f16), @Vector(128, i16), .{ - imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, - 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, - -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, - imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, - 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, - -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, - imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, - 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, - -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, - imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, - 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, - -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, - imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, - 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, - -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, - imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u16), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u16), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u16), .{ - 1e2, 1e3, 1e4, imax(u16) - 1, - }); - try testArgs(@Vector(8, f16), @Vector(8, u16), .{ - imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, - }); - try testArgs(@Vector(16, f16), @Vector(16, u16), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f16), @Vector(32, u16), .{ - 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f16), @Vector(64, u16), .{ - 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, - }); - try testArgs(@Vector(128, f16), @Vector(128, u16), .{ - 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f16), @Vector(1, i32), .{ - imin(i32), - }); - try testArgs(@Vector(2, f16), @Vector(2, i32), .{ - imin(i32) + 1, -1e9, - }); - try testArgs(@Vector(4, f16), @Vector(4, i32), .{ - -1e8, -1e7, -1e6, -1e5, - }); - try testArgs(@Vector(8, f16), @Vector(8, i32), .{ - -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, - }); - try testArgs(@Vector(16, f16), @Vector(16, i32), .{ - 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, - }); - try testArgs(@Vector(32, f16), @Vector(32, i32), .{ - -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, - 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, - imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - }); - try testArgs(@Vector(64, f16), @Vector(64, i32), .{ - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, - imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, - -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, - 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, - -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, - -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, - 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, - -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, - }); - try testArgs(@Vector(128, f16), @Vector(128, i32), .{ - 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, - imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, - -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, - imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, - -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, - 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, - -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, - -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, - 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, - -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, - 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, - imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, - -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, - imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u32), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u32), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u32), .{ - 1e2, 1e3, 1e4, imax(u32) - 1, - }); - try testArgs(@Vector(8, f16), @Vector(8, u32), .{ - imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, - }); - try testArgs(@Vector(16, f16), @Vector(16, u32), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f16), @Vector(32, u32), .{ - 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f16), @Vector(64, u32), .{ - 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, - }); - try testArgs(@Vector(128, f16), @Vector(128, u32), .{ - 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f16), @Vector(1, i64), .{ - imin(i64), - }); - try testArgs(@Vector(2, f16), @Vector(2, i64), .{ - imin(i64) + 1, -1e18, - }); - try testArgs(@Vector(4, f16), @Vector(4, i64), .{ - -1e17, -1e16, -1e15, -1e14, - }); - try testArgs(@Vector(8, f16), @Vector(8, i64), .{ - -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, - }); - try testArgs(@Vector(16, f16), @Vector(16, i64), .{ - -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - }); - try testArgs(@Vector(32, f16), @Vector(32, i64), .{ - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, - 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, - -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, - -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(64, f16), @Vector(64, i64), .{ - -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, - 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, - 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, - -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, - -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, - -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, - 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, - 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, - }); - try testArgs(@Vector(128, f16), @Vector(128, i64), .{ - imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, - -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, - -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, - -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, - -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, - -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, - -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, - -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, - 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, - 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u64), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u64), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u64), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f16), @Vector(8, u64), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f16), @Vector(16, u64), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), - 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, - }); - try testArgs(@Vector(32, f16), @Vector(32, u64), .{ - 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, - 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, - 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, - }); - try testArgs(@Vector(64, f16), @Vector(64, u64), .{ - imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, - 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, - 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, - 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, - 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, - }); - try testArgs(@Vector(128, f16), @Vector(128, u64), .{ - imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, - 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, - 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, - 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, - 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, - 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, - 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, - 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, - 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, - 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, - 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, - 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, - imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, - 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, - 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, - }); - - try testArgs(@Vector(1, f16), @Vector(1, i128), .{ - imin(i128), - }); - try testArgs(@Vector(2, f16), @Vector(2, i128), .{ - imin(i128) + 1, -1e38, - }); - try testArgs(@Vector(4, f16), @Vector(4, i128), .{ - -1e37, -1e36, -1e35, -1e34, - }); - try testArgs(@Vector(8, f16), @Vector(8, i128), .{ - -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, - }); - try testArgs(@Vector(16, f16), @Vector(16, i128), .{ - -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, - -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, - }); - try testArgs(@Vector(32, f16), @Vector(32, i128), .{ - -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, - -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, - 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, - 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, - }); - try testArgs(@Vector(64, f16), @Vector(64, i128), .{ - 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, - 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, - 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, - -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, - -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, - -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, - -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, - -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, - }); - try testArgs(@Vector(128, f16), @Vector(128, i128), .{ - 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, - 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, - 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, - 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, - 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, - -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, - -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, - -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, - -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, - -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, - -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u128), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u128), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u128), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f16), @Vector(8, u128), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f16), @Vector(16, u128), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f16), @Vector(32, u128), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, - 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, - 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, - }); - try testArgs(@Vector(64, f16), @Vector(64, u128), .{ - 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, - 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, - 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, - }); - try testArgs(@Vector(128, f16), @Vector(128, u128), .{ - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, - 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, - 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, - 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, - 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, - 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, - 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, - 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, - 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, - 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, - 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, - 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, - }); - - try testArgs(@Vector(1, f16), @Vector(1, i256), .{ - imin(i256), - }); - try testArgs(@Vector(2, f16), @Vector(2, i256), .{ - imin(i256) + 1, -1e76, - }); - try testArgs(@Vector(4, f16), @Vector(4, i256), .{ - -1e75, -1e74, -1e73, -1e72, - }); - try testArgs(@Vector(8, f16), @Vector(8, i256), .{ - -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, - }); - try testArgs(@Vector(16, f16), @Vector(16, i256), .{ - -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, - -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, - }); - try testArgs(@Vector(32, f16), @Vector(32, i256), .{ - -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, - -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, - -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, - -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, - }); - try testArgs(@Vector(64, f16), @Vector(64, i256), .{ - -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, - -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, - 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, - 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, - 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, - 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, - 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, - }); - try testArgs(@Vector(128, f16), @Vector(128, i256), .{ - 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, - 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, - 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, - 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), - imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, - -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, - -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, - -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, - -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, - -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, - -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, - -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, - -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, - -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, - 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, - }); - - try testArgs(@Vector(1, f16), @Vector(1, u256), .{ - 0, - }); - try testArgs(@Vector(2, f16), @Vector(2, u256), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f16), @Vector(4, u256), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f16), @Vector(8, u256), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f16), @Vector(16, u256), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f16), @Vector(32, u256), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, - 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, - 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, - }); - try testArgs(@Vector(64, f16), @Vector(64, u256), .{ - 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, - 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, - imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, - 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, - 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, - 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, - 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, - 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, - }); - try testArgs(@Vector(128, f16), @Vector(128, u256), .{ - 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, - 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, - 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, - 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, - imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, - 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, - 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, - 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, - 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, - 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, - 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, - 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, - 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, - 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, - 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, - 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i8), .{ - imin(i8), - }); - try testArgs(@Vector(2, f32), @Vector(2, i8), .{ - imin(i8) + 1, -1e2, - }); - try testArgs(@Vector(4, f32), @Vector(4, i8), .{ - -1e1, -1e0, 0, 1e0, - }); - try testArgs(@Vector(8, f32), @Vector(8, i8), .{ - 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, - }); - try testArgs(@Vector(16, f32), @Vector(16, i8), .{ - 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, - 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, - }); - try testArgs(@Vector(32, f32), @Vector(32, i8), .{ - 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, - 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, - 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, - 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, - }); - try testArgs(@Vector(64, f32), @Vector(64, i8), .{ - 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, - 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, - 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, - 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, - imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, - imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, - -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, - imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, - }); - try testArgs(@Vector(128, f32), @Vector(128, i8), .{ - imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, - -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, - imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, - imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, - -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, - imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, - imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, - -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, - imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, - imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, - -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, - imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, - imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, - -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, - imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, - imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u8), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u8), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u8), .{ - 1e2, imax(u8) - 1, imax(u8), 2e0, - }); - try testArgs(@Vector(8, f32), @Vector(8, u8), .{ - 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, - }); - try testArgs(@Vector(16, f32), @Vector(16, u8), .{ - imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, - imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, - }); - try testArgs(@Vector(32, f32), @Vector(32, u8), .{ - imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, - imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, - imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, - imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, - }); - try testArgs(@Vector(64, f32), @Vector(64, u8), .{ - imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, - imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, - imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, - imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, - imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, - imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, - 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, - imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, - }); - try testArgs(@Vector(128, f32), @Vector(128, u8), .{ - imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, - 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, - imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, - imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, - 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, - imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, - imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, - 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, - imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, - imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, - 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, - imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, - imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, - 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, - imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, - imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i16), .{ - imin(i16), - }); - try testArgs(@Vector(2, f32), @Vector(2, i16), .{ - imin(i16) + 1, -1e4, - }); - try testArgs(@Vector(4, f32), @Vector(4, i16), .{ - -1e3, -1e2, -1e1, -1e0, - }); - try testArgs(@Vector(8, f32), @Vector(8, i16), .{ - 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), - }); - try testArgs(@Vector(16, f32), @Vector(16, i16), .{ - imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, - }); - try testArgs(@Vector(32, f32), @Vector(32, i16), .{ - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, - -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, - imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, - }); - try testArgs(@Vector(64, f32), @Vector(64, i16), .{ - 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, - -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, - imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, - 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, - -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, - imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, - 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, - -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, - }); - try testArgs(@Vector(128, f32), @Vector(128, i16), .{ - imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, - 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, - -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, - imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, - 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, - -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, - imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, - 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, - -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, - imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, - 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, - -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, - imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, - 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, - -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, - imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u16), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u16), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u16), .{ - 1e2, 1e3, 1e4, imax(u16) - 1, - }); - try testArgs(@Vector(8, f32), @Vector(8, u16), .{ - imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, - }); - try testArgs(@Vector(16, f32), @Vector(16, u16), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f32), @Vector(32, u16), .{ - 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f32), @Vector(64, u16), .{ - 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, - }); - try testArgs(@Vector(128, f32), @Vector(128, u16), .{ - 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i32), .{ - imin(i32), - }); - try testArgs(@Vector(2, f32), @Vector(2, i32), .{ - imin(i32) + 1, -1e9, - }); - try testArgs(@Vector(4, f32), @Vector(4, i32), .{ - -1e8, -1e7, -1e6, -1e5, - }); - try testArgs(@Vector(8, f32), @Vector(8, i32), .{ - -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, - }); - try testArgs(@Vector(16, f32), @Vector(16, i32), .{ - 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, - }); - try testArgs(@Vector(32, f32), @Vector(32, i32), .{ - -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, - 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, - imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - }); - try testArgs(@Vector(64, f32), @Vector(64, i32), .{ - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, - imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, - -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, - 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, - -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, - -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, - 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, - -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, - }); - try testArgs(@Vector(128, f32), @Vector(128, i32), .{ - 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, - imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, - -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, - imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, - -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, - 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, - -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, - -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, - 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, - -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, - 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, - imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, - -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, - imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u32), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u32), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u32), .{ - 1e2, 1e3, 1e4, imax(u32) - 1, - }); - try testArgs(@Vector(8, f32), @Vector(8, u32), .{ - imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, - }); - try testArgs(@Vector(16, f32), @Vector(16, u32), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f32), @Vector(32, u32), .{ - 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f32), @Vector(64, u32), .{ - 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, - }); - try testArgs(@Vector(128, f32), @Vector(128, u32), .{ - 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i64), .{ - imin(i64), - }); - try testArgs(@Vector(2, f32), @Vector(2, i64), .{ - imin(i64) + 1, -1e18, - }); - try testArgs(@Vector(4, f32), @Vector(4, i64), .{ - -1e17, -1e16, -1e15, -1e14, - }); - try testArgs(@Vector(8, f32), @Vector(8, i64), .{ - -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, - }); - try testArgs(@Vector(16, f32), @Vector(16, i64), .{ - -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - }); - try testArgs(@Vector(32, f32), @Vector(32, i64), .{ - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, - 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, - -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, - -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(64, f32), @Vector(64, i64), .{ - -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, - 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, - 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, - -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, - -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, - -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, - 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, - 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, - }); - try testArgs(@Vector(128, f32), @Vector(128, i64), .{ - imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, - -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, - -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, - -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, - -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, - -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, - -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, - -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, - 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, - 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u64), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u64), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u64), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f32), @Vector(8, u64), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f32), @Vector(16, u64), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), - 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, - }); - try testArgs(@Vector(32, f32), @Vector(32, u64), .{ - 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, - 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, - 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, - }); - try testArgs(@Vector(64, f32), @Vector(64, u64), .{ - imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, - 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, - 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, - 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, - 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, - }); - try testArgs(@Vector(128, f32), @Vector(128, u64), .{ - imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, - 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, - 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, - 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, - 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, - 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, - 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, - 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, - 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, - 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, - 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, - 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, - imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, - 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, - 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i128), .{ - imin(i128), - }); - try testArgs(@Vector(2, f32), @Vector(2, i128), .{ - imin(i128) + 1, -1e38, - }); - try testArgs(@Vector(4, f32), @Vector(4, i128), .{ - -1e37, -1e36, -1e35, -1e34, - }); - try testArgs(@Vector(8, f32), @Vector(8, i128), .{ - -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, - }); - try testArgs(@Vector(16, f32), @Vector(16, i128), .{ - -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, - -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, - }); - try testArgs(@Vector(32, f32), @Vector(32, i128), .{ - -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, - -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, - 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, - 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, - }); - try testArgs(@Vector(64, f32), @Vector(64, i128), .{ - 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, - 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, - 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, - -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, - -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, - -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, - -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, - -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, - }); - try testArgs(@Vector(128, f32), @Vector(128, i128), .{ - 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, - 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, - 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, - 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, - 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, - -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, - -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, - -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, - -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, - -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, - -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u128), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u128), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u128), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f32), @Vector(8, u128), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f32), @Vector(16, u128), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f32), @Vector(32, u128), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, - 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, - 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, - }); - try testArgs(@Vector(64, f32), @Vector(64, u128), .{ - 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, - 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, - 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, - }); - try testArgs(@Vector(128, f32), @Vector(128, u128), .{ - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, - 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, - 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, - 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, - 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, - 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, - 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, - 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, - 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, - 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, - 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, - 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, - }); - - try testArgs(@Vector(1, f32), @Vector(1, i256), .{ - imin(i256), - }); - try testArgs(@Vector(2, f32), @Vector(2, i256), .{ - imin(i256) + 1, -1e76, - }); - try testArgs(@Vector(4, f32), @Vector(4, i256), .{ - -1e75, -1e74, -1e73, -1e72, - }); - try testArgs(@Vector(8, f32), @Vector(8, i256), .{ - -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, - }); - try testArgs(@Vector(16, f32), @Vector(16, i256), .{ - -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, - -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, - }); - try testArgs(@Vector(32, f32), @Vector(32, i256), .{ - -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, - -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, - -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, - -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, - }); - try testArgs(@Vector(64, f32), @Vector(64, i256), .{ - -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, - -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, - 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, - 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, - 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, - 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, - 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, - }); - try testArgs(@Vector(128, f32), @Vector(128, i256), .{ - 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, - 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, - 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, - 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), - imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, - -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, - -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, - -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, - -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, - -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, - -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, - -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, - -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, - -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, - 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, - }); - - try testArgs(@Vector(1, f32), @Vector(1, u256), .{ - 0, - }); - try testArgs(@Vector(2, f32), @Vector(2, u256), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f32), @Vector(4, u256), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f32), @Vector(8, u256), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f32), @Vector(16, u256), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f32), @Vector(32, u256), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, - 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, - 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, - }); - try testArgs(@Vector(64, f32), @Vector(64, u256), .{ - 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, - 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, - imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, - 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, - 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, - 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, - 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, - 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, - }); - try testArgs(@Vector(128, f32), @Vector(128, u256), .{ - 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, - 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, - 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, - 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, - imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, - 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, - 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, - 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, - 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, - 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, - 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, - 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, - 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, - 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, - 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, - 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i8), .{ - imin(i8), - }); - try testArgs(@Vector(2, f64), @Vector(2, i8), .{ - imin(i8) + 1, -1e2, - }); - try testArgs(@Vector(4, f64), @Vector(4, i8), .{ - -1e1, -1e0, 0, 1e0, - }); - try testArgs(@Vector(8, f64), @Vector(8, i8), .{ - 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, - }); - try testArgs(@Vector(16, f64), @Vector(16, i8), .{ - 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, - 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, - }); - try testArgs(@Vector(32, f64), @Vector(32, i8), .{ - 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, - 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, - 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, - 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, - }); - try testArgs(@Vector(64, f64), @Vector(64, i8), .{ - 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, - 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, - 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, - 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, - imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, - imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, - -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, - imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, - }); - try testArgs(@Vector(128, f64), @Vector(128, i8), .{ - imin(i8) + 34, imin(i8) + 35, -19e0, 19e0, imax(i8) - 35, imax(i8) - 34, imin(i8) + 36, imin(i8) + 37, - -21e0, 21e0, imax(i8) - 37, imax(i8) - 36, imin(i8) + 38, imin(i8) + 39, -22e0, 22e0, - imax(i8) - 39, imax(i8) - 38, imin(i8) + 40, imin(i8) + 41, -23e0, 23e0, imax(i8) - 41, imax(i8) - 40, - imin(i8) + 42, imin(i8) + 43, -24e0, 24e0, imax(i8) - 43, imax(i8) - 42, imin(i8) + 44, imin(i8) + 45, - -25e0, 25e0, imax(i8) - 45, imax(i8) - 44, imin(i8) + 46, imin(i8) + 47, -26e0, 26e0, - imax(i8) - 47, imax(i8) - 46, imin(i8) + 48, imin(i8) + 49, -27e0, 27e0, imax(i8) - 49, imax(i8) - 48, - imin(i8) + 50, imin(i8) + 51, -28e0, 28e0, imax(i8) - 51, imax(i8) - 50, imin(i8) + 52, imin(i8) + 53, - -29e0, 29e0, imax(i8) - 53, imax(i8) - 52, imin(i8) + 54, imin(i8) + 55, -31e0, 31e0, - imax(i8) - 55, imax(i8) - 54, imin(i8) + 56, imin(i8) + 57, -32e0, 32e0, imax(i8) - 57, imax(i8) - 56, - imin(i8) + 58, imin(i8) + 59, -33e0, 33e0, imax(i8) - 59, imax(i8) - 58, imin(i8) + 60, imin(i8) + 61, - -34e0, 34e0, imax(i8) - 61, imax(i8) - 60, imin(i8) + 62, imin(i8) + 63, -35e0, 35e0, - imax(i8) - 63, imax(i8) - 62, imin(i8) + 64, imin(i8) + 65, -36e0, 36e0, imax(i8) - 65, imax(i8) - 64, - imin(i8) + 66, imin(i8) + 67, -37e0, 37e0, imax(i8) - 67, imax(i8) - 66, imin(i8) + 68, imin(i8) + 69, - -38e0, 38e0, imax(i8) - 69, imax(i8) - 68, imin(i8) + 70, imin(i8) + 71, -39e0, 39e0, - imax(i8) - 71, imax(i8) - 70, imin(i8) + 72, imin(i8) + 73, -41e0, 41e0, imax(i8) - 73, imax(i8) - 72, - imin(i8) + 74, imin(i8) + 75, -42e0, 42e0, imax(i8) - 75, imax(i8) - 74, imin(i8) + 76, imin(i8) + 77, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u8), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u8), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u8), .{ - 1e2, imax(u8) - 1, imax(u8), 2e0, - }); - try testArgs(@Vector(8, f64), @Vector(8, u8), .{ - 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, - }); - try testArgs(@Vector(16, f64), @Vector(16, u8), .{ - imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, - imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, - }); - try testArgs(@Vector(32, f64), @Vector(32, u8), .{ - imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, - imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, - imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, - imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, - }); - try testArgs(@Vector(64, f64), @Vector(64, u8), .{ - imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, - imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, - imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, - imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, - imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, - imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, - 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, - imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, - }); - try testArgs(@Vector(128, f64), @Vector(128, u8), .{ - imax(u8) - 69, imax(u8) - 68, 39e0, imax(u8) - 71, imax(u8) - 70, 41e0, imax(u8) - 73, imax(u8) - 72, - 42e0, imax(u8) - 75, imax(u8) - 74, 43e0, imax(u8) - 77, imax(u8) - 76, 44e0, imax(u8) - 79, - imax(u8) - 78, 45e0, imax(u8) - 81, imax(u8) - 80, 46e0, imax(u8) - 83, imax(u8) - 82, 47e0, - imax(u8) - 85, imax(u8) - 84, 48e0, imax(u8) - 87, imax(u8) - 86, 49e0, imax(u8) - 89, imax(u8) - 88, - 51e0, imax(u8) - 91, imax(u8) - 90, 52e0, imax(u8) - 93, imax(u8) - 92, 53e0, imax(u8) - 95, - imax(u8) - 94, 54e0, imax(u8) - 97, imax(u8) - 96, 55e0, imax(u8) - 99, imax(u8) - 98, 56e0, - imax(u8) - 101, imax(u8) - 100, 57e0, imax(u8) - 103, imax(u8) - 102, 58e0, imax(u8) - 105, imax(u8) - 104, - 59e0, imax(u8) - 107, imax(u8) - 106, 61e0, imax(u8) - 109, imax(u8) - 108, 62e0, imax(u8) - 111, - imax(u8) - 110, 63e0, imax(u8) - 113, imax(u8) - 112, 64e0, imax(u8) - 115, imax(u8) - 114, 65e0, - imax(u8) - 117, imax(u8) - 116, 66e0, imax(u8) - 119, imax(u8) - 118, 67e0, imax(u8) - 121, imax(u8) - 120, - 68e0, imax(u8) - 123, imax(u8) - 122, 69e0, imax(u8) - 125, imax(u8) - 124, 71e0, imax(u8) - 127, - imax(u8) - 126, 72e0, imax(u8) - 129, imax(u8) - 128, 73e0, imax(u8) - 131, imax(u8) - 130, 74e0, - imax(u8) - 133, imax(u8) - 132, 75e0, imax(u8) - 135, imax(u8) - 134, 76e0, imax(u8) - 137, imax(u8) - 136, - 77e0, imax(u8) - 139, imax(u8) - 138, 78e0, imax(u8) - 141, imax(u8) - 140, 79e0, imax(u8) - 143, - imax(u8) - 142, 81e0, imax(u8) - 145, imax(u8) - 144, 82e0, imax(u8) - 147, imax(u8) - 146, 83e0, - imax(u8) - 149, imax(u8) - 148, 84e0, imax(u8) - 151, imax(u8) - 150, 85e0, imax(u8) - 153, imax(u8) - 152, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i16), .{ - imin(i16), - }); - try testArgs(@Vector(2, f64), @Vector(2, i16), .{ - imin(i16) + 1, -1e4, - }); - try testArgs(@Vector(4, f64), @Vector(4, i16), .{ - -1e3, -1e2, -1e1, -1e0, - }); - try testArgs(@Vector(8, f64), @Vector(8, i16), .{ - 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), - }); - try testArgs(@Vector(16, f64), @Vector(16, i16), .{ - imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, - }); - try testArgs(@Vector(32, f64), @Vector(32, i16), .{ - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, - -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, - imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, - }); - try testArgs(@Vector(64, f64), @Vector(64, i16), .{ - 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, - -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, - imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, - 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, - -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, - imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, - 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, - -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, - }); - try testArgs(@Vector(128, f64), @Vector(128, i16), .{ - imin(i16) + 20, imin(i16) + 21, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, - 12e2, 12e3, imax(i16) - 21, imax(i16) - 20, imin(i16) + 22, imin(i16) + 23, -13e3, -13e2, - -13e1, -13e0, 13e0, 13e1, 13e2, 13e3, imax(i16) - 23, imax(i16) - 22, - imin(i16) + 24, imin(i16) + 25, -14e3, -14e2, -14e1, -14e0, 14e0, 14e1, - 14e2, 14e3, imax(i16) - 25, imax(i16) - 24, imin(i16) + 26, imin(i16) + 27, -15e3, -15e2, - -15e1, -15e0, 15e0, 15e1, 15e2, 15e3, imax(i16) - 27, imax(i16) - 26, - imin(i16) + 28, imin(i16) + 29, -16e3, -16e2, -16e1, -16e0, 16e0, 16e1, - 16e2, 16e3, imax(i16) - 29, imax(i16) - 28, imin(i16) + 30, imin(i16) + 31, -17e3, -17e2, - -17e1, -17e0, 17e0, 17e1, 17e2, 17e3, imax(i16) - 31, imax(i16) - 30, - imin(i16) + 32, imin(i16) + 33, -18e3, -18e2, -18e1, -18e0, 18e0, 18e1, - 18e2, 18e3, imax(i16) - 33, imax(i16) - 32, imin(i16) + 34, imin(i16) + 35, -19e3, -19e2, - -19e1, -19e0, 19e0, 19e1, 19e2, 19e3, imax(i16) - 35, imax(i16) - 34, - imin(i16) + 36, imin(i16) + 37, -12e3, -21e2, -21e1, -21e0, 21e0, 21e1, - 21e2, 21e3, imax(i16) - 37, imax(i16) - 36, imin(i16) + 38, imin(i16) + 39, -22e3, -22e2, - -22e1, -22e0, 22e0, 22e1, 22e2, 22e3, imax(i16) - 39, imax(i16) - 38, - imin(i16) + 40, imin(i16) + 41, -23e3, -23e2, -23e1, -23e0, 23e0, 23e1, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u16), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u16), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u16), .{ - 1e2, 1e3, 1e4, imax(u16) - 1, - }); - try testArgs(@Vector(8, f64), @Vector(8, u16), .{ - imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, - }); - try testArgs(@Vector(16, f64), @Vector(16, u16), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f64), @Vector(32, u16), .{ - 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f64), @Vector(64, u16), .{ - 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, - }); - try testArgs(@Vector(128, f64), @Vector(128, u16), .{ - 23e0, 23e1, 23e2, 23e3, imax(u16) - 41, imax(u16) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u16) - 43, imax(u16) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u16) - 45, imax(u16) - 44, 26e0, 26e1, 26e2, 26e3, imax(u16) - 47, imax(u16) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u16) - 49, imax(u16) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u16) - 51, imax(u16) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u16) - 53, imax(u16) - 52, 31e0, 31e1, 31e2, 31e3, imax(u16) - 55, imax(u16) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u16) - 57, imax(u16) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u16) - 59, imax(u16) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u16) - 61, imax(u16) - 60, 35e0, 35e1, 35e2, 35e3, imax(u16) - 63, imax(u16) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u16) - 65, imax(u16) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u16) - 67, imax(u16) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u16) - 69, imax(u16) - 68, 39e0, 39e1, 39e2, 39e3, imax(u16) - 71, imax(u16) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u16) - 73, imax(u16) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u16) - 75, imax(u16) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u16) - 77, imax(u16) - 76, 44e0, 44e1, 44e2, 44e3, imax(u16) - 79, imax(u16) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u16) - 81, imax(u16) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i32), .{ - imin(i32), - }); - try testArgs(@Vector(2, f64), @Vector(2, i32), .{ - imin(i32) + 1, -1e9, - }); - try testArgs(@Vector(4, f64), @Vector(4, i32), .{ - -1e8, -1e7, -1e6, -1e5, - }); - try testArgs(@Vector(8, f64), @Vector(8, i32), .{ - -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, - }); - try testArgs(@Vector(16, f64), @Vector(16, i32), .{ - 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, - }); - try testArgs(@Vector(32, f64), @Vector(32, i32), .{ - -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, - 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, - imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - }); - try testArgs(@Vector(64, f64), @Vector(64, i32), .{ - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, - imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, - -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, - 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, - -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, - -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, - 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, - -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, - }); - try testArgs(@Vector(128, f64), @Vector(128, i32), .{ - 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, - imax(i32) - 11, imax(i32) - 10, imin(i32) + 12, imin(i32) + 13, -7e8, -7e7, -7e6, -7e5, - -7e4, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, imax(i32) - 13, imax(i32) - 12, - imin(i32) + 14, imin(i32) + 15, -8e8, -8e7, -8e6, -8e5, -8e4, -8e3, - -8e2, -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, 8e4, - 8e5, 8e6, 8e7, 8e8, imax(i32) - 15, imax(i32) - 14, imin(i32) + 16, imin(i32) + 17, - -9e8, -9e7, -9e6, -9e5, -9e4, -9e3, -9e2, -9e1, - -9e0, 9e0, 9e1, 9e2, 9e3, 9e4, 9e5, 9e6, - 9e7, 9e8, imax(i32) - 17, imax(i32) - 16, imin(i32) + 18, imin(i32) + 19, -11e8, -11e7, - -11e6, -11e5, -11e4, -11e3, -11e2, -11e1, -11e0, 11e0, - 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, 11e8, - imax(i32) - 19, imax(i32) - 18, imin(i32) + 20, imin(i32) + 21, -12e8, -12e7, -12e6, -12e5, - -12e4, -12e3, -12e2, -12e1, -12e0, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, imax(i32) - 21, imax(i32) - 20, - imin(i32) + 22, imin(i32) + 23, -13e8, -13e7, -13e6, -13e5, -13e4, -13e3, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u32), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u32), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u32), .{ - 1e2, 1e3, 1e4, imax(u32) - 1, - }); - try testArgs(@Vector(8, f64), @Vector(8, u32), .{ - imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, - }); - try testArgs(@Vector(16, f64), @Vector(16, u32), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f64), @Vector(32, u32), .{ - 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f64), @Vector(64, u32), .{ - 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, - }); - try testArgs(@Vector(128, f64), @Vector(128, u32), .{ - 23e0, 23e1, 23e2, 23e3, imax(u32) - 41, imax(u32) - 40, 24e0, 24e1, - 24e2, 24e3, imax(u32) - 43, imax(u32) - 42, 25e0, 25e1, 25e2, 25e3, - imax(u32) - 45, imax(u32) - 44, 26e0, 26e1, 26e2, 26e3, imax(u32) - 47, imax(u32) - 46, - 27e0, 27e1, 27e2, 27e3, imax(u32) - 49, imax(u32) - 48, 28e0, 28e1, - 28e2, 28e3, imax(u32) - 51, imax(u32) - 50, 29e0, 29e1, 29e2, 29e3, - imax(u32) - 53, imax(u32) - 52, 31e0, 31e1, 31e2, 31e3, imax(u32) - 55, imax(u32) - 54, - 32e0, 32e1, 32e2, 32e3, imax(u32) - 57, imax(u32) - 56, 33e0, 33e1, - 33e2, 33e3, imax(u32) - 59, imax(u32) - 58, 34e0, 34e1, 34e2, 34e3, - imax(u32) - 61, imax(u32) - 60, 35e0, 35e1, 35e2, 35e3, imax(u32) - 63, imax(u32) - 62, - 36e0, 36e1, 36e2, 36e3, imax(u32) - 65, imax(u32) - 64, 37e0, 37e1, - 37e2, 37e3, imax(u32) - 67, imax(u32) - 66, 38e0, 38e1, 38e2, 38e3, - imax(u32) - 69, imax(u32) - 68, 39e0, 39e1, 39e2, 39e3, imax(u32) - 71, imax(u32) - 70, - 41e0, 41e1, 41e2, 41e3, imax(u32) - 73, imax(u32) - 72, 42e0, 42e1, - 42e2, 42e3, imax(u32) - 75, imax(u32) - 74, 43e0, 43e1, 43e2, 43e3, - imax(u32) - 77, imax(u32) - 76, 44e0, 44e1, 44e2, 44e3, imax(u32) - 79, imax(u32) - 78, - 45e0, 45e1, 45e2, 45e3, imax(u32) - 81, imax(u32) - 80, 46e0, 46e1, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i64), .{ - imin(i64), - }); - try testArgs(@Vector(2, f64), @Vector(2, i64), .{ - imin(i64) + 1, -1e18, - }); - try testArgs(@Vector(4, f64), @Vector(4, i64), .{ - -1e17, -1e16, -1e15, -1e14, - }); - try testArgs(@Vector(8, f64), @Vector(8, i64), .{ - -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, - }); - try testArgs(@Vector(16, f64), @Vector(16, i64), .{ - -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - }); - try testArgs(@Vector(32, f64), @Vector(32, i64), .{ - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, - 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, - -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, - -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(64, f64), @Vector(64, i64), .{ - -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, - 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, - 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, - -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, - -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, - -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, - 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, - 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, - }); - try testArgs(@Vector(128, f64), @Vector(128, i64), .{ - imin(i64) + 6, imin(i64) + 7, -4e18, -4e17, -4e16, -4e15, -4e14, -4e13, - -4e12, -4e11, -4e10, -4e9, -4e8, -4e7, -4e6, -4e5, - -4e4, -4e3, -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - imax(i64) - 7, imax(i64) - 6, imin(i64) + 8, imin(i64) + 9, -5e18, -5e17, -5e16, -5e15, - -5e14, -5e13, -5e12, -5e11, -5e10, -5e9, -5e8, -5e7, - -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, -5e0, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(i64) - 9, imax(i64) - 8, imin(i64) + 10, imin(i64) + 11, -6e18, -6e17, - -6e16, -6e15, -6e14, -6e13, -6e12, -6e11, -6e10, -6e9, - -6e8, -6e7, -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, - -6e0, 6e0, 6e1, 6e2, 6e3, 6e4, 6e5, 6e6, - 6e7, 6e8, 6e9, 6e10, 6e11, 6e12, 6e13, 6e14, - 6e15, 6e16, 6e17, 6e18, imax(i64) - 11, imax(i64) - 10, imin(i64) + 12, imin(i64) + 13, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u64), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u64), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u64), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f64), @Vector(8, u64), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f64), @Vector(16, u64), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), - 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, - }); - try testArgs(@Vector(32, f64), @Vector(32, u64), .{ - 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, - 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, - 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, - }); - try testArgs(@Vector(64, f64), @Vector(64, u64), .{ - imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, - 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, - 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, - 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, - 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, - }); - try testArgs(@Vector(128, f64), @Vector(128, u64), .{ - imax(u64) - 10, 7e0, 7e1, 7e2, 7e3, 7e4, 7e5, 7e6, - 7e7, 7e8, 7e9, 7e10, 7e11, 7e12, 7e13, 7e14, - 7e15, 7e16, 7e17, 7e18, imax(u64) - 13, imax(u64) - 12, 8e0, 8e1, - 8e2, 8e3, 8e4, 8e5, 8e6, 8e7, 8e8, 8e9, - 8e10, 8e11, 8e12, 8e13, 8e14, 8e15, 8e16, 8e17, - 8e18, imax(u64) - 15, imax(u64) - 14, 9e0, 9e1, 9e2, 9e3, 9e4, - 9e5, 9e6, 9e7, 9e8, 9e9, 9e10, 9e11, 9e12, - 9e13, 9e14, 9e15, 9e16, 9e17, 9e18, imax(u64) - 17, imax(u64) - 16, - 11e0, 11e1, 11e2, 11e3, 11e4, 11e5, 11e6, 11e7, - 11e8, 11e9, 11e10, 11e11, 11e12, 11e13, 11e14, 11e15, - 11e16, 11e17, 11e18, imax(u64) - 19, imax(u64) - 18, 12e0, 12e1, 12e2, - 12e3, 12e4, 12e5, 12e6, 12e7, 12e8, 12e9, 12e10, - 12e11, 12e12, 12e13, 12e14, 12e15, 12e16, 12e17, 12e18, - imax(u64) - 21, imax(u64) - 20, 13e0, 13e1, 13e2, 13e3, 13e4, 13e5, - 13e6, 13e7, 13e8, 13e9, 13e10, 13e11, 13e12, 13e13, - 13e14, 13e15, 13e16, 13e17, 13e18, imax(u64) - 23, imax(u64) - 22, 14e0, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i128), .{ - imin(i128), - }); - try testArgs(@Vector(2, f64), @Vector(2, i128), .{ - imin(i128) + 1, -1e38, - }); - try testArgs(@Vector(4, f64), @Vector(4, i128), .{ - -1e37, -1e36, -1e35, -1e34, - }); - try testArgs(@Vector(8, f64), @Vector(8, i128), .{ - -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, - }); - try testArgs(@Vector(16, f64), @Vector(16, i128), .{ - -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, - -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, - }); - try testArgs(@Vector(32, f64), @Vector(32, i128), .{ - -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, - -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, - 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, - 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, - }); - try testArgs(@Vector(64, f64), @Vector(64, i128), .{ - 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, - 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, - 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, - -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, - -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, - -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, - -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, - -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, - }); - try testArgs(@Vector(128, f64), @Vector(128, i128), .{ - 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, - 2e12, 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, - 2e20, 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, - 2e28, 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, - 2e36, 2e37, imax(i128) - 3, imax(i128) - 2, imin(i128) + 4, imin(i128) + 5, -3e37, -3e36, - -3e35, -3e34, -3e33, -3e32, -3e31, -3e30, -3e29, -3e28, - -3e27, -3e26, -3e25, -3e24, -3e23, -3e22, -3e21, -3e20, - -3e19, -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, - -3e11, -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, - -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, imax(i128) - 5, imax(i128) - 4, imin(i128) + 6, imin(i128) + 7, -4e37, -4e36, - -4e35, -4e34, -4e33, -4e32, -4e31, -4e30, -4e29, -4e28, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u128), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u128), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u128), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f64), @Vector(8, u128), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f64), @Vector(16, u128), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f64), @Vector(32, u128), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, - 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, - 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, - }); - try testArgs(@Vector(64, f64), @Vector(64, u128), .{ - 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, - 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, - 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, - }); - try testArgs(@Vector(128, f64), @Vector(128, u128), .{ - 4e3, 4e4, 4e5, 4e6, 4e7, 4e8, 4e9, 4e10, - 4e11, 4e12, 4e13, 4e14, 4e15, 4e16, 4e17, 4e18, - 4e19, 4e20, 4e21, 4e22, 4e23, 4e24, 4e25, 4e26, - 4e27, 4e28, 4e29, 4e30, 4e31, 4e32, 4e33, 4e34, - 4e35, 4e36, 4e37, imax(u128) - 7, imax(u128) - 6, 5e0, 5e1, 5e2, - 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, 5e9, 5e10, - 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, 5e17, 5e18, - 5e19, 5e20, 5e21, 5e22, 5e23, 5e24, 5e25, 5e26, - 5e27, 5e28, 5e29, 5e30, 5e31, 5e32, 5e33, 5e34, - 5e35, 5e36, 5e37, imax(u128) - 9, imax(u128) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, - 6e11, 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, - 6e19, 6e20, 6e21, 6e22, 6e23, 6e24, 6e25, 6e26, - 6e27, 6e28, 6e29, 6e30, 6e31, 6e32, 6e33, 6e34, - 6e35, 6e36, 6e37, imax(u128) - 11, imax(u128) - 10, 7e0, 7e1, 7e2, - 7e3, 7e4, 7e5, 7e6, 7e7, 7e8, 7e9, 7e10, - }); - - try testArgs(@Vector(1, f64), @Vector(1, i256), .{ - imin(i256), - }); - try testArgs(@Vector(2, f64), @Vector(2, i256), .{ - imin(i256) + 1, -1e76, - }); - try testArgs(@Vector(4, f64), @Vector(4, i256), .{ - -1e75, -1e74, -1e73, -1e72, - }); - try testArgs(@Vector(8, f64), @Vector(8, i256), .{ - -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, - }); - try testArgs(@Vector(16, f64), @Vector(16, i256), .{ - -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, - -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, - }); - try testArgs(@Vector(32, f64), @Vector(32, i256), .{ - -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, - -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, - -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, - -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, - }); - try testArgs(@Vector(64, f64), @Vector(64, i256), .{ - -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, - -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, - 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, - 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, - 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, - 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, - 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, - }); - try testArgs(@Vector(128, f64), @Vector(128, i256), .{ - 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, 1e54, - 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, 1e62, - 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, 1e70, - 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, imax(i256) - 1, imax(i256), - imin(i256) + 2, imin(i256) + 3, -2e76, -2e75, -2e74, -2e73, -2e72, -2e71, - -2e70, -2e69, -2e68, -2e67, -2e66, -2e65, -2e64, -2e63, - -2e62, -2e61, -2e60, -2e59, -2e58, -2e57, -2e56, -2e55, - -2e54, -2e53, -2e52, -2e51, -2e50, -2e49, -2e48, -2e47, - -2e46, -2e45, -2e44, -2e43, -2e42, -2e41, -2e40, -2e39, - -2e38, -2e37, -2e36, -2e35, -2e34, -2e33, -2e32, -2e31, - -2e30, -2e29, -2e28, -2e27, -2e26, -2e25, -2e24, -2e23, - -2e22, -2e21, -2e20, -2e19, -2e18, -2e17, -2e16, -2e15, - -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, -2e8, -2e7, - -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, - 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, 2e16, - }); - - try testArgs(@Vector(1, f64), @Vector(1, u256), .{ - 0, - }); - try testArgs(@Vector(2, f64), @Vector(2, u256), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f64), @Vector(4, u256), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f64), @Vector(8, u256), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f64), @Vector(16, u256), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f64), @Vector(32, u256), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, - 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, - 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, - }); - try testArgs(@Vector(64, f64), @Vector(64, u256), .{ - 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, - 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, - imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, - 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, - 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, - 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, - 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, - 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, - }); - try testArgs(@Vector(128, f64), @Vector(128, u256), .{ - 2e46, 2e47, 2e48, 2e49, 2e50, 2e51, 2e52, 2e53, - 2e54, 2e55, 2e56, 2e57, 2e58, 2e59, 2e60, 2e61, - 2e62, 2e63, 2e64, 2e65, 2e66, 2e67, 2e68, 2e69, - 2e70, 2e71, 2e72, 2e73, 2e74, 2e75, 2e76, imax(u256) - 3, - imax(u256) - 2, 3e0, 3e1, 3e2, 3e3, 3e4, 3e5, 3e6, - 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, 3e13, 3e14, - 3e15, 3e16, 3e17, 3e18, 3e19, 3e20, 3e21, 3e22, - 3e23, 3e24, 3e25, 3e26, 3e27, 3e28, 3e29, 3e30, - 3e31, 3e32, 3e33, 3e34, 3e35, 3e36, 3e37, 3e38, - 3e39, 3e40, 3e41, 3e42, 3e43, 3e44, 3e45, 3e46, - 3e47, 3e48, 3e49, 3e50, 3e51, 3e52, 3e53, 3e54, - 3e55, 3e56, 3e57, 3e58, 3e59, 3e60, 3e61, 3e62, - 3e63, 3e64, 3e65, 3e66, 3e67, 3e68, 3e69, 3e70, - 3e71, 3e72, 3e73, 3e74, 3e75, 3e76, imax(u256) - 5, imax(u256) - 4, - 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, 4e6, 4e7, - 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, 4e14, 4e15, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i8), .{ - imin(i8), - }); - try testArgs(@Vector(2, f80), @Vector(2, i8), .{ - imin(i8) + 1, -1e2, - }); - try testArgs(@Vector(4, f80), @Vector(4, i8), .{ - -1e1, -1e0, 0, 1e0, - }); - try testArgs(@Vector(8, f80), @Vector(8, i8), .{ - 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, - }); - try testArgs(@Vector(16, f80), @Vector(16, i8), .{ - 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, - 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, - }); - try testArgs(@Vector(32, f80), @Vector(32, i8), .{ - 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, - 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, - 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, - 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, - }); - try testArgs(@Vector(64, f80), @Vector(64, i8), .{ - 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, - 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, - 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, - 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, - imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, - imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, - -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, - imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u8), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u8), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u8), .{ - 1e2, imax(u8) - 1, imax(u8), 2e0, - }); - try testArgs(@Vector(8, f80), @Vector(8, u8), .{ - 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, - }); - try testArgs(@Vector(16, f80), @Vector(16, u8), .{ - imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, - imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, - }); - try testArgs(@Vector(32, f80), @Vector(32, u8), .{ - imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, - imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, - imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, - imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, - }); - try testArgs(@Vector(64, f80), @Vector(64, u8), .{ - imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, - imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, - imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, - imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, - imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, - imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, - 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, - imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i16), .{ - imin(i16), - }); - try testArgs(@Vector(2, f80), @Vector(2, i16), .{ - imin(i16) + 1, -1e4, - }); - try testArgs(@Vector(4, f80), @Vector(4, i16), .{ - -1e3, -1e2, -1e1, -1e0, - }); - try testArgs(@Vector(8, f80), @Vector(8, i16), .{ - 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), - }); - try testArgs(@Vector(16, f80), @Vector(16, i16), .{ - imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, - }); - try testArgs(@Vector(32, f80), @Vector(32, i16), .{ - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, - -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, - imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, - }); - try testArgs(@Vector(64, f80), @Vector(64, i16), .{ - 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, - -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, - imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, - 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, - -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, - imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, - 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, - -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u16), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u16), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u16), .{ - 1e2, 1e3, 1e4, imax(u16) - 1, - }); - try testArgs(@Vector(8, f80), @Vector(8, u16), .{ - imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, - }); - try testArgs(@Vector(16, f80), @Vector(16, u16), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f80), @Vector(32, u16), .{ - 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f80), @Vector(64, u16), .{ - 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i32), .{ - imin(i32), - }); - try testArgs(@Vector(2, f80), @Vector(2, i32), .{ - imin(i32) + 1, -1e9, - }); - try testArgs(@Vector(4, f80), @Vector(4, i32), .{ - -1e8, -1e7, -1e6, -1e5, - }); - try testArgs(@Vector(8, f80), @Vector(8, i32), .{ - -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, - }); - try testArgs(@Vector(16, f80), @Vector(16, i32), .{ - 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, - }); - try testArgs(@Vector(32, f80), @Vector(32, i32), .{ - -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, - 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, - imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - }); - try testArgs(@Vector(64, f80), @Vector(64, i32), .{ - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, - imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, - -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, - 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, - -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, - -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, - 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, - -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u32), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u32), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u32), .{ - 1e2, 1e3, 1e4, imax(u32) - 1, - }); - try testArgs(@Vector(8, f80), @Vector(8, u32), .{ - imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, - }); - try testArgs(@Vector(16, f80), @Vector(16, u32), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f80), @Vector(32, u32), .{ - 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f80), @Vector(64, u32), .{ - 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i64), .{ - imin(i64), - }); - try testArgs(@Vector(2, f80), @Vector(2, i64), .{ - imin(i64) + 1, -1e18, - }); - try testArgs(@Vector(4, f80), @Vector(4, i64), .{ - -1e17, -1e16, -1e15, -1e14, - }); - try testArgs(@Vector(8, f80), @Vector(8, i64), .{ - -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, - }); - try testArgs(@Vector(16, f80), @Vector(16, i64), .{ - -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - }); - try testArgs(@Vector(32, f80), @Vector(32, i64), .{ - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, - 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, - -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, - -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(64, f80), @Vector(64, i64), .{ - -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, - 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, - 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, - -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, - -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, - -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, - 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, - 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u64), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u64), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u64), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f80), @Vector(8, u64), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f80), @Vector(16, u64), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), - 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, - }); - try testArgs(@Vector(32, f80), @Vector(32, u64), .{ - 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, - 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, - 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, - }); - try testArgs(@Vector(64, f80), @Vector(64, u64), .{ - imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, - 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, - 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, - 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, - 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i128), .{ - imin(i128), - }); - try testArgs(@Vector(2, f80), @Vector(2, i128), .{ - imin(i128) + 1, -1e38, - }); - try testArgs(@Vector(4, f80), @Vector(4, i128), .{ - -1e37, -1e36, -1e35, -1e34, - }); - try testArgs(@Vector(8, f80), @Vector(8, i128), .{ - -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, - }); - try testArgs(@Vector(16, f80), @Vector(16, i128), .{ - -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, - -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, - }); - try testArgs(@Vector(32, f80), @Vector(32, i128), .{ - -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, - -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, - 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, - 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, - }); - try testArgs(@Vector(64, f80), @Vector(64, i128), .{ - 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, - 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, - 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, - -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, - -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, - -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, - -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, - -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u128), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u128), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u128), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f80), @Vector(8, u128), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f80), @Vector(16, u128), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f80), @Vector(32, u128), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, - 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, - 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, - }); - try testArgs(@Vector(64, f80), @Vector(64, u128), .{ - 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, - 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, - 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, - }); - - try testArgs(@Vector(1, f80), @Vector(1, i256), .{ - imin(i256), - }); - try testArgs(@Vector(2, f80), @Vector(2, i256), .{ - imin(i256) + 1, -1e76, - }); - try testArgs(@Vector(4, f80), @Vector(4, i256), .{ - -1e75, -1e74, -1e73, -1e72, - }); - try testArgs(@Vector(8, f80), @Vector(8, i256), .{ - -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, - }); - try testArgs(@Vector(16, f80), @Vector(16, i256), .{ - -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, - -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, - }); - try testArgs(@Vector(32, f80), @Vector(32, i256), .{ - -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, - -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, - -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, - -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, - }); - try testArgs(@Vector(64, f80), @Vector(64, i256), .{ - -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, - -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, - 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, - 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, - 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, - 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, - 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, - }); - - try testArgs(@Vector(1, f80), @Vector(1, u256), .{ - 0, - }); - try testArgs(@Vector(2, f80), @Vector(2, u256), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f80), @Vector(4, u256), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f80), @Vector(8, u256), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f80), @Vector(16, u256), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f80), @Vector(32, u256), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, - 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, - 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, - }); - try testArgs(@Vector(64, f80), @Vector(64, u256), .{ - 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, - 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, - imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, - 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, - 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, - 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, - 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, - 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i8), .{ - imin(i8), - }); - try testArgs(@Vector(2, f128), @Vector(2, i8), .{ - imin(i8) + 1, -1e2, - }); - try testArgs(@Vector(4, f128), @Vector(4, i8), .{ - -1e1, -1e0, 0, 1e0, - }); - try testArgs(@Vector(8, f128), @Vector(8, i8), .{ - 1e1, 1e2, imax(i8) - 1, imax(i8), imin(i8) + 2, imin(i8) + 3, -2e1, -2e0, - }); - try testArgs(@Vector(16, f128), @Vector(16, i8), .{ - 2e0, 2e1, imax(i8) - 3, imax(i8) - 2, imin(i8) + 4, imin(i8) + 5, -3e1, -3e0, - 3e0, 3e1, imax(i8) - 5, imax(i8) - 4, imin(i8) + 6, imin(i8) + 7, -4e1, -4e0, - }); - try testArgs(@Vector(32, f128), @Vector(32, i8), .{ - 4e0, 4e1, imax(i8) - 7, imax(i8) - 6, imin(i8) + 8, imin(i8) + 9, -5e1, -5e0, - 5e0, 5e1, imax(i8) - 9, imax(i8) - 8, imin(i8) + 10, imin(i8) + 11, -6e1, -6e0, - 6e0, 6e1, imax(i8) - 11, imax(i8) - 10, imin(i8) + 12, imin(i8) + 13, -7e1, -7e0, - 7e0, 7e1, imax(i8) - 13, imax(i8) - 12, imin(i8) + 14, imin(i8) + 15, -8e1, -8e0, - }); - try testArgs(@Vector(64, f128), @Vector(64, i8), .{ - 8e0, 8e1, imax(i8) - 15, imax(i8) - 14, imin(i8) + 16, imin(i8) + 17, -9e1, -9e0, - 9e0, 9e1, imax(i8) - 17, imax(i8) - 16, imin(i8) + 18, imin(i8) + 19, -11e1, -11e0, - 11e0, 11e1, imax(i8) - 19, imax(i8) - 18, imin(i8) + 20, imin(i8) + 21, -12e1, -12e0, - 12e0, 12e1, imax(i8) - 21, imax(i8) - 20, imin(i8) + 22, imin(i8) + 23, -13e0, 13e0, - imax(i8) - 23, imax(i8) - 22, imin(i8) + 24, imin(i8) + 25, -14e0, 14e0, imax(i8) - 25, imax(i8) - 24, - imin(i8) + 26, imin(i8) + 27, -15e0, 15e0, imax(i8) - 27, imax(i8) - 26, imin(i8) + 28, imin(i8) + 29, - -16e0, 16e0, imax(i8) - 29, imax(i8) - 28, imin(i8) + 30, imin(i8) + 31, -17e0, 17e0, - imax(i8) - 31, imax(i8) - 30, imin(i8) + 32, imin(i8) + 33, -18e0, 18e0, imax(i8) - 33, imax(i8) - 32, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u8), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u8), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u8), .{ - 1e2, imax(u8) - 1, imax(u8), 2e0, - }); - try testArgs(@Vector(8, f128), @Vector(8, u8), .{ - 2e1, 2e2, imax(u8) - 3, imax(u8) - 2, 3e0, 3e1, imax(u8) - 5, imax(u8) - 4, - }); - try testArgs(@Vector(16, f128), @Vector(16, u8), .{ - imax(u8) - 7, imax(u8) - 6, 5e0, 5e1, imax(u8) - 9, imax(u8) - 8, 6e0, 6e1, - imax(u8) - 11, imax(u8) - 10, 7e0, 7e1, imax(u8) - 13, imax(u8) - 12, 8e0, 8e1, - }); - try testArgs(@Vector(32, f128), @Vector(32, u8), .{ - imax(u8) - 15, imax(u8) - 14, 9e0, 9e1, imax(u8) - 17, imax(u8) - 16, 11e0, 11e1, - imax(u8) - 19, imax(u8) - 18, 12e0, 12e1, imax(u8) - 21, imax(u8) - 20, 13e0, 13e1, - imax(u8) - 23, imax(u8) - 22, 14e0, 14e1, imax(u8) - 25, imax(u8) - 24, 15e0, 15e1, - imax(u8) - 27, imax(u8) - 26, 16e0, 16e1, imax(u8) - 29, imax(u8) - 28, 17e0, 17e1, - }); - try testArgs(@Vector(64, f128), @Vector(64, u8), .{ - imax(u8) - 31, imax(u8) - 30, 18e0, 18e1, imax(u8) - 33, imax(u8) - 32, 19e0, 19e1, - imax(u8) - 35, imax(u8) - 34, 21e0, 21e1, imax(u8) - 37, imax(u8) - 36, 22e0, 22e1, - imax(u8) - 39, imax(u8) - 38, 23e0, 23e1, imax(u8) - 41, imax(u8) - 40, 24e0, 24e1, - imax(u8) - 43, imax(u8) - 42, 25e0, 25e1, imax(u8) - 45, imax(u8) - 44, 26e0, imax(u8) - 47, - imax(u8) - 46, 27e0, imax(u8) - 49, imax(u8) - 48, 28e0, imax(u8) - 51, imax(u8) - 50, 29e0, - imax(u8) - 53, imax(u8) - 52, 31e0, imax(u8) - 55, imax(u8) - 54, 32e0, imax(u8) - 57, imax(u8) - 56, - 33e0, imax(u8) - 59, imax(u8) - 58, 34e0, imax(u8) - 61, imax(u8) - 60, 35e0, imax(u8) - 63, - imax(u8) - 62, 36e0, imax(u8) - 65, imax(u8) - 64, 37e0, imax(u8) - 67, imax(u8) - 66, 38e0, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i16), .{ - imin(i16), - }); - try testArgs(@Vector(2, f128), @Vector(2, i16), .{ - imin(i16) + 1, -1e4, - }); - try testArgs(@Vector(4, f128), @Vector(4, i16), .{ - -1e3, -1e2, -1e1, -1e0, - }); - try testArgs(@Vector(8, f128), @Vector(8, i16), .{ - 0, 1e0, 1e1, 1e2, 1e3, 1e4, imax(i16) - 1, imax(i16), - }); - try testArgs(@Vector(16, f128), @Vector(16, i16), .{ - imin(i16) + 2, imin(i16) + 3, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, - 2e1, 2e2, 2e3, 2e4, imax(i16) - 3, imax(i16) - 2, imin(i16) + 4, imin(i16) + 5, - }); - try testArgs(@Vector(32, f128), @Vector(32, i16), .{ - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - 3e3, 3e4, imax(i16) - 5, imax(i16) - 4, imin(i16) + 6, imin(i16) + 7, -4e3, -4e2, - -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, imax(i16) - 7, imax(i16) - 6, - imin(i16) + 8, imin(i16) + 9, -5e3, -5e2, -5e1, -5e0, 5e0, 5e1, - }); - try testArgs(@Vector(64, f128), @Vector(64, i16), .{ - 5e2, 5e3, imax(i16) - 9, imax(i16) - 8, imin(i16) + 10, imin(i16) + 11, -6e3, -6e2, - -6e1, -6e0, 6e0, 6e1, 6e2, 6e3, imax(i16) - 11, imax(i16) - 10, - imin(i16) + 12, imin(i16) + 13, -7e3, -7e2, -7e1, -7e0, 7e0, 7e1, - 7e2, 7e3, imax(i16) - 13, imax(i16) - 12, imin(i16) + 14, imin(i16) + 15, -8e3, -8e2, - -8e1, -8e0, 8e0, 8e1, 8e2, 8e3, imax(i16) - 15, imax(i16) - 14, - imin(i16) + 16, imin(i16) + 17, -9e3, -9e2, -9e1, -9e0, 9e0, 9e1, - 9e2, 9e3, imax(i16) - 17, imax(i16) - 16, imin(i16) + 18, imin(i16) + 19, -11e3, -11e2, - -11e1, -11e0, 11e0, 11e1, 11e2, 11e3, imax(i16) - 19, imax(i16) - 18, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u16), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u16), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u16), .{ - 1e2, 1e3, 1e4, imax(u16) - 1, - }); - try testArgs(@Vector(8, f128), @Vector(8, u16), .{ - imax(u16), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u16) - 3, imax(u16) - 2, - }); - try testArgs(@Vector(16, f128), @Vector(16, u16), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u16) - 5, imax(u16) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u16) - 7, imax(u16) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f128), @Vector(32, u16), .{ - 5e2, 5e3, 5e4, imax(u16) - 9, imax(u16) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u16) - 11, imax(u16) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u16) - 13, imax(u16) - 12, 8e0, 8e1, 8e2, 8e3, imax(u16) - 15, imax(u16) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u16) - 17, imax(u16) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f128), @Vector(64, u16), .{ - 11e2, 11e3, imax(u16) - 19, imax(u16) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u16) - 21, imax(u16) - 20, 13e0, 13e1, 13e2, 13e3, imax(u16) - 23, imax(u16) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u16) - 25, imax(u16) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u16) - 27, imax(u16) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u16) - 29, imax(u16) - 28, 17e0, 17e1, 17e2, 17e3, imax(u16) - 31, imax(u16) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u16) - 33, imax(u16) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u16) - 35, imax(u16) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u16) - 37, imax(u16) - 36, 22e0, 22e1, 22e2, 22e3, imax(u16) - 39, imax(u16) - 38, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i32), .{ - imin(i32), - }); - try testArgs(@Vector(2, f128), @Vector(2, i32), .{ - imin(i32) + 1, -1e9, - }); - try testArgs(@Vector(4, f128), @Vector(4, i32), .{ - -1e8, -1e7, -1e6, -1e5, - }); - try testArgs(@Vector(8, f128), @Vector(8, i32), .{ - -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, 1e1, - }); - try testArgs(@Vector(16, f128), @Vector(16, i32), .{ - 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, - imax(i32) - 1, imax(i32), imin(i32) + 2, imin(i32) + 3, -2e9, -2e8, -2e7, -2e6, - }); - try testArgs(@Vector(32, f128), @Vector(32, i32), .{ - -2e5, -2e4, -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, - 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, 2e8, 2e9, - imax(i32) - 3, imax(i32) - 2, imin(i32) + 4, imin(i32) + 5, -3e8, -3e7, -3e6, -3e5, - -3e4, -3e3, -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, - }); - try testArgs(@Vector(64, f128), @Vector(64, i32), .{ - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, imax(i32) - 5, imax(i32) - 4, - imin(i32) + 6, imin(i32) + 7, -4e8, -4e7, -4e6, -4e5, -4e4, -4e3, - -4e2, -4e1, -4e0, 4e0, 4e1, 4e2, 4e3, 4e4, - 4e5, 4e6, 4e7, 4e8, imax(i32) - 7, imax(i32) - 6, imin(i32) + 8, imin(i32) + 9, - -5e8, -5e7, -5e6, -5e5, -5e4, -5e3, -5e2, -5e1, - -5e0, 5e0, 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, - 5e7, 5e8, imax(i32) - 9, imax(i32) - 8, imin(i32) + 10, imin(i32) + 11, -6e8, -6e7, - -6e6, -6e5, -6e4, -6e3, -6e2, -6e1, -6e0, 6e0, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u32), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u32), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u32), .{ - 1e2, 1e3, 1e4, imax(u32) - 1, - }); - try testArgs(@Vector(8, f128), @Vector(8, u32), .{ - imax(u32), 2e0, 2e1, 2e2, 2e3, 2e4, imax(u32) - 3, imax(u32) - 2, - }); - try testArgs(@Vector(16, f128), @Vector(16, u32), .{ - 3e0, 3e1, 3e2, 3e3, 3e4, imax(u32) - 5, imax(u32) - 4, 4e0, - 4e1, 4e2, 4e3, 4e4, imax(u32) - 7, imax(u32) - 6, 5e0, 5e1, - }); - try testArgs(@Vector(32, f128), @Vector(32, u32), .{ - 5e2, 5e3, 5e4, imax(u32) - 9, imax(u32) - 8, 6e0, 6e1, 6e2, - 6e3, 6e4, imax(u32) - 11, imax(u32) - 10, 7e0, 7e1, 7e2, 7e3, - imax(u32) - 13, imax(u32) - 12, 8e0, 8e1, 8e2, 8e3, imax(u32) - 15, imax(u32) - 14, - 9e0, 9e1, 9e2, 9e3, imax(u32) - 17, imax(u32) - 16, 11e0, 11e1, - }); - try testArgs(@Vector(64, f128), @Vector(64, u32), .{ - 11e2, 11e3, imax(u32) - 19, imax(u32) - 18, 12e0, 12e1, 12e2, 12e3, - imax(u32) - 21, imax(u32) - 20, 13e0, 13e1, 13e2, 13e3, imax(u32) - 23, imax(u32) - 22, - 14e0, 14e1, 14e2, 14e3, imax(u32) - 25, imax(u32) - 24, 15e0, 15e1, - 15e2, 15e3, imax(u32) - 27, imax(u32) - 26, 16e0, 16e1, 16e2, 16e3, - imax(u32) - 29, imax(u32) - 28, 17e0, 17e1, 17e2, 17e3, imax(u32) - 31, imax(u32) - 30, - 18e0, 18e1, 18e2, 18e3, imax(u32) - 33, imax(u32) - 32, 19e0, 19e1, - 19e2, 19e3, imax(u32) - 35, imax(u32) - 34, 21e0, 21e1, 21e2, 21e3, - imax(u32) - 37, imax(u32) - 36, 22e0, 22e1, 22e2, 22e3, imax(u32) - 39, imax(u32) - 38, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i64), .{ - imin(i64), - }); - try testArgs(@Vector(2, f128), @Vector(2, i64), .{ - imin(i64) + 1, -1e18, - }); - try testArgs(@Vector(4, f128), @Vector(4, i64), .{ - -1e17, -1e16, -1e15, -1e14, - }); - try testArgs(@Vector(8, f128), @Vector(8, i64), .{ - -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, -1e7, -1e6, - }); - try testArgs(@Vector(16, f128), @Vector(16, i64), .{ - -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, 0, 1e0, - 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, - }); - try testArgs(@Vector(32, f128), @Vector(32, i64), .{ - 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, - 1e17, 1e18, imax(i64) - 1, imax(i64), imin(i64) + 2, imin(i64) + 3, -2e18, -2e17, - -2e16, -2e15, -2e14, -2e13, -2e12, -2e11, -2e10, -2e9, - -2e8, -2e7, -2e6, -2e5, -2e4, -2e3, -2e2, -2e1, - }); - try testArgs(@Vector(64, f128), @Vector(64, i64), .{ - -2e0, 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, - 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, - 2e15, 2e16, 2e17, 2e18, imax(i64) - 3, imax(i64) - 2, imin(i64) + 4, imin(i64) + 5, - -3e18, -3e17, -3e16, -3e15, -3e14, -3e13, -3e12, -3e11, - -3e10, -3e9, -3e8, -3e7, -3e6, -3e5, -3e4, -3e3, - -3e2, -3e1, -3e0, 3e0, 3e1, 3e2, 3e3, 3e4, - 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, 3e12, - 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, imax(i64) - 5, imax(i64) - 4, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u64), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u64), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u64), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f128), @Vector(8, u64), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f128), @Vector(16, u64), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, imax(u64) - 1, imax(u64), - 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, 2e6, 2e7, - }); - try testArgs(@Vector(32, f128), @Vector(32, u64), .{ - 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, 2e14, 2e15, - 2e16, 2e17, 2e18, imax(u64) - 3, imax(u64) - 2, 3e0, 3e1, 3e2, - 3e3, 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, - 3e11, 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, - }); - try testArgs(@Vector(64, f128), @Vector(64, u64), .{ - imax(u64) - 5, imax(u64) - 4, 4e0, 4e1, 4e2, 4e3, 4e4, 4e5, - 4e6, 4e7, 4e8, 4e9, 4e10, 4e11, 4e12, 4e13, - 4e14, 4e15, 4e16, 4e17, 4e18, imax(u64) - 7, imax(u64) - 6, 5e0, - 5e1, 5e2, 5e3, 5e4, 5e5, 5e6, 5e7, 5e8, - 5e9, 5e10, 5e11, 5e12, 5e13, 5e14, 5e15, 5e16, - 5e17, 5e18, imax(u64) - 9, imax(u64) - 8, 6e0, 6e1, 6e2, 6e3, - 6e4, 6e5, 6e6, 6e7, 6e8, 6e9, 6e10, 6e11, - 6e12, 6e13, 6e14, 6e15, 6e16, 6e17, 6e18, imax(u64) - 11, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i128), .{ - imin(i128), - }); - try testArgs(@Vector(2, f128), @Vector(2, i128), .{ - imin(i128) + 1, -1e38, - }); - try testArgs(@Vector(4, f128), @Vector(4, i128), .{ - -1e37, -1e36, -1e35, -1e34, - }); - try testArgs(@Vector(8, f128), @Vector(8, i128), .{ - -1e33, -1e32, -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, - }); - try testArgs(@Vector(16, f128), @Vector(16, i128), .{ - -1e25, -1e24, -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, - -1e17, -1e16, -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, - }); - try testArgs(@Vector(32, f128), @Vector(32, i128), .{ - -1e9, -1e8, -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, - -1e1, -1e0, 0, 1e0, 1e1, 1e2, 1e3, 1e4, - 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, - 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, - }); - try testArgs(@Vector(64, f128), @Vector(64, i128), .{ - 1e21, 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, - 1e29, 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, - 1e37, 1e38, imax(i128) - 1, imax(i128), imin(i128) + 2, imin(i128) + 3, -2e37, -2e36, - -2e35, -2e34, -2e33, -2e32, -2e31, -2e30, -2e29, -2e28, - -2e27, -2e26, -2e25, -2e24, -2e23, -2e22, -2e21, -2e20, - -2e19, -2e18, -2e17, -2e16, -2e15, -2e14, -2e13, -2e12, - -2e11, -2e10, -2e9, -2e8, -2e7, -2e6, -2e5, -2e4, - -2e3, -2e2, -2e1, -2e0, 2e0, 2e1, 2e2, 2e3, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u128), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u128), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u128), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f128), @Vector(8, u128), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f128), @Vector(16, u128), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f128), @Vector(32, u128), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, imax(u128) - 1, imax(u128), 2e0, 2e1, 2e2, 2e3, 2e4, - 2e5, 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, - 2e13, 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, - }); - try testArgs(@Vector(64, f128), @Vector(64, u128), .{ - 2e21, 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, - 2e29, 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, - 2e37, 2e38, imax(u128) - 3, imax(u128) - 2, 3e0, 3e1, 3e2, 3e3, - 3e4, 3e5, 3e6, 3e7, 3e8, 3e9, 3e10, 3e11, - 3e12, 3e13, 3e14, 3e15, 3e16, 3e17, 3e18, 3e19, - 3e20, 3e21, 3e22, 3e23, 3e24, 3e25, 3e26, 3e27, - 3e28, 3e29, 3e30, 3e31, 3e32, 3e33, 3e34, 3e35, - 3e36, 3e37, 3e38, imax(u128) - 5, imax(u128) - 4, 4e0, 4e1, 4e2, - }); - - try testArgs(@Vector(1, f128), @Vector(1, i256), .{ - imin(i256), - }); - try testArgs(@Vector(2, f128), @Vector(2, i256), .{ - imin(i256) + 1, -1e76, - }); - try testArgs(@Vector(4, f128), @Vector(4, i256), .{ - -1e75, -1e74, -1e73, -1e72, - }); - try testArgs(@Vector(8, f128), @Vector(8, i256), .{ - -1e71, -1e70, -1e69, -1e68, -1e67, -1e66, -1e65, -1e64, - }); - try testArgs(@Vector(16, f128), @Vector(16, i256), .{ - -1e63, -1e62, -1e61, -1e60, -1e59, -1e58, -1e57, -1e56, - -1e55, -1e54, -1e53, -1e52, -1e51, -1e50, -1e49, -1e48, - }); - try testArgs(@Vector(32, f128), @Vector(32, i256), .{ - -1e47, -1e46, -1e45, -1e44, -1e43, -1e42, -1e41, -1e40, - -1e39, -1e38, -1e37, -1e36, -1e35, -1e34, -1e33, -1e32, - -1e31, -1e30, -1e29, -1e28, -1e27, -1e26, -1e25, -1e24, - -1e23, -1e22, -1e21, -1e20, -1e19, -1e18, -1e17, -1e16, - }); - try testArgs(@Vector(64, f128), @Vector(64, i256), .{ - -1e15, -1e14, -1e13, -1e12, -1e11, -1e10, -1e9, -1e8, - -1e7, -1e6, -1e5, -1e4, -1e3, -1e2, -1e1, -1e0, - 0, 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, - 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, - 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22, - 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, 1e30, - 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, 1e38, - 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, 1e46, - }); - - try testArgs(@Vector(1, f128), @Vector(1, u256), .{ - 0, - }); - try testArgs(@Vector(2, f128), @Vector(2, u256), .{ - 1e0, 1e1, - }); - try testArgs(@Vector(4, f128), @Vector(4, u256), .{ - 1e2, 1e3, 1e4, 1e5, - }); - try testArgs(@Vector(8, f128), @Vector(8, u256), .{ - 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, - }); - try testArgs(@Vector(16, f128), @Vector(16, u256), .{ - 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, - 1e22, 1e23, 1e24, 1e25, 1e26, 1e27, 1e28, 1e29, - }); - try testArgs(@Vector(32, f128), @Vector(32, u256), .{ - 1e30, 1e31, 1e32, 1e33, 1e34, 1e35, 1e36, 1e37, - 1e38, 1e39, 1e40, 1e41, 1e42, 1e43, 1e44, 1e45, - 1e46, 1e47, 1e48, 1e49, 1e50, 1e51, 1e52, 1e53, - 1e54, 1e55, 1e56, 1e57, 1e58, 1e59, 1e60, 1e61, - }); - try testArgs(@Vector(64, f128), @Vector(64, u256), .{ - 1e62, 1e63, 1e64, 1e65, 1e66, 1e67, 1e68, 1e69, - 1e70, 1e71, 1e72, 1e73, 1e74, 1e75, 1e76, 1e77, - imax(u256) - 1, imax(u256), 2e0, 2e1, 2e2, 2e3, 2e4, 2e5, - 2e6, 2e7, 2e8, 2e9, 2e10, 2e11, 2e12, 2e13, - 2e14, 2e15, 2e16, 2e17, 2e18, 2e19, 2e20, 2e21, - 2e22, 2e23, 2e24, 2e25, 2e26, 2e27, 2e28, 2e29, - 2e30, 2e31, 2e32, 2e33, 2e34, 2e35, 2e36, 2e37, - 2e38, 2e39, 2e40, 2e41, 2e42, 2e43, 2e44, 2e45, - }); - } - }; -} - -fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type { - return struct { - // noinline so that `mem_lhs` and `mem_rhs` are on the stack - noinline fn testArgKinds( - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Gpr, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - _: Sse, - comptime Type: type, - comptime imm_lhs: Type, - mem_lhs: Type, - comptime imm_rhs: Type, - mem_rhs: Type, - ) !void { - const expected = comptime op(Type, imm_lhs, imm_rhs); - var reg_lhs = mem_lhs; - var reg_rhs = mem_rhs; - _ = .{ ®_lhs, ®_rhs }; - try checkExpected(expected, op(Type, reg_lhs, reg_rhs), opts.compare); - try checkExpected(expected, op(Type, reg_lhs, mem_rhs), opts.compare); - try checkExpected(expected, op(Type, reg_lhs, imm_rhs), opts.compare); - try checkExpected(expected, op(Type, mem_lhs, reg_rhs), opts.compare); - try checkExpected(expected, op(Type, mem_lhs, mem_rhs), opts.compare); - try checkExpected(expected, op(Type, mem_lhs, imm_rhs), opts.compare); - try checkExpected(expected, op(Type, imm_lhs, reg_rhs), opts.compare); - try checkExpected(expected, op(Type, imm_lhs, mem_rhs), opts.compare); - } - // noinline for a more helpful stack trace - noinline fn testArgs(comptime Type: type, comptime imm_lhs: Type, comptime imm_rhs: Type) !void { - try testArgKinds( - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - Type, - imm_lhs, - imm_lhs, - imm_rhs, - imm_rhs, - ); - } - fn testInts() !void { - try testArgs(i4, 0x3, 0x2); - try testArgs(u4, 0xe, 0x6); - try testArgs(i8, 0x48, 0x6c); - try testArgs(u8, 0xbb, 0x43); - try testArgs(i16, -0x0fdf, 0x302e); - try testArgs(u16, 0xb8bf, 0x626d); - try testArgs(i32, -0x6280178f, 0x6802c034); - try testArgs(u32, 0x80d7a2c6, 0xbff6a402); - try testArgs(i64, 0x0365a53b8ee0c987, -0x1bb6d3013500a7d2); - try testArgs(u64, 0x71138bc6b4a38898, 0x1bc4043de9438c7b); - try testArgs(i128, 0x76d428c46cdeaa2ac43de8abffb22f6d, 0x427f7545abe434a12544fdbe2a012889); - try testArgs(u128, 0xe05fc132ef2cd8affee00a907f0a851f, 0x29f912a72cfc6a7c6973426a9636da9a); - try testArgs(i256, -0x53d4148cee74ea43477a65b3daa7b8fdadcbf4508e793f4af113b8d8da5a7eb6, -0x30dcbaf7b9b7a3df033694e6795444d842fb0b8f79bc18b3ea8a6b7ccad3ea91); - try testArgs(u256, 0xb7935f5c2f3b1ae7a422c0a7c446884294b7d5370bada307d2fe5a4c4284a999, 0x310e6e196ba4f143b8d285ca6addf7f3bb3344224aff221b27607a31e148be08); - try testArgs(i258, -0x0eee283365108dbeea0bec82f5147418d8ffe86f9eed00e414b4eccd65c21239a, -0x122c730073fc29a24cd6e3e6263566879bc5325d8566b8db31fcb4a76f7ab95eb); - try testArgs(u258, 0x186d5ddaab8cb8cb04e5b41e36f812e039d008baf49f12894c39e29a07796d800, 0x2072daba6ffad168826163eb136f6d28ca4360c8e7e5e41e29755e19e4753a4f5); - try testArgs(i495, 0x2fe6bc5448c55ce18252e2c9d44777505dfe63ff249a8027a6626c7d8dd9893fd5731e51474727be556f757facb586a4e04bbc0148c6c7ad692302f46fbd, -0x016a358821ef8240172f3a08e8830c06e6bcf2225f5f4d41ed42b44d249385f55cc594e1278ecac31c73faed890e5054af1a561483bb1bb6fb1f753514cf); - try testArgs(u495, 0x6eaf4e252b3bf74b75bac59e0b43ca5326bad2a25b3fdb74a67ef132ac5e47d72eebc3316fb2351ee66c50dc5afb92a75cea9b0e35160652c7db39eeb158, 0x49fbed744a92b549d8c05bb3512c617d24dd824f3f69bdf3923bc326a75674b85f5b828d2566fab9c86f571d12c2a63c9164feb0d191d27905533d09622a); - try testArgs(i512, -0x3a6876ca92775286c6e1504a64a9b8d56985bebf4a1b66539d404e0e96f24b226f70c4bcff295fdc2043b82513b2052dc45fd78f7e9e80e5b3e101757289f054, 0x5080c516a819bd32a0a5f0976441bbfbcf89e77684f1f10eb326aeb28e1f8d593278cff60fc99b8ffc87d8696882c64728dd3c322b7142803f4341f85a03bc10); - try testArgs(u512, 0xe5b1fedca3c77db765e517aabd05ffc524a3a8aff1784bbf67c45b894447ede32b65b9940e78173c591e56e078932d465f235aece7ad47b7f229df7ba8f12295, 0x8b4bb7c2969e3b121cc1082c442f8b4330f0a50058438fed56447175bb10178607ecfe425cb54dacc25ef26810f3e04681de1844f1aa8d029aca75d658634806); - } - fn testFloats() !void { - @setEvalBranchQuota(21_700); - - try testArgs(f16, -nan(f16), -nan(f16)); - try testArgs(f16, -nan(f16), -inf(f16)); - try testArgs(f16, -nan(f16), -fmax(f16)); - try testArgs(f16, -nan(f16), -1e1); - try testArgs(f16, -nan(f16), -1e0); - try testArgs(f16, -nan(f16), -1e-1); - try testArgs(f16, -nan(f16), -fmin(f16)); - try testArgs(f16, -nan(f16), -tmin(f16)); - try testArgs(f16, -nan(f16), -0.0); - try testArgs(f16, -nan(f16), 0.0); - try testArgs(f16, -nan(f16), tmin(f16)); - try testArgs(f16, -nan(f16), fmin(f16)); - try testArgs(f16, -nan(f16), 1e-1); - try testArgs(f16, -nan(f16), 1e0); - try testArgs(f16, -nan(f16), 1e1); - try testArgs(f16, -nan(f16), fmax(f16)); - try testArgs(f16, -nan(f16), inf(f16)); - try testArgs(f16, -nan(f16), nan(f16)); - - try testArgs(f16, -inf(f16), -nan(f16)); - try testArgs(f16, -inf(f16), -inf(f16)); - try testArgs(f16, -inf(f16), -fmax(f16)); - try testArgs(f16, -inf(f16), -1e1); - try testArgs(f16, -inf(f16), -1e0); - try testArgs(f16, -inf(f16), -1e-1); - try testArgs(f16, -inf(f16), -fmin(f16)); - try testArgs(f16, -inf(f16), -tmin(f16)); - try testArgs(f16, -inf(f16), -0.0); - try testArgs(f16, -inf(f16), 0.0); - try testArgs(f16, -inf(f16), tmin(f16)); - try testArgs(f16, -inf(f16), fmin(f16)); - try testArgs(f16, -inf(f16), 1e-1); - try testArgs(f16, -inf(f16), 1e0); - try testArgs(f16, -inf(f16), 1e1); - try testArgs(f16, -inf(f16), fmax(f16)); - try testArgs(f16, -inf(f16), inf(f16)); - try testArgs(f16, -inf(f16), nan(f16)); - - try testArgs(f16, -fmax(f16), -nan(f16)); - try testArgs(f16, -fmax(f16), -inf(f16)); - try testArgs(f16, -fmax(f16), -fmax(f16)); - try testArgs(f16, -fmax(f16), -1e1); - try testArgs(f16, -fmax(f16), -1e0); - try testArgs(f16, -fmax(f16), -1e-1); - try testArgs(f16, -fmax(f16), -fmin(f16)); - try testArgs(f16, -fmax(f16), -tmin(f16)); - try testArgs(f16, -fmax(f16), -0.0); - try testArgs(f16, -fmax(f16), 0.0); - try testArgs(f16, -fmax(f16), tmin(f16)); - try testArgs(f16, -fmax(f16), fmin(f16)); - try testArgs(f16, -fmax(f16), 1e-1); - try testArgs(f16, -fmax(f16), 1e0); - try testArgs(f16, -fmax(f16), 1e1); - try testArgs(f16, -fmax(f16), fmax(f16)); - try testArgs(f16, -fmax(f16), inf(f16)); - try testArgs(f16, -fmax(f16), nan(f16)); - - try testArgs(f16, -1e1, -nan(f16)); - try testArgs(f16, -1e1, -inf(f16)); - try testArgs(f16, -1e1, -fmax(f16)); - try testArgs(f16, -1e1, -1e1); - try testArgs(f16, -1e1, -1e0); - try testArgs(f16, -1e1, -1e-1); - try testArgs(f16, -1e1, -fmin(f16)); - try testArgs(f16, -1e1, -tmin(f16)); - try testArgs(f16, -1e1, -0.0); - try testArgs(f16, -1e1, 0.0); - try testArgs(f16, -1e1, tmin(f16)); - try testArgs(f16, -1e1, fmin(f16)); - try testArgs(f16, -1e1, 1e-1); - try testArgs(f16, -1e1, 1e0); - try testArgs(f16, -1e1, 1e1); - try testArgs(f16, -1e1, fmax(f16)); - try testArgs(f16, -1e1, inf(f16)); - try testArgs(f16, -1e1, nan(f16)); - - try testArgs(f16, -1e0, -nan(f16)); - try testArgs(f16, -1e0, -inf(f16)); - try testArgs(f16, -1e0, -fmax(f16)); - try testArgs(f16, -1e0, -1e1); - try testArgs(f16, -1e0, -1e0); - try testArgs(f16, -1e0, -1e-1); - try testArgs(f16, -1e0, -fmin(f16)); - try testArgs(f16, -1e0, -tmin(f16)); - try testArgs(f16, -1e0, -0.0); - try testArgs(f16, -1e0, 0.0); - try testArgs(f16, -1e0, tmin(f16)); - try testArgs(f16, -1e0, fmin(f16)); - try testArgs(f16, -1e0, 1e-1); - try testArgs(f16, -1e0, 1e0); - try testArgs(f16, -1e0, 1e1); - try testArgs(f16, -1e0, fmax(f16)); - try testArgs(f16, -1e0, inf(f16)); - try testArgs(f16, -1e0, nan(f16)); - - try testArgs(f16, -1e-1, -nan(f16)); - try testArgs(f16, -1e-1, -inf(f16)); - try testArgs(f16, -1e-1, -fmax(f16)); - try testArgs(f16, -1e-1, -1e1); - try testArgs(f16, -1e-1, -1e0); - try testArgs(f16, -1e-1, -1e-1); - try testArgs(f16, -1e-1, -fmin(f16)); - try testArgs(f16, -1e-1, -tmin(f16)); - try testArgs(f16, -1e-1, -0.0); - try testArgs(f16, -1e-1, 0.0); - try testArgs(f16, -1e-1, tmin(f16)); - try testArgs(f16, -1e-1, fmin(f16)); - try testArgs(f16, -1e-1, 1e-1); - try testArgs(f16, -1e-1, 1e0); - try testArgs(f16, -1e-1, 1e1); - try testArgs(f16, -1e-1, fmax(f16)); - try testArgs(f16, -1e-1, inf(f16)); - try testArgs(f16, -1e-1, nan(f16)); - - try testArgs(f16, -fmin(f16), -nan(f16)); - try testArgs(f16, -fmin(f16), -inf(f16)); - try testArgs(f16, -fmin(f16), -fmax(f16)); - try testArgs(f16, -fmin(f16), -1e1); - try testArgs(f16, -fmin(f16), -1e0); - try testArgs(f16, -fmin(f16), -1e-1); - try testArgs(f16, -fmin(f16), -fmin(f16)); - try testArgs(f16, -fmin(f16), -tmin(f16)); - try testArgs(f16, -fmin(f16), -0.0); - try testArgs(f16, -fmin(f16), 0.0); - try testArgs(f16, -fmin(f16), tmin(f16)); - try testArgs(f16, -fmin(f16), fmin(f16)); - try testArgs(f16, -fmin(f16), 1e-1); - try testArgs(f16, -fmin(f16), 1e0); - try testArgs(f16, -fmin(f16), 1e1); - try testArgs(f16, -fmin(f16), fmax(f16)); - try testArgs(f16, -fmin(f16), inf(f16)); - try testArgs(f16, -fmin(f16), nan(f16)); - - try testArgs(f16, -tmin(f16), -nan(f16)); - try testArgs(f16, -tmin(f16), -inf(f16)); - try testArgs(f16, -tmin(f16), -fmax(f16)); - try testArgs(f16, -tmin(f16), -1e1); - try testArgs(f16, -tmin(f16), -1e0); - try testArgs(f16, -tmin(f16), -1e-1); - try testArgs(f16, -tmin(f16), -fmin(f16)); - try testArgs(f16, -tmin(f16), -tmin(f16)); - try testArgs(f16, -tmin(f16), -0.0); - try testArgs(f16, -tmin(f16), 0.0); - try testArgs(f16, -tmin(f16), tmin(f16)); - try testArgs(f16, -tmin(f16), fmin(f16)); - try testArgs(f16, -tmin(f16), 1e-1); - try testArgs(f16, -tmin(f16), 1e0); - try testArgs(f16, -tmin(f16), 1e1); - try testArgs(f16, -tmin(f16), fmax(f16)); - try testArgs(f16, -tmin(f16), inf(f16)); - try testArgs(f16, -tmin(f16), nan(f16)); - - try testArgs(f16, -0.0, -nan(f16)); - try testArgs(f16, -0.0, -inf(f16)); - try testArgs(f16, -0.0, -fmax(f16)); - try testArgs(f16, -0.0, -1e1); - try testArgs(f16, -0.0, -1e0); - try testArgs(f16, -0.0, -1e-1); - try testArgs(f16, -0.0, -fmin(f16)); - try testArgs(f16, -0.0, -tmin(f16)); - try testArgs(f16, -0.0, -0.0); - try testArgs(f16, -0.0, 0.0); - try testArgs(f16, -0.0, tmin(f16)); - try testArgs(f16, -0.0, fmin(f16)); - try testArgs(f16, -0.0, 1e-1); - try testArgs(f16, -0.0, 1e0); - try testArgs(f16, -0.0, 1e1); - try testArgs(f16, -0.0, fmax(f16)); - try testArgs(f16, -0.0, inf(f16)); - try testArgs(f16, -0.0, nan(f16)); - - try testArgs(f16, 0.0, -nan(f16)); - try testArgs(f16, 0.0, -inf(f16)); - try testArgs(f16, 0.0, -fmax(f16)); - try testArgs(f16, 0.0, -1e1); - try testArgs(f16, 0.0, -1e0); - try testArgs(f16, 0.0, -1e-1); - try testArgs(f16, 0.0, -fmin(f16)); - try testArgs(f16, 0.0, -tmin(f16)); - try testArgs(f16, 0.0, -0.0); - try testArgs(f16, 0.0, 0.0); - try testArgs(f16, 0.0, tmin(f16)); - try testArgs(f16, 0.0, fmin(f16)); - try testArgs(f16, 0.0, 1e-1); - try testArgs(f16, 0.0, 1e0); - try testArgs(f16, 0.0, 1e1); - try testArgs(f16, 0.0, fmax(f16)); - try testArgs(f16, 0.0, inf(f16)); - try testArgs(f16, 0.0, nan(f16)); - - try testArgs(f16, tmin(f16), -nan(f16)); - try testArgs(f16, tmin(f16), -inf(f16)); - try testArgs(f16, tmin(f16), -fmax(f16)); - try testArgs(f16, tmin(f16), -1e1); - try testArgs(f16, tmin(f16), -1e0); - try testArgs(f16, tmin(f16), -1e-1); - try testArgs(f16, tmin(f16), -fmin(f16)); - try testArgs(f16, tmin(f16), -tmin(f16)); - try testArgs(f16, tmin(f16), -0.0); - try testArgs(f16, tmin(f16), 0.0); - try testArgs(f16, tmin(f16), tmin(f16)); - try testArgs(f16, tmin(f16), fmin(f16)); - try testArgs(f16, tmin(f16), 1e-1); - try testArgs(f16, tmin(f16), 1e0); - try testArgs(f16, tmin(f16), 1e1); - try testArgs(f16, tmin(f16), fmax(f16)); - try testArgs(f16, tmin(f16), inf(f16)); - try testArgs(f16, tmin(f16), nan(f16)); - - try testArgs(f16, fmin(f16), -nan(f16)); - try testArgs(f16, fmin(f16), -inf(f16)); - try testArgs(f16, fmin(f16), -fmax(f16)); - try testArgs(f16, fmin(f16), -1e1); - try testArgs(f16, fmin(f16), -1e0); - try testArgs(f16, fmin(f16), -1e-1); - try testArgs(f16, fmin(f16), -fmin(f16)); - try testArgs(f16, fmin(f16), -tmin(f16)); - try testArgs(f16, fmin(f16), -0.0); - try testArgs(f16, fmin(f16), 0.0); - try testArgs(f16, fmin(f16), tmin(f16)); - try testArgs(f16, fmin(f16), fmin(f16)); - try testArgs(f16, fmin(f16), 1e-1); - try testArgs(f16, fmin(f16), 1e0); - try testArgs(f16, fmin(f16), 1e1); - try testArgs(f16, fmin(f16), fmax(f16)); - try testArgs(f16, fmin(f16), inf(f16)); - try testArgs(f16, fmin(f16), nan(f16)); - - try testArgs(f16, 1e-1, -nan(f16)); - try testArgs(f16, 1e-1, -inf(f16)); - try testArgs(f16, 1e-1, -fmax(f16)); - try testArgs(f16, 1e-1, -1e1); - try testArgs(f16, 1e-1, -1e0); - try testArgs(f16, 1e-1, -1e-1); - try testArgs(f16, 1e-1, -fmin(f16)); - try testArgs(f16, 1e-1, -tmin(f16)); - try testArgs(f16, 1e-1, -0.0); - try testArgs(f16, 1e-1, 0.0); - try testArgs(f16, 1e-1, tmin(f16)); - try testArgs(f16, 1e-1, fmin(f16)); - try testArgs(f16, 1e-1, 1e-1); - try testArgs(f16, 1e-1, 1e0); - try testArgs(f16, 1e-1, 1e1); - try testArgs(f16, 1e-1, fmax(f16)); - try testArgs(f16, 1e-1, inf(f16)); - try testArgs(f16, 1e-1, nan(f16)); - - try testArgs(f16, 1e0, -nan(f16)); - try testArgs(f16, 1e0, -inf(f16)); - try testArgs(f16, 1e0, -fmax(f16)); - try testArgs(f16, 1e0, -1e1); - try testArgs(f16, 1e0, -1e0); - try testArgs(f16, 1e0, -1e-1); - try testArgs(f16, 1e0, -fmin(f16)); - try testArgs(f16, 1e0, -tmin(f16)); - try testArgs(f16, 1e0, -0.0); - try testArgs(f16, 1e0, 0.0); - try testArgs(f16, 1e0, tmin(f16)); - try testArgs(f16, 1e0, fmin(f16)); - try testArgs(f16, 1e0, 1e-1); - try testArgs(f16, 1e0, 1e0); - try testArgs(f16, 1e0, 1e1); - try testArgs(f16, 1e0, fmax(f16)); - try testArgs(f16, 1e0, inf(f16)); - try testArgs(f16, 1e0, nan(f16)); - - try testArgs(f16, 1e1, -nan(f16)); - try testArgs(f16, 1e1, -inf(f16)); - try testArgs(f16, 1e1, -fmax(f16)); - try testArgs(f16, 1e1, -1e1); - try testArgs(f16, 1e1, -1e0); - try testArgs(f16, 1e1, -1e-1); - try testArgs(f16, 1e1, -fmin(f16)); - try testArgs(f16, 1e1, -tmin(f16)); - try testArgs(f16, 1e1, -0.0); - try testArgs(f16, 1e1, 0.0); - try testArgs(f16, 1e1, tmin(f16)); - try testArgs(f16, 1e1, fmin(f16)); - try testArgs(f16, 1e1, 1e-1); - try testArgs(f16, 1e1, 1e0); - try testArgs(f16, 1e1, 1e1); - try testArgs(f16, 1e1, fmax(f16)); - try testArgs(f16, 1e1, inf(f16)); - try testArgs(f16, 1e1, nan(f16)); - - try testArgs(f16, fmax(f16), -nan(f16)); - try testArgs(f16, fmax(f16), -inf(f16)); - try testArgs(f16, fmax(f16), -fmax(f16)); - try testArgs(f16, fmax(f16), -1e1); - try testArgs(f16, fmax(f16), -1e0); - try testArgs(f16, fmax(f16), -1e-1); - try testArgs(f16, fmax(f16), -fmin(f16)); - try testArgs(f16, fmax(f16), -tmin(f16)); - try testArgs(f16, fmax(f16), -0.0); - try testArgs(f16, fmax(f16), 0.0); - try testArgs(f16, fmax(f16), tmin(f16)); - try testArgs(f16, fmax(f16), fmin(f16)); - try testArgs(f16, fmax(f16), 1e-1); - try testArgs(f16, fmax(f16), 1e0); - try testArgs(f16, fmax(f16), 1e1); - try testArgs(f16, fmax(f16), fmax(f16)); - try testArgs(f16, fmax(f16), inf(f16)); - try testArgs(f16, fmax(f16), nan(f16)); - - try testArgs(f16, inf(f16), -nan(f16)); - try testArgs(f16, inf(f16), -inf(f16)); - try testArgs(f16, inf(f16), -fmax(f16)); - try testArgs(f16, inf(f16), -1e1); - try testArgs(f16, inf(f16), -1e0); - try testArgs(f16, inf(f16), -1e-1); - try testArgs(f16, inf(f16), -fmin(f16)); - try testArgs(f16, inf(f16), -tmin(f16)); - try testArgs(f16, inf(f16), -0.0); - try testArgs(f16, inf(f16), 0.0); - try testArgs(f16, inf(f16), tmin(f16)); - try testArgs(f16, inf(f16), fmin(f16)); - try testArgs(f16, inf(f16), 1e-1); - try testArgs(f16, inf(f16), 1e0); - try testArgs(f16, inf(f16), 1e1); - try testArgs(f16, inf(f16), fmax(f16)); - try testArgs(f16, inf(f16), inf(f16)); - try testArgs(f16, inf(f16), nan(f16)); - - try testArgs(f16, nan(f16), -nan(f16)); - try testArgs(f16, nan(f16), -inf(f16)); - try testArgs(f16, nan(f16), -fmax(f16)); - try testArgs(f16, nan(f16), -1e1); - try testArgs(f16, nan(f16), -1e0); - try testArgs(f16, nan(f16), -1e-1); - try testArgs(f16, nan(f16), -fmin(f16)); - try testArgs(f16, nan(f16), -tmin(f16)); - try testArgs(f16, nan(f16), -0.0); - try testArgs(f16, nan(f16), 0.0); - try testArgs(f16, nan(f16), tmin(f16)); - try testArgs(f16, nan(f16), fmin(f16)); - try testArgs(f16, nan(f16), 1e-1); - try testArgs(f16, nan(f16), 1e0); - try testArgs(f16, nan(f16), 1e1); - try testArgs(f16, nan(f16), fmax(f16)); - try testArgs(f16, nan(f16), inf(f16)); - try testArgs(f16, nan(f16), nan(f16)); - - try testArgs(f32, -nan(f32), -nan(f32)); - try testArgs(f32, -nan(f32), -inf(f32)); - try testArgs(f32, -nan(f32), -fmax(f32)); - try testArgs(f32, -nan(f32), -1e1); - try testArgs(f32, -nan(f32), -1e0); - try testArgs(f32, -nan(f32), -1e-1); - try testArgs(f32, -nan(f32), -fmin(f32)); - try testArgs(f32, -nan(f32), -tmin(f32)); - try testArgs(f32, -nan(f32), -0.0); - try testArgs(f32, -nan(f32), 0.0); - try testArgs(f32, -nan(f32), tmin(f32)); - try testArgs(f32, -nan(f32), fmin(f32)); - try testArgs(f32, -nan(f32), 1e-1); - try testArgs(f32, -nan(f32), 1e0); - try testArgs(f32, -nan(f32), 1e1); - try testArgs(f32, -nan(f32), fmax(f32)); - try testArgs(f32, -nan(f32), inf(f32)); - try testArgs(f32, -nan(f32), nan(f32)); - - try testArgs(f32, -inf(f32), -nan(f32)); - try testArgs(f32, -inf(f32), -inf(f32)); - try testArgs(f32, -inf(f32), -fmax(f32)); - try testArgs(f32, -inf(f32), -1e1); - try testArgs(f32, -inf(f32), -1e0); - try testArgs(f32, -inf(f32), -1e-1); - try testArgs(f32, -inf(f32), -fmin(f32)); - try testArgs(f32, -inf(f32), -tmin(f32)); - try testArgs(f32, -inf(f32), -0.0); - try testArgs(f32, -inf(f32), 0.0); - try testArgs(f32, -inf(f32), tmin(f32)); - try testArgs(f32, -inf(f32), fmin(f32)); - try testArgs(f32, -inf(f32), 1e-1); - try testArgs(f32, -inf(f32), 1e0); - try testArgs(f32, -inf(f32), 1e1); - try testArgs(f32, -inf(f32), fmax(f32)); - try testArgs(f32, -inf(f32), inf(f32)); - try testArgs(f32, -inf(f32), nan(f32)); - - try testArgs(f32, -fmax(f32), -nan(f32)); - try testArgs(f32, -fmax(f32), -inf(f32)); - try testArgs(f32, -fmax(f32), -fmax(f32)); - try testArgs(f32, -fmax(f32), -1e1); - try testArgs(f32, -fmax(f32), -1e0); - try testArgs(f32, -fmax(f32), -1e-1); - try testArgs(f32, -fmax(f32), -fmin(f32)); - try testArgs(f32, -fmax(f32), -tmin(f32)); - try testArgs(f32, -fmax(f32), -0.0); - try testArgs(f32, -fmax(f32), 0.0); - try testArgs(f32, -fmax(f32), tmin(f32)); - try testArgs(f32, -fmax(f32), fmin(f32)); - try testArgs(f32, -fmax(f32), 1e-1); - try testArgs(f32, -fmax(f32), 1e0); - try testArgs(f32, -fmax(f32), 1e1); - try testArgs(f32, -fmax(f32), fmax(f32)); - try testArgs(f32, -fmax(f32), inf(f32)); - try testArgs(f32, -fmax(f32), nan(f32)); - - try testArgs(f32, -1e1, -nan(f32)); - try testArgs(f32, -1e1, -inf(f32)); - try testArgs(f32, -1e1, -fmax(f32)); - try testArgs(f32, -1e1, -1e1); - try testArgs(f32, -1e1, -1e0); - try testArgs(f32, -1e1, -1e-1); - try testArgs(f32, -1e1, -fmin(f32)); - try testArgs(f32, -1e1, -tmin(f32)); - try testArgs(f32, -1e1, -0.0); - try testArgs(f32, -1e1, 0.0); - try testArgs(f32, -1e1, tmin(f32)); - try testArgs(f32, -1e1, fmin(f32)); - try testArgs(f32, -1e1, 1e-1); - try testArgs(f32, -1e1, 1e0); - try testArgs(f32, -1e1, 1e1); - try testArgs(f32, -1e1, fmax(f32)); - try testArgs(f32, -1e1, inf(f32)); - try testArgs(f32, -1e1, nan(f32)); - - try testArgs(f32, -1e0, -nan(f32)); - try testArgs(f32, -1e0, -inf(f32)); - try testArgs(f32, -1e0, -fmax(f32)); - try testArgs(f32, -1e0, -1e1); - try testArgs(f32, -1e0, -1e0); - try testArgs(f32, -1e0, -1e-1); - try testArgs(f32, -1e0, -fmin(f32)); - try testArgs(f32, -1e0, -tmin(f32)); - try testArgs(f32, -1e0, -0.0); - try testArgs(f32, -1e0, 0.0); - try testArgs(f32, -1e0, tmin(f32)); - try testArgs(f32, -1e0, fmin(f32)); - try testArgs(f32, -1e0, 1e-1); - try testArgs(f32, -1e0, 1e0); - try testArgs(f32, -1e0, 1e1); - try testArgs(f32, -1e0, fmax(f32)); - try testArgs(f32, -1e0, inf(f32)); - try testArgs(f32, -1e0, nan(f32)); - - try testArgs(f32, -1e-1, -nan(f32)); - try testArgs(f32, -1e-1, -inf(f32)); - try testArgs(f32, -1e-1, -fmax(f32)); - try testArgs(f32, -1e-1, -1e1); - try testArgs(f32, -1e-1, -1e0); - try testArgs(f32, -1e-1, -1e-1); - try testArgs(f32, -1e-1, -fmin(f32)); - try testArgs(f32, -1e-1, -tmin(f32)); - try testArgs(f32, -1e-1, -0.0); - try testArgs(f32, -1e-1, 0.0); - try testArgs(f32, -1e-1, tmin(f32)); - try testArgs(f32, -1e-1, fmin(f32)); - try testArgs(f32, -1e-1, 1e-1); - try testArgs(f32, -1e-1, 1e0); - try testArgs(f32, -1e-1, 1e1); - try testArgs(f32, -1e-1, fmax(f32)); - try testArgs(f32, -1e-1, inf(f32)); - try testArgs(f32, -1e-1, nan(f32)); - - try testArgs(f32, -fmin(f32), -nan(f32)); - try testArgs(f32, -fmin(f32), -inf(f32)); - try testArgs(f32, -fmin(f32), -fmax(f32)); - try testArgs(f32, -fmin(f32), -1e1); - try testArgs(f32, -fmin(f32), -1e0); - try testArgs(f32, -fmin(f32), -1e-1); - try testArgs(f32, -fmin(f32), -fmin(f32)); - try testArgs(f32, -fmin(f32), -tmin(f32)); - try testArgs(f32, -fmin(f32), -0.0); - try testArgs(f32, -fmin(f32), 0.0); - try testArgs(f32, -fmin(f32), tmin(f32)); - try testArgs(f32, -fmin(f32), fmin(f32)); - try testArgs(f32, -fmin(f32), 1e-1); - try testArgs(f32, -fmin(f32), 1e0); - try testArgs(f32, -fmin(f32), 1e1); - try testArgs(f32, -fmin(f32), fmax(f32)); - try testArgs(f32, -fmin(f32), inf(f32)); - try testArgs(f32, -fmin(f32), nan(f32)); - - try testArgs(f32, -tmin(f32), -nan(f32)); - try testArgs(f32, -tmin(f32), -inf(f32)); - try testArgs(f32, -tmin(f32), -fmax(f32)); - try testArgs(f32, -tmin(f32), -1e1); - try testArgs(f32, -tmin(f32), -1e0); - try testArgs(f32, -tmin(f32), -1e-1); - try testArgs(f32, -tmin(f32), -fmin(f32)); - try testArgs(f32, -tmin(f32), -tmin(f32)); - try testArgs(f32, -tmin(f32), -0.0); - try testArgs(f32, -tmin(f32), 0.0); - try testArgs(f32, -tmin(f32), tmin(f32)); - try testArgs(f32, -tmin(f32), fmin(f32)); - try testArgs(f32, -tmin(f32), 1e-1); - try testArgs(f32, -tmin(f32), 1e0); - try testArgs(f32, -tmin(f32), 1e1); - try testArgs(f32, -tmin(f32), fmax(f32)); - try testArgs(f32, -tmin(f32), inf(f32)); - try testArgs(f32, -tmin(f32), nan(f32)); - - try testArgs(f32, -0.0, -nan(f32)); - try testArgs(f32, -0.0, -inf(f32)); - try testArgs(f32, -0.0, -fmax(f32)); - try testArgs(f32, -0.0, -1e1); - try testArgs(f32, -0.0, -1e0); - try testArgs(f32, -0.0, -1e-1); - try testArgs(f32, -0.0, -fmin(f32)); - try testArgs(f32, -0.0, -tmin(f32)); - try testArgs(f32, -0.0, -0.0); - try testArgs(f32, -0.0, 0.0); - try testArgs(f32, -0.0, tmin(f32)); - try testArgs(f32, -0.0, fmin(f32)); - try testArgs(f32, -0.0, 1e-1); - try testArgs(f32, -0.0, 1e0); - try testArgs(f32, -0.0, 1e1); - try testArgs(f32, -0.0, fmax(f32)); - try testArgs(f32, -0.0, inf(f32)); - try testArgs(f32, -0.0, nan(f32)); - - try testArgs(f32, 0.0, -nan(f32)); - try testArgs(f32, 0.0, -inf(f32)); - try testArgs(f32, 0.0, -fmax(f32)); - try testArgs(f32, 0.0, -1e1); - try testArgs(f32, 0.0, -1e0); - try testArgs(f32, 0.0, -1e-1); - try testArgs(f32, 0.0, -fmin(f32)); - try testArgs(f32, 0.0, -tmin(f32)); - try testArgs(f32, 0.0, -0.0); - try testArgs(f32, 0.0, 0.0); - try testArgs(f32, 0.0, tmin(f32)); - try testArgs(f32, 0.0, fmin(f32)); - try testArgs(f32, 0.0, 1e-1); - try testArgs(f32, 0.0, 1e0); - try testArgs(f32, 0.0, 1e1); - try testArgs(f32, 0.0, fmax(f32)); - try testArgs(f32, 0.0, inf(f32)); - try testArgs(f32, 0.0, nan(f32)); - - try testArgs(f32, tmin(f32), -nan(f32)); - try testArgs(f32, tmin(f32), -inf(f32)); - try testArgs(f32, tmin(f32), -fmax(f32)); - try testArgs(f32, tmin(f32), -1e1); - try testArgs(f32, tmin(f32), -1e0); - try testArgs(f32, tmin(f32), -1e-1); - try testArgs(f32, tmin(f32), -fmin(f32)); - try testArgs(f32, tmin(f32), -tmin(f32)); - try testArgs(f32, tmin(f32), -0.0); - try testArgs(f32, tmin(f32), 0.0); - try testArgs(f32, tmin(f32), tmin(f32)); - try testArgs(f32, tmin(f32), fmin(f32)); - try testArgs(f32, tmin(f32), 1e-1); - try testArgs(f32, tmin(f32), 1e0); - try testArgs(f32, tmin(f32), 1e1); - try testArgs(f32, tmin(f32), fmax(f32)); - try testArgs(f32, tmin(f32), inf(f32)); - try testArgs(f32, tmin(f32), nan(f32)); - - try testArgs(f32, fmin(f32), -nan(f32)); - try testArgs(f32, fmin(f32), -inf(f32)); - try testArgs(f32, fmin(f32), -fmax(f32)); - try testArgs(f32, fmin(f32), -1e1); - try testArgs(f32, fmin(f32), -1e0); - try testArgs(f32, fmin(f32), -1e-1); - try testArgs(f32, fmin(f32), -fmin(f32)); - try testArgs(f32, fmin(f32), -tmin(f32)); - try testArgs(f32, fmin(f32), -0.0); - try testArgs(f32, fmin(f32), 0.0); - try testArgs(f32, fmin(f32), tmin(f32)); - try testArgs(f32, fmin(f32), fmin(f32)); - try testArgs(f32, fmin(f32), 1e-1); - try testArgs(f32, fmin(f32), 1e0); - try testArgs(f32, fmin(f32), 1e1); - try testArgs(f32, fmin(f32), fmax(f32)); - try testArgs(f32, fmin(f32), inf(f32)); - try testArgs(f32, fmin(f32), nan(f32)); - - try testArgs(f32, 1e-1, -nan(f32)); - try testArgs(f32, 1e-1, -inf(f32)); - try testArgs(f32, 1e-1, -fmax(f32)); - try testArgs(f32, 1e-1, -1e1); - try testArgs(f32, 1e-1, -1e0); - try testArgs(f32, 1e-1, -1e-1); - try testArgs(f32, 1e-1, -fmin(f32)); - try testArgs(f32, 1e-1, -tmin(f32)); - try testArgs(f32, 1e-1, -0.0); - try testArgs(f32, 1e-1, 0.0); - try testArgs(f32, 1e-1, tmin(f32)); - try testArgs(f32, 1e-1, fmin(f32)); - try testArgs(f32, 1e-1, 1e-1); - try testArgs(f32, 1e-1, 1e0); - try testArgs(f32, 1e-1, 1e1); - try testArgs(f32, 1e-1, fmax(f32)); - try testArgs(f32, 1e-1, inf(f32)); - try testArgs(f32, 1e-1, nan(f32)); - - try testArgs(f32, 1e0, -nan(f32)); - try testArgs(f32, 1e0, -inf(f32)); - try testArgs(f32, 1e0, -fmax(f32)); - try testArgs(f32, 1e0, -1e1); - try testArgs(f32, 1e0, -1e0); - try testArgs(f32, 1e0, -1e-1); - try testArgs(f32, 1e0, -fmin(f32)); - try testArgs(f32, 1e0, -tmin(f32)); - try testArgs(f32, 1e0, -0.0); - try testArgs(f32, 1e0, 0.0); - try testArgs(f32, 1e0, tmin(f32)); - try testArgs(f32, 1e0, fmin(f32)); - try testArgs(f32, 1e0, 1e-1); - try testArgs(f32, 1e0, 1e0); - try testArgs(f32, 1e0, 1e1); - try testArgs(f32, 1e0, fmax(f32)); - try testArgs(f32, 1e0, inf(f32)); - try testArgs(f32, 1e0, nan(f32)); - - try testArgs(f32, 1e1, -nan(f32)); - try testArgs(f32, 1e1, -inf(f32)); - try testArgs(f32, 1e1, -fmax(f32)); - try testArgs(f32, 1e1, -1e1); - try testArgs(f32, 1e1, -1e0); - try testArgs(f32, 1e1, -1e-1); - try testArgs(f32, 1e1, -fmin(f32)); - try testArgs(f32, 1e1, -tmin(f32)); - try testArgs(f32, 1e1, -0.0); - try testArgs(f32, 1e1, 0.0); - try testArgs(f32, 1e1, tmin(f32)); - try testArgs(f32, 1e1, fmin(f32)); - try testArgs(f32, 1e1, 1e-1); - try testArgs(f32, 1e1, 1e0); - try testArgs(f32, 1e1, 1e1); - try testArgs(f32, 1e1, fmax(f32)); - try testArgs(f32, 1e1, inf(f32)); - try testArgs(f32, 1e1, nan(f32)); - - try testArgs(f32, fmax(f32), -nan(f32)); - try testArgs(f32, fmax(f32), -inf(f32)); - try testArgs(f32, fmax(f32), -fmax(f32)); - try testArgs(f32, fmax(f32), -1e1); - try testArgs(f32, fmax(f32), -1e0); - try testArgs(f32, fmax(f32), -1e-1); - try testArgs(f32, fmax(f32), -fmin(f32)); - try testArgs(f32, fmax(f32), -tmin(f32)); - try testArgs(f32, fmax(f32), -0.0); - try testArgs(f32, fmax(f32), 0.0); - try testArgs(f32, fmax(f32), tmin(f32)); - try testArgs(f32, fmax(f32), fmin(f32)); - try testArgs(f32, fmax(f32), 1e-1); - try testArgs(f32, fmax(f32), 1e0); - try testArgs(f32, fmax(f32), 1e1); - try testArgs(f32, fmax(f32), fmax(f32)); - try testArgs(f32, fmax(f32), inf(f32)); - try testArgs(f32, fmax(f32), nan(f32)); - - try testArgs(f32, inf(f32), -nan(f32)); - try testArgs(f32, inf(f32), -inf(f32)); - try testArgs(f32, inf(f32), -fmax(f32)); - try testArgs(f32, inf(f32), -1e1); - try testArgs(f32, inf(f32), -1e0); - try testArgs(f32, inf(f32), -1e-1); - try testArgs(f32, inf(f32), -fmin(f32)); - try testArgs(f32, inf(f32), -tmin(f32)); - try testArgs(f32, inf(f32), -0.0); - try testArgs(f32, inf(f32), 0.0); - try testArgs(f32, inf(f32), tmin(f32)); - try testArgs(f32, inf(f32), fmin(f32)); - try testArgs(f32, inf(f32), 1e-1); - try testArgs(f32, inf(f32), 1e0); - try testArgs(f32, inf(f32), 1e1); - try testArgs(f32, inf(f32), fmax(f32)); - try testArgs(f32, inf(f32), inf(f32)); - try testArgs(f32, inf(f32), nan(f32)); - - try testArgs(f32, nan(f32), -nan(f32)); - try testArgs(f32, nan(f32), -inf(f32)); - try testArgs(f32, nan(f32), -fmax(f32)); - try testArgs(f32, nan(f32), -1e1); - try testArgs(f32, nan(f32), -1e0); - try testArgs(f32, nan(f32), -1e-1); - try testArgs(f32, nan(f32), -fmin(f32)); - try testArgs(f32, nan(f32), -tmin(f32)); - try testArgs(f32, nan(f32), -0.0); - try testArgs(f32, nan(f32), 0.0); - try testArgs(f32, nan(f32), tmin(f32)); - try testArgs(f32, nan(f32), fmin(f32)); - try testArgs(f32, nan(f32), 1e-1); - try testArgs(f32, nan(f32), 1e0); - try testArgs(f32, nan(f32), 1e1); - try testArgs(f32, nan(f32), fmax(f32)); - try testArgs(f32, nan(f32), inf(f32)); - try testArgs(f32, nan(f32), nan(f32)); - - try testArgs(f64, -nan(f64), -nan(f64)); - try testArgs(f64, -nan(f64), -inf(f64)); - try testArgs(f64, -nan(f64), -fmax(f64)); - try testArgs(f64, -nan(f64), -1e1); - try testArgs(f64, -nan(f64), -1e0); - try testArgs(f64, -nan(f64), -1e-1); - try testArgs(f64, -nan(f64), -fmin(f64)); - try testArgs(f64, -nan(f64), -tmin(f64)); - try testArgs(f64, -nan(f64), -0.0); - try testArgs(f64, -nan(f64), 0.0); - try testArgs(f64, -nan(f64), tmin(f64)); - try testArgs(f64, -nan(f64), fmin(f64)); - try testArgs(f64, -nan(f64), 1e-1); - try testArgs(f64, -nan(f64), 1e0); - try testArgs(f64, -nan(f64), 1e1); - try testArgs(f64, -nan(f64), fmax(f64)); - try testArgs(f64, -nan(f64), inf(f64)); - try testArgs(f64, -nan(f64), nan(f64)); - - try testArgs(f64, -inf(f64), -nan(f64)); - try testArgs(f64, -inf(f64), -inf(f64)); - try testArgs(f64, -inf(f64), -fmax(f64)); - try testArgs(f64, -inf(f64), -1e1); - try testArgs(f64, -inf(f64), -1e0); - try testArgs(f64, -inf(f64), -1e-1); - try testArgs(f64, -inf(f64), -fmin(f64)); - try testArgs(f64, -inf(f64), -tmin(f64)); - try testArgs(f64, -inf(f64), -0.0); - try testArgs(f64, -inf(f64), 0.0); - try testArgs(f64, -inf(f64), tmin(f64)); - try testArgs(f64, -inf(f64), fmin(f64)); - try testArgs(f64, -inf(f64), 1e-1); - try testArgs(f64, -inf(f64), 1e0); - try testArgs(f64, -inf(f64), 1e1); - try testArgs(f64, -inf(f64), fmax(f64)); - try testArgs(f64, -inf(f64), inf(f64)); - try testArgs(f64, -inf(f64), nan(f64)); - - try testArgs(f64, -fmax(f64), -nan(f64)); - try testArgs(f64, -fmax(f64), -inf(f64)); - try testArgs(f64, -fmax(f64), -fmax(f64)); - try testArgs(f64, -fmax(f64), -1e1); - try testArgs(f64, -fmax(f64), -1e0); - try testArgs(f64, -fmax(f64), -1e-1); - try testArgs(f64, -fmax(f64), -fmin(f64)); - try testArgs(f64, -fmax(f64), -tmin(f64)); - try testArgs(f64, -fmax(f64), -0.0); - try testArgs(f64, -fmax(f64), 0.0); - try testArgs(f64, -fmax(f64), tmin(f64)); - try testArgs(f64, -fmax(f64), fmin(f64)); - try testArgs(f64, -fmax(f64), 1e-1); - try testArgs(f64, -fmax(f64), 1e0); - try testArgs(f64, -fmax(f64), 1e1); - try testArgs(f64, -fmax(f64), fmax(f64)); - try testArgs(f64, -fmax(f64), inf(f64)); - try testArgs(f64, -fmax(f64), nan(f64)); - - try testArgs(f64, -1e1, -nan(f64)); - try testArgs(f64, -1e1, -inf(f64)); - try testArgs(f64, -1e1, -fmax(f64)); - try testArgs(f64, -1e1, -1e1); - try testArgs(f64, -1e1, -1e0); - try testArgs(f64, -1e1, -1e-1); - try testArgs(f64, -1e1, -fmin(f64)); - try testArgs(f64, -1e1, -tmin(f64)); - try testArgs(f64, -1e1, -0.0); - try testArgs(f64, -1e1, 0.0); - try testArgs(f64, -1e1, tmin(f64)); - try testArgs(f64, -1e1, fmin(f64)); - try testArgs(f64, -1e1, 1e-1); - try testArgs(f64, -1e1, 1e0); - try testArgs(f64, -1e1, 1e1); - try testArgs(f64, -1e1, fmax(f64)); - try testArgs(f64, -1e1, inf(f64)); - try testArgs(f64, -1e1, nan(f64)); - - try testArgs(f64, -1e0, -nan(f64)); - try testArgs(f64, -1e0, -inf(f64)); - try testArgs(f64, -1e0, -fmax(f64)); - try testArgs(f64, -1e0, -1e1); - try testArgs(f64, -1e0, -1e0); - try testArgs(f64, -1e0, -1e-1); - try testArgs(f64, -1e0, -fmin(f64)); - try testArgs(f64, -1e0, -tmin(f64)); - try testArgs(f64, -1e0, -0.0); - try testArgs(f64, -1e0, 0.0); - try testArgs(f64, -1e0, tmin(f64)); - try testArgs(f64, -1e0, fmin(f64)); - try testArgs(f64, -1e0, 1e-1); - try testArgs(f64, -1e0, 1e0); - try testArgs(f64, -1e0, 1e1); - try testArgs(f64, -1e0, fmax(f64)); - try testArgs(f64, -1e0, inf(f64)); - try testArgs(f64, -1e0, nan(f64)); - - try testArgs(f64, -1e-1, -nan(f64)); - try testArgs(f64, -1e-1, -inf(f64)); - try testArgs(f64, -1e-1, -fmax(f64)); - try testArgs(f64, -1e-1, -1e1); - try testArgs(f64, -1e-1, -1e0); - try testArgs(f64, -1e-1, -1e-1); - try testArgs(f64, -1e-1, -fmin(f64)); - try testArgs(f64, -1e-1, -tmin(f64)); - try testArgs(f64, -1e-1, -0.0); - try testArgs(f64, -1e-1, 0.0); - try testArgs(f64, -1e-1, tmin(f64)); - try testArgs(f64, -1e-1, fmin(f64)); - try testArgs(f64, -1e-1, 1e-1); - try testArgs(f64, -1e-1, 1e0); - try testArgs(f64, -1e-1, 1e1); - try testArgs(f64, -1e-1, fmax(f64)); - try testArgs(f64, -1e-1, inf(f64)); - try testArgs(f64, -1e-1, nan(f64)); - - try testArgs(f64, -fmin(f64), -nan(f64)); - try testArgs(f64, -fmin(f64), -inf(f64)); - try testArgs(f64, -fmin(f64), -fmax(f64)); - try testArgs(f64, -fmin(f64), -1e1); - try testArgs(f64, -fmin(f64), -1e0); - try testArgs(f64, -fmin(f64), -1e-1); - try testArgs(f64, -fmin(f64), -fmin(f64)); - try testArgs(f64, -fmin(f64), -tmin(f64)); - try testArgs(f64, -fmin(f64), -0.0); - try testArgs(f64, -fmin(f64), 0.0); - try testArgs(f64, -fmin(f64), tmin(f64)); - try testArgs(f64, -fmin(f64), fmin(f64)); - try testArgs(f64, -fmin(f64), 1e-1); - try testArgs(f64, -fmin(f64), 1e0); - try testArgs(f64, -fmin(f64), 1e1); - try testArgs(f64, -fmin(f64), fmax(f64)); - try testArgs(f64, -fmin(f64), inf(f64)); - try testArgs(f64, -fmin(f64), nan(f64)); - - try testArgs(f64, -tmin(f64), -nan(f64)); - try testArgs(f64, -tmin(f64), -inf(f64)); - try testArgs(f64, -tmin(f64), -fmax(f64)); - try testArgs(f64, -tmin(f64), -1e1); - try testArgs(f64, -tmin(f64), -1e0); - try testArgs(f64, -tmin(f64), -1e-1); - try testArgs(f64, -tmin(f64), -fmin(f64)); - try testArgs(f64, -tmin(f64), -tmin(f64)); - try testArgs(f64, -tmin(f64), -0.0); - try testArgs(f64, -tmin(f64), 0.0); - try testArgs(f64, -tmin(f64), tmin(f64)); - try testArgs(f64, -tmin(f64), fmin(f64)); - try testArgs(f64, -tmin(f64), 1e-1); - try testArgs(f64, -tmin(f64), 1e0); - try testArgs(f64, -tmin(f64), 1e1); - try testArgs(f64, -tmin(f64), fmax(f64)); - try testArgs(f64, -tmin(f64), inf(f64)); - try testArgs(f64, -tmin(f64), nan(f64)); - - try testArgs(f64, -0.0, -nan(f64)); - try testArgs(f64, -0.0, -inf(f64)); - try testArgs(f64, -0.0, -fmax(f64)); - try testArgs(f64, -0.0, -1e1); - try testArgs(f64, -0.0, -1e0); - try testArgs(f64, -0.0, -1e-1); - try testArgs(f64, -0.0, -fmin(f64)); - try testArgs(f64, -0.0, -tmin(f64)); - try testArgs(f64, -0.0, -0.0); - try testArgs(f64, -0.0, 0.0); - try testArgs(f64, -0.0, tmin(f64)); - try testArgs(f64, -0.0, fmin(f64)); - try testArgs(f64, -0.0, 1e-1); - try testArgs(f64, -0.0, 1e0); - try testArgs(f64, -0.0, 1e1); - try testArgs(f64, -0.0, fmax(f64)); - try testArgs(f64, -0.0, inf(f64)); - try testArgs(f64, -0.0, nan(f64)); - - try testArgs(f64, 0.0, -nan(f64)); - try testArgs(f64, 0.0, -inf(f64)); - try testArgs(f64, 0.0, -fmax(f64)); - try testArgs(f64, 0.0, -1e1); - try testArgs(f64, 0.0, -1e0); - try testArgs(f64, 0.0, -1e-1); - try testArgs(f64, 0.0, -fmin(f64)); - try testArgs(f64, 0.0, -tmin(f64)); - try testArgs(f64, 0.0, -0.0); - try testArgs(f64, 0.0, 0.0); - try testArgs(f64, 0.0, tmin(f64)); - try testArgs(f64, 0.0, fmin(f64)); - try testArgs(f64, 0.0, 1e-1); - try testArgs(f64, 0.0, 1e0); - try testArgs(f64, 0.0, 1e1); - try testArgs(f64, 0.0, fmax(f64)); - try testArgs(f64, 0.0, inf(f64)); - try testArgs(f64, 0.0, nan(f64)); - - try testArgs(f64, tmin(f64), -nan(f64)); - try testArgs(f64, tmin(f64), -inf(f64)); - try testArgs(f64, tmin(f64), -fmax(f64)); - try testArgs(f64, tmin(f64), -1e1); - try testArgs(f64, tmin(f64), -1e0); - try testArgs(f64, tmin(f64), -1e-1); - try testArgs(f64, tmin(f64), -fmin(f64)); - try testArgs(f64, tmin(f64), -tmin(f64)); - try testArgs(f64, tmin(f64), -0.0); - try testArgs(f64, tmin(f64), 0.0); - try testArgs(f64, tmin(f64), tmin(f64)); - try testArgs(f64, tmin(f64), fmin(f64)); - try testArgs(f64, tmin(f64), 1e-1); - try testArgs(f64, tmin(f64), 1e0); - try testArgs(f64, tmin(f64), 1e1); - try testArgs(f64, tmin(f64), fmax(f64)); - try testArgs(f64, tmin(f64), inf(f64)); - try testArgs(f64, tmin(f64), nan(f64)); - - try testArgs(f64, fmin(f64), -nan(f64)); - try testArgs(f64, fmin(f64), -inf(f64)); - try testArgs(f64, fmin(f64), -fmax(f64)); - try testArgs(f64, fmin(f64), -1e1); - try testArgs(f64, fmin(f64), -1e0); - try testArgs(f64, fmin(f64), -1e-1); - try testArgs(f64, fmin(f64), -fmin(f64)); - try testArgs(f64, fmin(f64), -tmin(f64)); - try testArgs(f64, fmin(f64), -0.0); - try testArgs(f64, fmin(f64), 0.0); - try testArgs(f64, fmin(f64), tmin(f64)); - try testArgs(f64, fmin(f64), fmin(f64)); - try testArgs(f64, fmin(f64), 1e-1); - try testArgs(f64, fmin(f64), 1e0); - try testArgs(f64, fmin(f64), 1e1); - try testArgs(f64, fmin(f64), fmax(f64)); - try testArgs(f64, fmin(f64), inf(f64)); - try testArgs(f64, fmin(f64), nan(f64)); - - try testArgs(f64, 1e-1, -nan(f64)); - try testArgs(f64, 1e-1, -inf(f64)); - try testArgs(f64, 1e-1, -fmax(f64)); - try testArgs(f64, 1e-1, -1e1); - try testArgs(f64, 1e-1, -1e0); - try testArgs(f64, 1e-1, -1e-1); - try testArgs(f64, 1e-1, -fmin(f64)); - try testArgs(f64, 1e-1, -tmin(f64)); - try testArgs(f64, 1e-1, -0.0); - try testArgs(f64, 1e-1, 0.0); - try testArgs(f64, 1e-1, tmin(f64)); - try testArgs(f64, 1e-1, fmin(f64)); - try testArgs(f64, 1e-1, 1e-1); - try testArgs(f64, 1e-1, 1e0); - try testArgs(f64, 1e-1, 1e1); - try testArgs(f64, 1e-1, fmax(f64)); - try testArgs(f64, 1e-1, inf(f64)); - try testArgs(f64, 1e-1, nan(f64)); - - try testArgs(f64, 1e0, -nan(f64)); - try testArgs(f64, 1e0, -inf(f64)); - try testArgs(f64, 1e0, -fmax(f64)); - try testArgs(f64, 1e0, -1e1); - try testArgs(f64, 1e0, -1e0); - try testArgs(f64, 1e0, -1e-1); - try testArgs(f64, 1e0, -fmin(f64)); - try testArgs(f64, 1e0, -tmin(f64)); - try testArgs(f64, 1e0, -0.0); - try testArgs(f64, 1e0, 0.0); - try testArgs(f64, 1e0, tmin(f64)); - try testArgs(f64, 1e0, fmin(f64)); - try testArgs(f64, 1e0, 1e-1); - try testArgs(f64, 1e0, 1e0); - try testArgs(f64, 1e0, 1e1); - try testArgs(f64, 1e0, fmax(f64)); - try testArgs(f64, 1e0, inf(f64)); - try testArgs(f64, 1e0, nan(f64)); - - try testArgs(f64, 1e1, -nan(f64)); - try testArgs(f64, 1e1, -inf(f64)); - try testArgs(f64, 1e1, -fmax(f64)); - try testArgs(f64, 1e1, -1e1); - try testArgs(f64, 1e1, -1e0); - try testArgs(f64, 1e1, -1e-1); - try testArgs(f64, 1e1, -fmin(f64)); - try testArgs(f64, 1e1, -tmin(f64)); - try testArgs(f64, 1e1, -0.0); - try testArgs(f64, 1e1, 0.0); - try testArgs(f64, 1e1, tmin(f64)); - try testArgs(f64, 1e1, fmin(f64)); - try testArgs(f64, 1e1, 1e-1); - try testArgs(f64, 1e1, 1e0); - try testArgs(f64, 1e1, 1e1); - try testArgs(f64, 1e1, fmax(f64)); - try testArgs(f64, 1e1, inf(f64)); - try testArgs(f64, 1e1, nan(f64)); - - try testArgs(f64, fmax(f64), -nan(f64)); - try testArgs(f64, fmax(f64), -inf(f64)); - try testArgs(f64, fmax(f64), -fmax(f64)); - try testArgs(f64, fmax(f64), -1e1); - try testArgs(f64, fmax(f64), -1e0); - try testArgs(f64, fmax(f64), -1e-1); - try testArgs(f64, fmax(f64), -fmin(f64)); - try testArgs(f64, fmax(f64), -tmin(f64)); - try testArgs(f64, fmax(f64), -0.0); - try testArgs(f64, fmax(f64), 0.0); - try testArgs(f64, fmax(f64), tmin(f64)); - try testArgs(f64, fmax(f64), fmin(f64)); - try testArgs(f64, fmax(f64), 1e-1); - try testArgs(f64, fmax(f64), 1e0); - try testArgs(f64, fmax(f64), 1e1); - try testArgs(f64, fmax(f64), fmax(f64)); - try testArgs(f64, fmax(f64), inf(f64)); - try testArgs(f64, fmax(f64), nan(f64)); - - try testArgs(f64, inf(f64), -nan(f64)); - try testArgs(f64, inf(f64), -inf(f64)); - try testArgs(f64, inf(f64), -fmax(f64)); - try testArgs(f64, inf(f64), -1e1); - try testArgs(f64, inf(f64), -1e0); - try testArgs(f64, inf(f64), -1e-1); - try testArgs(f64, inf(f64), -fmin(f64)); - try testArgs(f64, inf(f64), -tmin(f64)); - try testArgs(f64, inf(f64), -0.0); - try testArgs(f64, inf(f64), 0.0); - try testArgs(f64, inf(f64), tmin(f64)); - try testArgs(f64, inf(f64), fmin(f64)); - try testArgs(f64, inf(f64), 1e-1); - try testArgs(f64, inf(f64), 1e0); - try testArgs(f64, inf(f64), 1e1); - try testArgs(f64, inf(f64), fmax(f64)); - try testArgs(f64, inf(f64), inf(f64)); - try testArgs(f64, inf(f64), nan(f64)); - - try testArgs(f64, nan(f64), -nan(f64)); - try testArgs(f64, nan(f64), -inf(f64)); - try testArgs(f64, nan(f64), -fmax(f64)); - try testArgs(f64, nan(f64), -1e1); - try testArgs(f64, nan(f64), -1e0); - try testArgs(f64, nan(f64), -1e-1); - try testArgs(f64, nan(f64), -fmin(f64)); - try testArgs(f64, nan(f64), -tmin(f64)); - try testArgs(f64, nan(f64), -0.0); - try testArgs(f64, nan(f64), 0.0); - try testArgs(f64, nan(f64), tmin(f64)); - try testArgs(f64, nan(f64), fmin(f64)); - try testArgs(f64, nan(f64), 1e-1); - try testArgs(f64, nan(f64), 1e0); - try testArgs(f64, nan(f64), 1e1); - try testArgs(f64, nan(f64), fmax(f64)); - try testArgs(f64, nan(f64), inf(f64)); - try testArgs(f64, nan(f64), nan(f64)); - - try testArgs(f80, -nan(f80), -nan(f80)); - try testArgs(f80, -nan(f80), -inf(f80)); - try testArgs(f80, -nan(f80), -fmax(f80)); - try testArgs(f80, -nan(f80), -1e1); - try testArgs(f80, -nan(f80), -1e0); - try testArgs(f80, -nan(f80), -1e-1); - try testArgs(f80, -nan(f80), -fmin(f80)); - try testArgs(f80, -nan(f80), -tmin(f80)); - try testArgs(f80, -nan(f80), -0.0); - try testArgs(f80, -nan(f80), 0.0); - try testArgs(f80, -nan(f80), tmin(f80)); - try testArgs(f80, -nan(f80), fmin(f80)); - try testArgs(f80, -nan(f80), 1e-1); - try testArgs(f80, -nan(f80), 1e0); - try testArgs(f80, -nan(f80), 1e1); - try testArgs(f80, -nan(f80), fmax(f80)); - try testArgs(f80, -nan(f80), inf(f80)); - try testArgs(f80, -nan(f80), nan(f80)); - - try testArgs(f80, -inf(f80), -nan(f80)); - try testArgs(f80, -inf(f80), -inf(f80)); - try testArgs(f80, -inf(f80), -fmax(f80)); - try testArgs(f80, -inf(f80), -1e1); - try testArgs(f80, -inf(f80), -1e0); - try testArgs(f80, -inf(f80), -1e-1); - try testArgs(f80, -inf(f80), -fmin(f80)); - try testArgs(f80, -inf(f80), -tmin(f80)); - try testArgs(f80, -inf(f80), -0.0); - try testArgs(f80, -inf(f80), 0.0); - try testArgs(f80, -inf(f80), tmin(f80)); - try testArgs(f80, -inf(f80), fmin(f80)); - try testArgs(f80, -inf(f80), 1e-1); - try testArgs(f80, -inf(f80), 1e0); - try testArgs(f80, -inf(f80), 1e1); - try testArgs(f80, -inf(f80), fmax(f80)); - try testArgs(f80, -inf(f80), inf(f80)); - try testArgs(f80, -inf(f80), nan(f80)); - - try testArgs(f80, -fmax(f80), -nan(f80)); - try testArgs(f80, -fmax(f80), -inf(f80)); - try testArgs(f80, -fmax(f80), -fmax(f80)); - try testArgs(f80, -fmax(f80), -1e1); - try testArgs(f80, -fmax(f80), -1e0); - try testArgs(f80, -fmax(f80), -1e-1); - try testArgs(f80, -fmax(f80), -fmin(f80)); - try testArgs(f80, -fmax(f80), -tmin(f80)); - try testArgs(f80, -fmax(f80), -0.0); - try testArgs(f80, -fmax(f80), 0.0); - try testArgs(f80, -fmax(f80), tmin(f80)); - try testArgs(f80, -fmax(f80), fmin(f80)); - try testArgs(f80, -fmax(f80), 1e-1); - try testArgs(f80, -fmax(f80), 1e0); - try testArgs(f80, -fmax(f80), 1e1); - try testArgs(f80, -fmax(f80), fmax(f80)); - try testArgs(f80, -fmax(f80), inf(f80)); - try testArgs(f80, -fmax(f80), nan(f80)); - - try testArgs(f80, -1e1, -nan(f80)); - try testArgs(f80, -1e1, -inf(f80)); - try testArgs(f80, -1e1, -fmax(f80)); - try testArgs(f80, -1e1, -1e1); - try testArgs(f80, -1e1, -1e0); - try testArgs(f80, -1e1, -1e-1); - try testArgs(f80, -1e1, -fmin(f80)); - try testArgs(f80, -1e1, -tmin(f80)); - try testArgs(f80, -1e1, -0.0); - try testArgs(f80, -1e1, 0.0); - try testArgs(f80, -1e1, tmin(f80)); - try testArgs(f80, -1e1, fmin(f80)); - try testArgs(f80, -1e1, 1e-1); - try testArgs(f80, -1e1, 1e0); - try testArgs(f80, -1e1, 1e1); - try testArgs(f80, -1e1, fmax(f80)); - try testArgs(f80, -1e1, inf(f80)); - try testArgs(f80, -1e1, nan(f80)); - - try testArgs(f80, -1e0, -nan(f80)); - try testArgs(f80, -1e0, -inf(f80)); - try testArgs(f80, -1e0, -fmax(f80)); - try testArgs(f80, -1e0, -1e1); - try testArgs(f80, -1e0, -1e0); - try testArgs(f80, -1e0, -1e-1); - try testArgs(f80, -1e0, -fmin(f80)); - try testArgs(f80, -1e0, -tmin(f80)); - try testArgs(f80, -1e0, -0.0); - try testArgs(f80, -1e0, 0.0); - try testArgs(f80, -1e0, tmin(f80)); - try testArgs(f80, -1e0, fmin(f80)); - try testArgs(f80, -1e0, 1e-1); - try testArgs(f80, -1e0, 1e0); - try testArgs(f80, -1e0, 1e1); - try testArgs(f80, -1e0, fmax(f80)); - try testArgs(f80, -1e0, inf(f80)); - try testArgs(f80, -1e0, nan(f80)); - - try testArgs(f80, -1e-1, -nan(f80)); - try testArgs(f80, -1e-1, -inf(f80)); - try testArgs(f80, -1e-1, -fmax(f80)); - try testArgs(f80, -1e-1, -1e1); - try testArgs(f80, -1e-1, -1e0); - try testArgs(f80, -1e-1, -1e-1); - try testArgs(f80, -1e-1, -fmin(f80)); - try testArgs(f80, -1e-1, -tmin(f80)); - try testArgs(f80, -1e-1, -0.0); - try testArgs(f80, -1e-1, 0.0); - try testArgs(f80, -1e-1, tmin(f80)); - try testArgs(f80, -1e-1, fmin(f80)); - try testArgs(f80, -1e-1, 1e-1); - try testArgs(f80, -1e-1, 1e0); - try testArgs(f80, -1e-1, 1e1); - try testArgs(f80, -1e-1, fmax(f80)); - try testArgs(f80, -1e-1, inf(f80)); - try testArgs(f80, -1e-1, nan(f80)); - - try testArgs(f80, -fmin(f80), -nan(f80)); - try testArgs(f80, -fmin(f80), -inf(f80)); - try testArgs(f80, -fmin(f80), -fmax(f80)); - try testArgs(f80, -fmin(f80), -1e1); - try testArgs(f80, -fmin(f80), -1e0); - try testArgs(f80, -fmin(f80), -1e-1); - try testArgs(f80, -fmin(f80), -fmin(f80)); - try testArgs(f80, -fmin(f80), -tmin(f80)); - try testArgs(f80, -fmin(f80), -0.0); - try testArgs(f80, -fmin(f80), 0.0); - try testArgs(f80, -fmin(f80), tmin(f80)); - try testArgs(f80, -fmin(f80), fmin(f80)); - try testArgs(f80, -fmin(f80), 1e-1); - try testArgs(f80, -fmin(f80), 1e0); - try testArgs(f80, -fmin(f80), 1e1); - try testArgs(f80, -fmin(f80), fmax(f80)); - try testArgs(f80, -fmin(f80), inf(f80)); - try testArgs(f80, -fmin(f80), nan(f80)); - - try testArgs(f80, -tmin(f80), -nan(f80)); - try testArgs(f80, -tmin(f80), -inf(f80)); - try testArgs(f80, -tmin(f80), -fmax(f80)); - try testArgs(f80, -tmin(f80), -1e1); - try testArgs(f80, -tmin(f80), -1e0); - try testArgs(f80, -tmin(f80), -1e-1); - try testArgs(f80, -tmin(f80), -fmin(f80)); - try testArgs(f80, -tmin(f80), -tmin(f80)); - try testArgs(f80, -tmin(f80), -0.0); - try testArgs(f80, -tmin(f80), 0.0); - try testArgs(f80, -tmin(f80), tmin(f80)); - try testArgs(f80, -tmin(f80), fmin(f80)); - try testArgs(f80, -tmin(f80), 1e-1); - try testArgs(f80, -tmin(f80), 1e0); - try testArgs(f80, -tmin(f80), 1e1); - try testArgs(f80, -tmin(f80), fmax(f80)); - try testArgs(f80, -tmin(f80), inf(f80)); - try testArgs(f80, -tmin(f80), nan(f80)); - - try testArgs(f80, -0.0, -nan(f80)); - try testArgs(f80, -0.0, -inf(f80)); - try testArgs(f80, -0.0, -fmax(f80)); - try testArgs(f80, -0.0, -1e1); - try testArgs(f80, -0.0, -1e0); - try testArgs(f80, -0.0, -1e-1); - try testArgs(f80, -0.0, -fmin(f80)); - try testArgs(f80, -0.0, -tmin(f80)); - try testArgs(f80, -0.0, -0.0); - try testArgs(f80, -0.0, 0.0); - try testArgs(f80, -0.0, tmin(f80)); - try testArgs(f80, -0.0, fmin(f80)); - try testArgs(f80, -0.0, 1e-1); - try testArgs(f80, -0.0, 1e0); - try testArgs(f80, -0.0, 1e1); - try testArgs(f80, -0.0, fmax(f80)); - try testArgs(f80, -0.0, inf(f80)); - try testArgs(f80, -0.0, nan(f80)); - - try testArgs(f80, 0.0, -nan(f80)); - try testArgs(f80, 0.0, -inf(f80)); - try testArgs(f80, 0.0, -fmax(f80)); - try testArgs(f80, 0.0, -1e1); - try testArgs(f80, 0.0, -1e0); - try testArgs(f80, 0.0, -1e-1); - try testArgs(f80, 0.0, -fmin(f80)); - try testArgs(f80, 0.0, -tmin(f80)); - try testArgs(f80, 0.0, -0.0); - try testArgs(f80, 0.0, 0.0); - try testArgs(f80, 0.0, tmin(f80)); - try testArgs(f80, 0.0, fmin(f80)); - try testArgs(f80, 0.0, 1e-1); - try testArgs(f80, 0.0, 1e0); - try testArgs(f80, 0.0, 1e1); - try testArgs(f80, 0.0, fmax(f80)); - try testArgs(f80, 0.0, inf(f80)); - try testArgs(f80, 0.0, nan(f80)); - - try testArgs(f80, tmin(f80), -nan(f80)); - try testArgs(f80, tmin(f80), -inf(f80)); - try testArgs(f80, tmin(f80), -fmax(f80)); - try testArgs(f80, tmin(f80), -1e1); - try testArgs(f80, tmin(f80), -1e0); - try testArgs(f80, tmin(f80), -1e-1); - try testArgs(f80, tmin(f80), -fmin(f80)); - try testArgs(f80, tmin(f80), -tmin(f80)); - try testArgs(f80, tmin(f80), -0.0); - try testArgs(f80, tmin(f80), 0.0); - try testArgs(f80, tmin(f80), tmin(f80)); - try testArgs(f80, tmin(f80), fmin(f80)); - try testArgs(f80, tmin(f80), 1e-1); - try testArgs(f80, tmin(f80), 1e0); - try testArgs(f80, tmin(f80), 1e1); - try testArgs(f80, tmin(f80), fmax(f80)); - try testArgs(f80, tmin(f80), inf(f80)); - try testArgs(f80, tmin(f80), nan(f80)); - - try testArgs(f80, fmin(f80), -nan(f80)); - try testArgs(f80, fmin(f80), -inf(f80)); - try testArgs(f80, fmin(f80), -fmax(f80)); - try testArgs(f80, fmin(f80), -1e1); - try testArgs(f80, fmin(f80), -1e0); - try testArgs(f80, fmin(f80), -1e-1); - try testArgs(f80, fmin(f80), -fmin(f80)); - try testArgs(f80, fmin(f80), -tmin(f80)); - try testArgs(f80, fmin(f80), -0.0); - try testArgs(f80, fmin(f80), 0.0); - try testArgs(f80, fmin(f80), tmin(f80)); - try testArgs(f80, fmin(f80), fmin(f80)); - try testArgs(f80, fmin(f80), 1e-1); - try testArgs(f80, fmin(f80), 1e0); - try testArgs(f80, fmin(f80), 1e1); - try testArgs(f80, fmin(f80), fmax(f80)); - try testArgs(f80, fmin(f80), inf(f80)); - try testArgs(f80, fmin(f80), nan(f80)); - - try testArgs(f80, 1e-1, -nan(f80)); - try testArgs(f80, 1e-1, -inf(f80)); - try testArgs(f80, 1e-1, -fmax(f80)); - try testArgs(f80, 1e-1, -1e1); - try testArgs(f80, 1e-1, -1e0); - try testArgs(f80, 1e-1, -1e-1); - try testArgs(f80, 1e-1, -fmin(f80)); - try testArgs(f80, 1e-1, -tmin(f80)); - try testArgs(f80, 1e-1, -0.0); - try testArgs(f80, 1e-1, 0.0); - try testArgs(f80, 1e-1, tmin(f80)); - try testArgs(f80, 1e-1, fmin(f80)); - try testArgs(f80, 1e-1, 1e-1); - try testArgs(f80, 1e-1, 1e0); - try testArgs(f80, 1e-1, 1e1); - try testArgs(f80, 1e-1, fmax(f80)); - try testArgs(f80, 1e-1, inf(f80)); - try testArgs(f80, 1e-1, nan(f80)); - - try testArgs(f80, 1e0, -nan(f80)); - try testArgs(f80, 1e0, -inf(f80)); - try testArgs(f80, 1e0, -fmax(f80)); - try testArgs(f80, 1e0, -1e1); - try testArgs(f80, 1e0, -1e0); - try testArgs(f80, 1e0, -1e-1); - try testArgs(f80, 1e0, -fmin(f80)); - try testArgs(f80, 1e0, -tmin(f80)); - try testArgs(f80, 1e0, -0.0); - try testArgs(f80, 1e0, 0.0); - try testArgs(f80, 1e0, tmin(f80)); - try testArgs(f80, 1e0, fmin(f80)); - try testArgs(f80, 1e0, 1e-1); - try testArgs(f80, 1e0, 1e0); - try testArgs(f80, 1e0, 1e1); - try testArgs(f80, 1e0, fmax(f80)); - try testArgs(f80, 1e0, inf(f80)); - try testArgs(f80, 1e0, nan(f80)); - - try testArgs(f80, 1e1, -nan(f80)); - try testArgs(f80, 1e1, -inf(f80)); - try testArgs(f80, 1e1, -fmax(f80)); - try testArgs(f80, 1e1, -1e1); - try testArgs(f80, 1e1, -1e0); - try testArgs(f80, 1e1, -1e-1); - try testArgs(f80, 1e1, -fmin(f80)); - try testArgs(f80, 1e1, -tmin(f80)); - try testArgs(f80, 1e1, -0.0); - try testArgs(f80, 1e1, 0.0); - try testArgs(f80, 1e1, tmin(f80)); - try testArgs(f80, 1e1, fmin(f80)); - try testArgs(f80, 1e1, 1e-1); - try testArgs(f80, 1e1, 1e0); - try testArgs(f80, 1e1, 1e1); - try testArgs(f80, 1e1, fmax(f80)); - try testArgs(f80, 1e1, inf(f80)); - try testArgs(f80, 1e1, nan(f80)); - - try testArgs(f80, fmax(f80), -nan(f80)); - try testArgs(f80, fmax(f80), -inf(f80)); - try testArgs(f80, fmax(f80), -fmax(f80)); - try testArgs(f80, fmax(f80), -1e1); - try testArgs(f80, fmax(f80), -1e0); - try testArgs(f80, fmax(f80), -1e-1); - try testArgs(f80, fmax(f80), -fmin(f80)); - try testArgs(f80, fmax(f80), -tmin(f80)); - try testArgs(f80, fmax(f80), -0.0); - try testArgs(f80, fmax(f80), 0.0); - try testArgs(f80, fmax(f80), tmin(f80)); - try testArgs(f80, fmax(f80), fmin(f80)); - try testArgs(f80, fmax(f80), 1e-1); - try testArgs(f80, fmax(f80), 1e0); - try testArgs(f80, fmax(f80), 1e1); - try testArgs(f80, fmax(f80), fmax(f80)); - try testArgs(f80, fmax(f80), inf(f80)); - try testArgs(f80, fmax(f80), nan(f80)); - - try testArgs(f80, inf(f80), -nan(f80)); - try testArgs(f80, inf(f80), -inf(f80)); - try testArgs(f80, inf(f80), -fmax(f80)); - try testArgs(f80, inf(f80), -1e1); - try testArgs(f80, inf(f80), -1e0); - try testArgs(f80, inf(f80), -1e-1); - try testArgs(f80, inf(f80), -fmin(f80)); - try testArgs(f80, inf(f80), -tmin(f80)); - try testArgs(f80, inf(f80), -0.0); - try testArgs(f80, inf(f80), 0.0); - try testArgs(f80, inf(f80), tmin(f80)); - try testArgs(f80, inf(f80), fmin(f80)); - try testArgs(f80, inf(f80), 1e-1); - try testArgs(f80, inf(f80), 1e0); - try testArgs(f80, inf(f80), 1e1); - try testArgs(f80, inf(f80), fmax(f80)); - try testArgs(f80, inf(f80), inf(f80)); - try testArgs(f80, inf(f80), nan(f80)); - - try testArgs(f80, nan(f80), -nan(f80)); - try testArgs(f80, nan(f80), -inf(f80)); - try testArgs(f80, nan(f80), -fmax(f80)); - try testArgs(f80, nan(f80), -1e1); - try testArgs(f80, nan(f80), -1e0); - try testArgs(f80, nan(f80), -1e-1); - try testArgs(f80, nan(f80), -fmin(f80)); - try testArgs(f80, nan(f80), -tmin(f80)); - try testArgs(f80, nan(f80), -0.0); - try testArgs(f80, nan(f80), 0.0); - try testArgs(f80, nan(f80), tmin(f80)); - try testArgs(f80, nan(f80), fmin(f80)); - try testArgs(f80, nan(f80), 1e-1); - try testArgs(f80, nan(f80), 1e0); - try testArgs(f80, nan(f80), 1e1); - try testArgs(f80, nan(f80), fmax(f80)); - try testArgs(f80, nan(f80), inf(f80)); - try testArgs(f80, nan(f80), nan(f80)); - - try testArgs(f128, -nan(f128), -nan(f128)); - try testArgs(f128, -nan(f128), -inf(f128)); - try testArgs(f128, -nan(f128), -fmax(f128)); - try testArgs(f128, -nan(f128), -1e1); - try testArgs(f128, -nan(f128), -1e0); - try testArgs(f128, -nan(f128), -1e-1); - try testArgs(f128, -nan(f128), -fmin(f128)); - try testArgs(f128, -nan(f128), -tmin(f128)); - try testArgs(f128, -nan(f128), -0.0); - try testArgs(f128, -nan(f128), 0.0); - try testArgs(f128, -nan(f128), tmin(f128)); - try testArgs(f128, -nan(f128), fmin(f128)); - try testArgs(f128, -nan(f128), 1e-1); - try testArgs(f128, -nan(f128), 1e0); - try testArgs(f128, -nan(f128), 1e1); - try testArgs(f128, -nan(f128), fmax(f128)); - try testArgs(f128, -nan(f128), inf(f128)); - try testArgs(f128, -nan(f128), nan(f128)); - - try testArgs(f128, -inf(f128), -nan(f128)); - try testArgs(f128, -inf(f128), -inf(f128)); - try testArgs(f128, -inf(f128), -fmax(f128)); - try testArgs(f128, -inf(f128), -1e1); - try testArgs(f128, -inf(f128), -1e0); - try testArgs(f128, -inf(f128), -1e-1); - try testArgs(f128, -inf(f128), -fmin(f128)); - try testArgs(f128, -inf(f128), -tmin(f128)); - try testArgs(f128, -inf(f128), -0.0); - try testArgs(f128, -inf(f128), 0.0); - try testArgs(f128, -inf(f128), tmin(f128)); - try testArgs(f128, -inf(f128), fmin(f128)); - try testArgs(f128, -inf(f128), 1e-1); - try testArgs(f128, -inf(f128), 1e0); - try testArgs(f128, -inf(f128), 1e1); - try testArgs(f128, -inf(f128), fmax(f128)); - try testArgs(f128, -inf(f128), inf(f128)); - try testArgs(f128, -inf(f128), nan(f128)); - - try testArgs(f128, -fmax(f128), -nan(f128)); - try testArgs(f128, -fmax(f128), -inf(f128)); - try testArgs(f128, -fmax(f128), -fmax(f128)); - try testArgs(f128, -fmax(f128), -1e1); - try testArgs(f128, -fmax(f128), -1e0); - try testArgs(f128, -fmax(f128), -1e-1); - try testArgs(f128, -fmax(f128), -fmin(f128)); - try testArgs(f128, -fmax(f128), -tmin(f128)); - try testArgs(f128, -fmax(f128), -0.0); - try testArgs(f128, -fmax(f128), 0.0); - try testArgs(f128, -fmax(f128), tmin(f128)); - try testArgs(f128, -fmax(f128), fmin(f128)); - try testArgs(f128, -fmax(f128), 1e-1); - try testArgs(f128, -fmax(f128), 1e0); - try testArgs(f128, -fmax(f128), 1e1); - try testArgs(f128, -fmax(f128), fmax(f128)); - try testArgs(f128, -fmax(f128), inf(f128)); - try testArgs(f128, -fmax(f128), nan(f128)); - - try testArgs(f128, -1e1, -nan(f128)); - try testArgs(f128, -1e1, -inf(f128)); - try testArgs(f128, -1e1, -fmax(f128)); - try testArgs(f128, -1e1, -1e1); - try testArgs(f128, -1e1, -1e0); - try testArgs(f128, -1e1, -1e-1); - try testArgs(f128, -1e1, -fmin(f128)); - try testArgs(f128, -1e1, -tmin(f128)); - try testArgs(f128, -1e1, -0.0); - try testArgs(f128, -1e1, 0.0); - try testArgs(f128, -1e1, tmin(f128)); - try testArgs(f128, -1e1, fmin(f128)); - try testArgs(f128, -1e1, 1e-1); - try testArgs(f128, -1e1, 1e0); - try testArgs(f128, -1e1, 1e1); - try testArgs(f128, -1e1, fmax(f128)); - try testArgs(f128, -1e1, inf(f128)); - try testArgs(f128, -1e1, nan(f128)); - - try testArgs(f128, -1e0, -nan(f128)); - try testArgs(f128, -1e0, -inf(f128)); - try testArgs(f128, -1e0, -fmax(f128)); - try testArgs(f128, -1e0, -1e1); - try testArgs(f128, -1e0, -1e0); - try testArgs(f128, -1e0, -1e-1); - try testArgs(f128, -1e0, -fmin(f128)); - try testArgs(f128, -1e0, -tmin(f128)); - try testArgs(f128, -1e0, -0.0); - try testArgs(f128, -1e0, 0.0); - try testArgs(f128, -1e0, tmin(f128)); - try testArgs(f128, -1e0, fmin(f128)); - try testArgs(f128, -1e0, 1e-1); - try testArgs(f128, -1e0, 1e0); - try testArgs(f128, -1e0, 1e1); - try testArgs(f128, -1e0, fmax(f128)); - try testArgs(f128, -1e0, inf(f128)); - try testArgs(f128, -1e0, nan(f128)); - - try testArgs(f128, -1e-1, -nan(f128)); - try testArgs(f128, -1e-1, -inf(f128)); - try testArgs(f128, -1e-1, -fmax(f128)); - try testArgs(f128, -1e-1, -1e1); - try testArgs(f128, -1e-1, -1e0); - try testArgs(f128, -1e-1, -1e-1); - try testArgs(f128, -1e-1, -fmin(f128)); - try testArgs(f128, -1e-1, -tmin(f128)); - try testArgs(f128, -1e-1, -0.0); - try testArgs(f128, -1e-1, 0.0); - try testArgs(f128, -1e-1, tmin(f128)); - try testArgs(f128, -1e-1, fmin(f128)); - try testArgs(f128, -1e-1, 1e-1); - try testArgs(f128, -1e-1, 1e0); - try testArgs(f128, -1e-1, 1e1); - try testArgs(f128, -1e-1, fmax(f128)); - try testArgs(f128, -1e-1, inf(f128)); - try testArgs(f128, -1e-1, nan(f128)); - - try testArgs(f128, -fmin(f128), -nan(f128)); - try testArgs(f128, -fmin(f128), -inf(f128)); - try testArgs(f128, -fmin(f128), -fmax(f128)); - try testArgs(f128, -fmin(f128), -1e1); - try testArgs(f128, -fmin(f128), -1e0); - try testArgs(f128, -fmin(f128), -1e-1); - try testArgs(f128, -fmin(f128), -fmin(f128)); - try testArgs(f128, -fmin(f128), -tmin(f128)); - try testArgs(f128, -fmin(f128), -0.0); - try testArgs(f128, -fmin(f128), 0.0); - try testArgs(f128, -fmin(f128), tmin(f128)); - try testArgs(f128, -fmin(f128), fmin(f128)); - try testArgs(f128, -fmin(f128), 1e-1); - try testArgs(f128, -fmin(f128), 1e0); - try testArgs(f128, -fmin(f128), 1e1); - try testArgs(f128, -fmin(f128), fmax(f128)); - try testArgs(f128, -fmin(f128), inf(f128)); - try testArgs(f128, -fmin(f128), nan(f128)); - - try testArgs(f128, -tmin(f128), -nan(f128)); - try testArgs(f128, -tmin(f128), -inf(f128)); - try testArgs(f128, -tmin(f128), -fmax(f128)); - try testArgs(f128, -tmin(f128), -1e1); - try testArgs(f128, -tmin(f128), -1e0); - try testArgs(f128, -tmin(f128), -1e-1); - try testArgs(f128, -tmin(f128), -fmin(f128)); - try testArgs(f128, -tmin(f128), -tmin(f128)); - try testArgs(f128, -tmin(f128), -0.0); - try testArgs(f128, -tmin(f128), 0.0); - try testArgs(f128, -tmin(f128), tmin(f128)); - try testArgs(f128, -tmin(f128), fmin(f128)); - try testArgs(f128, -tmin(f128), 1e-1); - try testArgs(f128, -tmin(f128), 1e0); - try testArgs(f128, -tmin(f128), 1e1); - try testArgs(f128, -tmin(f128), fmax(f128)); - try testArgs(f128, -tmin(f128), inf(f128)); - try testArgs(f128, -tmin(f128), nan(f128)); - - try testArgs(f128, -0.0, -nan(f128)); - try testArgs(f128, -0.0, -inf(f128)); - try testArgs(f128, -0.0, -fmax(f128)); - try testArgs(f128, -0.0, -1e1); - try testArgs(f128, -0.0, -1e0); - try testArgs(f128, -0.0, -1e-1); - try testArgs(f128, -0.0, -fmin(f128)); - try testArgs(f128, -0.0, -tmin(f128)); - try testArgs(f128, -0.0, -0.0); - try testArgs(f128, -0.0, 0.0); - try testArgs(f128, -0.0, tmin(f128)); - try testArgs(f128, -0.0, fmin(f128)); - try testArgs(f128, -0.0, 1e-1); - try testArgs(f128, -0.0, 1e0); - try testArgs(f128, -0.0, 1e1); - try testArgs(f128, -0.0, fmax(f128)); - try testArgs(f128, -0.0, inf(f128)); - try testArgs(f128, -0.0, nan(f128)); - - try testArgs(f128, 0.0, -nan(f128)); - try testArgs(f128, 0.0, -inf(f128)); - try testArgs(f128, 0.0, -fmax(f128)); - try testArgs(f128, 0.0, -1e1); - try testArgs(f128, 0.0, -1e0); - try testArgs(f128, 0.0, -1e-1); - try testArgs(f128, 0.0, -fmin(f128)); - try testArgs(f128, 0.0, -tmin(f128)); - try testArgs(f128, 0.0, -0.0); - try testArgs(f128, 0.0, 0.0); - try testArgs(f128, 0.0, tmin(f128)); - try testArgs(f128, 0.0, fmin(f128)); - try testArgs(f128, 0.0, 1e-1); - try testArgs(f128, 0.0, 1e0); - try testArgs(f128, 0.0, 1e1); - try testArgs(f128, 0.0, fmax(f128)); - try testArgs(f128, 0.0, inf(f128)); - try testArgs(f128, 0.0, nan(f128)); - - try testArgs(f128, tmin(f128), -nan(f128)); - try testArgs(f128, tmin(f128), -inf(f128)); - try testArgs(f128, tmin(f128), -fmax(f128)); - try testArgs(f128, tmin(f128), -1e1); - try testArgs(f128, tmin(f128), -1e0); - try testArgs(f128, tmin(f128), -1e-1); - try testArgs(f128, tmin(f128), -fmin(f128)); - try testArgs(f128, tmin(f128), -tmin(f128)); - try testArgs(f128, tmin(f128), -0.0); - try testArgs(f128, tmin(f128), 0.0); - try testArgs(f128, tmin(f128), tmin(f128)); - try testArgs(f128, tmin(f128), fmin(f128)); - try testArgs(f128, tmin(f128), 1e-1); - try testArgs(f128, tmin(f128), 1e0); - try testArgs(f128, tmin(f128), 1e1); - try testArgs(f128, tmin(f128), fmax(f128)); - try testArgs(f128, tmin(f128), inf(f128)); - try testArgs(f128, tmin(f128), nan(f128)); - - try testArgs(f128, fmin(f128), -nan(f128)); - try testArgs(f128, fmin(f128), -inf(f128)); - try testArgs(f128, fmin(f128), -fmax(f128)); - try testArgs(f128, fmin(f128), -1e1); - try testArgs(f128, fmin(f128), -1e0); - try testArgs(f128, fmin(f128), -1e-1); - try testArgs(f128, fmin(f128), -fmin(f128)); - try testArgs(f128, fmin(f128), -tmin(f128)); - try testArgs(f128, fmin(f128), -0.0); - try testArgs(f128, fmin(f128), 0.0); - try testArgs(f128, fmin(f128), tmin(f128)); - try testArgs(f128, fmin(f128), fmin(f128)); - try testArgs(f128, fmin(f128), 1e-1); - try testArgs(f128, fmin(f128), 1e0); - try testArgs(f128, fmin(f128), 1e1); - try testArgs(f128, fmin(f128), fmax(f128)); - try testArgs(f128, fmin(f128), inf(f128)); - try testArgs(f128, fmin(f128), nan(f128)); - - try testArgs(f128, 1e-1, -nan(f128)); - try testArgs(f128, 1e-1, -inf(f128)); - try testArgs(f128, 1e-1, -fmax(f128)); - try testArgs(f128, 1e-1, -1e1); - try testArgs(f128, 1e-1, -1e0); - try testArgs(f128, 1e-1, -1e-1); - try testArgs(f128, 1e-1, -fmin(f128)); - try testArgs(f128, 1e-1, -tmin(f128)); - try testArgs(f128, 1e-1, -0.0); - try testArgs(f128, 1e-1, 0.0); - try testArgs(f128, 1e-1, tmin(f128)); - try testArgs(f128, 1e-1, fmin(f128)); - try testArgs(f128, 1e-1, 1e-1); - try testArgs(f128, 1e-1, 1e0); - try testArgs(f128, 1e-1, 1e1); - try testArgs(f128, 1e-1, fmax(f128)); - try testArgs(f128, 1e-1, inf(f128)); - try testArgs(f128, 1e-1, nan(f128)); - - try testArgs(f128, 1e0, -nan(f128)); - try testArgs(f128, 1e0, -inf(f128)); - try testArgs(f128, 1e0, -fmax(f128)); - try testArgs(f128, 1e0, -1e1); - try testArgs(f128, 1e0, -1e0); - try testArgs(f128, 1e0, -1e-1); - try testArgs(f128, 1e0, -fmin(f128)); - try testArgs(f128, 1e0, -tmin(f128)); - try testArgs(f128, 1e0, -0.0); - try testArgs(f128, 1e0, 0.0); - try testArgs(f128, 1e0, tmin(f128)); - try testArgs(f128, 1e0, fmin(f128)); - try testArgs(f128, 1e0, 1e-1); - try testArgs(f128, 1e0, 1e0); - try testArgs(f128, 1e0, 1e1); - try testArgs(f128, 1e0, fmax(f128)); - try testArgs(f128, 1e0, inf(f128)); - try testArgs(f128, 1e0, nan(f128)); - - try testArgs(f128, 1e1, -nan(f128)); - try testArgs(f128, 1e1, -inf(f128)); - try testArgs(f128, 1e1, -fmax(f128)); - try testArgs(f128, 1e1, -1e1); - try testArgs(f128, 1e1, -1e0); - try testArgs(f128, 1e1, -1e-1); - try testArgs(f128, 1e1, -fmin(f128)); - try testArgs(f128, 1e1, -tmin(f128)); - try testArgs(f128, 1e1, -0.0); - try testArgs(f128, 1e1, 0.0); - try testArgs(f128, 1e1, tmin(f128)); - try testArgs(f128, 1e1, fmin(f128)); - try testArgs(f128, 1e1, 1e-1); - try testArgs(f128, 1e1, 1e0); - try testArgs(f128, 1e1, 1e1); - try testArgs(f128, 1e1, fmax(f128)); - try testArgs(f128, 1e1, inf(f128)); - try testArgs(f128, 1e1, nan(f128)); - - try testArgs(f128, fmax(f128), -nan(f128)); - try testArgs(f128, fmax(f128), -inf(f128)); - try testArgs(f128, fmax(f128), -fmax(f128)); - try testArgs(f128, fmax(f128), -1e1); - try testArgs(f128, fmax(f128), -1e0); - try testArgs(f128, fmax(f128), -1e-1); - try testArgs(f128, fmax(f128), -fmin(f128)); - try testArgs(f128, fmax(f128), -tmin(f128)); - try testArgs(f128, fmax(f128), -0.0); - try testArgs(f128, fmax(f128), 0.0); - try testArgs(f128, fmax(f128), tmin(f128)); - try testArgs(f128, fmax(f128), fmin(f128)); - try testArgs(f128, fmax(f128), 1e-1); - try testArgs(f128, fmax(f128), 1e0); - try testArgs(f128, fmax(f128), 1e1); - try testArgs(f128, fmax(f128), fmax(f128)); - try testArgs(f128, fmax(f128), inf(f128)); - try testArgs(f128, fmax(f128), nan(f128)); - - try testArgs(f128, inf(f128), -nan(f128)); - try testArgs(f128, inf(f128), -inf(f128)); - try testArgs(f128, inf(f128), -fmax(f128)); - try testArgs(f128, inf(f128), -1e1); - try testArgs(f128, inf(f128), -1e0); - try testArgs(f128, inf(f128), -1e-1); - try testArgs(f128, inf(f128), -fmin(f128)); - try testArgs(f128, inf(f128), -tmin(f128)); - try testArgs(f128, inf(f128), -0.0); - try testArgs(f128, inf(f128), 0.0); - try testArgs(f128, inf(f128), tmin(f128)); - try testArgs(f128, inf(f128), fmin(f128)); - try testArgs(f128, inf(f128), 1e-1); - try testArgs(f128, inf(f128), 1e0); - try testArgs(f128, inf(f128), 1e1); - try testArgs(f128, inf(f128), fmax(f128)); - try testArgs(f128, inf(f128), inf(f128)); - try testArgs(f128, inf(f128), nan(f128)); - - try testArgs(f128, nan(f128), -nan(f128)); - try testArgs(f128, nan(f128), -inf(f128)); - try testArgs(f128, nan(f128), -fmax(f128)); - try testArgs(f128, nan(f128), -1e1); - try testArgs(f128, nan(f128), -1e0); - try testArgs(f128, nan(f128), -1e-1); - try testArgs(f128, nan(f128), -fmin(f128)); - try testArgs(f128, nan(f128), -tmin(f128)); - try testArgs(f128, nan(f128), -0.0); - try testArgs(f128, nan(f128), 0.0); - try testArgs(f128, nan(f128), tmin(f128)); - try testArgs(f128, nan(f128), fmin(f128)); - try testArgs(f128, nan(f128), 1e-1); - try testArgs(f128, nan(f128), 1e0); - try testArgs(f128, nan(f128), 1e1); - try testArgs(f128, nan(f128), fmax(f128)); - try testArgs(f128, nan(f128), inf(f128)); - try testArgs(f128, nan(f128), nan(f128)); - } - fn testIntVectors() !void { - try testArgs(@Vector(1, i1), .{ - 0x0, - }, .{ - -0x1, - }); - try testArgs(@Vector(2, i1), .{ - 0x0, 0x00, - }, .{ - -0x1, -0x1, - }); - try testArgs(@Vector(4, i1), .{ - 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, - }); - try testArgs(@Vector(8, i1), .{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - }); - try testArgs(@Vector(16, i1), .{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - }); - try testArgs(@Vector(32, i1), .{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - }); - try testArgs(@Vector(64, i1), .{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - }); - try testArgs(@Vector(128, i1), .{ - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }, .{ - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, - }); - - try testArgs(@Vector(1, u1), .{ - 0x0, - }, .{ - 0x1, - }); - try testArgs(@Vector(2, u1), .{ - 0x0, 0x1, - }, .{ - 0x1, 0x1, - }); - try testArgs(@Vector(4, u1), .{ - 0x0, 0x0, 0x1, 0x0, - }, .{ - 0x1, 0x1, 0x1, 0x1, - }); - try testArgs(@Vector(8, u1), .{ - 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, - }, .{ - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - }); - try testArgs(@Vector(16, u1), .{ - 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, - }, .{ - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - }); - try testArgs(@Vector(32, u1), .{ - 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, - 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, - }, .{ - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - }); - try testArgs(@Vector(64, u1), .{ - 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, - 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, - 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, - }, .{ - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - }); - try testArgs(@Vector(128, u1), .{ - 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, - 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, - 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, - 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, - 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, - 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, - }, .{ - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, - }); - - // workaround https://github.com/ziglang/zig/issues/22914 - // TODO: try testArgs(@Vector(1, i2), .{ - // 0x1, - // }, .{ - // 0x1, - // }); - // try testArgs(@Vector(2, i2), .{ - // 0x0, -0x2, - // }, .{ - // -0x2, -0x2, - // }); - // try testArgs(@Vector(4, i2), .{ - // -0x2, -0x1, 0x0, -0x2, - // }, .{ - // -0x2, 0x1, -0x1, -0x2, - // }); - // try testArgs(@Vector(8, i2), .{ - // -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2, - // }, .{ - // -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, - // }); - // try testArgs(@Vector(16, i2), .{ - // 0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0, - // }, .{ - // -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, - // }); - // try testArgs(@Vector(32, i2), .{ - // -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0, -0x1, 0x0, -0x2, -0x2, 0x0, 0x1, - // -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, 0x0, -0x1, 0x0, -0x2, - // }, .{ - // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, - // -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, 0x1, -0x2, -0x2, - // }); - // try testArgs(@Vector(64, i2), .{ - // 0x1, -0x2, -0x1, 0x0, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1, 0x0, 0x1, - // -0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, 0x0, -0x2, -0x2, - // 0x1, 0x0, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, 0x1, 0x0, 0x0, -0x1, 0x0, 0x1, - // -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x2, 0x0, -0x2, 0x0, -0x2, 0x1, 0x0, -0x1, -0x1, 0x1, - // }, .{ - // -0x2, -0x2, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, - // -0x2, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, -0x2, 0x1, -0x1, -0x2, 0x1, -0x2, 0x1, - // 0x1, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, - // -0x2, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x1, -0x2, -0x2, - // }); - // try testArgs(@Vector(128, i2), .{ - // -0x1, -0x2, 0x0, -0x2, -0x2, 0x1, -0x1, 0x0, -0x1, -0x2, 0x0, -0x2, 0x0, 0x1, 0x0, -0x1, - // 0x0, -0x2, 0x1, 0x0, 0x1, 0x0, -0x2, 0x1, 0x1, 0x1, -0x1, 0x1, 0x0, -0x1, 0x1, -0x1, - // 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x0, 0x0, 0x1, 0x1, -0x2, -0x1, - // 0x1, 0x0, 0x0, 0x1, -0x2, -0x1, 0x0, -0x1, 0x1, -0x2, 0x1, 0x0, 0x1, 0x0, 0x0, -0x2, - // 0x0, 0x0, -0x1, 0x1, -0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, -0x2, 0x0, 0x0, 0x0, - // -0x1, -0x1, -0x1, -0x1, -0x2, 0x0, -0x1, 0x1, 0x0, 0x0, -0x2, 0x0, 0x0, 0x0, 0x0, 0x1, - // 0x1, -0x2, 0x0, 0x0, -0x1, -0x1, 0x1, -0x1, -0x2, 0x0, -0x1, -0x1, -0x2, -0x2, 0x0, 0x0, - // -0x1, 0x0, 0x1, 0x0, -0x1, -0x2, 0x1, -0x2, -0x1, -0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x1, - // }, .{ - // -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, 0x1, 0x1, -0x2, -0x2, 0x1, -0x2, -0x2, 0x1, -0x1, - // -0x1, -0x2, 0x1, -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, -0x2, - // -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, 0x1, -0x1, -0x1, -0x1, -0x1, 0x1, -0x2, - // 0x1, -0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x2, -0x2, -0x2, 0x1, 0x1, -0x2, - // -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x2, - // 0x1, -0x1, 0x1, -0x2, 0x1, -0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, -0x2, -0x2, -0x1, -0x2, - // -0x2, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x2, 0x1, -0x2, 0x1, -0x2, -0x2, 0x1, - // 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, - // }); - try testArgs(@Vector(1, i2), .{ - -0x1, - }, .{ - -0x2, - }); - try testArgs(@Vector(2, i2), .{ - -0x1, -0x1, - }, .{ - 0x1, -0x1, - }); - try testArgs(@Vector(4, i2), .{ - -0x1, 0x1, -0x1, -0x1, - }, .{ - 0x1, -0x1, -0x1, 0x1, - }); - try testArgs(@Vector(8, i2), .{ - 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, -0x1, 0x1, - }, .{ - 0x1, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, - }); - try testArgs(@Vector(16, i2), .{ - 0x1, 0x0, 0x0, -0x1, 0x1, 0x0, 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x0, - }, .{ - 0x1, 0x1, 0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, - }); - try testArgs(@Vector(32, i2), .{ - 0x0, 0x1, -0x1, -0x1, -0x1, 0x0, -0x1, 0x0, -0x1, -0x1, 0x1, -0x1, 0x0, -0x1, 0x0, -0x1, - -0x1, 0x1, 0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x0, 0x1, - }, .{ - -0x2, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, -0x1, -0x1, -0x1, -0x1, 0x1, 0x1, 0x1, -0x2, - -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x1, - }); - try testArgs(@Vector(64, i2), .{ - 0x1, 0x1, -0x1, 0x0, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, - -0x1, 0x0, 0x0, 0x0, 0x0, -0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, -0x1, 0x0, -0x1, 0x0, - -0x1, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, 0x1, 0x0, 0x0, - 0x1, -0x1, -0x1, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, - }, .{ - -0x1, 0x1, -0x2, -0x1, -0x1, 0x1, 0x1, -0x2, -0x2, 0x1, 0x1, -0x1, -0x2, 0x1, 0x1, -0x1, - -0x1, -0x1, 0x1, -0x2, -0x2, -0x2, -0x1, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, - -0x2, -0x1, -0x1, 0x1, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1, -0x1, 0x1, -0x2, -0x2, 0x1, -0x1, - -0x1, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, 0x1, -0x1, 0x1, 0x1, -0x1, -0x2, - }); - try testArgs(@Vector(128, i2), .{ - 0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x0, 0x1, 0x0, -0x1, 0x0, -0x1, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, -0x1, 0x0, -0x1, - 0x0, 0x1, -0x1, 0x1, -0x1, -0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, -0x1, 0x1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, -0x1, 0x1, 0x1, -0x1, 0x1, -0x1, 0x0, 0x1, 0x0, 0x1, - 0x0, -0x1, 0x0, 0x0, 0x1, -0x1, 0x0, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, - 0x0, -0x1, 0x1, -0x1, -0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x1, 0x0, -0x1, 0x1, 0x0, -0x1, - 0x1, 0x0, 0x1, -0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, -0x1, 0x0, 0x1, 0x0, - 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, -0x1, 0x0, -0x1, -0x1, 0x0, 0x0, 0x0, 0x1, 0x1, -0x1, - }, .{ - -0x2, -0x2, -0x1, -0x2, -0x1, -0x1, -0x2, -0x2, -0x2, 0x1, -0x2, -0x2, -0x2, -0x2, -0x2, 0x1, - -0x1, 0x1, -0x1, -0x1, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x1, -0x2, -0x2, -0x1, 0x1, -0x1, - -0x2, -0x1, -0x1, -0x2, -0x1, -0x2, -0x1, 0x1, -0x1, -0x1, 0x1, -0x1, -0x2, 0x1, -0x2, -0x1, - -0x2, 0x1, -0x1, -0x2, -0x2, -0x2, -0x2, -0x1, 0x1, 0x1, 0x1, 0x1, -0x1, -0x2, -0x1, -0x1, - -0x2, -0x2, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, 0x1, -0x1, 0x1, - -0x2, -0x2, 0x1, -0x2, -0x1, -0x1, 0x1, -0x1, -0x1, -0x1, -0x2, -0x2, -0x1, 0x1, 0x1, -0x2, - -0x1, -0x2, 0x1, 0x1, 0x1, 0x1, -0x2, 0x1, -0x1, -0x1, -0x2, 0x1, -0x1, -0x2, -0x1, -0x2, - -0x2, -0x2, -0x1, -0x1, -0x2, -0x1, 0x1, -0x1, 0x1, 0x1, 0x1, -0x2, -0x1, 0x1, -0x2, 0x1, - }); - - try testArgs(@Vector(1, u2), .{ - 0x2, - }, .{ - 0x2, - }); - try testArgs(@Vector(2, u2), .{ - 0x1, 0x0, - }, .{ - 0x2, 0x1, - }); - try testArgs(@Vector(4, u2), .{ - 0x3, 0x3, 0x0, 0x2, - }, .{ - 0x3, 0x1, 0x1, 0x3, - }); - try testArgs(@Vector(8, u2), .{ - 0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, - }, .{ - 0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, - }); - try testArgs(@Vector(16, u2), .{ - 0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, - }, .{ - 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1, - }); - try testArgs(@Vector(32, u2), .{ - 0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0, - 0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, - }, .{ - 0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2, - 0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3, - }); - try testArgs(@Vector(64, u2), .{ - 0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0, - 0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3, - 0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0, - 0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3, - }, .{ - 0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3, - 0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, - 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2, - 0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1, - }); - try testArgs(@Vector(128, u2), .{ - 0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1, - 0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1, - 0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0, - 0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0, - 0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3, - 0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1, - 0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1, - 0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2, - }, .{ - 0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1, - 0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, - 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, - 0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2, - 0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2, - 0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, - 0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1, - 0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1, - }); - - // workaround https://github.com/ziglang/zig/issues/22914 - // TODO: try testArgs(@Vector(1, i3), .{ - // -0x3, - // }, .{ - // -0x1, - // }); - // try testArgs(@Vector(2, i3), .{ - // 0x2, -0x3, - // }, .{ - // 0x1, 0x3, - // }); - // try testArgs(@Vector(4, i3), .{ - // 0x1, -0x4, -0x2, -0x3, - // }, .{ - // -0x2, -0x4, 0x2, 0x2, - // }); - // try testArgs(@Vector(8, i3), .{ - // 0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3, - // }, .{ - // -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2, - // }); - // try testArgs(@Vector(16, i3), .{ - // -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4, - // }, .{ - // 0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4, - // }); - // try testArgs(@Vector(32, i3), .{ - // 0x1, -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3, -0x2, 0x3, 0x0, -0x3, 0x0, - // -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2, -0x4, -0x4, -0x3, 0x1, -0x1, -0x2, - // }, .{ - // -0x4, -0x2, 0x1, -0x1, 0x3, 0x1, 0x2, -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2, - // -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3, 0x1, -0x3, 0x3, 0x3, -0x4, 0x3, 0x2, -0x2, - // }); - // try testArgs(@Vector(64, i3), .{ - // 0x1, 0x2, 0x1, 0x2, -0x2, 0x2, 0x2, -0x1, -0x4, 0x1, 0x3, 0x0, -0x2, -0x2, 0x2, -0x2, - // 0x0, -0x4, -0x3, -0x4, -0x1, -0x1, 0x2, 0x2, -0x2, -0x1, -0x1, 0x3, 0x3, -0x4, 0x2, 0x0, - // 0x3, 0x2, -0x4, -0x1, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, -0x3, 0x1, -0x4, -0x2, 0x1, -0x3, - // -0x3, -0x1, 0x1, -0x3, -0x1, 0x3, -0x4, -0x4, 0x0, 0x0, -0x4, -0x2, 0x3, -0x1, -0x3, -0x3, - // }, .{ - // 0x3, -0x2, 0x1, -0x4, 0x1, 0x3, -0x3, 0x1, 0x3, 0x1, 0x1, -0x1, -0x2, 0x1, -0x3, 0x1, - // -0x2, -0x2, 0x3, -0x3, -0x1, -0x3, 0x1, -0x1, -0x3, -0x3, 0x1, -0x2, 0x1, -0x2, 0x1, 0x2, - // 0x3, -0x4, -0x4, -0x1, 0x1, 0x3, 0x1, 0x1, -0x4, 0x2, -0x3, 0x3, 0x3, -0x1, 0x1, -0x1, - // -0x2, 0x2, 0x2, -0x4, -0x4, 0x3, -0x2, -0x4, -0x1, -0x2, -0x4, 0x1, 0x2, 0x1, -0x1, -0x2, - // }); - // try testArgs(@Vector(128, i3), .{ - // -0x4, 0x1, 0x0, -0x4, -0x4, 0x1, -0x4, -0x2, 0x2, 0x2, -0x3, 0x1, 0x2, -0x2, 0x1, 0x1, - // 0x3, 0x0, 0x3, -0x4, -0x1, 0x3, 0x3, -0x4, 0x0, -0x3, 0x2, -0x2, 0x0, 0x3, 0x1, -0x2, - // -0x1, -0x1, 0x3, -0x1, -0x2, 0x3, 0x3, 0x1, -0x3, 0x1, -0x1, -0x2, -0x4, 0x2, -0x2, -0x1, - // 0x1, 0x1, 0x1, 0x0, -0x1, 0x2, -0x1, 0x3, 0x2, -0x1, -0x2, 0x3, -0x2, 0x3, 0x3, 0x1, - // 0x3, -0x3, -0x4, -0x1, 0x2, 0x2, -0x2, 0x3, -0x4, -0x2, -0x1, 0x0, 0x1, -0x1, 0x0, 0x0, - // -0x2, 0x3, 0x0, -0x3, -0x4, 0x2, -0x3, -0x2, -0x4, 0x0, -0x3, -0x4, -0x4, -0x2, -0x1, -0x3, - // 0x0, -0x1, 0x0, -0x1, 0x2, -0x4, -0x3, 0x0, -0x4, 0x0, -0x2, 0x1, -0x2, -0x4, -0x1, -0x1, - // -0x3, 0x3, -0x1, -0x1, -0x2, 0x1, 0x3, 0x1, -0x3, 0x1, -0x4, -0x2, 0x0, -0x1, -0x2, 0x2, - // }, .{ - // -0x3, 0x2, -0x3, 0x1, -0x2, -0x1, -0x3, 0x1, 0x2, 0x2, -0x2, 0x2, 0x2, 0x1, 0x3, -0x1, - // -0x4, -0x3, 0x2, -0x3, -0x2, 0x3, -0x3, 0x2, -0x1, -0x3, 0x1, 0x2, -0x4, 0x2, -0x2, -0x3, - // 0x1, -0x1, 0x2, 0x2, -0x1, -0x3, -0x4, 0x2, 0x1, -0x4, 0x1, -0x4, 0x2, -0x1, 0x2, -0x2, - // 0x2, 0x1, -0x4, 0x3, 0x1, -0x2, -0x3, -0x4, 0x3, -0x1, 0x3, -0x4, -0x2, 0x1, -0x2, 0x3, - // 0x1, 0x1, 0x2, 0x1, -0x1, -0x2, 0x2, -0x1, 0x1, -0x1, -0x3, -0x1, 0x1, -0x4, -0x1, -0x1, - // -0x3, -0x1, -0x4, 0x3, 0x1, -0x1, -0x1, -0x1, 0x1, -0x4, 0x1, -0x2, -0x4, 0x2, -0x4, -0x3, - // 0x2, -0x4, -0x1, 0x1, 0x3, 0x2, -0x1, 0x3, 0x2, 0x2, 0x1, -0x4, -0x3, 0x1, -0x1, 0x1, - // -0x2, -0x4, 0x1, 0x3, -0x1, 0x3, 0x1, 0x2, -0x4, 0x2, 0x2, -0x3, -0x3, -0x4, -0x2, 0x3, - // }); - try testArgs(@Vector(1, i3), .{ - -0x1, - }, .{ - -0x3, - }); - try testArgs(@Vector(2, i3), .{ - 0x2, -0x2, - }, .{ - 0x3, 0x3, - }); - try testArgs(@Vector(4, i3), .{ - 0x1, 0x0, -0x2, 0x0, - }, .{ - 0x2, -0x2, -0x4, 0x3, - }); - try testArgs(@Vector(8, i3), .{ - 0x3, -0x1, -0x3, -0x3, -0x3, -0x2, 0x2, -0x3, - }, .{ - -0x1, 0x1, -0x2, 0x2, 0x1, -0x2, -0x3, -0x1, - }); - try testArgs(@Vector(16, i3), .{ - -0x1, -0x1, 0x3, -0x2, -0x2, -0x2, -0x2, -0x1, 0x2, 0x1, -0x2, 0x2, -0x2, 0x1, 0x1, -0x3, - }, .{ - 0x1, -0x1, -0x1, -0x1, 0x1, 0x3, -0x1, -0x1, 0x1, 0x3, -0x1, -0x3, 0x1, 0x3, 0x1, -0x2, - }); - try testArgs(@Vector(32, i3), .{ - 0x3, -0x1, -0x3, 0x1, 0x0, 0x0, -0x3, -0x1, -0x3, 0x1, 0x1, 0x2, -0x1, 0x1, -0x1, -0x1, - 0x1, -0x3, 0x1, -0x1, 0x1, 0x0, -0x2, 0x3, -0x2, -0x3, 0x3, 0x1, -0x1, 0x0, 0x3, -0x1, - }, .{ - 0x1, -0x2, -0x4, -0x4, 0x2, 0x1, -0x4, -0x3, -0x4, 0x1, -0x3, -0x4, -0x1, 0x2, -0x1, 0x1, - 0x2, -0x2, -0x4, 0x3, -0x3, 0x1, 0x2, -0x2, -0x2, 0x3, 0x3, 0x2, -0x2, -0x4, -0x2, -0x3, - }); - try testArgs(@Vector(64, i3), .{ - -0x2, 0x1, 0x3, -0x1, -0x3, -0x1, 0x1, -0x3, 0x1, -0x2, 0x0, 0x3, 0x0, -0x2, 0x1, -0x3, - -0x2, 0x1, -0x2, 0x2, 0x0, 0x1, -0x3, 0x0, -0x3, 0x0, -0x3, -0x2, -0x2, -0x3, -0x2, 0x3, - -0x1, 0x1, 0x1, 0x1, -0x1, 0x0, -0x3, -0x3, -0x3, -0x3, -0x2, 0x2, 0x3, 0x2, -0x3, 0x1, - -0x3, -0x3, -0x1, -0x1, -0x1, -0x3, -0x2, -0x2, 0x2, 0x3, 0x3, -0x3, 0x0, 0x3, -0x3, -0x3, - }, .{ - 0x2, 0x1, -0x1, -0x3, -0x1, -0x4, -0x2, -0x3, 0x2, -0x2, -0x4, 0x2, 0x2, -0x2, 0x1, 0x1, - 0x1, -0x1, -0x3, 0x2, -0x2, 0x2, -0x1, 0x3, 0x3, -0x1, -0x1, -0x3, -0x1, 0x2, -0x2, 0x2, - 0x1, -0x4, -0x2, -0x4, 0x2, -0x1, -0x2, 0x3, 0x3, 0x3, -0x4, -0x2, 0x3, -0x4, 0x1, -0x2, - -0x2, 0x2, -0x3, -0x3, 0x1, -0x3, 0x3, 0x2, 0x1, 0x3, -0x3, 0x3, 0x2, -0x2, -0x2, 0x2, - }); - try testArgs(@Vector(128, i3), .{ - -0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x2, 0x1, -0x3, 0x1, -0x2, -0x1, 0x0, 0x2, 0x3, -0x3, - -0x1, -0x1, -0x2, 0x3, 0x1, 0x2, 0x2, 0x3, -0x2, 0x3, -0x2, -0x3, 0x1, 0x0, -0x1, -0x2, - -0x1, -0x1, 0x1, -0x1, 0x2, -0x3, 0x1, -0x2, -0x1, 0x2, -0x2, 0x1, 0x1, -0x3, -0x2, 0x3, - -0x1, -0x1, 0x1, -0x3, -0x1, -0x2, 0x0, 0x1, -0x1, 0x0, -0x1, 0x2, 0x1, 0x2, 0x3, -0x1, - 0x0, 0x1, 0x2, 0x3, -0x2, 0x2, -0x3, 0x2, 0x0, -0x2, -0x3, -0x2, 0x0, 0x1, 0x2, 0x1, - -0x3, 0x0, -0x2, -0x3, -0x1, 0x2, -0x3, 0x2, 0x3, 0x1, 0x1, -0x1, 0x2, 0x1, -0x1, 0x2, - 0x2, 0x0, 0x1, -0x3, -0x3, 0x1, 0x2, 0x0, 0x1, 0x0, 0x0, -0x1, 0x0, 0x0, 0x3, 0x3, - 0x0, -0x2, -0x2, -0x2, 0x3, 0x0, -0x1, -0x2, 0x0, 0x3, -0x3, 0x1, 0x2, -0x1, 0x1, 0x1, - }, .{ - 0x3, 0x3, 0x2, 0x3, -0x3, -0x4, 0x1, -0x3, 0x2, 0x3, 0x3, -0x2, 0x2, -0x1, 0x1, 0x3, - -0x4, -0x4, -0x1, -0x1, 0x2, -0x3, -0x3, -0x3, -0x2, -0x3, -0x2, -0x1, 0x1, 0x3, -0x4, -0x2, - -0x3, 0x1, 0x3, 0x1, -0x2, 0x1, 0x1, 0x2, 0x1, 0x2, -0x4, -0x4, -0x3, -0x2, -0x1, -0x2, - 0x3, 0x2, -0x3, -0x2, -0x2, 0x3, -0x3, -0x4, 0x3, -0x3, 0x3, -0x1, 0x3, -0x1, -0x1, 0x2, - 0x3, -0x4, -0x4, -0x2, -0x4, 0x2, -0x2, -0x4, -0x2, -0x2, -0x3, 0x3, 0x2, 0x2, 0x2, -0x4, - 0x1, -0x4, -0x3, -0x2, -0x4, -0x4, 0x1, -0x4, -0x1, 0x3, -0x2, -0x4, 0x3, -0x4, 0x3, -0x1, - 0x3, 0x1, -0x1, 0x1, 0x1, 0x2, 0x1, -0x3, -0x4, -0x1, -0x1, -0x2, -0x3, -0x2, 0x3, -0x2, - -0x1, 0x3, 0x3, -0x1, 0x3, 0x1, 0x1, 0x2, -0x3, 0x3, -0x1, 0x3, -0x3, -0x4, -0x4, 0x1, - }); - - try testArgs(@Vector(1, u3), .{ - 0x5, - }, .{ - 0x2, - }); - try testArgs(@Vector(2, u3), .{ - 0x4, 0x5, - }, .{ - 0x2, 0x4, - }); - try testArgs(@Vector(4, u3), .{ - 0x7, 0x7, 0x2, 0x3, - }, .{ - 0x4, 0x5, 0x7, 0x1, - }); - try testArgs(@Vector(8, u3), .{ - 0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7, - }, .{ - 0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1, - }); - try testArgs(@Vector(16, u3), .{ - 0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5, - }, .{ - 0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2, - }); - try testArgs(@Vector(32, u3), .{ - 0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2, - 0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2, - }, .{ - 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1, - 0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6, - }); - try testArgs(@Vector(64, u3), .{ - 0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5, - 0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7, - 0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2, - 0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6, - }, .{ - 0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4, - 0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5, - 0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4, - 0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3, - }); - try testArgs(@Vector(128, u3), .{ - 0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6, - 0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5, - 0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3, - 0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4, - 0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2, - 0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4, - 0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4, - 0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4, - }, .{ - 0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1, - 0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4, - 0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4, - 0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5, - 0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1, - 0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3, - 0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7, - 0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1, - }); - - // workaround https://github.com/ziglang/zig/issues/22914 - // TODO: try testArgs(@Vector(1, i4), .{ - // 0x2, - // }, .{ - // 0x1, - // }); - // try testArgs(@Vector(2, i4), .{ - // -0x2, 0x5, - // }, .{ - // -0x1, 0x2, - // }); - // try testArgs(@Vector(4, i4), .{ - // -0x8, 0x5, 0x5, -0x2, - // }, .{ - // -0x3, -0x7, -0x4, -0x5, - // }); - // try testArgs(@Vector(8, i4), .{ - // 0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1, - // }, .{ - // -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7, - // }); - // try testArgs(@Vector(16, i4), .{ - // 0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0, - // }, .{ - // 0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2, - // }); - // try testArgs(@Vector(32, i4), .{ - // -0x1, -0x4, 0x6, 0x6, 0x5, 0x3, 0x4, 0x0, 0x3, 0x7, -0x6, 0x7, -0x2, -0x7, -0x4, 0x6, - // 0x3, -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0, 0x0, -0x8, - // }, .{ - // -0x4, -0x4, -0x4, 0x4, -0x5, 0x3, -0x1, 0x6, 0x1, -0x3, -0x1, 0x6, 0x5, -0x8, 0x1, -0x4, - // -0x1, -0x4, 0x1, -0x3, 0x4, 0x6, -0x3, -0x8, -0x7, -0x4, 0x2, -0x3, -0x1, -0x2, 0x6, -0x6, - // }); - // try testArgs(@Vector(64, i4), .{ - // 0x0, -0x3, -0x3, 0x5, 0x2, -0x1, 0x4, 0x5, 0x6, -0x2, 0x1, 0x5, -0x3, -0x1, -0x2, -0x1, - // -0x8, 0x2, -0x1, -0x2, 0x7, -0x3, -0x2, -0x3, 0x1, -0x5, 0x5, 0x2, -0x1, -0x6, -0x2, -0x1, - // -0x2, -0x5, 0x0, 0x6, 0x3, -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1, 0x0, -0x6, -0x7, -0x6, - // 0x1, -0x6, 0x4, -0x4, -0x2, 0x6, -0x7, 0x4, 0x4, 0x5, 0x3, -0x6, -0x8, -0x5, 0x5, -0x7, - // }, .{ - // -0x1, -0x5, 0x5, -0x2, 0x6, -0x6, -0x4, -0x5, -0x4, 0x7, -0x6, 0x7, 0x4, -0x5, 0x5, 0x7, - // -0x6, 0x3, -0x4, 0x2, -0x8, 0x4, -0x2, 0x5, -0x5, -0x5, -0x8, 0x3, -0x1, -0x4, -0x8, -0x2, - // -0x2, 0x5, -0x7, -0x3, 0x2, -0x5, -0x6, -0x7, -0x8, -0x2, 0x5, -0x3, 0x2, -0x1, -0x7, -0x4, - // -0x3, -0x3, 0x6, -0x8, 0x3, -0x4, 0x7, 0x3, -0x2, 0x7, -0x1, 0x1, 0x1, 0x6, -0x2, -0x2, - // }); - // try testArgs(@Vector(128, i4), .{ - // -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0, -0x4, 0x7, 0x3, 0x5, -0x4, -0x5, -0x4, -0x2, -0x7, - // 0x2, 0x0, -0x4, 0x7, 0x3, -0x5, 0x4, 0x5, -0x2, -0x3, -0x4, 0x6, -0x7, -0x1, 0x1, -0x6, - // 0x1, 0x5, 0x2, 0x5, 0x2, 0x2, -0x4, -0x4, 0x5, 0x2, -0x2, -0x8, -0x1, -0x2, 0x5, 0x3, - // 0x0, -0x5, 0x5, 0x7, 0x6, -0x3, -0x2, 0x0, -0x7, -0x7, -0x4, 0x2, -0x4, 0x7, 0x1, -0x5, - // -0x4, -0x8, 0x2, -0x7, 0x3, -0x4, 0x7, 0x6, -0x7, -0x3, -0x7, 0x2, 0x4, 0x2, -0x5, -0x6, - // 0x3, 0x5, 0x1, 0x6, 0x5, 0x7, 0x7, -0x4, -0x7, -0x1, 0x0, -0x7, 0x6, 0x0, 0x6, 0x0, - // 0x0, -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1, 0x1, -0x8, 0x2, 0x6, -0x1, -0x3, - // -0x6, 0x5, -0x8, 0x3, 0x3, 0x1, -0x1, -0x3, -0x3, -0x6, 0x7, -0x6, -0x8, 0x1, -0x7, -0x8, - // }, .{ - // 0x1, 0x3, 0x1, 0x3, -0x6, 0x6, 0x2, -0x3, 0x1, -0x7, 0x7, -0x3, -0x1, -0x1, 0x7, 0x2, - // -0x8, 0x2, -0x3, -0x4, 0x4, -0x4, 0x7, 0x6, -0x5, -0x2, -0x1, 0x6, -0x7, 0x4, 0x7, -0x3, - // -0x5, -0x8, -0x5, -0x6, -0x6, 0x2, 0x1, -0x8, 0x4, 0x3, -0x5, 0x7, -0x8, 0x3, -0x1, 0x7, - // -0x3, 0x7, -0x3, -0x2, -0x6, 0x4, 0x2, -0x2, -0x2, -0x7, 0x5, -0x1, -0x6, 0x7, -0x5, 0x5, - // 0x4, 0x5, -0x8, -0x5, 0x6, 0x1, -0x5, 0x7, -0x6, -0x3, -0x4, 0x6, -0x8, 0x7, 0x7, -0x6, - // 0x6, -0x4, 0x2, -0x8, -0x8, -0x4, -0x8, -0x3, 0x6, 0x5, 0x7, -0x6, 0x1, 0x2, -0x7, -0x3, - // -0x3, 0x1, -0x3, 0x3, -0x1, 0x3, -0x7, -0x8, 0x1, -0x3, -0x3, -0x3, -0x4, 0x5, 0x7, -0x7, - // 0x3, 0x2, 0x6, -0x2, -0x4, -0x3, -0x1, 0x5, -0x6, 0x2, 0x3, -0x5, 0x5, -0x3, -0x2, -0x8, - // }); - try testArgs(@Vector(1, i4), .{ - -0x1, - }, .{ - -0x1, - }); - try testArgs(@Vector(2, i4), .{ - 0x7, 0x5, - }, .{ - 0x4, 0x1, - }); - try testArgs(@Vector(4, i4), .{ - -0x2, -0x3, -0x6, 0x1, - }, .{ - 0x3, -0x5, -0x1, -0x3, - }); - try testArgs(@Vector(8, i4), .{ - -0x5, -0x3, -0x2, 0x2, -0x4, -0x4, 0x0, 0x1, - }, .{ - -0x7, -0x2, -0x7, 0x1, 0x6, 0x2, -0x7, 0x7, - }); - try testArgs(@Vector(16, i4), .{ - -0x1, -0x1, 0x6, 0x3, -0x1, 0x2, -0x6, 0x6, 0x1, 0x5, -0x1, 0x7, 0x7, -0x3, -0x1, 0x4, - }, .{ - 0x1, -0x3, 0x4, -0x1, 0x2, 0x5, -0x3, -0x5, -0x5, 0x5, -0x7, 0x7, 0x1, 0x5, -0x5, -0x6, - }); - try testArgs(@Vector(32, i4), .{ - -0x7, 0x4, -0x5, -0x5, -0x5, 0x1, 0x7, 0x3, -0x2, 0x7, -0x3, -0x7, -0x3, -0x2, -0x5, -0x7, - 0x5, 0x4, 0x3, 0x0, -0x6, -0x2, -0x4, -0x1, 0x5, 0x4, -0x7, -0x7, -0x5, 0x5, -0x5, -0x1, - }, .{ - 0x4, 0x4, 0x5, 0x2, 0x3, -0x4, 0x6, 0x2, -0x7, 0x3, 0x7, 0x2, 0x6, 0x2, 0x2, 0x3, - 0x7, -0x3, -0x7, -0x2, 0x3, -0x1, -0x4, 0x4, -0x8, 0x1, 0x6, -0x7, 0x5, 0x1, 0x7, -0x2, - }); - try testArgs(@Vector(64, i4), .{ - 0x0, 0x3, 0x7, -0x7, 0x1, -0x5, -0x4, 0x2, 0x2, 0x5, 0x4, 0x0, -0x3, -0x4, -0x4, -0x4, - -0x7, 0x6, 0x2, 0x1, 0x0, 0x3, -0x6, 0x4, -0x4, 0x2, 0x7, 0x3, -0x4, -0x3, -0x3, -0x3, - -0x4, 0x0, -0x3, -0x6, 0x0, 0x1, -0x5, -0x7, -0x2, -0x1, -0x1, -0x7, 0x3, -0x5, -0x4, -0x3, - 0x5, 0x1, -0x4, 0x7, 0x1, 0x7, -0x5, 0x4, 0x5, -0x4, 0x1, -0x4, 0x4, 0x5, 0x4, -0x2, - }, .{ - 0x2, -0x4, -0x1, 0x4, 0x4, -0x1, -0x3, 0x6, 0x4, 0x2, 0x4, 0x3, -0x6, -0x7, -0x4, 0x6, - 0x6, 0x4, 0x6, -0x7, 0x2, 0x4, -0x8, -0x1, -0x8, 0x3, -0x2, -0x7, 0x1, 0x5, -0x3, -0x6, - -0x8, 0x2, -0x5, 0x7, 0x4, 0x7, -0x4, 0x3, 0x6, -0x7, -0x1, 0x1, -0x8, -0x2, -0x3, 0x3, - 0x3, -0x4, 0x4, -0x7, 0x5, -0x4, -0x1, 0x2, 0x6, -0x2, -0x5, 0x2, 0x7, 0x2, -0x8, -0x3, - }); - try testArgs(@Vector(128, i4), .{ - 0x3, 0x3, -0x6, 0x3, 0x2, 0x1, 0x5, -0x2, 0x0, -0x7, 0x4, 0x3, 0x0, -0x3, -0x7, -0x5, - 0x4, 0x0, 0x1, 0x6, 0x3, 0x3, -0x4, 0x7, -0x6, -0x6, 0x6, 0x1, 0x6, -0x5, -0x6, -0x6, - 0x4, -0x2, 0x3, -0x1, -0x4, -0x6, -0x1, 0x2, 0x4, 0x3, -0x2, 0x2, 0x3, 0x5, 0x0, -0x2, - 0x5, 0x6, -0x1, -0x5, 0x6, 0x7, 0x7, -0x6, -0x6, 0x0, 0x0, -0x6, -0x2, -0x7, -0x6, 0x3, - -0x6, -0x6, 0x4, -0x4, 0x4, -0x5, 0x0, 0x6, 0x6, 0x7, 0x4, -0x5, 0x5, -0x7, -0x7, 0x6, - -0x4, 0x4, -0x7, 0x4, 0x3, 0x2, -0x4, -0x1, -0x6, -0x2, 0x5, -0x2, 0x4, -0x7, -0x3, -0x3, - 0x4, 0x1, -0x1, 0x2, -0x1, 0x4, -0x5, -0x3, -0x1, -0x3, 0x3, 0x7, 0x5, -0x1, -0x1, -0x4, - 0x2, 0x1, -0x3, 0x7, -0x6, -0x7, -0x6, -0x4, -0x5, -0x2, 0x5, 0x0, -0x5, 0x7, -0x7, 0x5, - }, .{ - -0x6, -0x5, -0x1, 0x4, 0x6, 0x4, -0x1, -0x7, -0x3, 0x4, -0x6, -0x2, -0x3, 0x1, 0x6, 0x2, - -0x1, -0x3, -0x4, 0x2, 0x3, 0x6, -0x7, 0x3, 0x7, -0x6, 0x1, -0x7, -0x5, 0x6, 0x7, -0x4, - 0x7, -0x4, 0x2, -0x5, 0x4, 0x5, 0x5, -0x3, -0x1, 0x6, -0x6, -0x2, -0x4, 0x3, -0x4, -0x4, - -0x5, 0x6, -0x6, 0x3, -0x6, -0x3, 0x6, 0x5, 0x6, -0x6, -0x3, 0x1, -0x4, -0x5, -0x8, -0x3, - -0x4, 0x7, -0x2, -0x1, 0x4, 0x2, -0x3, 0x6, 0x4, 0x6, -0x3, 0x6, 0x5, -0x2, -0x1, 0x5, - 0x6, -0x6, -0x8, -0x2, -0x3, 0x6, -0x6, 0x5, -0x2, -0x6, 0x5, -0x6, 0x2, 0x1, 0x3, -0x3, - 0x7, 0x7, 0x3, -0x1, 0x5, -0x2, -0x3, 0x4, 0x7, -0x7, 0x7, 0x6, -0x2, -0x5, 0x4, -0x5, - -0x1, -0x2, 0x1, 0x4, -0x2, 0x1, -0x3, 0x1, -0x4, 0x3, -0x2, -0x6, -0x4, -0x2, -0x8, 0x2, - }); - - try testArgs(@Vector(1, u4), .{ - 0x2, - }, .{ - 0xa, - }); - try testArgs(@Vector(2, u4), .{ - 0x0, 0xa, - }, .{ - 0xb, 0xa, - }); - try testArgs(@Vector(4, u4), .{ - 0xb, 0x7, 0x0, 0xd, - }, .{ - 0x4, 0x5, 0xf, 0x3, - }); - try testArgs(@Vector(8, u4), .{ - 0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7, - }, .{ - 0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2, - }); - try testArgs(@Vector(16, u4), .{ - 0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf, - }, .{ - 0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe, - }); - try testArgs(@Vector(32, u4), .{ - 0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6, - 0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0, - }, .{ - 0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3, - 0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6, - }); - try testArgs(@Vector(64, u4), .{ - 0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9, - 0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4, - 0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb, - 0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd, - }, .{ - 0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7, - 0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2, - 0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6, - 0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8, - }); - try testArgs(@Vector(128, u4), .{ - 0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6, - 0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3, - 0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4, - 0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa, - 0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7, - 0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc, - 0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8, - 0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1, - }, .{ - 0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4, - 0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6, - 0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe, - 0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5, - 0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7, - 0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa, - 0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8, - 0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4, - }); - - // workaround https://github.com/ziglang/zig/issues/22914 - // TODO: try testArgs(@Vector(1, i5), .{ - // 0x03, - // }, .{ - // 0x0a, - // }); - // try testArgs(@Vector(2, i5), .{ - // 0x0c, -0x0e, - // }, .{ - // -0x0f, -0x0e, - // }); - // try testArgs(@Vector(4, i5), .{ - // -0x0a, 0x06, -0x05, 0x09, - // }, .{ - // -0x0f, 0x05, 0x05, 0x09, - // }); - // try testArgs(@Vector(8, i5), .{ - // -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e, - // }, .{ - // -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03, - // }); - // try testArgs(@Vector(16, i5), .{ - // -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10, - // }, .{ - // 0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03, - // }); - // try testArgs(@Vector(32, i5), .{ - // -0x08, -0x05, 0x09, -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f, -0x0b, 0x01, -0x03, 0x03, 0x08, 0x04, - // 0x02, 0x0f, -0x0b, -0x0b, 0x0d, 0x00, 0x09, 0x00, -0x06, -0x08, -0x01, 0x0b, 0x05, 0x03, -0x05, -0x07, - // }, .{ - // -0x0c, 0x07, 0x0d, -0x09, 0x0a, 0x06, -0x0b, -0x07, -0x0a, 0x08, 0x07, -0x0d, 0x08, 0x07, 0x09, -0x07, - // 0x0b, -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a, -0x0a, 0x02, -0x07, -0x0a, 0x0d, -0x07, -0x05, -0x0e, 0x05, - // }); - // try testArgs(@Vector(64, i5), .{ - // 0x04, -0x0d, 0x0d, -0x01, 0x07, 0x0c, 0x00, 0x01, -0x07, 0x0a, -0x01, -0x01, 0x08, -0x0b, -0x03, -0x06, - // -0x03, -0x03, -0x0c, 0x0e, -0x0c, -0x02, 0x07, -0x03, 0x0e, -0x0a, -0x0e, -0x06, -0x08, 0x0a, -0x0c, -0x0c, - // 0x06, -0x04, 0x04, 0x00, 0x05, 0x07, 0x04, 0x06, -0x01, 0x0a, 0x07, -0x08, 0x00, 0x0f, 0x0f, 0x0d, - // -0x07, 0x0f, 0x05, -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e, 0x02, 0x06, 0x0d, 0x06, 0x00, 0x0a, - // }, .{ - // 0x02, -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02, 0x0e, 0x07, -0x01, -0x0a, -0x0b, 0x05, -0x0e, - // -0x09, 0x03, 0x08, -0x0d, 0x0d, 0x03, -0x02, 0x0e, 0x0c, 0x03, 0x0b, -0x0d, -0x04, -0x10, 0x0e, 0x0d, - // 0x09, -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08, -0x06, 0x08, -0x0e, 0x02, -0x10, 0x01, 0x01, -0x0a, - // 0x01, -0x09, 0x03, -0x01, 0x05, 0x09, 0x06, -0x03, -0x0a, 0x08, -0x0e, 0x0e, 0x07, -0x05, -0x0c, -0x10, - // }); - // try testArgs(@Vector(128, i5), .{ - // 0x01, 0x0b, -0x01, -0x10, -0x05, 0x05, -0x09, 0x0e, -0x0e, 0x04, 0x0f, -0x06, 0x0f, 0x04, -0x02, 0x0a, - // -0x08, -0x06, 0x08, -0x07, -0x08, 0x0e, 0x06, 0x0d, -0x07, -0x04, 0x04, -0x0b, 0x02, -0x06, 0x07, -0x10, - // 0x0d, 0x09, 0x0b, -0x04, 0x0e, -0x06, -0x0a, 0x01, 0x06, 0x08, 0x01, -0x0b, -0x09, -0x08, -0x0c, -0x0b, - // 0x07, 0x06, 0x0d, 0x0c, -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05, 0x0b, 0x08, -0x01, 0x00, 0x01, 0x0a, - // 0x00, 0x0a, 0x06, 0x06, -0x10, -0x05, -0x05, -0x0f, 0x02, -0x06, -0x08, -0x08, 0x0f, 0x09, -0x07, -0x05, - // 0x07, 0x06, 0x03, 0x05, 0x02, 0x0f, 0x0d, -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09, 0x05, - // -0x07, -0x07, -0x08, 0x0c, -0x0e, 0x09, -0x0c, -0x0d, 0x07, 0x04, 0x07, -0x03, 0x09, 0x0e, 0x04, 0x02, - // 0x0f, -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c, -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d, -0x0e, 0x04, 0x03, - // }, .{ - // -0x08, -0x09, -0x04, 0x0f, -0x0f, -0x08, -0x04, 0x0b, 0x09, -0x0b, -0x02, 0x0f, 0x01, -0x01, -0x0a, -0x0a, - // 0x08, 0x09, 0x0d, -0x06, 0x0f, -0x02, 0x0c, 0x01, 0x0c, 0x02, -0x04, 0x0b, 0x05, 0x02, -0x08, -0x09, - // 0x01, 0x0f, -0x0b, 0x02, -0x06, 0x08, -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c, 0x09, -0x04, 0x08, -0x0a, - // 0x09, -0x05, 0x08, 0x0e, 0x05, 0x03, -0x0a, 0x0d, -0x03, 0x06, 0x0f, -0x09, 0x0a, 0x03, 0x02, 0x0c, - // 0x08, -0x0a, 0x06, 0x0e, 0x08, 0x02, 0x08, -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a, 0x0c, -0x03, 0x04, - // 0x0b, -0x0c, -0x0e, 0x01, 0x07, -0x01, 0x09, 0x0f, -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a, -0x0a, -0x0d, - // -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e, 0x04, -0x01, -0x0b, - // -0x06, 0x0a, 0x0a, -0x0c, -0x0c, 0x0b, -0x02, 0x0c, -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b, - // }); - try testArgs(@Vector(1, i5), .{ - -0x0f, - }, .{ - -0x03, - }); - try testArgs(@Vector(2, i5), .{ - 0x0b, -0x04, - }, .{ - -0x05, -0x08, - }); - try testArgs(@Vector(4, i5), .{ - 0x08, 0x0f, -0x06, -0x0d, - }, .{ - -0x03, -0x0a, -0x05, -0x03, - }); - try testArgs(@Vector(8, i5), .{ - 0x08, 0x0c, 0x07, 0x00, -0x06, 0x08, 0x08, 0x0d, - }, .{ - 0x07, 0x09, 0x05, -0x08, 0x08, -0x0e, -0x0e, -0x0e, - }); - try testArgs(@Vector(16, i5), .{ - 0x06, 0x0b, 0x07, 0x0e, 0x0e, 0x02, -0x08, -0x0b, -0x03, 0x09, -0x08, 0x0e, -0x03, -0x0a, 0x01, 0x0b, - }, .{ - -0x05, 0x0f, -0x08, -0x10, -0x07, 0x06, 0x08, 0x01, 0x0a, 0x06, 0x05, -0x0f, 0x03, 0x05, 0x0b, -0x06, - }); - try testArgs(@Vector(32, i5), .{ - 0x0e, 0x07, -0x08, 0x0b, 0x04, -0x05, 0x0f, 0x02, 0x04, -0x0c, 0x0d, 0x09, 0x0e, -0x02, -0x0f, 0x04, - -0x03, -0x02, 0x09, -0x0d, 0x01, 0x00, -0x0e, -0x0a, 0x02, -0x06, 0x0c, 0x03, 0x06, 0x0e, 0x06, -0x07, - }, .{ - -0x0a, 0x01, 0x0a, -0x10, 0x06, 0x09, 0x0e, 0x03, 0x0e, -0x09, 0x08, -0x08, 0x06, 0x0c, -0x0a, -0x07, - 0x04, -0x02, -0x09, 0x0b, 0x0e, -0x03, -0x01, -0x0d, 0x0e, -0x0a, -0x02, 0x08, 0x0e, 0x02, -0x04, -0x05, - }); - try testArgs(@Vector(64, i5), .{ - 0x04, 0x02, -0x04, -0x0a, -0x0b, -0x0b, -0x0c, -0x08, -0x0b, -0x05, 0x0c, 0x0b, 0x05, 0x02, -0x01, -0x06, - -0x09, -0x06, 0x0a, 0x0f, -0x06, -0x0d, 0x0c, 0x05, 0x0b, -0x06, -0x02, 0x09, 0x0e, -0x09, 0x05, 0x0a, - -0x0c, 0x0b, -0x01, -0x04, 0x01, 0x0c, 0x0f, -0x0f, -0x07, 0x0a, 0x04, 0x02, 0x08, -0x01, -0x03, 0x0a, - -0x0e, -0x04, -0x03, -0x0b, -0x01, 0x02, -0x05, 0x08, -0x03, 0x02, -0x01, -0x05, 0x07, -0x09, 0x0f, 0x00, - }, .{ - -0x09, -0x02, -0x0a, -0x05, -0x05, -0x0d, 0x04, -0x05, 0x0e, -0x01, -0x07, 0x04, 0x0d, -0x0f, -0x09, -0x04, - -0x0b, -0x0b, 0x0e, 0x01, 0x06, -0x0f, -0x0b, 0x03, -0x04, 0x05, -0x03, -0x09, 0x0a, 0x04, 0x04, -0x06, - -0x02, 0x01, 0x0e, 0x0c, -0x10, 0x0f, -0x09, -0x08, -0x10, -0x02, -0x07, -0x0d, 0x08, 0x07, -0x03, 0x01, - -0x0d, -0x10, -0x07, 0x08, 0x0d, 0x07, 0x09, 0x0f, 0x04, 0x06, -0x05, -0x09, 0x04, -0x04, -0x04, 0x0d, - }); - try testArgs(@Vector(128, i5), .{ - -0x02, -0x07, -0x03, 0x08, -0x0b, -0x09, -0x0c, 0x0d, -0x0e, 0x08, -0x03, -0x09, 0x0a, 0x02, -0x0d, 0x05, - -0x04, -0x0c, -0x07, 0x08, -0x0a, 0x04, 0x08, -0x07, 0x0c, 0x03, 0x0e, 0x0f, 0x08, -0x08, -0x02, -0x0a, - -0x08, 0x04, -0x0c, -0x09, 0x0a, -0x0e, -0x04, -0x05, 0x02, 0x0d, -0x04, -0x0f, -0x0d, -0x02, 0x05, -0x07, - 0x06, 0x0b, -0x0b, -0x04, -0x04, -0x0e, -0x0c, 0x09, 0x02, -0x0c, 0x0e, 0x09, 0x02, -0x04, 0x05, 0x04, - -0x0e, -0x02, -0x08, 0x05, 0x00, 0x0f, -0x0a, 0x0a, 0x0b, 0x0b, 0x02, -0x02, -0x0d, -0x08, -0x0d, 0x03, - 0x0b, -0x0b, 0x02, 0x05, -0x06, -0x07, -0x08, -0x0a, -0x09, -0x03, -0x0e, -0x0f, -0x0b, 0x03, 0x00, 0x09, - 0x07, 0x0a, -0x0b, 0x06, 0x01, -0x03, -0x0a, -0x09, -0x07, -0x0d, 0x0a, -0x0c, 0x01, -0x09, -0x01, -0x01, - -0x09, 0x00, 0x0f, 0x05, -0x0b, 0x0c, 0x04, 0x0c, 0x0b, -0x08, 0x01, -0x05, -0x04, 0x02, 0x0c, 0x04, - }, .{ - -0x08, -0x05, -0x0a, 0x06, -0x06, -0x04, 0x01, 0x07, 0x0d, -0x0a, -0x02, 0x0b, -0x01, -0x0c, -0x04, 0x0c, - -0x06, 0x0d, 0x04, 0x0b, 0x07, 0x0c, 0x02, 0x02, -0x02, 0x09, 0x0d, -0x07, -0x08, 0x07, -0x04, 0x06, - -0x0a, 0x07, 0x01, 0x07, -0x0d, 0x02, 0x09, -0x02, 0x0e, -0x08, -0x03, -0x07, 0x07, 0x0a, -0x0e, -0x06, - 0x0b, -0x0d, 0x0c, -0x06, -0x07, 0x0a, 0x0b, -0x0a, 0x05, 0x01, -0x0d, -0x08, -0x0e, -0x08, -0x07, -0x01, - -0x10, 0x07, 0x03, 0x06, 0x03, 0x0a, 0x08, -0x0a, 0x04, -0x09, 0x0c, 0x01, -0x10, 0x02, 0x09, 0x0d, - 0x0f, -0x01, -0x06, -0x0a, 0x04, 0x01, 0x07, 0x07, 0x0e, 0x0e, -0x04, -0x0a, -0x03, 0x07, 0x07, -0x10, - -0x04, 0x0e, -0x09, -0x0f, -0x0b, -0x0e, 0x0c, -0x0d, 0x0b, -0x06, 0x0f, -0x0d, 0x0b, 0x04, -0x10, -0x10, - -0x0e, 0x09, 0x0d, -0x02, -0x0e, -0x06, -0x0b, -0x0f, -0x08, -0x0f, -0x0d, -0x0a, -0x02, 0x03, 0x0b, -0x0a, - }); - - try testArgs(@Vector(1, u5), .{ - 0x0a, - }, .{ - 0x1c, - }); - try testArgs(@Vector(2, u5), .{ - 0x01, 0x07, - }, .{ - 0x03, 0x1d, - }); - try testArgs(@Vector(4, u5), .{ - 0x1c, 0x0d, 0x1f, 0x0a, - }, .{ - 0x14, 0x03, 0x07, 0x02, - }); - try testArgs(@Vector(8, u5), .{ - 0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10, - }, .{ - 0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a, - }); - try testArgs(@Vector(16, u5), .{ - 0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05, - }, .{ - 0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05, - }); - try testArgs(@Vector(32, u5), .{ - 0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00, - 0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16, - }, .{ - 0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b, - 0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e, - }); - try testArgs(@Vector(64, u5), .{ - 0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03, - 0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06, - 0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16, - 0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b, - }, .{ - 0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03, - 0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06, - 0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f, - 0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c, - }); - try testArgs(@Vector(128, u5), .{ - 0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b, - 0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f, - 0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01, - 0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05, - 0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d, - 0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02, - 0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10, - 0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01, - }, .{ - 0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12, - 0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07, - 0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f, - 0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07, - 0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a, - 0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04, - 0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c, - 0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09, - }); - - try testArgs(@Vector(1, i7), .{ - 0x3b, - }, .{ - 0x0d, - }); - try testArgs(@Vector(2, i7), .{ - -0x3e, -0x06, - }, .{ - -0x37, -0x0f, - }); - try testArgs(@Vector(4, i7), .{ - 0x35, 0x29, -0x17, 0x39, - }, .{ - -0x2c, -0x02, -0x29, -0x1a, - }); - try testArgs(@Vector(8, i7), .{ - 0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c, - }, .{ - 0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05, - }); - try testArgs(@Vector(16, i7), .{ - -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31, - }, .{ - -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09, - }); - try testArgs(@Vector(32, i7), .{ - 0x04, 0x09, 0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11, -0x2a, 0x29, -0x16, -0x3b, -0x1e, - 0x3a, -0x0d, 0x11, 0x16, 0x27, 0x0f, 0x2f, 0x14, 0x3b, -0x2f, -0x3d, 0x1d, -0x08, -0x2e, -0x2a, -0x33, - }, .{ - -0x09, 0x3c, 0x15, -0x25, -0x03, 0x0a, 0x11, 0x03, 0x12, -0x1d, -0x23, 0x29, -0x30, -0x35, -0x0e, -0x15, - -0x1c, -0x14, 0x07, 0x29, -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22, -0x15, -0x2d, 0x04, 0x19, 0x14, -0x1d, - }); - try testArgs(@Vector(64, i7), .{ - 0x23, 0x09, -0x13, 0x03, 0x19, -0x35, -0x06, -0x3c, -0x31, 0x12, 0x09, 0x22, -0x15, -0x1c, -0x25, -0x31, - 0x3a, -0x31, 0x05, 0x0b, -0x14, 0x38, 0x39, 0x15, 0x15, -0x11, 0x11, -0x21, 0x2f, 0x3d, -0x2e, -0x33, - -0x38, 0x1b, 0x14, 0x1d, 0x0d, -0x16, 0x10, -0x0a, 0x25, 0x0d, 0x1e, 0x1a, -0x15, 0x21, 0x3e, -0x0c, - 0x03, 0x3f, 0x1f, 0x17, 0x2c, -0x0a, -0x2b, 0x1f, 0x32, 0x09, 0x0f, -0x15, 0x24, -0x35, 0x27, -0x13, - }, .{ - -0x20, 0x25, 0x38, -0x28, 0x06, -0x2f, -0x0b, -0x2b, 0x21, -0x23, -0x08, 0x06, -0x2a, -0x26, 0x33, -0x2f, - 0x06, -0x1b, 0x3c, -0x3d, 0x3e, 0x1f, 0x27, 0x28, -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e, - 0x0e, -0x2c, -0x0f, -0x3b, 0x1b, 0x17, 0x3f, -0x3a, 0x21, -0x16, 0x11, -0x0a, 0x1b, 0x2a, 0x27, 0x3e, - -0x09, -0x34, 0x20, 0x3e, -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21, 0x13, 0x22, 0x0c, -0x1f, 0x38, 0x21, - }); - try testArgs(@Vector(128, i7), .{ - -0x38, -0x10, 0x08, -0x2b, 0x3e, -0x19, 0x39, -0x1f, -0x27, -0x10, -0x0c, 0x02, 0x07, 0x10, -0x1a, 0x0b, - 0x3c, -0x2e, 0x1b, -0x17, 0x3e, -0x1b, -0x04, 0x35, 0x2d, 0x0d, 0x33, 0x0f, 0x18, 0x0b, 0x1a, -0x09, - 0x25, -0x0b, -0x21, 0x3a, -0x28, 0x12, 0x16, 0x03, -0x1f, 0x1d, -0x1c, -0x1a, -0x38, 0x32, 0x3d, -0x2a, - -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02, -0x13, -0x23, 0x2f, 0x0a, -0x22, 0x15, 0x34, -0x06, - -0x2e, -0x3b, 0x26, 0x38, 0x33, -0x29, -0x0c, 0x2e, 0x07, -0x19, 0x3c, -0x35, -0x33, 0x39, 0x3c, 0x37, - -0x07, -0x13, 0x16, 0x05, -0x27, 0x28, -0x2b, -0x07, -0x25, -0x01, 0x1d, -0x0a, -0x01, 0x1d, -0x2a, -0x30, - 0x31, 0x0a, -0x24, 0x0c, 0x35, -0x1c, -0x04, 0x21, -0x35, 0x12, 0x19, 0x3d, -0x0c, 0x20, 0x28, -0x22, - -0x3c, 0x09, 0x11, -0x0c, -0x14, -0x39, 0x0f, -0x40, -0x0a, 0x0f, 0x1b, 0x34, -0x27, 0x35, 0x0e, -0x3d, - }, .{ - -0x1a, 0x06, 0x1f, -0x24, -0x21, -0x3d, 0x1f, -0x18, 0x2f, -0x38, 0x2f, -0x0f, 0x20, 0x2d, 0x31, -0x09, - -0x1d, 0x3a, 0x24, -0x09, 0x0c, -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29, 0x23, -0x37, -0x05, 0x27, -0x12, - 0x23, -0x14, 0x26, 0x36, -0x33, -0x1d, -0x0f, 0x32, 0x2a, -0x34, -0x31, 0x0a, -0x33, -0x34, 0x30, 0x3d, - -0x1a, 0x0f, 0x16, 0x07, 0x2d, -0x2b, 0x2c, -0x2d, 0x34, -0x07, 0x32, 0x3a, 0x2e, -0x1c, 0x2e, 0x0f, - 0x02, 0x33, -0x1e, -0x05, -0x40, -0x0a, 0x3d, -0x28, -0x21, -0x2b, -0x18, 0x02, 0x01, -0x2c, -0x16, -0x3b, - 0x27, 0x23, -0x19, 0x13, -0x2c, 0x3c, -0x1a, 0x0e, -0x25, -0x19, 0x06, 0x1b, -0x3f, 0x26, 0x30, 0x0d, - -0x0e, -0x2f, -0x28, 0x3b, -0x0e, 0x2d, 0x3d, 0x03, 0x0d, -0x23, 0x02, 0x26, 0x0c, 0x31, -0x10, -0x10, - 0x37, -0x38, -0x0f, 0x20, -0x17, 0x02, 0x3e, -0x40, 0x37, 0x22, 0x06, 0x14, -0x31, -0x1e, -0x36, -0x2c, - }); - - try testArgs(@Vector(1, u7), .{ - 0x72, - }, .{ - 0x0c, - }); - try testArgs(@Vector(2, u7), .{ - 0x0c, 0x3a, - }, .{ - 0x72, 0x0b, - }); - try testArgs(@Vector(4, u7), .{ - 0x68, 0x2b, 0x52, 0x6e, - }, .{ - 0x74, 0x79, 0x10, 0x67, - }); - try testArgs(@Vector(8, u7), .{ - 0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b, - }, .{ - 0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c, - }); - try testArgs(@Vector(16, u7), .{ - 0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69, - }, .{ - 0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b, - }); - try testArgs(@Vector(32, u7), .{ - 0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73, - 0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b, - }, .{ - 0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68, - 0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c, - }); - try testArgs(@Vector(64, u7), .{ - 0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75, - 0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e, - 0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f, - 0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b, - }, .{ - 0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a, - 0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05, - 0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34, - 0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c, - }); - try testArgs(@Vector(128, u7), .{ - 0x5c, - 0x65, - 0x65, - 0x34, - 0x31, - 0x03, - 0x7a, - 0x56, - 0x16, - 0x74, - 0x5c, - 0x7f, - 0x2a, - 0x46, - 0x2a, - 0x5f, - 0x62, - 0x06, - 0x51, - 0x23, - 0x58, - 0x1f, - 0x5a, - 0x2d, - 0x29, - 0x21, - 0x26, - 0x5a, - 0x5a, - 0x13, - 0x13, - 0x46, - 0x26, - 0x1c, - 0x06, - 0x2d, - 0x08, - 0x52, - 0x5b, - 0x6f, - 0x2d, - 0x4a, - 0x00, - 0x40, - 0x68, - 0x27, - 0x00, - 0x4a, - 0x3a, - 0x22, - 0x2d, - 0x5b, - 0x05, - 0x26, - 0x4e, - 0x6f, - 0x46, - 0x4d, - 0x14, - 0x70, - 0x51, - 0x04, - 0x66, - 0x13, - 0x4c, - 0x7c, - 0x67, - 0x23, - 0x13, - 0x55, - 0x1b, - 0x30, - 0x7d, - 0x04, - 0x47, - 0x78, - 0x05, - 0x09, - 0x5a, - 0x20, - 0x2e, - 0x17, - 0x11, - 0x49, - 0x6c, - 0x5e, - 0x34, - 0x3e, - 0x66, - 0x60, - 0x5d, - 0x75, - 0x48, - 0x1d, - 0x69, - 0x67, - 0x40, - 0x2d, - 0x7b, - 0x31, - 0x13, - 0x60, - 0x19, - 0x2f, - 0x3e, - 0x7d, - 0x23, - 0x6a, - 0x0e, - 0x16, - 0x44, - 0x34, - 0x5d, - 0x5a, - 0x2a, - 0x0b, - 0x64, - 0x07, - 0x22, - 0x5b, - 0x24, - 0x22, - 0x3b, - 0x46, - 0x23, - 0x65, - 0x5d, - 0x34, - }, .{ - 0x4b, - 0x36, - 0x7a, - 0x13, - 0x5a, - 0x4b, - 0x69, - 0x4b, - 0x1d, - 0x02, - 0x1b, - 0x3f, - 0x61, - 0x21, - 0x45, - 0x48, - 0x44, - 0x61, - 0x25, - 0x42, - 0x57, - 0x7d, - 0x7a, - 0x45, - 0x22, - 0x2e, - 0x44, - 0x3f, - 0x3a, - 0x14, - 0x07, - 0x6e, - 0x68, - 0x51, - 0x03, - 0x6b, - 0x11, - 0x32, - 0x6d, - 0x6f, - 0x44, - 0x5a, - 0x61, - 0x6d, - 0x71, - 0x66, - 0x54, - 0x14, - 0x5d, - 0x56, - 0x22, - 0x5c, - 0x3a, - 0x72, - 0x16, - 0x39, - 0x59, - 0x3e, - 0x27, - 0x4d, - 0x3d, - 0x44, - 0x72, - 0x2c, - 0x71, - 0x74, - 0x3b, - 0x6c, - 0x70, - 0x39, - 0x0f, - 0x5c, - 0x71, - 0x04, - 0x67, - 0x02, - 0x2c, - 0x18, - 0x0f, - 0x14, - 0x2d, - 0x24, - 0x51, - 0x34, - 0x6d, - 0x0c, - 0x19, - 0x0f, - 0x73, - 0x79, - 0x3d, - 0x74, - 0x20, - 0x15, - 0x22, - 0x25, - 0x09, - 0x14, - 0x09, - 0x71, - 0x2d, - 0x6f, - 0x09, - 0x2e, - 0x27, - 0x75, - 0x57, - 0x62, - 0x4d, - 0x07, - 0x62, - 0x01, - 0x41, - 0x2d, - 0x5d, - 0x4c, - 0x77, - 0x10, - 0x7f, - 0x30, - 0x0f, - 0x50, - 0x15, - 0x39, - 0x34, - 0x7c, - 0x33, - 0x16, - }); - - try testArgs(@Vector(1, i8), .{ - -0x54, - }, .{ - 0x0f, - }); - try testArgs(@Vector(2, i8), .{ - -0x4d, 0x55, - }, .{ - 0x7d, -0x5d, - }); - try testArgs(@Vector(4, i8), .{ - 0x73, 0x6f, 0x6e, -0x49, - }, .{ - -0x66, 0x23, 0x21, -0x56, - }); - try testArgs(@Vector(8, i8), .{ - 0x44, -0x37, 0x33, -0x2b, -0x1f, 0x3e, 0x50, -0x4d, - }, .{ - 0x6a, 0x1a, -0x0e, 0x4c, -0x46, 0x03, -0x17, 0x3e, - }); - try testArgs(@Vector(16, i8), .{ - -0x52, 0x1a, -0x4b, 0x4e, -0x75, 0x33, -0x43, 0x30, 0x71, -0x30, -0x73, -0x53, 0x64, 0x1f, -0x27, 0x36, - }, .{ - 0x65, 0x77, -0x62, 0x0f, 0x15, 0x52, 0x5c, 0x12, -0x10, 0x36, 0x6d, 0x42, -0x24, -0x79, -0x32, -0x75, - }); - try testArgs(@Vector(32, i8), .{ - -0x12, -0x1e, 0x18, 0x6e, 0x31, 0x53, -0x6a, -0x34, 0x13, 0x4d, 0x30, -0x7d, -0x31, 0x1e, -0x24, 0x32, - -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b, -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06, - }, .{ - 0x05, -0x23, 0x43, -0x54, -0x41, 0x7f, -0x6a, -0x31, 0x04, 0x15, -0x7a, -0x37, 0x6d, 0x16, 0x01, 0x4a, - 0x15, 0x55, -0x4a, 0x16, -0x73, -0x0c, 0x1c, -0x26, -0x14, -0x01, 0x55, 0x7b, 0x16, -0x2e, -0x5f, -0x67, - }); - try testArgs(@Vector(64, i8), .{ - -0x05, 0x76, 0x4e, -0x5c, 0x7b, -0x1a, -0x38, -0x2e, 0x3d, 0x36, 0x01, 0x30, -0x02, -0x71, -0x24, 0x24, - -0x2e, -0x6e, -0x60, 0x74, -0x80, -0x1c, -0x34, -0x08, -0x33, 0x77, 0x1c, -0x0f, 0x45, -0x51, -0x1d, 0x35, - -0x45, 0x44, 0x27, -0x3c, 0x6b, 0x58, -0x6a, -0x26, 0x06, -0x30, -0x21, -0x0a, 0x60, -0x11, -0x05, 0x75, - 0x38, 0x72, -0x6d, -0x1f, -0x7f, 0x74, -0x6b, -0x14, -0x80, 0x35, -0x0f, -0x1e, 0x6a, 0x17, -0x74, -0x6c, - }, .{ - -0x5d, 0x2d, 0x55, 0x40, -0x7c, 0x67, 0x61, 0x5f, 0x14, 0x5b, -0x0c, -0x4d, -0x5f, 0x25, 0x36, 0x3c, - -0x75, -0x48, -0x2b, 0x76, -0x57, -0x4a, 0x1d, 0x65, -0x32, 0x18, -0x2a, -0x0a, -0x6e, -0x3c, -0x62, 0x4e, - -0x24, -0x3c, 0x7d, -0x79, -0x1a, -0x14, -0x03, -0x56, 0x7a, 0x5f, 0x64, -0x68, 0x5f, -0x10, -0x63, -0x07, - 0x79, -0x44, 0x47, 0x7d, 0x6e, 0x77, 0x03, -0x4e, 0x67, 0x38, 0x46, -0x44, -0x41, 0x66, -0x16, -0x0a, - }); - try testArgs(@Vector(128, i8), .{ - 0x30, 0x70, -0x2a, -0x29, -0x35, -0x69, -0x18, 0x2b, 0x4a, -0x17, -0x5f, -0x36, 0x34, -0x26, 0x03, -0x2d, - -0x75, -0x27, -0x07, -0x49, -0x58, 0x00, -0x45, 0x5d, -0x11, -0x68, 0x34, 0x73, -0x4d, 0x7f, -0x25, -0x6a, - 0x46, -0x1d, -0x68, 0x04, 0x64, -0x0d, 0x30, 0x27, -0x24, 0x67, 0x3c, -0x7c, -0x2e, -0x24, 0x24, 0x3e, - -0x2c, -0x05, 0x4e, -0x17, 0x6d, 0x57, 0x76, 0x35, -0x3d, 0x51, 0x71, -0x4e, 0x50, 0x26, 0x4a, -0x42, - 0x73, -0x36, -0x5d, 0x2a, 0x55, 0x33, -0x2b, -0x76, 0x08, 0x43, 0x77, -0x73, -0x0a, 0x5c, -0x03, -0x50, - -0x0a, -0x1c, -0x20, 0x3c, -0x7e, 0x60, 0x11, -0x77, 0x25, -0x71, 0x31, 0x2d, -0x4b, -0x26, -0x2a, 0x7f, - -0x1f, 0x23, -0x34, -0x1f, 0x35, 0x0d, 0x3e, 0x76, -0x08, 0x2c, 0x12, 0x3e, -0x09, -0x3e, 0x4b, -0x52, - -0x1a, -0x44, -0x53, -0x41, -0x6d, -0x5e, -0x06, -0x04, 0x3f, -0x2e, 0x01, 0x54, 0x19, -0x5a, -0x62, -0x3a, - }, .{ - 0x42, -0x11, -0x08, -0x64, -0x55, 0x31, 0x27, -0x66, 0x38, 0x5a, 0x25, -0x68, 0x0b, -0x41, -0x0d, 0x60, - -0x17, -0x6d, 0x62, -0x65, -0x5e, -0x1c, -0x35, 0x28, 0x1c, -0x74, -0x7f, -0x1c, 0x3a, 0x4e, 0x05, -0x08, - 0x30, -0x77, 0x03, 0x68, -0x2c, 0x5c, 0x74, 0x6a, -0x21, 0x0a, 0x36, -0x55, 0x21, 0x29, -0x05, 0x70, - 0x23, 0x3b, 0x0a, 0x7a, 0x19, 0x14, 0x65, -0x1d, 0x2b, 0x65, 0x33, 0x2a, 0x52, -0x63, 0x57, 0x10, - -0x1b, 0x26, -0x46, -0x7e, -0x25, 0x79, -0x01, -0x0d, -0x49, -0x4d, 0x74, 0x03, 0x77, 0x16, 0x03, -0x3d, - 0x1c, 0x25, 0x5a, -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b, -0x15, -0x1d, 0x32, 0x31, - 0x6e, -0x44, -0x4a, -0x64, 0x67, 0x04, 0x47, -0x02, 0x3c, -0x0a, -0x79, 0x3d, 0x48, 0x5a, 0x61, -0x2c, - 0x6d, -0x68, -0x71, -0x6b, -0x11, 0x44, -0x75, -0x55, -0x67, -0x52, 0x64, -0x3d, -0x05, -0x76, -0x6d, -0x44, - }); - - try testArgs(@Vector(1, u8), .{ - 0x1f, - }, .{ - 0x06, - }); - try testArgs(@Vector(2, u8), .{ - 0x80, 0x63, - }, .{ - 0xe4, 0x28, - }); - try testArgs(@Vector(4, u8), .{ - 0x83, 0x9e, 0x1e, 0xc1, - }, .{ - 0xf0, 0x5c, 0x46, 0x85, - }); - try testArgs(@Vector(8, u8), .{ - 0x1e, 0x4d, 0x9d, 0x2a, 0x4c, 0x74, 0x0a, 0x83, - }, .{ - 0x28, 0x60, 0xa9, 0xb5, 0xd9, 0xa6, 0xf1, 0xb6, - }); - try testArgs(@Vector(16, u8), .{ - 0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f, - }, .{ - 0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e, - }); - try testArgs(@Vector(32, u8), .{ - 0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a, - 0x4c, 0x05, 0x37, 0xc9, 0x8a, 0xcb, 0x91, 0x23, 0x09, 0x5f, 0xb8, 0x99, 0x4a, 0x75, 0x26, 0xe4, - }, .{ - 0xff, 0x0f, 0x99, 0x49, 0xa6, 0x25, 0xa7, 0xd4, 0xc9, 0x2f, 0x97, 0x6a, 0x01, 0xd6, 0x6e, 0x41, - 0xa4, 0xb5, 0x3c, 0x03, 0xea, 0x82, 0x9c, 0x5f, 0xac, 0x07, 0x16, 0x15, 0x1c, 0x64, 0x25, 0x2f, - }); - try testArgs(@Vector(64, u8), .{ - 0xaa, 0x08, 0xeb, 0xb2, 0xd7, 0x89, 0x0f, 0x98, 0xda, 0x9f, 0xa6, 0x4e, 0x3c, 0xce, 0x1b, 0x1b, - 0x9e, 0x5f, 0x2b, 0xd6, 0x59, 0x26, 0x47, 0x05, 0x2a, 0xb7, 0xd1, 0x10, 0xde, 0xd9, 0x84, 0x00, - 0x07, 0xc0, 0xaa, 0x6e, 0xfa, 0x3b, 0x97, 0x85, 0xa8, 0x42, 0xd7, 0xa5, 0x90, 0xe6, 0x10, 0x1a, - 0x47, 0x84, 0xe1, 0x3e, 0xb0, 0x70, 0x26, 0x3f, 0xea, 0x24, 0xb8, 0x5f, 0xe3, 0xe3, 0x4c, 0xed, - }, .{ - 0x3b, 0xc5, 0xe0, 0x3d, 0x4f, 0x2e, 0x1d, 0xa9, 0xf7, 0x7b, 0xc7, 0xc1, 0x48, 0xc6, 0xe5, 0x9e, - 0x4d, 0xa8, 0x21, 0x37, 0xa1, 0x1a, 0x95, 0x69, 0x89, 0x2f, 0x15, 0x07, 0x3d, 0x7b, 0x69, 0x89, - 0xea, 0x87, 0xf0, 0x94, 0x67, 0xf2, 0x3d, 0x04, 0x96, 0x8a, 0xd6, 0x70, 0x7c, 0x16, 0xe7, 0x62, - 0xf0, 0x8d, 0x96, 0x65, 0xd1, 0x4a, 0x35, 0x3e, 0x7a, 0x67, 0xa6, 0x1f, 0x37, 0x66, 0xe3, 0x45, - }); - try testArgs(@Vector(128, u8), .{ - 0xa1, 0xd0, 0x7b, 0xf9, 0x7b, 0x77, 0x7b, 0x3d, 0x2d, 0x68, 0xc2, 0x7b, 0xb0, 0xb8, 0xd4, 0x7c, - 0x1a, 0x1f, 0xd2, 0x92, 0x3e, 0xcb, 0xc1, 0x6b, 0xb9, 0x4d, 0xf1, 0x67, 0x58, 0x8e, 0x77, 0xa6, - 0xb9, 0xdf, 0x10, 0x6f, 0xbe, 0xe3, 0x33, 0xb6, 0x93, 0x77, 0x80, 0xef, 0x09, 0x9d, 0x61, 0x40, - 0xa2, 0xf4, 0x52, 0x18, 0x9d, 0xe4, 0xb0, 0xaf, 0x0a, 0xa7, 0x0b, 0x09, 0x67, 0x38, 0x71, 0x04, - 0x72, 0xa1, 0xd2, 0xfd, 0xf8, 0xf0, 0xa7, 0x23, 0x24, 0x5b, 0x7d, 0xfb, 0x43, 0xba, 0x6c, 0xc4, - 0x83, 0x46, 0x0e, 0x4d, 0x6c, 0x92, 0xab, 0x4f, 0xd2, 0x70, 0x9d, 0xfe, 0xce, 0xf8, 0x05, 0x9f, - 0x98, 0x36, 0x9c, 0x90, 0x9a, 0xd0, 0xb5, 0x76, 0x16, 0xe8, 0x25, 0xc2, 0xbd, 0x91, 0xab, 0xf9, - 0x6f, 0x6c, 0xc5, 0x60, 0xe5, 0x30, 0xf2, 0xb7, 0x59, 0xc4, 0x9c, 0xdd, 0xdf, 0x04, 0x65, 0xd9, - }, .{ - 0xed, 0xe1, 0x8a, 0xf6, 0xf3, 0x8b, 0xfd, 0x1d, 0x3c, 0x87, 0xbf, 0xfe, 0x04, 0x52, 0x15, 0x82, - 0x0b, 0xb0, 0xcf, 0xcf, 0xf8, 0x03, 0x9c, 0xef, 0xc1, 0x76, 0x7e, 0xe3, 0xe9, 0xa8, 0x18, 0x90, - 0xd4, 0xc4, 0x91, 0x15, 0x68, 0x7f, 0x65, 0xd8, 0xe1, 0xb3, 0x23, 0xc2, 0x7d, 0x84, 0x3b, 0xaf, - 0x74, 0x69, 0x07, 0x2a, 0x1b, 0x5f, 0x0e, 0x44, 0x0d, 0x2b, 0x9c, 0x82, 0x41, 0xf9, 0x7f, 0xb5, - 0xc4, 0xd9, 0xcb, 0xd3, 0xc5, 0x31, 0x8b, 0x5f, 0xda, 0x09, 0x9b, 0x29, 0xa3, 0xb7, 0x13, 0x0d, - 0x55, 0x9b, 0x59, 0x33, 0x2a, 0x59, 0x3a, 0x44, 0x1f, 0xd3, 0x40, 0x4e, 0xde, 0x2c, 0xe4, 0x16, - 0xfd, 0xc3, 0x02, 0x74, 0xaa, 0x65, 0xfd, 0xc8, 0x2a, 0x8a, 0xdb, 0xae, 0x44, 0x28, 0x62, 0xa4, - 0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3, - }); - - try testArgs(@Vector(1, i9), .{ - 0x002, - }, .{ - 0x0bd, - }); - try testArgs(@Vector(2, i9), .{ - 0x00c, 0x0b1, - }, .{ - -0x00b, -0x009, - }); - try testArgs(@Vector(4, i9), .{ - 0x0b2, 0x02b, -0x09d, -0x03c, - }, .{ - 0x031, 0x078, 0x016, -0x08a, - }); - try testArgs(@Vector(8, i9), .{ - 0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8, - }, .{ - 0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003, - }); - try testArgs(@Vector(16, i9), .{ - 0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a, - }, .{ - 0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0, - }); - try testArgs(@Vector(32, i9), .{ - -0x003, 0x01b, 0x0b6, -0x009, 0x090, 0x047, -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf, 0x06a, -0x0e0, 0x03f, 0x007, 0x0a1, - 0x009, -0x0fb, 0x034, 0x0ba, 0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029, -0x076, 0x044, 0x0d4, 0x083, -0x002, 0x04e, - }, .{ - -0x0cb, 0x0e3, 0x014, 0x02f, -0x0da, -0x06a, 0x07f, 0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017, -0x00d, 0x041, 0x03e, - -0x096, -0x008, 0x075, -0x0bc, 0x0f9, -0x0fc, -0x0a7, 0x0ef, 0x0f9, 0x066, 0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6, - }); - try testArgs(@Vector(64, i9), .{ - -0x016, -0x0ae, 0x08b, -0x0eb, -0x0b2, 0x02f, 0x039, -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb, 0x0ca, -0x049, 0x04e, - -0x019, -0x0d9, -0x0bd, 0x0ae, -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9, 0x02c, 0x0cc, 0x093, -0x022, 0x07a, -0x093, - 0x0e5, -0x011, -0x003, 0x070, -0x042, -0x0ad, 0x0be, -0x038, -0x0bf, 0x098, 0x090, -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039, - -0x035, -0x0e5, -0x054, 0x04c, 0x04b, -0x09f, 0x091, -0x039, 0x09b, -0x029, 0x014, -0x0d3, 0x06b, 0x0ae, 0x091, 0x082, - }, .{ - -0x0bb, -0x0ec, 0x0fa, 0x055, 0x06f, 0x011, -0x09d, 0x083, -0x066, 0x014, 0x007, 0x002, -0x0ee, -0x0d9, 0x0c3, -0x087, - 0x03c, -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b, -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001, -0x0ba, 0x0c4, 0x0bb, - 0x032, 0x01e, -0x074, -0x058, -0x040, 0x0aa, 0x077, 0x028, -0x061, 0x076, -0x04e, 0x01a, -0x05f, -0x073, 0x0ea, 0x06e, - -0x069, -0x0a1, -0x041, 0x013, -0x01c, -0x0f8, 0x053, 0x0f8, -0x0c3, 0x058, -0x02d, 0x0f1, -0x045, 0x04b, -0x0b1, -0x0f3, - }); - try testArgs(@Vector(128, i9), .{ - 0x0d4, 0x036, 0x0bd, -0x046, -0x0a7, 0x09e, 0x0dd, 0x043, 0x098, -0x09a, -0x06f, 0x0bb, -0x0b7, 0x021, 0x0a3, 0x0f0, - 0x069, -0x08b, 0x0da, 0x016, -0x049, 0x0d0, 0x07b, 0x004, 0x0ad, -0x07c, -0x04e, -0x011, 0x01f, -0x035, 0x028, -0x0c9, - -0x0eb, 0x077, 0x08b, -0x009, 0x024, -0x058, 0x04e, -0x0c0, -0x01d, -0x0a7, 0x088, 0x01b, -0x0f3, -0x0c5, -0x08e, 0x0dc, - 0x07d, 0x086, -0x032, 0x0a9, -0x00c, -0x06a, 0x06c, 0x032, 0x083, 0x0ec, 0x0ec, -0x0a6, 0x029, 0x044, -0x07f, 0x068, - -0x038, 0x0f6, 0x0b5, -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c, -0x037, 0x0cc, -0x033, 0x08a, -0x0b4, -0x039, - 0x01e, 0x06c, 0x015, -0x081, -0x029, 0x017, -0x080, -0x01e, -0x081, 0x04f, -0x071, -0x073, 0x0c3, 0x079, 0x0ad, 0x087, - -0x072, 0x067, -0x064, -0x0d4, 0x0b4, 0x003, 0x0b1, 0x0bb, 0x0cc, -0x0e9, 0x0e7, 0x015, 0x07b, 0x0e4, -0x0ee, -0x07f, - -0x0bf, 0x0cd, -0x056, 0x0ea, 0x0e5, 0x0fa, 0x0e1, -0x087, 0x0fe, 0x017, 0x071, -0x0d1, -0x053, -0x088, -0x0ef, 0x01b, - }, .{ - 0x0ea, -0x018, 0x0ab, 0x039, 0x0ec, 0x0cc, -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc, 0x099, -0x03c, -0x0b4, - -0x0fe, -0x0ce, 0x0d6, -0x084, 0x08f, 0x04b, 0x0cc, -0x023, 0x01e, -0x09c, 0x058, 0x0f4, -0x0a7, 0x085, -0x049, -0x050, - 0x0f3, -0x036, -0x0fe, 0x070, -0x0a2, -0x081, -0x066, 0x057, -0x017, -0x0c8, 0x070, 0x09b, -0x0e4, -0x03b, -0x0d9, 0x081, - 0x041, 0x0ec, -0x062, 0x0b9, -0x0d2, -0x02a, 0x0ab, 0x072, 0x001, -0x082, -0x0cd, 0x0c8, 0x017, -0x09d, 0x094, -0x027, - 0x09c, 0x024, -0x0ec, 0x02f, 0x066, -0x08e, 0x0ee, 0x099, 0x08e, -0x0e5, -0x094, 0x0bb, 0x02f, -0x0fe, -0x07e, -0x0ad, - 0x05c, 0x066, 0x07e, -0x0a9, 0x0fe, -0x0e3, -0x068, 0x058, -0x007, 0x0d6, -0x0e8, -0x0d6, 0x038, 0x0b8, -0x0b2, 0x0c1, - 0x09a, 0x02f, 0x0d9, 0x07d, 0x0fc, 0x0f7, -0x005, -0x01c, 0x0c2, 0x066, 0x064, -0x096, -0x040, 0x065, -0x00d, -0x063, - 0x031, -0x088, 0x090, -0x077, 0x0e2, 0x0a8, -0x0e0, -0x077, 0x0eb, 0x0c3, -0x0ad, 0x008, 0x04e, -0x095, -0x041, -0x0a6, - }); - - try testArgs(@Vector(1, u9), .{ - 0x09e, - }, .{ - 0x171, - }); - try testArgs(@Vector(2, u9), .{ - 0x0bf, 0x042, - }, .{ - 0x154, 0x14b, - }); - try testArgs(@Vector(4, u9), .{ - 0x0a5, 0x1ba, 0x1ef, 0x0b3, - }, .{ - 0x15d, 0x1d3, 0x00e, 0x13b, - }); - try testArgs(@Vector(8, u9), .{ - 0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f, - }, .{ - 0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052, - }); - try testArgs(@Vector(16, u9), .{ - 0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c, - }, .{ - 0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d, - }); - try testArgs(@Vector(32, u9), .{ - 0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f, - 0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2, - }, .{ - 0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad, - 0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2, - }); - try testArgs(@Vector(64, u9), .{ - 0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066, - 0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e, - 0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170, - 0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a, - }, .{ - 0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e, - 0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d, - 0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe, - 0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b, - }); - try testArgs(@Vector(128, u9), .{ - 0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098, - 0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097, - 0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c, - 0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199, - 0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c, - 0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe, - 0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180, - 0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152, - }, .{ - 0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029, - 0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7, - 0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e, - 0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032, - 0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7, - 0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec, - 0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196, - 0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2, - }); - - try testArgs(@Vector(1, i15), .{ - 0x1309, - }, .{ - 0x1422, - }); - try testArgs(@Vector(2, i15), .{ - 0x32e8, 0x3d81, - }, .{ - 0x195c, 0x13e8, - }); - try testArgs(@Vector(4, i15), .{ - -0x3485, 0x2320, -0x1725, 0x1e6e, - }, .{ - 0x2910, 0x3293, 0x3144, -0x3bbc, - }); - try testArgs(@Vector(8, i15), .{ - 0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace, - }, .{ - -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f, - }); - try testArgs(@Vector(16, i15), .{ - -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2, - 0x25ec, 0x3cf1, 0x07ea, 0x3972, 0x09d8, -0x18a6, 0x06dd, -0x1c34, - }, .{ - -0x0ec7, 0x1144, -0x1a94, 0x255f, -0x1fbb, -0x1500, -0x0e4f, 0x0b67, - 0x1352, -0x0d6b, 0x2f3e, -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6, - }); - try testArgs(@Vector(32, i15), .{ - -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778, 0x394a, - -0x0383, -0x2fb7, 0x04cf, 0x033a, 0x2bff, 0x3997, -0x112c, 0x3a1a, - 0x1adf, 0x270b, 0x182e, -0x23f6, 0x1a33, 0x2644, -0x0b41, -0x1c48, - 0x1c2d, -0x2a40, 0x007c, 0x1a62, 0x30d9, 0x0e4b, 0x32ee, 0x2b46, - }, .{ - 0x1af0, 0x286f, -0x14fe, 0x2318, 0x002a, -0x26b2, 0x350b, 0x0884, - 0x3011, 0x276a, 0x2b2a, 0x22d3, -0x1ece, 0x0143, 0x2f5b, -0x0fa2, - 0x2412, -0x3d86, -0x3774, -0x09a5, 0x0fbf, 0x32f7, -0x0a23, -0x3d5a, - -0x1523, -0x27c5, 0x097f, 0x2923, 0x3060, 0x113e, -0x0643, -0x1287, - }); - try testArgs(@Vector(64, i15), .{ - 0x0419, 0x1803, -0x3897, 0x2b0c, 0x08a3, -0x39d0, 0x174e, -0x29c6, - 0x0152, -0x1078, 0x1113, 0x23bf, 0x0990, -0x2777, 0x2ba4, -0x058b, - -0x2d4a, -0x23ba, 0x3875, -0x1720, -0x2625, -0x1c8f, 0x1f7c, 0x3f73, - 0x3780, -0x3043, -0x0d8d, 0x2ced, 0x091a, 0x3481, -0x1917, -0x352f, - 0x34c7, 0x322f, -0x20ae, -0x0653, 0x1c82, 0x09a8, -0x1a0b, -0x1dff, - -0x24c2, -0x2592, -0x3ff7, 0x1515, -0x3d32, 0x1e9e, -0x334d, 0x352b, - -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c, -0x2bad, -0x2682, 0x32cf, - 0x31e4, -0x085c, -0x0c84, -0x2f11, 0x03ba, -0x0111, -0x2634, 0x344f, - }, .{ - 0x011a, 0x186c, -0x2d7e, 0x29b1, 0x2cfb, -0x077b, 0x3e8c, -0x3a62, - 0x3575, 0x35f0, -0x2529, -0x3040, 0x398e, -0x0c56, 0x2aa5, 0x0a72, - -0x0c36, -0x2c53, 0x275b, -0x1155, 0x1a9d, -0x34af, -0x3d4f, 0x14a0, - -0x0b88, 0x0b34, 0x2d60, 0x19ee, -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b, - -0x23f4, 0x0472, 0x1977, -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f, - -0x2dcb, 0x2e99, 0x0dd1, 0x0377, -0x3f91, -0x3719, 0x0248, 0x3c40, - -0x08d4, -0x2f12, -0x12ee, 0x3bc0, 0x3c4a, 0x1ff3, -0x1096, -0x37e0, - -0x0879, -0x354f, -0x2277, 0x1ced, 0x0833, -0x0f7e, 0x2070, 0x0d81, - }); - - try testArgs(@Vector(1, u15), .{ - 0x18c0, - }, .{ - 0x0c85, - }); - try testArgs(@Vector(2, u15), .{ - 0x3697, 0x744b, - }, .{ - 0x60d5, 0x4172, - }); - try testArgs(@Vector(4, u15), .{ - 0x7c31, 0x62c3, 0x7fe9, 0x4a52, - }, .{ - 0x28bf, 0x58a9, 0x09d5, 0x111f, - }); - try testArgs(@Vector(8, u15), .{ - 0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665, - }, .{ - 0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66, - }); - try testArgs(@Vector(16, u15), .{ - 0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43, - 0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f, - }, .{ - 0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2, - 0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3, - }); - try testArgs(@Vector(32, u15), .{ - 0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074, - 0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc, - 0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850, - 0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c, - }, .{ - 0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89, - 0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda, - 0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6, - 0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960, - }); - try testArgs(@Vector(64, u15), .{ - 0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a, - 0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7, - 0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0, - 0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6, - 0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98, - 0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2, - 0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e, - 0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d, - }, .{ - 0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1, - 0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849, - 0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f, - 0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97, - 0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3, - 0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2, - 0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc, - 0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29, - }); - - try testArgs(@Vector(1, i16), .{ - -0x7b9c, - }, .{ - 0x600a, - }); - try testArgs(@Vector(2, i16), .{ - 0x43cc, -0x1421, - }, .{ - -0x2b0e, 0x4d99, - }); - try testArgs(@Vector(4, i16), .{ - 0x558f, 0x6d92, 0x488f, 0x0a04, - }, .{ - -0x01a9, - 0x2ee4, - 0x24a9, - -0x5fee, - }); - try testArgs(@Vector(8, i16), .{ - -0x7e5d, -0x02e4, -0x3a72, -0x2e30, 0x7c87, 0x3ea0, 0x4f02, 0x06e4, - }, .{ - -0x417f, 0x5a13, -0x117b, 0x4c28, -0x3769, -0x56a8, 0x1656, -0x4431, - }); - try testArgs(@Vector(16, i16), .{ - 0x04be, 0x774a, 0x7395, -0x6ca2, -0x21a0, 0x35be, 0x186c, 0x5991, - -0x1a82, 0x4527, -0x2278, -0x3554, 0x42c1, 0x7f53, -0x670d, 0x1fad, - }, .{ - 0x7a7d, 0x47dd, 0x1975, 0x4028, 0x26ef, -0x24f5, -0x77c9, -0x19a5, - -0x4b04, -0x6939, -0x1b8d, 0x3718, -0x78e6, 0x0941, -0x1208, -0x392d, - }); - try testArgs(@Vector(32, i16), .{ - 0x4cde, 0x3ab0, 0x354e, 0x0bc0, -0x5333, 0x4857, -0x7ccf, -0x69da, - 0x6ab8, 0x2bf3, 0x1c5a, 0x7b11, -0x5653, 0x7bc5, 0x497e, -0x0b55, - 0x7aa8, -0x5a8c, -0x6d05, 0x6210, 0x1b64, 0x3f6f, 0x1a02, 0x65e4, - -0x6795, 0x5867, -0x6faf, -0x07cb, -0x762c, -0x7500, 0x1f1c, -0x4348, - }, .{ - 0x72f6, -0x5405, -0x3aac, 0x2857, 0x34cd, -0x1dce, -0x56d8, 0x7150, - -0x6549, 0x61bd, -0x3a9f, -0x1e02, -0x5a5a, -0x7910, -0x166d, 0x7c8e, - -0x5292, -0x6c6e, -0x37e3, 0x1514, 0x1787, 0x58cb, -0x4d99, -0x6c15, - 0x592e, -0x045f, 0x7682, -0x1eef, 0x1fb2, -0x7117, -0x2a17, -0x2d8e, - }); - try testArgs(@Vector(64, i16), .{ - 0x29c3, -0x1b1f, -0x17ce, -0x50d0, -0x5de3, 0x5ffd, 0x184a, -0x7769, - 0x445e, 0x0d8a, 0x7844, -0x757d, 0x2b32, 0x5374, -0x6ab2, -0x71c4, - 0x38f9, 0x347f, 0x2d4c, 0x69a4, -0x2f92, -0x4479, 0x427b, -0x0c5f, - 0x15ae, 0x2c86, 0x1864, -0x0095, 0x6803, -0x3484, 0x1001, -0x0560, - -0x0824, 0x7bf6, 0x7a3c, -0x458a, -0x65cc, -0x54b1, -0x75c6, 0x782e, - 0x35a7, -0x3188, -0x58ba, 0x40d0, -0x4a9c, 0x6b79, 0x1ef5, 0x67a2, - -0x3fb8, 0x1885, -0x093d, -0x4802, 0x0379, 0x2f52, 0x7f1f, 0x256c, - 0x1052, 0x1b3b, -0x6146, 0x7e0d, 0x79ca, -0x79ee, 0x3d58, 0x7482, - }, .{ - -0x0017, -0x3fdd, -0x6f93, 0x6178, 0x5c2b, 0x4eb3, 0x685b, 0x12c8, - 0x0290, -0x34f4, -0x6572, 0x3ab6, -0x3ed1, -0x5e5f, 0x3a90, -0x4540, - -0x2098, 0x6bde, 0x1246, 0x2212, -0x4d6a, -0x2a5a, 0x5cc4, -0x240f, - 0x51b2, 0x5ec0, -0x5b5f, -0x1b6e, -0x57a5, -0x06bd, -0x5132, 0x7889, - 0x2817, 0x6ada, -0x6b46, -0x6a37, -0x6475, -0x5ff4, 0x5a27, 0x1dfa, - 0x6bd6, -0x49da, -0x09bf, -0x7c53, 0x2cd3, -0x6be0, -0x2dca, 0x44bd, - -0x1b95, 0x7680, -0x5bb0, 0x7ad7, -0x1988, 0x149f, 0x631e, -0x1d2d, - 0x632b, 0x55c7, -0x3433, 0x0dde, -0x27a7, 0x560e, -0x2063, 0x4570, - }); - - try testArgs(@Vector(1, u16), .{ - 0x9d6f, - }, .{ - 0x44b1, - }); - try testArgs(@Vector(2, u16), .{ - 0xa0fa, 0xc365, - }, .{ - 0xe736, 0xc394, - }); - try testArgs(@Vector(4, u16), .{ - 0x9608, 0xa558, 0x161b, 0x206f, - }, .{ - 0x3088, 0xf25c, 0x7837, 0x9b3f, - }); - try testArgs(@Vector(8, u16), .{ - 0xcf61, 0xb121, 0x3cf1, 0x3e9f, 0x43a7, 0x8d69, 0x96f5, 0xc11e, - }, .{ - 0xee30, 0x82f0, 0x270b, 0x1498, 0x4c60, 0x6e72, 0x0b64, 0x02d4, - }); - try testArgs(@Vector(16, u16), .{ - 0x9191, 0xd23e, 0xf844, 0xd84a, 0xe907, 0xf1e8, 0x712d, 0x90af, - 0x6541, 0x3fa6, 0x92eb, 0xe35a, 0xc0c9, 0xcb47, 0xb790, 0x4453, - }, .{ - 0x21c3, 0x4039, 0x9b71, 0x60bd, 0xcd7f, 0x2ec8, 0x50ba, 0xe810, - 0xebd4, 0x06e5, 0xed18, 0x2f66, 0x7e31, 0xe282, 0xad63, 0xb25e, - }); - try testArgs(@Vector(32, u16), .{ - 0x6b6a, 0x30a9, 0xc267, 0x2231, 0xbf4c, 0x00bc, 0x9c2c, 0x2928, - 0xecad, 0x82df, 0xcfb0, 0xa4e5, 0x909b, 0x1b05, 0xaf40, 0x1fd9, - 0xcec6, 0xd8dc, 0xd4b5, 0x6d59, 0x8e3f, 0x4d8a, 0xb83a, 0x808e, - 0x47e2, 0x5782, 0x59bf, 0xcefc, 0x5179, 0x3f48, 0x93dc, 0x66d2, - }, .{ - 0x1be8, 0xe98c, 0xf9b3, 0xb008, 0x2f8d, 0xf087, 0xc9b9, 0x75aa, - 0xbd16, 0x9540, 0xc5bd, 0x2b2c, 0xd43f, 0x9394, 0x3e1d, 0xf695, - 0x167d, 0xff7a, 0xf09d, 0xdff8, 0xdfa2, 0xc779, 0x70b7, 0x01bd, - 0x46b3, 0x995a, 0xb7bc, 0xa79d, 0x5542, 0x961e, 0x37cd, 0x9c2a, - }); - try testArgs(@Vector(64, u16), .{ - 0x6b87, 0xfd84, 0x436b, 0xe345, 0xfb82, 0x81fc, 0x0992, 0x45f9, - 0x5527, 0x1f6d, 0xda46, 0x6a16, 0xf6e1, 0x8fb7, 0x3619, 0xdfe3, - 0x64ce, 0x8ac6, 0x3ae8, 0x30e3, 0xec3b, 0x4ba7, 0x02a4, 0xa694, - 0x8e68, 0x8f0c, 0x5e30, 0x0e55, 0x6538, 0x9852, 0xea35, 0x7be2, - 0xdabd, 0x57e6, 0x5b38, 0x0fb2, 0x2604, 0x85e7, 0x6595, 0x8de9, - 0x49b1, 0xe9a2, 0x3758, 0xa4d9, 0x505b, 0xc9d3, 0xddc5, 0x9a43, - 0xfd44, 0x50f5, 0x379e, 0x03b6, 0x6375, 0x692f, 0x5586, 0xc717, - 0x94dd, 0xee06, 0xb32d, 0x0bb9, 0x0e35, 0x5f8f, 0x0ba4, 0x19a8, - }, .{ - 0xbeeb, 0x3e54, 0x6486, 0x5167, 0xe432, 0x57cf, 0x9cac, 0x922e, - 0xd2f8, 0x5614, 0x2e7f, 0x19cf, 0x9a07, 0x0524, 0x168f, 0x4464, - 0x4def, 0x83ce, 0x97b4, 0xf269, 0xda5f, 0x28c1, 0x9cc3, 0xfa7c, - 0x25a0, 0x912d, 0x25b2, 0xd60d, 0xcd82, 0x0e03, 0x40cc, 0xc9dc, - 0x18eb, 0xc609, 0xb06d, 0x29e0, 0xf3c7, 0x997b, 0x8ca2, 0xa750, - 0xc9bc, 0x8f0e, 0x3916, 0xd905, 0x94f8, 0x397f, 0x98b5, 0xc61d, - 0x05db, 0x3e7a, 0xf750, 0xe8de, 0x3225, 0x81d9, 0x612e, 0x0a7e, - 0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc, - }); - - try testArgs(@Vector(1, i17), .{ - 0x0538f, - }, .{ - 0x01de0, - }); - try testArgs(@Vector(2, i17), .{ - 0x0cb5d, 0x00c0b, - }, .{ - -0x0ef1d, -0x0797c, - }); - try testArgs(@Vector(4, i17), .{ - -0x06cbb, 0x08fcd, 0x05d91, -0x05824, - }, .{ - 0x0714b, 0x09218, -0x0c0d8, 0x000dd, - }); - try testArgs(@Vector(8, i17), .{ - 0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79, - }, .{ - 0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f, - }); - try testArgs(@Vector(16, i17), .{ - -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d, - 0x042d2, 0x06121, 0x0241f, 0x06833, 0x0a33b, 0x0f526, 0x0671a, 0x0c2a3, - }, .{ - 0x02be2, -0x08589, 0x0d95c, -0x001cc, -0x03183, 0x08c1a, -0x001db, 0x07604, - 0x08d92, 0x094ad, -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e, - }); - try testArgs(@Vector(32, i17), .{ - 0x01222, 0x022bc, 0x042df, 0x02205, -0x06de8, -0x0aaaf, 0x0fa4c, -0x0c708, - -0x06edd, -0x0acbe, 0x0b01f, 0x003f5, -0x0b82a, 0x0a189, -0x04f4b, 0x02122, - -0x0debd, -0x0b05f, 0x091b6, -0x074ff, 0x054e5, -0x03355, 0x08ab0, 0x0c3c8, - -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99, -0x0f096, 0x0e064, - }, .{ - 0x0d1c0, 0x02f93, 0x0e28c, 0x0862d, -0x09e1e, -0x02247, -0x01b56, 0x06633, - 0x0fdcc, -0x0731f, 0x0e084, 0x0b865, 0x089ac, -0x09e31, 0x0c730, 0x0af1d, - 0x0c9b2, -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593, -0x02c83, -0x04e28, 0x0f375, - -0x0e805, 0x0390f, 0x042a3, -0x02aed, 0x03a5a, 0x070d3, -0x0ed6a, 0x02b14, - }); - try testArgs(@Vector(64, i17), .{ - 0x0be66, 0x0e4fb, -0x0b918, -0x029b8, 0x019e8, 0x00621, 0x0e380, 0x040f6, - -0x0d095, 0x0b4d8, -0x0a3ad, -0x0eaf2, 0x03bd3, 0x0635c, 0x02444, -0x0830f, - 0x01239, -0x037ed, -0x071d1, 0x057e7, -0x02cdb, 0x0504c, 0x0612c, -0x005bf, - -0x04793, 0x03909, 0x0061c, -0x06423, 0x040d6, 0x0bc6a, -0x09204, 0x0e890, - 0x04b98, 0x00257, 0x0dc85, -0x0af2b, -0x0a1e7, 0x04ff6, 0x0b680, -0x07c61, - -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8, 0x06b52, -0x0d619, -0x09344, - -0x09b96, 0x0b81e, 0x04df8, -0x012f6, -0x0c3bd, 0x067cc, -0x0fa47, -0x05e93, - 0x07d29, 0x00d87, 0x0de1f, 0x0d24f, -0x0aede, -0x03414, -0x09a6c, 0x094dc, - }, .{ - 0x03d8e, -0x0f297, -0x0d810, 0x05b8e, -0x0630e, -0x0656f, 0x02f56, 0x0190b, - 0x0a1e6, -0x0783a, -0x00bde, 0x01bb2, -0x093a5, -0x02b3f, 0x0198c, 0x0cc55, - 0x04ec1, -0x0ed31, -0x00a80, -0x0be6d, 0x0712b, 0x0451b, 0x067a4, 0x061cd, - 0x0e799, -0x06c74, -0x09b05, 0x0dc73, -0x0a87d, -0x0cf60, -0x00f07, 0x0b101, - 0x06d5b, 0x09d61, -0x01092, 0x002ee, 0x0f192, 0x0024b, 0x04778, 0x06d05, - -0x0e460, 0x08524, -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5, - 0x071fe, 0x016d5, -0x076e2, -0x035d8, 0x02763, -0x0676f, -0x0a9aa, -0x0ab0b, - 0x012de, -0x00d05, 0x0f528, 0x07837, 0x0fc4e, -0x06304, 0x0616f, -0x0b10d, - }); - - try testArgs(@Vector(1, u17), .{ - 0x17ba6, - }, .{ - 0x1ac3a, - }); - try testArgs(@Vector(2, u17), .{ - 0x1d26d, 0x18548, - }, .{ - 0x0c0eb, 0x1bbc8, - }); - try testArgs(@Vector(4, u17), .{ - 0x1a01c, 0x12671, 0x175cc, 0x0ed36, - }, .{ - 0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18, - }); - try testArgs(@Vector(8, u17), .{ - 0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df, - }, .{ - 0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5, - }); - try testArgs(@Vector(16, u17), .{ - 0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254, - 0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38, - }, .{ - 0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6, - 0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a, - }); - try testArgs(@Vector(32, u17), .{ - 0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560, - 0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5, - 0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb, - 0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299, - }, .{ - 0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831, - 0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684, - 0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1, - 0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee, - }); - try testArgs(@Vector(64, u17), .{ - 0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc, - 0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c, - 0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355, - 0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388, - 0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136, - 0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428, - 0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7, - 0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7, - }, .{ - 0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6, - 0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18, - 0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884, - 0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43, - 0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791, - 0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1, - 0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146, - 0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5, - }); - - try testArgs(@Vector(1, i31), .{ - 0x2b94a60e, - }, .{ - 0x20451023, - }); - try testArgs(@Vector(2, i31), .{ - 0x21d4d18c, -0x1f73454a, - }, .{ - -0x18dcc667, -0x2e81b7f1, - }); - try testArgs(@Vector(4, i31), .{ - -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669, - }, .{ - -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3, - }); - try testArgs(@Vector(8, i31), .{ - 0x0ffaa22c, 0x15914f94, -0x20cec195, -0x35e7b06a, - -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e, - }, .{ - -0x178ffdb4, -0x10934a93, 0x08c3b058, -0x1579a89f, - 0x2340c302, 0x00280e85, -0x38983c31, 0x0349891e, - }); - try testArgs(@Vector(16, i31), .{ - -0x11bc6f72, 0x1ca1ca00, 0x0b49c711, -0x07fd7d21, - 0x20ab59d2, -0x07f45e94, -0x0d33151d, 0x065b8bff, - 0x2231354e, 0x21ff00a7, -0x35061bb0, -0x1135899e, - 0x2ed1c690, -0x1c1b598f, -0x19157726, -0x11c4d2c7, - }, .{ - 0x304dbbfb, -0x3e59fd39, 0x1029151a, -0x1e4d2063, - -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749, - 0x380ae142, 0x357f1b30, -0x17ccaa0d, -0x32cd12b4, - 0x305256f7, -0x298ce473, 0x244faaf4, 0x23450241, - }); - try testArgs(@Vector(32, i31), .{ - -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f, 0x2a4f2d06, - -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7, - 0x357e8c45, 0x0434b6b9, 0x28a3c5f9, 0x2d5b9944, - 0x316614a1, 0x0c12a228, 0x0422665d, 0x33c0dec9, - 0x0a7ede17, -0x02e88ae9, -0x39e76560, 0x1e4b90af, - 0x0a1527bb, 0x3a9f0405, 0x163b6eae, -0x3ff84429, - 0x1eb85fcc, 0x265f1f44, 0x2536ec34, -0x30c952a2, - -0x1f7864e5, 0x033737cd, -0x20b5718a, -0x0aad3a2f, - }, .{ - -0x2455af85, 0x210b1040, 0x39915c7d, 0x2d56c08e, - 0x1f318b8d, -0x1e125926, -0x3faaabbb, -0x254d4da5, - -0x1b2ded0f, -0x27fa4874, 0x02c0d73b, 0x123e9344, - 0x0351c023, 0x14cca255, -0x2072b9d7, 0x1e624059, - -0x07d014a1, 0x2eda3228, -0x300ff9b4, 0x333f25ad, - -0x3c653e21, 0x04b4a50e, -0x20f17e80, 0x29063cd1, - 0x2d52f6ad, -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c, - 0x397162ee, -0x2aa6708b, -0x0ef146b4, 0x04f36039, - }); - - try testArgs(@Vector(1, u31), .{ - 0x3ed1fb2d, - }, .{ - 0x1b75c3fd, - }); - try testArgs(@Vector(2, u31), .{ - 0x38754d45, 0x04a454d9, - }, .{ - 0x7d06646d, 0x228e6c44, - }); - try testArgs(@Vector(4, u31), .{ - 0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c, - }, .{ - 0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1, - }); - try testArgs(@Vector(8, u31), .{ - 0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682, - 0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e, - }, .{ - 0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd, - 0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78, - }); - try testArgs(@Vector(16, u31), .{ - 0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc, - 0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2, - 0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9, - 0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f, - }, .{ - 0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0, - 0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3, - 0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71, - 0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57, - }); - try testArgs(@Vector(32, u31), .{ - 0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477, - 0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc, - 0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27, - 0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994, - 0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be, - 0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0, - 0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73, - 0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737, - }, .{ - 0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42, - 0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53, - 0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77, - 0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b, - 0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d, - 0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db, - 0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4, - 0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338, - }); - - try testArgs(@Vector(1, i32), .{ - 0x7aef7b1e, - }, .{ - 0x60310858, - }); - try testArgs(@Vector(2, i32), .{ - -0x21910ac9, 0x669f37ef, - }, .{ - 0x1a2a1681, 0x003b1fdf, - }); - try testArgs(@Vector(4, i32), .{ - 0x7906cf0d, 0x4818a45f, -0x0a2833b6, 0x51a018c9, - }, .{ - -0x05a3e6a7, -0x47f4a500, 0x50d1141f, -0x264c85c2, - }); - try testArgs(@Vector(8, i32), .{ - 0x7566235a, -0x7720144f, -0x7d4f5489, 0x3cd736c8, - -0x77388801, 0x4e7f955a, 0x4cdf52bc, 0x50b0b53f, - }, .{ - 0x00ed6fc5, 0x37320361, 0x70c563c2, -0x09acb495, - 0x0688e83f, 0x797295c4, -0x23bfbfdb, 0x38552096, - }); - try testArgs(@Vector(16, i32), .{ - -0x0214589d, 0x74a7537f, 0x7a7dcb26, 0x3e2e4c44, - -0x23bfc358, 0x60e8ef18, 0x5524a7bc, -0x3d88c153, - -0x7dc8ff0f, 0x6e2698f6, 0x05641ab8, -0x45e9e405, - -0x7c1a04d0, -0x4a8d1e91, 0x41d56723, 0x4ba924ab, - }, .{ - -0x528dc756, -0x6bc217f4, 0x40789b06, 0x65f08d3a, - -0x077140ea, -0x43bdaa79, 0x5d98f4e7, -0x2356a1ca, - -0x36ef2b49, -0x7cd09b06, 0x71c8176e, 0x5b005860, - 0x6ce8cfab, -0x49fd7609, 0x6cbb4e33, 0x6c7c121d, - }); - try testArgs(@Vector(32, i32), .{ - 0x7d22905d, -0x354e4bbe, -0x68662618, -0x246e1858, - -0x1c4285a9, -0x0338059c, -0x60f5bbf4, -0x04f06917, - -0x55f837b6, -0x2fba5fe3, 0x092aabf4, -0x5f533b31, - 0x6e81a558, -0x7bcac358, 0x6c4d8d04, 0x3e2f9852, - -0x78589b1a, -0x68a00fd4, -0x77d55e25, 0x7f79b51c, - -0x66b88f45, 0x7f6dc8a5, -0x27299a82, -0x426c8e1c, - 0x0c288f16, 0x158f8c3f, 0x26708be1, -0x0b73626e, - -0x32df1bee, 0x196330f4, -0x68bb9529, -0x26376ab6, - }, .{ - 0x63bd0bd4, 0x4e507611, -0x5e5222b8, -0x35d8e114, - 0x1feab77b, -0x20de7dfd, -0x0ed0b09f, -0x7fc3d585, - -0x2d3018e9, -0x261d431b, 0x54451864, 0x1415288f, - -0x3ab89593, -0x7060e4c1, -0x54fcd501, -0x26324630, - 0x53fc8294, 0x2d4aceef, -0x4ac8efd2, -0x2fec97b7, - -0x4de3a2fc, 0x2269fe52, -0x58c8b473, -0x21026285, - -0x23438776, 0x3d5c8c41, -0x1fc946b2, -0x161c7005, - 0x44913ff1, -0x76e2bfaa, -0x54636350, -0x6ec53870, - }); - - try testArgs(@Vector(1, u32), .{ - 0x1d0d9cc4, - }, .{ - 0xce2d0ab6, - }); - try testArgs(@Vector(2, u32), .{ - 0x5ab78c03, 0xd21bb513, - }, .{ - 0x8a6664eb, 0x79eac37d, - }); - try testArgs(@Vector(4, u32), .{ - 0x234d576e, 0x4151cc9c, 0x39f558e4, 0xba935a32, - }, .{ - 0x398f2a9d, 0x4540f093, 0x9225551c, 0x3bac865b, - }); - try testArgs(@Vector(8, u32), .{ - 0xb8336635, 0x2fc3182c, 0x27a00123, 0x71587fbe, - 0x9cbc65d2, 0x6f4bb0e6, 0x362594ce, 0x9971df38, - }, .{ - 0x5727e734, 0x972b0313, 0xff25f5dc, 0x924f8e55, - 0x04920a61, 0xa1c3b334, 0xf52df4b6, 0x5ef72ecc, - }); - try testArgs(@Vector(16, u32), .{ - 0xfb566f9e, 0x9ad4691a, 0x5b5f9ec0, 0x5a572d2a, - 0x8f2f226b, 0x2dfc7e33, 0x9fb07e32, 0x9d672a2e, - 0xbedc3cee, 0x6872428d, 0xbc73a9fd, 0xd4d5f055, - 0x69c1e9ee, 0x65038deb, 0x1449061a, 0x48412ec2, - }, .{ - 0x96cbe946, 0x3f24f60b, 0xaeacdc53, 0x7611a8b4, - 0x031a67a8, 0x52a26828, 0x75646f4b, 0xb75902c3, - 0x1f881f08, 0x834e02a4, 0x5e5b40eb, 0xc75c264d, - 0xa8251e09, 0x28e46bbd, 0x12cb1f31, 0x9a2af615, - }); - try testArgs(@Vector(32, u32), .{ - 0x131bbb7b, 0xa7311026, 0x9d5e59a0, 0x99b090d6, - 0xfe969e2e, 0x04547697, 0x357d3250, 0x43be6d7a, - 0x16ecf5c5, 0xf60febcc, 0x1d1e2602, 0x138a96d2, - 0x9117ba72, 0x9f185b32, 0xc10e23fd, 0x3e6b7fd8, - 0x4dc9be70, 0x2ee30047, 0xaffeab60, 0x7172d362, - 0x6154bfcf, 0x5388dc3e, 0xd6e5a76e, 0x8b782f2d, - 0xacbef4a2, 0x843aca71, 0x25d8ab5c, 0xe1a63a39, - 0xc26212e5, 0x0847b84b, 0xb53541e5, 0x0c8e44db, - }, .{ - 0x4ad92822, 0x715b623f, 0xa5bed8a7, 0x937447a9, - 0x7ecb38eb, 0x0a2f3dfc, 0x96f467a2, 0xec882793, - 0x41a8707f, 0xf7310656, 0x76217b80, 0x2058e5fc, - 0x26682154, 0x87313e31, 0x4bdc480a, 0x193572ff, - 0x60b03c75, 0x0fe45908, 0x56c73703, 0xdb86554c, - 0xdda2dd7d, 0x34371b27, 0xe4e6ad50, 0x422d1828, - 0x1de3801b, 0xdce268d3, 0x20af9ec8, 0x188a591f, - 0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5, - }); - - try testArgs(@Vector(1, i33), .{ - 0x0a9a3088e, - }, .{ - 0x06c76b26e, - }); - try testArgs(@Vector(2, i33), .{ - 0x0a9bd1d56, 0x05b0b9015, - }, .{ - -0x05af6217c, 0x0227b5d3a, - }); - try testArgs(@Vector(4, i33), .{ - -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663, - }, .{ - -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9, - }); - try testArgs(@Vector(8, i33), .{ - 0x09d4fea1c, 0x0cd4254ba, 0x008d5f732, 0x0566c6f55, - -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146, - }, .{ - 0x02c01d901, 0x04407fcae, -0x0e6a223a6, -0x0bd9499f8, - 0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e, - }); - try testArgs(@Vector(16, i33), .{ - -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d, - -0x0d502b660, 0x0dd465278, 0x042a7e451, 0x03c1c3671, - 0x00eb6f4a9, 0x08982dbc4, 0x0421b8852, 0x015ee0e53, - 0x0e6924014, 0x0c6ddbc65, 0x00260ea59, 0x0d98aaedf, - }, .{ - -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47, - -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861, - -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9, 0x0b0064ff1, - -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd, -0x06af4f476, - }); - try testArgs(@Vector(32, i33), .{ - 0x07b887609, -0x004a23b00, 0x09b664a97, -0x0d4932ed0, - -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a, - 0x03d12175b, -0x0463cd854, 0x0cf448f1d, 0x0d1d02e2e, - -0x0da681c00, 0x0d1173267, 0x08faa4e2c, 0x0634c9df5, - 0x037e682e2, 0x0db055022, -0x0641f3daa, 0x053852c9b, - 0x035822a2b, -0x0b12bfe53, 0x084f704c9, 0x018cfacee, - -0x07130725b, -0x0b301dece, 0x00e1765b3, -0x0e0f0c97c, - 0x0ccd5e7fd, -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3, - }, .{ - 0x0df3d6e88, 0x00b4748ff, -0x0d0381c05, -0x093d68cb5, - -0x027834cc7, 0x05aa9ca20, -0x04bc88f40, 0x080f0d937, - 0x06699a6b8, -0x0fed64f1d, 0x0a79fe089, -0x016a9c385, - 0x0186e6b5b, -0x0a3c83fe6, 0x09a4f87ec, 0x011ce03bf, - -0x0f742cb8c, 0x066be2e66, -0x03b0beb52, 0x059bfda10, - 0x04bc221c0, 0x07d8b0344, -0x0c6e34f34, -0x0de0338ce, - -0x09571f80c, 0x0d36e8ea7, -0x052c44147, 0x0072ce503, - -0x0ef8dec64, 0x0b5956cb3, -0x02b72b4b1, 0x0f2585167, - }); - - try testArgs(@Vector(1, u33), .{ - 0x197ead992, - }, .{ - 0x0be595917, - }); - try testArgs(@Vector(2, u33), .{ - 0x1485499a5, 0x1e12b23e3, - }, .{ - 0x1431cd300, 0x0762a7b51, - }); - try testArgs(@Vector(4, u33), .{ - 0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed, - }, .{ - 0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2, - }); - try testArgs(@Vector(8, u33), .{ - 0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f, - 0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a, - }, .{ - 0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c, - 0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e, - }); - try testArgs(@Vector(16, u33), .{ - 0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53, - 0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6, - 0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac, - 0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275, - }, .{ - 0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22, - 0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef, - 0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906, - 0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948, - }); - try testArgs(@Vector(32, u33), .{ - 0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99, - 0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4, - 0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01, - 0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218, - 0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333, - 0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9, - 0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d, - 0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079, - }, .{ - 0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c, - 0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6, - 0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b, - 0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58, - 0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1, - 0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22, - 0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33, - 0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97, - }); - - try testArgs(@Vector(1, i63), .{ - -0x2d99033c3223ad4f, - }, .{ - 0x023c8c6807737a0e, - }); - try testArgs(@Vector(2, i63), .{ - -0x08fe3255607ce099, -0x3bf678cfa16a59d2, - }, .{ - -0x1b8733d130c49d54, 0x39deb4fe6c836b3f, - }); - try testArgs(@Vector(4, i63), .{ - 0x1e81cf3e0f9eae80, -0x0886f09bd1723b08, - 0x16e84b8d985e5b82, 0x0fa327538c09a281, - }, .{ - -0x2594908bb49f963f, -0x29639632db767665, - 0x012d5330f966e1be, -0x1143fddd48bf9752, - }); - try testArgs(@Vector(8, i63), .{ - -0x08e352cf330c1852, -0x17bc1f760120ff85, - -0x0f180e5c748c0e20, 0x07ee9290e2d53335, - -0x33945ea070fbb445, 0x104802af8984525d, - 0x36d27ad0f35fcfd8, 0x292141a0133227a0, - }, .{ - 0x2adad30092da2886, -0x1694bcdda9b82c45, - 0x1f5a019d638ba22c, -0x2e7853134888b613, - -0x2bb77a420f280a6d, -0x377771e94e493751, - 0x1dd5373311160f2f, -0x02bb5248b7e0c55e, - }); - try testArgs(@Vector(16, i63), .{ - 0x2d930d47aa078416, 0x1edf9abe8d562bd5, - 0x3ef3a5266f822396, -0x102f82f23c5608e1, - -0x38755dccf6c87ae1, 0x09f11b107d033f85, - 0x079829e968213db8, 0x17248ef600ddb53d, - 0x19e16a7a4e6aa0cc, 0x11e21ddfb7b5b946, - 0x26ad3768e80b1258, 0x3672a14b31cb7f1a, - 0x3235b83f829966b4, 0x3b4009ac38f728b8, - -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42, - }, .{ - -0x1428b8c4947715ea, -0x0a5626024843736e, - 0x075a1a0d0d47f0af, 0x0ea460d282e8dcc0, - -0x124b2a6e2957dc53, -0x0d2602075af449d5, - -0x0db76b825400293c, -0x17c13cd693d2db13, - 0x0ad907bb94e64687, -0x05fd33e10be897ad, - -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510, - 0x0106683b57f2cf9e, 0x353bea8a4c199155, - 0x3942af4e40b65cb0, 0x3da0254a739aa17a, - }); - - try testArgs(@Vector(1, u63), .{ - 0x17beef25621255fb, - }, .{ - 0x79bc7e82d16c5e15, - }); - try testArgs(@Vector(2, u63), .{ - 0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659, - }, .{ - 0x5df7aae04a4a1126, 0x53568966decbd14f, - }); - try testArgs(@Vector(4, u63), .{ - 0x3d50a0f4755d87e3, 0x722e93c0b1355665, - 0x3c8325a3e3640be1, 0x34eef2706884b9ab, - }, .{ - 0x2671797fd253520d, 0x22f81938e525536e, - 0x08ca256b0b348d57, 0x1cdbe1867f422280, - }); - try testArgs(@Vector(8, u63), .{ - 0x49ab492d75830041, 0x28f4065197f361cf, - 0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803, - 0x7f517fcfc0451068, 0x05eaa5d2f93407b2, - 0x0fe06447fdbec4d6, 0x34862504232f73d8, - }, .{ - 0x64a1796fe76dcc4d, 0x159bd1a9228a8c41, - 0x093a4794b5759276, 0x40a740fa4d288585, - 0x5d2d1aede616f40e, 0x7e7af17ddce8e03e, - 0x7555fb4a1c18d5ff, 0x11b45e151e8724d0, - }); - try testArgs(@Vector(16, u63), .{ - 0x456de088589c1035, 0x23239ed26d0e198f, - 0x4f3c4ae380a12430, 0x1cb11ef73131a6f4, - 0x6e51a370969ec7ae, 0x38bed7b267bb163d, - 0x2fcfab012fb79669, 0x45e203406a43fe95, - 0x38468cff64a44f74, 0x3cc86f1d717e8c60, - 0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8, - 0x1a7493c9bb7b265c, 0x6e8536e5f32317d8, - 0x634701c32688fd34, 0x7a4e4a7f35ef9651, - }, .{ - 0x3da82f0beb7a091d, 0x040c9bbf428787fa, - 0x795418c55742e8d2, 0x700f9b62c01cdf30, - 0x78d567c18e7ce16d, 0x300da37dc14b6705, - 0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d, - 0x00e8c13b3acf4557, 0x19adb837145a0267, - 0x594889dd8e1ff4c2, 0x561da6bd7e2ba593, - 0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc, - 0x68ec40831cb6b863, 0x2862d922ed7a78eb, - }); - - try testArgs(@Vector(1, i64), .{ - 0x4a31679b316d8b59, - }, .{ - 0x34a583368386afde, - }); - try testArgs(@Vector(2, i64), .{ - 0x3bae373f9cb990b3, -0x7e8c6c876e8fd34a, - }, .{ - 0x09dbef6f7cb9c726, 0x48dfeca879b0df51, - }); - try testArgs(@Vector(4, i64), .{ - -0x2bd24dd5f5da94bf, -0x144113bae33082c2, - 0x51e8cb7027ba4b12, -0x47b02168e2e22f13, - }, .{ - 0x769f113245641b91, -0x414d0e24ea97bc53, - -0x0d2a570e7ef9e923, -0x070513d46d3b5a4c, - }); - try testArgs(@Vector(8, i64), .{ - 0x10bb6779b6a55ca9, 0x5f6ffd567a187af4, - -0x6ba191b1168486b4, -0x441b92ce455870a1, - 0x2b6fdefbec9386ad, -0x6fdd3938d79217e4, - 0x6aa8fe1fb891501f, 0x20802f5bbdf6dc50, - }, .{ - -0x7500319df437b479, 0x00ceb712d4fa62d4, - 0x67e715b9e99e660d, -0x17ae00e1f0009ec2, - -0x5b700b948503acdf, -0x3ff61fb5cce5a530, - 0x55a3efac2e3694a4, 0x7f951a8d842f1670, - }); - try testArgs(@Vector(16, i64), .{ - 0x37a205109a685810, -0x50ff5d13134ccaa6, - 0x26813391c5505d5d, -0x502cdc01603a2f21, - -0x6b1b44b1c850c7ea, 0x1f6db974ace9dd70, - -0x47d15da8b519e328, 0x3ac0763abbf79d8d, - 0x5f12e0dc1aed4a4f, -0x46a973e16061e928, - -0x3f59a3fa9699b4d5, -0x2f5012d390c78315, - -0x40e510dea2c47e9c, 0x221c51defe0acc9a, - -0x385fd6f1d390b84b, 0x35932fe2783fa6b9, - }, .{ - 0x0ba5202b71ad73dd, 0x65c8d2d5e2a14fe5, - 0x2e4d97cd66c41a3d, 0x14babbb47da51193, - 0x59d1d12b42ade3aa, -0x3c3617e556dfa8fb, - -0x5a36602ba43279c4, -0x61f1ddda13665d9f, - -0x50cd6128589ddd04, 0x135ae0dcc85674ae, - -0x25e80592affc038d, 0x07e184c44fbe9b12, - -0x70ede1b90964bbaa, 0x3ec48b32e8efd98e, - -0x5267d41d85a29f46, 0x53099805f9116b60, - }); - - try testArgs(@Vector(1, u64), .{ - 0x333f593bf9d08546, - }, .{ - 0x6918bd767e730778, - }); - try testArgs(@Vector(2, u64), .{ - 0x4cd89a317b03d430, 0x28998f61842f63a9, - }, .{ - 0x6c34db64af0e217e, 0x57aa5d02cd45dceb, - }); - try testArgs(@Vector(4, u64), .{ - 0x946cf7e7484691c9, 0xf4fc5be2a762fcbf, - 0x71cc83bc25abaf14, 0xc69cef44c6f833a1, - }, .{ - 0x9f90cbd6c3ce1d4e, 0x182f65295dff4e84, - 0x4dfe62c59fed0040, 0x18402347c1db1999, - }); - try testArgs(@Vector(8, u64), .{ - 0x92c6281333943e2c, 0xa97750504668efb5, - 0x234be51057c0181f, 0xefbc1f407f3df4fb, - 0x8da6cc7c39cebb94, 0xb408f7e56feee497, - 0x2363f1f8821592ed, 0x01716e800c0619e1, - }, .{ - 0xa617426684147e7e, 0x7542da7ebe093a7b, - 0x3f21d99ac57606b7, 0x65cd36d697d22de4, - 0xed23d6bdf176c844, 0x2d4573f100ff7b58, - 0x4968f4d21b49f8ab, 0xf5d9a205d453e933, - }); - try testArgs(@Vector(16, u64), .{ - 0x2f61a4ee66177b4a, 0xf13b286b279f6a93, - 0x36b46beb63665318, 0x74294dbde0da98d2, - 0x3aa872ba60b936eb, 0xe8f698b36e62600b, - 0x9e8930c21a6a1a76, 0x876998b09b8eb03c, - 0xa0244771a2ec0adb, 0xb4c72bff3d3ac1a2, - 0xd70677210830eced, 0x6622abc1734dd72d, - 0x157e2bb0d57d6596, 0x2aac8192fb7ef973, - 0xc4a0ca92f34d7b13, 0x04300f8ad1845246, - }, .{ - 0xeaf71dcf0eb76f5d, 0x0e84b1b63dc97139, - 0x0f64cc38d23c94a1, 0x12775cf0816349b7, - 0xfdcf13387ba48d54, 0xf8d3c672cacd8779, - 0xe728c1f5eb56ab1e, 0x05931a34877f7a69, - 0x1861a763c8dafd1f, 0x4ac97573ecd5739f, - 0x3384414c9bf77b8c, 0x32c15bbd04a5ddc4, - 0xbfd88aee1d82ed32, 0x20e91c15b701059a, - 0xed533d18f8657f3f, 0x1ddd7cd7f6bab957, - }); - - try testArgs(@Vector(1, i65), .{ - 0x0ca0853f57c0686c8, - }, .{ - -0x05c79d7369ef879fd, - }); - try testArgs(@Vector(2, i65), .{ - 0x0c65f685f4839bc8d, -0x079057ad04859d897, - }, .{ - -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa, - }); - try testArgs(@Vector(4, i65), .{ - 0x0d6a03163f101695e, -0x0ebe991e54e61156d, - -0x0715adf48176985dc, 0x01e57dbe6ea50b22f, - }, .{ - -0x0b308d8311a45a38d, 0x07c292cc15044b1f5, - 0x0e69e3eae81046bc8, 0x053b75d6a544ca0db, - }); - try testArgs(@Vector(8, i65), .{ - 0x0066315a88896ba00, 0x026c8109f087eb4e3, - -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff, - 0x0dcdd248c4575dbb1, -0x09db7d03c38a83255, - -0x097bc9d5397c57594, 0x0e6af866eed43b462, - }, .{ - -0x06ac0448a06876866, 0x0f89dbafcbbb065d7, - -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0, - -0x085a4a7b09dcec260, -0x0068e92e14823a98a, - -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71, - }); - try testArgs(@Vector(16, i65), .{ - -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36, - -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8, - 0x0dbebb830228d2945, -0x02133deab2ebd8699, - -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc, - -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a, - -0x04e1094b79391df4a, 0x03b3fbc230416592d, - 0x08799db1379e6b1ba, -0x0fa7c7aed60863358, - -0x0c44dd44a770610bd, -0x0349cdc54719b2e37, - }, .{ - 0x03146cdf203a80cfd, 0x0e22a03fe80f3e2ed, - 0x07fa7a66dbe252222, 0x000a3bc923a32648a, - -0x078bac9e36d66da71, -0x03055804cd3b73168, - 0x0d9280808858f006d, -0x09415dfb2fd33fe5a, - -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82, - -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157, - 0x0ac0128bbf7a5200e, -0x009e0b2ab770e711b, - 0x05473b5629f372ee9, -0x02eda67313ff7fa47, - }); - - try testArgs(@Vector(1, u65), .{ - 0x1879059aca94dd383, - }, .{ - 0x0051da1f25078e919, - }); - try testArgs(@Vector(2, u65), .{ - 0x18f39bb41f03223f5, 0x16a59f6838a63e737, - }, .{ - 0x105aa15beae036a1a, 0x1b47ef7ef744b70fe, - }); - try testArgs(@Vector(4, u65), .{ - 0x18c685254b3c7170c, 0x0de8048a66902ebfd, - 0x02bc97f62163e7e31, 0x152b6eba67c1e76db, - }, .{ - 0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee, - 0x1db62793f956492ba, 0x0e4262599ec54c2a4, - }); - try testArgs(@Vector(8, u65), .{ - 0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b, - 0x1fd2f93384860df65, 0x01827fcdb6c715d64, - 0x03869c173a922b018, 0x0addd48a4671a2f6b, - 0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38, - }, .{ - 0x159e9494fc84ed452, 0x0834f6aaa7666a22b, - 0x066765389e84150b4, 0x1e722ae23908c7e96, - 0x0d64ec725397e6ee0, 0x19f3a147a355baa22, - 0x02f1b100538b6dbc3, 0x175885a34aefca91b, - }); - try testArgs(@Vector(16, u65), .{ - 0x105647e12b2b76daa, 0x04dcca29537263f6a, - 0x16c112620be731a4e, 0x0d6c088da3c158fa0, - 0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c, - 0x05703068045915d95, 0x07cc42e0bb216b310, - 0x08a15a16e4247ad98, 0x1c17b2292e34aa369, - 0x14c9808748fa615c3, 0x187449666c2f5375b, - 0x133fcb93a31d2f369, 0x047729af594c8c1c1, - 0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4, - }, .{ - 0x0d65b8b643703ef96, 0x1c55c2e0816c5d056, - 0x0390a06d3ec60e632, 0x0d543d346db055847, - 0x017e27c7d663d7005, 0x112f7b98a78014ea3, - 0x030136142f19042d7, 0x059f9b6e576f79ef7, - 0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde, - 0x1e26cd964c656292a, 0x0579c10261478da1d, - 0x0406f2849ab5ad15c, 0x024b15c729f2211b7, - 0x10f0505cc2f7f110c, 0x133cfa11f995e0afc, - }); - - try testArgs(@Vector(1, i127), .{ - 0x226b8faf65414a9a0ffcd438c7fa9eea, - }, .{ - 0x2c582610b08531ca208fef1c2b839bdc, - }); - try testArgs(@Vector(2, i127), .{ - 0x35e8caffc9fc8e1b3b6d3667cb6a128c, - -0x070d99d51807ae2314ea61e4f0166145, - }, .{ - -0x3a59d011c2a385a6dcf00a40efd85b77, - 0x3b5f506c3fa0c8552fba624d1b5debec, - }); - try testArgs(@Vector(4, i127), .{ - 0x191594cc2356ffeac739f1841b06adcf, - 0x1f45176996076de7c3891f14f831e192, - 0x1c9047002e0a4f00656556fffeb50349, - -0x38049f47bcc36ab26600bc475295389f, - }, .{ - -0x2f8c1618324c60c40f65d216943d59d2, - -0x21429f90bd9dff7b5d49c9d7f2655928, - 0x3baeef72d0d168fb50564c9f6eb5d778, - 0x3affe6f2eddfc6a69206c357633d0eeb, - }); - try testArgs(@Vector(8, i127), .{ - -0x00c48629a415129f66e74a1a215d683a, - 0x3920a425cbec4c9af649a00d5747136a, - 0x11f53b9db15a12814c948c6a809b96f8, - -0x1f7e272db97efc88762dedf54978e795, - 0x13e56ca8ed41f64d04ef01019703f402, - 0x294014109f4313454d9994f1003b4572, - 0x0f3d6fe7adde96149ffcc5c0808b708f, - 0x2d9bcd407da37ff3d43cc5f6b64fd385, - }, .{ - 0x3f95f21d3bc39fe8e3fcc184d150a984, - 0x2a8c36a5986d8c245bbdd302737b7e29, - 0x37c61446e10efe6a94f797da05a28fae, - -0x096b2f4e16aef099d623066e941d13d1, - 0x3df11d4af3229ed59c52628cac02f506, - 0x326f78cbf454566daa3bc235a1fb3fb8, - -0x2cf6b4872dffea018c77892e433b6784, - 0x345dfdd52635c224c70949913255ab68, - }); - - try testArgs(@Vector(1, u127), .{ - 0x49a0cd1849f9adbed215770c6f97a584, - }, .{ - 0x5e10826a03aeb57d4a9a9ef2a8f02faa, - }); - try testArgs(@Vector(2, u127), .{ - 0x1c2544fbb76890de5c00f42c9a516846, - 0x324f292d72694d409152a311b5a0441c, - }, .{ - 0x01cc87106db8e357e85f875d46feac96, - 0x49e775cc0db88cf9725af13113d7d457, - }); - try testArgs(@Vector(4, u127), .{ - 0x3e82ddcd074646a0a489a4fd300c32c9, - 0x2a511ac041c17a68c5a71bc6d3cb3ba9, - 0x2dace4189083411634b753ae476579a8, - 0x4e1d5cb04d9681d806312d72d6dc5262, - }, .{ - 0x5f489e689ff15fcf38aad995b1796af2, - 0x49ee549bd8e20092c8ccebb992cde8b8, - 0x4e52d33281cba3fda6ae8d1f463c7a1f, - 0x0de0279b2dec3fffe44c1c7decc430f8, - }); - try testArgs(@Vector(8, u127), .{ - 0x636de193fbadb1984a0ed9969f88d38d, - 0x64426b7e468cb323b1d75656879fb9b2, - 0x48afb4cc5a11f2ca4b8609b057758312, - 0x176157ce93422bb4463d6f0dda275b94, - 0x746015d0e8cb5e36af43840a6df11aab, - 0x279b665776118bc2759134c19cbf1bb0, - 0x52cb4dc56d3935090fb7db710c8f9660, - 0x591884d8d8e2fe2f77b7f8508dddeaaa, - }, .{ - 0x42e00bc05d50ea63d546085642b8831b, - 0x4241ff07ce99ee055b48ed2939b8d6b7, - 0x45a5f53a5c5cb13f1a9e6621fec8cf4a, - 0x68d6938c1b348dc6cc98d4b6ab3a1c22, - 0x1f9448fc11e38500ec7ecf57a33a278b, - 0x7b331526d6fcfb958f3c88fc4656e123, - 0x4f1e8ddf41a7105cc1a1c815040a2693, - 0x31ac7bd68686d531d53ecca75e6d8b81, - }); - - try testArgs(@Vector(1, i128), .{ - -0x3bb56309fcad13fc1011dc671cf57bdc, - }, .{ - -0x05338bb517db516ee08c45d1408e5836, - }); - try testArgs(@Vector(2, i128), .{ - 0x295f2901e3837e5592b9435f8c4df8a7, - -0x1f246b0ff2d02a6bf30a63392fc63371, - }, .{ - -0x31060c09e29b545670c4cbc721a4e26b, - -0x631eb286321325d51c617aa798195392, - }); - try testArgs(@Vector(4, i128), .{ - 0x47110102c74f620f08e5b7c5dbe193c2, - -0x61d12d2650413ad3ffeeeab3ba57e1f0, - 0x449781e64b29dc8a17a88f4b7a5b0717, - 0x0d2170e9238d12a585dc5377566e1938, - }, .{ - 0x0bf948e19bd01823dcb3887937d97079, - -0x16f933ab12bfba3560d0d39ffe69b64a, - 0x3d0bfce3907a5cd157348f0329e2548e, - -0x3c2d182e2e238a4bebd7defbd7f9699a, - }); - try testArgs(@Vector(8, i128), .{ - -0x775678727c721662f02480619acbfc82, - -0x6f504fcbff673cb91e4706af4373665f, - -0x670f888d4186387c3106d125b856c294, - 0x0641e7efdfdd924d126b446d874154f8, - 0x57d7aef0f82d3351917f43c8f677392b, - -0x4077e745dede8367d145c94f20ab8810, - -0x0344a74fb60e1f1f72ba8ec288b05939, - -0x0be3ce9be461aca1d25ad8e74dcc36e1, - }, .{ - -0x4a873d91e5a2331def0d34c008d33d83, - 0x2744cecfd4c683bdd12f3cfc11d7f520, - -0x0cb8e468fc1de93a7c5ad2a5a61e8f50, - -0x1a3be9e58e918d6586cc4948a54515d3, - -0x512ec6f88c3a34950a8aaee47130120b, - -0x2e772e4a8812e553bcf9b2754a493709, - 0x0c7b137937dc25f9f9cbaf4d7a88ee6b, - -0x2ecdd5eb81eb0e98ed8d0aa9516c1617, - }); - - try testArgs(@Vector(1, u128), .{ - 0x5f11e16b0ca3392f907a857881455d2e, - }, .{ - 0xf9142d73b408fd6955922f9fc147f7d7, - }); - try testArgs(@Vector(2, u128), .{ - 0xee0fb41fabd805923fb21b5c658e3a87, - 0x2352e74aad6c58b3255ff0bba5aa6552, - }, .{ - 0x8d822f9fdd9cb9a5b43513b14419b224, - 0x1aef2a02704379e38ead4d53d69e4cc4, - }); - try testArgs(@Vector(4, u128), .{ - 0xc74437a4ea3bbbb193dbf0ea2f0c5281, - 0x039e4b1640868248780db1834a0027eb, - 0xb9e8bb34155b2b238da20331d08ff85b, - 0x863802d34a54c2e6aa71dd0f067c4904, - }, .{ - 0x7471bae24ff7b84ab107f86ba2b7d1e7, - 0x8f34c449d0576e682c20bda74aa6b6c9, - 0x1f34c3efa167b61c48c9d5ec01a1a93f, - 0x71c8318fcf3ddc7be058c73a52dce9e3, - }); - try testArgs(@Vector(8, u128), .{ - 0xbf2db71463037f55ee338431f902a906, - 0xb7ad317626655f38ab25ae30d8a1aa67, - 0x7d3c5a3ffaa607b5560d69ae3fcf7863, - 0x009a39a8badf8b628c686dc176aa1273, - 0x49dba3744c91304cc7bbbdab61b6c969, - 0x6ec664b624f7acf79ce69d80ed7bc85c, - 0xe02d7a303c0f00c39010f3b815547f1c, - 0xb13e1ee914616f58cffe6acd33d9b5c8, - }, .{ - 0x2f2d355a071942a7384f82ba72a945b8, - 0x61f151b3afec8cb7664f813cecf581d1, - 0x5bfbf5484f3a07f0eacc4739ff48af80, - 0x59c0abbf8d829cf525a87d5c9c41a38a, - 0xdad8b18eb680f0520ca49ebfb5842e22, - 0xa05adcaedd9057480b3ba0413d003cec, - 0x8b0b4a27fc94a0e90652d19bc755b63d, - 0xa858bce5ad0e48c13588a4e170e8667c, - }); - - try testArgs(@Vector(1, i129), .{ - -0x09c126c4e31389b174cb2b45e76c086dd, - }, .{ - 0x0d023f2566c56400f4b7edb9c4f364ecb, - }); - try testArgs(@Vector(2, i129), .{ - -0x072be32e116741732f9422d9b20777db5, - -0x010829386cc3d93283a83591bd994ca58, - }, .{ - 0x004671167d0681d46945832d16f70cfba, - 0x098550137341cbadfe8378987e3a83265, - }); - try testArgs(@Vector(4, i129), .{ - 0x04167620c7f5e094208fb204f06b9792c, - 0x07a6690c0b5f9de6c8955873f19b98f23, - -0x06505997d01e5a971f820742210c7adc6, - -0x07013921eab8d92559f17ad9e3712bc61, - }, .{ - -0x0bdbf7ce4079fa628feb05f5814402e15, - -0x0e6ee5464de547ce92ee5a6037f175e52, - -0x009d079b88cdc765ab72758854b753d98, - -0x085af31dd5243f61b46e6dc950728ff49, - }); - try testArgs(@Vector(8, i129), .{ - 0x0d85f471bdc56611e9187113f1489bd38, - 0x06e1e9cae044bb17b63c380fd6f2652b5, - 0x0921d649288a16481f2ec69747f443e5e, - 0x0e8db24d1aefd91cfab20bac61f560274, - 0x0187abef7578e5e02a396e4ebd5859c23, - 0x0d2dec5a6bd72afe18288ca428ec2b94d, - 0x0c52c111a077bffb1fa4483523cd044c3, - -0x0b6a90c79d6230f271bf625c9a6c0dfc5, - }, .{ - 0x0d47c566bdedae2e9485f7aa381a98d30, - -0x0e5d9573c01a9e56361b202c47f0e51f8, - -0x0bdcafb1f08db4920121521b2d2679931, - 0x08de42eec43f2a5175f928f8a1812575d, - 0x0c3f57e712a7f8494e51b62d11573d9a0, - -0x09287910d439c9bafd56bc8a6faf50cb3, - 0x07b494af9634c8f95bed2f50fcaf08dda, - -0x0a150693d83af2e823dcc0765e4e331e2, - }); - - try testArgs(@Vector(1, u129), .{ - 0x1e51bd13747df8fae52f0471e9f1ad3f2, - }, .{ - 0x00aba9f2c80c71b1ed07201486ea44d00, - }); - try testArgs(@Vector(2, u129), .{ - 0x0c7967a19d13d4bd3f6ebfa0f8fdeab92, - 0x01614ee2c32757cc92e2efd97e94321a7, - }, .{ - 0x175803a2c0bf888bd01e2a5bae28e4523, - 0x07d05a98ec8f4e7e72aac2712bc09a23a, - }); - try testArgs(@Vector(4, u129), .{ - 0x1b18b768c5852bb1f0a7b34ceaeac4a0c, - 0x038fc1f995d9378fcf1043598810d7a56, - 0x06eebd77f9920e79932decf0f29ef658d, - 0x1f31a766145022050d0b16a4f5d06f1e3, - }, .{ - 0x033b20a528a722b6704bf5c8aea497e68, - 0x0ea05276fb8de4e77e4a8d4ef55f64bba, - 0x1c632cf252683b00faae6dcb7d73d8b90, - 0x11a7e1e98bb34fc7f5ed36c327476b122, - }); - try testArgs(@Vector(8, u129), .{ - 0x1b85991584b26492938854a6f6953b766, - 0x119472b0f4b7199f1267639f601833e3d, - 0x130d19e6ccfebce09c61c8c8fb526fec0, - 0x1379f4fa9d25e18ef5138c193b7ec9ef3, - 0x15fc62d9e21c2c0c63f9cab5ab0a8cf36, - 0x123ceb2a65f200a0b3e559c801bdbfa58, - 0x0e740ae3c7ab0cd24c5ff94d9367e3ebb, - 0x008c7dd67796949390355d866e4f171ef, - }, .{ - 0x0ffdda009048cf61476610425d5e55560, - 0x061bcb9d024d015891b5666e7b317cc84, - 0x060c013386fb8c129a3bd65b7909f2bc5, - 0x01c8efdd7ea806b1dc984c6183da53d8f, - 0x02fae7cee43d7f97448e82b907335bd45, - 0x0365e7cadcbd0a64decc1377339967c53, - 0x1a52793ba8a9689e1d7f5036e8cb613e1, - 0x1257d7cdd8f04058d285a5bce173b5262, - }); - - try testArgs(@Vector(1, i191), .{ - -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d, - }, .{ - 0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512, - }); - try testArgs(@Vector(2, i191), .{ - -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3, - 0x3f298efedf4269276db60344c2bed556ee25d24c5f887000, - }, .{ - 0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7, - -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7, - }); - try testArgs(@Vector(4, i191), .{ - -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7, - -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef, - 0x1783dc9f0afa815051e6d338ef35da013e807da475815af5, - 0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916, - }, .{ - 0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd, - 0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29, - 0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86, - 0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546, - }); - try testArgs(@Vector(8, i191), .{ - -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225, - 0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed, - -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232, - -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d, - -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17, - -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70, - -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085, - 0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35, - }, .{ - 0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95, - -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9, - -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02, - -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980, - -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c, - -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae, - -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31, - 0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3, - }); - - try testArgs(@Vector(1, u191), .{ - 0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83, - }, .{ - 0x020334928f4583d332043b7aef15e832047dfd01b2933038, - }); - try testArgs(@Vector(2, u191), .{ - 0x67074e5315030f5c1a4d035100736de691b5589f6d349162, - 0x0e655397f96e3fd66b317294a37975d36478242fd6392259, - }, .{ - 0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf, - 0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd, - }); - try testArgs(@Vector(4, u191), .{ - 0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57, - 0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1, - 0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457, - 0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc, - }, .{ - 0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c, - 0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7, - 0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9, - 0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693, - }); - try testArgs(@Vector(8, u191), .{ - 0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca, - 0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052, - 0x7841b17a1c38e4066376e5ae204959c02c524635740a9013, - 0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77, - 0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788, - 0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e, - 0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3, - 0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a, - }, .{ - 0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614, - 0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc, - 0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90, - 0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7, - 0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1, - 0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434, - 0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2, - 0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934, - }); - - try testArgs(@Vector(1, i192), .{ - 0x5348bc83a6f352c931d06b9817458273408470e8ce312bef, - }, .{ - -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d, - }); - try testArgs(@Vector(2, i192), .{ - 0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869, - -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b, - }, .{ - 0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be, - 0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2, - }); - try testArgs(@Vector(4, i192), .{ - -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf, - -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f, - 0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc, - 0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce, - }, .{ - 0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06, - 0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993, - -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255, - 0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114, - }); - try testArgs(@Vector(8, i192), .{ - -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9, - 0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7, - 0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c, - -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3, - -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32, - -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297, - -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574, - -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464, - }, .{ - -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6, - -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a, - -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113, - -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525, - 0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67, - -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732, - -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5, - 0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21, - }); - - try testArgs(@Vector(1, u192), .{ - 0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d, - }, .{ - 0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb, - }); - try testArgs(@Vector(2, u192), .{ - 0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2, - 0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d, - }, .{ - 0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0, - 0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e, - }); - try testArgs(@Vector(4, u192), .{ - 0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be, - 0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd, - 0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256, - 0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74, - }, .{ - 0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294, - 0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5, - 0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134, - 0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec, - }); - try testArgs(@Vector(8, u192), .{ - 0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066, - 0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099, - 0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4, - 0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3, - 0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7, - 0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a, - 0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb, - 0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e, - }, .{ - 0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d, - 0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e, - 0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b, - 0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9, - 0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09, - 0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d, - 0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c, - 0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1, - }); - - try testArgs(@Vector(1, i193), .{ - -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66, - }, .{ - 0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5, - }); - try testArgs(@Vector(2, i193), .{ - 0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f, - -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6, - }, .{ - -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a, - 0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9, - }); - try testArgs(@Vector(4, i193), .{ - -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac, - -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda, - 0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a, - -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72, - }, .{ - 0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d, - 0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199, - -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a, - -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f, - }); - try testArgs(@Vector(8, i193), .{ - -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec, - -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233, - -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5, - -0x065c502be097b15379af566a20c4ee93893718330c9a258ce, - 0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9, - 0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6, - 0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973, - -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0, - }, .{ - 0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257, - 0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb, - -0x060f3874a6f65b46738d0117db38b749aff45725000c06213, - 0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353, - 0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68, - -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29, - 0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e, - -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae, - }); - - try testArgs(@Vector(1, u193), .{ - 0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a, - }, .{ - 0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e, - }); - try testArgs(@Vector(2, u193), .{ - 0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c, - 0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947, - }, .{ - 0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20, - 0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac, - }); - try testArgs(@Vector(4, u193), .{ - 0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360, - 0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699, - 0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852, - 0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa, - }, .{ - 0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c, - 0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45, - 0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11, - 0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9, - }); - try testArgs(@Vector(8, u193), .{ - 0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3, - 0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b, - 0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece, - 0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1, - 0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921, - 0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361, - 0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f, - 0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0, - }, .{ - 0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b, - 0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa, - 0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82, - 0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b, - 0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7, - 0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100, - 0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa, - 0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e, - }); - - try testArgs(@Vector(1, i255), .{ - -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11, - }, .{ - -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625, - }); - try testArgs(@Vector(2, i255), .{ - -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2, - -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486, - }, .{ - 0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47, - 0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f, - }); - try testArgs(@Vector(4, i255), .{ - -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4, - 0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1, - 0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a, - 0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d, - }, .{ - 0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd, - 0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6, - 0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a, - -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68, - }); - - try testArgs(@Vector(1, u255), .{ - 0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9, - }, .{ - 0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381, - }); - try testArgs(@Vector(2, u255), .{ - 0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff, - 0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef, - }, .{ - 0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8, - 0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b, - }); - try testArgs(@Vector(4, u255), .{ - 0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982, - 0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626, - 0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4, - 0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce, - }, .{ - 0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61, - 0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36, - 0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49, - 0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7, - }); - - try testArgs(@Vector(1, i256), .{ - 0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce, - }, .{ - 0x6932f4faf261c45ecd701a4fe3015d4255e486b04c4ab448fe162980cead63fb, - }); - try testArgs(@Vector(2, i256), .{ - -0x23daa9bab59dc1e685f4220c189930c3420a55784f0dec1028c2778d907ccfe2, - 0x521c992e4f46d61709d39e076ed94d5d884585f85ccbf71ca4d593da34f61bf5, - }, .{ - 0x2d880cb5aa793218a32411389db31e935932029645573a9625dd174099c9e5b2, - 0x2394a6cde7e8b2dc2995f07f22f815baa6c223d99c0b1ec4b2d8abd0094db853, - }); - try testArgs(@Vector(4, i256), .{ - 0x244e66ed932a4d970fd8735c10bfbd5f59bd4452c20fa0fcf873823b8c9e6321, - -0x31577b747614b1ab83fd0178293cd80b3cb92e739459b2d038688a2471f6d659, - -0x0dbdfc3d8bbd7cab6a33598cef29125aab7571fb0db9a528e42966963d6ce0e7, - -0x72c58cce172d8a34019a44407a4baf1f8f8a4a611711bd5bb4daa2a2739dd67b, - }, .{ - -0x2e88bc68893fc2d61af0e5ccb541f31fa6169504e8cfcbeab0b74a03b9e86c33, - -0x7eba0783f3382b59a17ffbea57ba1dd8fa30e2d4f7eba7ed68d336d3c37b4561, - -0x66d1463efd38e9e994e126d09b5c65c8efc932ffea9ec6cdf6042561ba05f801, - 0x2024bbacefbabbfd5b32a09be631451764a1f889a77918f9094382dc6d02aef2, - }); - - try testArgs(@Vector(1, u256), .{ - 0x28df37e1f57a56133ba3f5b5b2164ce24eb6c29a8973a597fd91fbee8ab4bafb, - }, .{ - 0x63f725028cab082b5b1e6cb474428c8c3655cf438f3bb05c7a87f8270198f357, - }); - try testArgs(@Vector(2, u256), .{ - 0xcc79740b85597ef411e6d7e92049dfaa2328781ea4911540a3dcb512b71c7f3c, - 0x51ae46d2f93cbecff1578481f6ddc633dacee94ecaf81597c752c5c5db0ae766, - }, .{ - 0x257f0107305cb71cef582a9a58612a019f335e390d7998f51f5898f245874a6e, - 0x0a95a17323a4d16a715720f122b752785e9877e3dd3d3f9b72cdac3d1139a81f, - }); - try testArgs(@Vector(4, u256), .{ - 0x19667a6e269342cba437a8904c7ba42a762358d32723723ae2637b01124e63c5, - 0x14f7d3599a7edc7bcc46874f68d4291793e6ef72bd1f3763bc5e923f54f2f781, - 0x1c939de0ae980b80de773a04088ba45813441336cdfdc281ee356c98d71f653b, - 0x39f5d755965382fe13d1b1d6690b8e3827f153f8166768c4ad8a28a963b781f2, - }, .{ - 0xbe03de37cdcb8126083b4e86cd8a9803121d31b186fd5ce555ad77ce624dd6c7, - 0xa0c0730f0d7f141cc959849d09730b049f00693361539f1bc4758270554a60c1, - 0x2664bdba8de4eaa36ecee72f6bfec5b4daa6b4e00272d8116f2cc532c29490cc, - 0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b, - }); - - try testArgs(@Vector(1, i257), .{ - -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12, - }, .{ - 0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a, - }); - try testArgs(@Vector(2, i257), .{ - -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3, - -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01, - }, .{ - 0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9, - -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1, - }); - try testArgs(@Vector(4, i257), .{ - -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa, - 0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85, - 0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66, - -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42, - }, .{ - 0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8, - 0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a, - -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c, - -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5, - }); - - try testArgs(@Vector(1, u257), .{ - 0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11, - }, .{ - 0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68, - }); - try testArgs(@Vector(2, u257), .{ - 0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9, - 0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98, - }, .{ - 0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb, - 0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6, - }); - try testArgs(@Vector(4, u257), .{ - 0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909, - 0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974, - 0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4, - 0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0, - }, .{ - 0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab, - 0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140, - 0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556, - 0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b, - }); - - try testArgs(@Vector(1, i511), .{ - 0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed, - }, .{ - 0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577, - }); - try testArgs(@Vector(2, i511), .{ - 0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268, - 0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4, - }, .{ - -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1, - -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854, - }); - - try testArgs(@Vector(1, u511), .{ - 0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10, - }, .{ - 0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84, - }); - try testArgs(@Vector(2, u511), .{ - 0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb, - 0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1, - }, .{ - 0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601, - 0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074, - }); - - try testArgs(@Vector(1, i512), .{ - -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2, - }, .{ - 0x18b1d3be5a03310d82859a4ab72f056a33d1a4b554522bcc062fb33eda3b8111045ee79e045dd1a665d250b897f6f2e12003a03313c2547698f8c1eab452eae1, - }); - try testArgs(@Vector(2, i512), .{ - 0x28e2ab84d87d5fb12be65d8650de67b992dd162fe563ca74b62f51f2f32e1084e03e32c8370930816445ac5052b4d345059c8ace582e3ef44377b160e265ec9b, - -0x3a96548c707219326c42063997e71bc7a17b3067d402063843f84c86e747b71e09338079c28943d20601c0cde018bad57f5615fc89784bcb6232e45c54dff1db, - }, .{ - 0x64beecc90609b7156653b75a861e174c58fb42d5c7bf8d793efbb1cbe785c6b8cd52ce5f9aa859f174123c387820d40a2f93122b81396d739eb85c3ea33fcd37, - -0x3632e347bc6d794940424ca0945dafa04328a924ec6b0ccdedcda6d296e09aa2dd5dca83b934cac752993238aa4fe826be8d62991c9347bae6f01bc0b1b4223d, - }); - - try testArgs(@Vector(1, u512), .{ - 0x651058c1d89a8f34cfc5e66b6d25294eecfcc4a7e1e4a356eb51ee7d7b2db25378e4afee51b7d18d16e520772a60c50a02d7966f40ced1870b32c658e5821397, - }, .{ - 0xd726e265ec80cb99510ba4f480ca64e959de5c528a7f54c386ecad22eeeefa845f0fd44b1bd64258a5f868197ee2d8fed59df9c9f0b72e74051a7ff20230880e, - }); - try testArgs(@Vector(2, u512), .{ - 0x22c8183c95cca8b09fdf541e431b73e9e4a1a5a00dff12381937fab52681d09d38ea25727d7025a2be08942cfa01535759e1644792e347c7901ec94b343c6337, - 0x292fdf644e75927e1aea9465ae2f60fb27550cd095f1afdea2cf7855286d26fbeed1c0b9c0474b73cb6b75621f7eadaa2f94ec358179ce2aaa0766df20da1ef3, - }, .{ - 0xe1cd8c0ca244c6626d4415e10b4ac43fa69e454c529c24fec4b13e6b945684d4ea833709c16c636ca78cffa5c5bf0fe945cd714a9ad695184a6bdad31dec9e31, - 0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90, - }); - - try testArgs(@Vector(1, i513), .{ - 0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b, - }, .{ - -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808, - }); - try testArgs(@Vector(2, i513), .{ - 0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c, - -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711, - }, .{ - -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0, - 0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33, - }); - - try testArgs(@Vector(1, u513), .{ - 0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78, - }, .{ - 0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8, - }); - try testArgs(@Vector(2, u513), .{ - 0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e, - 0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e, - }, .{ - 0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef, - 0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723, - }); - - try testArgs(@Vector(1, i1023), .{ - -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4, - }, .{ - 0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1, - }); - - try testArgs(@Vector(1, u1023), .{ - 0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0, - }, .{ - 0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209, - }); - - try testArgs(@Vector(1, i1024), .{ - -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394, - }, .{ - -0x7cab2a053dfbf944cd342460350c989fd1b4469a6c7b54ddcacd54e605d29c03651b5c463495610d82269c9ac5b51bfd07816a0f7b1ab50cb598989ed64607b3faff79a190702eb285b0fedc050ec1a71537abc47ec590eb671d4f76b19567049ba4789d1a4348385607a0320fbff9b78260536a9b6030bddb0b09da689d1687, - }); - - try testArgs(@Vector(1, u1024), .{ - 0x0ca1a0dfaf8bb1da714b457d23c71aef948e66c7cd45c0aa941498a796fb18502ec32f34e885d0a107d44ae81595f8b52c2f0fb38e584b7139903a0e8a823ae20d01ca0662722dd474e7efc40f32d74cc065d97d8a09d0447f1ab6107fa0a57f3f8c866ae872506627ce82f18add79cee8dc69837f4ead3ca770c4d622d7e544, - }, .{ - 0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc, - }); - - try testArgs(@Vector(1, i1025), .{ - -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18, - }, .{ - -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081, - }); - - try testArgs(@Vector(1, u1025), .{ - 0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb, - }, .{ - 0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f, - }); - } - fn testFloatVectors() !void { - @setEvalBranchQuota(21_700); - - try testArgs(@Vector(1, f16), .{ - -tmin(f16), - }, .{ - fmax(f16), - }); - try testArgs(@Vector(2, f16), .{ - 1e-1, 1e0, - }, .{ - -nan(f16), -fmin(f16), - }); - try testArgs(@Vector(4, f16), .{ - 1e-1, -fmax(f16), 0.0, 1e-1, - }, .{ - -fmin(f16), -1e1, 1e0, -tmin(f16), - }); - try testArgs(@Vector(8, f16), .{ - -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1, - }, .{ - -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1, - }); - try testArgs(@Vector(16, f16), .{ - 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), - }, .{ - 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), - }); - try testArgs(@Vector(32, f16), .{ - -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), - 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, - }, .{ - 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), - 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, - }); - try testArgs(@Vector(64, f16), .{ - -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), - 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), - 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, - 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), - }, .{ - 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, - 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, - 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, - -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), - }); - try testArgs(@Vector(128, f16), .{ - -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), - 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), - 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), - -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, - 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), - 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, - -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), - -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, - }, .{ - -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), - 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), - -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, - 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), - 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), - -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), - 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, - -fmin(f16), tmin(f16), -1e0, 1e-1, 0.0, nan(f16), 1e0, fmax(f16), -1e0, 1e1, nan(f16), 1e0, fmin(f16), 1e0, -1e1, -1e1, - }); - try testArgs(@Vector(69, f16), .{ - -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), - 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, - 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), - 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, - -1e1, -0.0, -fmax(f16), nan(f16), fmax(f16), - }, .{ - 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), - 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, - 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), - -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), - inf(f16), fmin(f16), -nan(f16), -inf(f16), inf(f16), - }); - - try testArgs(@Vector(1, f32), .{ - fmin(f32), - }, .{ - -tmin(f32), - }); - try testArgs(@Vector(2, f32), .{ - nan(f32), -1e1, - }, .{ - -tmin(f32), fmin(f32), - }); - try testArgs(@Vector(4, f32), .{ - fmax(f32), -fmax(f32), -1e1, 0.0, - }, .{ - inf(f32), inf(f32), -1e1, inf(f32), - }); - try testArgs(@Vector(8, f32), .{ - -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1, - }, .{ - 1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1, - }); - try testArgs(@Vector(16, f32), .{ - 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), - }, .{ - 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), - }); - try testArgs(@Vector(32, f32), .{ - 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, - -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, - }, .{ - -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), - -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), - -fmin(f32), fmax(f32), - }); - try testArgs(@Vector(64, f32), .{ - 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, - -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), - 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), - -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, - }, .{ - 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, - -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, - 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), - 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), - }); - try testArgs(@Vector(128, f32), .{ - -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, - 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), - 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, - 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, - -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), - 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), - 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), - 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), - }, .{ - -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), - 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), - 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, - -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), - -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, - -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), - -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), - 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), - }); - try testArgs(@Vector(69, f32), .{ - 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, - 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, - 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), - -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, - 1e1, -nan(f32), -nan(f32), tmin(f32), -nan(f32), - }, .{ - -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), - -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), - 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), - -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, - -1e1, fmin(f32), inf(f32), fmin(f32), 0.0, - }); - - try testArgs(@Vector(1, f64), .{ - -0.0, - }, .{ - 1e0, - }); - try testArgs(@Vector(2, f64), .{ - -1e0, 0.0, - }, .{ - -inf(f64), -fmax(f64), - }); - try testArgs(@Vector(4, f64), .{ - -inf(f64), inf(f64), 1e1, 0.0, - }, .{ - -tmin(f64), 1e0, nan(f64), 0.0, - }); - try testArgs(@Vector(8, f64), .{ - 1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1, - }, .{ - tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0, - }); - try testArgs(@Vector(16, f64), .{ - 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, - }, .{ - -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), - }); - try testArgs(@Vector(32, f64), .{ - -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, - -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), - }, .{ - -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), - 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), - }); - try testArgs(@Vector(64, f64), .{ - -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, - -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, - -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), - -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, - }, .{ - 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), - 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, - 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), - 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, - }); - try testArgs(@Vector(128, f64), .{ - 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), - -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), - 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), - -fmin(f64), 1e0, -inf(f64), -1e1, 1e-1, 1e0, 1e1, 1e1, tmin(f64), nan(f64), inf(f64), 0.0, -1e0, -1e1, 1e0, - -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), - 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), - 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, - 1e-1, 1e-1, 1e-1, inf(f64), -inf(f64), 1e0, 1e1, 1e1, nan(f64), 1e1, -tmin(f64), 1e0, -fmin(f64), -1e0, -fmax(f64), - -fmin(f64), -fmin(f64), -1e0, inf(f64), nan(f64), tmin(f64), 1e-1, -1e0, - }, .{ - 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), - nan(f64), -tmin(f64), tmin(f64), 1e0, 1e-1, -1e1, -nan(f64), 1e0, inf(f64), -1e1, fmin(f64), 1e-1, 1e1, -1e1, 1e1, - -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), - 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), - -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, - 1e-1, 0.0, -1e1, -nan(f64), 1e1, -fmin(f64), -tmin(f64), 1e1, 1e0, -tmin(f64), -1e0, -fmin(f64), -0.0, -1e1, 1e-1, - 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, - 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), - tmin(f64), -1e1, -nan(f64), 1e1, -inf(f64), -fmax(f64), -inf(f64), -1e0, - }); - try testArgs(@Vector(69, f64), .{ - 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), - 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), - -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), - -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, - -nan(f64), 1e1, -1e0, 1e-1, 0.0, - }, .{ - -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), - -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), - 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), - 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, - -nan(f64), -fmin(f64), 1e-1, nan(f64), 1e-1, - }); - - try testArgs(@Vector(1, f80), .{ - -nan(f80), - }, .{ - -1e0, - }); - try testArgs(@Vector(2, f80), .{ - -fmax(f80), -inf(f80), - }, .{ - 1e-1, 1e1, - }); - try testArgs(@Vector(4, f80), .{ - -0.0, -inf(f80), 1e-1, 1e1, - }, .{ - -1e0, 0.0, 1e-1, -1e1, - }); - try testArgs(@Vector(8, f80), .{ - 1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1, - }, .{ - -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1, - }); - try testArgs(@Vector(16, f80), .{ - 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), - }, .{ - -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, - }); - try testArgs(@Vector(32, f80), .{ - 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), - 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), - }, .{ - 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, - 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), - }); - try testArgs(@Vector(64, f80), .{ - -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), - 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, - -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, - 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), - }, .{ - -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), - 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), - 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, - 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, - }); - try testArgs(@Vector(128, f80), .{ - 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), - -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, - -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, - -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), - -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), - 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, - 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, - -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), - }, .{ - -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), - 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, - 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), - -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), - 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, - 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), - 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), - -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, - }); - try testArgs(@Vector(69, f80), .{ - -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, - 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), - -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), - 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, - -fmax(f80), -1e0, 1e-1, -1e0, fmax(f80), - }, .{ - -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), - -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, - 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), - 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, - nan(f80), 1e1, -1e1, 0.0, -fmin(f80), - }); - - try testArgs(@Vector(1, f128), .{ - -nan(f128), - }, .{ - -0.0, - }); - try testArgs(@Vector(2, f128), .{ - 0.0, -inf(f128), - }, .{ - 1e-1, -fmin(f128), - }); - try testArgs(@Vector(4, f128), .{ - 1e-1, fmax(f128), 1e1, -fmax(f128), - }, .{ - -tmin(f128), fmax(f128), -0.0, -0.0, - }); - try testArgs(@Vector(8, f128), .{ - 1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128), - }, .{ - fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1, - }); - try testArgs(@Vector(16, f128), .{ - -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), - }, .{ - -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), - }); - try testArgs(@Vector(32, f128), .{ - -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), - -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), - }, .{ - -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, - 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, - }); - try testArgs(@Vector(64, f128), .{ - -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, - 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, - -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, - -1e0, -1e0, -1e0, -inf(f128), 1e1, -tmin(f128), nan(f128), nan(f128), 1e-1, fmin(f128), 1e-1, tmin(f128), -1e1, 1e-1, 1e1, - fmax(f128), fmax(f128), 1e-1, -fmax(f128), - }, .{ - -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, - 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), - 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), - 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), - }); - try testArgs(@Vector(128, f128), .{ - -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), - inf(f128), -1e0, tmin(f128), -inf(f128), 0.0, fmax(f128), tmin(f128), -fmin(f128), fmin(f128), -1e1, -fmin(f128), -1e1, 1e0, -nan(f128), - -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, - 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), - -fmin(f128), 0.0, 1e-1, -nan(f128), 1e-1, -inf(f128), -nan(f128), -1e0, fmin(f128), -0.0, 1e1, -tmin(f128), 1e1, 1e0, - 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, - 1e-1, 0.0, -fmin(f128), 0.0, 1e1, 1e1, tmin(f128), inf(f128), -nan(f128), -inf(f128), -1e0, -fmin(f128), -1e1, -fmin(f128), - -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, - 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), - 1e-1, fmax(f128), - }, .{ - 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, - 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), - -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), - -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, - -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), - 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), - 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, - -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, - fmin(f128), 1e1, -tmin(f128), -tmin(f128), 0.0, -1e1, 1e0, -fmin(f128), - }); - try testArgs(@Vector(69, f128), .{ - -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), - -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), - 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, - 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), - nan(f128), -inf(f128), 1e0, fmin(f128), -nan(f128), - }, .{ - -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), - 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, - -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, - 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, - -1e0, -inf(f128), tmin(f128), inf(f128), inf(f128), - }); - } - }; -} - -inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { - @setRuntimeSafety(false); - return @as(AddOneBit(Type), lhs) + rhs; -} -test addUnsafe { - const test_add_unsafe = binary(addUnsafe, .{}); - try test_add_unsafe.testInts(); - try test_add_unsafe.testIntVectors(); - try test_add_unsafe.testFloats(); - try test_add_unsafe.testFloatVectors(); -} - -inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type { - return lhs +% rhs; -} -test addWrap { - const test_add_wrap = binary(addWrap, .{}); - try test_add_wrap.testInts(); - try test_add_wrap.testIntVectors(); -} - -inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) { - @setRuntimeSafety(false); - switch (@typeInfo(Scalar(Type))) { - else => @compileError(@typeName(Type)), - .int => |int| switch (int.signedness) { - .signed => {}, - .unsigned => return @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs), - }, - .float => {}, - } - return @as(AddOneBit(Type), lhs) - rhs; -} -test subUnsafe { - const test_sub_unsafe = binary(subUnsafe, .{}); - try test_sub_unsafe.testInts(); - try test_sub_unsafe.testIntVectors(); - try test_sub_unsafe.testFloats(); - try test_sub_unsafe.testFloatVectors(); -} - -inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type { - return lhs -% rhs; -} -test subWrap { - const test_sub_wrap = binary(subWrap, .{}); - try test_sub_wrap.testInts(); - try test_sub_wrap.testIntVectors(); -} - -inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) { - @setRuntimeSafety(false); - return @as(DoubleBits(Type), lhs) * rhs; -} -test mulUnsafe { - const test_mul_unsafe = binary(mulUnsafe, .{}); - try test_mul_unsafe.testInts(); - try test_mul_unsafe.testIntVectors(); -} - -inline fn mulWrap(comptime Type: type, lhs: Type, rhs: Type) Type { - return lhs *% rhs; -} -test mulWrap { - const test_mul_wrap = binary(mulWrap, .{}); - try test_mul_wrap.testInts(); - try test_mul_wrap.testIntVectors(); -} - -inline fn multiply(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs * rhs) { - return lhs * rhs; -} -test multiply { - const test_multiply = binary(multiply, .{}); - try test_multiply.testFloats(); - try test_multiply.testFloatVectors(); -} - -inline fn divide(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs / rhs) { - return lhs / rhs; -} -test divide { - const test_divide = binary(divide, .{ .compare = .approx }); - try test_divide.testFloats(); - try test_divide.testFloatVectors(); -} - -inline fn divTrunc(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divTrunc(lhs, rhs)) { - return @divTrunc(lhs, rhs); -} -test divTrunc { - const test_div_trunc = binary(divTrunc, .{ .compare = .approx_int }); - try test_div_trunc.testInts(); - try test_div_trunc.testIntVectors(); - try test_div_trunc.testFloats(); - try test_div_trunc.testFloatVectors(); -} - -inline fn divFloor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@divFloor(lhs, rhs)) { - return @divFloor(lhs, rhs); -} -test divFloor { - const test_div_floor = binary(divFloor, .{ .compare = .approx_int }); - try test_div_floor.testFloats(); - try test_div_floor.testFloatVectors(); -} - -inline fn rem(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@rem(lhs, rhs)) { - return @rem(lhs, rhs); -} -test rem { - const test_rem = binary(rem, .{}); - try test_rem.testInts(); - try test_rem.testIntVectors(); - try test_rem.testFloats(); - try test_rem.testFloatVectors(); -} - -inline fn mod(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mod(lhs, rhs)) { - // workaround llvm backend bugs - if (@inComptime()) { - const scalarMod = struct { - fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) { - const scalar_rem = @rem(scalar_lhs, scalar_rhs); - return if (scalar_rem == 0 or math.signbit(scalar_rem) == math.signbit(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs; - } - }.scalarMod; - switch (@typeInfo(Type)) { - else => return scalarMod(lhs, rhs), - .vector => |info| { - var res: Type = undefined; - inline for (0..info.len) |i| res[i] = scalarMod(lhs[i], rhs[i]); - return res; - }, - } - } - return @mod(lhs, rhs); -} -test mod { - const test_mod = binary(mod, .{}); - try test_mod.testFloats(); - try test_mod.testFloatVectors(); -} - -inline fn bitNot(comptime Type: type, rhs: Type) @TypeOf(~rhs) { - return ~rhs; -} -test bitNot { - const test_bit_not = unary(bitNot, .{}); - try test_bit_not.testInts(); - try test_bit_not.testIntVectors(); -} - -inline fn clz(comptime Type: type, rhs: Type) @TypeOf(@clz(rhs)) { - return @clz(rhs); -} -test clz { - const test_clz = unary(clz, .{}); - try test_clz.testInts(); - try test_clz.testIntVectors(); -} - -inline fn ctz(comptime Type: type, rhs: Type) @TypeOf(@ctz(rhs)) { - return @ctz(rhs); -} -test ctz { - const test_ctz = unary(ctz, .{}); - try test_ctz.testInts(); -} - -inline fn popCount(comptime Type: type, rhs: Type) @TypeOf(@popCount(rhs)) { - return @popCount(rhs); -} -test popCount { - const test_pop_count = unary(popCount, .{}); - try test_pop_count.testInts(); -} - -inline fn byteSwap(comptime Type: type, rhs: Type) RoundBitsUp(Type, 8) { - return @byteSwap(@as(RoundBitsUp(Type, 8), rhs)); -} -test byteSwap { - const test_byte_swap = unary(byteSwap, .{}); - try test_byte_swap.testInts(); -} - -inline fn bitReverse(comptime Type: type, rhs: Type) @TypeOf(@bitReverse(rhs)) { - return @bitReverse(rhs); -} -test bitReverse { - const test_bit_reverse = unary(bitReverse, .{}); - try test_bit_reverse.testInts(); -} - -inline fn sqrt(comptime Type: type, rhs: Type) @TypeOf(@sqrt(rhs)) { - return @sqrt(rhs); -} -test sqrt { - const test_sqrt = unary(sqrt, .{ .libc_name = "sqrt", .compare = .approx }); - try test_sqrt.testFloats(); - try test_sqrt.testFloatVectors(); -} - -inline fn sin(comptime Type: type, rhs: Type) @TypeOf(@sin(rhs)) { - return @sin(rhs); -} -test sin { - const test_sin = unary(sin, .{ .libc_name = "sin", .compare = .strict }); - try test_sin.testFloats(); - try test_sin.testFloatVectors(); -} - -inline fn cos(comptime Type: type, rhs: Type) @TypeOf(@cos(rhs)) { - return @cos(rhs); -} -test cos { - const test_cos = unary(cos, .{ .libc_name = "cos", .compare = .strict }); - try test_cos.testFloats(); - try test_cos.testFloatVectors(); -} - -inline fn tan(comptime Type: type, rhs: Type) @TypeOf(@tan(rhs)) { - return @tan(rhs); -} -test tan { - const test_tan = unary(tan, .{ .libc_name = "tan", .compare = .strict }); - try test_tan.testFloats(); - try test_tan.testFloatVectors(); -} - -inline fn exp(comptime Type: type, rhs: Type) @TypeOf(@exp(rhs)) { - return @exp(rhs); -} -test exp { - const test_exp = unary(exp, .{ .libc_name = "exp", .compare = .strict }); - try test_exp.testFloats(); - try test_exp.testFloatVectors(); -} - -inline fn exp2(comptime Type: type, rhs: Type) @TypeOf(@exp2(rhs)) { - return @exp2(rhs); -} -test exp2 { - const test_exp2 = unary(exp2, .{ .libc_name = "exp2", .compare = .strict }); - try test_exp2.testFloats(); - try test_exp2.testFloatVectors(); -} - -inline fn log(comptime Type: type, rhs: Type) @TypeOf(@log(rhs)) { - return @log(rhs); -} -test log { - const test_log = unary(log, .{ .libc_name = "log", .compare = .strict }); - try test_log.testFloats(); - try test_log.testFloatVectors(); -} - -inline fn log2(comptime Type: type, rhs: Type) @TypeOf(@log2(rhs)) { - return @log2(rhs); -} -test log2 { - const test_log2 = unary(log2, .{ .libc_name = "log2", .compare = .strict }); - try test_log2.testFloats(); - try test_log2.testFloatVectors(); -} - -inline fn log10(comptime Type: type, rhs: Type) @TypeOf(@log10(rhs)) { - return @log10(rhs); -} -test log10 { - const test_log10 = unary(log10, .{ .libc_name = "log10", .compare = .strict }); - try test_log10.testFloats(); - try test_log10.testFloatVectors(); -} - -inline fn abs(comptime Type: type, rhs: Type) @TypeOf(@abs(rhs)) { - return @abs(rhs); -} -test abs { - const test_abs = unary(abs, .{ .compare = .strict }); - try test_abs.testInts(); - try test_abs.testIntVectors(); - try test_abs.testFloats(); - try test_abs.testFloatVectors(); -} - -inline fn floor(comptime Type: type, rhs: Type) @TypeOf(@floor(rhs)) { - return @floor(rhs); -} -test floor { - const test_floor = unary(floor, .{ .libc_name = "floor", .compare = .strict }); - try test_floor.testFloats(); - try test_floor.testFloatVectors(); -} - -inline fn ceil(comptime Type: type, rhs: Type) @TypeOf(@ceil(rhs)) { - return @ceil(rhs); -} -test ceil { - const test_ceil = unary(ceil, .{ .libc_name = "ceil", .compare = .strict }); - try test_ceil.testFloats(); - try test_ceil.testFloatVectors(); -} - -inline fn round(comptime Type: type, rhs: Type) @TypeOf(@round(rhs)) { - return @round(rhs); -} -test round { - const test_round = unary(round, .{ .libc_name = "round", .compare = .strict }); - try test_round.testFloats(); - try test_round.testFloatVectors(); -} - -inline fn trunc(comptime Type: type, rhs: Type) @TypeOf(@trunc(rhs)) { - return @trunc(rhs); -} -test trunc { - const test_trunc = unary(trunc, .{ .libc_name = "trunc", .compare = .strict }); - try test_trunc.testFloats(); - try test_trunc.testFloatVectors(); -} - -inline fn negate(comptime Type: type, rhs: Type) @TypeOf(-rhs) { - return -rhs; -} -test negate { - const test_negate = unary(negate, .{ .compare = .strict }); - try test_negate.testFloats(); - try test_negate.testFloatVectors(); -} - -inline fn intCast(comptime Result: type, comptime Type: type, rhs: Type, comptime ct_rhs: Type) Result { - @setRuntimeSafety(false); // TODO - const res_info = switch (@typeInfo(Result)) { - .int => |info| info, - .vector => |info| @typeInfo(info.child).int, - else => @compileError(@typeName(Result)), - }; - const rhs_info = @typeInfo(Scalar(Type)).int; - const min_bits = @min(res_info.bits, rhs_info.bits); - return @intCast(switch (@as(union(enum) { - shift: std.math.Log2Int(Scalar(Type)), - mask: std.math.Log2IntCeil(Scalar(Type)), - }, switch (res_info.signedness) { - .signed => switch (rhs_info.signedness) { - .signed => .{ .shift = rhs_info.bits - min_bits }, - .unsigned => .{ .mask = min_bits - @intFromBool(res_info.bits <= rhs_info.bits) }, - }, - .unsigned => switch (rhs_info.signedness) { - .signed => .{ .mask = min_bits - @intFromBool(res_info.bits >= rhs_info.bits) }, - .unsigned => .{ .mask = min_bits }, - }, - })) { - // TODO: if (bits == 0) rhs else rhs >> bits, - .shift => |bits| if (bits == 0) rhs else switch (@typeInfo(Type)) { - .int => if (ct_rhs < 0) - rhs | std.math.minInt(Type) >> bits - else - rhs & std.math.maxInt(Type) >> bits, - .vector => rhs | @select( - Scalar(Type), - ct_rhs < splat(Type, 0), - splat(Type, std.math.minInt(Scalar(Type)) >> bits), - splat(Type, 0), - ) & ~@select( - Scalar(Type), - ct_rhs >= splat(Type, 0), - splat(Type, std.math.minInt(Scalar(Type)) >> bits), - splat(Type, 0), - ), - else => comptime unreachable, - }, - .mask => |bits| if (bits == rhs_info.bits) rhs else rhs & splat(Type, (1 << bits) - 1), - }); -} -test intCast { - const test_int_cast = cast(intCast, .{}); - try test_int_cast.testInts(); - try test_int_cast.testIntVectors(); -} - -inline fn truncate(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { - return if (@typeInfo(Scalar(Result)).int.bits <= @typeInfo(Scalar(Type)).int.bits) @truncate(rhs) else rhs; -} -test truncate { - const test_truncate = cast(truncate, .{}); - try test_truncate.testSameSignednessInts(); - try test_truncate.testSameSignednessIntVectors(); -} - -inline fn floatCast(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { - return @floatCast(rhs); -} -test floatCast { - const test_float_cast = cast(floatCast, .{ .compare = .strict }); - try test_float_cast.testFloats(); - try test_float_cast.testFloatVectors(); -} - -inline fn intFromFloat(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { - return @intFromFloat(rhs); -} -test intFromFloat { - const test_int_from_float = cast(intFromFloat, .{ .compare = .strict }); - try test_int_from_float.testIntsFromFloats(); - try test_int_from_float.testIntVectorsFromFloatVectors(); -} - -inline fn floatFromInt(comptime Result: type, comptime Type: type, rhs: Type, comptime _: Type) Result { - return @floatFromInt(rhs); -} -test floatFromInt { - const test_float_from_int = cast(floatFromInt, .{ .compare = .strict }); - try test_float_from_int.testFloatsFromInts(); - try test_float_from_int.testFloatVectorsFromIntVectors(); -} - -inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) { - return lhs == rhs; -} -test equal { - const test_equal = binary(equal, .{}); - try test_equal.testInts(); - try test_equal.testFloats(); -} - -inline fn notEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs != rhs) { - return lhs != rhs; -} -test notEqual { - const test_not_equal = binary(notEqual, .{}); - try test_not_equal.testInts(); - try test_not_equal.testFloats(); -} - -inline fn lessThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs < rhs) { - return lhs < rhs; -} -test lessThan { - const test_less_than = binary(lessThan, .{}); - try test_less_than.testInts(); - try test_less_than.testFloats(); -} - -inline fn lessThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs <= rhs) { - return lhs <= rhs; -} -test lessThanOrEqual { - const test_less_than_or_equal = binary(lessThanOrEqual, .{}); - try test_less_than_or_equal.testInts(); - try test_less_than_or_equal.testFloats(); -} - -inline fn greaterThan(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs > rhs) { - return lhs > rhs; -} -test greaterThan { - const test_greater_than = binary(greaterThan, .{}); - try test_greater_than.testInts(); - try test_greater_than.testFloats(); -} - -inline fn greaterThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs >= rhs) { - return lhs >= rhs; -} -test greaterThanOrEqual { - const test_greater_than_or_equal = binary(greaterThanOrEqual, .{}); - try test_greater_than_or_equal.testInts(); - try test_greater_than_or_equal.testFloats(); -} - -inline fn bitAnd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs & rhs) { - return lhs & rhs; -} -test bitAnd { - const test_bit_and = binary(bitAnd, .{}); - try test_bit_and.testInts(); - try test_bit_and.testIntVectors(); -} - -inline fn bitOr(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs | rhs) { - return lhs | rhs; -} -test bitOr { - const test_bit_or = binary(bitOr, .{}); - try test_bit_or.testInts(); - try test_bit_or.testIntVectors(); -} - -inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs ^ rhs) { - return lhs ^ rhs; -} -test bitXor { - const test_bit_xor = binary(bitXor, .{}); - try test_bit_xor.testInts(); - try test_bit_xor.testIntVectors(); -} - -inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type { - return @min(lhs, rhs); -} -test min { - const test_min = binary(min, .{}); - try test_min.testInts(); - try test_min.testIntVectors(); - try test_min.testFloats(); - try test_min.testFloatVectors(); -} - -inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type { - return @max(lhs, rhs); -} -test max { - const test_max = binary(max, .{}); - try test_max.testInts(); - try test_max.testIntVectors(); - try test_max.testFloats(); - try test_max.testFloatVectors(); -} - -inline fn nullIsNull(comptime Type: type, _: Type) bool { - return runtime(?Type, null) == null; -} -test nullIsNull { - const test_null_is_null = unary(nullIsNull, .{}); - try test_null_is_null.testIntTypes(); - try test_null_is_null.testIntVectorTypes(); - try test_null_is_null.testFloatTypes(); - try test_null_is_null.testFloatVectorTypes(); -} - -inline fn nullIsNotNull(comptime Type: type, _: Type) bool { - return runtime(?Type, null) != null; -} -test nullIsNotNull { - const test_null_is_not_null = unary(nullIsNotNull, .{}); - try test_null_is_not_null.testIntTypes(); - try test_null_is_not_null.testIntVectorTypes(); - try test_null_is_not_null.testFloatTypes(); - try test_null_is_not_null.testFloatVectorTypes(); -} - -inline fn optionalIsNull(comptime Type: type, lhs: Type) bool { - return @as(?Type, lhs) == null; -} -test optionalIsNull { - const test_optional_is_null = unary(optionalIsNull, .{}); - try test_optional_is_null.testInts(); - try test_optional_is_null.testFloats(); -} - -inline fn optionalIsNotNull(comptime Type: type, lhs: Type) bool { - return @as(?Type, lhs) != null; -} -test optionalIsNotNull { - const test_optional_is_not_null = unary(optionalIsNotNull, .{}); - try test_optional_is_not_null.testInts(); - try test_optional_is_not_null.testFloats(); -} - -inline fn nullEqualNull(comptime Type: type, _: Type) bool { - return runtime(?Type, null) == runtime(?Type, null); -} -test nullEqualNull { - const test_null_equal_null = unary(nullEqualNull, .{}); - try test_null_equal_null.testIntTypes(); - try test_null_equal_null.testFloatTypes(); -} - -inline fn nullNotEqualNull(comptime Type: type, _: Type) bool { - return runtime(?Type, null) != runtime(?Type, null); -} -test nullNotEqualNull { - const test_null_not_equal_null = unary(nullNotEqualNull, .{}); - try test_null_not_equal_null.testIntTypes(); - try test_null_not_equal_null.testFloatTypes(); -} - -inline fn optionalEqualNull(comptime Type: type, lhs: Type) bool { - return lhs == runtime(?Type, null); -} -test optionalEqualNull { - const test_optional_equal_null = unary(optionalEqualNull, .{}); - try test_optional_equal_null.testInts(); - try test_optional_equal_null.testFloats(); -} - -inline fn optionalNotEqualNull(comptime Type: type, lhs: Type) bool { - return lhs != runtime(?Type, null); -} -test optionalNotEqualNull { - const test_optional_not_equal_null = unary(optionalIsNotNull, .{}); - try test_optional_not_equal_null.testInts(); - try test_optional_not_equal_null.testFloats(); -} - -inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool { - if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636 - return @as(?Type, lhs) == rhs; -} -test optionalsEqual { - const test_optionals_equal = binary(optionalsEqual, .{}); - try test_optionals_equal.testInts(); - try test_optionals_equal.testFloats(); -} - -inline fn optionalsNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool { - if (@inComptime()) return lhs != rhs; // workaround https://github.com/ziglang/zig/issues/22636 - return lhs != @as(?Type, rhs); -} -test optionalsNotEqual { - const test_optionals_not_equal = binary(optionalsNotEqual, .{}); - try test_optionals_not_equal.testInts(); - try test_optionals_not_equal.testFloats(); -} - -inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(@mulAdd(Type, lhs, rhs, rhs)) { - return @mulAdd(Type, lhs, rhs, rhs); -} -test mulAdd { - const test_mul_add = binary(mulAdd, .{ .compare = .approx }); - try test_mul_add.testFloats(); - try test_mul_add.testFloatVectors(); -} diff --git a/test/behavior/x86_64/unary.zig b/test/behavior/x86_64/unary.zig new file mode 100644 index 0000000000..e5fe4f5361 --- /dev/null +++ b/test/behavior/x86_64/unary.zig @@ -0,0 +1,1820 @@ +const checkExpected = math.checkExpected; +const Compare = math.Compare; +const fmax = math.fmax; +const fmin = math.fmin; +const Gpr = math.Gpr; +const inf = math.inf; +const math = @import("math.zig"); +const nan = math.nan; +const RoundBitsUp = math.RoundBitsUp; +const Scalar = math.Scalar; +const Sse = math.Sse; +const tmin = math.tmin; + +inline fn runtime(comptime Type: type, comptime value: Type) Type { + if (@inComptime()) return value; + return struct { + var variable: Type = value; + }.variable; +} + +fn unary(comptime op: anytype, comptime opts: struct { + libc_name: ?[]const u8 = null, + compare: Compare = .relaxed, +}) type { + return struct { + // noinline so that `mem_arg` is on the stack + noinline fn testArgKinds( + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Gpr, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + _: Sse, + comptime Type: type, + comptime imm_arg: Type, + mem_arg: Type, + ) !void { + const expected = expected: { + if (opts.libc_name) |libc_name| libc: { + const libc_func = @extern(*const fn (Scalar(Type)) callconv(.c) Scalar(Type), .{ + .name = switch (Scalar(Type)) { + f16 => "__" ++ libc_name ++ "h", + f32 => libc_name ++ "f", + f64 => libc_name, + f80 => "__" ++ libc_name ++ "x", + f128 => libc_name ++ "q", + else => break :libc, + }, + }); + switch (@typeInfo(Type)) { + else => break :expected libc_func(imm_arg), + .vector => |vector| { + var res: Type = undefined; + inline for (0..vector.len) |i| res[i] = libc_func(imm_arg[i]); + break :expected res; + }, + } + } + break :expected comptime op(Type, imm_arg); + }; + var reg_arg = mem_arg; + _ = .{®_arg}; + try checkExpected(expected, op(Type, reg_arg), opts.compare); + try checkExpected(expected, op(Type, mem_arg), opts.compare); + if (opts.libc_name == null) try checkExpected(expected, op(Type, imm_arg), opts.compare); + } + // noinline for a more helpful stack trace + noinline fn testArgs(comptime Type: type, comptime imm_arg: Type) !void { + try testArgKinds( + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + undefined, + Type, + imm_arg, + imm_arg, + ); + } + fn testIntTypes() !void { + try testArgs(i1, undefined); + try testArgs(u1, undefined); + try testArgs(i2, undefined); + try testArgs(u2, undefined); + try testArgs(i3, undefined); + try testArgs(u3, undefined); + try testArgs(i4, undefined); + try testArgs(u4, undefined); + try testArgs(i5, undefined); + try testArgs(u5, undefined); + try testArgs(i7, undefined); + try testArgs(u7, undefined); + try testArgs(i8, undefined); + try testArgs(u8, undefined); + try testArgs(i9, undefined); + try testArgs(u9, undefined); + try testArgs(i15, undefined); + try testArgs(u15, undefined); + try testArgs(i16, undefined); + try testArgs(u16, undefined); + try testArgs(i17, undefined); + try testArgs(u17, undefined); + try testArgs(i31, undefined); + try testArgs(u31, undefined); + try testArgs(i32, undefined); + try testArgs(u32, undefined); + try testArgs(i33, undefined); + try testArgs(u33, undefined); + try testArgs(i63, undefined); + try testArgs(u63, undefined); + try testArgs(i64, undefined); + try testArgs(u64, undefined); + try testArgs(i65, undefined); + try testArgs(u65, undefined); + try testArgs(i95, undefined); + try testArgs(u95, undefined); + try testArgs(i96, undefined); + try testArgs(u96, undefined); + try testArgs(i97, undefined); + try testArgs(u97, undefined); + try testArgs(i127, undefined); + try testArgs(u127, undefined); + try testArgs(i128, undefined); + try testArgs(u128, undefined); + try testArgs(i129, undefined); + try testArgs(u129, undefined); + try testArgs(i159, undefined); + try testArgs(u159, undefined); + try testArgs(i160, undefined); + try testArgs(u160, undefined); + try testArgs(i161, undefined); + try testArgs(u161, undefined); + try testArgs(i191, undefined); + try testArgs(u191, undefined); + try testArgs(i192, undefined); + try testArgs(u192, undefined); + try testArgs(i193, undefined); + try testArgs(u193, undefined); + try testArgs(i223, undefined); + try testArgs(u223, undefined); + try testArgs(i224, undefined); + try testArgs(u224, undefined); + try testArgs(i225, undefined); + try testArgs(u225, undefined); + try testArgs(i255, undefined); + try testArgs(u255, undefined); + try testArgs(i256, undefined); + try testArgs(u256, undefined); + try testArgs(i257, undefined); + try testArgs(u257, undefined); + try testArgs(i511, undefined); + try testArgs(u511, undefined); + try testArgs(i512, undefined); + try testArgs(u512, undefined); + try testArgs(i513, undefined); + try testArgs(u513, undefined); + try testArgs(i1023, undefined); + try testArgs(u1023, undefined); + try testArgs(i1024, undefined); + try testArgs(u1024, undefined); + try testArgs(i1025, undefined); + try testArgs(u1025, undefined); + } + fn testInts() !void { + try testArgs(i1, -1); + try testArgs(i1, 0); + try testArgs(u1, 0); + try testArgs(u1, 1 << 0); + + try testArgs(i2, -1 << 1); + try testArgs(i2, -1); + try testArgs(i2, 0); + try testArgs(u2, 0); + try testArgs(u2, 1 << 0); + try testArgs(u2, 1 << 1); + + try testArgs(i3, -1 << 2); + try testArgs(i3, -1); + try testArgs(i3, 0); + try testArgs(u3, 0); + try testArgs(u3, 1 << 0); + try testArgs(u3, 1 << 1); + try testArgs(u3, 1 << 2); + + try testArgs(i4, -1 << 3); + try testArgs(i4, -1); + try testArgs(i4, 0); + try testArgs(u4, 0); + try testArgs(u4, 1 << 0); + try testArgs(u4, 1 << 1); + try testArgs(u4, 1 << 2); + try testArgs(u4, 1 << 3); + + try testArgs(i5, -1 << 4); + try testArgs(i5, -1); + try testArgs(i5, 0); + try testArgs(u5, 0); + try testArgs(u5, 1 << 0); + try testArgs(u5, 1 << 1); + try testArgs(u5, 1 << 3); + try testArgs(u5, 1 << 4); + + try testArgs(i7, -1 << 6); + try testArgs(i7, -1); + try testArgs(i7, 0); + try testArgs(u7, 0); + try testArgs(u7, 1 << 0); + try testArgs(u7, 1 << 1); + try testArgs(u7, 1 << 5); + try testArgs(u7, 1 << 6); + + try testArgs(i8, -1 << 7); + try testArgs(i8, -1); + try testArgs(i8, 0); + try testArgs(u8, 0); + try testArgs(u8, 1 << 0); + try testArgs(u8, 1 << 1); + try testArgs(u8, 1 << 6); + try testArgs(u8, 1 << 7); + + try testArgs(i9, -1 << 8); + try testArgs(i9, -1); + try testArgs(i9, 0); + try testArgs(u9, 0); + try testArgs(u9, 1 << 0); + try testArgs(u9, 1 << 1); + try testArgs(u9, 1 << 7); + try testArgs(u9, 1 << 8); + + try testArgs(i15, -1 << 14); + try testArgs(i15, -1); + try testArgs(i15, 0); + try testArgs(u15, 0); + try testArgs(u15, 1 << 0); + try testArgs(u15, 1 << 1); + try testArgs(u15, 1 << 13); + try testArgs(u15, 1 << 14); + + try testArgs(i16, -1 << 15); + try testArgs(i16, -1); + try testArgs(i16, 0); + try testArgs(u16, 0); + try testArgs(u16, 1 << 0); + try testArgs(u16, 1 << 1); + try testArgs(u16, 1 << 14); + try testArgs(u16, 1 << 15); + + try testArgs(i17, -1 << 16); + try testArgs(i17, -1); + try testArgs(i17, 0); + try testArgs(u17, 0); + try testArgs(u17, 1 << 0); + try testArgs(u17, 1 << 1); + try testArgs(u17, 1 << 15); + try testArgs(u17, 1 << 16); + + try testArgs(i31, -1 << 30); + try testArgs(i31, -1); + try testArgs(i31, 0); + try testArgs(u31, 0); + try testArgs(u31, 1 << 0); + try testArgs(u31, 1 << 1); + try testArgs(u31, 1 << 29); + try testArgs(u31, 1 << 30); + + try testArgs(i32, -1 << 31); + try testArgs(i32, -1); + try testArgs(i32, 0); + try testArgs(u32, 0); + try testArgs(u32, 1 << 0); + try testArgs(u32, 1 << 1); + try testArgs(u32, 1 << 30); + try testArgs(u32, 1 << 31); + + try testArgs(i33, -1 << 32); + try testArgs(i33, -1); + try testArgs(i33, 0); + try testArgs(u33, 0); + try testArgs(u33, 1 << 0); + try testArgs(u33, 1 << 1); + try testArgs(u33, 1 << 31); + try testArgs(u33, 1 << 32); + + try testArgs(i63, -1 << 62); + try testArgs(i63, -1); + try testArgs(i63, 0); + try testArgs(u63, 0); + try testArgs(u63, 1 << 0); + try testArgs(u63, 1 << 1); + try testArgs(u63, 1 << 61); + try testArgs(u63, 1 << 62); + + try testArgs(i64, -1 << 63); + try testArgs(i64, -1); + try testArgs(i64, 0); + try testArgs(u64, 0); + try testArgs(u64, 1 << 0); + try testArgs(u64, 1 << 1); + try testArgs(u64, 1 << 62); + try testArgs(u64, 1 << 63); + + try testArgs(i65, -1 << 64); + try testArgs(i65, -1); + try testArgs(i65, 0); + try testArgs(u65, 0); + try testArgs(u65, 1 << 0); + try testArgs(u65, 1 << 1); + try testArgs(u65, 1 << 63); + try testArgs(u65, 1 << 64); + + try testArgs(i95, -1 << 94); + try testArgs(i95, -1); + try testArgs(i95, 0); + try testArgs(u95, 0); + try testArgs(u95, 1 << 0); + try testArgs(u95, 1 << 1); + try testArgs(u95, 1 << 93); + try testArgs(u95, 1 << 94); + + try testArgs(i96, -1 << 95); + try testArgs(i96, -1); + try testArgs(i96, 0); + try testArgs(u96, 0); + try testArgs(u96, 1 << 0); + try testArgs(u96, 1 << 1); + try testArgs(u96, 1 << 94); + try testArgs(u96, 1 << 95); + + try testArgs(i97, -1 << 96); + try testArgs(i97, -1); + try testArgs(i97, 0); + try testArgs(u97, 0); + try testArgs(u97, 1 << 0); + try testArgs(u97, 1 << 1); + try testArgs(u97, 1 << 95); + try testArgs(u97, 1 << 96); + + try testArgs(i127, -1 << 126); + try testArgs(i127, -1); + try testArgs(i127, 0); + try testArgs(u127, 0); + try testArgs(u127, 1 << 0); + try testArgs(u127, 1 << 1); + try testArgs(u127, 1 << 125); + try testArgs(u127, 1 << 126); + + try testArgs(i128, -1 << 127); + try testArgs(i128, -1); + try testArgs(i128, 0); + try testArgs(u128, 0); + try testArgs(u128, 1 << 0); + try testArgs(u128, 1 << 1); + try testArgs(u128, 1 << 126); + try testArgs(u128, 1 << 127); + + try testArgs(i129, -1 << 128); + try testArgs(i129, -1); + try testArgs(i129, 0); + try testArgs(u129, 0); + try testArgs(u129, 1 << 0); + try testArgs(u129, 1 << 1); + try testArgs(u129, 1 << 127); + try testArgs(u129, 1 << 128); + + try testArgs(i159, -1 << 158); + try testArgs(i159, -1); + try testArgs(i159, 0); + try testArgs(u159, 0); + try testArgs(u159, 1 << 0); + try testArgs(u159, 1 << 1); + try testArgs(u159, 1 << 157); + try testArgs(u159, 1 << 158); + + try testArgs(i160, -1 << 159); + try testArgs(i160, -1); + try testArgs(i160, 0); + try testArgs(u160, 0); + try testArgs(u160, 1 << 0); + try testArgs(u160, 1 << 1); + try testArgs(u160, 1 << 158); + try testArgs(u160, 1 << 159); + + try testArgs(i161, -1 << 160); + try testArgs(i161, -1); + try testArgs(i161, 0); + try testArgs(u161, 0); + try testArgs(u161, 1 << 0); + try testArgs(u161, 1 << 1); + try testArgs(u161, 1 << 159); + try testArgs(u161, 1 << 160); + + try testArgs(i191, -1 << 190); + try testArgs(i191, -1); + try testArgs(i191, 0); + try testArgs(u191, 0); + try testArgs(u191, 1 << 0); + try testArgs(u191, 1 << 1); + try testArgs(u191, 1 << 189); + try testArgs(u191, 1 << 190); + + try testArgs(i192, -1 << 191); + try testArgs(i192, -1); + try testArgs(i192, 0); + try testArgs(u192, 0); + try testArgs(u192, 1 << 0); + try testArgs(u192, 1 << 1); + try testArgs(u192, 1 << 190); + try testArgs(u192, 1 << 191); + + try testArgs(i193, -1 << 192); + try testArgs(i193, -1); + try testArgs(i193, 0); + try testArgs(u193, 0); + try testArgs(u193, 1 << 0); + try testArgs(u193, 1 << 1); + try testArgs(u193, 1 << 191); + try testArgs(u193, 1 << 192); + + try testArgs(i223, -1 << 222); + try testArgs(i223, -1); + try testArgs(i223, 0); + try testArgs(u223, 0); + try testArgs(u223, 1 << 0); + try testArgs(u223, 1 << 1); + try testArgs(u223, 1 << 221); + try testArgs(u223, 1 << 222); + + try testArgs(i224, -1 << 223); + try testArgs(i224, -1); + try testArgs(i224, 0); + try testArgs(u224, 0); + try testArgs(u224, 1 << 0); + try testArgs(u224, 1 << 1); + try testArgs(u224, 1 << 222); + try testArgs(u224, 1 << 223); + + try testArgs(i225, -1 << 224); + try testArgs(i225, -1); + try testArgs(i225, 0); + try testArgs(u225, 0); + try testArgs(u225, 1 << 0); + try testArgs(u225, 1 << 1); + try testArgs(u225, 1 << 223); + try testArgs(u225, 1 << 224); + + try testArgs(i255, -1 << 254); + try testArgs(i255, -1); + try testArgs(i255, 0); + try testArgs(u255, 0); + try testArgs(u255, 1 << 0); + try testArgs(u255, 1 << 1); + try testArgs(u255, 1 << 253); + try testArgs(u255, 1 << 254); + + try testArgs(i256, -1 << 255); + try testArgs(i256, -1); + try testArgs(i256, 0); + try testArgs(u256, 0); + try testArgs(u256, 1 << 0); + try testArgs(u256, 1 << 1); + try testArgs(u256, 1 << 254); + try testArgs(u256, 1 << 255); + + try testArgs(i257, -1 << 256); + try testArgs(i257, -1); + try testArgs(i257, 0); + try testArgs(u257, 0); + try testArgs(u257, 1 << 0); + try testArgs(u257, 1 << 1); + try testArgs(u257, 1 << 255); + try testArgs(u257, 1 << 256); + + try testArgs(i383, -1 << 382); + try testArgs(i383, -1); + try testArgs(i383, 0); + try testArgs(u383, 0); + try testArgs(u383, 1 << 0); + try testArgs(u383, 1 << 1); + try testArgs(u383, 1 << 381); + try testArgs(u383, 1 << 382); + + try testArgs(i384, -1 << 383); + try testArgs(i384, -1); + try testArgs(i384, 0); + try testArgs(u384, 0); + try testArgs(u384, 1 << 0); + try testArgs(u384, 1 << 1); + try testArgs(u384, 1 << 382); + try testArgs(u384, 1 << 383); + + try testArgs(i385, -1 << 384); + try testArgs(i385, -1); + try testArgs(i385, 0); + try testArgs(u385, 0); + try testArgs(u385, 1 << 0); + try testArgs(u385, 1 << 1); + try testArgs(u385, 1 << 383); + try testArgs(u385, 1 << 384); + + try testArgs(i511, -1 << 510); + try testArgs(i511, -1); + try testArgs(i511, 0); + try testArgs(u511, 0); + try testArgs(u511, 1 << 0); + try testArgs(u511, 1 << 1); + try testArgs(u511, 1 << 509); + try testArgs(u511, 1 << 510); + + try testArgs(i512, -1 << 511); + try testArgs(i512, -1); + try testArgs(i512, 0); + try testArgs(u512, 0); + try testArgs(u512, 1 << 0); + try testArgs(u512, 1 << 1); + try testArgs(u512, 1 << 510); + try testArgs(u512, 1 << 511); + + try testArgs(i513, -1 << 512); + try testArgs(i513, -1); + try testArgs(i513, 0); + try testArgs(u513, 0); + try testArgs(u513, 1 << 0); + try testArgs(u513, 1 << 1); + try testArgs(u513, 1 << 511); + try testArgs(u513, 1 << 512); + + try testArgs(i1023, -1 << 1022); + try testArgs(i1023, -1); + try testArgs(i1023, 0); + try testArgs(u1023, 0); + try testArgs(u1023, 1 << 0); + try testArgs(u1023, 1 << 1); + try testArgs(u1023, 1 << 1021); + try testArgs(u1023, 1 << 1022); + + try testArgs(i1024, -1 << 1023); + try testArgs(i1024, -1); + try testArgs(i1024, 0); + try testArgs(u1024, 0); + try testArgs(u1024, 1 << 0); + try testArgs(u1024, 1 << 1); + try testArgs(u1024, 1 << 1022); + try testArgs(u1024, 1 << 1023); + + try testArgs(i1025, -1 << 1024); + try testArgs(i1025, -1); + try testArgs(i1025, 0); + try testArgs(u1025, 0); + try testArgs(u1025, 1 << 0); + try testArgs(u1025, 1 << 1); + try testArgs(u1025, 1 << 1023); + try testArgs(u1025, 1 << 1024); + } + fn testFloatTypes() !void { + try testArgs(f16, undefined); + try testArgs(f32, undefined); + try testArgs(f64, undefined); + try testArgs(f80, undefined); + try testArgs(f128, undefined); + } + fn testFloats() !void { + try testArgs(f16, -nan(f16)); + try testArgs(f16, -inf(f16)); + try testArgs(f16, -fmax(f16)); + try testArgs(f16, -1e1); + try testArgs(f16, -1e0); + try testArgs(f16, -1e-1); + try testArgs(f16, -fmin(f16)); + try testArgs(f16, -tmin(f16)); + try testArgs(f16, -0.0); + try testArgs(f16, 0.0); + try testArgs(f16, tmin(f16)); + try testArgs(f16, fmin(f16)); + try testArgs(f16, 1e-1); + try testArgs(f16, 1e0); + try testArgs(f16, 1e1); + try testArgs(f16, fmax(f16)); + try testArgs(f16, inf(f16)); + try testArgs(f16, nan(f16)); + + try testArgs(f32, -nan(f32)); + try testArgs(f32, -inf(f32)); + try testArgs(f32, -fmax(f32)); + try testArgs(f32, -1e1); + try testArgs(f32, -1e0); + try testArgs(f32, -1e-1); + try testArgs(f32, -fmin(f32)); + try testArgs(f32, -tmin(f32)); + try testArgs(f32, -0.0); + try testArgs(f32, 0.0); + try testArgs(f32, tmin(f32)); + try testArgs(f32, fmin(f32)); + try testArgs(f32, 1e-1); + try testArgs(f32, 1e0); + try testArgs(f32, 1e1); + try testArgs(f32, fmax(f32)); + try testArgs(f32, inf(f32)); + try testArgs(f32, nan(f32)); + + try testArgs(f64, -nan(f64)); + try testArgs(f64, -inf(f64)); + try testArgs(f64, -fmax(f64)); + try testArgs(f64, -1e1); + try testArgs(f64, -1e0); + try testArgs(f64, -1e-1); + try testArgs(f64, -fmin(f64)); + try testArgs(f64, -tmin(f64)); + try testArgs(f64, -0.0); + try testArgs(f64, 0.0); + try testArgs(f64, tmin(f64)); + try testArgs(f64, fmin(f64)); + try testArgs(f64, 1e-1); + try testArgs(f64, 1e0); + try testArgs(f64, 1e1); + try testArgs(f64, fmax(f64)); + try testArgs(f64, inf(f64)); + try testArgs(f64, nan(f64)); + + try testArgs(f80, -nan(f80)); + try testArgs(f80, -inf(f80)); + try testArgs(f80, -fmax(f80)); + try testArgs(f80, -1e1); + try testArgs(f80, -1e0); + try testArgs(f80, -1e-1); + try testArgs(f80, -fmin(f80)); + try testArgs(f80, -tmin(f80)); + try testArgs(f80, -0.0); + try testArgs(f80, 0.0); + try testArgs(f80, tmin(f80)); + try testArgs(f80, fmin(f80)); + try testArgs(f80, 1e-1); + try testArgs(f80, 1e0); + try testArgs(f80, 1e1); + try testArgs(f80, fmax(f80)); + try testArgs(f80, inf(f80)); + try testArgs(f80, nan(f80)); + + try testArgs(f128, -nan(f128)); + try testArgs(f128, -inf(f128)); + try testArgs(f128, -fmax(f128)); + try testArgs(f128, -1e1); + try testArgs(f128, -1e0); + try testArgs(f128, -1e-1); + try testArgs(f128, -fmin(f128)); + try testArgs(f128, -tmin(f128)); + try testArgs(f128, -0.0); + try testArgs(f128, 0.0); + try testArgs(f128, tmin(f128)); + try testArgs(f128, fmin(f128)); + try testArgs(f128, 1e-1); + try testArgs(f128, 1e0); + try testArgs(f128, 1e1); + try testArgs(f128, fmax(f128)); + try testArgs(f128, inf(f128)); + try testArgs(f128, nan(f128)); + } + fn testIntVectorTypes() !void { + try testArgs(@Vector(3, i1), undefined); + try testArgs(@Vector(3, u1), undefined); + try testArgs(@Vector(3, i2), undefined); + try testArgs(@Vector(3, u2), undefined); + try testArgs(@Vector(3, i3), undefined); + try testArgs(@Vector(3, u3), undefined); + try testArgs(@Vector(3, i4), undefined); + try testArgs(@Vector(1, i4), undefined); + try testArgs(@Vector(2, i4), undefined); + try testArgs(@Vector(4, i4), undefined); + try testArgs(@Vector(8, i4), undefined); + try testArgs(@Vector(16, i4), undefined); + try testArgs(@Vector(32, i4), undefined); + try testArgs(@Vector(64, i4), undefined); + try testArgs(@Vector(128, i4), undefined); + try testArgs(@Vector(256, i4), undefined); + try testArgs(@Vector(3, u4), undefined); + try testArgs(@Vector(1, u4), undefined); + try testArgs(@Vector(2, u4), undefined); + try testArgs(@Vector(4, u4), undefined); + try testArgs(@Vector(8, u4), undefined); + try testArgs(@Vector(16, u4), undefined); + try testArgs(@Vector(32, u4), undefined); + try testArgs(@Vector(64, u4), undefined); + try testArgs(@Vector(128, u4), undefined); + try testArgs(@Vector(256, u4), undefined); + try testArgs(@Vector(3, i5), undefined); + try testArgs(@Vector(3, u5), undefined); + try testArgs(@Vector(3, i7), undefined); + try testArgs(@Vector(3, u7), undefined); + try testArgs(@Vector(3, i8), undefined); + try testArgs(@Vector(1, i8), undefined); + try testArgs(@Vector(2, i8), undefined); + try testArgs(@Vector(4, i8), undefined); + try testArgs(@Vector(8, i8), undefined); + try testArgs(@Vector(16, i8), undefined); + try testArgs(@Vector(32, i8), undefined); + try testArgs(@Vector(64, i8), undefined); + try testArgs(@Vector(128, i8), undefined); + try testArgs(@Vector(3, u8), undefined); + try testArgs(@Vector(1, u8), undefined); + try testArgs(@Vector(2, u8), undefined); + try testArgs(@Vector(4, u8), undefined); + try testArgs(@Vector(8, u8), undefined); + try testArgs(@Vector(16, u8), undefined); + try testArgs(@Vector(32, u8), undefined); + try testArgs(@Vector(64, u8), undefined); + try testArgs(@Vector(128, u8), undefined); + try testArgs(@Vector(3, i9), undefined); + try testArgs(@Vector(3, u9), undefined); + try testArgs(@Vector(3, i15), undefined); + try testArgs(@Vector(3, u15), undefined); + try testArgs(@Vector(3, i16), undefined); + try testArgs(@Vector(1, i16), undefined); + try testArgs(@Vector(2, i16), undefined); + try testArgs(@Vector(4, i16), undefined); + try testArgs(@Vector(8, i16), undefined); + try testArgs(@Vector(16, i16), undefined); + try testArgs(@Vector(32, i16), undefined); + try testArgs(@Vector(64, i16), undefined); + try testArgs(@Vector(3, u16), undefined); + try testArgs(@Vector(1, u16), undefined); + try testArgs(@Vector(2, u16), undefined); + try testArgs(@Vector(4, u16), undefined); + try testArgs(@Vector(8, u16), undefined); + try testArgs(@Vector(16, u16), undefined); + try testArgs(@Vector(32, u16), undefined); + try testArgs(@Vector(64, u16), undefined); + try testArgs(@Vector(3, i17), undefined); + try testArgs(@Vector(3, u17), undefined); + try testArgs(@Vector(3, i31), undefined); + try testArgs(@Vector(3, u31), undefined); + try testArgs(@Vector(3, i32), undefined); + try testArgs(@Vector(1, i32), undefined); + try testArgs(@Vector(2, i32), undefined); + try testArgs(@Vector(4, i32), undefined); + try testArgs(@Vector(8, i32), undefined); + try testArgs(@Vector(16, i32), undefined); + try testArgs(@Vector(32, i32), undefined); + try testArgs(@Vector(3, u32), undefined); + try testArgs(@Vector(1, u32), undefined); + try testArgs(@Vector(2, u32), undefined); + try testArgs(@Vector(4, u32), undefined); + try testArgs(@Vector(8, u32), undefined); + try testArgs(@Vector(16, u32), undefined); + try testArgs(@Vector(32, u32), undefined); + try testArgs(@Vector(3, i33), undefined); + try testArgs(@Vector(3, u33), undefined); + try testArgs(@Vector(3, i63), undefined); + try testArgs(@Vector(3, u63), undefined); + try testArgs(@Vector(3, i64), undefined); + try testArgs(@Vector(1, i64), undefined); + try testArgs(@Vector(2, i64), undefined); + try testArgs(@Vector(4, i64), undefined); + try testArgs(@Vector(8, i64), undefined); + try testArgs(@Vector(16, i64), undefined); + try testArgs(@Vector(3, u64), undefined); + try testArgs(@Vector(1, u64), undefined); + try testArgs(@Vector(2, u64), undefined); + try testArgs(@Vector(4, u64), undefined); + try testArgs(@Vector(8, u64), undefined); + try testArgs(@Vector(16, u64), undefined); + try testArgs(@Vector(3, i65), undefined); + try testArgs(@Vector(3, u65), undefined); + try testArgs(@Vector(3, i127), undefined); + try testArgs(@Vector(3, u127), undefined); + try testArgs(@Vector(3, i128), undefined); + try testArgs(@Vector(1, i128), undefined); + try testArgs(@Vector(2, i128), undefined); + try testArgs(@Vector(4, i128), undefined); + try testArgs(@Vector(8, i128), undefined); + try testArgs(@Vector(3, u128), undefined); + try testArgs(@Vector(1, u128), undefined); + try testArgs(@Vector(2, u128), undefined); + try testArgs(@Vector(4, u128), undefined); + try testArgs(@Vector(8, u128), undefined); + try testArgs(@Vector(3, i129), undefined); + try testArgs(@Vector(3, u129), undefined); + try testArgs(@Vector(3, i191), undefined); + try testArgs(@Vector(3, u191), undefined); + try testArgs(@Vector(3, i192), undefined); + try testArgs(@Vector(1, i192), undefined); + try testArgs(@Vector(2, i192), undefined); + try testArgs(@Vector(4, i192), undefined); + try testArgs(@Vector(3, u192), undefined); + try testArgs(@Vector(1, u192), undefined); + try testArgs(@Vector(2, u192), undefined); + try testArgs(@Vector(4, u192), undefined); + try testArgs(@Vector(3, i193), undefined); + try testArgs(@Vector(3, u193), undefined); + try testArgs(@Vector(3, i255), undefined); + try testArgs(@Vector(3, u255), undefined); + try testArgs(@Vector(3, i256), undefined); + try testArgs(@Vector(1, i256), undefined); + try testArgs(@Vector(2, i256), undefined); + try testArgs(@Vector(4, i256), undefined); + try testArgs(@Vector(3, u256), undefined); + try testArgs(@Vector(1, u256), undefined); + try testArgs(@Vector(2, u256), undefined); + try testArgs(@Vector(4, u256), undefined); + try testArgs(@Vector(3, i257), undefined); + try testArgs(@Vector(3, u257), undefined); + try testArgs(@Vector(3, i511), undefined); + try testArgs(@Vector(3, u511), undefined); + try testArgs(@Vector(3, i512), undefined); + try testArgs(@Vector(1, i512), undefined); + try testArgs(@Vector(2, i512), undefined); + try testArgs(@Vector(3, u512), undefined); + try testArgs(@Vector(1, u512), undefined); + try testArgs(@Vector(2, u512), undefined); + try testArgs(@Vector(3, i513), undefined); + try testArgs(@Vector(3, u513), undefined); + try testArgs(@Vector(3, i1023), undefined); + try testArgs(@Vector(3, u1023), undefined); + try testArgs(@Vector(3, i1024), undefined); + try testArgs(@Vector(1, i1024), undefined); + try testArgs(@Vector(3, u1024), undefined); + try testArgs(@Vector(1, u1024), undefined); + try testArgs(@Vector(3, i1025), undefined); + try testArgs(@Vector(3, u1025), undefined); + } + fn testIntVectors() !void { + try testArgs(@Vector(3, i1), .{ -1 << 0, -1, 0 }); + try testArgs(@Vector(3, u1), .{ 0, 1, 1 << 0 }); + + try testArgs(@Vector(3, i2), .{ -1 << 1, -1, 0 }); + try testArgs(@Vector(3, u2), .{ 0, 1, 1 << 1 }); + + try testArgs(@Vector(3, i3), .{ -1 << 2, -1, 0 }); + try testArgs(@Vector(3, u3), .{ 0, 1, 1 << 2 }); + + try testArgs(@Vector(3, i4), .{ -1 << 3, -1, 0 }); + try testArgs(@Vector(1, i4), .{ + -0x2, + }); + try testArgs(@Vector(2, i4), .{ + -0x7, 0x4, + }); + try testArgs(@Vector(4, i4), .{ + -0x3, 0x4, 0x2, -0x2, + }); + try testArgs(@Vector(8, i4), .{ + -0x6, 0x3, 0x4, 0x3, 0x4, -0x8, -0x3, -0x5, + }); + try testArgs(@Vector(16, i4), .{ + -0x3, 0x5, 0x4, -0x1, 0x2, 0x7, 0x1, 0x0, -0x2, 0x6, -0x1, -0x3, 0x5, -0x3, 0x3, -0x7, + }); + try testArgs(@Vector(32, i4), .{ + -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, + }); + try testArgs(@Vector(64, i4), .{ + -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, + 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, + }); + try testArgs(@Vector(128, i4), .{ + -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, + -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, + -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, + 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, + }); + try testArgs(@Vector(256, i4), .{ + -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, + -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, + -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, + 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, + 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, + -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, + 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, + -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, + }); + + try testArgs(@Vector(3, u4), .{ 0, 1, 1 << 3 }); + try testArgs(@Vector(1, u4), .{ + 0xb, + }); + try testArgs(@Vector(2, u4), .{ + 0x3, 0x4, + }); + try testArgs(@Vector(4, u4), .{ + 0x9, 0x2, 0xf, 0xe, + }); + try testArgs(@Vector(8, u4), .{ + 0x8, 0x1, 0xb, 0x1, 0xf, 0x5, 0x9, 0x6, + }); + try testArgs(@Vector(16, u4), .{ + 0xb, 0x6, 0x0, 0x7, 0x8, 0x5, 0x6, 0x9, 0xe, 0xb, 0x3, 0xa, 0xb, 0x5, 0x8, 0xc, + }); + try testArgs(@Vector(32, u4), .{ + 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, + }); + try testArgs(@Vector(64, u4), .{ + 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, + 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, + }); + try testArgs(@Vector(128, u4), .{ + 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, + 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, + 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, + 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, + }); + try testArgs(@Vector(256, u4), .{ + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + }); + + try testArgs(@Vector(3, i5), .{ -1 << 4, -1, 0 }); + try testArgs(@Vector(3, u5), .{ 0, 1, 1 << 4 }); + + try testArgs(@Vector(3, i7), .{ -1 << 6, -1, 0 }); + try testArgs(@Vector(3, u7), .{ 0, 1, 1 << 6 }); + + try testArgs(@Vector(3, i8), .{ -1 << 7, -1, 0 }); + try testArgs(@Vector(1, i8), .{ + 0x71, + }); + try testArgs(@Vector(2, i8), .{ + -0x50, -0x43, + }); + try testArgs(@Vector(4, i8), .{ + -0x09, -0x19, -0x15, -0x5d, + }); + try testArgs(@Vector(8, i8), .{ + -0x4f, -0x55, -0x5b, -0x23, -0x76, 0x36, 0x6f, -0x63, + }); + try testArgs(@Vector(16, i8), .{ + 0x24, -0x03, 0x2e, 0x7b, 0x68, 0x29, 0x6c, 0x7f, -0x2f, -0x3b, -0x11, -0x3c, -0x2e, 0x27, -0x45, 0x45, + }); + try testArgs(@Vector(32, i8), .{ + 0x70, 0x33, -0x28, -0x38, -0x3b, 0x44, -0x1d, 0x7d, -0x48, 0x3c, 0x61, -0x09, -0x49, 0x15, 0x0a, -0x5a, + 0x78, 0x11, -0x07, -0x23, 0x4a, -0x72, 0x25, -0x17, -0x51, -0x04, 0x55, 0x20, -0x80, -0x3d, 0x59, -0x39, + }); + try testArgs(@Vector(64, i8), .{ + 0x4f, 0x40, -0x62, -0x4f, 0x37, -0x06, -0x33, 0x4d, -0x10, 0x55, 0x24, -0x76, 0x1d, 0x2b, -0x54, -0x0f, + 0x21, -0x4c, -0x74, -0x07, 0x23, -0x5a, -0x21, -0x4a, -0x7c, -0x16, -0x20, -0x2e, 0x0a, 0x15, 0x03, 0x44, + 0x19, -0x27, 0x3e, 0x61, 0x6e, -0x76, 0x2a, 0x74, -0x21, 0x34, -0x69, -0x18, -0x21, -0x61, -0x34, -0x02, + 0x5e, -0x36, -0x79, -0x0f, 0x26, 0x6e, 0x5f, 0x52, -0x0f, -0x64, 0x1a, 0x74, -0x37, 0x00, -0x47, -0x57, + }); + try testArgs(@Vector(128, i8), .{ + -0x38, -0x19, 0x51, 0x09, 0x76, -0x3b, -0x33, 0x39, 0x67, 0x51, 0x10, 0x77, 0x24, 0x21, 0x6f, -0x1a, + 0x4e, -0x69, 0x2e, -0x78, -0x06, 0x5c, 0x17, 0x2e, -0x0e, -0x2e, 0x09, 0x2a, -0x5f, -0x40, -0x64, 0x3f, + 0x4a, -0x77, -0x54, 0x38, 0x6b, 0x1f, -0x04, 0x40, 0x27, -0x0c, 0x65, -0x46, 0x49, -0x69, -0x53, 0x64, + 0x13, -0x33, 0x3a, -0x10, -0x15, 0x7f, -0x1c, 0x5e, -0x22, 0x2f, -0x75, 0x77, 0x22, 0x6b, -0x32, -0x55, + 0x18, 0x19, 0x2c, -0x27, -0x03, 0x4f, 0x07, 0x0b, 0x44, -0x21, 0x79, 0x55, -0x65, 0x1d, -0x29, 0x2f, + 0x4a, 0x6f, -0x40, -0x57, -0x2f, 0x42, 0x52, 0x68, -0x2a, -0x6b, 0x6f, -0x49, -0x32, 0x52, 0x1e, -0x60, + -0x80, 0x53, 0x5e, 0x73, -0x1e, 0x2d, -0x46, -0x27, 0x4b, 0x57, 0x1f, 0x6a, -0x65, 0x5f, -0x2b, -0x03, + -0x3a, -0x76, -0x51, 0x20, 0x04, -0x0a, 0x2b, -0x04, -0x1e, -0x18, -0x2d, 0x53, -0x58, -0x69, 0x16, 0x19, + }); + + try testArgs(@Vector(3, u8), .{ 0, 1, 1 << 7 }); + try testArgs(@Vector(1, u8), .{ + 0x33, + }); + try testArgs(@Vector(2, u8), .{ + 0x66, 0x87, + }); + try testArgs(@Vector(4, u8), .{ + 0x9d, 0xcb, 0x30, 0x7b, + }); + try testArgs(@Vector(8, u8), .{ + 0x4b, 0x35, 0x3f, 0x5c, 0xa5, 0x91, 0x23, 0x6d, + }); + try testArgs(@Vector(16, u8), .{ + 0xb7, 0x57, 0x27, 0x29, 0x58, 0xf8, 0xc9, 0x6c, 0xbe, 0x41, 0xf4, 0xd7, 0x4d, 0x01, 0xf0, 0x37, + }); + try testArgs(@Vector(32, u8), .{ + 0x5f, 0x61, 0x34, 0xe8, 0x37, 0x12, 0xba, 0x5a, 0x85, 0xf3, 0x3e, 0xa2, 0x0f, 0xd0, 0x65, 0xae, + 0xed, 0xf5, 0xe8, 0x65, 0x61, 0x28, 0x4a, 0x27, 0x2e, 0x01, 0x40, 0x8c, 0xe3, 0x36, 0x5d, 0xb6, + }); + try testArgs(@Vector(64, u8), .{ + 0xb0, 0x19, 0x5c, 0xc2, 0x3b, 0x16, 0x70, 0xad, 0x26, 0x45, 0xf2, 0xe1, 0x4f, 0x0f, 0x01, 0x72, + 0x7f, 0x1f, 0x07, 0x9e, 0xee, 0x9b, 0xb3, 0x38, 0x50, 0xf3, 0x56, 0x73, 0xd0, 0xd1, 0xee, 0xe3, + 0xeb, 0xf3, 0x1b, 0xe0, 0x77, 0x78, 0x75, 0xc6, 0x19, 0xe4, 0x69, 0xaa, 0x73, 0x08, 0xcd, 0x0c, + 0xf9, 0xed, 0x94, 0xf8, 0x79, 0x86, 0x63, 0x31, 0xbf, 0xd1, 0xe3, 0x17, 0x2b, 0xb9, 0xa1, 0x72, + }); + try testArgs(@Vector(128, u8), .{ + 0x2e, 0x93, 0x87, 0x09, 0x4f, 0x68, 0x14, 0xab, 0x3f, 0x04, 0x86, 0xc1, 0x95, 0xe8, 0x74, 0x11, + 0x57, 0x25, 0xe1, 0x88, 0xc0, 0x96, 0x33, 0x99, 0x15, 0x86, 0x2c, 0x84, 0x2e, 0xd7, 0x57, 0x21, + 0xd3, 0x18, 0xd5, 0x0e, 0xb4, 0x60, 0xe2, 0x08, 0xce, 0xbc, 0xd5, 0x4d, 0x8f, 0x59, 0x01, 0x67, + 0x71, 0x0a, 0x74, 0x48, 0xef, 0x39, 0x49, 0x7e, 0xa8, 0x39, 0x34, 0x75, 0x95, 0x3b, 0x38, 0xea, + 0x60, 0xd7, 0xed, 0x8f, 0xbb, 0xc0, 0x7d, 0xc2, 0x79, 0x2d, 0xbf, 0xa5, 0x64, 0xf4, 0x09, 0x86, + 0xfb, 0x29, 0xfe, 0xc7, 0xff, 0x62, 0x1a, 0x6f, 0xf8, 0xbd, 0xfe, 0xa4, 0xac, 0x24, 0xcf, 0x56, + 0x82, 0x69, 0x81, 0x0d, 0xc1, 0x51, 0x8d, 0x85, 0xf4, 0x00, 0xe7, 0x25, 0xab, 0xa5, 0x33, 0x45, + 0x66, 0x2e, 0x33, 0xc8, 0xf3, 0x35, 0x16, 0x7d, 0x1f, 0xc9, 0xf7, 0x44, 0xab, 0x66, 0x28, 0x0d, + }); + + try testArgs(@Vector(3, i9), .{ -1 << 8, -1, 0 }); + try testArgs(@Vector(3, u9), .{ 0, 1, 1 << 8 }); + + try testArgs(@Vector(3, i15), .{ -1 << 14, -1, 0 }); + try testArgs(@Vector(3, u15), .{ 0, 1, 1 << 14 }); + + try testArgs(@Vector(3, i16), .{ -1 << 15, -1, 0 }); + try testArgs(@Vector(1, i16), .{ + -0x015a, + }); + try testArgs(@Vector(2, i16), .{ + -0x1c2f, 0x5ce8, + }); + try testArgs(@Vector(4, i16), .{ + 0x1212, 0x5bfc, -0x20ea, 0x0993, + }); + try testArgs(@Vector(8, i16), .{ + 0x4d55, -0x0dfb, -0x7921, 0x7e20, 0x74a5, -0x7371, -0x08e0, 0x7f23, + }); + try testArgs(@Vector(16, i16), .{ + 0x2354, -0x048a, -0x3ef9, 0x29d4, 0x4e5e, -0x3da9, -0x0cc4, -0x0377, + 0x4d44, 0x4384, -0x1e46, 0x0bf1, 0x3151, -0x57c6, -0x367e, -0x7ae5, + }); + try testArgs(@Vector(32, i16), .{ + 0x5b5a, -0x54c4, -0x2089, -0x448d, 0x38e8, -0x36a5, -0x0a8f, 0x06e0, + 0x09d9, 0x3877, 0x33c8, 0x5d3a, 0x018b, 0x29c9, 0x6f59, -0x4078, + 0x6be4, -0x249e, 0x43b3, -0x0389, 0x545e, 0x6ed7, 0x6636, 0x587d, + 0x55b0, -0x608b, 0x72e0, 0x4dfd, -0x051d, 0x7433, -0x7fc2, 0x2de3, + }); + try testArgs(@Vector(64, i16), .{ + 0x7834, -0x43f9, -0x1cb3, -0x05f2, 0x25b5, 0x55f2, 0x4cfb, -0x58bb, + 0x7292, -0x082e, -0x5a6e, 0x1fc8, -0x1f49, 0x7e3c, 0x4aa5, -0x617e, + 0x2fab, -0x2b96, 0x7474, -0x6644, -0x5484, -0x278e, -0x6a0e, -0x5210, + 0x1adf, -0x2799, 0x61e0, -0x733c, -0x6bcc, -0x6fe2, -0x4e91, 0x5d01, + 0x3745, 0x24eb, 0x6c89, 0x4a94, -0x7339, 0x4907, -0x4f8f, -0x7e39, + 0x1a32, 0x65ca, -0x6c27, -0x3269, 0x107b, 0x1c53, -0x5529, 0x5232, + -0x26ec, 0x4442, -0x63f5, -0x174a, 0x3033, -0x7363, 0x58be, 0x239f, + 0x7f7b, -0x437d, -0x6df6, 0x0a7b, 0x3faa, -0x1d75, -0x7426, 0x1274, + }); + + try testArgs(@Vector(3, u16), .{ 0, 1, 1 << 15 }); + try testArgs(@Vector(1, u16), .{ + 0x4da6, + }); + try testArgs(@Vector(2, u16), .{ + 0x04d7, 0x50c6, + }); + try testArgs(@Vector(4, u16), .{ + 0x4c06, 0xd71f, 0x4d8f, 0xe0a4, + }); + try testArgs(@Vector(8, u16), .{ + 0xee9a, 0x881d, 0x31fb, 0xd3f7, 0x2c74, 0x6949, 0x4e04, 0x53d7, + }); + try testArgs(@Vector(16, u16), .{ + 0xeafe, 0x9a7b, 0x0d6f, 0x18cb, 0xaf8f, 0x8ee4, 0xa47e, 0xd39a, + 0x6572, 0x9c53, 0xf36e, 0x982e, 0x41c1, 0x8682, 0xf5dc, 0x7e01, + }); + try testArgs(@Vector(32, u16), .{ + 0xdfb3, 0x7de6, 0xd9ed, 0xb42e, 0x95ac, 0x9b5b, 0x0422, 0xdfcd, + 0x6196, 0x4dbe, 0x1818, 0x8816, 0x75e7, 0xc9b0, 0x92f7, 0x1f71, + 0xe584, 0x576c, 0x043a, 0x0f31, 0xfc4c, 0x2c87, 0x6b02, 0x0229, + 0x25b7, 0x53cd, 0x9bab, 0x866b, 0x9008, 0xf0f3, 0xeb21, 0x88e2, + }); + try testArgs(@Vector(64, u16), .{ + 0x084c, 0x445f, 0xce89, 0xd3ee, 0xb399, 0x315d, 0x8ef8, 0x4f6f, + 0xf9af, 0xcbc4, 0x0332, 0xcd55, 0xa4dc, 0xbc38, 0x6e33, 0x8ead, + 0xd15a, 0x5057, 0x58ef, 0x657a, 0xe9f0, 0x1418, 0x2b62, 0x3387, + 0x1c15, 0x04e1, 0x0276, 0x3783, 0xad9c, 0xea9a, 0x0e5e, 0xe803, + 0x2ee7, 0x0cf1, 0x30f1, 0xb12a, 0x381b, 0x353d, 0xf637, 0xf853, + 0x2ac1, 0x7ce8, 0x6a50, 0xcbb8, 0xc9b8, 0x9b25, 0xd1e9, 0xeff0, + 0xc0a2, 0x8e51, 0xde7a, 0x4e58, 0x5685, 0xeb3f, 0xd29b, 0x66ed, + 0x3dd5, 0xcb59, 0x6003, 0xf710, 0x943a, 0x7276, 0xe547, 0xe48f, + }); + + try testArgs(@Vector(3, i17), .{ -1 << 16, -1, 0 }); + try testArgs(@Vector(3, u17), .{ 0, 1, 1 << 16 }); + + try testArgs(@Vector(3, i31), .{ -1 << 30, -1, 0 }); + try testArgs(@Vector(3, u31), .{ 0, 1, 1 << 30 }); + + try testArgs(@Vector(3, i32), .{ -1 << 31, -1, 0 }); + try testArgs(@Vector(1, i32), .{ + -0x27f49dce, + }); + try testArgs(@Vector(2, i32), .{ + 0x24641ec7, 0x436c5bd2, + }); + try testArgs(@Vector(4, i32), .{ + 0x59e5eff1, -0x46b5b8db, -0x1029efa7, -0x1937fe73, + }); + try testArgs(@Vector(8, i32), .{ + 0x0ca01401, -0x46b2bc0c, 0x51e5dee7, -0x74edfde8, + -0x0ab09a6a, -0x5a51a88b, 0x18c28bc2, 0x63d79966, + }); + try testArgs(@Vector(16, i32), .{ + 0x3900e6c8, 0x2408c2bb, 0x5e01bc6e, -0x0eb8c400, + 0x4c0dc6c2, 0x6c75e7f5, -0x66632ca8, 0x0e978daf, + 0x61ffe725, 0x720253e4, -0x6f6c38c1, -0x3302e60a, + 0x43f53c92, 0x5a3c1075, 0x7044a110, 0x18e41ad8, + }); + try testArgs(@Vector(32, i32), .{ + 0x3a5c2b01, 0x2a52d9fa, -0x5843fc47, 0x6c493c7d, + -0x47937cb1, -0x3ad95ec4, 0x71cf5e7b, -0x3b6719c2, + 0x06bace17, -0x6ccda5ed, 0x42b9ed04, 0x6be2b287, + -0x7cf56523, -0x3c98e2e4, 0x1e7db6c0, -0x7e668ad2, + -0x6c245ecf, -0x09842450, -0x403a4335, -0x7a68e9b7, + 0x0036cf57, -0x251edb4e, -0x67ec3abf, -0x183f0333, + -0x4b46723c, -0x1e5383d6, 0x188c1de3, 0x400b3648, + -0x4b21d9d3, 0x61635257, 0x179eb187, 0x31cd8376, + }); + + try testArgs(@Vector(3, u32), .{ 0, 1, 1 << 31 }); + try testArgs(@Vector(1, u32), .{ + 0x17e2805c, + }); + try testArgs(@Vector(2, u32), .{ + 0xdb6aadc5, 0xb1ff3754, + }); + try testArgs(@Vector(4, u32), .{ + 0xf7897b31, 0x342e1af9, 0x190fd76b, 0x283b5374, + }); + try testArgs(@Vector(8, u32), .{ + 0x81a0bd16, 0xc55da94e, 0x910f7e7c, 0x078d5ef7, + 0x0bdb1e4a, 0xf1a96e99, 0xcdd729b5, 0xe6966a1c, + }); + try testArgs(@Vector(16, u32), .{ + 0xfee812db, 0x29eacbed, 0xaed48136, 0x3053de13, + 0xbbda20df, 0x6faa274a, 0xe0b5ec3a, 0x1878b0dc, + 0x98204475, 0x810d8d05, 0x1e6996b6, 0xc543826a, + 0x53b47d8c, 0xc72c3142, 0x12f7e1f9, 0xf6782e54, + }); + try testArgs(@Vector(32, u32), .{ + 0xf0cf30d3, 0xe3c587b8, 0xcee44739, 0xe4a0bd72, + 0x41d44cce, 0x6d7c4259, 0xd85580a5, 0xec4b02d7, + 0xa366483d, 0x2d7b59d4, 0xe9c0ace4, 0x82cb441c, + 0xa23958ba, 0x04a70148, 0x3f0d20a3, 0xf9e21e37, + 0x009fce8b, 0x4a34a229, 0xf09c35cf, 0xc0977d4d, + 0xcc4d4647, 0xa30f1363, 0x27a65b14, 0xe572c785, + 0x8f42e320, 0x2b2cdeca, 0x11205bd4, 0x739d26aa, + 0xcbcc2df0, 0x5f7a3649, 0xbde1b7aa, 0x180a169f, + }); + + try testArgs(@Vector(3, i33), .{ -1 << 32, -1, 0 }); + try testArgs(@Vector(3, u33), .{ 0, 1, 1 << 32 }); + + try testArgs(@Vector(3, i63), .{ -1 << 62, -1, 0 }); + try testArgs(@Vector(3, u63), .{ 0, 1, 1 << 62 }); + + try testArgs(@Vector(3, i64), .{ -1 << 63, -1, 0 }); + try testArgs(@Vector(1, i64), .{ + 0x29113011488d8b65, + }); + try testArgs(@Vector(2, i64), .{ + -0x3f865dcdfd831d03, -0x35512d15095445d6, + }); + try testArgs(@Vector(4, i64), .{ + 0x6f37a9484440251e, 0x2757e5e2b77e6ef3, + 0x4903a91bd2993d0b, 0x162244ba22371f62, + }); + try testArgs(@Vector(8, i64), .{ + -0x46e2340c765175c1, -0x031ee2297e6cc8b3, + -0x2627434d4b4fb796, 0x525e1ef31b6daa46, + 0x72d8eaaea07fa5ea, 0x2a8c0c36da019448, + -0x5419ebf5cd514cde, -0x618c56a881057ac4, + }); + try testArgs(@Vector(16, i64), .{ + 0x36b4a703d084c774, 0x07a500f0d603a4d5, + -0x27387989d2450cdd, 0x02073880984d74c8, + -0x18d1593e36724417, -0x79df283cc6f403d8, + 0x36838a7c54da5f2b, -0x2bf76c1666a1b768, + -0x6ace0d64a2757edc, 0x41442e9979a0ab64, + 0x002612bfdf419826, 0x1128ba5648d22fe8, + 0x49b0f67e0abb8f3b, 0x6bf3e9ac37f73cf3, + -0x5c89f516258c7e77, 0x6b345f04e60d2e56, + }); + + try testArgs(@Vector(3, u64), .{ 0, 1, 1 << 63 }); + try testArgs(@Vector(1, u64), .{ + 0x7d2e439abb0edba7, + }); + try testArgs(@Vector(2, u64), .{ + 0x3749ee5a2d237b9f, 0x6d8f4c3e1378f389, + }); + try testArgs(@Vector(4, u64), .{ + 0x03c127040e10d52b, 0xa86fe019072e27eb, + 0x0a554a47b709cdba, 0xf4342cc597e196c3, + }); + try testArgs(@Vector(8, u64), .{ + 0xea455c104375a055, 0x5c35d9d945edb2fa, + 0xc11b73d9d9d546fc, 0x2a9d63aae838dd5b, + 0xed6603f1f5d574b3, 0x2f37b354c81c1e56, + 0xbe7f5e2476bc76bd, 0xb0c88eacfffa9a8f, + }); + try testArgs(@Vector(16, u64), .{ + 0x2258fc04b31f8dbe, 0x3a2e5483003a10d8, + 0xebf24b31c0460510, 0x15d5b4c09b53ffa5, + 0x05abf6e744b17cc6, 0x9747b483f2d159fe, + 0x4616d8b2c8673125, 0x8ae3f91d422447eb, + 0x18da2f101a9e9776, 0x77a1197fb0441007, + 0x4ba480c8ec2dd10b, 0xeb99b9c0a1725278, + 0xd9d0acc5084ecdf0, 0xa0a23317fff4f515, + 0x0901c59a9a6a408b, 0x7c77ca72e25df033, + }); + + try testArgs(@Vector(3, i65), .{ -1 << 64, -1, 0 }); + try testArgs(@Vector(3, u65), .{ 0, 1, 1 << 64 }); + + try testArgs(@Vector(3, i127), .{ -1 << 126, -1, 0 }); + try testArgs(@Vector(3, u127), .{ 0, 1, 1 << 126 }); + + try testArgs(@Vector(3, i128), .{ -1 << 127, -1, 0 }); + try testArgs(@Vector(1, i128), .{ + -0x2b0b1462b44785f39d1b7d763ec7bdb2, + }); + try testArgs(@Vector(2, i128), .{ + -0x2faebe898a6fe60fbc6aadc3623431b7, + 0x5e596259e7b2588860d2b470ba751ace, + }); + try testArgs(@Vector(4, i128), .{ + -0x624cb7e74cf789c06121809a3a5b51ba, + 0x23af4553d4d64672795c2b949635426f, + -0x0b598b1f94876757fb13f2198e902b13, + 0x1daf732f50654d8211d464fda4fc030c, + }); + try testArgs(@Vector(8, i128), .{ + -0x03c7df38daee9bc9a2c659a1a124ef10, + 0x657a590c91905c4021c28b0d6e42304a, + -0x3f5176206dadc974d10e6fcbd67f3d29, + 0x066310ace384b1bc3549c71113b96b8a, + -0x6c0201f66583206fcea7b7fe11889644, + -0x5cc4d2a368002b380b25415be83f8218, + 0x11156c91b97a6a93427009efebcb2c31, + -0x4221b5249ed0686c2ff2d5cab9f1c362, + }); + + try testArgs(@Vector(3, u128), .{ 0, 1, 1 << 127 }); + try testArgs(@Vector(1, u128), .{ + 0x809f29e7fbafadc01145e1732590e7d9, + }); + try testArgs(@Vector(2, u128), .{ + 0x5150ac3438aacd0d51132cc2723b2995, + 0x151be9c47ad29cf719cf8358dd40165c, + }); + try testArgs(@Vector(4, u128), .{ + 0x4bae22df929f2f7cb9bd84deaad3e7a8, + 0x1ed46b2d6e1f3569f56b2ac33d8bc1cb, + 0xae93ea459d2ccfd5fb794e6d5c31aabb, + 0xb1177136acf099f550b70949ac202ec4, + }); + try testArgs(@Vector(8, u128), .{ + 0x7cd78db6baed6bfdf8c5265136c4e0fd, + 0xa41b8984c6bbde84640068194b7eba98, + 0xd33102778f2ae1a48d1e9bf8801bbbf0, + 0x0d59f6de003513a60055c86cbce2c200, + 0x825579d90012afddfbf04851c0748561, + 0xc2647c885e9d6f0ee1f5fac5da8ef7f5, + 0xcb4bbc1f81aa8ee68aa4dc140745687b, + 0x4ff10f914f74b46c694407f5bf7c7836, + }); + + try testArgs(@Vector(3, i129), .{ -1 << 128, -1, 0 }); + try testArgs(@Vector(3, u129), .{ 0, 1, 1 << 128 }); + + try testArgs(@Vector(3, i191), .{ -1 << 190, -1, 0 }); + try testArgs(@Vector(3, u191), .{ 0, 1, 1 << 190 }); + + try testArgs(@Vector(3, i192), .{ -1 << 191, -1, 0 }); + try testArgs(@Vector(1, i192), .{ + 0x0206223e53631dfaf431066cf5ac30dd203bb8c7baa0cec7, + }); + try testArgs(@Vector(2, i192), .{ + 0x187a65fa29d1981dacf927e6a8e435481cfdcba6b63b781b, + -0x0f53cb01d7662de0d19fa0b250e5bbc6edf7d3dd152f0dc3, + }); + try testArgs(@Vector(4, i192), .{ + -0x3a456cd0eab663b34d5b6ad15933a31623aacb913adb8e41, + -0x03376d57e9c495ac4ea623e1bf427ae22dcef26e4833da33, + -0x28a90cfee819450e3000f3f2694a7dba2c02311996e01073, + 0x46c6cae4281780acd6a0322c3f4f8b63c3741da31b20a3cd, + }); + + try testArgs(@Vector(3, u192), .{ 0, 1, 1 << 191 }); + try testArgs(@Vector(1, u192), .{ + 0xe7baafcb9781626a77571b0539b9471a60c97d6c02106c8b, + }); + try testArgs(@Vector(2, u192), .{ + 0xbc9510913ed09e2c2aa50ffab9f1bc7b303a87f36e232a83, + 0x1f37bee446d7712d1ad457c47a66812cb926198d052aee65, + }); + try testArgs(@Vector(4, u192), .{ + 0xdca6a7cfc19c69efc34022062a8ca36f2569ab3dce001202, + 0xd25a4529e621c9084181fdb6917c6a32eccc58b63601b35d, + 0x0a258afd6debbaf8c158f1caa61fed63b31871d13f51b43d, + 0x6b40a178674fcb82c623ac322f851623d5e993dac97a219a, + }); + + try testArgs(@Vector(3, i193), .{ -1 << 192, -1, 0 }); + try testArgs(@Vector(3, u193), .{ 0, 1, 1 << 192 }); + + try testArgs(@Vector(3, i255), .{ -1 << 254, -1, 0 }); + try testArgs(@Vector(3, u255), .{ 0, 1, 1 << 254 }); + + try testArgs(@Vector(3, i256), .{ -1 << 255, -1, 0 }); + try testArgs(@Vector(1, i256), .{ + 0x59a12bff854679d9b3c6d1d195333d9f748dd1e2a7ad28f24f611a208bf91ed3, + }); + try testArgs(@Vector(2, i256), .{ + 0x6b266e98bd5e7e66ba90f2e1cb2ff555ac755efdbe0946313660c58b46c589bb, + -0x4ab426d26f53253ae3b2fb412d9649fc8071db22605e528f918b9a3ee9d2a832, + }); + try testArgs(@Vector(4, i256), .{ + -0x3a64f67fddd0859c0f3b063fc12b13b1865447b87d1740de51358421f50553b5, + -0x7c364fc0218f1cab29425b1a4c9cbdbf0c676375bee8079b135ce40de3557c0b, + 0x368d25dc3eab1b00decd18679b29b7f4d95314161bd3ee687f2896e8cd525311, + -0x6d9aacd172a363bf2d53ea497c289fd35e62c2484329c208e10a91b4cea88111, + }); + + try testArgs(@Vector(3, u256), .{ 0, 1, 1 << 255 }); + try testArgs(@Vector(1, u256), .{ + 0x230413bb481fa3a997796acf282010c560d1942e7339fd584a0f15a90c83fbda, + }); + try testArgs(@Vector(2, u256), .{ + 0x3ad569f8d91fdbc9da8ec0e933565919f2feb90b996c90c352b461aa0908e62d, + 0x0f109696d64647983f1f757042515510729ad1350e862cbf38cb73b5cf99f0f7, + }); + try testArgs(@Vector(4, u256), .{ + 0x1717c6ded4ac6de282d59f75f068da47d5a47a30f2c5053d2d59e715f9d28b97, + 0x3087189ce7540e2e0028b80af571ebc6353a00b2917f243a869ed29ecca0adaa, + 0x1507c6a9d104684bf503cdb08841cf91adab4644306bd67aafff5326604833ce, + 0x857e134ff9179733c871295b25f824bd3eb562977bad30890964fa0cdc15bb07, + }); + + try testArgs(@Vector(3, i257), .{ -1 << 256, -1, 0 }); + try testArgs(@Vector(3, u257), .{ 0, 1, 1 << 256 }); + + try testArgs(@Vector(3, i511), .{ -1 << 510, -1, 0 }); + try testArgs(@Vector(3, u511), .{ 0, 1, 1 << 510 }); + + try testArgs(@Vector(3, i512), .{ -1 << 511, -1, 0 }); + try testArgs(@Vector(1, i512), .{ + -0x235b5d838cdf67b9eb6d7eeb518fb63cff402a74c687927feb363b5040556b8d32c55e565cc2fe33cb4dcc37e8fd1c92989522c11b6c186d11400d17e40d35b5, + }); + try testArgs(@Vector(2, i512), .{ + -0x5f5ff44fec38adc4c9c8bc8de00acf01fcc62bc55d07033f4e788d4f3825382e1e39f6bd69dff328eec9a89486ebaaaffd9ab69d28eb7d952be4ef250cff6de1, + -0x403e0fd866e1598ad928ecd234005debd527483375f5e7e79eee3a129868354acb5b74e42de9f297f81062d04ea41adc158e542ab04770dd039d527cffb81845, + }); + + try testArgs(@Vector(3, u512), .{ 0, 1, 1 << 511 }); + try testArgs(@Vector(1, u512), .{ + 0xa3ff51a609f1370e5eeb96b05169bf7469e465cf76ac5b4ea8ffd166c1ba3cd94f2dedf0d647a1fe424f3a06e6d7940f03e257f28100970b00bd5528c52b9ae6, + }); + try testArgs(@Vector(2, u512), .{ + 0xc6d43cd46ae31ab71f9468a895c83bf17516c6b2f1c9b04b9aa113bf7fe1b789eb7d95fcf951f12a9a6f2124589551efdd8c00f528b366a7bfb852faf8f3da53, + 0xc9099d2bdf8d1a0d30485ec6db4a24cbc0d89a863de30e18313ee1d66f71dd2d26235caaa703286cf4a2b51e1a12ef96d2d944c66c0bd3f0d72dd4cf0fc8100e, + }); + + try testArgs(@Vector(3, i513), .{ -1 << 512, -1, 0 }); + try testArgs(@Vector(3, u513), .{ 0, 1, 1 << 512 }); + + try testArgs(@Vector(3, i1023), .{ -1 << 1022, -1, 0 }); + try testArgs(@Vector(3, u1023), .{ 0, 1, 1 << 1022 }); + + try testArgs(@Vector(3, i1024), .{ -1 << 1023, -1, 0 }); + try testArgs(@Vector(1, i1024), .{ + 0x10eee350e115375812126750b24255ca76fdee619b64261c354af58bd4a29af6e2448ccda4d84e1b2fbf76d3710cf1b5e62b1360c3b63e104d0755fa264d6c171f8f7a3292d7859b08a5dff60e9ad8ba9dcdd7e6098eb70be7a27a0cbcc6480661330c21299b2960fac954ee4480f3a2cc1ca5a492e1e75084c079ba701cd7ab, + }); + + try testArgs(@Vector(3, u1024), .{ 0, 1, 1 << 1023 }); + try testArgs(@Vector(1, u1024), .{ + 0xc6cfaa6571139552e1f067402dfc131d9b9a58aafda97198a78764b05138fb68cf26f085b7652f3d5ae0e56aa21732f296a581bb411d4a73795c213de793489fa49b173b9f5c089aa6295ff1fcdc14d491a05035b45d08fc35cd67a83d887a02b8db512f07518132e0ba56533c7d6fbe958255eddf5649bd8aba288c0dd84a25, + }); + + try testArgs(@Vector(3, i1025), .{ -1 << 1024, -1, 0 }); + try testArgs(@Vector(3, u1025), .{ 0, 1, 1 << 1024 }); + } + fn testFloatVectorTypes() !void { + try testArgs(@Vector(1, f16), undefined); + try testArgs(@Vector(2, f16), undefined); + try testArgs(@Vector(4, f16), undefined); + try testArgs(@Vector(8, f16), undefined); + try testArgs(@Vector(16, f16), undefined); + try testArgs(@Vector(32, f16), undefined); + try testArgs(@Vector(64, f16), undefined); + + try testArgs(@Vector(1, f32), undefined); + try testArgs(@Vector(2, f32), undefined); + try testArgs(@Vector(4, f32), undefined); + try testArgs(@Vector(8, f32), undefined); + try testArgs(@Vector(16, f32), undefined); + try testArgs(@Vector(32, f32), undefined); + + try testArgs(@Vector(1, f64), undefined); + try testArgs(@Vector(2, f64), undefined); + try testArgs(@Vector(4, f64), undefined); + try testArgs(@Vector(8, f64), undefined); + try testArgs(@Vector(16, f64), undefined); + + try testArgs(@Vector(1, f80), undefined); + try testArgs(@Vector(2, f80), undefined); + try testArgs(@Vector(4, f80), undefined); + try testArgs(@Vector(8, f80), undefined); + + try testArgs(@Vector(1, f128), undefined); + try testArgs(@Vector(2, f128), undefined); + try testArgs(@Vector(4, f128), undefined); + try testArgs(@Vector(8, f128), undefined); + } + fn testFloatVectors() !void { + try testArgs(@Vector(1, f16), .{ + -0x1.17cp-12, + }); + try testArgs(@Vector(2, f16), .{ + 0x1.47cp9, 0x1.3acp9, + }); + try testArgs(@Vector(4, f16), .{ + 0x1.ab4p0, -0x1.7fcp-7, -0x1.1cp0, -0x1.f14p12, + }); + try testArgs(@Vector(8, f16), .{ + -0x1.8d8p8, 0x1.83p10, -0x1.5ap-1, -0x1.d78p13, -0x1.608p12, 0x1.e8p-9, -0x1.688p-10, -0x1.738p9, + }); + try testArgs(@Vector(16, f16), .{ + 0x1.da8p-1, -0x1.ed4p-10, -0x1.dc8p1, 0x1.b78p-14, nan(f16), 0x1.9d8p8, nan(f16), 0x1.d5p13, + -0x1.2dp13, 0x1.6c4p12, 0x1.a9cp-11, -0x1.0ecp8, 0x0.4ccp-14, -0x1.0a8p-6, -0x1.5bcp-14, 0x1.6d8p-9, + }); + try testArgs(@Vector(32, f16), .{ + 0x1.d5cp-6, -0x1.a98p5, 0x1.49cp5, -0x1.e4p-1, -0x1.21p-13, -0x1.c94p-1, -0x1.adcp-5, -0x1.524p-1, + -0x1.0d8p-3, -0x1.5c4p-2, 0x1.f84p-2, 0x1.664p1, -0x1.f64p13, -0x1.bf4p4, -0x1.4b8p0, -0x0.f64p-14, + -0x1.3f8p1, 0x1.098p2, -0x1.a44p8, 0x1.048p13, 0x1.fd4p-11, 0x1.18p-9, -0x1.504p2, 0x1.d04p7, + -nan(f16), 0x1.a94p2, 0x0.5e8p-14, -0x1.7acp-7, 0x1.4c8p-3, 0x1.518p-4, nan(f16), 0x1.8f8p10, + }); + try testArgs(@Vector(64, f16), .{ + -0x1.c2p2, 0x0.2fcp-14, 0x1.de8p0, -0x1.714p2, 0x1.f9p-7, -0x1.11cp-13, -0x1.558p10, -0x1.2acp-7, + 0x1.348p14, 0x1.2dcp7, -0x1.8acp-12, -0x1.2cp2, 0x1.868p1, -0x1.1f8p-14, 0x1.638p7, -0x1.734p-5, + 0x0.b98p-14, -0x1.7f4p-12, -0x1.38cp15, 0x1.50cp15, 0x1.91cp8, 0x1.cb4p-1, 0x1.fc4p-13, 0x1.9a4p0, + 0x1.18p-4, 0x1.60cp10, 0x1.6fp-12, 0x1.b48p6, 0x1.37cp-11, 0x1.424p7, 0x1.44cp13, 0x1.aep5, + 0x1.968p14, 0x1.e8p13, -0x1.bp2, -0x1.644p5, 0x1.de4p-8, -0x1.5b4p-14, -0x1.4ap1, -0x1.868p9, + -0x1.d14p0, 0x1.d7cp15, 0x1.3c8p14, 0x1.2ccp-14, -0x1.ee4p8, 0x1.49p-3, 0x1.35cp12, 0x1.d34p6, + 0x1.7acp3, -0x1.fa4p2, 0x1.7b4p13, -0x1.cf4p-12, -0x1.ebcp-10, -0x1.5p-3, 0x1.4bp-6, 0x1.83p12, + -0x1.f9cp-8, -0x1.43p-8, -0x1.99p-1, -0x1.dacp3, -0x1.728p-4, -0x1.03cp4, 0x1.604p-2, -0x1.0ep13, + }); + + try testArgs(@Vector(1, f32), .{ + -0x1.17cp-12, + }); + try testArgs(@Vector(2, f32), .{ + -0x1.a3123ap90, -0x1.4a2ec6p-54, + }); + try testArgs(@Vector(4, f32), .{ + -0x1.8a41p77, -0x1.7c54e2p-61, -0x1.498556p-41, 0x1.d77c22p-20, + }); + try testArgs(@Vector(8, f32), .{ + 0x1.943da4p-86, 0x1.528792p95, -0x1.9c9bfap-26, -0x1.8df936p-90, + -0x1.6a70cep56, 0x1.626638p-48, 0x1.7bb2bap-57, -0x1.ac5104p94, + }); + try testArgs(@Vector(16, f32), .{ + 0x1.157044p115, -0x1.416c04p-111, 0x1.a8f164p-104, 0x1.9b6678p84, + -0x1.9d065cp9, -0x1.e8c4b4p126, -0x1.ddb968p84, -0x1.fec8c8p74, + 0x1.64ffb2p59, 0x1.548922p20, 0x1.7270fcp22, -0x1.abac68p33, + 0x1.faabfp33, -0x1.8aee82p55, 0x1.1bf8fp75, 0x1.33c46ap-66, + }); + try testArgs(@Vector(32, f32), .{ + -0x1.039b68p37, -0x1.34de4ap-74, -0x1.05d78ap-76, -0x1.be0f5ap-47, + 0x1.032204p-38, 0x1.ef8e2ap-78, -0x1.b013ecp-80, 0x1.71fe4cp99, + 0x1.abdadap-14, 0x1.56a9a8p-48, -0x1.8bbd7ep9, 0x1.edd308p-72, + -0x1.92fafcp-121, -0x1.50812p19, 0x1.f4ddc4p28, -0x1.6f0b12p-50, + -0x1.12ab02p127, 0x1.24df48p21, -0x1.993c3p-14, -0x1.4cc476p-112, + 0x1.13d9a8p-40, 0x1.a6e652p-9, -0x1.9c730cp-21, -0x1.a75aaap-70, + -0x1.39e632p-111, 0x1.8e8da8p-45, 0x1.b5652cp31, 0x1.258366p44, + 0x1.d473aap92, -0x1.951b64p9, 0x1.542edp15, -0x0.f6222ap-126, + }); + + try testArgs(@Vector(1, f64), .{ + -0x1.0114613df6f97p816, + }); + try testArgs(@Vector(2, f64), .{ + -0x1.8404dad72003cp720, -0x1.6b14b40bcf3b7p-176, + }); + try testArgs(@Vector(4, f64), .{ + -0x1.04e1acbfddd9cp681, -0x1.ed553cc056da7p-749, + 0x1.3d3f703a0c893p-905, 0x1.0b35633fa78fp691, + }); + try testArgs(@Vector(8, f64), .{ + -0x1.901a2a60f0562p-301, -0x1.2516175ad61ecp-447, + 0x1.e7b12124846bfp564, 0x1.9291384bd7259p209, + -0x1.a7bf62f803c98p900, 0x1.4e2e26257bb3p987, + -0x1.413ca9a32d894p811, 0x1.61b1dd9432e95p479, + }); + try testArgs(@Vector(16, f64), .{ + -0x1.8fc7286d95f54p-235, -0x1.796a7ea8372b6p-837, + -0x1.8c0f930539acbp-98, -0x1.ec80dfbf0b931p-430, + -0x1.e3d80c640652fp-1019, 0x1.8241238fb542fp161, + -0x1.e1f1a79d50263p137, -0x1.9ac5cb2771c28p-791, + 0x1.4d8f00fe881e7p-401, -0x1.87fbd7bfd99d7p346, + -0x1.a8a7cc575335ep1017, 0x1.37bb88dc3fd8bp-355, + 0x1.9d53d346c0e65p929, -0x1.bbae3d0229c34p289, + -0x1.cb8ef994d5ce5p25, 0x1.ba20af512616ap50, + }); + + try testArgs(@Vector(1, f80), .{ + -0x1.a2e9410a7dfedabp-2324, + }); + try testArgs(@Vector(2, f80), .{ + -0x1.a2e9410a7dfedabp-2324, + 0x1.2b17da3b9746885p-8665, + }); + try testArgs(@Vector(4, f80), .{ + -0x1.c488fedb7ab646cep-13007, + 0x1.e914deaccaa50016p2073, + -0x1.d1c7ae8ec3c9df86p10642, + -0x1.2da1658f337fa01p9893, + }); + try testArgs(@Vector(8, f80), .{ + -0x1.bed8a74c43750656p890, + -0x1.7bf57f38004ac976p8481, + -0x1.9cdc10ac0657d328p7884, + 0x1.c86f61883da149fp12293, + -0x1.528d6957df6bfdd8p14125, + -0x1.5ebb4006d0243bfep14530, + -0x1.94b9b18636d12402p-1845, + -0x1.25439a6d68add188p5962, + }); + + try testArgs(@Vector(1, f128), .{ + -0x1.d1e6fc3b1e66632e7b79051a47dap14300, + }); + try testArgs(@Vector(2, f128), .{ + 0x1.84b3ac8ffe5893b2c6af8d68de9dp-83, + -0x1.438ca2c8a0d8e3ee9062d351c46ep-10235, + }); + try testArgs(@Vector(4, f128), .{ + 0x1.04eb03882d4fd1b090e714d3e5ep806, + -0x1.4082b29f7c26e701764c915642ffp-6182, + -0x1.b6f1e8565e5040415110f18b519ap13383, + 0x1.1c29f8c162cead9061c5797ea15ap11957, + }); + try testArgs(@Vector(8, f128), .{ + -0x1.53d7f00cd204d80e5ff5bb665773p11218, + -0x1.4daa1c81cffe28e8fa5cd703c287p2362, + -0x1.cc6a71c3ad4560871efdbd025cd7p-8116, + -0x1.87f8553cf8772fb6b78e7df3e3bap14523, + -0x1.14b6880f6678f86dfb543dde1c6ep2105, + 0x1.9d2d4398414da9d857e76e8fd7ccp-13668, + 0x1.a37f07af240ded458d103c022064p-1158, + 0x1.425d53e6bd6070b847e5da1ed593p1394, + }); + } + }; +} + +inline fn bitNot(comptime Type: type, rhs: Type) @TypeOf(~rhs) { + return ~rhs; +} +test bitNot { + const test_bit_not = unary(bitNot, .{}); + try test_bit_not.testInts(); + try test_bit_not.testIntVectors(); +} + +inline fn clz(comptime Type: type, rhs: Type) @TypeOf(@clz(rhs)) { + return @clz(rhs); +} +test clz { + const test_clz = unary(clz, .{}); + try test_clz.testInts(); + try test_clz.testIntVectors(); +} + +inline fn ctz(comptime Type: type, rhs: Type) @TypeOf(@ctz(rhs)) { + return @ctz(rhs); +} +test ctz { + const test_ctz = unary(ctz, .{}); + try test_ctz.testInts(); +} + +inline fn popCount(comptime Type: type, rhs: Type) @TypeOf(@popCount(rhs)) { + return @popCount(rhs); +} +test popCount { + const test_pop_count = unary(popCount, .{}); + try test_pop_count.testInts(); +} + +inline fn byteSwap(comptime Type: type, rhs: Type) RoundBitsUp(Type, 8) { + return @byteSwap(@as(RoundBitsUp(Type, 8), rhs)); +} +test byteSwap { + const test_byte_swap = unary(byteSwap, .{}); + try test_byte_swap.testInts(); +} + +inline fn bitReverse(comptime Type: type, rhs: Type) @TypeOf(@bitReverse(rhs)) { + return @bitReverse(rhs); +} +test bitReverse { + const test_bit_reverse = unary(bitReverse, .{}); + try test_bit_reverse.testInts(); +} + +inline fn sqrt(comptime Type: type, rhs: Type) @TypeOf(@sqrt(rhs)) { + return @sqrt(rhs); +} +test sqrt { + const test_sqrt = unary(sqrt, .{ .libc_name = "sqrt", .compare = .approx }); + try test_sqrt.testFloats(); + try test_sqrt.testFloatVectors(); +} + +inline fn sin(comptime Type: type, rhs: Type) @TypeOf(@sin(rhs)) { + return @sin(rhs); +} +test sin { + const test_sin = unary(sin, .{ .libc_name = "sin", .compare = .strict }); + try test_sin.testFloats(); + try test_sin.testFloatVectors(); +} + +inline fn cos(comptime Type: type, rhs: Type) @TypeOf(@cos(rhs)) { + return @cos(rhs); +} +test cos { + const test_cos = unary(cos, .{ .libc_name = "cos", .compare = .strict }); + try test_cos.testFloats(); + try test_cos.testFloatVectors(); +} + +inline fn tan(comptime Type: type, rhs: Type) @TypeOf(@tan(rhs)) { + return @tan(rhs); +} +test tan { + const test_tan = unary(tan, .{ .libc_name = "tan", .compare = .strict }); + try test_tan.testFloats(); + try test_tan.testFloatVectors(); +} + +inline fn exp(comptime Type: type, rhs: Type) @TypeOf(@exp(rhs)) { + return @exp(rhs); +} +test exp { + const test_exp = unary(exp, .{ .libc_name = "exp", .compare = .strict }); + try test_exp.testFloats(); + try test_exp.testFloatVectors(); +} + +inline fn exp2(comptime Type: type, rhs: Type) @TypeOf(@exp2(rhs)) { + return @exp2(rhs); +} +test exp2 { + const test_exp2 = unary(exp2, .{ .libc_name = "exp2", .compare = .strict }); + try test_exp2.testFloats(); + try test_exp2.testFloatVectors(); +} + +inline fn log(comptime Type: type, rhs: Type) @TypeOf(@log(rhs)) { + return @log(rhs); +} +test log { + const test_log = unary(log, .{ .libc_name = "log", .compare = .strict }); + try test_log.testFloats(); + try test_log.testFloatVectors(); +} + +inline fn log2(comptime Type: type, rhs: Type) @TypeOf(@log2(rhs)) { + return @log2(rhs); +} +test log2 { + const test_log2 = unary(log2, .{ .libc_name = "log2", .compare = .strict }); + try test_log2.testFloats(); + try test_log2.testFloatVectors(); +} + +inline fn log10(comptime Type: type, rhs: Type) @TypeOf(@log10(rhs)) { + return @log10(rhs); +} +test log10 { + const test_log10 = unary(log10, .{ .libc_name = "log10", .compare = .strict }); + try test_log10.testFloats(); + try test_log10.testFloatVectors(); +} + +inline fn abs(comptime Type: type, rhs: Type) @TypeOf(@abs(rhs)) { + return @abs(rhs); +} +test abs { + const test_abs = unary(abs, .{ .compare = .strict }); + try test_abs.testInts(); + try test_abs.testIntVectors(); + try test_abs.testFloats(); + try test_abs.testFloatVectors(); +} + +inline fn floor(comptime Type: type, rhs: Type) @TypeOf(@floor(rhs)) { + return @floor(rhs); +} +test floor { + const test_floor = unary(floor, .{ .libc_name = "floor", .compare = .strict }); + try test_floor.testFloats(); + try test_floor.testFloatVectors(); +} + +inline fn ceil(comptime Type: type, rhs: Type) @TypeOf(@ceil(rhs)) { + return @ceil(rhs); +} +test ceil { + const test_ceil = unary(ceil, .{ .libc_name = "ceil", .compare = .strict }); + try test_ceil.testFloats(); + try test_ceil.testFloatVectors(); +} + +inline fn round(comptime Type: type, rhs: Type) @TypeOf(@round(rhs)) { + return @round(rhs); +} +test round { + const test_round = unary(round, .{ .libc_name = "round", .compare = .strict }); + try test_round.testFloats(); + try test_round.testFloatVectors(); +} + +inline fn trunc(comptime Type: type, rhs: Type) @TypeOf(@trunc(rhs)) { + return @trunc(rhs); +} +test trunc { + const test_trunc = unary(trunc, .{ .libc_name = "trunc", .compare = .strict }); + try test_trunc.testFloats(); + try test_trunc.testFloatVectors(); +} + +inline fn negate(comptime Type: type, rhs: Type) @TypeOf(-rhs) { + return -rhs; +} +test negate { + const test_negate = unary(negate, .{ .compare = .strict }); + try test_negate.testFloats(); + try test_negate.testFloatVectors(); +} + +inline fn nullIsNull(comptime Type: type, _: Type) bool { + return runtime(?Type, null) == null; +} +test nullIsNull { + const test_null_is_null = unary(nullIsNull, .{}); + try test_null_is_null.testIntTypes(); + try test_null_is_null.testIntVectorTypes(); + try test_null_is_null.testFloatTypes(); + try test_null_is_null.testFloatVectorTypes(); +} + +inline fn nullIsNotNull(comptime Type: type, _: Type) bool { + return runtime(?Type, null) != null; +} +test nullIsNotNull { + const test_null_is_not_null = unary(nullIsNotNull, .{}); + try test_null_is_not_null.testIntTypes(); + try test_null_is_not_null.testIntVectorTypes(); + try test_null_is_not_null.testFloatTypes(); + try test_null_is_not_null.testFloatVectorTypes(); +} + +inline fn optionalIsNull(comptime Type: type, lhs: Type) bool { + return @as(?Type, lhs) == null; +} +test optionalIsNull { + const test_optional_is_null = unary(optionalIsNull, .{}); + try test_optional_is_null.testInts(); + try test_optional_is_null.testFloats(); +} + +inline fn optionalIsNotNull(comptime Type: type, lhs: Type) bool { + return @as(?Type, lhs) != null; +} +test optionalIsNotNull { + const test_optional_is_not_null = unary(optionalIsNotNull, .{}); + try test_optional_is_not_null.testInts(); + try test_optional_is_not_null.testFloats(); +} + +inline fn nullEqualNull(comptime Type: type, _: Type) bool { + return runtime(?Type, null) == runtime(?Type, null); +} +test nullEqualNull { + const test_null_equal_null = unary(nullEqualNull, .{}); + try test_null_equal_null.testIntTypes(); + try test_null_equal_null.testFloatTypes(); +} + +inline fn nullNotEqualNull(comptime Type: type, _: Type) bool { + return runtime(?Type, null) != runtime(?Type, null); +} +test nullNotEqualNull { + const test_null_not_equal_null = unary(nullNotEqualNull, .{}); + try test_null_not_equal_null.testIntTypes(); + try test_null_not_equal_null.testFloatTypes(); +} + +inline fn optionalEqualNull(comptime Type: type, lhs: Type) bool { + return lhs == runtime(?Type, null); +} +test optionalEqualNull { + const test_optional_equal_null = unary(optionalEqualNull, .{}); + try test_optional_equal_null.testInts(); + try test_optional_equal_null.testFloats(); +} + +inline fn optionalNotEqualNull(comptime Type: type, lhs: Type) bool { + return lhs != runtime(?Type, null); +} +test optionalNotEqualNull { + const test_optional_not_equal_null = unary(optionalIsNotNull, .{}); + try test_optional_not_equal_null.testInts(); + try test_optional_not_equal_null.testFloats(); +} From aff2be01c95516489ba8355f4de6218c92608b8e Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Wed, 12 Mar 2025 22:04:41 -0400 Subject: [PATCH 4/6] big.int: fix negative multi-limb shift right adjust crash --- lib/std/math/big/int.zig | 14 ++++---------- lib/std/math/big/int_test.zig | 9 +++++++++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig index 5e7214b7d9..780930c3de 100644 --- a/lib/std/math/big/int.zig +++ b/lib/std/math/big/int.zig @@ -1096,7 +1096,7 @@ pub const Mutable = struct { /// Asserts there is enough memory to fit the result. The upper bound Limb count is /// `a.limbs.len + (shift / (@sizeOf(Limb) * 8))`. pub fn shiftLeft(r: *Mutable, a: Const, shift: usize) void { - llshl(r.limbs[0..], a.limbs[0..a.limbs.len], shift); + llshl(r.limbs, a.limbs, shift); r.normalize(a.limbs.len + (shift / limb_bits) + 1); r.positive = a.positive; } @@ -1165,7 +1165,7 @@ pub const Mutable = struct { // This shift should not be able to overflow, so invoke llshl and normalize manually // to avoid the extra required limb. - llshl(r.limbs[0..], a.limbs[0..a.limbs.len], shift); + llshl(r.limbs, a.limbs, shift); r.normalize(a.limbs.len + (shift / limb_bits)); r.positive = a.positive; } @@ -1202,17 +1202,11 @@ pub const Mutable = struct { break :nonzero a.limbs[full_limbs_shifted_out] << not_covered != 0; }; - llshr(r.limbs[0..], a.limbs[0..a.limbs.len], shift); + llshr(r.limbs, a.limbs, shift); r.len = a.limbs.len - full_limbs_shifted_out; r.positive = a.positive; - if (nonzero_negative_shiftout) { - if (full_limbs_shifted_out > 0) { - r.limbs[a.limbs.len - full_limbs_shifted_out] = 0; - r.len += 1; - } - r.addScalar(r.toConst(), -1); - } + if (nonzero_negative_shiftout) r.addScalar(r.toConst(), -1); r.normalize(r.len); } diff --git a/lib/std/math/big/int_test.zig b/lib/std/math/big/int_test.zig index 009bef7ef3..069aab5c81 100644 --- a/lib/std/math/big/int_test.zig +++ b/lib/std/math/big/int_test.zig @@ -2191,6 +2191,15 @@ test "shift-right negative" { a.setSign(true); try a.shiftRight(&arg7, 4); try testing.expect(try a.toInt(i16) == -2048); + + var arg8_limbs: [1]Limb = undefined; + var arg8: Mutable = .{ + .limbs = &arg8_limbs, + .len = undefined, + .positive = undefined, + }; + arg8.shiftRight(.{ .limbs = &.{ 1, 1 }, .positive = false }, @bitSizeOf(Limb)); + try testing.expect(arg8.toConst().orderAgainstScalar(-2).compare(.eq)); } test "sat shift-left simple unsigned" { From 2361468e23b18a35578deddd6c4641114ed02ebf Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Wed, 12 Mar 2025 22:09:46 -0400 Subject: [PATCH 5/6] x86_64: rewrite scalar shifts --- src/arch/x86_64/CodeGen.zig | 1039 +++++++++++++++++++++++++++++-- src/arch/x86_64/Encoding.zig | 1 + src/arch/x86_64/bits.zig | 6 +- test/behavior/x86_64/binary.zig | 88 ++- test/behavior/x86_64/math.zig | 1 + 5 files changed, 1071 insertions(+), 64 deletions(-) diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 77b4c46e1e..2b0b0eba20 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -2418,7 +2418,7 @@ fn genBodyBlock(self: *CodeGen, body: []const Air.Inst.Index) InnerError!void { } fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { - @setEvalBranchQuota(13_800); + @setEvalBranchQuota(13_900); const pt = cg.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -2454,9 +2454,6 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { try cg.inst_tracking.ensureUnusedCapacity(cg.gpa, 1); switch (air_tags[@intFromEnum(inst)]) { // zig fmt: off - .shr, .shr_exact => try cg.airShlShrBinOp(inst), - .shl, .shl_exact => try cg.airShlShrBinOp(inst), - .add_sat => try cg.airAddSat(inst), .sub_sat => try cg.airSubSat(inst), .mul_sat => try cg.airMulSat(inst), @@ -28416,6 +28413,947 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void { }; try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); }, + .shr, .shr_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0w, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0w, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .bmi2, null, null, null }, + .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._rx, .sa, .dst0d, .src0d, .src1d, ._ }, + } }, + }, .{ + .required_features = .{ .bmi2, null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._rx, .sh, .dst0d, .src0d, .src1d, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._rx, .sa, .dst0q, .src0q, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._rx, .sh, .dst0q, .src0q, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sa, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._r, .sh, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_signed_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._r, .sa, .tmp3q, .ui(63), ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .add, .tmp0p, .si(1), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_unsigned_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .isize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .lea, .tmp1p, .leasia(.none, .@"8", .tmp0, .sub_src0_size), ._, ._ }, + .{ ._, ._, .not, .tmp0p, ._, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsia(.dst0, .@"8", .tmp0, .add_size), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memia(.src0q, .tmp1, .add_size), ._, ._ }, + .{ ._, ._rd, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leai(.tmp2q, .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .add, .tmp1p, .si(8), ._, ._ }, + .{ ._, ._nc, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._r, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsia(.dst0q, .@"8", .tmp0, .add_size), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._c, .in, .tmp0p, ._, ._, ._ }, + .{ ._, ._nz, .j, .@"0b", ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ + @tagName(air_tag), + cg.typeOf(bin_op.lhs).fmt(pt), + cg.typeOf(bin_op.rhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, + .shl, .shl_exact => |air_tag| if (use_old) try cg.airShlShrBinOp(inst) else fallback: { + const bin_op = air_datas[@intFromEnum(inst)].bin_op; + if (cg.typeOf(bin_op.lhs).isVector(zcu)) break :fallback try cg.airShlShrBinOp(inst); + var ops = try cg.tempsFromOperands(inst, .{ bin_op.lhs, bin_op.rhs }); + var res: [1]Temp = undefined; + cg.select(&res, &.{cg.typeOf(bin_op.lhs)}, &ops, comptime &.{ .{ + .src_constraints = .{ .{ .signed_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .byte }, .{ .unsigned_int = .byte }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0b, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0w, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .word }, .{ .exact_unsigned_int = 4 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0w, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .bmi2, null, null, null }, + .src_constraints = .{ .{ .int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._lx, .sh, .dst0d, .src0d, .src1d, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .signed_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .src_constraints = .{ .{ .unsigned_int = .dword }, .{ .exact_unsigned_int = 5 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0d, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .imm8, .none } }, + .{ .src = .{ .to_mut_gpr, .imm8, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .bmi2, null, null }, + .src_constraints = .{ .{ .int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mem, .to_gpr, .none } }, + .{ .src = .{ .to_gpr, .to_gpr, .none } }, + }, + .dst_temps = .{ .{ .mut_rc = .{ .ref = .src0, .rc = .general_purpose } }, .unused }, + .each = .{ .once = &.{ + .{ ._, ._lx, .sh, .dst0q, .src0q, .src1q, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .signed_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sa, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .qword }, .{ .exact_unsigned_int = 6 }, .any }, + .patterns = &.{ + .{ .src = .{ .mut_mem, .{ .to_reg = .cl }, .none } }, + .{ .src = .{ .to_mut_gpr, .{ .to_reg = .cl }, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._l, .sh, .dst0q, .src1b, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .byte }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cl }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1b, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", .slow_incdec, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._, .sub, .tmp1d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._, .sub, .tmp0d, .si(1), ._, ._ }, + .{ ._, ._ae, .j, .@"0b", ._, ._, ._ }, + } }, + }, .{ + .required_features = .{ .@"64bit", null, null, null }, + .src_constraints = .{ + .{ .remainder_int = .{ .of = .qword, .is = .qword } }, + .{ .unsigned_int = .word }, + .any, + }, + .patterns = &.{ + .{ .src = .{ .to_mem, .{ .to_reg = .cx }, .none } }, + }, + .extra_temps = .{ + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u32, .kind = .{ .rc = .general_purpose } }, + .{ .type = .usize, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, + .dst_temps = .{ .mem, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .movzx, .tmp0d, .src1w, ._, ._ }, + .{ ._, ._, .mov, .tmp1d, .sia(-1, .src0, .add_size_div_8), ._, ._ }, + .{ ._, ._r, .sh, .tmp0d, .ui(6), ._, ._ }, + .{ ._, ._, .sub, .tmp1d, .tmp0d, ._, ._ }, + .{ ._, ._, .lea, .tmp2p, .memsid(.dst0, .@"8", .tmp0, 8), ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._mp, .j, .@"1f", ._, ._, ._ }, + .{ .@"0:", ._, .mov, .tmp4q, .memsi(.src0q, .@"8", .tmp1), ._, ._ }, + .{ ._, ._ld, .sh, .tmp3q, .tmp4q, .src1b, ._ }, + .{ ._, ._, .mov, .leasi(.tmp2q, .@"8", .tmp1), .tmp3q, ._, ._ }, + .{ ._, ._, .mov, .tmp3q, .tmp4q, ._, ._ }, + .{ .@"1:", ._c, .de, .tmp1d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + .{ ._, ._l, .sh, .tmp3q, .src1b, ._, ._ }, + .{ .@"0:", ._, .mov, .memsi(.dst0q, .@"8", .tmp0), .tmp3q, ._, ._ }, + .{ ._, ._, .xor, .tmp3d, .tmp3d, ._, ._ }, + .{ ._, ._c, .de, .tmp0d, ._, ._, ._ }, + .{ ._, ._ns, .j, .@"0b", ._, ._, ._ }, + } }, + } }) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select {s} {} {} {} {}", .{ + @tagName(air_tag), + cg.typeOf(bin_op.lhs).fmt(pt), + cg.typeOf(bin_op.rhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }; + switch (air_tag) { + else => unreachable, + .shl => res[0].wrapInt(cg) catch |err| switch (err) { + error.SelectFailed => return cg.fail("failed to select wrap {} {} {} {}", .{ + cg.typeOf(bin_op.lhs).fmt(pt), + cg.typeOf(bin_op.rhs).fmt(pt), + ops[0].tracking(cg), + ops[1].tracking(cg), + }), + else => |e| return e, + }, + .shl_exact => {}, + } + try res[0].finish(inst, &.{ bin_op.lhs, bin_op.rhs }, &ops, cg); + }, .not => |air_tag| if (use_old) try cg.airUnOp(inst, air_tag) else { const ty_op = air_datas[@intFromEnum(inst)].ty_op; var ops = try cg.tempsFromOperands(inst, .{ty_op.operand}); @@ -85342,7 +86280,7 @@ fn regClassForType(self: *CodeGen, ty: Type) Register.Class { fn regSetForRegClass(rc: Register.Class) RegisterManager.RegisterBitSet { return switch (rc) { .general_purpose => abi.RegisterClass.gp, - .segment, .ip, .cr, .dr => unreachable, + .gphi, .segment, .ip, .cr, .dr => unreachable, .x87 => abi.RegisterClass.x87, .mmx => @panic("TODO"), .sse => abi.RegisterClass.sse, @@ -97763,7 +98701,7 @@ fn moveStrategy(cg: *CodeGen, ty: Type, class: Register.Class, aligned: bool) !M const pt = cg.pt; const zcu = pt.zcu; switch (class) { - .general_purpose, .segment => return .{ .load_store = .{ ._, .mov } }, + .general_purpose, .gphi, .segment => return .{ .load_store = .{ ._, .mov } }, .x87 => return .load_store_x87, .mmx => {}, .sse => switch (ty.zigTypeTag(zcu)) { @@ -98239,7 +99177,7 @@ fn genSetReg( .reserved_frame, => unreachable, .undef => if (opts.safety) switch (dst_reg.class()) { - .general_purpose => switch (abi_size) { + .general_purpose, .gphi => switch (abi_size) { 1 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to8(), .u(0xaa)), 2 => try self.asmRegisterImmediate(.{ ._, .mov }, dst_reg.to16(), .u(0xaaaa)), 3...4 => try self.asmRegisterImmediate( @@ -98296,8 +99234,8 @@ fn genSetReg( } }, .register => |src_reg| if (dst_reg.id() != src_reg.id()) switch (dst_reg.class()) { - .general_purpose => switch (src_reg.class()) { - .general_purpose => try self.asmRegisterRegister( + .general_purpose, .gphi => switch (src_reg.class()) { + .general_purpose, .gphi => try self.asmRegisterRegister( .{ ._, .mov }, dst_alias, registerAlias(src_reg, abi_size), @@ -98341,13 +99279,13 @@ fn genSetReg( .{ ._, .mov }, dst_reg, switch (src_reg.class()) { - .general_purpose, .segment => registerAlias(src_reg, abi_size), + .general_purpose, .gphi, .segment => registerAlias(src_reg, abi_size), .x87, .mmx, .ip, .cr, .dr => unreachable, .sse => try self.copyToTmpRegister(ty, src_mcv), }, ), .x87 => switch (src_reg.class()) { - .general_purpose, .segment => unreachable, + .general_purpose, .gphi, .segment => unreachable, .x87 => switch (src_reg) { .st0 => try self.asmRegister(.{ .f_, .st }, dst_reg), .st1, .st2, .st3, .st4, .st5, .st6 => switch (dst_reg) { @@ -98376,7 +99314,7 @@ fn genSetReg( }, .mmx => unreachable, .sse => switch (src_reg.class()) { - .general_purpose => if (self.hasFeature(.sse2)) try self.asmRegisterRegister( + .general_purpose, .gphi => if (self.hasFeature(.sse2)) try self.asmRegisterRegister( switch (abi_size) { 1...4 => if (self.hasFeature(.avx)) .{ .v_d, .mov } else .{ ._d, .mov }, 5...8 => if (self.hasFeature(.avx)) .{ .v_q, .mov } else .{ ._q, .mov }, @@ -98602,7 +99540,7 @@ fn genSetReg( } }, }), .load_symbol => |sym_off| switch (dst_reg.class()) { - .general_purpose => { + .general_purpose, .gphi => { assert(sym_off.off == 0); try self.asmRegisterMemory(.{ ._, .mov }, dst_alias, .{ .base = .{ .reloc = sym_off.sym_index }, @@ -98617,7 +99555,7 @@ fn genSetReg( .x87, .sse => {}, }, .load_direct => |sym_index| switch (dst_reg.class()) { - .general_purpose => { + .general_purpose, .gphi => { _ = try self.addInst(.{ .tag = .mov, .ops = .direct_reloc, @@ -98781,7 +99719,7 @@ fn genSetMem( }; const src_alias = registerAlias(src_reg, abi_size); const src_size: u32 = @intCast(switch (src_alias.class()) { - .general_purpose, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8), + .general_purpose, .gphi, .segment, .x87, .ip, .cr, .dr => @divExact(src_alias.bitSize(), 8), .mmx, .sse => abi_size, }); const src_align: InternPool.Alignment = .fromNonzeroByteUnits( @@ -103089,7 +104027,7 @@ fn resolveCallingConventionValues( const ret_gpr = abi.getCAbiIntReturnRegs(cc); const ret_size: u31 = @intCast(ret_ty.abiSize(zcu)); if (abi.zigcc.return_in_regs) switch (self.regClassForType(ret_ty)) { - .general_purpose => if (ret_size <= @as(u4, switch (self.target.cpu.arch) { + .general_purpose, .gphi => if (ret_size <= @as(u4, switch (self.target.cpu.arch) { else => unreachable, .x86 => 4, .x86_64 => 8, @@ -103119,7 +104057,7 @@ fn resolveCallingConventionValues( } const param_size: u31 = @intCast(param_ty.abiSize(zcu)); if (abi.zigcc.params_in_regs) switch (self.regClassForType(param_ty)) { - .general_purpose => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (self.target.cpu.arch) { + .general_purpose, .gphi => if (param_gpr.len >= 1 and param_size <= @as(u4, switch (self.target.cpu.arch) { else => unreachable, .x86 => 4, .x86_64 => 8, @@ -103192,10 +104130,9 @@ fn parseRegName(name: []const u8) ?Register { /// Returns register wide enough to hold at least `size_bytes`. fn registerAlias(reg: Register, size_bytes: u32) Register { + if (size_bytes == 0) unreachable; // should be comptime-known return switch (reg.class()) { - .general_purpose => if (size_bytes == 0) - unreachable // should be comptime-known - else if (size_bytes <= 1) + .general_purpose => if (size_bytes <= 1) reg.to8() else if (size_bytes <= 2) reg.to16() @@ -103205,6 +104142,16 @@ fn registerAlias(reg: Register, size_bytes: u32) Register { reg.to64() else unreachable, + .gphi => if (size_bytes <= 1) + reg + else if (size_bytes <= 2) + reg.to16() + else if (size_bytes <= 4) + reg.to32() + else if (size_bytes <= 8) + reg.to64() + else + unreachable, .segment => if (size_bytes <= 2) reg else @@ -104566,6 +105513,7 @@ const Temp = struct { .required_features = .{ .@"64bit", .bmi2, null, null }, .src_constraints = .{ .{ .unsigned_int = .qword }, .any, .any }, .patterns = &.{ + .{ .src = .{ .mem, .none, .none } }, .{ .src = .{ .to_gpr, .none, .none } }, }, .extra_temps = .{ @@ -104594,6 +105542,19 @@ const Temp = struct { .{ .src = .{ .mut_mem, .none, .none } }, .{ .src = .{ .to_mut_gpr, .none, .none } }, }, + .extra_temps = .{ + .{ .type = .u64, .kind = .{ .rc = .general_purpose } }, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + .unused, + }, .dst_temps = .{ .{ .ref = .src0 }, .unused }, .clobbers = .{ .eflags = true }, .each = .{ .once = &.{ @@ -108625,7 +109586,7 @@ const Temp = struct { ) InnerError!void { const tomb_bits = cg.liveness.getTombBits(inst); for (0.., op_refs, op_temps) |op_index, op_ref, op_temp| { - if (op_temp.index != temp.index) try op_temp.die(cg); + if (op_temp.index != temp.index and op_temp.tracking(cg).short != .dead) try op_temp.die(cg); if (tomb_bits & @as(Liveness.Bpi, 1) << @intCast(op_index) == 0) continue; if (cg.reused_operands.isSet(op_index)) continue; try cg.processDeath(op_ref.toIndexAllowNone() orelse continue); @@ -110197,7 +111158,10 @@ const Select = struct { } fn valueOf(ref: Ref, s: *const Select) MCValue { - return s.temps[@intFromEnum(ref)].tracking(s.cg).short; + return switch (ref) { + .none => .none, + else => s.temps[@intFromEnum(ref)].tracking(s.cg).short, + }; } }; @@ -110742,42 +111706,39 @@ const Select = struct { .lea => .{ .mem = .{ .base = switch (op.flags.base.ref.valueOf(s)) { else => unreachable, + .none => .none, .register => |base_reg| .{ .reg = registerAlias(base_reg, @divExact(s.cg.target.ptrBitWidth(), 8)) }, .register_offset => |base_reg_off| .{ .reg = registerAlias(base_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)) }, .lea_symbol => |base_sym_off| .{ .reloc = base_sym_off.sym_index }, }, .mod = .{ .rm = .{ .size = op.flags.base.size, - .index = switch (op.flags.index.ref) { - else => |index_ref| switch (index_ref.valueOf(s)) { - else => unreachable, - .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)), - .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)), - }, + .index = switch (op.flags.index.ref.valueOf(s)) { + else => unreachable, .none => .none, + .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)), + .register_offset => |index_reg_off| registerAlias(index_reg_off.reg, @divExact(s.cg.target.ptrBitWidth(), 8)), }, .scale = op.flags.index.scale, .disp = op.adjustedImm(i32, s) + switch (op.flags.base.ref.valueOf(s)) { else => unreachable, - .register => 0, + .none, .register => 0, + .register_offset => |base_reg_off| base_reg_off.off, + .lea_symbol => |base_sym_off| base_sym_off.off, + } + switch (op.flags.index.ref.valueOf(s)) { + else => unreachable, + .none, .register => 0, .register_offset => |base_reg_off| base_reg_off.off, .lea_symbol => |base_sym_off| base_sym_off.off, - } + switch (op.flags.index.ref) { - else => |index_ref| switch (index_ref.valueOf(s)) { - else => unreachable, - .register => 0, - .register_offset => |base_reg_off| base_reg_off.off, - .lea_symbol => |base_sym_off| base_sym_off.off, - }, - .none => 0, }, } }, } }, .mem => .{ .mem = try op.flags.base.ref.valueOf(s).mem(s.cg, .{ .size = op.flags.base.size, - .index = switch (op.flags.index.ref) { - else => |index_ref| registerAlias(index_ref.valueOf(s).register, @divExact(s.cg.target.ptrBitWidth(), 8)), + .index = switch (op.flags.index.ref.valueOf(s)) { + else => unreachable, .none => .none, + .register => |index_reg| registerAlias(index_reg, @divExact(s.cg.target.ptrBitWidth(), 8)), }, .scale = op.flags.index.scale, .disp = op.adjustedImm(i32, s), diff --git a/src/arch/x86_64/Encoding.zig b/src/arch/x86_64/Encoding.zig index b34fb593f7..44c16ca61d 100644 --- a/src/arch/x86_64/Encoding.zig +++ b/src/arch/x86_64/Encoding.zig @@ -592,6 +592,7 @@ pub const Op = enum { else => unreachable, }, }, + .gphi => .r8, .segment => .sreg, .x87 => switch (reg) { .st0 => .st0, diff --git a/src/arch/x86_64/bits.zig b/src/arch/x86_64/bits.zig index 930515519f..91a557cbf1 100644 --- a/src/arch/x86_64/bits.zig +++ b/src/arch/x86_64/bits.zig @@ -384,6 +384,7 @@ pub const Register = enum(u8) { pub const Class = enum { general_purpose, + gphi, segment, x87, mmx, @@ -400,7 +401,7 @@ pub const Register = enum(u8) { @intFromEnum(Register.eax) ... @intFromEnum(Register.r15d) => .general_purpose, @intFromEnum(Register.ax) ... @intFromEnum(Register.r15w) => .general_purpose, @intFromEnum(Register.al) ... @intFromEnum(Register.r15b) => .general_purpose, - @intFromEnum(Register.ah) ... @intFromEnum(Register.bh) => .general_purpose, + @intFromEnum(Register.ah) ... @intFromEnum(Register.bh) => .gphi, @intFromEnum(Register.ymm0) ... @intFromEnum(Register.ymm15) => .sse, @intFromEnum(Register.xmm0) ... @intFromEnum(Register.xmm15) => .sse, @@ -525,7 +526,6 @@ pub const Register = enum(u8) { } fn gpBase(reg: Register) u7 { - assert(reg.class() == .general_purpose); return switch (@intFromEnum(reg)) { // zig fmt: off @intFromEnum(Register.rax) ... @intFromEnum(Register.r15) => @intFromEnum(Register.rax), @@ -577,7 +577,7 @@ pub const Register = enum(u8) { /// DWARF register encoding pub fn dwarfNum(reg: Register) u6 { return switch (reg.class()) { - .general_purpose => if (reg.isExtended()) + .general_purpose, .gphi => if (reg.isExtended()) reg.enc() else @as(u3, @truncate(@as(u24, 0o54673120) >> @as(u5, reg.enc()) * 3)), diff --git a/test/behavior/x86_64/binary.zig b/test/behavior/x86_64/binary.zig index 9a8a946edb..2be9a3f3b1 100644 --- a/test/behavior/x86_64/binary.zig +++ b/test/behavior/x86_64/binary.zig @@ -1,4 +1,5 @@ const AddOneBit = math.AddOneBit; +const cast = math.cast; const checkExpected = math.checkExpected; const Compare = math.Compare; const DoubleBits = math.DoubleBits; @@ -6,6 +7,7 @@ const fmax = math.fmax; const fmin = math.fmin; const Gpr = math.Gpr; const inf = math.inf; +const Log2Int = math.Log2Int; const math = @import("math.zig"); const nan = math.nan; const Scalar = math.Scalar; @@ -5582,6 +5584,28 @@ test mod { try test_mod.testFloatVectors(); } +inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type { + return @max(lhs, rhs); +} +test max { + const test_max = binary(max, .{}); + try test_max.testInts(); + try test_max.testIntVectors(); + try test_max.testFloats(); + try test_max.testFloatVectors(); +} + +inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type { + return @min(lhs, rhs); +} +test min { + const test_min = binary(min, .{}); + try test_min.testInts(); + try test_min.testIntVectors(); + try test_min.testFloats(); + try test_min.testFloatVectors(); +} + inline fn equal(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs == rhs) { return lhs == rhs; } @@ -5654,6 +5678,48 @@ test bitOr { try test_bit_or.testIntVectors(); } +inline fn shr(comptime Type: type, lhs: Type, rhs: Type) Type { + const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs); + const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs); + return lhs >> if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs; +} +test shr { + const test_shr = binary(shr, .{}); + try test_shr.testInts(); +} + +inline fn shrExact(comptime Type: type, lhs: Type, rhs: Type) Type { + const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs); + const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs); + const final_rhs = if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs; + return @shrExact(lhs >> final_rhs << final_rhs, final_rhs); +} +test shrExact { + const test_shr_exact = binary(shrExact, .{}); + try test_shr_exact.testInts(); +} + +inline fn shl(comptime Type: type, lhs: Type, rhs: Type) Type { + const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs); + const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs); + return lhs << if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs; +} +test shl { + const test_shl = binary(shl, .{}); + try test_shl.testInts(); +} + +inline fn shlExact(comptime Type: type, lhs: Type, rhs: Type) Type { + const bit_cast_rhs: @Type(.{ .int = .{ .signedness = .unsigned, .bits = @bitSizeOf(Type) } }) = @bitCast(rhs); + const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs); + const final_rhs = if (comptime cast(Log2Int(Type), @bitSizeOf(Type))) |bits| truncate_rhs % bits else truncate_rhs; + return @shlExact(lhs << final_rhs >> final_rhs, final_rhs); +} +test shlExact { + const test_shl_exact = binary(shlExact, .{}); + try test_shl_exact.testInts(); +} + inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) @TypeOf(lhs ^ rhs) { return lhs ^ rhs; } @@ -5663,28 +5729,6 @@ test bitXor { try test_bit_xor.testIntVectors(); } -inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type { - return @min(lhs, rhs); -} -test min { - const test_min = binary(min, .{}); - try test_min.testInts(); - try test_min.testIntVectors(); - try test_min.testFloats(); - try test_min.testFloatVectors(); -} - -inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type { - return @max(lhs, rhs); -} -test max { - const test_max = binary(max, .{}); - try test_max.testInts(); - try test_max.testIntVectors(); - try test_max.testFloats(); - try test_max.testFloatVectors(); -} - inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool { if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636 return @as(?Type, lhs) == rhs; diff --git a/test/behavior/x86_64/math.zig b/test/behavior/x86_64/math.zig index 33b16d1376..f168737830 100644 --- a/test/behavior/x86_64/math.zig +++ b/test/behavior/x86_64/math.zig @@ -2,6 +2,7 @@ const builtin = @import("builtin"); const math = std.math; const std = @import("std"); +pub const cast = math.cast; pub const fmax = math.floatMax; pub const fmin = math.floatMin; pub const imax = math.maxInt; From 3c3a6c937bba39d0edfe226e3a1548c009c04b09 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sat, 22 Mar 2025 04:28:44 -0400 Subject: [PATCH 6/6] x86_64: fix rare miscomp that clobbers memory --- src/arch/x86_64/CodeGen.zig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 2b0b0eba20..f6199d3fd7 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -105447,10 +105447,19 @@ const Temp = struct { .dst_temps = .{ .{ .ref = .src0 }, .unused }, .each = .{ .once = &.{} }, }, .{ - .required_features = .{ .fast_imm16, null, null, null }, .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, .patterns = &.{ .{ .src = .{ .mut_mem, .none, .none } }, + }, + .dst_temps = .{ .{ .ref = .src0 }, .unused }, + .clobbers = .{ .eflags = true }, + .each = .{ .once = &.{ + .{ ._, ._, .@"and", .dst0w, .ua(.src0, .add_umax), ._, ._ }, + } }, + }, .{ + .required_features = .{ .fast_imm16, null, null, null }, + .src_constraints = .{ .{ .unsigned_int = .word }, .any, .any }, + .patterns = &.{ .{ .src = .{ .to_mut_gpr, .none, .none } }, }, .dst_temps = .{ .{ .ref = .src0 }, .unused },